英伟达推出免训练,可生成连贯图片的文生图模型ConsiStory,生成角色一致性解决新方案
目前,多数文生图模型皆使用的是随机采样模式,使得每次生成的图像效果皆不同,在生成连贯的图像方面非常差。
例如,想通过AI生成一套图像连环画,即便使用同类的提示词也很难实现。虽然DALL·E 3和Midjourney可以对图像实现连贯的生成控制,但这两个产品都是闭源的。
因此,英伟达和特拉维夫大学的研究人员开发了免训练一致性连贯文生图模型——ConsiStory。(即将开源)

相关链接
论文地址:https://arxiv.org/abs/2402.03286
论文简介
论文的核心内容是介绍了一个名为ConsiStory的文本到图像生成模型,该模型能够在无需额外训练的情况下生成连贯的图像序列。
ConsiStory模型主要解决了两个问题:一是识别和定位图像中的共同主体,二是在不同图像中保持主体的视觉一致性。为了实现这些目标,ConsiStory采用了主体驱动自注意力(SDSA)和特征注入等核心模块。
ConsiStory模型可以作为一种插件,帮助其他扩散模型提升文本到图像生成的一致性和连贯性。对在文本到图像生成领域实现更连贯和一致性输出的研究者和开发者来说,提供了一种新的解决方案。
论文解读

引言
文本到图像模型通过允许用户通过自然语言指导图像生成过程,提供了一种新的创造性灵活性。然而,使用这些模型在不同的提示下一致地描绘相同的主题仍然具有挑战性。现有的方法微调模型,教它描述特定用户提供的主题的新单词,或者向模型添加图像调节。这些方法需要冗长的每个主题的优化或大规模的预训练。此外,它们很难将生成的图像与文本提示对齐,并在描绘多个主题时面临困难。
本文提出了ConsiStory,一种无需训练的方法,通过共享预训练模型的内部激活,实现了一致的主题生成。我们引入了主题驱动的共享注意力块和基于对应的特征注入,以促进图像之间的主题一致性。此外,我们开发了鼓励布局多样性同时保持主题一致性的策略。我们将ConsiStory与一系列基线进行比较,并展示了在主题一致性和文本对齐方面的最先进的性能,而无需进行单一的优化步骤。最后,ConsiStory可以自然地扩展到多主题场景,甚至可以实现对常见对象的免训练个性化。
方法

主体驱动自注意力(SDSA)
主体驱动自注意力(SDSA)是ConsiStory的核心模块之一。它通过扩展生成模型中的自注意力机制,使得在生成的图像批次中能够共享与主体相关的视觉信息,从而确保不同图像中主体的外观保持一致。
SDSA的关键在于扩大了自注意力层,使得一个图像中的“提示词”不仅可以关注自身图像的输出结果,还可以关注批次中其他图像的主体区域的输出结果。这样主体的视觉特征就可以在整个批次中共享,不同图像中的主体能够相互“对齐”,从而实现主体的一致性。

特征注入
为了,ConsiStory采用了“特征注入”机制。这一机制通过在图像生成过程中共享自注意力输出特征,加强了图像间相似区域(如纹理、颜色等)的一致性。
特征共享同样采用主体蒙版进行限定,同时设置了相似度阈值,以确保只在足够相似的区域之间执行特征共享。这样一来,只有在主体之间具有足够相似性的区域才会执行特征共享,从而确保了主体细节在不同图像之间的一致性,并避免了背景等不相关部分的影响。
实验
支持多个一致的主题
比如下图,不仅保留了男孩的特征,也保留了狗的特征。而其他方法通常至少忽略一个主题。

跟ControlNet集成
ConsiStory可以跟ControlNet集成,生成不同姿态的一致性的角色。

无需训练的个性化生成
简单理解就是图片转图片,将一张图片中的元素植入到另一张图片中,并保持该元素在新场景中自然融入,比如给左边的红色背包换背景。

变换种子值
每张AI生成的图片都有一个seed值,ConsiStory可以实现通过改变seed值(起始噪音)来变换场景,但主题不改变(如下图每行的猫头鹰)。

支持种族多样性
针对人像,ConsiStory可以保持该人物的种族特征不改变。

比较其他方法
如下图,最上面是ConsiStory方法,底下分别是IP-Adapter、TI、DB-LoRA方法,可以看下角色的一致性和对提示词的遵循程度,至少从官方提供的示例上看,ConsiStory都更胜一筹。

感谢你看到这里,也欢迎点击关注下方公众号或者关注本公众号的官方读者交流群,一个有趣有AI的AIGC公众号:关注AI、深度学习、计算机视觉、AIGC、Stable Diffusion、Sora等相关技术,欢迎一起交流学习💗~

