小红书新ID保持项目StoryMaker,面部特征、服装、发型和身体特征都能保持一致!(已开源)
继之前和大家介绍的小红书在ID保持以及风格转换方面相关的优秀工作,感兴趣的小伙伴可以点击以下链接阅读~
近期,小红书又新开源了一款文生图身份保持项目:StoryMaker,是一种个性化解决方案,它不仅保留了面部的一致性,还保留了多个角色场景中的服装、发型和身体的一致性,从而有可能制作由一系列图像组成的故事。

StoryMaker通过其强大的特性,彻底改变了多角色叙事创作的方式。它不仅能帮助创作者快速生成高质量的连续图像,还能确保每个角色的特征始终保持一致,无需反复进行人工调整。
下图是由StoryMaker 生成的图像。前三行讲述了"上班族"一天的生活故事,后两行讲述了一部电影《爱在黎明破晓前》的故事。

相关链接
项目地址:https://github.com/RedAIGC/StoryMaker 论文地址:https://arxiv.org/pdf/2409.12576 模型地址:https://huggingface.co/RED-AIGC/StoryMaker
论文阅读

StoryMaker:在文本到图像生成中实现一致的人物形象
摘要
无需调整的个性化图像生成方法在保持面部一致性(即身份)方面取得了重大成功,即使有多个角色也是如此。然而,在有多个角色的场景中缺乏整体一致性,阻碍了这些方法创建连贯叙事的能力。
本文介绍的StoryMaker是一种个性化解决方案,它不仅保留了面部一致性,还保留了服装、发型和身体一致性,从而通过一系列图像促进故事的创作。StoryMaker 结合了基于面部身份和裁剪角色图像的条件,包括服装、发型和身体。
具体来说,使用位置感知感知器重采样器 (PPR) 将面部身份信息与裁剪角色图像相结合,以获得不同的角色特征。为了防止多个角色和背景混合,使用带分割蒙版的 MSE 损失分别约束不同角色和背景的交叉注意力影响区域。此外训练以姿势为条件的生成网络以促进与姿势的解耦。还采用了 LoRA 来提高保真度和质量。实验证明了该方法的有效性。StoryMaker 支持众多应用程序,并与其他插件兼容
方法

StoryMaker 的模型架构。 面部图像和角色图像分别使用面部编码器和图像编码器进行嵌入,并通过提出的位置感知感知器重采样器模块进行细化。使用与 LoRA 解耦的交叉注意力将这些嵌入注入扩散模型。在底部用分割掩码说明了交叉注意力图上的注意力损失。右侧还描绘了 PPR 模块的核心。
给定一张包含一两个角色的参考图像,StoryMaker 会尝试生成一系列具有相同角色的新图像,这些新图像不仅保留相同的面孔(即身份),还保留他们的衣着、发型和身体。然后,可以根据文本提示通过改变背景、角色的姿势和风格来创建叙事。
具体来说,首先使用面部编码器提取角色的面部信息(即身份),并通过角色图像编码器提取其衣着、发型和身体的细节。然后使用所提出的位置感知感知器重采样器来细化这些信息。
-
为了控制主干生成网络,将细化的信息注入 IP-Adapter 提出的解耦交叉注意模块。
-
为了防止多个角色和背景交错,分别限制了不同角色和背景的交叉注意的影响区域。此外,还使用了 ID 损失来维护角色的身份。
-
为了将姿势信息与参考图像分离,以 ControlNet检测到的姿势为条件训练网络。
-
为了提高保真度和质量,还使用 LoRA 训练 U-Net。
训练完成后,可以丢弃整个 ControlNet 并通过文本提示控制角色的姿势,或者在推理过程中使用新姿势指导图像生成。
实验
两幅肖像合成

双字符图像生成的可视化。前两列显示两个不同的参考字符图像。中间的四列说明了StoryMaker实现现实合成的能力。最后四列展示了风格化合成的结果,其中字符嵌入被设置为零。
多样性应用

StoryMaker的各种应用。


