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

图像定制大一统?字节提出DreamO,支持人物生成、 ID保持、虚拟试穿、风格迁移等多项任务,有效解决多泛化性冲突。

字节提出了一个统一的图像定制框架DreamO,支持人物生成、 ID保持、虚拟试穿、风格迁移等多项任务,不仅在广泛的图像定制场景中取得了高质量的结果,而且在适应多条件场景方面也表现出很强的灵活性。现在已经可以支持消费级 GPU(16GB 或 24GB)上试用了,感兴趣的小伙伴可以试试~

综上所述,本文的贡献如下:

  • 我们提出了 DreamO,一个统一的图像定制框架。它通过在预训练的 DiT 模型上训练少量附加参数来实现各种复杂且多条件的定制任务。

  • 基于扩散模型中的表征对应关系,我们设计了一个特征路由约束,以增强一致性保真度,并实现多条件场景下的有效解耦。

  • 我们引入了一种渐进式训练策略,以促进在多任务和复杂任务设置下的收敛。此外,我们设计了一种占位符策略来建立文本描述和条件图像之间的对应关系。

大量实验表明,我们的方法不仅在广泛的图像定制场景中取得了高质量的结果,而且在适应多条件场景方面也表现出很强的灵活性。

效果展示

IP

此任务与 IP-Adapter 类似,支持多种输入,包括角色、物体和动物。通过利用基于 VAE 的特征编码,DreamO 实现了比以往适配器方法更高的保真度,并在保留角色身份方面具有显著优势。

ID

ID 指面部身份。与同时考虑人脸和衣着特征的 IP 任务不同,ID 任务仅关注面部特征。该任务与 InstantID 和 PuLID 类似。与之前的方法相比,DreamO 实现了更高的面部保真度,但比 SOTA 方法 PuLID 引入了更多的模型污染。

虚拟试穿

此任务支持上衣、下装、眼镜和帽子等输入,并支持多件服装的虚拟试穿。值得注意的是,我们的训练集不包含多件服装或 ID+服装数据,但该模型对这些未见过的组合表现出良好的泛化能力。

风格迁移

此任务与 Style-Adapter 和 InstantStyle 类似。请注意,样式一致性目前与其他任务相比不太稳定,并且在当前版本中,样式无法与其他条件组合使用。

多重条件

可以使用多种条件(ID、IP、试穿)来生成更具创意的图像。得益于论文中提出的特征路由约束,DreamO 有效地缓解了多个实体之间的冲突和纠缠。

相关链接

  • 论文:https://arxiv.org/pdf/2504.16915

  • 代码:https://github.com/bytedance/DreamO

  • 试用:https://huggingface.co/spaces/ByteDance/DreamO

论文介绍

近年来,大量关于图像定制(例如身份、主题、风格、背景等)的研究展现了大规模生成模型中强大的定制能力。然而,大多数方法都是针对特定任务而设计的,这限制了它们在组合不同类型条件时的泛化能力。开发一个统一的图像定制框架仍然是一个悬而未决的挑战。

本文提出了 DreamO,这是一个旨在支持广泛任务并促进多种条件无缝集成的图像定制框架。具体而言,DreamO 利用扩散变换器 (DiT) 框架统一处理不同类型的输入。在训练过程中构建了一个包含各种定制任务的大规模训练数据集,并引入了特征路由约束,以便于从参考图像中精确查询相关信息。此外还设计了一种占位符策略,将特定的占位符与特定位置的条件相关联,从而能够控制生成结果中条件的位置。

此外,我们采用了一种渐进式训练策略,包含三个阶段:初始阶段专注于使用有限数据的简单任务,以建立基线一致性;全面训练阶段,以全面提升定制能力;最终质量校准阶段,以纠正低质量数据引入的质量偏差。大量实验表明,所提出的 DreamO 能够有效地高质量地执行各种图像定制任务,并灵活地集成不同类型的控制条件。

方法概述

DreamO 概述,它可以统一处理常用的一致性感知生成控制。

DreamO 概述,它可以统一处理常用的一致性感知生成控制。

