Ubuntu 20.04环境下Stable Diffusion的完整安装指南 (2025年05月版)

云信安装大师
90
AI 质量分
4 5 月, 2025
4 分钟阅读
0 阅读

Ubuntu 20.04环境下Stable Diffusion的完整安装指南 (2025年05月版)

引言

Stable Diffusion作为当前最流行的AI绘画工具之一,能够根据文本描述生成高质量的图像。本文将详细介绍在Ubuntu 20.04系统上安装Stable Diffusion WebUI的完整过程,包括环境配置、依赖安装以及常见问题的解决方案。

准备工作

在开始安装前,请确保:

  1. 系统要求:

    • Ubuntu 20.04 LTS (推荐使用最新更新)
    • 至少16GB RAM (8GB可以运行但性能较差)
    • 至少10GB可用磁盘空间
    • NVIDIA显卡(推荐)或AMD显卡(需要额外配置)
  2. 硬件建议:

    • NVIDIA显卡至少6GB显存(如RTX 2060及以上)
    • SSD存储以获得更好的性能
  3. 基础软件:

    • Python 3.10
    • Git
    • CUDA工具包(针对NVIDIA显卡)

第一步:系统更新与基础依赖安装

首先更新系统并安装必要的依赖:

代码片段
# 更新系统包列表
sudo apt update

# 升级已安装的包
sudo apt upgrade -y

# 安装基础依赖
sudo apt install -y wget git python3 python3-venv python3-pip libgl1 libglib2.0-0

注意事项
libgl1libglib2.0-0是图形渲染所需的库,缺少它们可能导致运行时错误
python3-venv用于创建虚拟环境,避免污染系统Python环境

第二步:安装CUDA和cuDNN(NVIDIA显卡用户)

如果你使用NVIDIA显卡,需要安装CUDA和cuDNN:

代码片段
# 添加NVIDIA官方仓库密钥
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb

# 更新包列表并安装CUDA Toolkit
sudo apt update
sudo apt install -y cuda-toolkit-12-4

# 设置环境变量(添加到~/.bashrc)
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# 验证CUDA安装(应该显示CUDA版本)
nvcc --version

原理说明
– CUDA是NVIDIA提供的并行计算平台和编程模型,能显著加速AI模型的推理速度
– cuDNN是深度神经网络库,优化了常见神经网络操作的性能

第三步:克隆Stable Diffusion WebUI仓库

使用git克隆官方仓库:

代码片段
# 创建项目目录并进入
mkdir ~/stable-diffusion && cd ~/stable-diffusion

# 克隆WebUI仓库(2025年最新稳定分支)
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git webui

# 进入项目目录
cd webui

实践经验
– AUTOMATIC1111的WebUI是目前功能最丰富、社区支持最好的界面之一
– 如果网络问题导致克隆失败,可以尝试使用GitHub镜像源或代理

第四步:创建Python虚拟环境并安装依赖

代码片段
# 创建Python虚拟环境(推荐使用Python3.10)
python3.10 -m venv venv

# 激活虚拟环境
source venv/bin/activate

# 升级pip和setuptools(避免版本冲突)
pip install --upgrade pip setuptools wheel

# Torch和相关库需要单独安装以确保兼容性(根据你的CUDA版本)
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121

# WebUI的其他依赖项会通过requirements.txt文件自动处理(等待时间较长) 
pip install -r requirements.txt --prefer-binary --extra-index-url https://download.pytorch.org/whl/cu121 

注意事项
--prefer-binary选项可以减少编译时间,直接使用预编译的二进制包
--extra-index-url指定了PyTorch的CUDA版本特定下载源,确保兼容性

第五步:下载Stable Diffusion模型文件

Stable Diffusion需要预训练模型才能工作。我们将下载最新的稳定版本:

代码片段
# 进入模型目录(如果没有则创建)
mkdir -p models/Stable-diffusion && cd models/Stable-diffusion

# SDXL基础模型下载(约7GB) 
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors 

cd ../..

