找回密码
 加入我们
搜索
      
查看: 22328|回复: 117

[软件] AI作画版本答案,可以姿态干预的ControlNet动漫版手把手教程

  [复制链接]
发表于 2023-2-17 16:17 | 显示全部楼层 |阅读模式
本帖最后由 我輩樹である 于 2023-2-24 02:16 编辑

为显卡找点事,手把手教程教你用当前版本答案ControlNet,有写实版和二次元萌妹版。
零基础,复制粘贴纯享版哦。

写实:
屏幕截图 2023-02-17 155938.png

二次元:
屏幕截图 2023-02-17 160030.png
屏幕截图 2023-02-17 164742.jpg

下面是markdown代码,建议用markdown编辑器查看。
因为当前ControlNet正在活跃更新中,更新频繁,本教程在2月17日的版本上验证了,后续有更新再说吧。


  1. # 从零开始安装动漫风格的ControlNet

  2. 本教程基于:

  3. ```
  4. https://github.com/lllyasviel/ControlNet/discussions/12
  5. ```

  6. 感谢作者

  7. ## 前置软件安装

  8. # Anaconda

  9. Anaconda是一种包管理器,并提供了虚拟环境和版本解算器用于隔离和部署。

  10. * 安装方式

  11. 使用下面的链接下载并安装:

  12. ```
  13. https://repo.anaconda.com/archive/Anaconda3-2022.10-Windows-x86_64.exe
  14. ```

  15. * 安装检查

  16. 打开菜单中的```Anaconda Powershell Prompt (anaconda3)```。

  17. 此时命令行前面会出现一个```(base)```的字样代表Anaconda安装成功,代表你当前处于base虚拟环境之下。

  18. * 添加Anaconda的国内源(可选)

  19. 完成Anaconda的安装后,还需通过执行下面的命令添加Anaconda的国内镜像源(清华):

  20. ```
  21. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

  22. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

  23. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  24. ```

  25. 当从Anaconda下载的时候,会优先搜索上面添加的国内源服务器,保证下载速度。

  26. 可以通过```conda config --show channels```命令查看添加是否成功。

  27. # Git

  28. Git是一种版本管理工具,在本例中多用于从远程的仓库获取代码和模型数据。

  29. * 安装方式

  30. 打开命令行工具,使用下面的命令安装:

  31. ```
  32. winget install --id Git.Git -e --source winget
  33. ```

  34. * 替代安装方式

  35. 可以通过下列链接下载直接安装:

  36. ```
  37. https://github.com/git-for-windows/git/releases/download/v2.39.2.windows.1/Git-2.39.2-64-bit.exe
  38. ```

  39. * 安装检查

  40. 安装完成后,关闭并重新打开命令行,使用下列命令检查是否安装成功:

  41. ```
  42. git --version
  43. ```

  44. ## ControlNet代码下载与环境构建

  45. ControlNet代码发布在下列地址:

  46. ```
  47. https://github.com/lllyasviel/ControlNet
  48. ```

  49. 其官方模型发布在下列地址:

  50. ```
  51. https://huggingface.co/lllyasviel/ControlNet/tree/main
  52. ```

  53. # 下载代码并构建运行环境

  54. 打开菜单中的```Anaconda Powershell Prompt (anaconda3)```

  55. 使用```cd```命令转移到你希望放置ControlNet的目录。

  56. 全功能的ControlNet及其模型需要100GB左右的空间,请注意规划存储空间。

  57. 使用下面的命令获取ControlNet代码:

  58. ```
  59. git clone https://github.com/lllyasviel/ControlNet.git
  60. ```

  61. 完成后,会在当前目录下创建一个ControlNet目录。

  62. 使用```cd ControlNet```命令进入该目录。

  63. 为了规避因为网络原因导致的构建失败问题,使用文本编辑器打开目录下的environment.yaml文件。

  64. 在```- pip:```下面添加代码```- -i https://pypi.tuna.tsinghua.edu.cn/simple```

  65. 注意缩进对齐,完成后应如下所示(添加的项目应该与其他子项保持相同缩进):

  66. ```
  67.   - pip:
  68.      - -i https://pypi.tuna.tsinghua.edu.cn/simple
  69. ```

  70. 保存退出。

  71. * 构建运行环境

  72. 在```(base)```前缀下,使用下列的命令构建环境(如果希望激活xformers,请参考115楼):

  73. ```
  74. conda env create -f environment.yaml
  75. ```

  76. 构建需要一定的时间,且还是会有构建失败的情况发生。

  77. 无论是哪种情况,请先使用```conda activate control```命令尝试激活刚才创建的环境。

  78. * 构建失败

  79. 构建失败原因一般是pip工具无法正常访问软件仓库,pip工具是python自带的包管理器,本例中运行环境的构建一部分由conda提供源,一部分由pip提供源。

  80. 这个时候我们需要为pip工具添加国内镜像源服务器。

  81. 首先使用```python --version```和```pip --version```命令确保python及pip已经安装成功。

  82. python版本应在3.8以上,pip版本应在20以上。

  83. 接下来使用下面两行代码为pip添加国内源(清华):

  84. ```
  85. pip config --global set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

  86. pip config --global set install.trusted-host tuna.tsinghua.edu.cn
  87. ```

  88. 添加成功后,命令行会反馈配置写入到一个pip.ini文件中,可以打开该文件检查是否添加成功。

  89. 或者使用```pip config list```指令查看。

  90. * 重新构建环境

  91. 虽然构建失败,但虚拟环境已经创建,且部分环境已经构建成功,此时我们仅需构建失败的部分。

  92. 确保你处于control虚拟环境之下(即命令行前缀为```(control)```)

  93. 使用下面的命令继续构建环境:

  94. ```
  95. conda env update -f environment.yaml
  96. ```

  97. 完成构建。

  98. # 下载官方模型

  99. 使用下面的命令激活lfs组件用于下载大体积文件:

  100. ```
  101. git lfs install
  102. ```

  103. 进入一个空闲目录中,使用下面的命令下载模型:

  104. ```
  105. git clone https://huggingface.co/lllyasviel/ControlNet
  106. ```

  107. 请确保网络通畅,该命令会下载90GB左右的模型文件。hugface在国内下载速度也很快,经测试带宽基本可以跑满。

  108. 如果下载速度过慢,请参考最下面的troubleshooting部分。

  109. 下载过程中命令行界面的反馈比较少,可以通过任务管理器网络通信监控下载状态。

  110. 如果你并不需要全功能的ControlNet,仅需挑选部分模型下载即可,模型的用途和位置可参考:

  111. ```
  112. https://huggingface.co/lllyasviel/ControlNet
  113. ```

  114. # 合并代码和模型

  115. 下载的代码和模型具有完全相同的目录结构,直接合并即可。

  116. # 试运行

  117. 在本例中,我们仅关心ControlNet的根据姿态生成功能,即```pose2image```。

  118. 确保你有一张显存大于9GB的Nvidia显卡(如果你的显卡显存小于9GB,或者需要一次性生成多张图片,请见下文中的代码修改部分)

  119. 确保你位于```(control)```虚拟环境之下,并位于ControlNet目录中。

  120. 使用下面的命令运行ControlNet的pose2image功能。

  121. ```
  122. python gradio_pose2image.py
  123. ```

  124. 等待初始化完成后,命令行将回馈一个网址,将其中的```0.0.0.0```改为```127.0.0.1```并使用浏览器打开。

  125. enjoy。

  126. * 注意:可以使用```Ctrl + C```指令退出。

  127. ## 还没结束,大奶二次元萌妹呢

  128. 为了生成大奶二次元萌妹,需要使用社区模型。

  129. 首先,下载下列两个模型:

  130. ```
  131. https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-full.safetensors

  132. https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt
  133. ```

  134. 下载完毕后,将它们移动到```ControlNet/models```目录中。

  135. 确保你位于```(control)```虚拟环境之下,并位于ControlNet目录中。

  136. 使用下列命令迁移生成基于上述两个模型的新模型:

  137. ```
  138. python tool_transfer_control.py
  139. ```

  140. 运行结束后,会在models目录下生成一个新的模型```control_any3_openpose.pth```,这就是我们需要的。

  141. 此外,该模型也可以直接在下列地址下载:

  142. ```
  143. https://huggingface.co/toyxyz/Control_any3/tree/main
  144. ```

  145. # 编辑代码让其调用新模型

  146. 打开ControlNet目录下的```gradio_pose2image.py```文件。

  147. 修改代码有两处,如下:

  148. * 1,在```from share import *```的下面添加:

  149. ```
  150. from cldm.hack import hack_everything
  151. hack_everything(clip_skip=2)
  152. ```

  153. * 2,在```model = create_model('./models/cldm_v15.yaml').cpu()```下面修改:

  154. ```
  155. # 上面是写实模型,下面是动漫模型,可以通过追加或删除代码前端的 # 符号调整
  156. # model.load_state_dict(load_state_dict('./models/control_sd15_openpose.pth', location='cuda'))
  157. model.load_state_dict(load_state_dict('./models/control_any3_openpose.pth', location='cpu'))
  158. ```

  159. 顺便可以把最后一行的```0.0.0.0```改为```127.0.0.1```。

  160. * 开启低显存模式

  161. 如果你的显卡显存小于9GB,或者你需要一次性生成多张图片,请打开ControlNet根目录下的config.py文件,修改如下:

  162. ```
  163. save_memory = True
  164. ```

  165. 保存退出。

  166. # 生成大奶萌妹

  167. 确保你位于```(control)```虚拟环境之下,并位于ControlNet目录中。

  168. 再次使用```python gradio_pose2image.py```运行,同样的指令即可生成大奶萌妹。

  169. 对于姿势的干预,你需要提供一张姿态图,建议使用下面的两个网站摆好姿势,下载图片,然后再去生成。

  170. 同时也可以接受prompt词的指导。

  171. ```
  172. 二次元
  173. https://www.vrmwebpose.app/

  174. 写实
  175. https://webapp.magicposer.com/
  176. ```

  177. enjoy。