主体驱动图像生成中交叉注意力图的可视化。第一行 显示了未使用路由约束训练的模型的结果,第二行 显示了使用路由约束训练的模型的结果。

占位符效应的可视化。

占位符效应的可视化。

DreamO渐进式训练流程。左栏显示了三个训练阶段。右栏显示了每个阶段训练后的生成能力。

DreamO渐进式训练流程。左栏显示了三个训练阶段。右栏显示了每个阶段训练后的生成能力。

实验结果

安装试用

# clone DreamO repo
git clone https://github.com/bytedance/DreamO.git
cd DreamO
# create conda env
conda create --name dreamo python=3.10
# activate env
conda activate dreamo
# install dependent packages
pip install -r requirements.txt
# 本地 Gradio 演示
python app.py
  • 对于拥有 24GB GPU 的用户,运行python app.py --int8以启用 int8-quantized 模型。

  • 对于拥有 16GB GPU 的用户,请运行python app.py --int8 --offload以启用 CPU 卸载和 int8 量化。请注意,CPU 卸载会显著降低推理速度,因此应仅在必要时启用。

结论

DreamO是一个统一的框架,用于在单个预训练的 DiT 框架内实现跨各种条件类型(例如身份、风格、主题和试穿)的广义图像定制。论文首先构建一个涵盖各种图像定制任务的大规模训练数据集。通过将所有条件类型集成到 DiT 输入序列中并引入特征路由约束,DreamO 确保了高保真一致性,同时有效地分离了异构控制信号。为了应对在复杂数据分布下学习强大的特定任务能力,同时保留基础模型(即 Flux)的生成先验的挑战,作者设计了一种渐进式训练策略。这种方法使模型能够逐步获得多样化的控制能力,同时保持基础模型的图像质量。大量实验表明,DreamO 能够高质量地执行各种图像定制任务。此外,其基于 LoRA 的轻量级设计允许以较低的计算成本实现高效部署。

相关文章:

图像定制大一统?字节提出DreamO,支持人物生成、 ID保持、虚拟试穿、风格迁移等多项任务,有效解决多泛化性冲突。

