Zirui Wang 1,3 · Zhizhou Sha 2,3 · Zheng ding 3 · Yilin Wang 2,3 · Zhuowen tu 3
1普林斯顿大学· 2 Tsinghua大学·加利福尼亚大学圣地亚哥分校
CVPR 2024
Zirui Wang,Zhizhou Sha和Yilin Wang在圣地亚哥加州大学实习时完成的项目。
如果您为您的研究项目使用我们的方法和/或模型,我们很乐意在此处提供交叉引用。 :)
[04/04/2024]我们的培训方法已纳入昏迷中,该方法显示了增强的文本对图像属性分配。
[02/26/2024] CVPR 2024接受Tokencompose!
[02/20/2024] Tokencompose用作Realmpo纸的基本模型,以增强组成性。
具有令牌级的一致性项的稳定扩散模型,用于增强的多类实例组成和光真相。

| 方法 | 多类别实例组成 | 光真主 | 效率 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 对象准确性 | 可可 | ADE20K | FID(可可) | fid(flickr30k) | 潜伏期 | |||||||
| MG2 | MG3 | MG4 | MG5 | MG2 | MG3 | MG4 | MG5 | |||||
| SD 1.4 | 29.86 | 90.72 1.33 | 50.74 0.89 | 11.68 0.45 | 0.88 0.21 | 89.81 0.40 | 53.96 1.14 | 16.52 1.13 | 1.89 0.34 | 20.88 | 71.46 | 7.54 0.17 |
| 可综合 | 27.83 | 63.33 0.59 | 21.87 1.01 | 3.25 0.45 | 0.23 0.18 | 69.61 0.99 | 29.96 0.84 | 6.89 0.38 | 0.73 0.22 | - | 75.57 | 13.81 0.15 |
| 布局 | 43.59 | 93.22 0.69 | 60.15 1.58 | 19.49 0.88 | 2.27 0.44 | 96.05 0.34 | 67.83 0.90 | 21.93 1.34 | 2.35 0.41 | - | 74.00 | 18.89 0.20 |
| 结构 | 29.64 | 90.40 1.06 | 48.64 1.32 | 10.71 0.92 | 0.68 0.25 | 89.25 0.72 | 53.05 1.20 | 15.76 0.86 | 1.74 0.49 | 21.13 | 71.68 | 7.74 0.17 |
| attn-exct | 45.13 | 93.64 0.76 | 65.10 1.24 | 28.01 0.90 | 6.01 0.61 | 91.74 0.49 | 62.51 0.94 | 26.12 0.78 | 5.89 0.40 | - | 71.68 | 25.43 4.89 |
| tokencocsose(我们的) | 52.15 | 98.08 0.40 | 76.16 1.04 | 28.81 0.95 | 3.28 0.48 | 97.75 0.34 | 76.93 1.09 | 33.92 1.47 | 6.21 0.62 | 20.19 | 71.13 | 7.56 0.14 |
| 稳定扩散版 | 检查点1 | 检查点2 |
|---|---|---|
| v1.4 | tokencompose_sd14_a | tokencompose_sd14_b |
| v2.1 | tokencompose_sd21_a | tokencompose_sd21_b |
我们的填充型号不包含任何额外的模块,可以通过以插件和播放方式将预处理的U-NET替换为预审计的U-NET,直接在标准扩散模型库(例如,Huggingface的扩散器)中使用。我们提供一个演示jupyter笔记本电脑,该笔记本使用我们的模型检查点生成图像。
您还可以使用以下代码下载我们的检查点并生成图像:
import torch
from diffusers import StableDiffusionPipeline
model_id = "mlpc-lab/TokenCompose_SD14_A"
device = "cuda"
pipe = StableDiffusionPipeline . from_pretrained ( model_id , torch_dtype = torch . float32 )
pipe = pipe . to ( device )
prompt = "A cat and a wine glass"
image = pipe ( prompt ). images [ 0 ]
image . save ( "cat_and_wine_glass.png" )有关详细信息,请参见Multigen。
| 方法 | 可可 | ADE20K | ||||||
|---|---|---|---|---|---|---|---|---|
| MG2 | MG3 | MG4 | MG5 | MG2 | MG3 | MG4 | MG5 | |
| SD 1.4 | 90.72 1.33 | 50.74 0.89 | 11.68 0.45 | 0.88 0.21 | 89.81 0.40 | 53.96 1.14 | 16.52 1.13 | 1.89 0.34 |
| 可综合 | 63.33 0.59 | 21.87 1.01 | 3.25 0.45 | 0.23 0.18 | 69.61 0.99 | 29.96 0.84 | 6.89 0.38 | 0.73 0.22 |
| 布局 | 93.22 0.69 | 60.15 1.58 | 19.49 0.88 | 2.27 0.44 | 96.05 0.34 | 67.83 0.90 | 21.93 1.34 | 2.35 0.41 |
| 结构 | 90.40 1.06 | 48.64 1.32 | 10.71 0.92 | 0.68 0.25 | 89.25 0.72 | 53.05 1.20 | 15.76 0.86 | 1.74 0.49 |
| attn-exct | 93.64 0.76 | 65.10 1.24 | 28.01 0.90 | 6.01 0.61 | 91.74 0.49 | 62.51 0.94 | 26.12 0.78 | 5.89 0.40 |
| 我们的 | 98.08 0.40 | 76.16 1.04 | 28.81 0.95 | 3.28 0.48 | 97.75 0.34 | 76.93 1.09 | 33.92 1.47 | 6.21 0.62 |
对于那些想使用我们的代码库来培训您自己的扩散模型的人,请按照以下说明:
conda create -n TokenCompose python=3.8.5
conda activate TokenCompose
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install -r requirements.txt我们已经使用此特定的软件包版本验证了环境设置,但是我们希望它也适用于较新版本!
如果您想使用自己的数据,请参考preprocess_data了解详细信息。
如果您想将我们的培训数据作为示例或研究目的,请按照以下说明:
cd train/data
# download COCO train2017
wget http://images.cocodataset.org/zips/train2017.zip
unzip train2017.zip
rm train2017.zip
bash coco_data_setup.sh在此步骤之后,您应该在train/data目录下具有以下结构:
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
从Google Drive下载可可细分数据,并将其放在train/data目录下。
在此步骤之后,您应该在train/data目录下具有以下结构:
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
coco_gsam_seg.tar
然后,运行以下命令来解压缩分割数据:
cd train/data
tar -xvf coco_gsam_seg.tar
rm coco_gsam_seg.tar设置后,您应该在train/data目录下具有以下结构:
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
coco_gsam_seg/
000000000142/
mask_000000000142_bananas.png
mask_000000000142_bread.png
...
000000000370/
mask_000000000370_bananas.png
mask_000000000370_bread.png
...
...
我们使用WandB记录一些曲线和可视化。在运行脚本之前登录到Wandb。
wandb login然后,要运行tokencompose,请使用以下命令:
cd train
bash train.sh结果将在train/results目录下保存。
该存储库是根据Apache 2.0许可证发布的。
我们的代码建立在扩散器,及时启动,遮阳板,接地段和剪辑的基础上。我们感谢所有这些作者的开放式代码及其对社区的巨大贡献。
如果您发现我们的工作有用,请考虑引用:
@InProceedings { Wang2024TokenCompose ,
author = { Wang, Zirui and Sha, Zhizhou and Ding, Zheng and Wang, Yilin and Tu, Zhuowen } ,
title = { TokenCompose: Text-to-Image Diffusion with Token-level Supervision } ,
booktitle = { Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) } ,
month = { June } ,
year = { 2024 } ,
pages = { 8553-8564 }
}