阿里云GPU云服务器基于AIACC加速器快速实现AIGC绘画教程

2023年 12月 5日 356点热度 0人点赞 0条评论

Stable Diffusion是一个可通过文本生成图像的扩散模型,基于CLIP模型从文字中提取隐变量,并通过UNet模型生成图片;最后通过逐步扩散、逐步处理图像,优化图像质量。

AIACC-Inference(AIACC推理加速器)Torch版可通过对模型的计算图进行切割,执行层间融合,以及高性能OP实现,大幅度提升PyTorch的推理性能。您无需指定精度和输入尺寸,即可通过JIT编译的方式对PyTorch框架下的深度学习模型进行推理优化。更多信息,请参见手动安装AIACC-Inference(AIACC推理加速)Torch版

本文基于阿里云GPU服务器和Stable Diffusion的WebUI框架,指导您如何基于AIACC加速器快速实现AIGC绘画。

image..png

重要
  • 阿里云不对第三方模型的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。

  • 您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。

创建ECS实例

本文使用的ai-inference-solution市场镜像中,内置了以下三个模型及运行环境。

  • 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. 前往实例创建页

  2. 按照界面提示完成参数配置,创建一台ECS实例。

    需要注意的参数如下,其他参数的配置,请参见自定义购买实例

    • 实例:选择实例规格为ecs.gn7i-c16g1.4xlarge

    • 镜像:本文使用已部署好推理所需环境的云市场镜像,名称为ai-inference-solution

      image

    • 公网IP:选中分配公网IPv4地址,带宽计费模式选择按使用流量,带宽峰值设置为10 Mbps。

      说明

      如果您需要自行下载模型测试,建议将带宽峰值设置为100 Mbps,以加快模型下载速度。

      2023-06-13_11-45-40..png

  3. 为当前ECS实例添加安全组规则,具体操作,请参见添加安全组规则

    安全组规则所属的方向:入方向端口范围5000/5000授权对象:访问WebUI服务的本地客户端公网IP地址(非实例公网IP地址)。例如本地客户端公网IP为101.200.XX.XX,则授权对象为101.200.XX.XX/32。

    2023-06-14_17-18-02..png

  4. 创建完成后,在ECS实例页面,获取公网IP地址。

    说明

    公网IP地址用于生成图片测试时访问WebUI服务。

    image

为Nginx添加用户登录验证

本文所使用的镜像中预装了Nginx软件,用于登录鉴权,以防止非授权用户登录。

  1. 执行如下命令,创建登录用户和密码。

    说明

    ${UserName}请替换为您自定义的用户名,例如admin;'${Password}'请替换为您自定义的密码,例如ECS@test1234。

    htpasswd -bc /etc/nginx/password ${UserName} '${Password}'
  2. 执行如下命令,重启Nginx。

    systemctl restart nginx
  3. 执行如下命令,查看Nginx状态。

    systemctl status nginx

    当显示如下图所示的回显信息时,说明Nginx处于运行中。

    查看nginx状态

  4. 执行如下命令,设置Nginx开机自启动。

    systemctl enable nginx

开始文本生成图片

步骤一:启动WebUI服务

执行如下命令,启动WebUI服务。

cd ~/stable-diffusion-webui/
nohup ./run_taiyi.sh &

重要

建议您等待1分钟,等待WebUI加载完成。

步骤二:开启AI绘画并测试AiaccTorch加速效果

  1. 在浏览器地址栏输入http://<ECS公网IP地址>:5000,在弹出的登录对话框,输入上章节第1步中创建的用户和密码,单击登录

    2023-06-13_11-52-12..png

  2. 开始AI绘画。

    说明

    首次应用AiaccTorch进行图片生成,或者切换模型后的首次图片生成,会多占用约30s时间,以进行AiaccTorch模型加载。

    • 开启AiaccTorch加速时进行AI绘画(默认已开启)

      在对话框中输入关键字,如铁马冰河入梦来,概念画,科幻,玄幻,3D,单击生成/Generate(您可以尝试多次Generate,生成更符合需求的图片)。

      页面右侧将会展示生成的图片和推理时间,本示例中单张图片推理时间为0.91s。

      image

    • 禁用AiaccTorch时进行AI绘画

      1. 单击设置/Settings页签,左侧导航选择AiaccTorch,取消选中Apply Aiacctorch in Unet to speedup the whole network inference when loading models后,单击应用设置/Apply settings,再单击重新加载WebUI/Reload UI

        image

      2. 在对话框中输入关键字,单击生成/Generate,重新生成图片,查看推理时间(本示例为2.02s)。

        image

    对比发现,开启AiaccTorch后,单张图片的推理时间要远少于禁用AiaccTorch。

查看不同模型的推理效果

本文使用的镜像中内置了3个模型,您可根据需求切换模型,查看不同模型的推理效果。

  1. 在页面左上角,切换模型,例如切换为Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1模型。

    image

  2. 在对话框中输入提示词和反向提示词。

    • 提示词示例:

      1个女孩,绿眼,棒球帽,金色头发,闭嘴,帽子,看向阅图者,短发,简单背景,单人,上半身,T恤
    • 反向提示词示例:

      水彩,漫画,扫描件,简朴的画作,动画截图,3D,像素风,原画,草图,手绘,铅笔

      生成的动漫风格图像如下图所示。

      image

使用LoRA插件

LoRA是Stable Diffusion模型的一种插件,它允许在不修改Stable Diffusion模型的情况下,使用少量数据训练出一种画风、IP或人物,以实现定制化需求。相较于训练Stable Diffusion,使用LoRA所需的训练资源更少,非常适合社区用户和个人开发者使用。

您可以在提示词(Prompt)中添加LoRA支持文本<lora:iuV35.uv1P:1>以启用该功能。

2023-06-13_15-39-05..png

使用Controlnet插件

ControlNet是一个用于控制AI图像生成的插件,它可以利用输入图片中的边缘特征、深度特征或人体姿势的骨架特征,与文字提示一起精准地控制AI图像的生成,以获得更好的视觉效果。

Canny是ControlNet中一个常见的模型,用于识别输入图像的边缘信息,从上传的图片中生成线稿,然后根据关键词生成与上传图片相似构图的画面。

  1. 单击Controlnet右侧的2023-06-13_15-01-04..png图标,选中启用/EnableControl Type选择Canny,在单张图像/Single Image区域中,上传输入的图片(如Lena图)。

    2023-06-13_14-59-59..png

  2. 单击生成/Generate,在页面右侧即可生成使用Canny模型生成的线稿和同样构图的图片。

    2023-06-13_15-07-18..png

了解更多AIGC实践和GPU优惠

活动入口立即开启AIGC之旅

image..png

反馈与建议

dechenyun

这个人很懒,什么都没留下

文章评论