Zirui wang 1, 3 · zhizhou sha 2, 3 · zheng ding 3 · yilin wang 2, 3 · zhuowen tu 3
1 Universitas Princeton · 2 Universitas Tsinghua · 3 Universitas California, San Diego
CVPR 2024
Proyek dilakukan sementara Zirui Wang, Zhizhou Sha dan Yilin Wang diinternir di UC San Diego.
Jika Anda menggunakan metode dan/atau model kami untuk proyek penelitian Anda, kami dengan senang hati memberikan referensi silang di sini dalam pembaruan. :)
[04/04/2024] Metodologi pelatihan kami dimasukkan ke dalam COMAT yang menunjukkan penugasan atribut teks-ke-gambar yang ditingkatkan.
[02/26/2024] Tokencompose diterima untuk CVPR 2024!
[02/20/2024] Tokencompose digunakan sebagai model dasar dari kertas realcompo untuk komposisi yang ditingkatkan.
Model difusi yang stabil Finetuned dengan istilah konsistensi tingkat token untuk meningkatkan komposisi instance multi-kategori dan fotorealisme .

| Metode | Komposisi instance multi-kategori | Fotorealisme | Efisiensi | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Akurasi objek | KELAPA | Ade20k | Fid (Coco) | FID (flickr30k) | Latensi | |||||||
| 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 |
| Dapat dikomposisi | 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 |
| Tata letak | 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 |
| Tersusun | 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 |
| Tokencompose (milik kami) | 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 |
| Versi difusi yang stabil | Pos Pemeriksaan 1 | Pos Pemeriksaan 2 |
|---|---|---|
| v1.4 | Tokencompose_sd14_a | Tokencompose_sd14_b |
| v2.1 | Tokencompose_sd21_a | Tokencompose_sd21_b |
Model finetuned kami tidak mengandung modul tambahan apa pun dan dapat langsung digunakan dalam pustaka model difusi standar (misalnya, diffuser Huggingface) dengan mengganti U-Net pretrain dengan U-Net Finetuned kami dengan cara plug-and-play. Kami menyediakan notebook demo Jupyter yang menggunakan pos pemeriksaan model kami untuk menghasilkan gambar.
Anda juga dapat menggunakan kode berikut untuk mengunduh pos pemeriksaan kami dan menghasilkan gambar:
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" )Lihat Multigen untuk detailnya.
| Metode | KELAPA | 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 |
| Dapat dikomposisi | 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 |
| Tata letak | 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 |
| Tersusun | 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 |
| Milik kita | 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 |
Bagi mereka yang ingin menggunakan basis kode kami untuk melatih model difusi Anda sendiri dengan tujuan tingkat token , ikuti instruksi di bawah ini:
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.txtKami telah memverifikasi pengaturan lingkungan menggunakan versi paket khusus ini, tetapi kami berharap itu juga akan berfungsi untuk versi yang lebih baru juga!
Jika Anda ingin menggunakan data Anda sendiri, silakan merujuk ke preprocess_data untuk detailnya.
Jika Anda ingin menggunakan data pelatihan kami sebagai contoh atau untuk tujuan penelitian, silakan ikuti instruksi di bawah ini:
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 Setelah langkah ini, Anda harus memiliki struktur berikut di bawah direktori train/data :
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
Unduh data segmentasi Coco dari Google Drive dan letakkan di bawah direktori train/data .
Setelah langkah ini, Anda harus memiliki struktur berikut di bawah direktori train/data :
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
coco_gsam_seg.tar
Kemudian, jalankan perintah berikut untuk membuka ritsleting data segmentasi:
cd train/data
tar -xvf coco_gsam_seg.tar
rm coco_gsam_seg.tar Setelah pengaturan, Anda harus memiliki struktur berikut di bawah direktori 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
...
...
Kami menggunakan Wandb untuk mencatat beberapa kurva dan visualisasi. Masuk ke Wandb sebelum menjalankan skrip.
wandb loginKemudian, untuk menjalankan Tokencompose, gunakan perintah berikut:
cd train
bash train.sh Hasilnya akan disimpan di bawah direktori train/results .
Repositori ini dirilis di bawah lisensi Apache 2.0.
Kode kami dibangun di atas difuser, prompt-to-prompt, visor, ground-secegment-apa pun, dan klip. Kami berterima kasih kepada semua penulis ini atas kode bersumber terbuka mereka dan kontribusi besar mereka kepada masyarakat.
Jika Anda menganggap pekerjaan kami bermanfaat, harap pertimbangkan mengutip:
@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 }
}