Stable Diffusion 本地部署与 LoRA 微调指南
Stable Diffusion(SD)开源后,"本地部署 + LoRA 微调"成为内容创作者最常见的进阶需求。本文用最直白的步骤带你从零开始,演示怎么在自己的电脑上跑出 SD 3,并训练一个专属 LoRA。
一、为什么本地部署
| 优势 | 说明 | |---|---| | 无 API 成本 | 一次性硬件投入,不按调用付费 | | 完全可控 | 模型、插件、参数全开放 | | 隐私 | 私有数据可本地训练 | | 大量微调 | LoRA / ControlNet 等扩展生态丰富 |
代价是需要硬件 + 学习成本。
二、硬件准备
| 目标 | 推荐显卡 | |---|---| | 出 1024×1024 图 | 8GB 显存起步 | | 出 2048×2048 / 多 ControlNet | 12GB 显存 | | 批量跑 + 训练 LoRA | 16-24GB 显存(如 RTX 4090) |
没有独显也可以走云端方案(AutoDL、揽睿星舟等),按小时计费。
三、软件清单
- Python 3.10+:SD WebUI 系列依赖
- PyTorch:与 CUDA 版本对应
- Stable Diffusion WebUI 或 ComfyUI:
- WebUI:经典、插件多、文档全
- ComfyUI:节点式、效率高、可复现
- 基础模型:从 Hugging Face 或 Civitai 下载 SD 3 / SDXL 等
- 可选:ControlNet、IP-Adapter、LoRA 训练脚本(kohya_ss)
四、本地部署步骤(以 ComfyUI 为例)
# 1. 克隆仓库
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# 2. 安装依赖(建议 conda 环境)
pip install -r requirements.txt
# 3. 下载基础模型到 models/checkpoints/
# 例如 sd3_medium_incl_clips_t5xxlfp8.safetensors
# 4. 启动
python main.py
打开提示的 URL(默认 http://127.0.0.1:8188),上传简单工作流即可生成。
五、第一次出图:最简工作流
最简单的"提示词 → 图像"工作流只需四个节点:
- Checkpoint Loader:选择基础模型
- CLIP Text Encode ×2:分别填正/负向 prompt
- Sampler + VAE Decode + Save Image:生成 + 输出
正向 prompt 示例:
1girl, long hair, white dress, garden, sunlight, masterpiece, best quality
负向 prompt 示例:
blurry, lowres, bad anatomy, extra fingers, mutated
六、LoRA 微调:5 步训练专属画风
步骤 1:准备数据集
- 收集 20-50 张目标风格的图片
- 统一分辨率(如 512×512 或 1024×1024)
步骤 2:打标签
用 BLIP / WD Tagger 自动生成,再人工修正。每张图配一个 .txt 文本。
步骤 3:选训练脚本
常用 kohya_ss:
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
setup.sh # 一键安装
步骤 4:配置训练参数
- 网络结构:LoRA
- 秩(rank):8-32(越高越"像",也越易过拟合)
- 学习率:1e-4 到 5e-5
- 步数:1500-3000 看样本量
- batch size:显存允许下尽量大
步骤 5:开始训练并验证
accelerate launch train_network.py \
--pretrained_model_name_or_path=./models/checkpoints/sd3_medium.safetensors \
--train_data_dir=./datasets/my_style \
--output_dir=./output/lora \
--network_module=networks.lora --network_dim=16 \
--learning_rate=1e-4 --max_train_steps=2000
训练完把 LoRA 放进 ComfyUI 的 models/loras/,加载即可用。
七、常见问题与修复
| 现象 | 原因 | 修复 | |---|---|---| | 显存溢出 (OOM) | 分辨率/批次太大 | 降分辨率到 768 / 开 xformers / 关 T5 | | 训练后很像但不像 | 过拟合 | 减少步数 / 增大数据集 | | 训练后变化不大 | 学习率太低 / 步数太少 | 增大 LR 或步数 | | 出图全是噪点 | VAE 不匹配 | 换与基础模型配套的 VAE | | 出图手指畸变 | 提示词与分辨率不匹配 | 加 "anatomically correct hands"、用 ADetailer 插件 |
八、进阶玩法
- ControlNet:用轮廓 / 深度图控制构图
- IP-Adapter:用一张参考图控制风格
- AnimateDiff:把 SD 扩展成视频生成
- LoRA 融合:把多个 LoRA 按权重混合用
九、避坑提醒
- 不要拿别人的画商用:训练数据要合规
- 不要训练名人脸:涉及侵权与合规风险
- 保存好基准图:训练完对比"没 LoRA 时"的输出判断效果
- 从社区起步:Civitai 有大量免费 LoRA 可先用,省去前期训练成本
十、常见问题
Q1:要不要 Mac(M 芯片)? A:可以,但 SD 3 在 MPS 后端仍有些稳定性问题,建议选 SDXL 或等版本完善。
Q2:商用要付费吗? A:模型本身许可证要看 Stability AI 最新条款;LoRA 数据要合规。
Q3:必须训练 LoRA 吗? A:不必须。普通用户主要靠社区 LoRA + 提示词工程就够了。
本文整理自 Stability AI 官方文档、ComfyUI 与 kohya_ss 仓库及社区经验,具体步骤可能因版本变化而调整。
post-304.html