UNO:字节跳动开发的一个多主体条件图像生成模型
UNO是什么?
UNO是由字节跳动研究团队开发的多主体条件图像生成模型,通过扩散变换器的上下文生成能力,生成高一致性的多主体配对数据。
UNO核心特点
多图像条件生成:支持单主体和多主体驱动的图像生成,能够根据一张或多张参考图像生成新的图像。
渐进式跨模态对齐:通过逐步对齐不同模态(如文本和图像)来提高生成一致性,分为两个阶段。第一阶段使用单主体上下文生成数据来微调预训练的文本到图像模型,使其成为一个主体到图像模型;第二阶段继续在生成的多主体数据对上进行训练。
通用旋转位置嵌入:支持多种分辨率和长宽比的图像生成,能够有效缓解在扩展视觉主体控制时出现的属性混淆问题。
UNO关键机制:
渐进式跨模态对齐(Progressive Cross-Modal Alignment):分为两个阶段。第一阶段使用单主体上下文生成的数据微调预训练的文本到图像模型,使其成为一个主体到图像模型;第二阶段继续在生成的多主体数据对上进行训练。
通用旋转位置嵌入(Universal Rotary Position Embedding,UnoPE):能够有效缓解在扩展视觉主体控制时出现的属性混淆问题,支持多种分辨率和长宽比的图像生成。
UNO工作原理
UNO利用扩散变换器的上下文生成能力,生成高一致性的多主体配对数据。它从一个文本到图像模型迭代训练而来,通过其独特的渐进式跨模态对齐和通用旋转位置嵌入等机制,实现了在单主体和多主体驱动生成中既能保持高一致性又能确保可控性。
UNO应用场景
单主体生成:根据一张参考图像生成图像,例如可以根据一张时钟的图片生成一个时钟在海滩上的图像。
多主体生成:根据多张参考图像生成图像,比如将一个玩偶的图片和水晶球的图片作为参考,生成玩偶在水晶球中的图像。
上下文生成:通过上下文提示生成高一致性的图像,比如给出“一个带有红色太阳伞的海滩上的时钟”这样的提示,结合时钟的参考图像,生成符合描述的图像。
UNO使用方法
环境配置:
创建虚拟环境并安装依赖:
python -m venv uno_env source uno_env/bin/activate pip install -r requirements.txt
下载模型权重:自动下载(运行推理脚本时代码自动下载),或手动使用huggingface-cli下载权重到指定目录。
推理示例:运行以下命令生成图像:
python inference.py --prompt "A clock on the beach is under a red sun umbrella" --image_paths "assets/clock.png" --width 704 --height 704
训练:运行训练脚本:
accelerate launch train.py
相关链接
项目主页:https://bytedance.github.io/UNO
GitHub仓库:https://github.com/bytedance/UNO
arXiv论文:https://arxiv.org/abs/2504.02160
演示:https://huggingface.co/spaces/bytedance-research/UNO-FLUX