实践经验
.safetensors格式比传统的.ckpt更安全,推荐使用这种格式的模型文件
– HuggingFace有时会限速,如果下载慢可以尝试添加代理或更换镜像源

第六步:启动WebUI并进行初始配置

现在可以启动WebUI了:

代码片段
# (确保在webui目录下)启动WebUI 
./webui.sh --xformers --listen --enable-insecure-extension-access --no-half-vae 

参数解释:
--xformers:启用内存优化模块(提升性能)
--listen:允许局域网访问(方便其他设备访问)
--enable-insecure-extension-access:允许从URL直接添加扩展(方便后期管理)
--no-half-vae:禁用VAE半精度模式(提高稳定性)

首次启动会自动完成剩余组件的下载和配置。完成后会显示类似如下的输出:

代码片段
Running on local URL: http://127.0.0.1:7860/
Running on public URL: https://xxxx.gradio.live/

在浏览器中打开http://127.0.0.1:7860即可访问Web界面。

第七步:常见问题解决方案

Q1: GPU显存不足错误(CUDA out of memory)

解决方法:

代码片段
./webui.sh --medvram #中等显存优化模式  
./webui.sh --lowvram #低显存优化模式  

Q2: WebUI启动时卡在”Installing xformers”

解决方法:手动安装xformers

代码片段
pip install xformers==0.0.23.post1+cu121 #根据你的CUDA版本调整cu121部分  

Q3: RuntimeError: “LayerNormKernelImpl” not implemented for ‘Half’

解决方法:禁用半精度模式

代码片段
./webui.sh --no-half  

Q4: PIL.Image.DecompressionBombError

解决方法:增加图像解压限制

代码片段
export OPENCV_IO_MAX_IMAGE_PIXELS=10000000000  

WebUI基本功能介绍

成功启动后,你将看到以下主要功能区域:

  1. 文本到图像(Txt2Img) -输入提示词生成图像
  2. 图像到图像(Img2Img) -基于现有图像进行修改生成新图
  3. 扩展功能(Extensions) -可添加ControlNet等强大扩展

图:Stable Diffusion WebUI主界面布局

Python API调用示例

如果你想通过代码调用SD模型而不是使用Web界面,可以使用以下示例代码:

代码片段
import torch
from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler 

model_path = "models/Stable-diffusion/sd_xl_base_1.0.safetensors"

pipe = StableDiffusionPipeline.from_single_file(
    model_path,
    torch_dtype=torch.float16,
    use_safetensors=True,
    variant="fp16"
).to("cuda")

pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)

prompt = "a beautiful sunset over mountains, digital art, highly detailed"
negative_prompt = "blurry, low quality, artifacts"

image = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=1024,
    height=1024,
    num_inference_steps=30,
    guidance_scale=7.5,
).images[0]

image.save("output.png")

代码解释:
1. from_single_file加载我们下载的.safetensors模型文件
2. torch.float16使用半精度浮点减少显存占用
3. EulerAncestralDiscreteScheduler是一种高质量的采样器调度器

GPU监控与优化建议

为了充分利用你的硬件资源,建议监控GPU状态并适当调整参数:

代码片段
nvidia-smi #查看GPU使用情况 

watch -n1 nvidia-smi #每秒刷新一次GPU状态 

优化建议:
1. 分辨率:512×512是速度和质量的平衡点;1024×1024以上需要更多显存
2. 采样步数:20~30步通常足够;50步以上收益递减但耗时增加
3.批处理:一次生成多张图片(–n_samples)比单张多次更高效

Linux系统优化设置

为了获得最佳性能,可以对Ubuntu进行一些调优:

代码片段
#调整交换空间大小(如果内存不足) 
sudo fallocate -l8G /swapfile && sudo chmod600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile 

#提高文件描述符限制(防止大量小文件导致的错误) 
echo "fs.file-max =100000" | sudo tee-a /etc/sysctl.conf && sudo sysctl-p 

#设置GPU持久模式(NVIDIA专用) 
sudo nvidia-smi-pm1 

WebUI高级功能扩展

通过Extensions菜单可以添加许多强大功能:

扩展名称 功能描述 推荐度
ControlNet 精确控制构图和姿势 ★★★★★
Additional Networks 加载LoRA等微调模型 ★★★★☆
Tagger 自动分析图片标签 ★★★☆☆
OpenPose Editor 姿势编辑器 ★★★★☆

典型扩展安装命令:

代码片段
cd extensions 

git clone https://github.com/Mikubill/sd-webui-controlnet.git 

git clone https://github.com/kohya-ss/sd-webui-additional-networks.git 

cd.. && ./webui.sh #重启生效 

Docker部署方案(可选)

如果你希望隔离环境或简化部署流程,可以使用Docker:

代码片段
FROM nvidia/cuda:12.4-runtime 

RUN apt update && apt install-y wget git python3 python3-pip libglib2.0-dev 

WORKDIR/app 

RUN git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git webui \ 
&& cd webui \ 
&& python3-m venv venv \ 
&& . venv/bin/activate \ 
&& pip install torch torchvision torchaudio--index-url https://download.pytorch.org/whl/cu121 \ 
&& pip install-r requirements.txt--prefer-binary 

VOLUME ["/app/webui/models"] 

EXPOSE7860 

CMD ["sh", "-c", "cd /app/webui && ./webui.sh --listen"] 

构建并运行:

代码片段
docker build-t sd-webui . 

docker run--gpus all-p7860:7860-v $(pwd)/models:/app/webui/models sd-webui 

AutoDL云服务部署方案(可选)

如果你没有足够强大的本地硬件,可以考虑云服务:

代码片段
AutoDL官网注册账号 →选择RTX4090实例 →Ubuntu20镜像 →按本文步骤配置 →按需计费节省成本 →通过SSH隧道访问7860端口 →关闭实例避免持续计费 →下次使用时从快照恢复...

云服务优势:
✔️无需高额前期硬件投入 ✔️按需付费 ✔️随时升级配置 ✔️24小时运行不担心电费…

SDXL与SD15性能对比测试数据 (RTX3090)

了解不同模型的资源需求有助于合理规划:

指标 SDXL Base SD15
分辨率 1024×1024 512×512
显存占用 12GB 6GB
生成时间 15s 5s
默认采样步数 30 20
模型大小 7GB 4GB

结论:
•SDXL质量更高但资源消耗大 •SD15适合快速迭代想法 •根据任务需求选择合适的模型…

Stable Diffusion生态系统概览 (2025年最新)

除了基础的文生图功能外,整个生态已经发展出多个专业方向:

代码片段
├─核心模型系列(SDXL/SD15/SD21...)
├─微调技术(LoRA/DreamBooth...)
├─控制技术(ControlNet/T2IAdapter...)
├─视频生成(Make-A-Video系列...)
├─3D生成(DreamFusion类方法...)
└─商业应用API(DALL·E竞争者...)

2025年的重要变化:
✓SDXL成为行业标准 ✓视频生成质量大幅提升 ✓开源社区贡献占比超过70% ✓商业API价格下降80%…

AI绘画提示词工程技巧分享 (2025版)

高质量提示词结构示例:

代码片段
[主题][风格][质量][构图][光照][色彩][细节]
↓具体示例↓:
"A futuristic cityscape at night, cyberpunk style, ultra HD, wide angle shot, neon lighting, vibrant colors, intricate details of flying cars and holograms"

2025年新趋势:
•更自然的语言描述取代关键词堆砌 •负向提示重要性降低 •风格预设更加智能化 •多模态理解能力增强…

AI绘画伦理与版权指南 (重要!)

随着技术发展,请注意:

✓禁止生成侵权内容 ✓商业用途需确认模型许可 ✓尊重艺术家原创作品 ✓标注AI生成声明 ✓遵守平台内容政策…
推荐资源:
•CreativeML OpenRAIL-M许可证 •LAION伦理指南 •本地法律咨询…


通过本指南,你应该已经成功在Ubuntu20上部署了最新的StableDiffusion系统。如有任何问题欢迎留言讨论。HappyDiffusing!🎨

原创 高质量