Stable_Diffusion部署文档

Chromy Chen

一、系统准备

例:x86-64,NVIDIA GPU,16G+ RAM,50G+ System SSD,Data Volume。
系统:Ubuntu20.04

1. 配置网络

尽可能确保系统能够顺利访问Github、HuggingFace。

推荐:Clash
clash-for-linux-master/.env文件内配置订阅链接 & 自定义UI访问密码(可选)

配置wget代理:

1
2
3
4
5
# /etc/wgetrc
https_proxy = http://ip:port
http_proxy = http://ip:port
ftp_proxy = http://ip:port
use_proxy = on

2. 更新系统

在开始安装之前,先更新系统软件包:

1
2
sudo apt update
sudo apt upgrade

3. 安装NVIDIA驱动程序(以driver 555 & CUDA 12.5为例)

完整教程:NVIDIA CUDA Installation Guide for Linux
  1. 确认gcc已安装

    1
    2
    apt -y install gcc
    gcc --version
  2. 卸载旧版本驱动或确认无冲突

    1
    2
    dpkg -l | grep nvidia
    apt-get --purge remove "*nvidia*"
  3. 安装驱动

    1
    2
    3
    4
    5
    6
    7
    8
    9
    > Base Installer:

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
    sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
    wget https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-ubuntu2004-12-5-local_12.5.1-555.42.06-1_amd64.deb
    sudo dpkg -i cuda-repo-ubuntu2004-12-5-local_12.5.1-555.42.06-1_amd64.deb
    sudo cp /var/cuda-repo-ubuntu2004-12-5-local/cuda-*-keyring.gpg /usr/share/keyrings/
    sudo apt-get update
    sudo apt-get -y install cuda-toolkit-12-5
    1
    2
    3
    > Driver Installer:

    sudo apt-get install -y cuda-drivers
  4. 重启系统以应用更改:

    1
    sudo reboot
  5. 确认驱动程序安装成功:

    1
    nvidia-smi

    如果安装成功,将看到GPU的相关信息。

4. 安装Miniconda

由于所需的环境尤其是Python版本可能与系统Python版本不同,为了保护系统、避免冲突,可以使用Miniconda 灵活创建多个虚拟环境。

  1. 自定义conda安装路径

    1
    mkdir -p /path/to/your/conda #自定义conda安装位置,若系统盘小于50G将很快全部占满,强烈建议将conda安装在数据盘
  2. 下载conda安装脚本

    1
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /path/to/your/conda/miniconda.sh
  3. 安装conda

    1
    2
    bash /path/to/your/conda/miniconda.sh #按照脚本提示一步步完成安装
    rm -f /path/to/your/conda/miniconda.sh #安装完成后,安装脚本可删去
  4. 初始化bash环境

    1
    /path/to/your/conda/bin/conda init bash

确认环境存储目录与包存储目录都在设定的路径:

1
conda info

查看当前环境列表:

1
conda info -e

二、部署Stable Diffusion

本文档介绍使用ComfyUI 作为GUI和后端。
ComfyUI “是最强大和模块化的稳定传播 GUI 和后端” ,一个为 Stable Diffusion 专门设计的基于节点的图形用户界面(GUI)。
它使用户能够通过链接不同的块(称为节点)来构建复杂的图像生成工作流程。
这些节点可以包括各种任务,如加载检查点模型、输入提示、指定采样器等。
ComfyUI 提供了极高的自由度和灵活性,支持高度的定制化和工作流复用,
同时对系统配置的要求较低,并且能够加快原始图像的生成速度。
然而,由于它拥有众多的插件节点,以及较为复杂的操作流程,学习起来相对困难。

1. 创建新环境

首先确认Python版本要求。例:3.12

1
conda create -n stable-diffusion python=3.12 #虚拟环境名字自拟

2. 激活环境

进入该环境下。

1
conda activate stable-diffusion

3. 克隆仓库

