文档首页/ 弹性云服务器 ECS/ 最佳实践/ GPU实例最佳实践/ 使用GPU实例部署AI生图Stable Diffusion WebUI服务
更新时间:2026-04-22 GMT+08:00
分享

使用GPU实例部署AI生图Stable Diffusion WebUI服务

应用场景

StableDiffusion提供完整的文本生成图像能力,适用于生成创意海报、广告图生成、产品概念图、包装设计草稿、游戏角色、场景概念图和影视分镜草图等,适合企业内部创意团队和设计团队快速迭代产品原型。此外StableDiffusion还提供图生图能力,无需专业设计师即可完成复杂的图像编辑,降低成本,提高图片处理效率。

华为云为用户提供使用GPU实例来部署Stable Diffusion WebUI的操作指导,帮助客户在ECS上快速部署AI生图服务。

方案架构

图1 Stable Diffusion WebUI部署示意图

方案优势

使用ECS GPU实例在conda虚拟环境上从0开始部署StableDiffusion WebUI服务,为企业提供高度可控、稳定可靠、可持续扩展的专属算力环境,确保AI生产力在隐私、安全的前提下高效落地。

资源和成本规划

表1 资源和成本规划

资源

资源说明

成本说明

安全组

入方向规则:

  • 优先级:1
  • 策略:允许
  • 类型:IPv4
  • 协议端口:TCP: 8000
  • 源地址:0.0.0.0/0

免费

弹性云服务器

  • 计费模式:包年/包月
  • 可用区:可用区1
  • 规格:pi2.2xlarge.4。更多规格推荐,请参见表2
  • 镜像:Ubuntu 22.04 server 64bit with NO Driver(40GiB),GPU驱动为535.161.08,CUDA为12.2.0
  • 系统盘:100GiB
  • 数据盘:100GiB
  • 弹性公网IP:现在购买
  • 线路:全动态BGP
  • 公网带宽:按流量计费
  • 带宽大小:300 Mbit/s

ECS涉及以下几项费用:

  • 云服务器
  • 云硬盘
  • 弹性公网IP

具体的计费方式及标准请参考计费模式概述

miniconda

Miniconda 是一个精简版的Conda环境管理工具,用于管理Python环境和安装第三方库。

获取地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

免费

Stable Diffusion WebUI

Stable Diffusion WebUI是Stable Diffusion(SD)模型的可视化网页界面,支持文生图(Text-to-image)、图生图(Image-to-image)等操作。

获取地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

免费

表2 Stable Diffusion WebUI运行可选的GPU弹性云服务规格

模型名称

最小所需规格

GPU卡

clip-vit-large-patch14

stable-diffusion-v1-5

pi2.2xlarge.4

T4(16G)*1

p2s.4xlarge.8

V100(32G)*1

g6.4xlarge.4

T4(16G)*1

请联系华为云技术支持选择最适合您部署的GPU卡资源服务器。

前提条件

  • 弹性云服务器所在安全组添加了如表3所示的安全组规则,具体步骤参见为安全组添加安全组规则
    表3 安全组规则

    方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向

    1

    允许

    IPv4

    TCP: 8000

    0.0.0.0/0

