即插即用,无痛增强模型生成美感!字节跳动提出VMix:细粒度美学控制,光影、色彩全搞定
文章链接:https://arxiv.org/pdf/2412.20800
代码地址:https://github.com/fenfenfenfan/VMix
项目地址:https://vmix-diffusion.github.io/VMix/
亮点直击
分析并探索现有模型在光影、色彩等细粒度美学维度上生成图像的差异,提出在文本提示中解耦这些属性,并构建一个细粒度的美学标签体系,提供清晰的模型优化方向;
提出VMix条件注入方法,它将输入文本提示解耦为内容描述和美学描述,通过值混合交叉注意力的条件控制方法,从不同维度提升模型生成的美感;
提出的方法对于现有的扩散模型具有普适效果,作者基于此训练了一个即插即用的美学适配器,与社区模块高度兼容。
实验表明,提出的方法能显著提升现有模型生成美感,优于FreeU、DPO、Textual Inversion等方法
总结速览
解决的问题:
-
扩散模型在文本到图像生成方面表现出色,现有方法在提升图像质量以满足人类偏好方面做出了努力,但未能充分满足人类对视觉生成内容的细粒度审美偏好,如自然光线、丰富色彩和合理构图等;
-
现有方法在提升图像质量以满足人类偏好方面做出了努力,如FreeU、DPO等,尽管整体生成结果可能在文本对齐方面表现更好,但可能在视觉构图等方面表现较差,现有方法未能准确对齐生成图像与人类偏好。
提出的方案:
-
通过对齐人类设计师偏好,构建包括光影、色彩、构图等不同美学标签,将文本条件解耦成内容描述和美学描述;
-
提出新的条件注入方法VMix,通过审美嵌入初始化模块和跨注意力混合控制模块,在保持原有模型图文匹配能力同时,提升美学表现;
-
VMix设计灵活,能够与社区模块(如LoRA、ControlNet和IPAdapter)兼容,为图像生成提供更大的创造能力。
应用的技术:
-
扩散模型架构:Stable Diffusion、SDXL被作为基础图像生成模型进行实验,通过冻结基模仅训练额外小参数网络提升模型美感;
-
美学向量初始化:通过初始化美学向量,将输入文本提示分离为内容描述和多维度美学描述,并通过映射网络将审美标签作为额外条件整合到去噪模型中;
-
值混合交叉注意力:引入交叉注意力混合控制网络,在不直接改变注意力图的同时,最小化对图像-文本对齐的不利影响,从而更好的注入美学条件。
达到的效果:
-
VMix能够在不损害模型原有图文匹配能力的同时,提升模型在光影、色彩、构图等不同美学维度的表现;在与其他方法,如FreeU、DPO、Textual Inversion的比较中表现更出色,证明了其在提升图像美感方面的有效性。
-
在MJHQ-30K和LAION-HQ10K基准测试中,VMix在Aes分数上取得了最高分,表明其在提升美感的重要性。用户研究也表明,应用VMix后,预训练和开源模型更受用户青睐。
方法
VMix框架的pipeline和实现细节,如下图所示,分为三个阶段:
(1)美学向量初始化阶段;(2)训练阶段;(3)推理阶段
对于大多数微调方法,由于控制条件仅来源于文本模型的文本嵌入,即便输入文本中含有一些美学词汇,相关信息一方面很容易在与其它词汇的自注意力过程中被淹没,另一方面,过度包含美学词汇,使输入提示过长,可能导致无法在提示中生成某些主体,从而导致图文匹配度的下降。为了解决这个问题,论文将文本到图像合成的输入文本解耦为内容描述和美学描述,其中美学描述是引入的细粒度美学标签,内容输入是关于图像中主要主体和相关属性的描述。
美学向量初始化
为了让美学知识更高效注入到扩散模型中,设计了美学向量(AesEmb)初始化阶段,这一阶段产生的AesEmb将在训练和推理阶段使用,并且只需要推理一次即可离线缓存。如上图(a)所示,首先构建N组美学标签,其中表示一个特定的美学维度(例如丰富色彩、自然光线、合理构图等),而代表不包含此标签,即负面美学标签,值得注意的是,使用罕见词来表示,从而防止文本模型的语义先验泄漏到负面美学标签中。然后美学标签将被CLIP冻结的文本模型处理,从而产生一对[CLS]标记,记为, 最终可以得到N组这样预定义好的美学向量,即为AesEmb
其中d是维度,N表示美学标签对的数量。
交叉注意力混合控制
美学向量映射网络:在训练过程中,由于单张图片样本包含的正面美学标签的数量是不同的,这时预先定义好的AesEmb就派上用场了,每个样本会去AesEmb中索引对应向量,对于每个美学标签,如果该样本具备该属性,则索引;否则索引,从而重组得到最终的美学特征。然后通过一些线性层做维度变换,映射网络的最后一层用的是零线性层。整个映射网络的计算如下:
是从美学向量映射网络出的最终文本特征。在训练开始时,作为连接层的零初始化线性层的权重和偏置被设置为零。这种初始化确保了微调模型不会引入有害噪声,从而保留了原始预训练模型的能力。
值混合交叉注意力:交叉注意力层中的注意力图决定了文本标记在每个图像块的概率分布,为了尽可能保留预训练模型中固有的图文匹配能力,通过内容分支和美学分支双分支的方式在扩散模型中引入值混合交叉注意力网络,这两个分支共享注意力图,对于美学分支,仅让网络学习一个新的value,从而减少注入过程中对原始注意力图的影响,这个过程可以表示为:
训练及推理细节
模型全参数训练虽然会有更高的上限,但会产生高昂的成本,并且高度定制化;训练过程中,基模参数被冻结,只训练新增的映射网络和值混合交叉注意力网络,基模通过挂载一个小参数的LoRA,从而使模型训练过程更加稳定,并增强了其适用性。训练完成后,形成一个即插即用的模块。在推理阶段,默认使用所有正面的审美标签,如上图(c)所示,从而提升模型在所有审美维度上的生成质量。尽管在训练阶段使用了LoRA,在推理阶段这不是必需的,后面有相关的消融实验
实验结果
实验设置
训练数据:从LAION等大型公开英文数据集中提取了20万张图片,采用自动和人工过滤组合方式进行清洗。这批图除了内容描述文本外,还会标注不同美学维度(如色彩、光影、构图、重心等)的分类标签,用来作为训练过程中的额外条件。
训练设置: SD1.5和SDXL的学习率分别设置为1e−4和1e−5。Batch size设置为256,实验中的总训练步数为50,000。在推理阶段,使用DDIM采样器进行采样25步,CFG为7.5,不使用反向提示词。
评估细节:除了使用MJHQ-30K数据集进行评估外,额外构建一个只包含高美学和高分辨率图片的LAION-HQ10K数据集,使用FID、CLIP Score和Aes Score衡量生成图像的整体质量。
结果
定性比较:在视觉效果上,VMix显著优于其它方法,并且与使用同样训练集的SFT方法比,VMix的效果更好,从而验证了条件注入的有效性,同时对高质量数据进行消融。此外,VMix作为插件可以直接应用于开源模型,提升它们的美学表现。
SD1.5上不同方法的比较
SDXL上不同方法的比较
应用于开源模型的效果
定量指标:VMix模型有着最高的Aes Score,并且可以看到基模的图文匹配能力并没有受到影响,甚至条件解耦后模型相较普通SFT方式更容易在高质量数据集上收敛。推理阶段随着增大,图片美感也会随之提升。
消融实验:文中进一步分析了AesEmb不同维度对生成结果的影响,可以看到不同美学维度都能明显改善图片质量,当一起使用时效果最好;文中还对对LoRA的使用进行了消融,从而验证模型性能的提升主要来自VMix本身。
结论
这项研究提出了VMix,它通过引入美学标签(光影、色彩、构图等)作为额外的条件,并采用交叉注意力混合控制方法来增强模型在各种美学维度上的表现。论文发现,让模型对齐人类期望的最关键因素之一是使用适当的条件控制方法,在解耦的细粒度美学标签下进行训练。受此启发,论文提出了一种有效的条件控制方法,显著提高了模型的生成质量。广泛的实验验证了VMix在文本忠实度和视觉美学方面超越了其他最先进的方法。作为一个即插即用的插件,VMix可以与开源模型无缝集成,提升审美表现,从而进一步推动社区的发展。
参考文献
[1] VMix: Improving Text-to-Image Diffusion Model with Cross-Attention Mixing Control
相关文章:

即插即用,无痛增强模型生成美感!字节跳动提出VMix:细粒度美学控制,光影、色彩全搞定
文章链接:https://arxiv.org/pdf/2412.20800 代码地址:https://github.com/fenfenfenfan/VMix 项目地址:https://vmix-diffusion.github.io/VMix/ 亮点直击 分析并探索现有模型在光影、色彩等细粒度美学维度上生成图像的差异,提出…...

面向对象分析和设计OOA/D,UML,GRASP
目录 什么是分析和设计? 什么是面向对象的分析和设计? 迭代开发 UML 用例图 交互图 基于职责驱动设计 GRASP 常见设计原则 什么是分析和设计? 分析,强调是对问题和需求的调查研究,不是解决方案。例如&#x…...
【每日学点鸿蒙知识】广告ID、NFC手机充值、CSS支持语法、PC与模拟器交互、SO热更新等
1、HamonyOS 样机获取成功返回Oaid为00000000-0000-0000-0000-000000000000? 请求授权时需要触发动态授权弹窗,看一下是不是没有触发授权弹窗。 可以参考以下代码以及文档: // ets import identifier from ohos.identifier.oaid; import hilog from oh…...
30分钟学会HTML
HTML 基本语法 HTML(HyperText Markup Language)是构成网页内容的基础。它使用一系列的标签来描述网页的结构,包括文本、图片、链接等元素。浏览器会解析这些标签并渲染成我们看到的网页。 在线体验一下 CodePen (在线 HTML 编辑器)。 千万不…...

