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

news2024/12/22 19:12:36
  • https://arxiv.org/pdf/2409.12576v1
  • https://github.com/RedAIGC/StoryMaker
  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+11k=1N+1∣∣AkMk22,其中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的图片用服装的图片进行替换即可;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2198298.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时间卷积网络(TCN)原理+代码详解

目录 一、TCN原理1.1 因果卷积(Causal Convolution)1.2 扩张卷积(Dilated Convolution) 二、代码实现2.1 Chomp1d 模块2.2 TemporalBlock 模块2.3 TemporalConvNet 模块2.4 完整代码示例 参考文献 在理解 TCN 的原理之前&#xff…

GIS后端工程师岗位职责、技术要求和常见面试题

GIS 后端工程师负责设计、开发与维护地理信息系统的后端服务,包括数据存储、处理、分析以及与前端的交互接口等,以实现高效的地理数据管理和功能支持。 GIS 后端工程师岗位职责 一、系统设计与开发 参与地理信息系统(GIS)项目的…

安装 Petalinux

资料准备 ubuntu 22.04: 运行内存8G 存储空间500G Petalinux:2024.1 安装流程 安装依赖 sudo apt-get update sudo apt-get upgrade sudo apt-get install iproute2 sudo apt-get install gawk sudo apt-get install build-essential sudo apt-ge…

7.3 物联网平台-Thingsboard使用教程

物联网平台-Thingsboard使用教程 目录概述需求: 设计思路实现思路分析 免费下载参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for chang…

如何使用ssm实现基于web技术的税务门户网站的实现+vue

TOC ssm820基于web技术的税务门户网站的实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化&#xff…

基于matlab的语音信号处理

摘要 利用所学习的数字信号处理知识,设计了一个有趣的音效处理系统,首先设计了几种不同的滤波器对声音进行滤波处理,分析了时域和频域的变化,比较了经过滤波处理后的声音与原来的声音有何变化。同时设计实现了语音的倒放&#xf…

从0开始linux(9)——进程(1)进程管理

欢迎来到博主的专栏:从0开始linux 博主ID:代码小豪 文章目录 查看进程进程管理PID与PPIDfork函数 在上一篇中我们了解到:当运行程序时,操作系统会将磁盘中的二进制文件读取到内存当中,程序运行到结束的过程称为进程&am…

【C++ 11】auto 自动类型推导

文章目录 【 1. 基本用法 】【 2. auto 的 应用 】2.0 auto 的限制2.1 简单实例2.2 auto 与指针、引用、const2.4 auto 定义迭代器2.5 auto 用于泛型编程 问题背景 在 C11 之前的版本(C98 和 C 03)中,定义变量或者声明变量之前都必须指明它的…

目标检测YOLO实战应用案例100讲-【目标检测】YOLOV11

目录 前言 算法原理 YOLO发展历程 什么是 YOLO11 YOLOv11 的主要特点 YOLO各版本概览 核心优势: YOLOv11改进方向 YOLOv11功能介绍 YOLOv11关键创新 YOLOv11 指标展示 YOLOV11实验 环境设置 准备数据集 训练模型 验证模型 应用领域 一、智慧交通与自动驾…

【Linux实践】实验八:Shell程序的创建及变量

文章目录 实验八:Shell程序的创建及变量实验目的:实验内容:操作步骤:1. 查看环境变量2. 定义变量AK3. 定义变量AM并比较4. 创建Shell程序 实验八:Shell程序的创建及变量 实验目的: 掌握Shell程序的创建过…

【C++】AVL树的底层以及实现

个人主页 文章目录 ⭐一、AVL树的概念🎉二、AVL树的性质🏝️三、AVL树的实现1. 树的基本结构2. 树的插入3. 树的旋转• 左单旋• 右单旋• 左右双旋• 右左双旋 🎡四、AVL树的其它功能1. 树的查找2. 树的遍历3. 树的高度4. 树的大小 &#x…

RK3568平台开发系列讲解(I2C篇)i2c 总线驱动介绍

🚀返回专栏总目录 文章目录 一、i2c 总线定义二、i2c 总线注册三、i2c 设备和 i2c 驱动匹配规则沉淀、分享、成长,让自己和他人都能有所收获!😄 i2c 总线驱动由芯片厂商提供,如果我们使用 ST 官方提供的 Linux 内核, i2c 总线驱动已经保存在内核中,并且默认情况下已经…

vulnhub-matrix-breakout-2-morpheus靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell ①nc反弹shell连接 ②Webshell上传 3、提权 ①使用kali自带的poc ②使用msf进行渗透 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(19…

项目构建工具

一般面试中被问到的项目构建工具,常常会回答的是Maven 今天大概了解了一下目前项目构建构建有Maven,Ant,Gradle Gradle 是一个构建工具,它是用来帮助我们构建app的,构建包括编译,打包等过程。我们可以为Gradle指定构建规则&…

matlab 相关

1、xcorr 本质上是两个函数做内积运算 相关算法有两种: 在Matlab上既可以 1.用自带的xcorr函数计算互相关,2.通过在频域上乘以共轭复频谱来计算互相关; 网友验证程序 clc;clear;close all; % s1,s2为样例数据 s1 [-0.00430297851562500;-…

攻防世界----->Replace

前言:做题笔记。 下载 查壳。 upx32脱壳。 32ida打开。 先运行看看: 没有任何反应? 猜测又是 地址随机化(ASLR)---遇见过。 操作参考: 攻防世界---->Windows_Reverse1_dsvduyierqxvyjrthdfrtfregreg-CSDN博客 然后…

Spring系列 Bean创建过程

文章目录 初始化时机单例初始化流程getBeandoGetBeangetSingleton(String) 获取单例getSingleton(String, ObjectFactory) 创建单例beforeSingletonCreationcreateBeanafterSingletonCreation 创建 Bean 过程doCreateBeanaddSingletonFactory createBeanInstance 创建 Bean 对象…

医院管理智能化:Spring Boot技术革新

3系统分析 3.1可行性分析 通过对本医院管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本医院管理系统采用JAVA作为开发语言,Spring Boot框…

ctf.bugku - game1

题目来源: game1 - Bugku CTF 访问页面,让玩游戏 得到100分,没拿到flag 查看页面源码, GET请求带有 score、IP、sign 三个参数,最后的flag 应该跟分数有关; 给了score一个99999分数, sign 为 …

STM32编码器接口

一、概述 1、Encoder Interface 编码器接口概念 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度每个高级定时器和通用…