Project Icon

ladi-vton

先进的虚拟试衣技术融合潜在扩散与文本反转

LaDI-VTON是一种结合潜在扩散模型和文本反转技术的虚拟试衣系统。它通过可跳跃连接的自编码器增强图像生成,并利用文本反转将服装特征映射到CLIP词嵌入空间,有效保留服装细节。在Dress Code和VITON-HD数据集上的测试显示,LaDI-VTON的性能显著超越了现有方法,为虚拟试衣技术带来突破。

LaDI-VTON (ACM多媒体2023)

基于潜在扩散文本反转增强的虚拟试衣

Davide Morelli*, Alberto Baldrati*, Giuseppe Cartella, Marcella Cornia, Marco Bertini, Rita Cucchiara

* 贡献相同。

arXiv GitHub Stars

🔥🔥 [2023/05/09] 训练代码发布

这是论文"LaDI-VTON: 基于潜在扩散文本反转增强的虚拟试衣"的官方代码仓库

概述

摘要:
电子商务和元宇宙领域正在快速发展,不断寻求创新方法来提升消费者体验。同时,扩散模型的最新进展使生成网络能够创建极为逼真的图像。在这种背景下,基于图像的虚拟试衣(即生成目标模特穿着给定商店服装的新图像)尚未充分利用这些强大生成解决方案的潜力。本文提出了LaDI-VTON,这是第一个用于虚拟试衣任务的基于潜在扩散文本反转增强的模型。所提出的架构依赖于一个潜在扩散模型,并扩展了一个新的额外自动编码器模块,该模块利用可学习的跳跃连接来增强生成过程,同时保留模特的特征。为了有效保持商店服装的纹理和细节,我们提出了一个文本反转组件,可以将服装的视觉特征映射到CLIP词元嵌入空间,从而生成一组能够调节生成过程的伪词词元嵌入。在Dress Code和VITON-HD数据集上的实验结果表明,我们的方法在很大程度上优于竞争对手,为该任务取得了重要的里程碑

引用

如果您使用了我们的工作,请引用我们的论文:

@inproceedings{morelli2023ladi,
  title={{LaDI-VTON: Latent Diffusion Textual-Inversion Enhanced Virtual Try-On}},
  author={Morelli, Davide and Baldrati, Alberto and Cartella, Giuseppe and Cornia, Marcella and Bertini, Marco and Cucchiara, Rita},
  booktitle={Proceedings of the ACM International Conference on Multimedia},
  year={2023}
}

入门指南

我们建议使用Anaconda包管理器来避免依赖/可重复性问题。 对于Linux系统,您可以在这里找到conda安装指南。

安装

  1. 克隆仓库
git clone https://github.com/miccunifi/ladi-vton
  1. 安装Python依赖
conda env create -n ladi-vton -f environment.yml
conda activate ladi-vton

或者,您可以创建一个新的conda环境并手动安装所需的包:

conda create -n ladi-vton -y python=3.10
conda activate ladi-vton
pip install torch==2.0.1 torchvision==0.15.2 opencv-python==4.7.0.72 diffusers==0.14.0 transformers==4.27.3 accelerate==0.18.0 clean-fid==0.1.35 torchmetrics[image]==0.11.4 wandb==0.14.0 matplotlib==3.7.1 tqdm xformers

数据准备

DressCode

  1. 下载DressCode数据集
  2. 为了提高我们的变形模块的性能,我们发现使用白色背景的商店图像可以获得更好的结果。为了简化这个过程,我们现在提供预先提取的掩码,可用于从图像中移除背景。您可以从以下链接下载掩码:这里。下载后,请解压掩码文件并将它们放在数据集文件夹中,与相应的图像放在一起。

数据集下载完成后,文件夹结构应如下所示:

