Stable_Diffusion部署文档

一、系统准备
例: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 | # /etc/wgetrc |
2. 更新系统
在开始安装之前,先更新系统软件包:
1 | sudo apt update |
3. 安装NVIDIA驱动程序(以driver 555 & CUDA 12.5为例)
完整教程:NVIDIA CUDA Installation Guide for Linux
确认gcc已安装 :
1
2apt -y install gcc
gcc --version-
1
2dpkg -l | grep nvidia
apt-get --purge remove "*nvidia*" 安装驱动 :
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-51
2
3> Driver Installer:
sudo apt-get install -y cuda-drivers重启系统以应用更改:
1
sudo reboot
确认驱动程序安装成功:
1
nvidia-smi
如果安装成功,将看到GPU的相关信息。
4. 安装Miniconda
由于所需的环境尤其是Python版本可能与系统Python版本不同,为了保护系统、避免冲突,可以使用Miniconda 灵活创建多个虚拟环境。
自定义conda安装路径
1
mkdir -p /path/to/your/conda #自定义conda安装位置,若系统盘小于50G将很快全部占满,强烈建议将conda安装在数据盘
下载conda安装脚本
1
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /path/to/your/conda/miniconda.sh
安装conda
1
2bash /path/to/your/conda/miniconda.sh #按照脚本提示一步步完成安装
rm -f /path/to/your/conda/miniconda.sh #安装完成后,安装脚本可删去初始化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. 克隆仓库
不要存放在系统盘。
克隆ComfyUI仓库
1
2cd /yourpath/
git clone [email protected]:comfyanonymous/ComfyUI.git克隆模型仓库
需要为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
安装ComfyUI依赖:
Linux系统下需在ComfyUI仓库 /yourpath/ComfyUI/ 内安装依赖 。
若系统已有旧版本的torch,可能会产生报错 “Torch not compiled with CUDA enabled”:1
pip uninstall torch
安装依赖:
1
2cd ComfyUI/
pip install -r requirements.txt安装插件:
根据优设网博主“搞设计的花生仁” 推荐:
1
2
3
4
5cd /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启动ComfyUI:
1
2
3cd /yourpath/ComfyUI
# 首次启动尤其是安装了插件后,可能启动较慢,网络畅通的前提下耐心等待即可。
python main.pyComfyUI默认监听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。