Stable Diffusion基础
Stable Diffusion(SD)是目前最流行的开源图像生成模型之一。本节将带你了解SD的核心概念、架构原理和基本使用方法。
预计阅读时间:45分钟·难度:入门
什么是Stable Diffusion
Stable Diffusion是由Stability AI于2022年发布的开源图像生成模型。它使用潜在扩散模型(Latent Diffusion Model)架构,在保证生成质量的同时大幅降低了计算成本。
核心优势
- 开源免费:模型权重完全公开,可本地部署
- 资源友好:4GB显存即可运行,相比DALL-E大幅降低门槛
- 社区活跃:大量第三方模型、插件和教程
- 可控性强:支持LoRA、ControlNet等精细控制
- 商业化友好:开源许可允许商业使用
发展历程
| 时间 | 版本 | 重要特性 |
|---|---|---|
| 2022.08 | SD 1.4 | 首个公开发布版本 |
| 2022.10 | SD 1.5 | 经典版本,生态最丰富 |
| 2022.11 | SD 2.0 | OpenCLIP,768分辨率 |
| 2023.07 | SDXL 1.0 | 1024分辨率,双编码器 |
| 2024.06 | SD3 | 多模态扩散Transformer |
模型架构
Stable Diffusion由三个核心组件构成:VAE、文本编码器和UNet。
三大核心组件
1. VAE(变分自编码器)
- • 编码器:将图像压缩到潜在空间(512×512 → 64×64×4)
- • 解码器:将潜在表示还原为图像
- • 作用:降低计算成本,在潜在空间进行扩散
2. 文本编码器(CLIP)
- • 将文本提示词编码为嵌入向量
- • SD1.x使用OpenAI CLIP ViT-L/14
- • SDXL使用双编码器架构
3. UNet(去噪网络)
- • 核心扩散网络,预测噪声
- • 包含ResNet块和注意力层
- • 通过Cross-Attention接收文本条件
模型参数量
| 组件 | SD 1.5 | SDXL |
|---|---|---|
| UNet | 860M | 2.6B |
| 文本编码器 | 123M | 817M |
| VAE | 83M | 83M |
| 总计 | 约1.1B | 约3.5B |
工作流程
文生图流程
- 文本编码
提示词通过CLIP编码为文本嵌入向量 - 初始化噪声
在潜在空间采样随机高斯噪声 - 迭代去噪
UNet预测噪声,逐步去噪(通常20-50步) - 图像解码
VAE解码器将潜在表示转换为像素图像
图生图流程
- 图像编码
VAE编码器将输入图像压缩到潜在空间 - 部分加噪
根据去噪强度添加噪声(0=不改动,1=完全重建) - 迭代去噪
UNet根据文本条件进行去噪 - 图像解码
VAE解码器输出最终图像
核心参数
理解这些参数是生成高质量图像的关键。
采样步数(Steps)
- 作用:控制去噪过程的迭代次数
- 推荐范围:20-50步
- 说明:步数过少图像模糊,过多收益递减
- 建议:日常使用20-30步,高质量生成可用40-50步
CFG Scale(引导强度)
- 作用:控制图像与提示词的匹配程度
- 推荐范围:7-12
- 说明:值越高越严格遵循提示词,但可能过饱和
- 建议:写实风格5-8,艺术风格10-15
采样器(Sampler)
| 采样器 | 特点 | 推荐场景 |
|---|---|---|
| Euler a | 快速,效果平衡 | 日常使用 |
| DPM++ 2M Karras | 速度快,质量高 | 推荐首选 |
| DPM++ SDE Karras | 细节丰富 | 高质量生成 |
| UniPC | 新算法,效率高 | 快速生成 |
| DDIM | 确定性,可复现 | 需要固定种子 |
分辨率
- SD 1.5:推荐 512×512,支持 512×768 等比例
- SD 2.x:推荐 768×768
- SDXL:推荐 1024×1024
- 注意:非标准分辨率可能导致图像畸变
💡 参数组合建议
- • 快速预览:Euler a + 20步 + CFG 7
- • 日常生成:DPM++ 2M Karras + 30步 + CFG 8
- • 高质量:DPM++ SDE Karras + 50步 + CFG 10
快速上手
部署方式
本地部署
- • WebUI:AUTOMATIC1111 / ComfyUI
- • 硬件需求:NVIDIA显卡,8GB+显存推荐
- • Python环境:Python 3.10+,PyTorch
在线平台
- • Stability AI官方平台
- • Civitai在线生成
- • Hugging Face Spaces
第一个提示词
基础模板:
a beautiful landscape, mountains, sunset, golden hour, photorealistic, 8k, highly detailed负面提示词:
low quality, blurry, distorted, watermark, text⚠️ 新手常见问题
- Q: 生成的图像颜色不对?
A: 可能需要加载对应的VAE文件 - Q: 图像模糊或畸变?
A: 检查分辨率是否符合模型推荐值 - Q: 提示词效果不明显?
A: 提高CFG Scale,或将关键词放在前面
模型选择指南
选择合适的模型是生成高质量图像的第一步。
主流模型分类
基础模型(Base Models)
- • SD 1.5:生态最丰富,兼容性最好,资源最多
- • SD 2.1:更高质量的文本理解,支持768分辨率
- • SDXL 1.0:最新一代,1024分辨率,效果最佳
- • SD3:DiT架构,文本理解最强
衍生模型(Fine-tunes)
- • Realistic Vision:写实风格,适合人像和摄影
- • DreamShaper:通用型,风格多样
- • Juggernaut XL:SDXL生态中的高质量模型
- • Animagine:动漫风格专用
模型选择策略
| 使用场景 | 推荐模型 | 理由 |
|---|---|---|
| 写实人像 | Realistic Vision / Juggernaut XL | 高度写实的皮肤和光影 |
| 动漫插画 | Anything V5 / Animagine | 专为动漫风格优化 |
| 概念艺术 | DreamShaper / Deliberate | 风格多样,创意性强 |
| 产品设计 | SDXL + 产品LoRA | 高分辨率,细节丰富 |
| LoRA训练 | SD 1.5 / SDXL 基础模型 | 兼容性好 |
模型资源
- Civitai:最大的模型分享平台,有丰富的预览图和评价
- Hugging Face:官方模型发布平台,版本更新及时
- LiblibAI:国内平台,下载速度快
💡 模型选择建议
- • 新手从SD 1.5开始,生态最成熟
- • 追求高质量可尝试SDXL
- • 下载前查看模型示例和用户评价
- • 注意模型的许可证和商用限制
WebUI详解
深入了解Stable Diffusion WebUI的功能和使用方法。
主流WebUI对比
| WebUI | 特点 | 适合人群 |
|---|---|---|
| AUTOMATIC1111 | 功能全面,插件丰富,界面直观 | 新手和进阶用户 |
| ComfyUI | 节点式工作流,高度可定制,效率高 | 高级用户和工作流需求 |
| Forge | A1111优化版,性能更好 | 追求效率的用户 |
| InvokeAI | 界面美观,工作流友好 | 专业创作者 |
A1111核心功能
txt2img(文生图)
- • 输入提示词和负面提示词
- • 设置采样器、步数、CFG、分辨率
- • 使用脚本批量生成或变化
img2img(图生图)
- • 基于输入图像生成新图像
- • 控制去噪强度调整修改程度
- • 支持重绘和扩图
Extras(后期处理)
- • 超分辨率放大
- • 面部修复(GFPGAN/CodeFormer)
- • 图像压缩和格式转换
常用插件推荐
- ControlNet:结构控制必备
- ADetailer:自动面部修复
- Ultimate SD Upscale:高质量放大
- OpenPose Editor:姿态编辑
- Supermerger:模型合并
- LoRA / Additional Networks:LoRA管理
⚠️ 显存优化建议
- • 使用xformers加速,减少显存占用
- • 启用VAE切片处理大图
- • 使用--medvram或--lowvram参数
- • 降低分辨率或批量大小
进阶技巧
掌握这些技巧,提升生成质量和效率。
高质量生成流程
- 选择合适的模型:根据风格选择基础模型或衍生模型
- 编写精准提示词:主体 + 细节 + 风格 + 质量词
- 设置负面提示词:排除不想要的元素
- 调整核心参数:采样器、步数、CFG、分辨率
- 使用ControlNet控制结构:如果需要精确控制
- 使用LoRA增强效果:风格、角色或概念
- Hires.fix高清修复:提升分辨率和细节
- ADetailer面部修复:修复人脸问题
高清放大策略
方法1:Hires.fix(推荐)
- • 生成时直接放大,效率高
- • 推荐设置:放大倍数1.5-2x,重绘幅度0.3-0.5
- • 配合ESRGAN或R-ESRGAN放大器
方法2:Ultimate SD Upscale
- • 分块放大,支持超大分辨率
- • 可以添加更多细节
- • 配合Tile ControlNet效果更佳
人脸修复技巧
- ADetailer:自动检测并修复人脸,推荐日常使用
- CodeFormer:AI修复,效果好但可能改变面部特征
- GFPGAN:保守修复,保留原始特征
- Inpaint手动修复:精细控制,适合重要作品
批量生成策略
- X/Y/Z Plot:参数对比测试,找到最佳组合
- Prompts from file:批量读取提示词生成
- 循环采样:自动调整种子生成多张图
- 保存设置:记录成功的参数配置
💡 效率优化建议
- • 建立提示词模板库,快速复用
- • 使用ComfyUI工作流自动化复杂流程
- • 保存成功的生成配置
- • 善用种子复现和微调效果
- • 定期整理和清理模型文件