Zirui Wang 1, 3 · Zhizhou Sha 2, 3 · Zheng Ding 3 · Yilin Wang 2, 3 · Zhuowen Tu 3
1 Universidad de Princeton · 2 Tsinghua University · 3 University of California, San Diego
CVPR 2024
Proyecto hecho mientras Zirui Wang, Zhizhou Sha y Yilin Wang internaron en UC San Diego.
Si utiliza nuestro método y/o modelo para su proyecto de investigación, nos complace proporcionar una referencia cruzada aquí en las actualizaciones. :)
[04/04/2024] Nuestra metodología de capacitación se incorpora a ComaT que muestra asignaciones mejoradas de atributos de texto a imagen.
[26/02/2024] Tokencompose se acepta para CVPR 2024!
[20/02/2024] Tokencompose se usa como modelo base del documento de RealCompo para una mayor composicionalidad.
Un modelo de difusión estable Finetizado con términos de consistencia a nivel de token para una composición de instancia de múltiples categorías mejoradas y fotorrealismo .

| Método | Composición de instancia de multicategoría | Fotorrealismo | Eficiencia | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Precisión de los objetos | PALMA DE COCO | ADE20K | Fid (Coco) | Fid (Flickr30k) | Estado latente | |||||||
| 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 |
| Compuesto | 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 |
| Disposición | 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 |
| Estructurado | 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 |
| Tokencomposa (la nuestra) | 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ón de difusión estable | Punto de control 1 | Punto de control 2 |
|---|---|---|
| V1.4 | Tokencompose_sd14_a | Tokencompose_sd14_b |
| v2.1 | Tokencompose_sd21_a | Tokencompose_sd21_b |
Nuestros modelos Finetuned no contienen ningún módulo adicional y se pueden usar directamente en una biblioteca de modelos de difusión estándar (por ejemplo, difusores de Huggingface) reemplazando la red en U pretenerse con nuestra red U Finetuned de manera plug-and-play. Proporcionamos un cuaderno de demostración de Jupyter que utiliza nuestro punto de control modelo para generar imágenes.
También puede usar el siguiente código para descargar nuestros puntos de control y generar imágenes:
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" )Ver multígeno para más detalles.
| Método | PALMA DE 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 |
| Compuesto | 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 |
| Disposición | 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 |
| Estructurado | 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 |
| Nuestro | 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 |
Para aquellos que desean usar nuestra base de código para entrenar sus propios modelos de difusión con objetivos de nivel token , siga las instrucciones a continuación:
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.txtHemos verificado la configuración del entorno utilizando estas versiones específicas de paquetes, ¡pero esperamos que también funcione para versiones más nuevas!
Si desea usar sus propios datos, consulte Preprocess_Data para más detalles.
Si desea utilizar nuestros datos de capacitación como ejemplos o para fines de investigación, siga las instrucciones a continuación:
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 Después de este paso, debe tener la siguiente estructura en el directorio de train/data :
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
Descargue los datos de segmentación de Coco de Google Drive y colóquelo en el directorio de train/data .
Después de este paso, debe tener la siguiente estructura en el directorio de train/data :
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
coco_gsam_seg.tar
Luego, ejecute el siguiente comando para descifrar los datos de segmentación:
cd train/data
tar -xvf coco_gsam_seg.tar
rm coco_gsam_seg.tar Después de la configuración, debe tener la siguiente estructura en el directorio de 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
...
...
Utilizamos WandB para registrar algunas curvas y visualizaciones. Inicie sesión en Wandb antes de ejecutar los scripts.
wandb loginLuego, para ejecutar TokenCompose, use el siguiente comando:
cd train
bash train.sh Los resultados se guardarán en el directorio de train/results .
Este repositorio se publica bajo la licencia Apache 2.0.
Nuestro código se basa en difusores, un aviso indicador, visor, segmento a tierra y un clip. Agradecemos a todos estos autores por su código de origen bien abierto y sus grandes contribuciones a la comunidad.
Si encuentra útil nuestro trabajo, considere citar:
@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 }
}