├── DressCode
|   ├── test_pairs_paired.txt
|   ├── test_pairs_unpaired.txt
|   ├── train_pairs.txt
│   ├── [dresses | lower_body | upper_body]
|   |   ├── test_pairs_paired.txt
|   |   ├── test_pairs_unpaired.txt
|   |   ├── train_pairs.txt
│   │   ├── images
│   │   │   ├── [013563_0.jpg | 013563_1.jpg | 013564_0.jpg | 013564_1.jpg | ...]
│   │   ├── masks
│   │   │   ├── [013563_1.png| 013564_1.png | ...]
│   │   ├── keypoints
│   │   │   ├── [013563_2.json | 013564_2.json | ...]
│   │   ├── label_maps
│   │   │   ├── [013563_4.png | 013564_4.png | ...]
│   │   ├── skeletons
│   │   │   ├── [013563_5.jpg | 013564_5.jpg | ...]
│   │   ├── dense
│   │   │   ├── [013563_5.png | 013563_5_uv.npz | 013564_5.png | 013564_5_uv.npz | ...]

VITON-HD

  1. 下载VITON-HD数据集

下载数据集后,文件夹结构应如下所示:

├── VITON-HD
|   ├── test_pairs.txt
|   ├── train_pairs.txt
│   ├── [train | test]
|   |   ├── image
│   │   │   ├── [000006_00.jpg | 000008_00.jpg | ...]
│   │   ├── cloth
│   │   │   ├── [000006_00.jpg | 000008_00.jpg | ...]
│   │   ├── cloth-mask
│   │   │   ├── [000006_00.jpg | 000008_00.jpg | ...]
│   │   ├── image-parse-v3
│   │   │   ├── [000006_00.png | 000008_00.png | ...]
│   │   ├── openpose_img
│   │   │   ├── [000006_00_rendered.png | 000008_00_rendered.png | ...]
│   │   ├── openpose_json
│   │   │   ├── [000006_00_keypoints.json | 000008_00_keypoints.json | ...]

使用预训练模型进行推理

要在Dress Code或VITON-HD数据集上运行推理,请运行以下命令:

python src/inference.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --output_dir <路径> --test_order [paired | unpaired] --category [all | lower_body | upper_body | dresses ] --mixed_precision [no | fp16 | bf16] --enable_xformers_memory_efficient_attention --use_png --compute_metrics
    --dataset <字符串>               要使用的数据集,选项:['dresscode', 'vitonhd']
    --dresscode_dataroot <字符串>    dresscode数据集的数据根目录(当dataset=dresscode时需要)
    --vitonhd_dataroot <字符串>      vitonhd数据集的数据根目录(当dataset=vitonhd时需要)
    --test_order <字符串>            测试设置,选项:['paired', 'unpaired']
    --category <字符串>              要测试的类别,选项:['all', 'lower_body', 'upper_body', 'dresses'](默认为all)
    --output_dir <字符串>            输出目录
    --batch_size <整数>              批量大小(默认为8)
    --mixed_precision <字符串>       混合精度(no, fp16, bf16)(默认为no)
    --enable_xformers_memory_efficient_attention <store_true>
                                     启用xformers中的内存高效注意力(默认为False)
    --allow_tf32 <store_true>        允许在Ampere GPU上使用TF32(默认为False)
    --num_workers <整数>             工作进程数(默认为8)
    --use_png <store_true>           使用png而不是jpg(默认为False)
    --compute_metrics                在推理结束时计算指标(默认为False)

由于我们通过torch.hub发布预训练模型,运行推理脚本时会自动下载模型。

指标计算

运行推理脚本并提取图像后,可以通过运行以下命令来计算指标:

python src/utils/val_metrics.py --gen_folder <路径> --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --test_order [paired | unpaired] --category [all | lower_body | upper_body | dresses ]
    --gen_folder <字符串>            生成图像文件夹的路径。
    --dataset <字符串>               要使用的数据集,选项:['dresscode', 'vitonhd']
    --dresscode_dataroot <字符串>    dresscode数据集的数据根目录(当dataset=dresscode时需要)
    --vitonhd_dataroot <字符串>      vitonhd数据集的数据根目录(当dataset=vitonhd时需要)
    --test_order <字符串>            测试设置,选项:['paired', 'unpaired']
    --category <字符串>              要测试的类别,选项:['all', 'lower_body', 'upper_body', 'dresses'](默认为all)
    --batch_size                     批量大小(默认为32)
    --workers                        工作进程数(默认为8)

训练

在本节中,您将找到如何从头开始训练我们模型所有组件的说明。

1. 训练变形模块

首先,我们需要训练变形模块。要做到这一点,请运行以下命令:

python src/train_tps.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --checkpoints_dir <路径> --exp_name <字符串>
    --dataset <字符串>              使用的数据集,选项:['dresscode', 'vitonhd']
    --dresscode_dataroot <字符串>   dresscode数据集的数据根目录(当dataset=dresscode时必需)
    --vitonhd_dataroot <字符串>     vitonhd数据集的数据根目录(当dataset=vitonhd时必需)
    --checkpoints_dir <字符串>      检查点目录
    --exp_name <字符串>             实验名称
    --batch_size <整数>             批量大小(默认为16)
    --workers <整数>                工作进程数(默认为10)
    --height <整数>                 输入图像的高度(默认为512)
    --width <整数>                  输入图像的宽度(默认为384)
    --lr <浮点数>                   学习率(默认为1e-4)
    --const_weight <浮点数>         TPS约束损失的权重(默认为0.01)
    --wandb_log <存储为真>          在wandb上记录训练(默认为False)
    --wandb_project <字符串>        wandb项目名称(默认为LaDI_VTON_tps)
    --dense <存储为真>              使用密集UV图而不是关键点(默认为False)
    --only_extraction <存储为真>    仅使用训练好的网络提取图像而不进行训练(默认为False)
    --vgg_weight <整数>             VGG损失的权重(优化网络)(默认为0.25)
    --l1_weight <整数>              L1损失的权重(优化网络)(默认为1.0)
    --epochs_tps <整数>             TPS训练的轮数(默认为50)
    --epochs_refinement <整数>      优化网络训练的轮数(默认为50)

训练结束后,变形后的服装图像将保存在data/warped_clothsdata/warped_cloths_unpaired文件夹中。 为了节省计算时间,在接下来的步骤中,我们将使用预先提取的变形服装图像。

2. 训练EMASC

要训练EMASC模块,请运行以下命令:

python src/train_emasc.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --output_dir <路径>
--dataset <字符串>                要使用的数据集,选项:['dresscode', 'vitonhd']
--dresscode_dataroot <字符串>     dresscode数据集的数据根目录(当dataset=dresscode时需要)
--vitonhd_dataroot <字符串>       vitonhd数据集的数据根目录(当dataset=vitonhd时需要)
--output_dir <字符串>             输出目录,用于保存模型预测和检查点
--pretrained_model_name_or_path <字符串>
                                  huggingface.co/models的模型标识符(默认为stabilityai/stable-diffusion-2-inpainting)
--seed <整数>                     用于可重现训练的种子(默认为1234)
--train_batch_size <整数>         训练的批次大小(默认为16)
--test_batch_size <整数>          测试的批次大小(默认为16)
--num_train_epochs <整数>         训练轮数(默认为100)
--max_train_steps <整数>          最大训练步数。如果提供,将覆盖num_train_epochs(默认为40k)
--gradient_accumulation_steps <整数>
                                  在执行反向/更新传播之前累积的更新步数(默认为1)