单个字符条件生成的视觉对比。
结论
本文给大家介绍了 StoryMaker,这是一种新颖的个性化图像生成方法,它不仅在面部身份方面保持了一致性,而且在多个角色场景中的服装、发型和身体方面也保持了一致性。
该方法通过文本提示允许背景、姿势和风格变化,从而增强了叙事创作,实现了多样化和连贯的故事讲述。StoryMaker 利用位置感知感知器重采样器,通过融合从面部图像和裁剪的角色图像中提取的特征来获得不同的角色嵌入。为了防止多个角色和背景混合,使用 MSE 损失和分割蒙版分别限制不同角色和背景的交叉注意力影响区域。通过结合 ControlNet 的姿势解耦和 LoRA 的保真度增强,StoryMaker 可以持续生成具有匹配身份和视觉一致性的高质量图像。广泛的实验证明了 StoryMaker 在保持角色身份和一致性方面的卓越性能,尤其是在多角色场景中,优于现有的无调整模型。
该模型的多功能性通过各种应用得到进一步凸显,例如换装、角色插值以及与其他生成插件的集成。StoryMaker 为个性化图像生成做出了巨大贡献,并为数字故事讲述、漫画和其他领域的广泛应用开辟了可能性,在这些领域中,个性和叙事连贯性至关重要。
相关文章:
小红书新ID保持项目StoryMaker,面部特征、服装、发型和身体特征都能保持一致!(已开源)
继之前和大家介绍的小红书在ID保持以及风格转换方面相关的优秀工作,感兴趣的小伙伴可以点击以下链接阅读~ 近期,小红书又新开源了一款文生图身份保持项目:StoryMaker,是一种个性化解决方案,它不仅保留了面部的一致性&…...
Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控
Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控 文章目录 Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控一 查看当前 GPU 信息二 dcgm-exporter 部署1)Docker r…...
联想小新打印机M7328w如何解决卡纸,卡了一个小角在里面,然后再次打印的时候,直接卡住,不能动了。灯显示红色。
1、今天打印一张纸,应该是不小心放歪了,打出来的也是有些斜,然后打出来缺少了个角。 图中的小纸就是从打印机的左边的角,用镊子取出来的,手不太好拿,所以拿个工具比较合适。 2、那么碰到这种卡纸应该如何处…...
软件可靠性之MTTR、MTBF、MTTF、MTTD区别
一.概念解释 1.MTBF(Mean Time Between Failures):指两次故障之间的平均时间,通常用于衡量设备或系统的可靠性。 2.MTTF(Mean Time to Failure):指设备或系统的平均无故障运行时间。 3.MTTR&am…...
Qt-QDockWidget浮动窗口相关操作(49)
目录 描述 使用 描述 在 Qt 中,浮动窗⼝也称之为铆接部件。浮动窗⼝是通过 QDockWidget类 来实现浮动的功能。浮动窗口⼀般是位于核心部件的周围,可以有多个。 使用 创建我们可以参考下面的语法格式 使用起来也很简单,不过只能创建一个 Q…...
图形用户界面-GUI的基本概念和组件之一
前言 GUI(Graphical User Interface,图形用户界面,简称图形界面)编程实际是引用java.awt或javax.swing类包中的窗口类、控制组件类、布局类、事件类等,通过将控制组件类,如菜单、按钮、文本框等,…...
【MATLAB代码】基于RSSI原理的蓝牙定位程序(N个锚点、三维空间),源代码可直接复制
文章目录 介绍主要功能技术细节适用场景程序结构运行截图源代码详细教程:基于RSSI的蓝牙定位程序1. 准备工作2. 代码结构2.1 清理工作环境2.2 定义参数2.3 生成锚点坐标2.4 定义信号强度与距离的关系2.5 模拟未知点的位置2.6 定位函数2.7 绘图2.8 输出结果2.9 定义定位函数3. …...
Pyenv 介绍和安装指南 - Ubuntu 24
原文: https://www.qiulin-dev.top/articles/81aab753-0d0e-470c-b08f-2643c876841b 1. Pyenv 介绍 Pyenv 是一个非常流行的 Python 版本管理工具,它可以让你在同一台机器上安装并管理多个不同的 Python 版本,解决了不同项目需要不同 Python…...
zookeeper实现RMI服务,高可用,HA
这可不是目录 1.RMI原理与说明1.1含义1.2流程1.3rmi的简单实现1.4RMI的局限性 2.zookeeper实现RMI服务(高可用、HA)2.1实现原理2.2高可用分析2.3zookeeper实现2.3.1代码分析2.3.2公共部分2.3.3服务端2.3.4客户端2.3.5运行与部署2.3.6效果展示与说明 1.RM…...
通过Express + Vue3从零构建一个用户认证与授权系统(一)项目结构设计
项目背景 本文基于 TypeScript Express Vue3 ,从零构建一个用户认证与授权管理系统。这个系统的核心部分包括前端、后端和数据库。我们需要确保各部分合理分层、易于维护和扩展,让我们一步步去实现我们的系统。 一、项目结构设计 1. 前端 (Vue 3 E…...
JavaScript 第13章:Ajax 与异步请求
在Web开发中,异步请求是一种非常重要的技术,它可以让网页在不重新加载的情况下与服务器交互。本章将介绍两种常用的异步请求技术:XMLHttpRequest 和 Fetch API,以及它们如何用于处理JSON数据交换,并通过一个实战案例—…...
速卖通商品详情接口技术解析及Python代码示例
速卖通商品详情接口技术解析及Python代码示例 速卖通(AliExpress)作为全球知名的跨境电商平台,其开放平台提供了丰富的API接口,允许开发者集成速卖通的各项功能,实现商品搜索、详情查询、订单管理等一系列操作。本文将…...
邻接表的有向网(C语言代码)
#include <stdio.h> #include <stdlib.h> #define MVNum 100 //最大顶点数 //边表结构体 typedef struct ArcNode { //表结点 int adjvex; //邻接点的位置 struct ArcNode* nextarc; //指向下一个…...
大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成
大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成 待解决的问题 生成PPT大纲是一种大模型在办公场景下应用的常见需求。 然而: 目前直接让大模型生成大纲往往是非结构化的,输出格式多样,难以统一和规范&#…...
MRSO算法(JCR2区)
原论文摘要:智能技术的快速发展促使利用自然行为来解决复杂问题的优化算法得以发展。其中,鼠群优化算法(Rat Swarm Optimizer,RSO)受老鼠的社会和行为特征启发,在各个领域已展现出潜力,但其收敛…...
最新Spring Boot3框架入门教程,基础知识讲解(参考官方文档),同时基于MybatisPlus+MYSQL搭建后台管理系统基础流程(附源码)
本文所涉及的代码以及相关文件均上传至仓库:GitHub - yang66-hash/XDPropertyManagementSystemDemo: This is a demo template based on SpringBoot3 in the background of property management system. Spring Boot 是由 Pivotal 团队开发的一款开源框架,它可以帮助…...
导数的概念及在模型算法中的应用
一. 导数概念与计算 1. 导数的物理意义: 瞬时速率。一般的,函数yf(x)在x处的瞬时变化率是 2. 导数的几何意义: 曲线的切线,当点趋近于P时,直线 PT 与曲线相切。容易知道,割线的斜率是当点趋近于 P 时&…...
获取首日涨停封盘后第二次交易日上涨/下跌的概率
有许多投资者喜欢在股票涨停封盘后,跟进买入。普通股民会认为一个能在今日涨停封盘的股票,证明其上市公司正有十分重大的利好信息,只需要跟进购买便可以获取短期利益。 我们用数据来看一下在当日涨停封盘后,第二次交易日是上涨还…...
shell $ 用法
Shell脚本中$符号的几种用法小结_linux shell_脚本之家 Shell 传递参数 | 菜鸟教程 $ 符号说明$0Shell 的命令本身1到9表示 Shell 的第几个参数$?显示最后命令的执行情况$#传递到脚本的参数个数$$脚本运行的当前进程 ID 号$*以一个单字符串显示所有向脚本传递的参数$!后台运行…...
如何用支付宝实现靠脸吃饭
还记得上学时,每当下课铃声响起,我们就会像一群脱缰的野马一样,浩浩荡荡地冲向食堂。最令人崩溃的时刻莫过于终于到达打饭窗口前排时,却发现饭卡忘带了!但现在,这种情况将不再发生。许多学校食堂已经配备了…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
