UNO
UNO 是由字节跳动智能创作团队推出的通用图像定制方法,专为单主体及多主体条件生成设计。它主要解决了传统 AI 绘图在同时处理多个特定对象时,难以保持角色特征一致性或无法灵活组合不同主体的痛点。无论是想将特定人物放入新场景,还是让多个不同角色在同一画面中互动,UNO 都能实现高度可控且自然的生成效果。
该工具适合研究人员探索少样本到多样本生成的泛化机制,也适合开发者集成高精度定制功能,同时设计师和普通用户也能通过其提供的 Demo 轻松体验“上下文生成”带来的创意自由。UNO 的核心技术亮点在于“由少到多”的泛化策略,利用上下文学习(In-Context Generation)解锁更强的控制力,无需针对每个新主体重新训练模型。此外,项目已开源训练代码、发布包含百万级配对图像的 UNO-1M 数据集,并支持 fp8 模式以降低显存需求,使消费级显卡用户也能流畅运行。作为 ICCV 2025 收录成果,UNO 为高质量、多主体的个性化图像生成提供了高效通用的解决方案。
使用场景
某电商设计团队需要为即将到来的促销活动,快速生成包含品牌吉祥物(单一主体)与多位不同模特(多主体)共同出镜的高质量宣传海报。
没有 UNO 时
- 训练成本高昂:每新增一个吉祥物或模特角色,都需要收集大量图片并重新进行微调训练,耗时数小时甚至数天。
- 多主体控制困难:现有工具难以在同一张图中同时保持两个以上主体的身份特征,容易出现“脸盲”或特征混淆。
- 场景适应性差:一旦更换背景风格或构图,主体的一致性大幅下降,往往需要反复重绘才能勉强可用。
- 显存门槛高:运行复杂的定制化模型通常需要高端专业显卡,普通设计师的消费级电脑无法流畅运行。
使用 UNO 后
- 免训练即时生成:利用上下文生成技术,仅需提供几张参考图即可直接生成新角色,无需任何额外的模型微调过程。
- 精准的多主体融合:UNO 能完美处理单主体及多主体条件控制,确保吉祥物与多位模特在同框时各自特征清晰、互不干扰。
- 极强的泛化能力:无论是赛博朋克风还是自然实景,UNO 都能将指定主体无缝融入任意新场景,且保持高度一致性。
- 硬件友好:支持 fp8 低显存模式,峰值显存占用仅约 16GB,让普通消费级显卡也能高效运行高质量定制生成。
UNO 通过“少样本到强泛化”的技术突破,将定制化图像生成的门槛从“专业训练”降低为“即时推理”,极大提升了创意落地的效率。
运行环境要求
- Linux
- macOS
- Windows
- 必需
- 支持 NVIDIA GPU (提及 RTX 3090, RTX 50 系列需自行安装对应 Torch)、AMD GPU 或 macOS MPS
- 标准模式显存需求较高,开启 fp8 和 offload 模式后峰值显存约 16GB
未说明

