拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Erasing Concepts from Diffusion Models快速上手:用ESD擦除第一个概念Van Gogh风格

Erasing Concepts from Diffusion Models快速上手用ESD擦除第一个概念Van Gogh风格【免费下载链接】erasingErasing Concepts from Diffusion Models项目地址: https://gitcode.com/gh_mirrors/er/erasingErasing Concepts from Diffusion Models简称ESD是一个来自ICCV 2023的开源研究项目让你无需重新训练整个模型就能把特定概念从Stable Diffusion、SDXL乃至FLUX等扩散模型中精准擦除——无论是Van Gogh的艺术风格、色情内容还是汽车物体。本文以最经典的擦除Van Gogh风格为例带你完成环境安装、模型微调、图片生成与效果验证一步步快速上手这款扩散模型概念擦除工具。整个过程只需几分钟不需要深厚的机器学习背景。什么是Erasing Concepts from Diffusion ModelsESD简单来说ESD 是一种模型局部手术技术它用一段简短的概念文字描述比如 Van Gogh作为引导对冻结的扩散模型做轻量级微调让模型的注意力机制学会把生成结果从该概念上偏移开。由于只更新 UNet/Transformer 中的注意力层参数训练后模型的其他生成能力几乎不受影响。ESD能擦除什么三大典型应用场景ESD 的实用性远不止删掉某个画家风格这么简单官方给出了三类典型应用见下图擦除色情内容让模型拒绝生成裸露画面输出改为衣着完整的版本擦除艺术风格输入同样的提示词模型不再生成 Van Gogh、Thomas Kinkade 等艺术家的笔触擦除具体物体场景与构图保持不变但汽车等目标物被移出画面。第一步克隆项目并安装ESD环境ESD 官方已对代码做了大幅优化相比旧版本训练显存占用几乎减半速度快了 5~8 倍并且 SD、SDXL、FLUX 共用同一套训练核心见 utils/esd_trainer.py。安装步骤非常简单克隆仓库并进入目录git clone https://gitcode.com/gh_mirrors/er/erasing cd erasing创建 Python 环境并安装依赖conda create --name erasing python3.14 conda activate erasing pip install -r requirements.txt若使用 FLUX 系列训练再升级一下相关库即可pip install --upgrade diffusers transformers torch第二步用ESD擦除Van Gogh风格安装完成后一条命令即可开始训练。以 Stable Diffusion v1.x 为例训练入口为 esd_sd.pypython esd_sd.py --erase_concept Van Gogh --train_method esd-x几个常用参数说明--erase_concept要擦除的概念这里是 Van Gogh--train_method训练方法推荐esd-x只更新交叉注意力层效果与效率均衡还有esd-x-strict、esd-u、esd-all等可选--basemodel_id默认使用CompVis/stable-diffusion-v1-4也可换成任意兼容的 diffusers 底座模型--save_path默认把微调结果保存到esd-models/sd/目录产物是带元数据的.safetensors权重文件保存逻辑见 utils/esd_checkpoint.py。如果你用的是 SDXL 或 FLUX只需换成对应入口python esd_sdxl.py --erase_concept Van Gogh --train_method esd-x-strict或python esd_flux.py --erase_concept monster --train_method esd-x。第三步生成图片验证擦除效果训练完成后官方提供了两种验证方式方式一Notebook 交互体验。打开 notebooks/esd_inference_sd.ipynb依次运行即可加载原模型权重与 ESD 微调权重用同一提示词、同一随机种子分别生成图片左右对比擦除前后的差异——这也是官方推荐的最直观验证方式。方式二批量脚本评测。需要大量样本做量化评估时使用 evalscripts/generate-images.py脚本会自动识别 checkpoint 作用于unet还是transformerSD/SDXL/FLUX 通用python evalscripts/generate-images.py \ --base_model stabilityai/stable-diffusion-xl-base-1.0 \ --esd_path esd-models/sdxl/esd-kelly-from-kelly.safetensors \ --num_samples 1 --prompts_path data/kelly_prompts.csv \ --num_inference_steps 20 --guidance_scale 7项目在data/目录里准备了多组现成提示词如 data/kelly_prompts.csv、data/vangogh_prompts.csv拿来即用非常省事。进阶玩法只擦除属性不擦除整个概念这是 ESD 的一个亮点你甚至不必删除整个概念而是只移除它的某个属性。官方示例是——保留牛仔只擦掉牛仔帽python esd_sd.py --erase_concept cowboy hat --erase_from cowboy --train_method esd-x类似的你可以把画家风格从人物身上摘除或把特定物体从场景中移除做到精准可控的擦除。ESD效果如何看看官方评测结果在艺术家风格擦除上ESD 对 Thomas Kinkade、Kilian Eng、Kelly McKernan 等画风都能有效去除且整体画面质量保持稳定在内容安全任务上ESD 对裸露身体部位的抑制幅度也明显优于 SLD 和 SD v2.x 等方案常见问题FAQ没有A卡/大显存能跑吗ESD 训练较吃显存建议至少 8GB 显存起步FLUX 系列需要更新的 diffusers 与 transformers 版本。可以擦除任意概念吗只要概念能被文字描述清楚理论上都可以尝试例如名人、画风、物体、内容类别。擦除会影响其他生成能力吗官方设计的目标就是只擦不想留的但由于是权重微调复杂场景下建议多换几个提示词实测确认。商用需要注意什么项目代码采用 MIT 协议但你使用的底座模型如 SD、FLUX各有其授权条款商用前请仔细阅读对应模型许可。结语从环境安装到成功擦除 Van Gogh 风格其实只需要上面三条命令。ESD 让扩散模型概念擦除变得人人可用无论是出于版权合规、内容安全还是个性化创作需求你都可以用这套开源工具为扩散模型定制记忆。现在就克隆仓库动手擦除你的第一个概念吧【免费下载链接】erasingErasing Concepts from Diffusion Models项目地址: https://gitcode.com/gh_mirrors/er/erasing创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门