本文为您介绍如何在DSW中,快速启动Stable Diffusion WebUI,实现SD(Stable Diffusion)模型推理。
背景信息
AIGC是指通过人工智能技术自动生成内容的生产方式,已经成为继互联网时代的下一个产业时代风口。其中,文生图(Text-to-image Generation)任务是流行的跨模态生成任务,旨在生成与给定文本对应的图像。本教程启动Stable-Diffusion-WebUI进行SD模型推理的示例效果如下所示。
准备环境和资源
开通PAI并创建工作空间,详情请参见开通PAI并创建默认工作空间。
创建DSW实例,其中关键参数配置如下。具体操作,请参见创建DSW实例。
地域及可用区:进行本实践操作时,建议选择华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)这四个地域。这四个地域在后续操作中下载ChatGLM模型数据时速度更快。
实例规格选择:ecs.gn6v-c8g1.2xlarge。
镜像选择:在官方镜像中选择
stable-diffusion-webui-develop:1.0-pytorch2.0-gpu-py310-cu117-ubuntu22.04
。
步骤一:下载stable-diffusion-webui开源库及其它依赖
打开DSW实例,在Notebook页签的Launcher页面,单击快速开始区域Notebook下的Python3。
在Notebook中执行以下代码进行下载。
import os ! apt update ! apt install -y aria2 def aria2(url, filename, d): !aria2c --console-log-level=error -c -x 16 -s 16 {url} -o {filename} -d {d} url_prefix = { "cn-shanghai": "http://pai-vision-data-sh.oss-cn-shanghai-internal.aliyuncs.com", "cn-hangzhou": "http://pai-vision-data-hz2.oss-cn-hangzhou-internal.aliyuncs.com", "cn-shenzhen": "http://pai-vision-data-sz.oss-cn-shenzhen-internal.aliyuncs.com", "cn-beijing": "http://pai-vision-data-bj.oss-cn-beijing-internal.aliyuncs.com", } dsw_region = os.environ.get("dsw_region") prefix = url_prefix[dsw_region] if dsw_region in url_prefix else "http://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com" webui_url = f"{prefix}/aigc-data/code/stable-diffusion-webui-v1.tar.gz" aria2(webui_url, webui_url.split("/")[-1], "./")
步骤二:安装常用插件
本示例会默认安装tagcomplete和汉化插件,您也可自行添加其它插件。
! tar -xf stable-diffusion-webui-v1.tar.gz
! cd stable-diffusion-webui && wget -c http://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com/aigc-data/webui_config/config.json
步骤三:下载模型
本示例将开源SD模型Counterfeit-v2.5作为base模型,为了保证下载的稳定性,在OSS上提供了缓存链接,您可直接执行以下命令下载缓存的模型。
model_url = f"{prefix}/aigc-data/sd_models/Counterfeit-V2.5_fp16.safetensors"
aria2(model_url, model_url.split("/")[-1], "stable-diffusion-webui/models/Stable-diffusion")
vae_url = f"{prefix}/aigc-data/vae_models/Counterfeit-V2.5.vae.pt"
aria2(vae_url, vae_url.split("/")[-1], "stable-diffusion-webui/models/VAE")
embedding_url = f"{prefix}/aigc-data/embedding/EasyNegative.safetensors"
aria2(embedding_url, embedding_url.split("/")[-1], "stable-diffusion-webui/embeddings")
clip_url = f"{prefix}/aigc-data/clip/ViT-L-14.pt"
! mkdir -p /root/.cache/clip
aria2(clip_url, clip_url.split("/")[-1], " /root/.cache/clip")
bert_url = f"{prefix}/aigc-data/hug_model/models--bert-base-uncased.tar.gz"
aria2(bert_url, bert_url.split("/")[-1], "~/.cache/huggingface/hub")
! cd ~/.cache/huggingface/hub && tar -xvf models--bert-base-uncased.tar.gz
您也可以前往开源模型地址自行下载模型:
模型下载完成后,您还可以在ModelScope或HuggingFace下载其它类型的SD模型,并将其存放到./stable-diffusion-webui/models
的指定目录中。在后续启动的WebUI页面中,您可以切换到相应的模型进行模型推理。
步骤四:启动WebUI
执行以下命令,启动WebUI。
! cd stable-diffusion-webui && python launch.py --no-half-vae --xformers
在返回结果中,单击
Running on public URL
后的URL(例如:http://127.0.0.1:7860),进入WebUI页面。后续您可以在该页面,进行模型推理。说明由于
http://127.0.0.1:7860
为内网访问地址,仅支持在当前的DSW实例内部通过单击链接来访问WebUI页面,不支持通过外部浏览器直接访问。
步骤五:试玩模型
完成以上操作后,您已经成功完成了AIGC文生图模型的WebUI部署。您可以在WebUI页面,进行模型推理验证。相关参数可参考以下进行设置,完成后单击生成。
模型的VAE:Counterfeit-V2.5.vae.pt
提示词:
prompt
((masterpiece,best quality)),1girl, solo, animal ears, rabbit, barefoot, knees up, dress, sitting, rabbit ears, short sleeves, looking at viewer, grass, short hair, smile, white hair, puffy sleeves, outdoors, puffy short sleeves, bangs, on ground, full body, animal, white dress, sunlight, brown eyes, dappled sunlight, day, depth of field
negative prompt (用于阻止或减少生成图像中出现您不想要的内容)
EasyNegative, extra fingers,fewer fingers
采样方法(Sampler):DPM++2M Karras
高清修复:单击,并配置以下参数:
重绘幅度:0.6
放大倍率:1.8
高度:832
提示词相关性(CFG Scale):10
随机种子(seed):2337269170
相关文档
更多关于DSW的内容介绍,请参见什么是DSW。
在DSW中,通过对AIGC Stable Diffusion文生图Lora模型进行模型微调,并启动WebUI进行模型推理实现虚拟上装,详情请参见AIGC Stable Diffusion文生图Lora模型微调实现虚拟上装。
EAS预置了stable-diffusion-webui镜像,您可以使用该镜像快速搭建基于AIGC Stable Diffusion SDWebUI的AI-Web应用,详情请参见EAS快速部署AI绘画SDWebUI。