字节提出了一个统一的图像定制框架DreamO,支持人物生成、 ID保持、虚拟试穿、风格迁移等多项任务,不仅在广泛的图像定制场景中取得了高质量的结果,而且在适应多条件场景方面也表现出很强的灵活性。现在已经可以支持消费级 GPU(16G…...

Nginx 动静分离在 ZKmall 开源商城静态资源管理中的深度优化

在 B2C 电商高并发场景下,静态资源(图片、CSS、JavaScript 等)的高效管理直接影响页面加载速度与用户体验。ZKmall开源商城通过对 Nginx 动静分离技术的深度优化,将静态资源响应速度提升 65%,带宽成本降低 40%&#xf…...

在vs code 中无法运行npm并报无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查

问题: npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查 原因: 可能是环境变量未正确继承或终端配置不一致 解决方法: 1.找到自己的node.js的版本号 2.重新下载node.js 下载 node.js - https://nodejs.p…...

分布式2(限流算法、分布式一致性算法、Zookeeper )

目录 限流算法 固定窗口计数器(Fixed Window Counter) 滑动窗口计数器(Sliding Window Counter) 漏桶算法(Leaky Bucket) 令牌桶算法(Token Bucket) 令牌桶与漏桶的对比 分布式…...

2089. 找出数组排序后的目标下标——O(n)做法!

本题要求在一个已排序的数组 nums 中,找出所有等于目标值 target 的元素下标。若不存在这样的元素,则返回 {-1, -1}。解决该问题有两种主要方法:二分查找法和统计计数法。 二分查找法:首先对数组进行排序,然后通过二分…...

ARM A64 LDR指令

ARM A64 LDR指令 1 LDR (immediate)1.1 Post-index1.2 Pre-index1.3 Unsigned offset 2 LDR (literal)3 LDR (register)4 其他LDR指令变体4.1 LDRB (immediate)4.1.1 Post-index4.1.2 Pre-index4.1.3 Unsigned offset 4.2 LDRB (register)4.3 LDRH (immediate)4.3.1 Post-index…...

给大模型“贴膏药”:LoRA微调原理说明书

一、前言:当AI模型开始“叛逆” 某天,我决定教deepseek说方言。 第一次尝试(传统微调): 我:给deepseek灌了100G东北小品数据集,训练三天三夜。结果:AI确实会喊“老铁666”了…但英…...

Spring-messaging-MessageHandler接口实现类ServiceActivatingHandler

ServiceActivatingHandler实现了MessageHandler接口,所以它是一个MessageHandler,在spring-integration中,它也叫做服务激活器(Service Activitor),因为这个类是依赖spring容器BeanFactory的,所…...

asp.net core api RESTful 风格控制器

在 ASP.NET Core API 中,遵循 RESTful 风格的控制器一般具备以下几个关键特征: ✅ RESTful 风格控制器的命名规范 控制器命名 使用 复数名词,表示资源集合,如 ProductsController、UsersController。 路由风格 路由使用 [Rout…...

【甲方安全建设】Python 项目静态扫描工具 Bandit 安装使用详细教程

文章目录 一、工具简介二、工具特点1.聚焦安全漏洞检测2.灵活的扫描配置3.多场景适配4.轻量且社区活跃三、安装步骤四、使用方法场景1:扫描单个Python文件场景2:递归扫描整个项目目录五、结果解读六、总结一、工具简介 Bandit 是由Python官方推荐的静态代码分析工具(SAST)…...

实习记录小程序|基于SSM+Vue的实习记录小程序设计与实现(源码+数据库+文档)

实习记录小程序 目录 基于SSM的习记录小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、小程序端: 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码…...

老旧设备升级利器:Modbus TCP转 Profinet让能效监控更智能

在工业自动化领域,ModbusTCP和Profinet是两种常见的通讯协议。Profinet是西门子公司推出的基于以太网的实时工业以太网标准,而Modbus则是由施耐德电气提出的全球首个真正开放的、应用于电子控制器上的现场总线协议。这两种协议各有各的优点,但…...

【从基础到模型网络】深度学习-语义分割-ROI

在语义分割中,ROI(Region of Interest,感兴趣区域)是图像中需要重点关注的部分。其作用包括:提高效率,减少高分辨率图像的计算量;增强分割精度,聚焦关键语义信息;减少背景…...

Qt控件:交互控件

交互控件 1. QAction核心功能API 1.2 实例应用情况应用场景 1.3 QAction与QPushButton/QToolButton关系QActionQPushButtonQToolButton三者关系 1. QAction ##1. 1简介与API QAction 是一个核心类,用于表示应用程序中的一个操作(如菜单项、工具栏按钮或…...

前端下载ZIP包方法总结

在前端实现下载 ZIP 包到本地,通常有以下几种方法,具体取决于 ZIP 包的来源(静态文件、后端生成、前端动态生成等): 方法 1:直接下载静态文件(最简单) 如果 ZIP 包是服务器上的静态…...

掌握Docker:从运行到挂载的全面指南

目录 1. Docker的运行2. 查看Docker的启动日志3. 停止容器4. 容器的启动5. 删除容器6. 查看容器的详细信息7.一条命令关闭所有容器拓展容器的复制(修改数据不会同步)容器的挂载(修改数据可以同步)挂载到现有容器 1. Docker的运行 …...

Pandas pyecharts数据可视化基础③

pyecharts基础绘图案例解析 引言思维导图代码案例分析 提前安装依赖同样操作安装完重新启动Jupyter Notebook三维散点图(代码5 - 40) 代码结果代码解析 漏斗图(代码5 - 41)结果代码解析 词云图(代码5 - 42)…...

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示 📢 前言: 作为一名键盘爱好者,近期研究了QMK固件的OLED显示屏配置,发现网上的教程要么太过复杂,要么过于简单无法实际操作。因此决定写下这篇教程,从零基础出发,带大家一步步实现键盘OLED屏幕的配置与个性化显示…...

数据库中关于查询选课问题的解法

前言 今天上午起来复习了老师上课讲的选课问题。我总结了三个解法以及一点注意事项。 选课问题介绍 简单来说就是查询某某同学没有选或者选了什么课。然后查询出该同学的姓名,学号,课程号,课程名之类的。 sql文件我上传了。大家可以尝试练…...

基于Bootstrap 的网页html css 登录页制作成品

目录 前言 一、网页制作概述 二、登录页面 2.1 HTML内容 2.2 CSS样式 三、技术说明书 四、页面效果图 前言 ‌Bootstrap‌是一个用于快速开发Web应用程序和网站的前端框架,由Twitter的设计师Mark Otto和Jacob Thornton合作开发。 它基于HTML、CSS和JavaScri…...

python中http.cookiejar和http.cookie的区别

在Python中,http.cookiejar和http.cookie(通常指http.cookies模块)是两个不同的模块,它们的主要区别如下: 1. 功能定位 http.cookiejar 用于管理HTTP客户端的Cookie,提供自动化的Cookie存储、发送和接收功…...

【NLP 71、常见大模型的模型结构对比】

三到五年的深耕,足够让你成为一个你想成为的人 —— 25.5.8 模型名称位置编码Transformer结构多头机制Feed Forward层设计归一化层设计线性层偏置项激活函数训练数据规模及来源参数量应用场景侧重GPT-5 (OpenAI)RoPE动态相对编码混合专家架构(MoE&#…...

组件导航 (Navigation)+flutter项目搭建-混合开发+分栏

组件导航 (Navigation)flutter项目搭建 接上一章flutter项目的环境变量配置并运行flutter 上一章面熟了搭建flutter并用编辑器运行了ohos项目,这章主要是对项目的工程化改造 先创建flutter项目,再配置Navigation 1.在开发视图的resources/base/profi…...

HGDB企业版迁移到HGDB安全版

文章目录 环境文档用途详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.8,6.0 文档用途 HGDB企业版数据库通过命令备份恢复,迁移到HGDB安全版中。 详细信息 1、环境介绍 1 IP 操作系统 cpux.x.65.10 …...

ProfibusDP主站转modbusTCP网关与ABB电机保护器数据交互

ProfibusDP主站转modbusTCP网关与ABB电机保护器数据交互 在工业自动化领域,Profibus DP(Process Field Bus)和Modbus TCP是两种常见的通讯协议,它们各自在不同的场合发挥着重要作用。然而,随着技术的发展和应用需求的…...

AM32电调学习解读六:main.c文件的函数介绍

最近在学习AM32电调的2.18版本的源码,我用的硬件是AT32F421,整理了部分流程处理,内容的颗粒度是按自己的需要整理的,发出来给有需要的人参考。按自己的理解整理的,技术能力有限,可能理解有误,欢…...

ubuntu24.04上安装NVIDIA driver+CUDA+cuDNN+Anaconda+Pytorch

一、NVIDIA driver 使用Ubuntu系统的:软件和更新——>附加驱动,安装NVIDIA驱动。 二、CUDA 安装命令:sudo apt install nvidia-cuda-toolkit 三、cuDNN cuDNN 9.10.0 Downloads | NVIDIA Developer 四、Anaconda Download Anaconda Di…...

AutoVACUUM (PostgreSQL) 与 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC (Oracle) 对比

AutoVACUUM (PostgreSQL) 与 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC (Oracle) 对比 核心功能对比 特性PostgreSQL AutoVACUUMOracle GATHER_DATABASE_STATS_JOB_PROC主要目的空间回收 统计信息更新仅优化器统计信息收集底层机制MVCC(多版本并发控制)维护CBO(基于成本的…...

Rust中的交叉编译与vendered特性

Rust中的交叉编译与vendered特性 引言 Rust 作为一种现代系统编程语言,以其内存安全和并发性能著称。然而,当涉及到跨平台开发时,尤其是交叉编译,开发者往往会遇到各种依赖问题。vendored 特性作为 Cargo 生态系统中的一个重要工…...

3、函数和约束

# 提供的数据sql CREATE TABLE IF NOT EXISTS student(no BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 学号,name VARCHAR(20) NOT NULL COMMENT 姓名,sex VARCHAR(2) DEFAULT 男 COMMENT 性别, age INT(3) DEFAULT 0 COMMENT 年龄,score DOUBLE(5,2) COMMENT 成绩…...