论文阅读:Forget-Me-Not: Learning to Forget in Text-to-Image Diffusion Models

Forget-Me-Not: Learning to Forget in Text-to-Image Diffusion Models

论文链接
代码链接

这篇文章提出了Forget-Me-Not (FMN),用来消除文生图扩散模型中的特定内容。FMN的流程图如下:

可以看到,FMN的损失函数是最小化要消除的概念对应的attention map的 L 2 L_2 L2范数。这里需要补充一些关于diffusion model的知识。

首先,以Stable Diffusion为代表的模型使用U-Net对图片的低维嵌入进行建模。文本条件在被CLIP的text encoder编码为文本嵌入后,通过U-Net中的cross-attention layers输入到U-Net中。cross-attention层的具体映射过程是一个QKV (Query-Key-

Value)结构,如上图的中间所示。其中,Q代表图片的视觉信息,K和V都是文本嵌入经过线性层后计算得到的( k i = W k c i a n d v i = W v c i k_i = W_kc_i~and~v_i = W_vc_i ki=Wkci and vi=Wvci)。而FMN损失函数中的attention map的计算过程如下:

然而,attention map还不是cross attention层的输出,其输出通过以下公式计算:

上面两个公式,也就是图3中间方框中的内容,可以用下面的公式概括,

从FMN的源码中可以看到对应的部分如下:

python 复制代码
class AttnController:
        def __init__(self) -> None:
            self.attn_probs = []
            self.logs = []
        def __call__(self, attn_prob, m_name) -> Any:
            bs, _ = self.concept_positions.shape
            head_num = attn_prob.shape[0] // bs
            target_attns = attn_prob.masked_select(self.concept_positions[:,None,:].repeat(head_num, 1, 1)).reshape(-1, self.concept_positions[0].sum())
            self.attn_probs.append(target_attns)
            self.logs.append(m_name)
        def set_concept_positions(self, concept_positions):
            self.concept_positions = concept_positions
        def loss(self):
            return torch.cat(self.attn_probs).norm()
        def zero_attn_probs(self):
            self.attn_probs = []
            self.logs = []
            self.concept_positions = None
相关推荐
fanstuck13 分钟前
从 0 到 1 构建企业智能体平台:openJiuwen 架构解析与智能客服工作流实战
大数据·人工智能·算法·架构·aigc
蓝田生玉12344 分钟前
LLaMA论文阅读笔记
论文阅读·笔记·llama
阿杰学AI2 小时前
AI核心知识83——大语言模型之 AI伦理审查员(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·安全性测试·ai伦理审查员
*西瓜2 小时前
基于深度学习的视觉水位识别技术与装备
论文阅读·深度学习
小程故事多_802 小时前
平台工程工具,解锁研发效能的核心密码
人工智能·aigc
多恩Stone2 小时前
【3DV 进阶-12】Trellis.2 数据处理脚本细节
人工智能·pytorch·python·算法·3d·aigc
大模型最新论文速读2 小时前
BAR-RAG: 通过边界感知训练让单轮 RAG 效果媲美深度研究
论文阅读·人工智能·深度学习·机器学习·自然语言处理
SmartBrain14 小时前
Qwen3-VL 模型架构及原理详解
人工智能·语言模型·架构·aigc
觉醒大王19 小时前
科研新手如何读文献?从“乱读”到“会读”
论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
快降重科研小助手20 小时前
AIGC降重技术如何“理解”并“重塑”你的论文
aigc·ai写作·降重·降ai率·快降重