Zirui Wang 1、3・Zhizhou Sha 2、3・Zheng Ding 3・Yilin Wang 2、3・Zhuowen Tu 3
1プリンストン大学・2 Tsinghua University・3カリフォルニア大学サンディエゴ校
CVPR 2024
Zirui Wang、Zhizhou Sha、Yilin WangがUCサンディエゴでインターンインターンをしている間にプロジェクトが行われました。
研究プロジェクトに当社の方法やモデルを使用する場合、アップデートでこの相互参照を提供して喜んでいます。 :)
[04/04/2024]当社のトレーニング方法は、テキストからイメージへの属性の割り当てを拡張することを示すCOMATに組み込まれています。
[02/26/2024] TokencomposeはCVPR 2024に受け入れられています!
[02/20/2024] Tokencomposeは、組成を強化するためにRealCompoペーパーの基本モデルとして使用されます。
強化されたマルチカテゴリインスタンスの構成と光リアリズムのためのトークンレベルの一貫性項で微調整された安定した拡散モデル。

| 方法 | マルチカテゴリインスタンス構成 | フォトリアリズム | 効率 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| オブジェクトの精度 | ココ | ADE20K | fid(coco) | 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 |
| tokencompose(私たちのもの) | 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 |
Finetunedモデルには追加のモジュールが含まれておらず、標準の拡散モデルライブラリ(Huggingfaceのディフューザーなど)で直接使用できます。これは、プラグアンドプレイの方法で先立ったU-NetをFinetuned U-Netに置き換えることで使用できます。モデルチェックポイントを使用して画像を生成するデモ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ドライブからココセグメンテーションデータをダウンロードし、 train/data Directoryの下に置きます。
このステップの後、 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 }
}