文档

使用DSW快速启动Stable Diffusion WebUI

更新时间:

本文为您介绍如何在阿里云DSW中,基于Stable-Diffusion-WebUI快速启动Stable Diffusion WebUI,实现SD模型的推理。

背景信息

AIGC是指通过人工智能技术自动生成内容的生产方式,已经成为继互联网时代的下一个产业时代风口。其中,文生图(Text-to-image Generation)任务是流行的跨模态生成任务,旨在生成与给定文本对应的图像。本教程启动Stable-Diffusion-WebUI进行Stable Diffusion模型推理的示例效果如下所示。

image.png

准备环境和资源

  • 创建工作空间,详情请参见创建工作空间

  • 创建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开源库及其它依赖

  1. 进入DSW开发环境,具体操作请参见创建DSW实例

  2. Notebook页签的Launcher页面,单击快速开始区域Notebook下的Python3

  3. 在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

您也可以前往开源模型地址自行下载模型:

模型下载完成后,您还可以在ModelScopeHuggingFace下载其它类型的SD模型,并将其存放到./stable-diffusion-webui/models的指定目录中。在后续启动的WebUI页面中,您可以切换到相应的模型进行模型推理。

步骤四:启动WebUI

  1. 执行以下命令,启动WebUI。

    ! cd stable-diffusion-webui && python launch.py --no-half-vae --xformers
  2. 在返回结果中,单击Running on public URL后的URL(例如:http://127.0.0.1:7860),进入WebUI页面。后续您可以在该页面,进行模型推理。

    说明

    由于http://127.0.0.1:7860为内网访问地址,仅支持在当前的DSW实例内部通过单击链接来访问WebUI页面,不支持通过外部浏览器直接访问。

步骤五:试玩模型

完成以上操作后,您已经成功完成了AIGC文生图模型的WebUI部署。您可以在WebUI页面,进行模型推理验证。相关参数可参考以下进行设置,完成后单击生成

image.png

  • 模型的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

  • 高清修复:单击image.png,并配置以下参数:

    • 重绘幅度:0.6

    • 放大倍率:1.8

  • 高度:832

  • 提示词相关性(CFG Scale):10

  • 随机种子(seed):2337269170

相关文档