我们介绍的 UNO 是一个通用框架,可从单主体定制发展到多主体定制。UNO 具有强大的通用能力,能够将不同的任务统一到一个模型中。
摘要
尽管主体驱动生成技术因其广泛的应用而在图像生成领域得到了广泛的探索,但它在数据可扩展性和主体扩展性方面仍面临挑战。就第一个挑战而言,从策划单主体数据集到多主体数据集并对其进行扩展尤为困难。其次,最近的大多数方法都是以单主体生成为中心,因此在处理多主体情况时很难应用。在本研究中,我们提出了一种高度一致的数据合成管道来应对这一挑战。该管道利用扩散变换器内在的上下文生成能力,生成高一致性的多主体配对数据。此外,我们还引入了 UNO,它由渐进式跨模态配准和通用旋转位置嵌入组成。它是由文本到图像模型迭代训练而成的多图像条件主体到图像模型。广泛的实验表明,我们的方法可以实现高度一致性,同时确保单主体和多主体驱动生成的可控性。
它为模型引入了两个关键的增强功能:渐进式跨模态配准和通用旋转位置嵌入(UnoPE)。渐进式跨模态配准分为两个阶段。在第一阶段,我们使用单个受试者在上下文中生成的数据,将预训练的 T2I 模型微调为 S2I 模型。在第二阶段,我们继续使用生成的多主体数据对进行训练。UnoPE 可以有效地使 UNO 具备在扩展视觉主体控制时缓解属性混淆问题的能力。
与最新方法的比较
代码
https://github.com/bytedance/UNO
## create a virtual environment with python >= 3.10 <= 3.12, like
# python -m venv uno_env
# source uno_env/bin/activate
# then install
pip install -r requirements.txt
从下面的例子开始探索,激发你的创造力。✨
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
然后运行以下脚本:
# evaluated on dreambench
## for single-subject
python inference.py --eval_json_path ./datasets/dreambench_singleip.json
## for multi-subject
python inference.py --eval_json_path ./datasets/dreambench_multiip.json
训练
accelerate launch train.py