news 2026/8/21 13:12:23

从模型里删掉汽车:Erasing Concepts from Diffusion Models物体擦除实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从模型里删掉汽车:Erasing Concepts from Diffusion Models物体擦除实战

从模型里删掉汽车:Erasing Concepts from Diffusion Models物体擦除实战

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

想让 AI 绘画模型画不出某个东西?开源的Erasing Concepts from Diffusion Models(扩散模型概念擦除,简称 ESD)项目,用短短几百行代码就能让 Stable Diffusion、SDXL 甚至 FLUX 模型"忘记"指定物体。本文带你零基础完成扩散模型物体擦除实战:从环境安装、训练一条命令,到把"汽车"从模型里彻底删掉,全程可复现。

什么是 Erasing Concepts from Diffusion Models?

简单说,Erasing Concepts(ESD)是一种"模型手术":它不需要重新训练整个扩散模型,而是基于一段简短文本描述(比如 "car"),对模型权重做轻量微调,让模型在推理时不再生成该概念。整个过程只需要约 200 步优化、显存占用比旧版少一半、训练速度快 5~8 倍,非常适合普通玩家在自己的显卡上跑。

它有三个典型用途:

  • 🚗擦除物体:汽车、帽子等,删掉后场景依然连贯(如山路上的车消失、原野换成风筝)
  • 🎨擦除艺术风格:梵高、莫奈等画风可单独去除,画面仍保持真实自然
  • 🛡️擦除不雅内容:配合 nudenet-classes.py 评估,裸露部位识别数大幅下降

一分钟看懂项目结构

核心文件都在仓库根目录,上手只需认识这几个:

文件作用
esd_sd.pyStable Diffusion 1.x 概念擦除训练入口
esd_sdxl.pySDXL 训练入口(默认esd-x-strict
esd_flux.pyFLUX.1-dev 训练入口
esd_flux2_klein.pyFLUX.2 Klein 训练入口
utils/esd_trainer.py统一的训练核心(ESDConfig + run_esd_training)
utils/esd_checkpoint.py带元数据的模型保存/加载
notebooks/推理演示笔记本,开箱即用

四个入口共享同一套 utils/esd_trainer.py 训练逻辑,并通过--basemodel_id可指定任意兼容的 diffusers 基座模型,学一个就会四个。

一键安装步骤

先在终端执行以下命令完成环境搭建(需要 Python 3.10+ 和一张显存足够的 NVIDIA 显卡):

git clone https://gitcode.com/gh_mirrors/er/erasing cd erasing pip install -r requirements.txt

如果使用 FLUX 系列,请额外升级依赖:

pip install --upgrade diffusers transformers torch

最快上手:一条命令擦除"汽车"

安装完成后,在项目根目录运行:

python esd_sd.py --erase_concept 'car' --train_method 'esd-x'

参数说明:

  • --erase_concept:要擦除的概念,换成'van gogh''hat'都行
  • --train_method:训练方式,常用esd-x(交叉注意力)、esd-x-strictesd-uesd-all
  • --iterations:优化步数,默认 200
  • --save_path:模型保存目录,默认esd-models/sd/

💡 进阶玩法:还能只删某个概念的"属性"。比如只删牛仔的帽子、保留牛仔本身:

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

SDXL 与 FLUX 擦除实战

换到更大的模型同样简单,核心命令几乎不变:

SDXL 版本(推荐esd-x-strict,更稳定):

python esd_sdxl.py --erase_concept 'car' --train_method 'esd-x-strict'

FLUX.1-dev 版本

python esd_flux.py --erase_concept 'car' --train_method 'esd-x' --negative_guidance 2

FLUX.2 Klein 版本(基于Flux2KleinPipeline,需较新的 diffusers 与 transformers):

python esd_flux2_klein.py --erase_concept 'car' --train_method 'esd-x' --negative_guidance 2

训练完成的权重通过 utils/esd_checkpoint.py 保存为带元数据的.safetensors文件,加载时会自动识别目标是unet还是transformer,SD / SDXL / FLUX 通用。

验证擦除效果:生成图片对比

训练完成后,直接用官方推理笔记本体验效果:

  • notebooks/esd_inference_sd.ipynb:SD 1.x 推理演示
  • notebooks/esd_inference_sdxl.ipynb:SDXL 推理
  • notebooks/esd_inference_flux.ipynb:FLUX 推理
  • notebooks/esd_inference_flux2_klein.ipynb:FLUX.2 Klein 推理

如果想批量出图做量化评估,用官方脚本 evalscripts/generate-images.py,它会自动把 ESD 权重注入到对应的模型组件中:

python evalscripts/generate-images.py \ --base_model 'stabilityai/stable-diffusion-xl-base-1.0' \ --esd_path 'esd-models/sd/esd-car-esdx.safetensors' \ --num_samples 1 \ --prompts_path 'data/coco_30k.csv' \ --num_inference_steps 20 \ --guidance_scale 7

评估提示词可直接使用 data/ 目录下的数据集,比如coco_30k.csv(通用物体)、artwork_prompts.csv(艺术风格)、unsafe-prompts4703.csv(不雅内容)。

常见问题速查

Q:擦除后其他内容会变差吗?会轻微影响整体效果,建议用esd-x这种针对性更强的方式,并用esd-x-strict保证其他概念稳定。

Q:显存不够怎么办?训练入口支持--gradient_checkpointing--allow_tf32,能显著降低显存占用。

Q:生成的模型文件在哪?默认保存在esd-models/目录,SD / SDXL / FLUX 各有独立子目录。

Q:有量化的擦除效果数据吗?项目提供了 nudity_bar.png 这类实验对比图,展示 ESD 相比 SLD、SD 2.0/2.1 在裸露部位减少上的显著优势,可用于撰写评测报告。

小结

从"模型里删掉汽车"出发,我们完整走通了Erasing Concepts from Diffusion Models的安装、训练、推理与评估全流程。无论是隐私保护、版权规避还是内容安全,这个开源项目都给出了轻量、快速、可复现的解法——只需要一条命令,就能让 AI 绘画"忘记"你想让它忘掉的东西。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 13:08:30

基于AI与混合搜索的企业知识库构建:从语义检索到RBAC权限管理

如果你正在为企业搭建知识库系统,大概率会遇到这样的困境:文档越来越多,但员工却越来越找不到想要的内容。传统的解决方案要么是简单的文件共享,要么是复杂的商业系统,前者缺乏智能检索,后者则成本高昂且部…

作者头像 李华
网站建设 2026/8/21 13:05:22

2026年Java面试题库与备考策略全解析

1. Java面试题全景解析与备考策略2026年Java技术生态持续演进,从传统的Spring Boot到新兴的AI应用开发,面试考察维度不断拓宽。作为从业十余年的Java技术面试官,我整理了这份覆盖基础到架构的实战题库,包含高频考点解析和最新趋势…

作者头像 李华
网站建设 2026/8/21 12:50:21

基于Spring Boot与Vue的论坛数据可视化系统全栈开发实战

在实际的论坛运营和数据分析场景中,仅仅依靠后台的原始数据表格来理解用户行为、内容趋势和社区健康度是远远不够的。一个直观、交互式的数据可视化分析系统,能够将海量的帖子、用户、评论数据转化为图表,帮助管理员和运营者快速洞察关键指标…

作者头像 李华
网站建设 2026/8/21 12:48:22

zigbee_home传感器类型大盘点:12种传感器配置快速参考指南

zigbee_home传感器类型大盘点:12种传感器配置快速参考指南 【免费下载链接】zigbee_home Project to provide functionality similar to ESPHome but for Zigbee instead of WiFi for nRF52, nRF53 & nRF54L 项目地址: https://gitcode.com/gh_mirrors/zi/zig…

作者头像 李华