当前位置: 首页 > news >正文

5分钟完成Erasing Concepts from Diffusion Models(ESD)环境安装:零基础完整教程

5分钟完成Erasing Concepts from Diffusion Models(ESD)环境安装:零基础完整教程

【免费下载链接】erasingErasing Concepts from Diffusion Models项目地址: https://gitcode.com/gh_mirrors/er/erasing

Erasing Concepts from Diffusion Models(简称 ESD)是一款基于 PyTorch 与 Diffusers 的开源 AI 工具,通过微调扩散模型权重,可以从 Stable Diffusion、SDXL、FLUX 等模型中精准擦除指定概念——无论是特定艺术风格、常见物体,还是不宜出现的内容,且几乎不影响模型的其它生成能力。本教程为零基础读者整理了一套最简 ESD 环境安装步骤,全程约 5 分钟即可完成配置,并带你跑通第一个概念擦除训练任务。

ESD 是什么?扩散模型概念擦除原理速览

扩散模型(Diffusion Model)在训练时学习了大量图像与文本概念,其中往往包含开发者不想要的风格或内容。ESD 的思路很简单:用一个「冻结的原始模型」作为参照,对目标概念对应的生成路径进行少量微调,让模型学会「自己避开」这个概念,而不是粗暴地删除权重。

具体来说,ESD 通过短文本描述引导优化过程,利用条件分数与无条件分数的差值,将生成结果逐步拉离待擦除概念。整个微调只需几百步迭代、单张 GPU 即可完成,训练后的模型可以直接用于生成图片。它的代表性能力见下图:

ESD 当前支持四大模型家族,全部通过统一训练核心驱动:

模型家族训练入口脚本适用训练方法
Stable Diffusion V1.xesd_sd.pyesd-x / esd-u / esd-all 等
SDXLesd_sdxl.pyesd-x / esd-x-strict 等
FLUX.1-devesd_flux.pyesd-x / esd-x-strict
FLUX.2 Kleinesd_flux2_klein.pyesd-x / esd-x-strict

安装前的准备:ESD 环境要求清单

动手之前,先对照检查你的机器是否满足基本要求:

项目推荐配置
操作系统Linux / macOS / Windows(WSL 亦可)
Python3.14(建议使用 Conda 管理)
GPUNVIDIA 显卡,显存 ≥ 8GB(训练 SD 更充裕)
磁盘空间预留 10GB+(模型权重 + 依赖包)
网络可访问 HuggingFace(首次训练需下载基础模型)

5分钟完成 ESD 环境安装:三个步骤

官方安装流程非常精简,只需「克隆源码 → 创建环境 → 安装依赖」三步。下面逐一说明。

第 1 步:克隆 ESD 项目源码

在终端中执行以下命令,把项目克隆到本地并进入目录:

git clone https://gitcode.com/gh_mirrors/er/erasing cd erasing

第 2 步:创建 Conda 虚拟环境

创建独立的虚拟环境可以避免依赖冲突,推荐使用 Conda:

conda create --name erasing python=3.14 conda activate erasing

第 3 步:一键安装全部依赖

项目已把依赖统一整理在根目录的requirements.txt中,直接一条命令安装:

pip install -r requirements.txt

如果你后续要训练 FLUX 系列模型,建议再升级一次核心依赖:

pip install --upgrade diffusers transformers torch

至此 ESD 环境安装已完成,全程确实只需 5 分钟。项目训练核心逻辑统一放在utils/esd_trainer.py中,SD / SDXL / FLUX 共用同一套 ESD Loss 实现,内存占用较旧版降低近一半、速度提升 5-8 倍。

验证安装是否成功

进入项目目录后,先做一个快速自检:

python -c "import torch, diffusers, transformers; print('ESD环境安装成功')" python esd_sd.py --help

第一条命令确认核心依赖可用;第二条命令会打印esd_sd.py的全部参数说明(--erase_concept--train_method--iterations--save_path等),看到帮助信息即说明 ESD 环境安装一切正常。

跑通第一个概念擦除训练:以 Stable Diffusion 为例

验证通过后,就可以体验核心功能了。比如想从 Stable Diffusion 中擦除「梵高」的画风,只需执行:

python esd_sd.py --erase_concept 'Van Gogh' --train_method 'esd-x'

关键参数说明:

  • --erase_concept:要擦除的概念(必填),如'Van Gogh''monster'
  • --train_method:训练方法(必填),如esd-xesd-x-strict
  • --iterations:优化迭代次数,默认 200
  • --save_path:模型保存目录,默认esd-models/sd/
  • --basemodel_id:可指定任意兼容的 Diffusers 基础模型

ESD 还有一个非常实用的新玩法——属性级擦除:只移除某个概念的特定属性,保留其余部分。例如把「牛仔」头上的帽子擦掉:

python esd_sd.py --erase_concept 'cowboy hat' --erase_from 'cowboy' --train_method 'esd-x'

用 Notebook 生成图片验证擦除效果

