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

【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成

目录

一. 项目概述

问题:

解决:

二. 方法详解

a) 整体结构

b) 自主题注意力

三. 文本控制的动漫角色驱动图像生成的结果

四. 文本控制的自然图像驱动图像生成的结果

五. 姿势控制角色驱动图像生成的结果


2023年的最后一天,发个文记录下。马上就要迎来新的一年,在这里预祝各位读者新年新气象!

今天要介绍的是字节的DreamTuner: Single Image is Enough for Subject-Driven Generation,可以通过单张图像实现特定主题的驱动生成。

一. 项目概述

什么是主题驱动生成?使用一张或几张参考图像生成定制概念的个性化应用。

问题:

  1. 现有的基于微调的方法需要在主题学习和维护预训练模型的生成能力之间进行权衡,个人理解是模型特化和泛化的权衡。

  2. 基于附加图像编码器的其他方法往往由于编码压缩而丢失主题的一些重要细节。

解决:

文中提出了 DreamTurner,这是一种从粗到细注入定制主题的参考信息的新颖方法。

  1. 首先提出了一种用于粗略主题身份保留的主题编码器,其中在视觉文本交叉注意之前通过附加注意层引入压缩的一般主题特征。

  2. 然后,我们将预训练的文本到图像模型中的self-attention修改为self-subject-attention层,以细化目标主体的细节。值得强调的是,self-subject-attention是一种优雅、有效、免训练的方法,用于维护定制概念的详细特征,可以在推理过程中用作即插即用的解决方案。

  3. 最后,通过仅对单个图像进行额外的微调,DreamTurner 在由文本或姿势等其他条件控制的主题驱动图像生成方面取得了卓越的性能。

二. 方法详解

DreamTuner 作为一种基于微调和图像编码器的主题驱动图像生成的新颖框架,它保持从粗到细的主题身份。

DreamTuner由三个阶段组成:主题编码器预训练、主题驱动微调和主题驱动推理。

  1. 首先,训练主题编码器以进行粗略的身份保留。主题编码器是一种图像编码器,为生成模型提供压缩图像特征。冻结的 ControlNet 用于解耦内容和布局。

  2. 然后我们在参考图像和一些生成的常规图像上微调整个模型,如 DreamBooth 中一样。请注意,主题编码器和自主题注意力用于常规图像生成以细化常规数据。

  3. 在推理阶段,通过微调获得的主题编码器、自身主题注意力和主题词[S*]用于从粗到细地进行主题身份保留。预训练的 ControlNet 还可用于布局控制生成。

a) 整体结构

  1. 提出的主题编码器作为一种图像编码器,为主题驱动生成提供粗略参考。使用冻结的 CLIP 图像编码器来提取参考图像的压缩特征。使用显著对象检测(SOD)模型或分割模型来去除输入图像的背景并强调主题。

  2. 然后引入一些残差块(ResBlock)进行域移位。CLIP提取的多层特征在通道维度上cat操作,然后通过残差块调整到与生成特征相同的维度。使用附加的主题编码器注意(SEA)层将主题编码器的编码参考特征注入到文本到图像模型中。主题编码器注意层添加在视觉文本交叉注意之前,因为交叉注意层是控制生成图像的总体外观的模块。

  3. 根据与交叉注意力相同的设置构建主题编码器注意力,并将输出层初始化为零。附加系数β引入来调整主题编码器的影响。

  4. 此外,进一步引入ControlNet来帮助解耦内容和布局。具体来说,我们训练主题编码器和冻结深度 ControlNet。由于ControlNet提供了参考图像的布局,主题编码器可以更加关注主题内容

b) 自主题注意力

  1. 由于主题编码器为生成过程提供了特定主题的一般外观,因此进一步提出基于原始自注意力层的自主题注意力,以实现良好的主题身份保存。

  2. 将预训练的文本到图像 U-Net 模型提取的参考图像的特征注入到自注意力层中。

  3. 参考特征可以提供精细且详细的参考,因为它们与生成图像的特征共享相同的分辨率。具体来说,在每个时间步长通过扩散前向过程对参考图像进行噪声处理t。

  4. 然后从噪声参考图像中提取每个自注意力层之前的参考特征,这些特征与时间步长生成的图像特征共享相同的数据分布。

  5. 利用参考特征将原始的自注意力层修改为自主题注意力层。将生成图像的特征作为查询,并将生成图像特征和参考图像特征的进行cat操作作为键和值。

  6. 为了消除参考图像背景的影响,使用显著对象检测(SOD)模型创建前景掩模,其中使用0和1来指示背景和前景。

  7. 此外,掩模还可以通过权重策略来调整参考图像影响的大小,即掩模乘以调整系数, 起到注意偏差的作用,因此使用对数函数作为预处理。

