ladi-vton

ladi-vton

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

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

LaDI-VTON虚拟试穿图像生成潜在扩散文本倒置Github开源项目

LaDI-VTON (ACM多媒体2023)

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

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

* 贡献相同。

arXiv GitHub Stars

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

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

概述

摘要: <br> 电子商务和元宇宙领域正在快速发展,不断寻求创新方法来提升消费者体验。同时,扩散模型的最新进展使生成网络能够创建极为逼真的图像。在这种背景下,基于图像的虚拟试衣(即生成目标模特穿着给定商店服装的新图像)尚未充分利用这些强大生成解决方案的潜力。本文提出了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} }
<details> <summary><h2>入门指南</h2></summary>

我们建议使用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 | ...]
</details> <details> <summary><h2>使用预训练模型进行推理</h2></summary>

要在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)
</details> <details> <summary><h2>训练</h2></summary> 在本节中,您将找到如何从头开始训练我们模型所有组件的说明。

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)的支持。

许可证

<a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://yellow-cdn.veclightyear.com/0a4dffa0/aede85fc-46e3-49d3-a085-73d2fa890bd2.png" /></a><br /> 所有材料均根据知识共享署名-非商业性使用4.0国际许可协议提供。您可以出于非商业目的使用、重新分发和改编这些材料,只要您适当地引用我们的论文指明任何您所做的更改

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多