Zirui Wang 1, 3 · Zhizhou Sha 2, 3 · Zheng Ding 3 · Yilin Wang 2, 3 · Zhuowen Tu 3
1 Princeton University · 2 Tsinghua University · 3 Universität von Kalifornien, San Diego
CVPR 2024
Projekt gemacht, während Zirui Wang, Zhizhou Sha und Yilin Wang bei der UC San Diego praktizierten.
Wenn Sie unsere Methode und/oder das Modell für Ihr Forschungsprojekt verwenden, bieten wir hier in den Updates gerne Cross-Reference. :)
[04/04/2024] Unsere Trainingsmethode ist in COMAT aufgenommen, das erweiterte Attributzuweisungen von Text-zu-Image zeigt.
[26.02.2024] Tokencompose wird an CVPR 2024 angenommen!
Tokencompose [2/20/2024] wird als Basismodell aus dem Realcompo -Papier zur erweiterten Kompositionalität verwendet.
Ein stabiles Diffusionsmodell, das mit Konsistenzbegriffen auf Token-Ebene für eine verbesserte Zusammensetzung und Photorealismus mit mehreren Kategorien abgeschlossen ist.

| Verfahren | Multi-Kategorie-Instanzkomposition | Fotorealismus | Effizienz | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Objektgenauigkeit | Coco | ADE20K | FID (Coco) | FID (Flickr30k) | Latenz | |||||||
| 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 |
| Komponierbar | 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 |
| Layout | 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 |
| Strukturiert | 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 (unsere) | 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 |
| Stabile Diffusionsversion | Kontrollpunkt 1 | Kontrollpunkt 2 |
|---|---|---|
| v1.4 | Tokencompose_sd14_a | Tokencompose_sd14_b |
| v2.1 | Tokencompose_sd21_a | Tokencompose_sd21_b |
Unsere finationstunierten Modelle enthalten keine zusätzlichen Module und können direkt in einer Standarddiffusionsmodellbibliothek (z. B. Diffusoren von Huggingface) verwendet werden, indem die vorab durchgelassene U-NET durch unsere beendetunte U-NET in Plug-and-Play-Weise ersetzt werden. Wir bieten ein Demo -Jupyter -Notizbuch, das unseren Modell -Checkpoint verwendet, um Bilder zu generieren.
Sie können auch den folgenden Code verwenden, um unsere Kontrollpunkte herunterzuladen und Bilder zu generieren:
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" )Weitere Informationen finden Sie in Multigen.
| Verfahren | Coco | 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 |
| Komponierbar | 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 |
| Layout | 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 |
| Strukturiert | 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 |
| Unsere | 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 |
Befolgen Sie die folgenden Anweisungen:
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.txtWir haben das Umgebungs -Setup mithilfe dieser spezifischen Paketversionen verifiziert, aber wir erwarten, dass sie auch für neuere Versionen funktionieren wird!
Wenn Sie Ihre eigenen Daten verwenden möchten, finden Sie Informationen zur Details auf Precess_Data.
Wenn Sie unsere Schulungsdaten als Beispiele oder zu Forschungszwecken verwenden möchten, befolgen Sie bitte die folgenden Anweisungen:
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 Nach diesem Schritt sollten Sie die folgende Struktur im train/data haben:
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
Laden Sie die CoCo -Segmentierungsdaten von Google Drive herunter und stellen Sie sie in train/data .
Nach diesem Schritt sollten Sie die folgende Struktur im train/data haben:
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
coco_gsam_seg.tar
Führen Sie dann den folgenden Befehl aus, um die Segmentierungsdaten zu entpacken:
cd train/data
tar -xvf coco_gsam_seg.tar
rm coco_gsam_seg.tar Nach dem Setup sollten Sie die folgende Struktur im train/data haben:
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
...
...
Wir verwenden Wandb, um einige Kurven und Visualisierungen zu protokollieren. Melden Sie sich bei Wandb an, bevor Sie die Skripte ausführen.
wandb loginVerwenden Sie dann den folgenden Befehl, um Tokencompose auszuführen:
cd train
bash train.sh Die Ergebnisse werden im train/results gespeichert.
Dieses Repository wird unter der Apache 2.0 -Lizenz veröffentlicht.
Unser Code basiert auf Diffusoren, prompt-zu-prompt, visor, geerdetem Segment und Clip. Wir danken all diesen Autoren für ihren gut offenen Code und ihre großartigen Beiträge zur Community.
Wenn Sie unsere Arbeit nützlich finden, sollten Sie sich angeben:
@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 }
}