复制代码


屏幕截图 2023-02-17 165924.jpg

troubleshooting:

如果出现ProxyError的情况,请关闭你的代理。
代理要分情况启用,有的时候可以用来加速,有的会因为验证的原因不让用。请多加尝试。

如果下载模型速度很慢的话,可以打开 https://huggingface.co/lllyasviel/ControlNet/tree/main 这个网址,进入各个目录,lfs标志后面有个向下的箭头,就是模型的地址,可以用迅雷之类的下载工具下,最后放到相对应的位置即可。虽然麻烦了点,但和用git命令下没区别。

评分

参与人数 4邪恶指数 +30 收起 理由
灰羽利亞 + 10
Sagitar2009 + 5
搞基薛定谔 + 5 666
xzzfft + 10 就是NB

查看全部评分

 楼主| 发表于 2023-2-24 02:12 | 显示全部楼层
本帖最后由 我輩樹である 于 2023-3-25 21:44 编辑
anishieh` 发表于 2023-2-24 00:28
这个分辨率最高只能768,那些更高分辨率的一般是哪个框架做的啊


只是界面的限制,可以如下改一下:

gradio_pose2image.py文件的89行左右:


  1. image_resolution = gr.Slider(label="Image Resolution", minimum=256, maximum=<这里改成你想要的大小>, value=512, step=256)
复制代码


当然如果分辨率太大,可能会崩。

建议打开xformers加速。方法是用下面的environment.yaml构建环境。
仅测试了pose2image,如果你要用别的ControlNet功能慎用:


  1. name: control
  2. channels:
  3.   - pytorch
  4.   - nvidia
  5.   - defaults
  6. dependencies:
  7.   - python=3.8.10
  8.   - pip
  9.   - pytorch=1.13.1
  10.   - torchvision
  11.   - numpy=1.23.1
  12.   - pytorch-cuda=11.7
  13.   - pip:
  14.       - -i https://pypi.tuna.tsinghua.edu.cn/simple
  15.       - gradio==3.16.2
  16.       - albumentations==1.3.0
  17.       - opencv-contrib-python==4.3.0.36
  18.       - imageio==2.9.0
  19.       - imageio-ffmpeg==0.4.2
  20.       - pytorch-lightning==1.5.0
  21.       - omegaconf==2.1.1
  22.       - test-tube>=0.7.5
  23.       - streamlit==1.12.1
  24.       - einops==0.3.0
  25.       - transformers==4.19.2
  26.       - webdataset==0.2.5
  27.       - kornia==0.6
  28.       - open_clip_torch==2.0.2
  29.       - invisible-watermark>=0.1.5
  30.       - streamlit-drawable-canvas==0.8.0
  31.       - torchmetrics==0.6.0
  32.       - timm==0.6.12
  33.       - addict==2.4.0
  34.       - yapf==0.32.0
  35.       - prettytable==3.6.0
  36.       - safetensors==0.2.7
  37.       - basicsr==1.4.2
  38.       - xformers
复制代码


sign.jpg
发表于 2023-2-17 16:21 | 显示全部楼层
https://www.vrmwebpose.app/这个网站的摆动作太累了,而且感觉关节有点少
发表于 2023-2-17 16:23 来自手机 | 显示全部楼层
上帝也生病 发表于 2023-2-17 16:21
https://www.vrmwebpose.app/这个网站的摆动作太累了,而且感觉关节有点少

为什么不试试一路神全家桶或者定制女仆呢
发表于 2023-2-17 16:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-2-17 16:29 | 显示全部楼层
Nice boat,树导巨作我来顶顶,我就不重复轮子了
其实discuz有markdown插件,毕竟本质上大家都是html5
发表于 2023-2-17 16:42 来自手机 | 显示全部楼层
2张8g的2070s有能用吗?居然要9g啊啊啊
 楼主| 发表于 2023-2-17 16:44 | 显示全部楼层
xzzfft 发表于 2023-2-17 16:42
2张8g的2070s有能用吗?居然要9g啊啊啊

低显存可以跑,已经更新了。
 楼主| 发表于 2023-2-17 16:45 | 显示全部楼层

windows版本的,linux版本是差不多的,anaconda改为linux版本即可。
发表于 2023-2-17 17:18 | 显示全部楼层
mark了,我也有类似6楼的问题,堆几块tesla P4有用么
 楼主| 发表于 2023-2-17 17:19 | 显示全部楼层
mypchas6fans 发表于 2023-2-17 17:18
mark了,我也有类似6楼的问题,堆几块tesla P4有用么

低显存教程已经更新启用方式,多卡目前没有用,需要手动修改代码。
发表于 2023-2-17 17:24 | 显示全部楼层
3070Ti可以跑嘛,可以的话晚上回家整起来
发表于 2023-2-17 17:28 | 显示全部楼层
感谢分享
发表于 2023-2-17 17:36 | 显示全部楼层
马克一下,有空试试各种阵营软件的区别。
发表于 2023-2-17 17:42 来自手机 | 显示全部楼层
马克。太酷了
发表于 2023-2-17 17:45 来自手机 | 显示全部楼层
插眼支持。
发表于 2023-2-17 18:05 | 显示全部楼层
Mark,摇身一变成为画师
发表于 2023-2-17 18:38 | 显示全部楼层
树导,ControlNet软件下载完,目录下没有environment.yaml文件呢,everything也没搜索到。。
 楼主| 发表于 2023-2-17 18:55 | 显示全部楼层
xzzfft 发表于 2023-2-17 18:38
树导,ControlNet软件下载完,目录下没有environment.yaml文件呢,everything也没搜索到。。 ...


抱歉,那个地方写错了,用这个下载代码:

git clone https://github.com/lllyasviel/ControlNet.git

原文的是下载模型的,已经下载了的话后面就不用再下了。

已经修改了。
发表于 2023-2-17 19:10 | 显示全部楼层
请问从3060开始到4090各个级别的显卡,作画性能方面有多大的提升幅度?
发表于 2023-2-17 19:12 | 显示全部楼层
各种模型好多啊,看花了眼
好像chilloutmix_NiPrunedFp32之类的,还有LORA啥的。
发表于 2023-2-17 19:28 | 显示全部楼层
6 马克一下
发表于 2023-2-17 19:38 | 显示全部楼层
看完当学会了
发表于 2023-2-17 19:47 | 显示全部楼层
屏幕截图 2023-02-17 194607.png
安装阶段就遇到问题了。。。这个是什么原因呢?
 楼主| 发表于 2023-2-17 19:49 | 显示全部楼层
abbot 发表于 2023-2-17 19:47
安装阶段就遇到问题了。。。这个是什么原因呢?

如果遇到这个情况,就直接下载安装吧,是一样的。

https://github.com/git-for-windo ... t-2.39.2-64-bit.exe
发表于 2023-2-17 19:50 | 显示全部楼层
稍微再给他一点迭代时间
我倒是很感兴趣 多人火柴人 的效果
发表于 2023-2-17 19:51 来自手机 | 显示全部楼层
好长,看起来不容易啊
发表于 2023-2-17 20:06 | 显示全部楼层
树导  求推荐个Markdown本地软件。
发表于 2023-2-17 20:49 | 显示全部楼层
127.0.0.1不是本地的吗  访问好慢。。还要转圈圈
 楼主| 发表于 2023-2-17 20:51 | 显示全部楼层
xzzfft 发表于 2023-2-17 20:06
树导  求推荐个Markdown本地软件。

我用的pycharm自带的插件。
 楼主| 发表于 2023-2-17 20:52 | 显示全部楼层
xzzfft 发表于 2023-2-17 20:49
127.0.0.1不是本地的吗  访问好慢。。还要转圈圈

我这很快啊。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-5-28 18:11 , Processed in 0.016985 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表