将原来的分类器免引导方法也修改为:

图片

第一个方程强调参考图像的引导,第二个方程强调条件的引导,用概率控制选择第一个或者第二个的可能性。

三. 文本控制的动漫角色驱动图像生成的结果

结果显示了专注于动漫角色的文本控制的主题驱动图像生成的输出。

局部编辑结果(例如第一行的表达式编辑)和全局编辑结果(包括后续五行的场景和动作编辑),即使输入复杂的文本也能产生高度详细的图像。值得注意的是,图像准确地保留了参考图像的细节。

四. 文本控制的自然图像驱动图像生成的结果

该方法在 DreamBooth 数据集上进行评估,其中每个主题的一张图像用作参考图像。通过使用主题编码器和自我主题注意力,生成精确的参考。

这使得 DreamTuner 能够成功生成与文本输入一致的高保真图像,同时还保留关键的主题细节,包括但不限于、小狗头上的白色条纹、包上的徽标、罐头上的图案和文字。

图片

五. 姿势控制角色驱动图像生成的结果

该方法可以与 ControlNet 相结合,将其适用性扩展到各种条件,例如姿势。在下面的示例中,仅使用一张图像进行 DreamTuner 微调,并使用参考图像的姿态作为参考条件。为了保证帧间的一致性,参考图像和生成图像的前一帧都用于自我注意力,参考权重分别为10和1。 


欢迎加入AI杰克王的免费知识星球,海量干货等着你,一起探讨学习AIGC!

相关文章:

【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成

目录 一. 项目概述 问题: 解决: 二. 方法详解 a) 整体结构 b) 自主题注意力 三. 文本控制的动漫角色驱动图像生成的结果 四. 文本控制的自然图像驱动图像生成的结果 五. 姿势控制角色驱动图像生成的结果 2023年的最后一天,发个文记录…...

Jupyter Notebook的10个常用扩展介绍

Jupyter Notebook(前身为IPython Notebook)是一种开源的交互式计算和数据可视化的工具,广泛用于数据科学、机器学习、科学研究和教育等领域。它提供了一个基于Web的界面,允许用户创建和共享文档,这些文档包含实时代码、…...

uniapp项目如何引用安卓原生aar插件(避坑指南三)

官方文档说明:uni小程序SDK 【彩带- 避坑知识点】 如果引用原生aar插件,都配置好之后,云打包,报不包含此插件,除了检查以下步骤流程外,还要检查一下是否上打包的原生插件aar流程有问题。 1.第一步在uniapp项…...

YOLOv8改进 | 检测头篇 | ASFF改进YOLOv8检测头(全网首发)

一、本文介绍 本文给大家带来的改进机制是利用ASFF改进YOLOv8的检测头形成新的检测头Detect_ASFF,其主要创新是引入了一种自适应的空间特征融合方式,有效地过滤掉冲突信息,从而增强了尺度不变性。经过我的实验验证,修改后的检测头…...

思维训练-怎样设计一个MQ

架构师需要做各种设计,要不断地提高自己的设计能力。这有没有方法可以训练呢?有的,就是看到什么、想到什么,就假设对面坐着产品经理,一起讨论怎么把它设计出来。比如怎样设计一个MQ 我:首先我确认一下需求。…...

RK3399平台入门到精通系列讲解(导读篇)21天挑战Linux系统开发

🚀返回总目录 文章目录 一、关于作者1、博主的联系方式2、支持二、需要具备的知识和工具1、需掌握知识点2、需了解的知识点三、通过系列博客可以学到什么1、本系列博文特色2、21天学习目标3、21天学习内容4、学习时间5、学习产出...

企业微信会话存档sdk报错:A fatal error has been detected by the Java Runtime Environment

错误信息 # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc0x00007f218f93485d, pid10, tid58 # # JRE version: OpenJDK Runtime Environment 18.9 (11.0.14.11) (build 11.0.14.11) # Java VM: OpenJDK 64-Bit Server VM 18.9…...

nginx-docker 搭建websocket反向代理

