StoryMaker: Towards Holistic Consistent Characters in Text-to-image Generation

  1. 问题引入
  • 针对的是文生图的模型,现在已经有方法可以实现指定人物id的情况下进行生成,但是还没有办法保持包括服装、发型等整体,本文主要解决这个问题;
  • 在前作instant id的基础上需要解决的两个问题,1)多ID生成, 2)在保持id的同时还要保持服装,发型等
  • Reference Information Extraction:人脸id的保持还是通过使用arcface人脸识别模型来获取embedding,该阶段首先获取feature F f a c e F_{face} Fface,对于服装发型等,先将人物分割出来,之后使用clip vision encoder提取对应的特征 F c h a r a c t e r F_{character} Fcharacter,对应的是图中的facial encoder和portrait encoder;
  • Reference Information Refinement by Positional-aware Perceiver Resampler:上一部分获取的 F f a c e , F c h a r a c t e r F_{face},F_{character} Fface,Fcharacter分别经过独立的Resample模块得到的embedding进行concat,然后和positional embedding进行相加,这里的positional embedding的作用是用来区分不同的人物,此处还加上了背景的embedding E b g E_{bg} Ebg,公式化如下: E 1 = R 1 ( F f a c e ) , E 2 = R 2 ( F c h a r a c t e r ) , E i = M L P ( C a t ( E 1 , E 2 ) + E p o s ) , c i = C a t ( E b g , R e s h a p e ( E i , ( N × L , D ) ) E_1 = R_1(F_{face}),E_2 = R_2(F_{character}),E_i = MLP(Cat(E_1,E_2) + E_{pos}),c_i = Cat(E_{bg},Reshape(E_i,(N \times L,D)) E1=R1(Fface),E2=R2(Fcharacter),Ei=MLP(Cat(E1,E2)+Epos),ci=Cat(Ebg,Reshape(Ei,(N×L,D)),最后的 c i c_i ci就是image cross attention的条件,作为条件的方式和IP adapter一样;
  • Pose Decoupling from Character Images:对于姿态这一块,为了增强多样性,所以在模型的基础上加上了pose controlnet模块来控制生成人物的姿态,在推理的时候也可以不使用这一块;
  • Training with LoRA:在训练的时候使用了之前训练模型ip-adapter的参数,模型的cross attention模块可训练的参数是新添加的lora对应的参数, Q = Z ( W q + Δ W q ) , K t = c t ( W k t + Δ W k t ) , V t = c t ( W v t + Δ W v t ) , K i = c i ( W k i + Δ W k i ) , V i = c i ( W v i + Δ W v i ) Q = Z(W_q + \Delta W_q),K_t = c_t(W^t_k + \Delta W_k^t),V_t = c_t(W_v^t + \Delta W_v^t),K_i = c_i(W_k^i + \Delta W^i_k),V_i = c_i(W_v^i + \Delta W^i_v) Q=Z(Wq+ΔWq),Kt=ct(Wkt+ΔWkt),Vt=ct(Wvt+ΔWvt),Ki=ci(Wki+ΔWki),Vi=ci(Wvi+ΔWvi),其中可以训练的参数是 Δ \Delta Δ的部分;
  • Loss Constraints on Cross-attention Maps with Masks:这一块为了保证各个部分(背景+多character)之间不相互影响,新加入了一个损失,在每一层的cross attention部分,取出image的attention map,,然后将attention在L维度进行拍平,得到的结果和mask计算损失: P = S o f t m a x ( Q K T / d ) , A = ∑ k = 1 L P k P = Softmax(QK^T/\sqrt{d}),A = \sum_{k = 1}^L P_k P=Softmax(QKT/d ),A=∑k=1LPk,损失为 L a t t n = 1 N + 1 ∑ k = 1 N + 1 ∣ ∣ A k − M k ∣ ∣ 2 2 L_{attn} = \frac{1}{N + 1}\sum_{k = 1}^{N + 1}||A_k - M_k||^2_2 Lattn=N+11∑k=1N+1∣∣Ak−Mk∣∣22,其中N是character的数目,L表示每个character的token数目;
  • 最后的损失是上面的损失和原始sd损失的加权和;
  1. 实验
  • 数目:50万数据(30万单人+20万双人),使用CogVLM做caption,人脸的embedding使用buffalo_l ;
  • 训练:使用SDXL模型,其中只训练PPR模块以及新添加的Lora部分,Resample部分使用 IP-Adapter-FaceID and IP-Adapte初始化,在8卡A100上面进行训练,bs=8,8ksteps;
  • 指标:使用的是FastComposer中的40个character和20个text prompt,分为三个部分进行评测,首先是和参考图片的一致性,使用的是CLIP image similarity,对于ID的保持,使用的是buffalo_I来计算cosine similarity,最后是和文本的一致性,使用CLIP-score计算了image-text similarity;
  • 还可以使用到clothe swap任务当中,只需要将character的图片用服装的图片进行替换即可;
相关推荐
机器学习之心4 分钟前
BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)
深度学习·分类·gru
MorleyOlsen1 小时前
【Trick】解决服务器cuda报错——RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
运维·服务器·深度学习
愚者大大4 小时前
1. 深度学习介绍
人工智能·深度学习
liuming19924 小时前
Halcon中histo_2dim(Operator)算子原理及应用详解
图像处理·人工智能·深度学习·算法·机器学习·计算机视觉·视觉检测
长风清留扬5 小时前
机器学习中的密度聚类算法:深入解析与应用
人工智能·深度学习·机器学习·支持向量机·回归·聚类
程序员非鱼5 小时前
深度学习任务简介:分类、回归和生成
人工智能·深度学习·分类·回归·生成
γ..5 小时前
基于MATLAB的图像增强
开发语言·深度学习·神经网络·学习·机器学习·matlab·音视频
千穹凌帝6 小时前
基于深度学习多图像融合的屏幕缺陷检测方案
人工智能·深度学习·数码相机
Leweslyh14 小时前
物理信息神经网络(PINN)八课时教案
人工智能·深度学习·神经网络·物理信息神经网络
大多_C15 小时前
BERT outputs
人工智能·深度学习·bert