Stable Diffusion本地部署踩坑记录
折腾Stable Diffusion本地部署有一段时间了,从环境配置到各种插件,踩了不少坑。记录一下实战经验。
Stable Diffusion原理简述
核心是在潜在空间(Latent Space)做扩散,不是直接处理像素。这样计算量小很多,消费级显卡也能跑。
潜在空间类比:就像用18位身份证号能唯一标识一个人,潜在空间用较少的维度(512×512图像只需约768维)就能捕捉图像本质特征。
硬件与软件环境
最低配置:
- 显卡:GTX 1060 6GB
- 内存:8GB
- 硬盘:20GB SSD
推荐配置:
- 显卡:RTX 3060 12GB+
- 内存:16GB+
- 硬盘:100GB+ NVMe SSD
软件环境:
1 | # Python 3.10 |
WebUI安装
1 | git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git |
常见安装问题
GFPGAN安装失败
经常卡在Installing GFPGAN,手动安装:
1 | git clone https://github.com/TencentARC/GFPGAN.git |
CUDA版本不匹配
1 | # 查看CUDA版本 |
启动WebUI
1 | # Windows |
浏览器访问 http://localhost:7860
基础使用
提示词结构
正面提示词:
1 | (质量标签), (主体), (细节), (风格), (光线), (视角) |
示例:
1 | masterpiece, best quality, 1girl, long hair, blue eyes, |
负面提示词:
1 | (worst quality, low quality:1.4), (zombie, sketch, interlocked fingers), |
关键参数
| 参数 | 说明 | 推荐值 |
|---|---|---|
| Sampling Steps | 采样步数 | 20-30 |
| CFG Scale | 提示词权重 | 7-12 |
| Resolution | 分辨率 | 512×512或768×768 |
| Seed | 随机种子 | -1随机/固定值复现 |
ControlNet高级应用
ControlNet可以通过额外条件(姿态、边缘、深度等)控制图像生成。
工作流程:
1 | 参考图像 → 预处理器 → 控制图 → ControlNet → 图像生成 |
预处理器类型:
- OpenPose:人体姿态
- Canny:边缘检测
- Depth:深度图
- Scribble:涂鸦
- Normal:法线贴图
角色设定图生成
步骤1:准备骨骼四视图的OpenPose骨骼图
步骤2:写提示词
1 | (character sheet of the same exact:1.4)(Gradient background:1.2), |
关键提示词:
character sheet of the same exact:确保同一角色的多个视图reference sheet:参考表格式Gradient background:渐变背景
步骤3:ControlNet设置
1 | ControlNet Unit 0: |
步骤4:设置出图尺寸
- 宽度: 1024
- 高度: 768(根据骨骼图比例)
图生图放大
- 文生图生成满意结果后,点击”发送到图生图”
- 重绘幅度: 0.5(保持原图结构)
- 放大倍数: 1.5x 或 2x
- 可再添加ControlNet防止跑偏
局部重绘修复
修复面部崩坏:
- 进入图生图 → 局部重绘
- 用画笔涂抹变形的面部
- 局部重绘设置:
- Mask content: original
- Inpaint area: Only masked
- Denoising strength: 0.3-0.5
- ControlNet添加canny预处理器
- 生成修复
LoRA模型使用
LoRA(Low-Rank Adaptation)是轻量化的模型微调方法,用于生成特定风格或角色。
提示词格式:<lora:模型名:权重>
示例:
1 | <lora:anime_style_v1:0.8>, 1girl, school uniform |
权重建议:
| 用途 | 权重范围 | 说明 |
|---|---|---|
| 风格融合 | 0.3-0.6 | 轻微影响 |
| 角色特征 | 0.6-0.9 | 明显特征 |
| 精确还原 | 0.9-1.2 | 高度还原 |
GFPGAN人脸修复
GFPGAN是腾讯开源的人脸修复算法,可以修复模糊、低质量的人脸。
WebUI中使用:
- 点击”Extras”标签
- 上传需要修复的图像
- 选择”GFPGAN”选项卡
- 设置可见度(0-1)
- 点击”Generate”
手动安装GFPGAN:
1 | git clone https://github.com/TencentARC/GFPGAN.git |
AI生成视频
Text-to-Video(达摩模型)
1 | conda create -n videoai python=3.9 -y |
运行代码:
1 | import torch |
效果一般,但能跑通。显存占用比较大,建议12GB以上显卡。
高级技巧
CLIP Skip设置
1 | CLIP Skip: 2 |
跳过CLIP模型的最后几层,减少文本编码的细节,生成图像更具艺术性。
VAE选择
| VAE类型 | 特点 | 适用场景 |
|---|---|---|
| 自带VAE | 通用 | 日常生成 |
| vae-ft-mse | 色彩饱和 | 动漫风格 |
| 840000 VAE | 写实 | 真人照片 |
Prompt矩阵批量生成
1 | {1girl|1boy}, {red|blue|green} hair, masterpiece |
生成组合:
- 1girl, red hair
- 1girl, blue hair
- 1girl, green hair
- 1boy, red hair
- 1boy, blue hair
- 1boy, green hair
性能优化
启用xformers加速:
1 | pip install xformers |
启动参数:
1 | # webui-user.bat里修改 |
常见问题汇总
安装问题
| 问题 | 解决方案 |
|---|---|
| GFPGAN安装失败 | 手动下载安装 |
| CUDA out of memory | 降低分辨率或启用xformers |
| torch.compile错误 | 注释掉app.py中的torch.compile行 |
| 编码错误 | 将文件编码改为UTF-8 |
生成问题
| 问题 | 解决方案 |
|---|---|
| 脸部崩坏 | 使用GFPGAN修复或ADetailer |
| 肢体扭曲 | 使用ControlNet OpenPose |
| 画质低 | 增加采样步数或使用高分辨率修复 |
| 无法复现 | 固定种子值 |
模型推荐
写实风格
- Realistic Vision:真实感强
- Deliberate:细节丰富
- DreamShaper:平衡性好
动漫风格
- Anything V5:动漫风格
- Counterfeit:精致画风
- MeinaMix:日系风格
特殊用途
- ControlNet模型:姿态/边缘控制
- LoRA模型:特定角色/风格
- Embedding:负面提示词优化
Stable Diffusion本地部署整体来说门槛不算高,但坑不少。主要是依赖包版本冲突、显存不足、模型下载慢这些问题。建议用Conda管理环境,显存不够就用低显存模式或者降低分辨率。ControlNet和LoRA用熟了能出很好的效果。