当前位置: 首页 > news >正文

长篇故事可视化方法Story-Adapter:能够生成更高质量、更具细腻交互的故事图像,确保每一帧都能准确地传达故事情节。

今天给大家介绍一个最新的长篇故事可视化方法Story-Adapter,它的工作原理可以想象成一个画家在创作一幅长画卷。首先,画家根据故事的文本提示画出初步的图像。这些图像就像是画卷的草图。接下来,画家会不断回顾这些草图,逐步添加细节和修正错误。在每一次修改中,画家不仅参考之前的草图,还会结合文本提示来确保每个细节都符合故事的内容。这种方法让画家的创作更加连贯,避免了由于错误累积而导致的画面不一致。通过这种迭代的方式,Story-Adapter能够生成更高质量、更具细腻交互的故事图像,确保每一帧都能准确地传达故事情节。

相关链接

论文地址:http://arxiv.org/abs/2410.06244v1

项目主页:https://jwmao1.github.io/storyadapter

代码地址:https://jwmao1.github.io/storyadapter

论文阅读

摘要

故事可视化是一项基于叙述生成连贯图像的任务,随着文本到图像模型(尤其是扩散模型)的出现,该任务取得了重大进展。然而,保持语义一致性、生成高质量的细粒度交互以及确保计算可行性仍然具有挑战性,尤其是在长篇故事可视化(即最多 100 帧)中。

本文工作提出了一个无需训练且计算效率高的框架,称为 Story-Adapter,以增强长篇故事的生成能力。具体来说提出了一个迭代范式来细化每个生成的图像,利用文本提示和上一次迭代生成的所有图像。我们框架的核心是一个无需训练的全局参考交叉注意模块,它聚合了上一次迭代生成的所有图像,以保持整个故事的语义一致性,同时通过全局嵌入最大限度地降低计算成本。这个迭代过程通过反复合并文本约束逐步优化图像生成,从而产生更精确和更细粒度的交互。大量实验验证了 Story-Adapter 在提高语义一致性和细粒度交互生成能力方面的优势,尤其是在长篇故事场景中。

方法

Story-Adapter 框架。 所提出的迭代范式的说明,包括初始化、Story-Adapter 中的迭代和全局参考交叉注意 (GRCA) 的实现。Story-Adapter 首先仅根据故事的文本提示对每幅图像进行可视化,并将所有结果用作下一轮的参考图像。在迭代范式中,Story-Adapter 将 GRCA 插入 SD。对于每次图像可视化的第 i 次迭代,GRCA 将通过交叉注意在去噪过程中聚合所有参考图像的信息流。本次迭代的所有结果将用作参考图像,以指导下一次迭代中故事可视化的动态更新。

与常规长度的故事相比,长篇故事包含更多角色和更复杂的交互,因此对语义一致性和细粒度交互生成的要求更高。为了解决上述挑战,文中采用了一种迭代范式,该范式在多轮中逐步完善所有生成的图像,包括语义一致性和视觉细节。我们通过为固定的稳定扩散 (SD) 模型配备交叉注意机制(称为 Story-Adapter)来实例化迭代范式。

实验

不同方法的定性比较

故事可视化的定性比较表明,AR-LDM 和 StoryGen 可生成连贯的图像序列,但由于自回归误差,其质量会随着故事长度而下降。StoryDiffusion 和 Story-Adapter 表现良好,尽管 StoryDiffusion 由于计算要求高而难以解决主题一致性和 ID 图像缺陷问题。Story-Adapter 更能满足有效故事可视化的要求。

长篇故事可视化的定性比较。 橙色和蓝色框中的图像序列分别由 StoryDiffusion 和 Story-Adapter 生成。Story-Adapter 在生成语义一致性和角色交互方面表现出优势。

迭代范式的消融研究:迭代范式的效果和不同固定λ的影响。

初始化和 GRCA 的定性消融研究。

Story-Adapter 对不同迭代的故事进行可视化,准确的交互用绿色表示,错误或缺失的交互用红色表示。

StoryDiffusion 对“钢琴家”故事的可视化结果。

结论

本文介绍的Story-Adapter是一个迭代框架,它调整了预先训练的稳定扩散模型以进行长篇故事可视化。通过使用以前迭代生成的图像作为参考,该方法保持了语义一致性并提高了整个故事中细粒度交互的生成质量,有效地减少了错误积累并避免了缺陷的传播。

为了提高效率,文中提出了一个即插即用的全局参考交叉注意 (GRCA) 模块,它利用全局图像嵌入来降低计算成本,同时保留必要的图像信息流。大量实验表明,Story-Adapter 在常规长度的故事可视化数据集上的表现优于现有方法,并在长篇故事可视化中表现出色。这些发现凸显了我们的迭代范式在提高文本到图像故事可视化的质量和连贯性方面的潜力。

http://www.lryc.cn/news/460570.html

相关文章:

  • C++基础面试题 | 什么是C++中的运算符重载?
  • 深入 IDEA 字节码世界:如何轻松查看 .class 文件?
  • NodeJS 利用代码生成工具编写GRPC
  • uni-app基础语法(一)
  • Linux:进程控制(三)——进程程序替换
  • LeetCode279:完全平方数
  • python爬虫--某动漫信息采集
  • 使用Rollup.js快速开始构建一个前端项目
  • 10.15学习
  • mongodb-7.0.14分片副本集超详细部署
  • C++运算出现整型溢出
  • LeetCode岛屿数量
  • Karmada核心概念
  • Rust 与生成式 AI:从语言选择到开发工具的演进
  • Python爬虫高效数据爬取方法
  • C语言之扫雷小游戏(完整代码版)
  • Spring WebFlux 响应式概述(1)
  • Unity游戏通用框架——事件的订阅和发布(观察者模式)
  • 将 Ubuntu 系统中的 **swap** 空间从 2GB 扩展到 16GB
  • 流程图 LogicFlow
  • Mac通过键盘选取内容
  • 如何通过OpenCV实现图像融合拼接?
  • Qt5.14.2 安装详细教程(图文版)
  • 深圳市步步精科技有限公司荣获发明专利,彰显技术研发实力
  • std::function的概念和使用方法
  • OpenAI的Swarm是一个实验性质的多智能体编排框架
  • 简易STL实现 | Map 的实现
  • `concurrent.futures` 是 Python 标准库中的一个模块
  • PicoQuant GmbH公司Dr. Christian Oelsner到访东隆科技
  • leetcode128最长连续序列 golang版