一文搞懂ESD 4种训练方法:esd-x、esd-u、esd-all、esd-x-strict到底怎么选? 📅 2026/8/20 18:17:08 一文搞懂ESD 4种训练方法esd-x、esd-u、esd-all、esd-x-strict到底怎么选【免费下载链接】erasingErasing Concepts from Diffusion Models项目地址: https://gitcode.com/gh_mirrors/er/erasing想给 Stable Diffusion 这类扩散模型洗掉某个不想要的概念——某位画家的风格、某个物体甚至裸露内容ESDErasing Concepts from Diffusion Models是目前最受欢迎的开源方案。打开项目你会看到--train_method参数里有 esd-x、esd-u、esd-all、esd-x-strict 四种 ESD 训练方法它们分别微调模型的不同部分擦除效果和副作用截然不同。本文用一张对比表加一份场景速查帮你 3 分钟搞懂扩散模型概念擦除训练方法到底怎么选。ESD是什么扩散模型概念擦除原理速览ESD 全称 Erasing Concepts from Diffusion Models出自 ICCV 2023。它不需要重新训练整个模型而是用要擦除的概念作为提示词对模型权重做一次轻量级微调让模型在被问到该概念时把生成结果拉回到不包含该概念的普通状态同时尽量不动其他生成能力。如上图训练流程非常轻量准备概念文本提示如 Van Gogh加随机时间步 t冻结原始模型当老师微调模型当学生用 L2 损失让学生模型在概念提示下的预测逼近原始模型在空白提示下的预测——概念就这样被抽走。默认 200 步迭代单张消费级显卡十几分钟即可完成。 新能力除了整概念擦除还支持属性级擦除比如只擦掉牛仔的帽子而保留牛仔本身。ESD能擦掉什么三大典型应用场景从官方示例可以看出ESD 训练方法主要覆盖三类应用 擦除艺术风格让模型不再模仿某位画家的笔触 擦除裸露等不适内容用于内容审核与安全合规 擦除特定物体如从风景图中去掉汽车ESD 4种训练方法核心区别一张表看懂训练方法更新哪些参数擦除力度副作用推荐场景esd-x仅交叉注意力层中很小通用首选esd-u交叉注意力以外的所有层强较大全局性概念如裸露esd-all全部 UNet 参数最强最大概念彻底消失esd-x-strict仅交叉注意力的 K/V 投影精准极小精确擦除某个属性四种方法的本质差异就是参数更新范围具体由utils/esd_trainer.py中的select_parameter_names决定范围越大擦得越狠模型被误伤的概率也越高。esd-x只微调交叉注意力层最稳的默认选择交叉注意力层是文本提示词写入生成过程的地方。esd-x 只更新这一层让概念提示词失效几乎不影响无关内容在艺术风格擦除任务上效果尤其出色✅ 优点效果好、误伤小、训练最快 适合绝大多数场景SD / SDXL / FLUX / FLUX.2 Klein 全部支持python esd_sd.py --erase_concept Van Gogh --train_method esd-xesd-u绕开交叉注意力全局擦除更彻底esd-u旧名 noxattn更新交叉注意力之外的其余层不依赖文本注意力从更底层改变模型对这类内容的响应。论文实验显示它在擦除裸露这类全局概念上更有效⚠️ 代价改动面大画质与风格稳定性可能下降SDXL 下仍属实验性可能产生伪影 适合对擦除强度要求高、可接受小幅画质损失esd-all全参数微调擦除最强但副作用最大esd-all旧名 full对 UNet 全部参数微调擦除力度最强概念基本物理消灭。但模型也可能学歪无关内容质量下降、训练痕迹变明显。除非目标就是全局擦除否则不建议优先使用。esd-x-strict只改K/V投影精准擦除属性的利器esd-x-strict 只微调交叉注意力层的 K 与 V 投影矩阵to_k / to_v是四种方法中改动范围最小的手术刀特别适合配合--erase_from做属性级擦除python esd_sd.py --erase_concept cowboy hat --erase_from cowboy --train_method esd-x效果牛仔还是牛仔但帽子消失了。想擦得干净又不误伤可以换成更精细的 esd-x-strict。到底怎么选ESD训练方法选择速查 不知道选什么 → 直接esd-x 擦裸露/全局概念 →esd-u 要概念彻底消失 →esd-all 擦某个属性帽子、配饰等→esd-x-strict⚡ 用 FLUX / FLUX.2 Klein → 仅支持esd-x与esd-x-strict快速上手3步跑通ESD训练第一步克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/er/erasing cd erasing pip install -r requirements.txt第二步按模型选训练入口esd_sd.py/esd_sdxl.py/esd_flux.py/esd_flux2_klein.py再按上文速查选训练方法python esd_sdxl.py --erase_concept Van Gogh --train_method esd-x-strict第三步出图验证效果。用notebooks/下的推理 notebook如esd_inference_sd.ipynb加载微调后的 checkpoint 出图批量评估可用evalscripts/generate-images.py配合data/目录的提示词 CSV具体参数说明见README.md。新手常见问题esd-u 和 esd-all 有什么区别两者都是大范围擦除esd-u 不动交叉注意力层esd-all 全动。esd-all 擦除更彻底但模型退化也更明显。旧代码里的 xattn / noxattn / full 是什么历史别名与新版完全等价xattn→esd-x、noxattn→esd-u、full→esd-all、xattn-strict→esd-x-strict。训练需要什么配置单张消费级显卡即可默认 200 步迭代、学习率 5e-5SD量级通常十几分钟完成checkpoint 以 safetensors 格式保存到esd-models/目录。【免费下载链接】erasingErasing Concepts from Diffusion Models项目地址: https://gitcode.com/gh_mirrors/er/erasing创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考