服务器信息整理:用途、操作系统安装日期、设备序列化、IP、MAC地址、BIOS时间、系统
文章目录 引言I BIOS时间Windows查看BIOS版本安装日期linux查看BIOS时间II 操作系统安装日期LinuxWindowsIII MAC 地址IV 设备序列号Linux 查看主板信息知识扩展Linux常用命令引言 信息内容:重点信息:用途、操作系统安装日期、设备序列化、IP、MAC地址、BIOS时间、系统 Linux…...

Golang设计模式目录
go语言实现设计模式 1 文章目录: 1.1 创建型模式 1.Golang设计模式之工厂模式2.Golang设计模式之抽象工厂模式3.Golang设计模式之单例模式4.Golang设计模式之建造者模式5.Golang设计模式之原型模式 1.2 结构型模式 6.Golang设计模式之适配器模式7.Golang设计模式之桥…...
选择IT驻场外包公司,要找有哪些资质的公司
在当今数字化快速发展的时代,IT驻场外包服务成为众多企业优化运营、提升竞争力的关键选择。无论是初创企业寻求技术起步支持,还是大型企业为降低成本、专注核心业务而将部分 IT 职能外包,IT 外包公司都扮演着至关重要的角色。然而,…...
Java List 集合详解:基础用法、常见实现类与高频面试题解析
正文 在 Java 集合框架中,List 是一个非常重要的接口,广泛用于存储有序的元素集合。本文将带你深入了解 List 接口的基本用法、常见实现类及其扩展,同时通过实际代码示例帮助你快速掌握这些知识。 👉点击获取2024Java学习资料 1…...