下载镜像 docker pull nginx复制出配置文件 将/etc/nginx/nginx.conf和/etc/nginx/conf.d/default.conf复制到本机 nginx.conf文件内容 user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_c…...

blender插件开发

Quickstart — Blender Python API Blender Python 编程:关键概念 - 知乎 系列目录链接(更新中,如无链接说明未更新) [Blender Python] 列出/插入/删除物体,Blender数据对象 - 知乎 (zhihu.com)[Blender Python] 设…...

【数据结构】二叉搜索(查找/排序)树

一、二叉搜索树基本概念 1、定义 二叉搜索树,又称为二叉排序树,二叉查找树,它满足如下四点性质: 1)空树是二叉搜索树; 2)若它的左子树不为空,则左子树上所有结点的值均小于它根结…...

Vue:Vue与VueComponent的关系图

1.一个重要的内置关系&#xff1a;VueComponent.prototype.proto Vue.prototype 2.为什么要有这个关系&#xff1a;让组件实例对象&#xff08;vc&#xff09;可以访问到 Vue原型上的属性、方法。 案例证明&#xff1a; <!DOCTYPE html> <html lang"en"&…...

Elasticsearch8集群部署

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 本文记录在3台服务器上离线搭建es8.7.1版本集群。 1. 修改系统配置 1.1 hosts配置 在三台es节点服务器加入hostname解析&…...

【小白专用】c# 如何获取项目的根目录

1、取得控制台应用程序的根目录方法 方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录&#xff0c;它由程序集冲突解决程序用来探测程序集 2、取得Web应用程序的根目录方法 方法1、HttpRun…...

【PXIE301-208】基于PXIE总线架构的Serial RapidIO总线通讯协议仿真卡

板卡概述 PXIE301-208是一款基于3U PXIE总线架构的Serial RapidIO总线通讯协议仿真卡。该板卡采用Xilinx的高性能Kintex系列FPGA作为主处理器&#xff0c;实现各个接口之间的数据互联、处理以及实时信号处理。板卡支持4路SFP光纤接口&#xff0c;支持一个PCIe x8主机接口&…...

软件测试/测试开发丨Windows系统chromedriver安装与环境变量配置

一、selenium 环境配置 1、chrome 浏览器的安装与配置 目前比较常用的浏览器是 Google Chrome 浏览器&#xff0c;所以本教程以 chrome 为主&#xff0c;后面简介一下其他浏览器的环境配置。 &#xff08;1&#xff09;chrome 下载: www.google.cn/chrome/ &#xff08;2&a…...

【vim 学习系列文章 3.1 -- vim 删除 ^M】

请阅读【嵌入式开发学习必备专栏 之 VIM 专栏】 文章目录 ^M 来源^M 删除 ^M 来源 在 Vim 中打开文件时&#xff0c;您可能会遇到行尾的 ^M 字符&#xff0c;这通常是因为文件使用了 Windows 风格的回车换行符&#xff08;CRLF&#xff09;&#xff0c;而不是 Unix/Linux 风格…...

深入理解 C# 中的字符串比较:String.CompareTo vs String.Equals

深入理解 C# 中的字符串比较&#xff1a;String.CompareTo vs String.Equals 在处理字符串时&#xff0c;了解如何正确比较它们对于编写清晰、有效和可靠的 C# 程序至关重要。本文将深入探讨 C# 中的两个常用字符串比较方法&#xff1a;String.CompareTo 和 String.Equals&…...

DevOps持续交付之容器化CICD流水线

DevOps持续交付 随着DevOps⼤规模化的落地和应⽤&#xff0c;持续集成以及持续交付已经是⼀种常态的。CI指的是持续集成&#xff0c;使⽤的开源⼯具是Jenkins&#xff0c;CD指的是持续交付和持续部署&#xff0c;⼀个完整的软件开发⽣命周期为: 主要流程可以具体为: 构建阶段…...

Linux/Unix/国产化操作系统常用命令(二)

目录 后CentOS时代国产化操作系统国产化操作系统有哪些常用Linux命令关于Linux的LOGO 后CentOS时代 在CentOS 8发布后&#xff0c;就有了一些变化和趋势&#xff0c;可以说是进入了"后CentOS时代"。这个时代主要表现在以下几个方面&#xff1a; CentOS Stream的引入…...

基于SpringBoot的智慧生活商城系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的智慧生活商城系统,java…...

