市面上有很多可以被用于AI绘画的应用,例如DALL-E、Midjourney、NovelAI等,他们的大部分都依托云端服务器运行,一部分还需要支付会员费用来购买更多出图的额度。在2022年8月,一款叫做Stable Diffusion的应用,通过算法迭代将AI绘画的精细度提上了一个新的台阶,并能在以秒计数的时间内完成产出,还可以在一台有“民用级”显卡的电脑上运行。
通过Stable Diffusion,可以绘制出各种风格的作品,比如动漫风、插画立绘、国风水墨、3D建模,甚至是照片级的拟真图像,而借助诸如LoRa、ControlNet等衍生功能,还可以做到精准控制美术风格、角色细节、姿势、动作、构图等。更更重要的是,他是全面开源的,这意味着你可以在自己的电脑上部署整个程序,使用它出图、作画是完全免费而且不限量的!市面上大多数商业级的AI绘画应用,都是基于SD去开发的。
尽管Stable Diffusion非常亲民,但他还是有一定的配置要求的,它需要一张性能足够强大的独立显卡提供算力进行绘制。实际上,“跑得动”和“玩得爽”是两种不同的体验,算力上的差异会极大的影响AI绘画时的出图效率,也正是因为此,有很多同学因为个人电脑捉急的配置而错失了深入体验Stable Diffusion的机会。等一下,你知道京东云吗?京东云GPU云主机是提供GPU算力的弹性计算服务,具有超强的并行计算能力,正在深度学习、科学计算、图形图像处理、视频编解码等场景广泛使用,为您提供触手可得的算力,有效缓解计算压力,提升您的业务效率,并可弹性扩展,助您快速构建异构的计算应用。
在经历了一系列的探索后,我为你总结出了一套零基础的、非常好上手的借助京东云GPU云主机部署安装Stable Diffusion WebUI以及相关工具和插件的保姆集教程,请查收。
京东云GPU云主机的标准型的配置包含Tesla P40 24G显卡、12核48G,跑Stable Diffusion体验非常好,配置推荐如下:
| 配置 | 推荐 | 说明 |
|---|---|---|
| 系统 | Ubuntu 20.04 64位 | |
| 规格 | GPU 标准型 p.n - p.n1p40.3xlarge | 12核 48G Nvidia Tesla P40 24G显存 |
| 系统盘 | 100G | 系统盘建议100G |
| 带宽 | 5M | 建议5M |
首先在左侧菜单【安全组】创建一个安全组,在【入站规则】和【出站规则】中分别添加并开放7860、7861、8080、8888端口。其中
然后在实例详情中,点击【安全组】-【绑定安全组】绑定刚刚创建的安全组。
在英伟达官网根据显卡型号、操作系统、CUDA等查询驱动版本。官网查询链接a8fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2F1N6X3W2V1K9h3q4Q4x3X3g2U0L8$3#2Q4x3V1k6p5L8%4N6F1L8r3!0S2k6q4)9J5c8X3W2F1k6r3g2^5i4K6u0W2j5i4y4H3P5q4)9K6c8X3I4S2L8X3N6Q4x3@1c8W2L8W2)9J5k6s2g2K6
注意这里的CUDA版本,如未安装CUDA可以先选择一个版本,稍后再安装CUDA.
点击Search
如上图,查询到合适的版本为510. 然后可以使用apt安装对应驱动版本,使用apt安装更方便一些。
1 2 3 4 | # 安装510版本驱动apt install nvidia-driver-510# 查看驱动信息nvidia-smi |
如安装成功,则可以展示如下提示信息。
访问英伟达开发者网站先选择CUDA版本(版本要对应2.1中GPU驱动支持的CUDA版本),再根据操作系统选择对应CUDA安装命令,访问链接be1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2F1N6X3W2V1K9h3q4Q4x3X3g2U0L8$3#2Q4x3V1k6U0N6h3c8S2i4K6u0V1N6r3!0G2L8r3E0A6N6q4)9J5k6r3q4J5j5$3S2A6N6X3f1`.
如上面安装确定所选择驱动对应的CUDA版本为11.6,根据安装命令安装, 以下命令适用Ubuntu 20.04 x86_64, GPU驱动510版本
1 2 3 4 5 6 7 | wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pinsudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.debsudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.debsudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pubsudo apt-get updatesudo apt-get -y install cuda |
Stable Diffusion WebUI目前最低支持Python 3.10,所以直接安装3.10版本,安装命令:
1 2 3 4 5 | apt install software-properties-commonadd-apt-repository ppa:deadsnakes/ppaapt updateapt install python3.10python3.10 --verison |
PIP设置国内源,由于默认源在国外,所以安装可能经常会出现timeout等问题,使用国内源可以很大程度避免下载包timeout的情况。将如下内容复制到文件~/.pip/pip.conf当中,如没有该文件,先创建touch ~/.pip/pip.conf。
1 2 3 4 | [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host = https://pypi.tuna.tsinghua.edu.cn |
非常推荐使用Anaconda。Anaconda可以便捷获取包且对包能够进行管理,同时对Python环境可以统一管理的发行版本。安装命令也很简单:
1 2 | wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.shbash ./Anaconda3-2023.03-1-Linux-x86_64.sh |
创建Python3.10.9环境,并使用该环境
1 2 | conda create -n python3.10.9 python==3.10.9conda activate python3.10.9 |
首先在PyTorch官网查询对应CUDA版本的Torch,如上述章节2.2中CUDA 11.6需要安装pytorch1.13.1
1 2 3 4 5 | # 使用conda安装,两种安装方式二选一conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia# 使用pip安装,两种安装方式二选一pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 |
注意首先激活Python3.10环境:
1 | conda activate python3.10.9 |
然后下载stable-diffusion-webui
1 | git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git |
cd到stable-diffusion-webui目录安装相应的依赖,如有访问网络超时、失败等,注意按照章节2.3中设置国内源,如果再次失败,重试几次一般都可完成安装。
1 2 3 | cd stable-diffusion-webuipip install -r requirements_versions.txtpip install -r requirements.txt |
安装完成后,执行如下启动命令:
1 | python launch.py --listen --enable-insecure-extension-access |
这一步骤会下载一些常用模型,如果遇到下载失败,根据报错提示在huggingface.co下载模型放到对应目录,如下载stable-diffusion-v1-5模型,搜索找到54cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Z5N6h3N6Y4K9h3&6Y4k6X3q4U0k6g2)9J5k6h3y4G2i4K6u0r3M7Y4g2F1N6$3q4&6L8h3I4Q4x3V1k6K6N6r3q4T1L8r3g2Q4x3X3c8V1K9h3k6X3N6i4y4A6L8$3&6Q4x3X3c8$3x3g2)9J5k6o6g2Q4x3V1k6@1M7X3g2W2i4K6u0r3L8h3q4A6L8R3`.`.
点击图中下载按钮,下载v1-5-pruned-emaonly.safetensors到stable-diffusion-webui/models/Stable-diffusion目录,其他模型同理。
模型下载完成,再次执行启动命令,提示已启动到7860端口,则可以通过IP+7860端口访问:
公网建议设置访问密码,注意替换下面命令当中的username:password为用户名、密码。
1 | python launch.py --listen --enable-insecure-extension-access --gradio-auth username:password |
上述命令非后台运行,如需后台运行可以使用nohup、tmux等方法实现。
下载一个模型到/stable-diffusion-webui/models/Stable-diffusion目录,模型可以在88bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0K9i4k6A6N6r3q4A6i4K6u0W2j5$3!0E0i4K6u0r3i4@1f1$3i4K6W2r3i4@1p5#2i4@1f1$3i4K6R3&6i4@1u0q4i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4@1p5$3i4K6R3J5i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1#2i4K6W2n7i4@1u0q4i4@1f1$3i4K6R3&6i4K6R3H3i4@1f1%4i4K6V1@1i4@1p5^5L8h3q4B7K9h3y4y4d9g2R3`. realistic模型。下载完成后点击左上角刷新按钮,然后选择刚下载的模型,输入Promot和参数即可生成图片。
附上图所用Promot和参数
Prompt
1 | 1 girl a 24 y o woman, blonde, dark theme, soothing tones, muted colors, high contrast, look at at viewer, contrasty , vibrant , intense, stunning, captured in the late afternoon sunlight, using a Canon EOS R6 and a 16-35mm to capture every detail and angle, with emphasis on the lighting and shadows, late afternoon sunlight, 8K |
Negative prompt
1 | (deformed, distorted, disfigured, doll:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, 3d, illustration, cartoon, flat , dull , soft, (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, |
其他参数
使用Lora必不可少的插件,Additional Networks可以用来控制checkpoint+LoRa或者多个LoRa模型生成混合风格的图像,并且可以设置Lora模型的Weight。安装方式如下:
打开stable-diffusion-webui,点击【Extensions】- 【Install from URL】输入a97K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9s2m8J5L8%4S2&6i4K6u0W2j5$3!0E0i4K6u0r3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6C8L8$3S2&6j5g2)9J5k6s2y4K6i4K6u0r3M7$3c8Q4x3X3c8%4k6h3u0#2K9g2)9J5k6r3q4V1k6r3W2@1K9h3!0F1j5h3I4Q4x3X3c8F1k6i4c8%4L8%4u0C8M7#2)9J5k6h3N6A6N6l9`.`.
然后点击【Install】等待安装,直到在【Installed】中显示,然后直接用命令重启stable-diffusion-webui(不是reload webui),强烈推荐所有插件安装完成都命令重启stable-diffusion-webui,可以免去很多麻烦。
最后点击【Setting】-【Additional Networks】输入LoRa文件夹的绝对路径,如/root/stable-diffusion-webui/models/Lora(示例,请填写你的系统路径),然后【Reload UI】等待重启完成。
然后可以在【txt2img】或【img2img】中选择Lora模型并设置权重使用。
作为Stable Diffusion必装插件,ControlNet 允许用户对生成的图像进行精细的控制,以获得更好的视觉效果,ControlNet让AI绘画的可控性有了质的突变,让AGIC真正的可以投入生产使用。
打开stable-diffusion-webui,点击【Extensions】- 【Install from URL】输入fdaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9s2m8J5L8%4S2&6i4K6u0W2j5$3!0E0i4K6u0r3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6y4K9h3E0#2j5X3W2D9L8q4)9J5c8Y4y4V1i4K6u0V1N6$3g2T1N6h3W2Q4x3X3c8U0L8$3&6@1M7X3!0D9L8X3g2@1i4K6u0W2k6$3W2@1
然后点击【Install】等待安装,直到在【Installed】中显示,然后直接用命令重启stable-diffusion-webui(不是reload webui)。
由于controlNet会使用很多模型,所以在重启的时候会默认下载,如果下载失败或超时,需要手动下载到controlnet目录。
访问huggingface.co找到controlnet的地址:206K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Z5N6h3N6Y4K9h3&6Y4k6X3q4U0k6g2)9J5k6h3y4G2i4K6u0r3L8r3I4D9P5h3q4K6N6X3W2W2L8q4)9J5c8V1y4G2L8Y4c8J5L8$3I4z5k6i4c8Q4x3X3c8$3x3g2)9J5k6o6q4Q4x3V1k6@1M7X3g2W2i4K6u0r3L8h3q4A6L8R3`.`.
手动下载上面模型文件到stable-diffusion-webui/extensions/sd-webui-controlnet/models目录,查看已下载controlnet模型:
下载完成,重启stable-diffusion-webui即可在【txt2img】或【img2img】使用。
Jupyter Notebook是一个基于网页的交互环境,可以用来编辑、运行Python代码,可视化看到运行结果。同时提供了基础的文件树操作功能等。
如已在章节2.4中安装了Anaconda,直接使用以下命令运行notebook
1 | jupyter notebook --allow-root --NotebookApp.token='设置你的token' |
访问IP+8888端口,可以开始使用notebook
Kohya_ss是公认推荐训练Stable Diffusion模型的可视化工具,尤其在windows平台支持比较好,经过尝试在linux直接使用会遇到各种环境原因的问题,为了避免这些问题,十分推荐使用docker安装。
先按照docker官方文档安装好docker,Ubuntu安装docker文档:351K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2k6r3!0U0K9$3g2J5i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Y4K9h3&6W2i4K6u0r3K9h3&6K6N6r3q4D9L8q4)9J5c8Y4g2T1N6h3&6@1N6g2)9J5c8R3`.`.
由于在docker容器中需要使用GPU资源,所以还需要先安装NVIDIA Container Toolkit
1 2 3 4 5 | sudo apt-get update \ && sudo apt-get install -y nvidia-container-toolkit-base# 查看是否安装成功nvidia-ctk --version |
然后下载kohya_ss:
1 | git clone https://github.com/bmaltais/kohya_ss.git |
如下图,修改kohya_ss/docker-compose.yaml文件端口为0.0.0.0:7861:7860(将kohya_ss的7860端口映射到宿主机的7861端口,因为7860会被Stable Diffusion WebUI占用),
启动参数设置为"--username xxxx --password xxxx --headless",注意替换xxxx为需要设置的账号密码
然后执行
1 2 3 | docker compose build # 首次执行需要builddocker compose run --service-ports kohya-ss-gui |
过程中会从huggingface.co下载模型文件,如果下载失败,可以尝试手动下载到目录kohya_ss/.cache/user/huggingface/hub/models--openai--clip-vit-large-patch14/snapshots/8d052a0f05efbaefbc9e8786ba291cfdf93e5bff,最后的hash值注意改成对应的版本。
下载地址3c7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Z5N6h3N6Y4K9h3&6Y4k6X3q4U0k6g2)9J5k6h3y4G2i4K6u0r3L8%4m8W2L8X3q4A6i4K6u0r3j5$3I4A6M7q4)9J5k6s2k6A6N6q4)9J5k6r3I4S2M7X3N6W2i4K6u0V1M7r3q4@1j5$3R3I4y4q4)9J5c8Y4c8J5k6h3g2Q4x3V1k6E0j5h3W2F1i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4@1t1K6i4@1p5^5i4@1f1$3i4K6R3@1i4K6S2r3i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1^5i4@1u0p5i4@1u0p5i4@1f1#2i4K6R3#2i4@1p5^5i4@1f1&6i4K6R3K6i4@1p5^5i4@1f1$3i4K6V1$3i4K6R3%4i4@1f1@1i4@1u0n7i4@1t1$3
下载完成,然后访问端口+7861端口,可以开始使用Kohya_ss训练模型了。
安装完Stable Diffusion及上面的推荐插件,你的Stable Diffuion已经具备强大的生产力。后续我会继续同大家一起探索和分享更多的使用经验,敬请期待系列文章下一集。
现在购买京东云GPU云主机新人即享99元7天的一折体验价(合0.59元/小时),即刻开启炼丹之旅。
作者:京东科技 王雷
来源:京东云开发者社区