Stable Diffusion WebUI Forge 自定义模型训练指南:几张照片教 AI 认识你的专属风格
2026/9/13 21:08:02 网站建设 项目流程

Stable Diffusion WebUI Forge 自定义模型训练指南:几张照片教 AI 认识你的专属风格

【免费下载链接】stable-diffusion-webui-forge项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge

想让你的 Stable Diffusion WebUI Forge 学会一个 AI 从没见过的事物吗?比如你养的那只猫、你公司的品牌配色、或者你自己固定的手绘风格。文本嵌入训练(Textual Inversion)让你只拍 5 到 20 张照片,就能让 AI 记住这个新概念,而不用去改模型本身的权重。训练完成后,你在提示词里打一个标签,比如a photo of <mycat> sitting on the window sill,画出来的猫就是它,而不是"某只猫"。整个过程不需要读一行源码,下面按步骤带你走一遍。

原理速通:给模型的"生词本"贴一个新词

把模型的词表想象成一本已经印好的生词本:每个词对应一页解释。你不能撕掉重写,但可以贴一张便签——"这个词,以后就代表这只猫"。文本嵌入做的就是这件事:你挑一个占位符 token 当便签,然后拿你的照片反复"喂"它,模型就会把那张便签和猫的样子绑定起来。训练只改这一个词对应的向量,模型的其余部分原封不动。这套逻辑写在 modules/textual_inversion/textual_inversion.py 里,EmbeddingEmbeddingDatabase两个类分别管"存/读一个嵌入"和"把嵌入注册进当前模型",你了解个大概就够了。

准备清单:数据集怎么备、名字怎么取

开工前把四件事办妥,后面就能一路绿灯:

  • 拉代码git clone https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge,按正常方式启动 WebUI。
  • 建数据集:在项目里建一个dataset文件夹,放进 5–20 张训练图。
  • 统一尺寸:全部裁成 512x512,角度和光照尽量多样但主体保持一致。
  • 写描述:每张图配一行文字,用[V]当占位符,例如a photo of [V] style[V]的位置就是将来新词出现的位置。
  • 取名字:嵌入名只能有字母、数字和下划线(如my_style),别用中文和空格,创建时会自动清掉非法字符。

训练实操:从建向量到出图,四步走完

建:在 Train 页创建你的第一个向量

打开 WebUI 的Train标签页,走一遍创建流程(背后调用的是 ui.py 里的create_embedding,实际建向量逻辑在 textual_inversion.py 的create_embedding函数):

  • 嵌入名称:如my_style
  • 初始化文本:填一个跟目标相近的概念,比如油画风格就填oil painting。这一步是给便签一个"起跑姿势",填得越接近目标,收敛越快。
  • 向量数量:简单概念选 1,复杂风格选 4。

创建成功后,会生成一个.pt文件落在embeddings目录,这就是待训练的新词。

定:参数这样配,新手不翻车

参数建议值说明
学习率0.005先按此值起步,训练中可逐步调小
训练步数1000–3000样本少取低值,多取高值
批次大小1–4完全看 GPU 显存余量
梯度累积4显存不够时用它换"等效大批次"

跑:盯住 Loss 曲线判断好坏

点开始训练(对应train_embedding入口),页面上会出现实时损失值。健康的走势是:Loss 稳步下降,最后稳定在 0.05 以下。如果中途手动停止或正常跑完,训练会自动把结果存成embeddings里的[名称].pt,不用你手动保存。

验:在生成界面用新标签出图

切回 txt2img,在提示词里用尖括号调用新词:

a photo of <my_style> landscape with mountains

出图稳定、主体一致,就算验收通过。

调优手册:效果差时依次试这三招

  1. 补样本:再拍几张不同角度、不同光照的图加进dataset,信息量上去了,概念才立得稳。
  2. 换学习率策略:把固定学习率换成调度器(比如余弦退火),前期大步探索、后期小步精修,通常更稳。
  3. 开自动裁剪:训练界面开启 auto-crop,项目自带的裁剪逻辑(见 autocrop.py)会自动把主体框出来再训练,减少背景干扰。

踩坑急救包:常见现象对应处理

现象:训练直接崩、显存爆掉→ 开 Low VRAM 模式;批次大小压到 1;关掉训练过程中的预览生成;顺手清理tmp目录的临时文件。

现象:训练 Loss 很低,但生成结果僵硬、千篇一律(过拟合)→ 减少训练步数,或加入正则化样本(放几张"无关图"陪跑)。

现象:AI 把两个概念搅在一起,出的图四不像(概念混淆)→ 多半是初始化词没选好,换一个更贴切的初始化文本重建向量重训。

现象:同一批提示词,时好时坏→ 回头检查数据集:光照、角度是否太乱,主体占比是否太小。统一一下再来。

收尾:分享你的模型,以及下一步

训练产物就是一个小文件:把.pt发给朋友,让他丢进自己项目的embeddings目录,刷新即生效——整个分享流程如此简单。

顺带一提,load_from_file 除了读.pt/.BIN/.safetensors,还支持把嵌入数据塞进 PNG 图片元数据里(实现见 image_embedding.py),方便打包分享。

想再往前进一步,可以看看这两个方向:

  • 叠加 LoRA:文本嵌入负责"是什么",LoRA 负责"怎么画",两者混用效果更好,相关代码在 packages_3rdparty/webui_lora_collection。
  • 混合训练:风格嵌入 + 物体嵌入一起跑,让"你的画法"和"你的角色"同时学会。

第一次训练翻车很正常,把数据集备好、参数按表格填,跑通一遍你就掌握了 Stable Diffusion WebUI Forge 文本嵌入训练的完整闭环。

【免费下载链接】stable-diffusion-webui-forge项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询