【AIGC】PULID:对比对齐的ID定制化技术

论文链接:https://arxiv.org/pdf/2404.16022

github:https://github.com/ToTheBeginning/PuLID

comfyui节点:GitHub - cubiq/PuLID_ComfyUI: PuLID native implementation for ComfyUI

论文亮点

  1. 增加了对比对齐loss和ID loss,最大限度减少对源模型的破坏并保证高保真

  2. 提示词可以很好的引导生成过程

论文详解

前置知识

扩散模型的loss

 

 扩散模型结构主要由resnet block,self attention和cross attention组成

 交叉注意力

 

ID作为另一个条件嵌入到网络中

        不需要微调的ID特征提取模型CLIP图像编码器,Arcface图像识别骨干模型加上可学习的头。将ID嵌入到基础图生图模型的有效方式是加一个平行的交叉注意力层。在这个可学习的线性层中,ID被映射为Kid和Vid,与主干网络中的Q做注意力计算。这项技术最早被ipadapter提出来。

        本文同时使用了ARcface和Clip图像编码器,通过两个编码器后,分别使用MLP网络对其进行映射,并对两个向量进行了拼接。

网络结构

ID层的嵌入

ID层的嵌入会从两个方面破坏原始文生图模型

  1. 与没有ID嵌入之前相比,生成元素发生了大量的变化,例如背景,光线,构图和风格

  2. 失去提示词的控制特性,导致我们很难通过提示词改变ID属性,方向和插件

        在训练过程中,提示词和id是对齐的,测试时,会改变提示词,此时ID和提示词不在对齐,会存在偏置情况。

        通过对比对齐方法插入未受污染的ID,在朱分支中在插入一个没有插入ID的分支。

 

        训练期间,在预先准备的一些提示词模板中随即挑选一个作为文本条件,对齐是在所有层和时间步上进行的。

 语义对齐loss

 

 解释,就是一个Attention(K,Q,Q),两个路径的插值越小,表明ID嵌入对基础UNet的影响越小。但仅此一项并不能保证布局的一致性,所以需要加一项loss

 

 总的对齐loss

 

 ID Loss

 

 总的学习目标

 

实验细节 

         ID Encoder使用antelopev2作为人脸识别模型和EVA-CLIP作为CLIP图像编码器。x训练数据集是150万高质量图片,图片由BLIP-2反推打标。训练分为3个阶段;第一阶段,使用Ldiff训练传统扩散loss;第二阶段,我们在第一阶段的基础上训练ID loss(使用arcface-50来计算loss)和Ldiff;第三阶段,加入Lalign并使用全部的目标损失,设置lambda(align-layout)为0.1,lambda(id)为1.生图分辨率设置为768*768。训练是在8张A100上进行的。

效果对比 

 

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

资料加载中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值