Zirui Wang 1, 3 · Zhizhou Sha 2, 3 · Zheng Ding 3 · Yilin Wang 2, 3 · Zhuowen tu 3
1 Universidade de Princeton · 2 Tsinghua University · 3 Universidade da Califórnia, San Diego
CVPR 2024
Projeto feito enquanto Zirui Wang, Zhizhou Sha e Yilin Wang estagiaram na UC San Diego.
Se você usar nosso método e/ou modelo para o seu projeto de pesquisa, ficaremos felizes em fornecer referência cruzada aqui nas atualizações. :)
[04/04/2024] Nossa metodologia de treinamento é incorporada ao COMAT, que mostra atribuições aprimoradas de atributos de texto para imagem.
[26/02/2024] O TokEncompose é aceito no CVPR 2024!
[20/02/2024] O TokEncompose é usado como um modelo básico do papel realCompo para composicionalidade aprimorada.
Um modelo de difusão estável fino com termos de consistência no nível do token para composição e fotorismo de instância multi-categorias aprimorados.

| Método | Composição de instância de várias categorias | Fotorrealismo | Eficiência | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Precisão do objeto | COCO | Ade20K | Fid (Coco) | FID (Flickr30k) | Latência | |||||||
| 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 |
| Composível | 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 |
| Estruturado | 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 (nosso) | 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 |
| Versão de difusão estável | Ponto de verificação 1 | Ponto de verificação 2 |
|---|---|---|
| v1.4 | TOKENCOMPOSE_SD14_A | Tokenncompose_sd14_b |
| v2.1 | Tokenncompose_sd21_a | Tokenncompose_sd21_b |
Nossos modelos FinetUned não contêm módulos extras e podem ser usados diretamente em uma biblioteca de modelos de difusão padrão (por exemplo, difusores do Huggingface) substituindo a rede U pré-treinada pela nossa rede U Finetuned de maneira plug-and-play. Fornecemos um notebook Demo Jupyter que usa nosso ponto de verificação do modelo para gerar imagens.
Você também pode usar o código a seguir para baixar nossos pontos de verificação e gerar imagens:
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" )Consulte Multigen para obter detalhes.
| Método | 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 |
| Composível | 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 |
| Estruturado | 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 |
| Nosso | 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 aqueles que desejam usar nossa base de código para treinar seus próprios modelos de difusão com objetivos no nível do token , siga as instruções abaixo:
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.txtVerificamos a configuração do ambiente usando essas versões específicas do pacote, mas esperamos que também funcione para versões mais recentes!
Se você deseja usar seus próprios dados, consulte o pré -Process_data para obter detalhes.
Se você deseja usar nossos dados de treinamento como exemplos ou para fins de pesquisa, siga as instruções abaixo:
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 Após esta etapa, você deve ter a seguinte estrutura sob o diretório train/data :
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
Faça o download dos dados de segmentação do Coco do Google Drive e coloque -os no diretório train/data .
Após esta etapa, você deve ter a seguinte estrutura sob o diretório train/data :
train/data/
coco_gsam_img/
train/
000000000142.jpg
000000000370.jpg
...
coco_gsam_seg.tar
Em seguida, execute o seguinte comando para descompactar os dados de segmentação:
cd train/data
tar -xvf coco_gsam_seg.tar
rm coco_gsam_seg.tar Após a configuração, você deve ter a seguinte estrutura sob o diretório 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
...
...
Usamos o wandb para registrar algumas curvas e visualizações. Faça login no wandb antes de executar os scripts.
wandb loginEntão, para executar o TokEncompose, use o seguinte comando:
cd train
bash train.sh Os resultados serão salvos no diretório train/results .
Este repositório é liberado sob a licença Apache 2.0.
Nosso código é construído sobre difusores, rápido para promover, viseira, segmento fundamentado e clipe. Agradecemos a todos esses autores por seu código de código bem aberto e suas grandes contribuições para a comunidade.
Se você achar útil nosso trabalho, 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 }
}