不要存放在系统盘。
  1. 克隆ComfyUI仓库

    1
    2
    cd /yourpath/
    git clone [email protected]:comfyanonymous/ComfyUI.git
  2. 克隆模型仓库

    需要为git安装git-lfs 才可支持直接克隆大文件;也可手动wget大文件。可根据官方文档任选合适的git-lfs安装方法
    若模型在魔塔社区 有仓库,强烈建议直接拉取魔塔社区的仓库。

    本文档使用模型(例):stable-diffusion-3-medium

    1
    2
    3
    4
    5
    # 若未安装git-lfs,默认就不会拉取大文件。
    git clone https://huggingface.co/stabilityai/stable-diffusion-3-medium

    # 若安装了git-lfs,可用如下命令跳过大文件:
    GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/stabilityai/stable-diffusion-3-medium

    也可直接不拉取仓库,建议先浏览仓库文件结构,直接选择需要的文件手动下载。

    .
    ├── comfy_example_workflows/
    │ ├── sd3_medium_example_workflow_basic.json
    │ ├── sd3_medium_example_workflow_multi_prompt.json
    │ └── sd3_medium_example_workflow_upscaling.json

    ├── text_encoders/
    │ ├── README.md
    │ ├── clip_g.safetensors
    │ ├── clip_l.safetensors
    │ ├── t5xxl_fp16.safetensors
    │ └── t5xxl_fp8_e4m3fn.safetensors

    ├── LICENSE
    ├── sd3_medium.safetensors
    ├── sd3_medium_incl_clips.safetensors
    ├── sd3_medium_incl_clips_t5xxlfp8.safetensors
    └── sd3_medium_incl_clips_t5xxlfp16.safetensors

    “为方便用户使用,我们准备了 SD3 中型型号的三种包装变体,每种包装变体都配备了相同的 MMDiT 和 VAE 重量。”

    • sd3_medium.safetensors 包括 MMDiT 和 VAE 权重,但不包括任何文本编码器。
    • sd3_medium_incl_clips_t5xxlfp16.safetensors包含所有必要的权重,包括 T5XXL 文本编码器的 fp16 版本。
    • sd3_medium_incl_clips_t5xxlfp8.safetensors包含所有必要的权重,包括 T5XXL 文本编码器的 fp8 版本,在质量和资源要求之间提供平衡。
    • sd3_medium_incl_clips.safetensors包括除 T5XXL 文本编码器之外的所有必要权重。它需要的资源很少,但如果没有 T5XXL 文本编码器,模型的性能会有所不同。
    • text_encoders文件夹包含三个文本编码器及其原始模型卡链接,以方便用户使用。text_encoders 文件夹中的所有组件(以及嵌入在其他包中的等效组件)均受其各自的原始许可证约束。
    • 该example_workfows文件夹包含示例的ComfyUI模板文件。
    1
    2
    # 假设选择sd3_medium_incl_clips_t5xxlfp8.safetensors(平衡质量和资源占用):
    wget https://huggingface.co/stabilityai/stable-diffusion-3-medium/resolve/main/sd3_medium_incl_clips_t5xxlfp8.safetensors?download=true

4. 部署ComfyUI

  1. 安装ComfyUI依赖:
    Linux系统下需在ComfyUI仓库 /yourpath/ComfyUI/ 内安装依赖
    若系统已有旧版本的torch,可能会产生报错 “Torch not compiled with CUDA enabled”:

    1
    pip uninstall torch

    安装依赖:

    1
    2
    cd ComfyUI/
    pip install -r requirements.txt
  2. 安装插件:

    根据优设网博主“搞设计的花生仁” 推荐:

    1
    2
    3
    4
    5
    cd /yourpath/ComfyUI/custom_nodes
    git clone https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION
    git clone https://github.com/twri/sdxl_prompt_styler
    git clone https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet
    git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts

    插件使用教程:超详细的 Stable Diffusion ComfyUI 基础教程(一):安装与常用插件

  3. 启动ComfyUI:

    1
    2
    3
    cd /yourpath/ComfyUI
    # 首次启动尤其是安装了插件后,可能启动较慢,网络畅通的前提下耐心等待即可。
    python main.py

    ComfyUI默认监听127.0.0.1:8188。可在启动时自定义监听ip和端口:

    1
    python main.py --listen='0.0.0.0' --port=8188

    后台静默启动:

    1
    nohup python main.py --listen='0.0.0.0' --port=8188 >/dev/null 2>&1 &

    浏览器访问ip:port即可。

5. 使用ComfyUI

首次使用可先选择使用默认workflow。
若安装了汉化界面(AIGODLIKE-COMFYUI-TRANSLATION)插件,可在设置-语言中将界面改为中文。
若安装了提示词中文输入(ComfyUI_Custom_Nodes_AlekPet)插件,可将clip文本编辑器更换为插件提供的clip文本编码器(翻译高级)。
将模型文件(例:sd3_medium_incl_clips_t5xxlfp8.safetensors)放入ComfyUI/models/checkpoints/中,
即可在Web界面checkpoint加载器选择该模型。
在clip文本编辑器输入正面条件(希望生成的)、反面条件(不希望出现的),Ctrl+Enter或点击添加提示词队列,即可出图。

stabilityai/stable-diffusion-3-medium仓库中comfy_example_workflows/下也提供了模板workflow。


On this page
Stable_Diffusion部署文档