Arduino UNO 驱动1.8 TFT屏幕显示中文
背景 最近入手了一块1.8寸的tft屏幕,通过学习文档,已经掌握了接线,显示英文、数字、矩形区域、划线、画点等操作, 但是想显示中文的时候操作比较复杂。 问题 1、arduino uno 驱动这款屏幕目前使的是自带的<TFT.h> 库操作…...

Flink operator实现自动扩缩容
官网文档位置: 1.Autoscaler | Apache Flink Kubernetes Operator 2.Configuration | Apache Flink Kubernetes Operator 1.部署K8S集群 可参照我之前的文章k8s集群搭建 2.Helm安装Flink-Operator helm repo add flink-operator-repo https://downloads.apach…...

分布式系统架构6:链路追踪
这是小卷对分布式系统架构学习的第6篇文章,关于链路追踪,之前写过traceId的相关内容:https://juejin.cn/post/7135611432808218661,不过之前写的太浅了,且不成系统,只是简单的理解,今天来捋一下…...

vite-plugin-imagemin安装问题
vite-plugin-imagemin 是一款图片资源压缩插件,能够在打包的时候显著的降低图片资源占用。不过,在安装过程中我们遇到了如下的问题。 对于上面的问题,有以下几种常见的解决方案: 1,使用 yarn 在 package.json 内配置(推荐) 打开 package.json 配置文件,然后添加如下脚本…...

Git revert回滚
回退中间的某次提交(此操作在预生产分支上比较常见),建议此方式使用命令进行操作(做好注释,方便后续上线可以找到这个操作) Git操作: 命令:revert -n 版本号 1:git re…...

永磁同步电机预测模型控制(MPC)
永磁同步电机预测模型控制(MPC) 文章目录 前言1、模型预测控制1.1 连续控制集模型预测控制(CCS-MPC)1.2 有限控制集模型预测控制(FCS-MPC)1.3 模型预测控制的优缺点 2、永磁同步电机模型预测控制2.1 预测模型2.2 价值…...
【JAVA】switch ... case ... 的用法
语法结构: switch(表达式){ case 值1: 表达式和值1匹配时执行的语句 break; case 值2: 表达式和值2匹配时执行的语句 break; …...

基于STM32的热带鱼缸控制系统的设计
文章目录 一、热带鱼缸控制系统1.题目要求2.思路3.电路仿真3.1 未仿真3.2 开始仿真,显示屏显示水温、浑浊度、光照强度等值3.3 当水温低于阈值,开启加热并声光报警3.4 当浑浊度高于阈值,开启自动换水并声光报警3.5 当光照低于阈值,…...

Vue项目整合与优化
前几篇文章,我们讲述了 Vue 项目构建的整体流程,从无到有的实现了单页和多页应用的功能配置,但在实现的过程中不乏一些可以整合的功能点及可行性的优化方案,就像大楼造完需要进行最后的项目验收改进一样,有待我们进一步…...

WinForm开发-自定义组件-1. 工具栏: UcompToolStrip
这里写自定义目录标题 1. 工具栏: UcompToolStrip1.1 展示效果1.2 代码UcompToolStrip.csUcompToolStrip.Designer.cs 1. 工具栏: UcompToolStrip 自定义一些Winform组件 1.1 展示效果 1)使用效果 2)控件事件 1.2 代码 设计 编码 UcompToolStrip.…...

法律专业legal case的留学论文写作技巧分析(1)
对于法律专业的留学生而言,案例的分析是写作的重要方面。无论留学的国家是英、美、澳洲还是加拿大,它们都属于case law 的法律体系。一个非常显著的特点便是通过对案例进行分析和提炼,从中总结提炼出principle和rules。case analysis的留学论…...
2025编程技术前沿:探索最新的开发工具与趋势
随着技术的飞速发展,编程领域每天都在演化,新的技术、框架和工具层出不穷。本文将聚焦2025年最具潜力和吸引力的编程技术与工具,从前沿语言到最受欢迎的开发框架,带您一起探索软件开发领域的最新趋势。 一、编程语言的新生代之星…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...