
Stable Diffusion
Stable Diffusion 入门教程:安装、文生图、图生图与 ControlNet 实操
面向刚接触本地 AI 绘画的读者,梳理 Stable Diffusion 的硬件与软件准备、模型与扩展安装、文生图与图生图参数、高清放大、ControlNet 与 LoRA 的典型用法,并给出一个从零跑通的完整示例。
Stable Diffusion 是一套可以在本地运行的文本生成图像模型,它把「用一句话描述画面」变成「得到一张可用的图」这件事,从云端服务搬到了自己的机器上。适合它的场景很明确:需要批量出图、需要固定某一种画风、需要把生成结果继续拿去做抠图或重绘、或者对提示词与参数想逐项调优的人。它的代价是前期要花一点时间把环境、模型和扩展装好,之后才谈得上顺手。如果你还没决定要不要本地部署,可以先通过 Stable Diffusion 这类在线入口感受一下出图流程,再决定是否投入硬件。
准备工作
本地跑图对硬件有实打实的要求,先把这一关过了,后面才顺。
硬件配置
- 显卡:NVIDIA 独立显卡是主流选择,显存越大能开的画幅和模型越多。显存偏小的机器只能出较小尺寸的图,或者需要借助分块处理等手段。
- 内存:系统内存建议留足余量,模型加载和图像后处理都会占用。
- 硬盘:模型文件体积不小,多个基础模型加一堆 LoRA、ControlNet 模型,很容易吃掉几十到上百 GB,建议单独留一块空间。
- 其他:AMD 显卡、Apple 芯片的机器也有对应的运行方式,但可用性和速度与 NVIDIA 路线不同,选型前先确认自己的平台有没有成熟方案。
具体的显存门槛、推荐配置会随版本和优化手段变化,以你所选发行版的官方说明为准。
软件环境
- Python:多数发行版依赖 Python 运行环境,安装时注意勾选把 Python 加入系统路径,否则后续脚本会找不到解释器。
- Git:用于拉取发行版仓库和扩展仓库。
- 显卡驱动:保持较新的驱动版本,驱动过旧会出现算力不匹配或直接报错。
- 网络:下载模型和扩展时需要能稳定访问对应的托管站点,网络不稳会导致下载中断、文件损坏。
发行版选择
Stable Diffusion 本身是模型与推理代码,日常使用一般通过某个整合发行版来跑。常见的有面向新手的整合包,也有以扩展生态丰富著称的 WebUI 发行版。选择时关注三点:是否自带一键启动脚本、扩展安装是否方便、社区文档是否齐全。装好之后你会得到一个本地网页界面,所有操作都在浏览器里完成。
操作步骤
第一步:安装发行版并首次启动
把发行版仓库克隆到本地,然后运行它提供的启动脚本。以命令行方式为例,大致形态如下:
git clone <发行版仓库地址>
cd <发行版目录>
# Windows 下运行启动脚本
webui-user.bat
# Linux / macOS 下运行
bash webui.sh
首次启动会自动安装依赖,耗时较长。启动完成后终端会打印一个本地地址,通常是 127.0.0.1 加一个端口号,用浏览器打开即可进入界面。如果启动过程中报错,优先看终端最后几行,常见原因是 Python 版本不符、依赖安装失败或显存不足。
第二步:安装基础模型
基础模型决定出图的整体风格与能力上限。把下载好的模型文件放进发行版指定的模型目录,通常是 models/Stable-diffusion。放好后在界面左上角的模型下拉框里刷新并选中它。
模型文件常见格式有 .ckpt 和 .safetensors,后者在加载安全性上更受推荐。文件体积通常在数 GB 量级,下载后建议核对文件大小是否完整,残缺文件会导致加载失败。
第三步:认识模型种类
- 基础模型:决定整体画风与知识范围,是出图的底座。
- LoRA:小体积的附加模型,用来给基础模型叠加特定人物、画风或概念,可调权重。
- ControlNet 模型:用于控制构图,比如按线稿、姿态、深度图生成。
- VAE:影响色彩与细节表现,部分基础模型需要搭配特定 VAE。
- 放大模型:专门用于高清放大阶段,与基础模型分开存放。
第四步:文生图
文生图是最常用的模式,核心是提示词加参数。
提示词分正向与反向两部分。正向描述你想要的画面,反向描述你不想要的元素。写法上通常把主体、动作、环境、光线、风格、画质词按重要性从前往后排列,用英文逗号分隔。权重可以用括号加数字的方式调整,例如 (masterpiece:1.2) 表示提高该词的权重。
关键参数:
| 参数 | 作用 |
|---|---|
| 采样方法 | 决定去噪算法,不同方法在速度与细节上各有取舍 |
| 采样步数 | 迭代次数,过低画面不完整,过高收益递减且更慢 |
| 提示词引导系数 | 模型贴合提示词的程度,过高会显得僵硬 |
| 随机种子 | 固定后同样的提示词与参数可复现同一张图 |
| 分辨率 | 宽高需为 8 的倍数,过大容易构图崩坏 |
| 批次 | 一次生成的数量,受显存限制 |
调参的基本思路是:先固定种子,只改一个变量,观察变化,再决定下一步。一次性改多个参数很难判断是哪个起了作用。
第五步:图生图
图生图以一张已有图片为起点,在其基础上重新生成。它多出一个关键参数——重绘幅度,用来控制新图与原图的偏离程度。数值低时接近原图,适合修细节、换风格;数值高时接近文生图,适合大幅改造。配合蒙版使用,可以只重绘指定区域,其余部分保持不变。
第六步:安装扩展
扩展用来补足原生界面没有的功能。安装方式一般是在界面的扩展管理页里粘贴仓库地址后点击安装,装完重启界面生效。也可以手动把扩展仓库克隆到 extensions 目录。安装失败时先看终端日志,常见原因是网络中断或依赖冲突。
第七步:图片高清放大
直接生成大尺寸图片容易构图崩坏,常规做法是先出小图,再放大。放大可以在图生图里配合放大模型与较低重绘幅度完成,也可以使用专门的放大扩展做分块处理。分块放大会把图片切成若干块分别放大再拼接,显存占用更低,但块与块之间可能出现接缝,需要调整重叠区域来缓解。
第八步:ControlNet
ControlNet 用来精确控制构图。使用前需要安装对应扩展,并把 ControlNet 模型放进指定目录。常见控制类型包括:
- 线稿类:从图片提取边缘或线稿,按线条生成。
- 姿态类:识别人物骨骼关键点,控制人物姿势。
- 深度类:用深度图控制前后景关系。
- 分割类:按语义分区控制画面布局。
使用时把参考图放进 ControlNet 面板,选择对应的预处理器与模型,再调整控制权重。权重过高会限制模型发挥,画面显得生硬;过低则控制失效。
第九步:LoRA 与模型训练
LoRA 通过叠加小模型来引入特定概念,使用时在提示词里用特定语法引用,并可通过权重控制强度。如果现成 LoRA 满足不了需求,可以自己训练:准备一批风格统一的素材图,打上标签,配置训练参数后开始训练。训练对显存和时间的要求比出图高得多,素材质量与标签准确度直接决定成品效果。
第十步:其他实用功能
- X/Y/Z 图表:一次跑多组参数并排成网格,用来横向对比不同采样方法、步数或提示词的效果,是调参利器。
- 提示词汉化:通过扩展把界面与提示词相关文本本地化,降低上手门槛。
- 一键抠图与重绘:借助分割类扩展自动识别主体并生成蒙版,再配合图生图做局部重绘。
- 视频转动漫:把视频逐帧拆成图片,批量走图生图流程,再合成回视频。
一个完整示例
下面走一遍从零到出图的最小流程。
- 克隆发行版仓库并运行启动脚本,等待依赖安装完成,浏览器打开终端给出的本地地址。
- 下载一个基础模型,放进
models/Stable-diffusion,在界面里刷新并选中它。 - 切到文生图页,正向提示词填写主体、环境、光线与画质描述,反向提示词填写不想要的元素,例如低质量、多余手指等。
- 采样方法选一个常用项,采样步数设为中等值,提示词引导系数保持默认附近,分辨率先设成较小的正方形。
- 随机种子填 -1 表示随机,点生成,观察结果。
- 如果构图满意但细节不足,把种子固定为刚才那张图的种子,适当提高步数再生成一次。
- 把满意的图送入图生图,重绘幅度调到较低值,配合放大模型做高清放大。
- 需要精确构图时,在 ControlNet 面板放入参考图,选择线稿或姿态类预处理器与模型,调整权重后重新生成。
整个流程跑通之后,剩下的就是围绕提示词、模型和参数反复迭代。
注意事项
- 分辨率必须是 8 的倍数,否则会直接报错。
- 显存是主要瓶颈,出图尺寸、批次数量、是否同时挂多个 ControlNet 都会影响占用,显存不足时优先降尺寸和批次。
- 模型文件要完整,下载中断产生的残缺文件会导致加载失败,建议核对文件大小。
- 固定种子才能复现,想对比参数效果时务必先固定种子,只改一个变量。
- 重绘幅度是图生图的核心,数值选择直接决定结果是修图还是重画。
- ControlNet 权重需要试,过高画面僵硬,过低控制失效,没有通用最优值。
- 训练比出图更吃资源,素材数量、标签质量、训练步数都会影响成品,不要指望一次就得到理想效果。
- 扩展安装依赖网络,安装失败先看终端日志,多数问题出在下载中断或依赖冲突。
- 版本、模型许可与可用性会变化,涉及具体版本号、模型授权范围、硬件门槛时,以相关项目的官方页面当前信息为准。