快速开始
从少到多的泛化:通过上下文生成解锁更强的可控性
吴绍进, 黄梦琪*, 吴文旭, 程宇峰, 丁飞+, 何倩
字节跳动智能创作团队
🔥 新闻
- 2025.09.12 🔥 UMO 来了!它能够自由地将一对一的身份与任何场景中的任意主体相结合,输出具有高度主体和身份一致性的结果。你现在可以在这里体验更强大的 UNO 或 OmniGen2 UMO!你也可以访问我们的 项目页面 获取更多示例。🔥
- 2025.08.29 🔥 我们很高兴地分享我们的新开源项目 USO,它可以在任何场景中自由组合任意主体与任意风格,同时确保照片级逼真的效果。你还可以访问我们的 项目页面 或尝试 在线演示 以获取更多示例。🔥
- 2025.08.18 ✨ 我们开源了 UNO-1M 数据集,这是一个大规模高质量的数据集(约100万对图像)。我们希望它能进一步推动相关研究。
- 2025.06.26 🎉 恭喜!UNO 已被 ICCV 2025 接受!
- 2025.04.16 🔥 我们的配套项目 RealCustom 已发布。
- 2025.04.10 🔥 更新 fp8 模式作为主要的低显存使用支持。献给消费级 GPU 用户。目前峰值显存占用约为 16GB。我们可能会在后续尝试进一步的推理优化。
- 2025.04.03 🔥 UNO 的 demo 已发布。
- 2025.04.03 🔥 UNO 的 训练代码、推理代码 和 模型 已发布。
- 2025.04.02 🔥 UNO 的 项目页面 已创建。
- 2025.04.02 🔥 UNO 的 arXiv 论文 已发布。
📖 引言
在本研究中,我们提出了一种高度一致的数据合成流水线来应对这一挑战。该流水线充分利用扩散 Transformer 的内在上下文生成能力,生成高一致性多主体配对数据。此外,我们还推出了 UNO,它由渐进式跨模态对齐和通用旋转位置编码组成。UNO 是一种基于文本到图像模型迭代训练而成的多图像条件下的主体到图像模型。大量实验表明,我们的方法能够在单主体和多主体驱动的生成中实现高度一致性,同时保证可控性。
⚡️ 快速入门
🔧 要求与安装
安装依赖项
# pip install -r requirements.txt # 旧版安装命令
## 创建一个 Python >= 3.10 <= 3.12 的虚拟环境,例如:
# python -m venv uno_env
# source uno_env/bin/activate
# 或者
# conda create -n uno_env python=3.10 -y
# conda activate uno_env
# 然后根据需要安装依赖项
# !!! 如果你使用的是 AMD GPU/NV RTX 50 系列/macos MPS,你需要先自行安装正确的 PyTorch 版本
# !!! 然后运行安装命令
pip install -e . # 仅用于运行演示或推理的用户
pip install -e .[train] # 用于同时训练模型的用户
然后可以通过以下三种方式之一下载检查点:
- 直接运行推理脚本,代码中的
hf_hub_download函数会自动将检查点下载到你的$HF_HOME目录(默认值为~/.cache/huggingface)。 - 使用
huggingface-cli download <repo name>下载black-forest-labs/FLUX.1-dev、xlabs-ai/xflux_text_encoders、openai/clip-vit-large-patch14、bytedance-research/UNO,然后运行推理脚本。你可以只下载所需的检查点,以加快设置并节省磁盘空间。例如,对于black-forest-labs/FLUX.1-dev,可以使用huggingface-cli download black-forest-labs/FLUX.1-dev flux1-dev.safetensors和huggingface-cli download black-forest-labs/FLUX.1-dev ae.safetensors,而忽略black-forest-labes/FLUX.1-dev模型仓库中的文本编码器(它们是为diffusers调用准备的)。所有检查点总共需要 37 GB 的磁盘空间。 - 使用
huggingface-cli download <repo name> --local-dir <LOCAL_DIR>将第 2 种方法中提到的所有检查点下载到你指定的目录。然后设置环境变量AE、FLUX_DEV(或如果你使用 fp8 模式则设置FLUX_DEV_FP8)、T5、CLIP、LORA,指向相应的路径。最后运行推理脚本。 - 如果你已经拥有部分检查点,可以直接设置环境变量
AE、FLUX_DEV、T5、CLIP、LORA,指向对应的路径。最后运行推理脚本。
🌟 Gradio 演示
python app.py
为了降低显存占用,请传递 --offload 和 --name flux-dev-fp8 参数。峰值内存占用约为 16GB。仅供参考,在 RTX 3090 显卡上,使用 fp8 和 offload 模式时,端到端推理时间为 40 秒到 1 分钟。
python app.py --offload --name flux-dev-fp8
✍️ 推理
从下面的示例开始,探索并激发你的创造力。✨
python inference.py --prompt "海滩上的钟被红色太阳伞遮着" --image_paths "assets/clock.png" --width 704 --height 704
python inference.py --prompt "小雕像在水晶球里" --image_paths "assets/figurine.png" "assets/crystal_ball.png" --width 704 --height 704
python inference.py --prompt "杯子上印着标志" --image_paths "assets/cat_cafe.png" "assets/cup.png" --width 704 --height 704
可选准备工作:如果你想第一次在 dreambench 上测试推理,需要克隆子模块 dreambench 来下载数据集。
git submodule update --init
然后运行以下脚本:
# 在 dreambench 上进行推理
## 单主体
python inference.py --eval_json_path ./datasets/dreambench_singleip.json
## 多主体
python inference.py --eval_json_path ./datasets/dreambench_multiip.json
🔍 评估
# 在 dreambench 上评估
## 单主体
python eval/evaluate_clip_dino_score_single_subject.py --result_root <your_image_result_save_path> -save_dir <the_evaluation_result_save_path>
## 多主体
python eval/evaluate_clip_dino_score_multi_subject.py --result_root <your_image_result_save_path> -save_dir <the_evaluation_result_save_path>
🚄 训练
如果你想在 UNO-1M 数据集上进行训练,需要从 HuggingFace 下载该数据集,解压后放入 ./datasets/UNO-1M 目录。目录结构如下:
├── datasets
│ └── UNO-1M
│ ├── images
│ │ ├── split1
│ │ │ ├── object365_w1024_h1536_split_Bread_0_0_1_725x1024.png
│ │ │ ├── object365_w1024_h1536_split_Bread_0_0_2_811x1024.png
│ │ │ └── ...
│ │ └── ...
│ └── uno_1m_total_labels.json
然后运行训练脚本:
# 过滤和格式化数据集
python uno/utils/filter_uno_1m_dataset.py ./datasets/UNO-1M/uno_1m_total_labels.json ./datasets/UNO-1M/uno_1m_total_labels_convert.json 4
# 训练
accelerate launch train.py --train_data_json ./datasets/UNO-1M/uno_1m_total_labels_convert.json
📌 提示与注意事项
我们将在一个统一的模型中集成单主体和多主体生成。对于单主体场景,默认将参考图像的最长边设置为 512;而对于多主体场景,则设置为 320。得益于在多尺度数据集上的训练,UNO 在各种宽高比下都表现出极高的灵活性。尽管是在 512 桶内训练的,它仍能处理更高的分辨率,包括 512、568 和 704 等。
UNO 在主体驱动的生成方面表现出色,但由于数据集的限制,在泛化能力上仍有提升空间。我们正在积极开发增强版模型,请持续关注更新。您的反馈对我们非常重要,欢迎随时提出建议。
🎨 应用场景
📄 免责声明
我们开源此项目是为了学术研究。本项目中使用的绝大多数图像要么是自动生成的,要么已获得授权。如果您有任何疑虑,请联系我们,我们将立即移除任何不当内容。我们的代码采用 Apache 2.0 许可证发布。任何使用的基础模型必须遵守其原始许可条款。
本研究旨在推动生成式 AI 领域的发展。用户可以自由使用此工具生成图像,但需遵守当地法律并负责任地使用。开发者对用户滥用该工具不承担任何责任。
🚀 更新
为了促进研究和开源社区的发展,我们计划开源整个项目,包括训练、推理、权重等。感谢您的耐心与支持!🌟
- 发布 GitHub 仓库。
- 发布推理代码。
- 发布训练代码。
- 发布模型检查点。
- 发布 arXiv 论文。
- 发布 HuggingFace Space 演示。
- 发布上下文数据生成管道(说明见
./template)。 - 发布数据集(UNO-1M)。
相关资源
ComfyUI
- https://github.com/jax-explorer/ComfyUI-UNO 由 jax-explorer 实现的 UNO ComfyUI 节点。
- https://github.com/HM-RunningHub/ComfyUI_RH_UNO 由 HM-RunningHub 实现的 UNO ComfyUI 节点。
- https://github.com/ShmuelRonen/ComfyUI-UNO-Wrapper 由 ShmuelRonen 实现的 UNO ComfyUI 节点。
- https://github.com/Yuan-ManX/ComfyUI-UNO 由 Yuan-ManX 实现的 UNO ComfyUI 节点。
- https://github.com/QijiTec/ComfyUI-RED-UNO 由 QijiTec 实现的 UNO ComfyUI 节点。
我们感谢热情的社区贡献者,因为收到了许多关于 ComfyUI 的请求,但我们没有足够的时间来亲自完成这么多适配工作。如果您想在 ComfyUI 中尝试我们的工作,可以试试上述仓库。请记住,这些实现略有不同,您可能需要一些试错才能找到最适合您的仓库。
引用
如果 UNO 对您有所帮助,请为本仓库点亮星标。
如果您认为本项目对您的研究有帮助,请考虑引用我们的论文:
@article{wu2025less,
title={Less-to-More Generalization: Unlocking More Controllability by In-Context Generation},
author={Wu, Shaojin and Huang, Mengqi and Wu, Wenxu and Cheng, Yufeng and Ding, Fei and He, Qian},
journal={arXiv preprint arXiv:2504.02160},
year={2025}
}
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备