AI作画版本答案,可以姿态干预的ControlNet动漫版手把手教程
本帖最后由 我輩樹である 于 2023-2-24 02:16 编辑为显卡找点事,手把手教程教你用当前版本答案ControlNet,有写实版和二次元萌妹版。
零基础,复制粘贴纯享版哦。
写实:
二次元:
下面是markdown代码,建议用markdown编辑器查看。
因为当前ControlNet正在活跃更新中,更新频繁,本教程在2月17日的版本上验证了,后续有更新再说吧。
# 从零开始安装动漫风格的ControlNet
本教程基于:
```
https://github.com/lllyasviel/ControlNet/discussions/12
```
感谢作者
## 前置软件安装
# Anaconda
Anaconda是一种包管理器,并提供了虚拟环境和版本解算器用于隔离和部署。
* 安装方式
使用下面的链接下载并安装:
```
https://repo.anaconda.com/archive/Anaconda3-2022.10-Windows-x86_64.exe
```
* 安装检查
打开菜单中的```Anaconda Powershell Prompt (anaconda3)```。
此时命令行前面会出现一个```(base)```的字样代表Anaconda安装成功,代表你当前处于base虚拟环境之下。
* 添加Anaconda的国内源(可选)
完成Anaconda的安装后,还需通过执行下面的命令添加Anaconda的国内镜像源(清华):
```
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
```
当从Anaconda下载的时候,会优先搜索上面添加的国内源服务器,保证下载速度。
可以通过```conda config --show channels```命令查看添加是否成功。
# Git
Git是一种版本管理工具,在本例中多用于从远程的仓库获取代码和模型数据。
* 安装方式
打开命令行工具,使用下面的命令安装:
```
winget install --id Git.Git -e --source winget
```
* 替代安装方式
可以通过下列链接下载直接安装:
```
https://github.com/git-for-windows/git/releases/download/v2.39.2.windows.1/Git-2.39.2-64-bit.exe
```
* 安装检查
安装完成后,关闭并重新打开命令行,使用下列命令检查是否安装成功:
```
git --version
```
## ControlNet代码下载与环境构建
ControlNet代码发布在下列地址:
```
https://github.com/lllyasviel/ControlNet
```
其官方模型发布在下列地址:
```
https://huggingface.co/lllyasviel/ControlNet/tree/main
```
# 下载代码并构建运行环境
打开菜单中的```Anaconda Powershell Prompt (anaconda3)```
使用```cd```命令转移到你希望放置ControlNet的目录。
全功能的ControlNet及其模型需要100GB左右的空间,请注意规划存储空间。
使用下面的命令获取ControlNet代码:
```
git clone https://github.com/lllyasviel/ControlNet.git
```
完成后,会在当前目录下创建一个ControlNet目录。
使用```cd ControlNet```命令进入该目录。
为了规避因为网络原因导致的构建失败问题,使用文本编辑器打开目录下的environment.yaml文件。
在```- pip:```下面添加代码```- -i https://pypi.tuna.tsinghua.edu.cn/simple```
注意缩进对齐,完成后应如下所示(添加的项目应该与其他子项保持相同缩进):
```
- pip:
- -i https://pypi.tuna.tsinghua.edu.cn/simple
```
保存退出。
* 构建运行环境
在```(base)```前缀下,使用下列的命令构建环境(如果希望激活xformers,请参考115楼):
```
conda env create -f environment.yaml
```
构建需要一定的时间,且还是会有构建失败的情况发生。
无论是哪种情况,请先使用```conda activate control```命令尝试激活刚才创建的环境。
* 构建失败
构建失败原因一般是pip工具无法正常访问软件仓库,pip工具是python自带的包管理器,本例中运行环境的构建一部分由conda提供源,一部分由pip提供源。
这个时候我们需要为pip工具添加国内镜像源服务器。
首先使用```python --version```和```pip --version```命令确保python及pip已经安装成功。
python版本应在3.8以上,pip版本应在20以上。
接下来使用下面两行代码为pip添加国内源(清华):
```
pip config --global set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config --global set install.trusted-host tuna.tsinghua.edu.cn
```
添加成功后,命令行会反馈配置写入到一个pip.ini文件中,可以打开该文件检查是否添加成功。
或者使用```pip config list```指令查看。
* 重新构建环境
虽然构建失败,但虚拟环境已经创建,且部分环境已经构建成功,此时我们仅需构建失败的部分。
确保你处于control虚拟环境之下(即命令行前缀为```(control)```)
使用下面的命令继续构建环境:
```
conda env update -f environment.yaml
```
完成构建。
# 下载官方模型
使用下面的命令激活lfs组件用于下载大体积文件:
```
git lfs install
```
进入一个空闲目录中,使用下面的命令下载模型:
```
git clone https://huggingface.co/lllyasviel/ControlNet
```
请确保网络通畅,该命令会下载90GB左右的模型文件。hugface在国内下载速度也很快,经测试带宽基本可以跑满。
如果下载速度过慢,请参考最下面的troubleshooting部分。
下载过程中命令行界面的反馈比较少,可以通过任务管理器网络通信监控下载状态。
如果你并不需要全功能的ControlNet,仅需挑选部分模型下载即可,模型的用途和位置可参考:
```
https://huggingface.co/lllyasviel/ControlNet
```
# 合并代码和模型
下载的代码和模型具有完全相同的目录结构,直接合并即可。
# 试运行
在本例中,我们仅关心ControlNet的根据姿态生成功能,即```pose2image```。
确保你有一张显存大于9GB的Nvidia显卡(如果你的显卡显存小于9GB,或者需要一次性生成多张图片,请见下文中的代码修改部分)
确保你位于```(control)```虚拟环境之下,并位于ControlNet目录中。
使用下面的命令运行ControlNet的pose2image功能。
```
python gradio_pose2image.py
```
等待初始化完成后,命令行将回馈一个网址,将其中的```0.0.0.0```改为```127.0.0.1```并使用浏览器打开。
enjoy。
* 注意:可以使用```Ctrl + C```指令退出。
## 还没结束,大奶二次元萌妹呢
为了生成大奶二次元萌妹,需要使用社区模型。
首先,下载下列两个模型:
```
https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-full.safetensors
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt
```
下载完毕后,将它们移动到```ControlNet/models```目录中。
确保你位于```(control)```虚拟环境之下,并位于ControlNet目录中。
使用下列命令迁移生成基于上述两个模型的新模型:
```
python tool_transfer_control.py
```
运行结束后,会在models目录下生成一个新的模型```control_any3_openpose.pth```,这就是我们需要的。
此外,该模型也可以直接在下列地址下载:
```
https://huggingface.co/toyxyz/Control_any3/tree/main
```
# 编辑代码让其调用新模型
打开ControlNet目录下的```gradio_pose2image.py```文件。
修改代码有两处,如下:
* 1,在```from share import *```的下面添加:
```
from cldm.hack import hack_everything
hack_everything(clip_skip=2)
```
* 2,在```model = create_model('./models/cldm_v15.yaml').cpu()```下面修改:
```
# 上面是写实模型,下面是动漫模型,可以通过追加或删除代码前端的 # 符号调整
# model.load_state_dict(load_state_dict('./models/control_sd15_openpose.pth', location='cuda'))
model.load_state_dict(load_state_dict('./models/control_any3_openpose.pth', location='cpu'))
```
顺便可以把最后一行的```0.0.0.0```改为```127.0.0.1```。
* 开启低显存模式
如果你的显卡显存小于9GB,或者你需要一次性生成多张图片,请打开ControlNet根目录下的config.py文件,修改如下:
```
save_memory = True
```
保存退出。
# 生成大奶萌妹
确保你位于```(control)```虚拟环境之下,并位于ControlNet目录中。
再次使用```python gradio_pose2image.py```运行,同样的指令即可生成大奶萌妹。
对于姿势的干预,你需要提供一张姿态图,建议使用下面的两个网站摆好姿势,下载图片,然后再去生成。
同时也可以接受prompt词的指导。
```
二次元
https://www.vrmwebpose.app/
写实
https://webapp.magicposer.com/
```
enjoy。
troubleshooting:
如果出现ProxyError的情况,请关闭你的代理。
代理要分情况启用,有的时候可以用来加速,有的会因为验证的原因不让用。请多加尝试。
如果下载模型速度很慢的话,可以打开 https://huggingface.co/lllyasviel/ControlNet/tree/main 这个网址,进入各个目录,lfs标志后面有个向下的箭头,就是模型的地址,可以用迅雷之类的下载工具下,最后放到相对应的位置即可。虽然麻烦了点,但和用git命令下没区别。
本帖最后由 我輩樹である 于 2023-3-25 21:44 编辑
anishieh` 发表于 2023-2-24 00:28
这个分辨率最高只能768,那些更高分辨率的一般是哪个框架做的啊
只是界面的限制,可以如下改一下:
gradio_pose2image.py文件的89行左右:
image_resolution = gr.Slider(label="Image Resolution", minimum=256, maximum=<这里改成你想要的大小>, value=512, step=256)
当然如果分辨率太大,可能会崩。
建议打开xformers加速。方法是用下面的environment.yaml构建环境。
仅测试了pose2image,如果你要用别的ControlNet功能慎用:
name: control
channels:
- pytorch
- nvidia
- defaults
dependencies:
- python=3.8.10
- pip
- pytorch=1.13.1
- torchvision
- numpy=1.23.1
- pytorch-cuda=11.7
- pip:
- -i https://pypi.tuna.tsinghua.edu.cn/simple
- gradio==3.16.2
- albumentations==1.3.0
- opencv-contrib-python==4.3.0.36
- imageio==2.9.0
- imageio-ffmpeg==0.4.2
- pytorch-lightning==1.5.0
- omegaconf==2.1.1
- test-tube>=0.7.5
- streamlit==1.12.1
- einops==0.3.0
- transformers==4.19.2
- webdataset==0.2.5
- kornia==0.6
- open_clip_torch==2.0.2
- invisible-watermark>=0.1.5
- streamlit-drawable-canvas==0.8.0
- torchmetrics==0.6.0
- timm==0.6.12
- addict==2.4.0
- yapf==0.32.0
- prettytable==3.6.0
- safetensors==0.2.7
- basicsr==1.4.2
- xformers
上帝也生病 发表于 2023-2-17 16:21
https://www.vrmwebpose.app/这个网站的摆动作太累了,而且感觉关节有点少
为什么不试试一路神全家桶或者定制女仆呢 Nice boat,树导巨作我来顶顶,我就不重复轮子了[怪脸]
其实discuz有markdown插件,毕竟本质上大家都是html5 2张8g的2070s有能用吗?居然要9g啊啊啊 xzzfft 发表于 2023-2-17 16:42
2张8g的2070s有能用吗?居然要9g啊啊啊
低显存可以跑,已经更新了。 我永远喜欢框框 发表于 2023-2-17 16:27
感觉像是liunx?
windows版本的,linux版本是差不多的,anaconda改为linux版本即可。 mark了,我也有类似6楼的问题,堆几块tesla P4有用么 mypchas6fans 发表于 2023-2-17 17:18
mark了,我也有类似6楼的问题,堆几块tesla P4有用么
低显存教程已经更新启用方式,多卡目前没有用,需要手动修改代码。 3070Ti可以跑嘛,可以的话晚上回家整起来 感谢分享 马克一下,有空试试各种阵营软件的区别。 马克。太酷了 插眼支持。 树导,ControlNet软件下载完,目录下没有environment.yaml文件呢,everything也没搜索到。。 xzzfft 发表于 2023-2-17 18:38
树导,ControlNet软件下载完,目录下没有environment.yaml文件呢,everything也没搜索到。。 ...
抱歉,那个地方写错了,用这个下载代码:
git clone https://github.com/lllyasviel/ControlNet.git
原文的是下载模型的,已经下载了的话后面就不用再下了。
已经修改了。 请问从3060开始到4090各个级别的显卡,作画性能方面有多大的提升幅度? 各种模型好多啊,看花了眼
好像chilloutmix_NiPrunedFp32之类的,还有LORA啥的。 6 马克一下 看完当学会了
安装阶段就遇到问题了。。。这个是什么原因呢? abbot 发表于 2023-2-17 19:47
安装阶段就遇到问题了。。。这个是什么原因呢?
如果遇到这个情况,就直接下载安装吧,是一样的。
https://github.com/git-for-windows/git/releases/download/v2.39.2.windows.1/Git-2.39.2-64-bit.exe [偷笑]稍微再给他一点迭代时间
我倒是很感兴趣 多人火柴人 的效果 好长,看起来不容易啊 树导求推荐个Markdown本地软件。 127.0.0.1不是本地的吗访问好慢。。还要转圈圈 xzzfft 发表于 2023-2-17 20:06
树导求推荐个Markdown本地软件。
我用的pycharm自带的插件。 xzzfft 发表于 2023-2-17 20:49
127.0.0.1不是本地的吗访问好慢。。还要转圈圈
我这很快啊。