相关文章:
英伟达推出免训练,可生成连贯图片的文生图模型ConsiStory,生成角色一致性解决新方案
目前,多数文生图模型皆使用的是随机采样模式,使得每次生成的图像效果皆不同,在生成连贯的图像方面非常差。 例如,想通过AI生成一套图像连环画,即便使用同类的提示词也很难实现。虽然DALLE 3和Midjourney可以对图像实现…...
Jmeter 性能 —— 50TPS与秒杀分析!
1、50tps——5tps分析 50tps基本上已经满足了大部分中小型企业要求了 需求:期望我项目的接口,都要能满足50tps? 算 50tps:50 个事务每秒50 t/s 1分钟:50\*60s 3000 事务1小时 3000 \* 60 180000 事务 1小时要处理…...
【前端】如何计算首屏及白屏时间
文章目录 一、首屏时间二、白屏时间 一、首屏时间 白屏时间:页面渲染完所有内容的时间 简单点就是在<body> 标签后写js代码计算,但是不是很准确 <head><title>白屏时间</title> </head> <body></body> <s…...
重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类 工作原理关键组件以TomcatServletWebServerFactory为例ServletWebServerFactory会创建webServer的时机关键…...
FileZillaClient连接被拒绝,无法连接
1.ECONNREFUSED - 连接被服务器拒绝 2、无法连接FZ时,判断没有ssh 更新源列表: sudo apt-get update 安装 openssh-server :sudo apt-get install openssh-server 查看是否启动ssh:sudo ps -e | grep ssh...
每日一面——成员初始化列表、移动构造和拷贝构造
写前声明:参考链接 C面经、面试宝典 等 ✊✊✊每日一面——成员初始化列表、移动构造和拷贝构造 一、类成员初始化方式?构造函数的执行顺序?为什么用成员初始化列表会快一些?二、final和override关键字三、拷贝初始化和直接初始化…...
OPC UA 服务器的Web访问
基于Web 的应用非常普及,例如基于web 的SCADA ,物联网 Dashboard 等等,那么基于Web 的应用如何访问OPC UA 服务器呢?本博文讨论这方面的问题。 Web 的通信方式 Web 是我们通常讲的网站,它由浏览器,HTTP 服…...
docker 子网
当需要给容器分配指定 ip ,为避免ip 冲突,指定容器子网处理 创建 subnet 子网 docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 subnet-testdocker network ls NETWORK ID NAME DRIVER SCOPE ... f582ecf297bc sub…...
QT使用RabbitMQ
文章目录 1.RabbitMQ 客户端下载地址:1.1RabbitMQ基本结构:2.搭建RabbitMQ server3.安装步骤4.运行4.1 报错问题解决5.使用5.1 配置Web管理界面6.常用命令总结7.Qt客户端编译7.1 这里重点强调一下,这个文件需要改成静态库7.2 下载地址:(qamqp自己下载,下载成功后,静态编译…...
什么是R语言?什么是R包?-R语言001
R语言是一种专为统计计算和图形而设计的编程语言和环境。它最初由罗斯伊哈卡和罗伯特亨特尔在1993年创建,灵感来源于S语言。R语言已经发展成为统计学、数据分析、科学研究以及许多其他领域中最受欢迎和广泛使用的工具之一。R语言的核心是一个开源的解释型语言&#…...
Java17 --- springCloud之LoadBalancer
目录 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom 1.3、80服务controller层: 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom <!--loadbalancer-->&…...
Mac(含M1) 使用 brew 安装nvm
目录 Mac 安装nvm 下载命令 配置环境变量 刷新 Mac(M1) 安装nvm 搜索 下载 为nvm创建文件夹 配置环境变量 刷新 Mac 安装nvm 下载命令 brew install nvm 配置环境变量 vi ~/.zshrc 内容如下: export NVM_DIR"$HOME/.nvm"[ -s "/usr/local…...
优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属的专栏:前端零基础教学,实战进阶 景天的主页:景天科技苑 文章目录 Vuevue.js库的基本使用vue.js的M-V-VM思…...
<2024最新>ChatGPT逆向教程
前言 在使用本篇文章用到的项目以及工具时,需要对其有一定的了解,无法访问以及无法使用的问题作者不承担任何责任,可以自行想办法解决遇到的问题。 文章若有不合适,有问题的地方,请私聊指出,谢谢~ 准备工具 一台至少 2 核 2G 内存的服务器,推荐是位于香港、新加坡或…...
C#编程技巧--2
1.使用泛型: 泛型允许你编写更加灵活和可重用的代码,同时提高类型安全性。 C# 中的泛型功能允许你编写更加灵活和可重用的代码,并且可以增加类型安全性。通过使用泛型,你可以编写适用于不同类型的代码,而无需为每种类型单独重写代…...
设计模式 代理模式
代理模式主要使用了 Java 的多态,主要是接口 干活的是被代理类,代理类主要是接活, 你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢? 同根就成ÿ…...
关于学习时间
这篇文章我来说一下我对于我最近学习时间的一些思考。 早上和下午是我最为活跃和高效的时间段。 我能够专注地工作,不容易分心。 然而,到了晚上,我的状态开始下降,这是很正常的情况。 由于早上和下午的专注学习,我的大…...
Github:Your browser did something unexpected. Please try again.
问题概述 Github:Your browser did something unexpected. Please try again. If the error continues, try disabling all browser extensions. 问题原因: 提示是插件出了问题,关闭了所有插件也无法解决,搜索了一下说是VPN的问题…...
Django性能优化
1.服务器CPU太高的优化 在Django项目中使用line_profiler进行性能剖析,您需要遵循以下步骤来设置并使用它: 1. **安装line_profiler**: 在命令行中执行以下命令来安装line_profiler: pip install line_profiler …...
全网最详细Docker命令(分类总结)
默认存储容器地址 cd /var/lib/docker 容器生命周期 Docker 命令 开启docker : systemctl start docker 查看docker状态 :systemctl status docker 停止:systemctl stop docker 重启: systemctl restart docker docker开机自启…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
