设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐

286 阅读5分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎨 「设计师集体破防!这个AI竟能同时生成多个主体,字节新框架颠覆图像生成」
大家好,我是蚝油菜花。你是否经历过这些设计噩梦——

  • 👉 电商海报要放5款产品,生成图总缺胳膊少腿
  • 👉 虚拟试衣间模型穿模,项链和耳环永远不在正确位置
  • 👉 游戏角色设计图里,武器和坐骑的材质永远对不上...

今天要解剖的 UNO ,正在重写多主体生成规则!字节跳动这个AI框架用三大黑科技炸穿行业天花板:

  • 多主体精准控制:多个参考主体同框生成,位置/材质/光影完美对齐
  • 数据自进化系统:模型自己合成训练数据,解决多主体数据荒
  • 任意比例适配:从手机壁纸到巨幅海报,分辨率不再是限制

已有团队用它1小时出完季度产品图集,文末附《多主体生成秘籍》——你的设计流程准备好迎接核爆级升级了吗?

🚀 快速阅读

  1. UNO是字节跳动研发的AI图像生成框架,突破多主体场景下的生成一致性难题。
  2. 核心功能:单主体特征保持、多主体组合生成、虚拟试穿、风格化输出
  3. 技术原理:渐进式跨模态对齐策略、通用旋转位置嵌入技术、模型-数据共同进化范式

UNO 是什么

UNO

UNO基于扩散变换器架构,通过创新的数据合成管道生成高一致性多主体训练数据。其核心突破在于将文本到图像模型的生成能力迭代升级为多图像控制模型,实现从单主体到复杂场景的平滑过渡。

该框架采用两阶段渐进训练策略:第一阶段通过单主体数据微调模型,第二阶段引入多主体数据增强复杂场景处理能力。这种分阶段对齐方式有效解决了传统模型在多主体场景中的属性混淆问题。

UNO 的主要功能

  • 单主体精准控制:根据参考图生成不同场景下的同主体图像,特征保持误差降低67%
  • 多主体自由组合:支持同时输入10个参考主体,生成图像中物体位置精度提升89%
  • 动态分辨率适配:可在512×512至4096×4096范围内任意调整输出尺寸
  • 跨模态风格迁移:将参考主体特征与文本描述风格进行融合生成

UNO 的技术原理

  • 数据自生成管道:利用扩散变换器的上下文生成能力,自动创建多主体配对数据
  • 渐进式对齐机制:分阶段训练策略使模型逐步适应复杂场景
  • 通用旋转位置嵌入:通过位置索引调控多模态交互,解决属性混淆难题
  • 模型-数据共同进化:弱模型生成数据训练强模型,形成正向增强循环

如何运行 UNO

🔧 环境要求与安装

安装依赖项:

## 创建一个Python版本在3.10到3.12之间的虚拟环境,例如
# python -m venv uno_env
# source uno_env/bin/activate
# 然后安装
pip install -r requirements.txt

然后通过以下三种方式之一下载检查点:

  • 直接运行推理脚本,检查点将通过代码中的hf_hub_download函数自动下载到您的$HF_HOME(默认值为~/.cache/huggingface)。
  • 使用huggingface-cli download <repo name>下载black-forest-labs/FLUX.1-devxlabs-ai/xflux_text_encodersopenai/clip-vit-large-patch14bytedance-research/UNO,然后运行推理脚本。您可以只下载所需的检查点以加快设置速度并节省磁盘空间。例如,对于black-forest-labs/FLUX.1-dev使用huggingface-cli download black-forest-labs/FLUX.1-dev flux1-dev.safetensorshuggingface-cli download black-forest-labs/FLUX.1-dev ae.safetensors,忽略black-forest-labs/FLUX.1-dev模型仓库中的文本编码器(它们是为了diffusers调用)。所有检查点将占用37 GB的磁盘空间。
  • 使用huggingface-cli download <repo name> --local-dir <LOCAL_DIR>将2.中提到的所有检查点下载到您想要的目录。然后设置环境变量AEFLUX_DEV(如果您使用fp8模式则为FLUX_DEV_FP8)、T5CLIPLORA到相应的路径。最后,运行推理脚本。
  • 如果您已经有一些检查点,您可以设置环境变量AEFLUX_DEVT5CLIPLORA到相应的路径。最后,运行推理脚本。

🌟 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 "A clock on the beach is under a red sun umbrella" --image_paths "assets/clock.png" --width 704 --height 704
python inference.py --prompt "The figurine is in the crystal ball" --image_paths "assets/figurine.png" "assets/crystal_ball.png" --width 704 --height 704
python inference.py --prompt "The logo is printed on the cup" --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

🚄 训练

accelerate launch train.py

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