--learning_rate <浮点数>          学习率(默认为1e-5)
--lr_scheduler <字符串>           学习率调度器,选项:['linear', 'cosine', 'cosine_with_restarts', 'polynomial', 'constant', 'constant_with_warmup'](默认为constant_with_warmup)
--lr_warmup_steps <整数>          学习率调度器的预热步数(默认为500)
--allow_tf32 <store_true>         允许在Ampere GPU上使用TF32(默认为False)
--adam_beta1 <浮点数>             Adam优化器的beta_1值(默认为0.9)
--adam_beta2 <浮点数>             Adam优化器的beta_2值(默认为0.999)
--adam_weight_decay <浮点数>      Adam优化器的权重衰减值(默认为1e-2)
--adam_epsilon <浮点数>           Adam优化器的epsilon值(默认为1e-8)
--max_grad_norm <浮点数>          梯度裁剪的最大梯度范数值(默认为1.0)
--mixed_precision <字符串>        混合精度训练,选项:['no', 'fp16', 'bf16'](默认为fp16)
--report_to <字符串>              指定报告指标的位置,选项:['wandb', 'tensorboard', 'comet_ml'](默认为wandb)
--checkpointing_steps <整数>      每隔多少步保存一次检查点(默认为10000)
--resume_from_checkpoint <字符串> 是否从之前的检查点恢复训练。使用"latest"自动选择最后可用的检查点。(默认为None)
--num_workers <整数>              工作进程数(默认为8)
--num_workers_test <整数>         测试数据加载器的工作进程数(默认为8)
--test_order <字符串>             测试设置,选项:['paired', 'unpaired'](默认为paired)
--emasc_type <字符串>             EMASC类型,选项:['linear', 'nonlinear'](默认为nonlinear)
--vgg_weight <浮点数>             VGG损失的权重(默认为0.5)
--emasc_kernel <整数>             EMASC模块的核大小(默认为3)
--emasc_padding <整数>            EMASC模块的填充(默认为1)

训练结束时,EMASC检查点将保存在output_dir文件夹中。

2.5 (可选) 提取clip衣物嵌入

为了加速后续步骤的训练过程,可以考虑预先计算数据集中每张图像的CLIP衣物嵌入。

要做到这一点,请运行以下命令:

python src/utils/compute_cloth_clip_features.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径>
--dataset <字符串>                要使用的数据集,选项:['dresscode', 'vitonhd']
--dresscode_dataroot <字符串>     dresscode数据集的数据根目录(当dataset=dresscode时需要)
--vitonhd_dataroot <字符串>       vitonhd数据集的数据根目录(当dataset=vitonhd时需要)
--pretrained_model_name_or_path <字符串>
                                  huggingface.co/models的模型标识符(默认为stabilityai/stable-diffusion-2-inpainting)
--batch_size <整数>               批次大小(默认为16)
--num_workers <整数>              工作进程数(默认为8)

计算出的特征将保存在data/clip_cloth_embeddings文件夹中。

在接下来的步骤中,要使用预先计算的特征,请确保使用--use_clip_cloth_features标志。

3. 预训练反转适配器

要预训练反转适配器,请运行以下命令:

python src/train_inversion_adapter.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --output_dir <路径> --gradient_checkpointing --enable_xformers_memory_efficient_attention --use_clip_cloth_features
--dataset <字符串>                要使用的数据集,选项:['dresscode', 'vitonhd']
--dresscode_dataroot <字符串>     dresscode数据集的数据根目录(当dataset=dresscode时必需)
--vitonhd_dataroot <字符串>       vitonhd数据集的数据根目录(当dataset=vitonhd时必需)
--output_dir <字符串>             模型预测和检查点将写入的输出目录
--pretrained_model_name_or_path <字符串>
                                 huggingface.co/models的模型标识符(默认为stabilityai/stable-diffusion-2-inpainting)
--seed <整数>                     用于可重复训练的随机种子(默认为1234)
--train_batch_size <整数>         训练的批量大小(默认为16)
--test_batch_size <整数>          测试的批量大小(默认为16)
--num_train_epochs <整数>         训练轮数(默认为100)
--max_train_steps <整数>          最大训练步数。如果提供,将覆盖num_train_epochs(默认为200k)
--gradient_accumulation_steps <整数>
                                 在执行反向/更新传递之前累积的更新步数(默认为1)