训练完成后,可以用项目自带的推理 Notebook 快速验证效果。以 SD 为例,打开notebooks/esd_inference_sd.ipynb,依次运行单元格即可加载训练好的模型并生成图片;SDXL、FLUX、FLUX.2 Klein 也有对应的esd_inference_sdxl.ipynbesd_inference_flux.ipynb等。

需要批量生成评测图片时,可使用官方评测脚本:

python evalscripts/generate-images.py --esd_path esd-models/sd/your-model.safetensors --prompts_path data/kelly_prompts.csv

下图展示了 ESD 在艺术风格擦除上的实际表现(对比原始 SD、ESD 方法与安全生成方案):

项目还提供了丰富的提示词数据集(data/目录下的kelly_prompts.csvcoco_30k.csvimagenet_prompts.csv等),以及风格损失、LPIPS 等评估脚本(evalscripts/styleloss.pyevalscripts/lpips_eval.py),方便你量化评估擦除效果。

常见问题与避坑指南

  • 显存不足?降低--resolution--batchsize,训练统一使用torch.bfloat16精度,必要时开启--gradient_checkpointing
  • 模型下载太慢?首次训练会自动下载基础模型(如CompVis/stable-diffusion-v1-4),建议提前配置好 HuggingFace 镜像或代理。
  • FLUX 训练报错?请务必先执行pip install --upgrade diffusers transformers torch,FLUX.2 Klein 还需要较新的diffusers以支持Flux2KleinPipeline
  • 训练效果不理想?尝试esd-x-strict更严格的擦除方法,或适当调整--iterations--negative_guidance

在敏感内容擦除场景中,ESD 的表现同样可以通过数据量化验证,如下图的 NudeNet 评测结果所示,各敏感部位暴露率显著下降:

结语:下一步可以做什么

到这里,你已经完成了 ESD 环境安装,并成功跑通了第一个概念擦除训练任务。接下来你可以尝试:擦除更多艺术风格(如'Kelly Mckernan')、训练 SDXL 专属模型(esd_sdxl.py)、体验 FLUX 系列训练,或基于notebooks/中的模板搭建自己的评测流程。项目代码遵循 MIT 协议开源,注意你使用的基础模型可能另有许可协议,商用前请仔细阅读模型授权说明。

【免费下载链接】erasingErasing Concepts from Diffusion Models项目地址: https://gitcode.com/gh_mirrors/er/erasing

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

http://www.cnnetsun.cn/news/4120449.html

相关文章:

  • 三套键鼠共用一个屏幕?Universal Split Screen 本地分屏实测:从拿到源码到顺利开黑
  • eSearch 离线OCR 使用指南:从截屏取字到翻译校对,一篇讲透
  • tt-rss-feedly-theme进阶改造:如何修改_variables.less打造你的专属配色方案?
  • Unity游戏模组框架BepInEx零基础完整教程:从装模组翻车到插件自由
  • G-Helper 实测:免费开源的华硕笔记本性能控制工具,凭什么把官方奥创请下台?
  • B站视频下载加AI总结一次搞定?BiliTools免费工具箱实测,3分钟把收藏夹吃灰的视频变成笔记
  • PDF批量修改有多简单?免费开源的PDF补丁丁5分钟速成指南
  • BmcWeb:log输出
  • flipperzero-rs蓝牙开发:如何打造iBeacon与Eddystone广播应用
  • 如何用纯Python完成Web应用开发?Reflex框架5步实战上手指南
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(1):Mat 类的基本用法
  • 3分钟上手CodexBar:免登录实时查看OpenAI与Claude使用统计的省钱秘诀
  • 说句扎心的:后端转Agent开发,90%的人第一步就走错了
  • 动漫解说配音用什么声音最合适?哪款动漫配音软件值得推荐?
  • video-analyzer 视频内容分析:一条命令,把任何视频变成一份可搜索的文字报告
  • Windows部署NFSv4.1客户端:从编译驱动到成功挂载的7步完整实战
  • 星露谷物语农场规划器实测:三百小时的老档,我劝你先画图再动工
  • Linux 内核 cortina 以太网驱动竞态高危漏洞 CVE‑2026‑64056 技术解析
  • 【TDengine】如何查看数据库、表的元信息(schema)?
  • Minecraft三层随机生存挑战:数据包实现与极限资源管理
  • 深入解析JavaScript核心机制与高频面试考点
  • 一条命令搞定M3U8视频下载:从网页播放到本地收藏的终极指南
  • ERP系统验收测试指南:如何确保系统满足业务需求
  • async-sema drain() 优雅退出指南:如何安全清理挂起的异步任务与资源
  • 二刷hot100-394.字符串解码
  • Palworld存档转换完整指南:把Level.sav变成看得懂的JSON,再原样变回去
  • 制造业战略执行链路重建实践:用目标地图 + WBS计划 + 任务看板实现端到端贯通
  • 疯狂裂开!AI导出Word居然能把公式变成翔?手把手测评“AI导出鸭”后,我退掉了WPS会员!
  • 个人项目本地启动的准备工作
  • 2026论文降AI工具盘点:六款实测谁更稳