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的图片用服装的图片进行替换即可;
相关推荐
龙的爹23332 小时前
论文翻译 | The Capacity for Moral Self-Correction in Large Language Models
人工智能·深度学习·算法·机器学习·语言模型·自然语言处理·prompt
Hoper.J3 小时前
用两行命令快速搭建深度学习环境(Docker/torch2.5.1+cu118/命令行美化+插件),包含完整的 Docker 安装步骤
人工智能·深度学习·docker
铭瑾熙5 小时前
深度学习之GAN的生成能力评价
人工智能·深度学习·生成对抗网络
irrationality6 小时前
昇思大模型平台打卡体验活动:项目1基于MindSpore实现BERT对话情绪识别
人工智能·深度学习·bert
V搜xhliang02467 小时前
基于深度学习的地物类型的提取
开发语言·人工智能·python·深度学习·神经网络·学习·conda
m0_743106469 小时前
论文笔记:no pose,no problem-基于dust3r输出GS参数实现unpose稀疏重建
论文阅读·深度学习·计算机视觉·3d·几何学
ai产品老杨10 小时前
部署神经网络时计算图的优化方法
人工智能·深度学习·神经网络·安全·机器学习·开源
TaoYuan__10 小时前
深度学习概览
人工智能·深度学习
OptimaAI11 小时前
【 LLM论文日更|检索增强:大型语言模型是强大的零样本检索器 】
人工智能·深度学习·语言模型·自然语言处理·nlp
Watermelo61712 小时前
通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
人工智能·深度学习·神经网络·mongodb·机器学习·自然语言处理·数据挖掘