Nanbeige 4.1-3B专属UI实战:一键部署沉浸式游戏风格聊天应用

Nanbeige 4.1-3B专属UI实战&#xff1a;一键部署沉浸式游戏风格聊天应用 1. 项目概述与核心价值 南北阁&#xff08;Nanbeige&#xff09;4.1-3B是一款性能优异的中英双语大语言模型&#xff0c;而今天我们要介绍的是为其量身打造的专属Web交互界面。这个界面最特别之处在于&…...

2023最新版Prometheus+Grafana监控系统搭建指南(含Docker-compose部署)

2023云原生监控实战&#xff1a;基于Docker-compose的PrometheusGrafana全栈部署指南 在云原生技术席卷各行各业的今天&#xff0c;监控系统已成为保障业务稳定性的神经中枢。传统监控方案在面对容器化、微服务架构时往往力不从心&#xff0c;而Prometheus作为CNCF毕业项目&…...

CFO/SFO/STO/CFD/IQ不平衡/IQ gain mismatch/IQ phase mismatch/干扰信号载波频率 等等蓝牙通信中干扰参数解析

载波频偏和采样频偏确实来自物理上不同的时钟源,虽然它们可能在数字通信系统中相互影响。 我们可以从三个层面来理清它们的关系: 2. 为什么容易混淆 因为在实际电路中,射频本振和采样时钟可能来自同一个参考晶振。在一些低成本或集成度高的系统中,收发信机通过锁相环(PL…...

华硕笔记本终极电池拯救指南:用G-Helper实现智能充电与健康修复

华硕笔记本终极电池拯救指南&#xff1a;用G-Helper实现智能充电与健康修复 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models …...

LangGraph实战:从零构建并部署一个多功能智能体

1. LangGraph框架概述&#xff1a;新一代智能体开发范式 在人工智能应用开发领域&#xff0c;智能体&#xff08;Agent&#xff09;技术正经历着从简单问答到复杂任务执行的进化。LangGraph作为LangChain生态中的新一代开发框架&#xff0c;彻底改变了传统链式结构的局限性。我…...

基于YOLOv11姿态检测的AI健身助手具备实时姿态识别、运动计数与反馈、训练记录和计划制定功能

基于YOLOv11姿态检测的AI健身助手 ✨ 功能特点 实时运动计数 - 自动计算您的健身次数多种运动支持 - 包括深蹲、俯卧撑、仰卧起坐、哑铃运动等十多种先进的姿态检测 - 采用YOLOv11实现精准跟踪模型切换功能 - 可以在小型(更快)和大型(更精确)YOLOv11模型之间轻松切换可视化反馈…...

SEO_网站SEO诊断与快速优化解决办法分享

<h2>SEO诊断&#xff1a;了解你的网站现状&#xff0c;为优化铺路</h2> <p>在当今数字化时代&#xff0c;拥有一个高效、优化良好的网站是任何企业或个人成功的关键。网站SEO诊断是这一过程中的重要步骤。通过网站SEO诊断&#xff0c;我们可以全面了解你的网…...

告别云端推理:手把手教你用Vivado HLS在AX7350开发板上部署YOLOv3(附完整工程)

从零部署YOLOv3到AX7350开发板&#xff1a;FPGA加速实战全流程解析 在边缘计算领域&#xff0c;FPGA因其低延迟、高能效和可重构特性&#xff0c;成为深度学习模型部署的热门选择。本文将带您完成YOLOv3目标检测模型在AX7350开发板上的完整部署流程&#xff0c;从环境准备到最终…...

MCP项目笔记六(PluginsLoader)

C 插件加载器&#xff1a;从目录扫描、动态库加载、实例创建&#xff0c;到安全卸载的设计思路与实现细节。一、整体架构概览 这段代码实现了一个完整的运行时插件系统&#xff08;Runtime Plugin System&#xff09;。所谓插件系统&#xff0c;就是让主程序在编译完成后&#…...

别再让电费偷偷溜走!用智能时间开关改造家里的热水器和空调(附保姆级选购指南)

别再让电费偷偷溜走&#xff01;用智能时间开关改造家里的热水器和空调&#xff08;附保姆级选购指南&#xff09; 每到月底收到电费账单时&#xff0c;那种"钱不知不觉就溜走"的感觉总是让人心疼。特别是热水器和空调这两大"电老虎"&#xff0c;它们往往…...