--gradient_checkpointing <存储为真>
                                 使用梯度检查点以牺牲较慢的反向传递为代价来节省内存(默认为False)
--learning_rate <浮点数>          学习率(默认为1e-5)
--lr_scheduler <字符串>           学习率调度器,选项:['linear', 'cosine', 'cosine_with_restarts', 'polynomial', 'constant', 'constant_with_warmup'](默认为constant_with_warmup)
--lr_warmup_steps <整数>          学习率调度器的预热步数(默认为500)
--allow_tf32 <存储为真>           允许在Ampere GPU上使用TF32(默认为False)
--adam_beta1 <浮点数>             Adam优化器的beta_1值(默认为0.9)
--adam_beta2 <浮点数>             Adam优化器的beta_2值(默认为0.999)
--adam_weight_decay <浮点数>      Adam优化器的权重衰减值(默认为1e-2)
--adam_epsilon <浮点数>           Adam优化器的epsilon值(默认为1e-8)
--max_grad_norm <浮点数>          梯度裁剪的最大梯度范数值(默认为1.0)
--mixed_precision <字符串>        混合精度训练,选项:['no', 'fp16', 'bf16'](默认为fp16)
--report_to <字符串>              报告指标的位置,选项:['wandb', 'tensorboard', 'comet_ml'](默认为wandb)
--checkpointing_steps <整数>      每次检查点之间的步数(默认为50000)
--resume_from_checkpoint <字符串> 是否应从先前的检查点恢复训练。使用"latest"自动选择最后可用的检查点。(默认为None)
--enable_xformers_memory_efficient_attention <存储为真>
                                 在xformers中启用内存高效注意力(默认为False)
--num_workers <整数>              工作进程数(默认为8)
--num_workers_test <整数>         测试数据加载器的工作进程数(默认为8)
--test_order <字符串>             测试设置,选项:['paired', 'unpaired'](默认为paired)
--num_vstar <整数>                每张图像要使用的预测v*数量(默认为16)
--num_encoder_layers <整数>       反演适配器中要使用的ViT层数(默认为1)
--use_clip_cloth_features <存储为真>
                                 使用预先计算的clip服装特征,而不是每次迭代时计算(默认为False)

训练结束时,反演适配器检查点将保存在output_dir文件夹中。

注意:只有在之前使用src/utils/compute_cloth_clip_features.py脚本(步骤2.5)计算了clip服装特征的情况下,才能使用--use_clip_cloth_features标志。

4. 训练VTO

要成功训练VTO模型,请确保指定正确的预训练反演适配器检查点路径。如果省略,反演适配器将从头开始训练。另外,不要忘记包含--train_inversion_adapter标志,以在VTO训练过程中启用反演适配器训练。

要训练VTO模型,运行以下命令:

python src/train_vto.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --output_dir <路径> --inversion_adapter_dir <路径> --gradient_checkpointing --enable_xformers_memory_efficient_attention --use_clip_cloth_features --train_inversion_adapter
--dataset <str>                数据集选择,选项: ['dresscode', 'vitonhd']
--dresscode_dataroot <str>     dresscode数据集的数据根目录(当dataset=dresscode时必填)
--vitonhd_dataroot <str>       vitonhd数据集的数据根目录(当dataset=vitonhd时必填)
--output_dir <str>             模型预测结果和检查点将写入的输出目录
--inversion_adapter_dir <str>  反演适配器检查点目录路径。应与反演适配器训练脚本的`output_dir`相同。如果未指定,反演适配器将从头开始训练。(默认=None)
--inversion_adapter_name <str> 反演适配器检查点名称。要加载最新的检查点,请使用`latest`。(默认=latest)
--pretrained_model_name_or_path <str>
                               来自huggingface.co/models的模型标识符(默认=stabilityai/stable-diffusion-2-inpainting)
