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的图片用服装的图片进行替换即可;
相关推荐
知识分享小能手1 小时前
深度学习学习教程,从入门到精通,自编码器 — 完整知识点与代码案例(14)
人工智能·深度学习·学习
2601_962293532 小时前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习
纪伊路上盛名在2 小时前
MISATO:基于结构的药物发现的蛋白-配体复合物机器学习数据集
深度学习·机器学习·数据集·分子动力学模拟·蛋白质结构·药物发现·蛋白质-配体互作
Rocky Ding*4 小时前
一文读懂LLM Agent Skills 的运行时本质:从能力路由到渐进式披露
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·agent skills
大江东去浪淘尽千古风流人物4 小时前
【LoMa】局部特征匹配重访:从LoMa-B到旋转不变LoMa-R的架构与工程实践
开发语言·深度学习·计算机视觉·r语言·视觉定位·sfm·局部特征匹配
江润舟4 小时前
万物 | 炼器 从零手搓工业级旋转目标检测网络 · 卷2 —— 计算图、梯度与反向传播(三)
人工智能·深度学习
zhurui_xiaozhuzaizai5 小时前
github上关于节省token的项目一览,上下文压缩,节省token,agent优化skill,热门项目
人工智能·深度学习·github
牧羊人.3336 小时前
动手学深度学习 04 | Dataset 和 DataLoader、数据增强
人工智能·pytorch·深度学习·算法
richard_yuu7 小时前
AOI 实战第六篇:.onnx 到 C++ 的最后一公里
c++·深度学习·yolo
硅谷秋水7 小时前
Qwen-Drive-1.0:迈向自动驾驶视觉-语言基础模型的第一步
人工智能·深度学习·机器学习·语言模型·自动驾驶