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 }
}