背景信息
Stable Diffusion是一个可通过文本生成图像的扩散模型,基于CLIP模型从文字中提取隐变量,并通过UNet模型生成图片;最后通过逐步扩散、逐步处理图像,优化图像质量。
AIACC-Inference(AIACC推理加速器)Torch版可通过对模型的计算图进行切割,执行层间融合,以及高性能OP实现,大幅度提升PyTorch的推理性能。您无需指定精度和输入尺寸,即可通过JIT编译的方式对PyTorch框架下的深度学习模型进行推理优化。更多信息,请参见手动安装AIACC-Inference(AIACC推理加速)Torch版。
本文基于阿里云GPU服务器和Stable Diffusion的WebUI框架,指导您如何基于AIACC加速器快速实现AIGC绘画。
特别提醒
- 阿里云不对第三方模型的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。
- 您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。
操作步骤
创建ECS实例
1.前往实例创建页。
2.按照界面提示完成参数配置,创建一台ECS实例。需要注意的参数如下,其他参数的配置,请参见自定义购买实例。
- 实例:选择实例规格为ecs.gn7i-c16g1.4xlarge。
- 镜像:本文使用已部署好推理所需环境的云市场镜像,名称为ai-inference-solution。
- 公网IP:选中分配公网IPv4地址,带宽计费模式选择按使用流量,带宽峰值设置为100 Mbps,以加快模型下载速度。
3.添加安全组规则。
在ECS实例安全组的入方向添加安全组规则并放行50000端口。具体操作,请参见添加安全组规则。
4.创建完成后,在ECS实例页面,获取公网IP地址。
说明 :公网IP地址用于生成图片测试时访问WebUI服务。
下载并配置模型
本实践中,下载了以下三个模型,您可以根据需要,切换模型进行测试。
- v1-5-pruned-emaonly.safetensors:Stable Diffusion v1.5模型,一种潜在的text-to-image(文本到图像)的扩散模型,能够在给定任何文本输入的情况下生成逼真的图像。
提醒: 该模型中文提示词效果不好,建议使用英文提示词。
- Taiyi-Stable-Diffusion-1B-Chinese-v0.1:太乙-中文模型,基于0.2亿筛选过的中文图文对训练,可以使用中文进行AI绘画。
- Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1:太乙-动漫风格模型,首个开源的中文Stable Diffusion动漫模型,该模型是基于Taiyi-Stable-Diffusion-1B-Chinese-v0.1进行继续训练,经过100万筛选过的动漫中文图文对训练得到的。太乙-动漫风格模型不仅能够生成精美的动漫图像,还保留了太乙-中文模型对于中文概念强大的理解能力。
1.使用root用户远程连接ECS实例。
该市场镜像中,运行环境及模型都安装在/root
目录下,连接实例时需使用root用户。具体操作,请参见通过密码或密钥认证登录Linux实例。
2.执行如下命令,下载v1-5-pruned-emaonly.safetensors模型。
cd ~/stable-diffusion-webui/models/Stable-diffusion wget "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"
当显示如下图所示的回显信息时,说明已下载完成。
3.执行如下命令,下载Taiyi-Stable-Diffusion-1B-Chinese-v0.1模型。
cd ~/stable-diffusion-webui/repositories/ git lfs clone https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1
当显示如下图所示的回显信息时,说明已下载完成。
4.执行如下命令,下载Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1模型。
cd ~/stable-diffusion-webui/repositories/ git lfs clone https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1
当显示如下图所示的回显信息时,说明已下载完成。
5.为Nginx添加用户登录验证。该镜像预装了Nginx软件,用于登录鉴权,以防止非授权用户登录。
a.执行如下命令,创建登录用户和密码。
htpasswd -bc /etc/nginx/password ${UserName} '${Password}'
说明:
${UserName}
请替换为您自定义的用户名,例如admin;'${Password}'
请替换为您自定义的密码,例如ECS@test1234。
b.执行如下命令,重启Ngnix。
systemctl restart nginx
c.执行如下命令,查看Ngnix状态。
systemctl status nginx
当显示如下图所示的回显信息时,说明Ngnix处于运行中。
d.执行如下命令,设置Ngnix开机自启动。
systemctl enable nginx
开始文本生成图片
步骤一:启动WebUI服务
执行如下命令,启动WebUI服务。
cd ~/stable-diffusion-webui/ nohup ./run_taiyi.sh &
特别提醒:建议您等待1分钟,等待WebUI加载完成。
步骤二:开启AI绘画并测试AiccTorch加速效果
1.在浏览器地址栏输入http://:50000
,在弹出的登录对话框,输入上章节第5步中创建的用户和密码,单击登录。
2.开始AI绘画。
说明 首次应用AiccTorch进行图片生成,或者切换模型后的首次图片生成,会多占用约30s时间,以进行AiccTorch模型加载。
· 开启AiccTorch加速时进行AI绘画(默认已开启)
在对话框中输入关键字,如铁马冰河入梦来,概念画,科幻,玄幻,3D,单击生成/Generate(您可以尝试多次Generate,生成更符合需求的图片)。
页面右侧将会展示生成的图片和推理时间,本示例中单张图片推理时间为1.19s。
·禁用AiccTorch时进行AI绘画
- 单击设置/Settings页签,左侧导航选择AiaccTorch,取消选中Apply Aiacctorch in Unet to speedup the whole network inference when loading models后,单击应用设置/Apply settings,再单击重新加载WebUI/Reload UI。
- 在对话框中输入关键字,单击生成/Generate,重新生成图片,查看推理时间(本示例为2.04s)。
对比发现,开启AiccTorch后,单张图片的推理时间要远少于禁用AiccTorch。
查看不同模型的推理效果
在步骤下载并配置模型中下载了3个模型,可根据需求切换模型,查看不同模型的推理效果。
1.在页面左上角,切换模型,例如切换为Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1模型。
2.在对话框中输入提示词和反向提示词。
·提示词示例:
1个女孩,绿眼,棒球帽,金色头发,闭嘴,帽子,看向阅图者,短发,简单背景,单人,上半身,T恤
·反向提示词示例:
水彩,漫画,扫描件,简朴的画作,动画截图,3D,像素风,原画,草图,手绘,铅笔
生成的动漫风格图像如下图所示。
了解更多AIGC实践和GPU优惠
反馈与建议
如果您在使用教程或实践过程中有任何问题或建议,可以加入客户钉钉群(钉钉群号:28335015590)与我们的工程师线上交流,将有专人跟进您的问题和建议。