--seed <int>                   用于可重现训练的种子(默认=1234)
--train_batch_size <int>       训练的批量大小(默认=16)
--test_batch_size <int>        测试的批量大小(默认=16)
--num_train_epochs <int>       训练轮数(默认=100)
--max_train_steps <int>        最大训练步数。如果提供,将覆盖num_train_epochs(默认=200k)
--gradient_accumulation_steps <int>
                               在执行反向/更新传递之前累积的更新步数(默认=1)
--gradient_checkpointing <store_true>
                               使用梯度检查点以牺牲较慢的反向传递为代价来节省内存(默认=False)
--learning_rate <float>        学习率(默认=1e-5)
--lr_scheduler <str>           学习率调度器,选项: ['linear', 'cosine', 'cosine_with_restarts', 'polynomial', 'constant', 'constant_with_warmup'](默认=constant_with_warmup)
--lr_warmup_steps <int>        学习率调度器的预热步数(默认=500)
--allow_tf32 <store_true>      允许在Ampere GPU上使用TF32(默认=False)
--adam_beta1 <float>           Adam优化器的beta_1值(默认=0.9)
--adam_beta2 <float>           Adam优化器的beta_2值(默认=0.999)
--adam_weight_decay <float>    Adam优化器的权重衰减值(默认=1e-2)
--adam_epsilon <float>         Adam优化器的epsilon值(默认=1e-8)
--max_grad_norm <float>        梯度裁剪的最大梯度范数值(默认=1.0)
--mixed_precision <str>        混合精度训练,选项: ['no', 'fp16', 'bf16'](默认=fp16)
--report_to <str>              指定报告指标的位置,选项: ['wandb', 'tensorboard', 'comet_ml'](默认=wandb)
--checkpointing_steps <int>    每隔多少步保存一次检查点(默认=50000)
--resume_from_checkpoint <str> 是否从之前的检查点恢复训练。使用"latest"自动选择最后可用的检查点。(默认=None)
--enable_xformers_memory_efficient_attention <store_true>
                               在xformers中启用内存高效注意力(默认=False)
--num_workers <int>            工作进程数(默认=8)
--num_workers_test <int>       测试数据加载器的工作进程数(默认=8)
--test_order <str>             测试设置,选项: ['paired', 'unpaired'](默认=paired)
--uncond_fraction <float>      无条件训练样本的比例(默认=0.2)
--text_usage <str>             使用的文本特征,选项: ['none', 'noun_chunks', 'inversion_adapter'](默认=inversion_adapter)
--cloth_input_type <str>       服装输入类型,选项: ['none', 'warped'],(默认=warped)
--num_vstar <int>              每张图像使用的预测v*数量(默认=16)
--num_encoder_layers <int>     反演适配器中使用的ViT层数(默认=1)
--train_inversion_adapter <store_true>
                               在VTO训练期间训练反演适配器(默认=False)
--use_clip_cloth_features <store_true>
                               使用预先计算的CLIP服装特征,而不是每次迭代时重新计算(默认=False)

训练结束后,检查点将保存在output_dir文件夹中。

注意: 只有在之前使用src/utils/compute_cloth_clip_features.py脚本(步骤2.5)计算了CLIP服装特征后,才能使用--use_clip_cloth_features标志。

5. 使用训练好的模型进行推理

在运行推理之前,确保指定了所有训练过的检查点的正确路径。 还要确保使用与训练时一致的超参数。

要在Dress Code或VITON-HD数据集上运行推理,请执行以下命令:

python src/eval.py --dataset [dresscode | vitonhd] --dresscode_dataroot <路径> --vitonhd_dataroot <路径> --output_dir <路径> --save_name <字符串> --test_order [paired | unpaired]  --unet_dir <路径> --inversion_adapter_dir <路径> --emasc_dir <路径>  --category [all | lower_body | upper_body | dresses ] --enable_xformers_memory_efficient_attention --use_png --compute_metrics
--dataset <str>                要使用的数据集,选项:['dresscode', 'vitonhd']
--dresscode_dataroot <str>     dresscode数据集的数据根目录(当dataset=dresscode时必需)
--vitonhd_dataroot <str>       vitonhd数据集的数据根目录(当dataset=vitonhd时必需)
--output_dir <str>             生成的图像将写入的输出目录
--save_name <str>              `output_dir`内生成的图像文件夹的名称
--test_order <str>             测试设置,选项:['paired', 'unpaired']
--unet_dir <str>               UNet检查点目录的路径。应与VTO训练脚本的`output_dir`相同
--unet_name <str>              UNet检查点的名称。要加载最新的检查点,请使用`latest`。(默认为latest)
--inversion_adapter_dir <str>  反转适配器检查点目录的路径。应与VTO训练脚本的`output_dir`相同。仅当`--text_usage`设置为`inversion_adapter`时需要。(默认为None)
--inversion_adapter_name <str> 反转适配器检查点的名称。要加载最新的检查点,请使用`latest`。(默认为latest)
--emasc_dir <str>              EMASC检查点目录的路径。应与EMASC训练脚本的`output_dir`相同。当--emasc_type!=none时需要。(默认为None)
--emasc_name <str>             EMASC检查点的名称。要加载最新的检查点,请使用`latest`。(默认为latest)
--pretrained_model_name_or_path <str>
                               来自huggingface.co/models的模型标识符(默认为stabilityai/stable-diffusion-2-inpainting)
--seed <int>                   用于可复现训练的种子(默认为1234)
--batch_size <int>             批量大小(默认为8)
--allow_tf32 <store_true>      允许在Ampere GPU上使用TF32(默认为False)
--enable_xformers_memory_efficient_attention <store_true>
                               在xformers中启用内存高效注意力(默认为False)
--num_workers <int>            工作线程数(默认为8)
--category <str>               要测试的类别,选项:['all', 'lower_body', 'upper_body', 'dresses'](默认为all)
--emasc_type <str>             EMASC的类型,选项:['linear', 'nonlinear'](默认为nonlinear)
--emasc_kernel <int>           EMASC模块的核大小(默认为3)
--emasc_padding <int>          EMASC模块的填充(默认为1)
--text_usage <str>             要使用的文本特征,选项:['none', 'noun_chunks', 'inversion_adapter'](默认为inversion_adapter)
--cloth_input_type <str>       服装输入类型,选项:['none', 'warped'],(默认为warped)
--num_vstar <int>              每张图像要使用的预测v*数量(默认为16)
--num_encoder_layers <int>     在反转适配器中使用的ViT层数(默认为1)
--use_png <store_true>         使用png而不是jpg(默认为False)
--num_inference_steps <int>    推理时的扩散步数(默认为50)
--guidance_scale <float>       扩散的引导比例(默认为7.5)
--use_clip_cloth_features <store_true>
                               使用预先计算的CLIP服装特征,而不是每次迭代时计算(默认为False)。
--compute_metrics              在推理结束时计算指标(默认为False)

生成的图像将保存在output_dir/save_name_{test_order}文件夹中。

注意:只有在之前使用src/utils/compute_cloth_clip_features.py脚本(步骤2.5)计算了CLIP服装特征的情况下,才能使用--use_clip_cloth_features标志。

致谢

这项工作得到了PNRR项目"未来人工智能研究(FAIR)"和PRIN项目"CREATIVE:视觉和文本内容的跨模态理解与生成"(CUP B87G22000460001)的部分支持,这两个项目都由意大利大学和研究部共同资助,还得到了欧洲委员会欧洲地平线2020计划(拨款号101004545 - ReInHerit)的支持。

许可证

知识共享许可协议
所有材料均根据知识共享署名-非商业性使用4.0国际许可协议提供。您可以出于非商业目的使用、重新分发和改编这些材料,只要您适当地引用我们的论文指明任何您所做的更改

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号