实施步骤

  1. 创建GPU弹性云服务器。

    本操作以安装了Ubuntu操作系统的pi2.2xlarge.4实例为例。实例配置请注意如下参数,其他参数说明,请参见自定义购买ECS

    1. 实例:pi2.2xlarge.4。更多规格推荐,请参见表2 Stable Diffusion WebUI运行可选的GPU弹性云服务规格
    2. 镜像:Ubuntu 22.04 server 64bit with NO Driver(40GiB),勾选“自动安装GPU驱动”,GPU驱动为535.161.08,CUDA为12.2.0。

      建议选择Huawei Cloud EulerOS 2.0或Ubuntu 22.04中未安装驱动的公共镜像,自动安装GPU驱动。建议驱动版本:Driver-535.161.08,CUDA-12.2.0。

      图2 GPU实例镜像选择和自动安装GPU驱动选择
    3. 弹性公网IP:选择“现在购买”,支持公网访问,用于依赖环境下载和Stable Diffusion WebUI服务的访问。
    4. 安全组:入方向放通TCP: 8000端口,用于访问WebUI服务。具体步骤请参见为安全组添加安全组规则
    5. 存储与备份:为保证服务稳定运行与数据安全,建议采用系统盘与数据盘分离部署的架构。
      • 系统盘:100GiB,用于安装操作系统、驱动及运行环境。
      • 数据盘:100GiB,用于独立存储模型文件、生成图片及相关业务数据等。

  2. 驱动和CUDA的前置条件检查。

    执行以下命令,查看显卡基本信息。

    nvidia-smi

    如果使用的不是推荐的镜像和驱动版本,请参考手动安装GPU加速型ECS的Tesla驱动方法更新驱动到535版本,CUDA更新到12.2。

  3. 初始化数据盘,用于存放模型文件及相关资源。

    GPU弹性云服务器创建完成后,请参见初始化Linux数据盘进行数据盘初始化。本实践将数据盘挂载至/mnt/model目录,您可以根据业务需要自行定义目录。

  4. 创建conda虚环境。

    1. 执行以下命令,下载miniconda安装包
      wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    2. 执行以下命令,并按照回显提示信息进行操作,安装miniconda。
      bash Miniconda3-latest-Linux-x86_64.sh
    3. 执行以下命令,将conda环境变量添加到启动文件中。
      echo 'export PATH="$HOME/miniconda3/bin:$PATH"' >> ~/.bashrc
      source ~/.bashrc
    4. 执行以下命令,并按照回显提示信息进行操作,创建基于python3.10.6的虚环境。
      conda create -n sdwebui python=3.10.6
      conda activate sdwebui

  5. 下载模型文件。

    1. 执行以下命令,创建下载模型脚本。
      vim download_models.py

      按"i"键进入编辑模式,插入以下内容:

      from modelscope import snapshot_download
      model_dir = snapshot_download('AI-ModelScope/stable-diffusion-v1-5', cache_dir='/mnt/model', revision='master')

      模型名称为AI-ModelScope/stable-diffusion-v1-5,本实践中模型的存储路径为/mnt/model,可以根据业务需要更换目录。

      添加完成后,按“Esc”键退出编辑模式,并输入“:wq”后按“Enter”键,保存并退出文件。

    2. 执行以下命令,下载stable-diffusion模型。
      pip install modelscope
      python download_models.py

      等待模型下载完成。回显中显示“Download model 'AI-ModelScope/stable-diffusion-v1-5' successfully.”,则表示模型下载完成。

    3. 执行以下命令,修改model名字为clip模型。
      vim download_models.py

      按"i"键进入编辑模式,修改model名字为clip-vit-large-patch14。

      model_dir = snapshot_download('AI-ModelScope/clip-vit-large-patch14', cache_dir='/mnt/model', revision='master')

      修改完成后,按“Esc”键退出编辑模式,并输入“:wq”后按“Enter”键,保存并退出文件。

    4. 执行以下命令,下载clip模型
      python download_models.py

      等待模型下载完成。回显中显示“Download model 'AI-ModelScope/clip-vit-large-patch14' successfully.”,则表示模型下载完成。

    ModelScope是国内的开源模型社区,在中国地区访问速度更快;若在海外环境使用,建议通过Hugging Face获取相应模型。

  6. 安装Stable Diffusion WebUI及其依赖。

    1. 执行以下命令,下载stable-diffusion-webui项目。
      git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
    2. 执行以下命令,进入项目目录,修改项目配置
      cd stable-diffusion-webui
      sed -i 's|stable_diffusion_repo = .*|stable_diffusion_repo = os.environ.get('"'"'STABLE_DIFFUSION_REPO'"'"', "https://github.com/w-e-w/stablediffusion.git")|' ./modules/launch_utils.py
    3. 移动模型到项目目录。
      mv /mnt/model/AI-ModelScope/stable-diffusion-v1-5/v1-5-pruned-emaonly.safetensors /root/stable-diffusion-webui/models/Stable-diffusion/
      mkdir /root/stable-diffusion-webui/openai/
      mv /mnt/model/AI-ModelScope/clip-vit-large-patch14 /root/stable-diffusion-webui/openai/

  7. 启动Stable Diffusion WebUI。

    执行以下命令,运行项目。

    bash webui.sh -f --listen --port 8000 --no-hashing --no-download-sd-model --api

    如果上述命令执行失败,提示Command: "/root/stable-diffusion-webui/venv/bin/python" -m pip install https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip --prefer-binary,请执行如下命令:

    source venv/bin/activate
    pip install git+https://github.com/openai/CLIP.git
    bash webui.sh -f --listen --port 8000 --no-hashing --no-download-sd-model --api

  8. 打开Stable Diffusion WebUI界面进行测试。

    1. 在ECS详情界面查看弹性公网ip地址

    2. 打开浏览器输入http://弹性公网IP:8000 访问Stable Diffusion WebUI服务。

    3. 打开浏览器输入http://弹性公网IP:8000/docs 访问Stable Diffusion WebUI服务的API文档。

    至此StableDiffusion WebUI就部署完毕并验证正常。您可以在本地浏览器访问http://弹性公网IP:8000通过会话或使用API调用进行图片生成或进行API调用。

相关文档