diffusion 训练模型 Stable Diffusion Training with MosaicML

diffusion 训练模型 Stable Diffusion Training with MosaicML

diffusion 训练模型 Stable Diffusion Training with MosaicML_Qpipi
diffusion 训练模型 Stable Diffusion Training with MosaicML
此内容为免费资源,请登录后查看
0积分
网盘密匙:Qpipi2023
允许图像商用
不允许出售模型
不允许生成图像服务费
许可证:CreativeML Open RAIL++-M
🎀包含版本🆕
⚠️注意任选一个新版本即可,安装方法请看文章内介绍
🔑授权许可Apache-2.0 license
免费资源

注意:这是一个基于Stable Diffusion的训练模型,最高使用了128颗A100 GPU,耗资超过$15W。您可以基于diffusion进行使用或训练。

图片[1]_diffusion 训练模型 Stable Diffusion Training with MosaicML_Qpipi

项目开源网址:

如安装Stable Diffusion请移步至:

Stable Diffusion Training with MosaicML

此存储库包含用于在自己的数据上训练您自己的稳定扩散模型的代码。

结果

我们的马赛克扩散模型在以 550×256 分辨率训练 256k 次迭代后的结果,然后在 850×512 下训练 512k 次迭代后:

图片[2]_diffusion 训练模型 Stable Diffusion Training with MosaicML_Qpipi

先决条件

以下是我们建议开始训练您自己的扩散模型的系统设置:

  • 使用 PyTorch 1.13+ 的 Docker 镜像,例如 MosaicML 的 PyTorch 基础镜像
    • 推荐标签:mosaicml/pytorch_vision:1.13.1_cu117-python3.10-ubuntu20.04
    • 此映像预配置了以下依赖项:
      • PyTorch Version: 1.13.1
      • CUDA Version: 11.7
      • Python Version: 3.10
      • Ubuntu Version: 20.04
  • 使用装有 NVIDIA GPU 的系统

我需要多少个 GPU?

我们将 U-Net 训练吞吐量进行了基准测试,将 A100 GPU 的数量从 8 个扩展到 128 个。我们的时间估计基于训练稳定扩散 2.0,基于 1×126 分辨率的 400,000,256,256 张图像和 1×740 分辨率的 800,000,512,512 张图像。我们的成本估算基于 2 美元/A100 小时。由于时间和成本估算仅适用于U-Net,因此只有在训练前计算VAE和CLIP潜伏时,这些估算才成立。离线预计算VAE和CLIP潜伏期花费了3,784个A100小时(7,600美元)。如果您在训练时计算VAE和CLIP潜伏,预计时间和成本会增加1.4倍。

A100 数量UNet 的吞吐量 @ 256×256(图像/秒)UNet 的吞吐量 @ 512×512(图像/秒)在 MosaicML 云上训练的日子Approx. Cost on MosaicML Cloud
8110029081.33$31,230
16218058540.42$31,043
324080119520.06$30,805
648530234010.14$31,146
1281160045905.51$33,874

克隆存储库和安装要求

git clone https://github.com/mosaicml/diffusion.git
cd diffusion
pip install -e .

数据准备

如果您有兴趣在LAION-5B上进行培训或对COCO字幕进行评估,我们提供脚本来下载这些数据集并将其处理为流式处理数据集。

或者,您可以使用自己的图像标题数据集,只要样本作为字典从 PyTorch 数据集类返回即可。要将自定义数据集与我们的配置一起使用,请定义一个函数,该函数为自定义数据集返回 PyTorch DataLoader(有关示例,请参阅 build_streaming_laion_dataloader())。添加自定义代码的最佳方法是分叉此存储库,然后将 python 脚本添加到 .diffusion/datasets

调整配置

两个训练阶段的配置在SD-2-base-256.yaml和SD-2-base-512.yaml中指定。有几个字段留空,需要填写这些字段才能开始训练。该字段是要更改的主要字段。如果您下载了 LAION-5B 数据集并将其转换为您自己的流式处理数据集,请将下面的字段更改为包含流式处理 LAION-5B 的存储桶。同样,对于 COCO 验证,请将下面的字段更改为包含流式处理 COCO 的存储桶。datasetremotetrain_datasetremoteeval_dataset

如果您选择使用自己的数据集,请更改两者下的字段,并包含返回数据集的 PyTorch DataLoader 的函数的绝对路径。将后面的字段替换为函数的参数。_target_train_dataseteval_dataset_target_

如果您尚未预先计算数据集的 VAE 和 CLIP 潜伏,请将字段设置为 。precomputed_latentsfalse

训练模型

更新配置后,通过运行以下命令以 256×256 分辨率开始训练:

composer run.py --config-path yamls/hydra-yamls --config-name SD-2-base-256.yaml

接下来,通过运行以下命令以 512×512 分辨率开始训练:

composer run.py --config-path yamls/hydra-yamls --config-name SD-2-base-512.yaml

在线评估

我们的代码能够在训练时以多个指导量表计算 FID 分数。要使用此功能,请将火炬计量类添加到字段中,并在 下的字段中指定所需的指导分数。以下是在线计算指导分数 FID 分数的示例配置[1, 3, 7]:FrechetInceptionDistanceval_metricsval_guidance_scalesmodel

model:
  _target_: diffusion.models.models.stable_diffusion_2
  pretrained: false
  precomputed_latents: false
  encode_latents_in_fp16: true
  fsdp: true
  val_metrics:
    - _target_: torchmetrics.MeanSquaredError
    - _target_: torchmetrics.image.fid.FrechetInceptionDistance
      normalize: true
  val_guidance_scales: [1, 3, 7]
  loss_bins: []

由于必须生成的图像数量,在训练期间计算 FID 可能会很慢,并且需要额外的设备内存。如果担心设备内存或运行时,则在使用联机评估时应谨慎使用。

您还可以在整个训练过程中将生成的图像记录到权重和偏差中,以定性测量模型性能。这是通过在配置文件中指定回调类来完成的,如下所示:LogDiffusionImagescallbacks

  image_monitor:
    _target_: diffusion.callbacks.log_diffusion_images.LogDiffusionImages
    prompts: # add any prompts you would like to visualize
    - A dog wearing a spacesuit
    - An astronaut riding a horse
    size: 256 # generated image resolution
    guidance_scale: 3

离线评估

我们还提供了一个离线评估脚本,用于计算保存的检查点和 COCO 数据集上的 FID 和 CLIP 指标。要使用它,请运行:

composer scripts/fid-clip-evaluation.py --guidance_scale 3.0 --remote YOUR_DATASET_PATH_HERE --load_path YOUR_CHECKPOINT_PATH_HERE

这将使用图像+提示对以 3.0 的指导等级计算 FID 和 CLIP 分数。还可以通过 设置用于图像生成的种子和用于图像的分辨率。还可以通过设置标志并指定 and 来将结果记录到权重和偏差中。--seed 42--size 512--wandb--project--name

希望你喜欢使用这个AI模型,就像我们创造它一样!如果您有任何问题或建议,请在评论区告诉我们。

使用Qpipi读图提示功能,获取图片TAG Prompt提示

Stable Diffusion AI绘图软件常见问题解答

AI绘画新人必备工具指南

你想要什么SD绘画模型?请在Qpipi社区或者评论留言告诉我们!

🎨享受精美的AI绘图乐趣!

© 版权声明
THE END
喜欢就支持一下吧!
点赞11分享
评论 共5条

请登录后发表评论