我輩樹である 发表于 2023-2-17 16:17

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-2-24 02:12

本帖最后由 我輩樹である 于 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

yangzi123aaa20 发表于 2023-2-17 16:23

上帝也生病 发表于 2023-2-17 16:21
https://www.vrmwebpose.app/这个网站的摆动作太累了,而且感觉关节有点少

为什么不试试一路神全家桶或者定制女仆呢

我永远喜欢框框 发表于 2023-2-17 16:27

T.JOHN 发表于 2023-2-17 16:29

Nice boat,树导巨作我来顶顶,我就不重复轮子了[怪脸]
其实discuz有markdown插件,毕竟本质上大家都是html5

xzzfft 发表于 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

我永远喜欢框框 发表于 2023-2-17 16:27
感觉像是liunx?

windows版本的,linux版本是差不多的,anaconda改为linux版本即可。

mypchas6fans 发表于 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可以跑嘛,可以的话晚上回家整起来

airbeta 发表于 2023-2-17 17:28

感谢分享

m4a1chbb 发表于 2023-2-17 17:36

马克一下,有空试试各种阵营软件的区别。

秦南瓜 发表于 2023-2-17 17:42

马克。太酷了

vzvxvcvv 发表于 2023-2-17 17:45

插眼支持。

HaYuanJi 发表于 2023-2-17 18:05

xzzfft 发表于 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

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

已经修改了。

manysu 发表于 2023-2-17 19:10

请问从3060开始到4090各个级别的显卡,作画性能方面有多大的提升幅度?

manysu 发表于 2023-2-17 19:12

各种模型好多啊,看花了眼
好像chilloutmix_NiPrunedFp32之类的,还有LORA啥的。

abbot 发表于 2023-2-17 19:28

6 马克一下

碌木 发表于 2023-2-17 19:38

看完当学会了

abbot 发表于 2023-2-17 19:47


安装阶段就遇到问题了。。。这个是什么原因呢?

我輩樹である 发表于 2023-2-17 19:49

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

木子滴血 发表于 2023-2-17 19:50

[偷笑]稍微再给他一点迭代时间
我倒是很感兴趣 多人火柴人 的效果

loughlion 发表于 2023-2-17 19:51

好长,看起来不容易啊

xzzfft 发表于 2023-2-17 20:06

树导求推荐个Markdown本地软件。

xzzfft 发表于 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不是本地的吗访问好慢。。还要转圈圈

我这很快啊。
页: [1] 2 3 4
查看完整版本: AI作画版本答案,可以姿态干预的ControlNet动漫版手把手教程