模型:

stabilityai/stable-diffusion-2-1

英文

稳定扩散v2-1模型卡片

该模型卡片重点介绍与稳定扩散v2-1模型相关的内容,其代码库可在 here 中找到。

稳定扩散2-1模型是基于 stable-diffusion-2 (768-v-ema.ckpt)进行微调的,在相同的数据集上额外进行了55k步骤的微调(punsafe=0.1),然后再进行了155k额外的步骤微调(punsafe=0.98)。

模型详细信息

  • 开发者:Robin Rombach,Patrick Esser

  • 模型类型:基于扩散的文本到图像生成模型

  • 语言:英语

  • 许可证: CreativeML Open RAIL++-M License

  • 模型描述:这是一个用于根据文本提示生成和修改图像的模型。它是一个基于固定预训练文本编码器( OpenCLIP-ViT/H )的 Latent Diffusion Model

  • 更多信息资源: GitHub Repository

  • 引用方式:

    @InProceedings{Rombach_2022_CVPR,
        author    = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn},
        title     = {High-Resolution Image Synthesis With Latent Diffusion Models},
        booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
        month     = {June},
        year      = {2022},
        pages     = {10684-10695}
    }
    

示例

使用 ?'s Diffusers library 在简单高效的方式下运行稳定扩散2。

pip install diffusers transformers accelerate scipy safetensors

运行流程(如果不更改调度程序,将使用默认的DDIM,默认使用DPMSolverMultistepScheduler进行示例中的调度程序切换):

import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler

model_id = "stabilityai/stable-diffusion-2-1"

# Use the DPMSolverMultistepScheduler (DPM-Solver++) scheduler here instead
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")

prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
    
image.save("astronaut_rides_horse.png")

注意:

  • 尽管不能算作依赖项,我们强烈建议您安装 xformers 以实现内存高效的注意力(提高性能)。
  • 如果您的GPU内存较低,请确保在将其发送到cuda后添加pipe.enable_attention_slicing()以减少VRAM使用(速度略有损失)。

用途

直接使用

本模型仅用于研究目的。可能的研究领域和任务包括:

  • 对有潜在生成有害内容的模型进行安全部署。
  • 探索和理解生成模型的局限性和偏见。
  • 应用于艺术创作和设计等方面的艺术品生成。
  • 应用于教育或创意工具中。
  • 生成模型研究。

排除的用途如下所述。

滥用、恶意使用和超出范围使用

注意:本节内容最初取自 DALLE-MINI model card ,以前用于稳定扩散v1,但同样适用于稳定扩散v2。

模型不应用于有意创建或传播可能会对人们造成敌对或疏远环境的形象。这包括生成人们可以预见到会感到不安、痛苦或冒犯的图像,或者宣传历史或现实的刻板印象。

超出范围使用

该模型未经过训练,无法准确呈现人物或事件,因此使用该模型生成此类内容超出了其能力范围。

滥用和恶意使用

将该模型用于生成对个人具有残忍性的内容是对该模型的滥用。这包括但不限于:

  • 生成贬低、贬损或以其他方式有害的人或其环境、文化、宗教等的表现形象。
  • 有意推广或宣传歧视性内容或有害刻板印象。
  • 未获得个人许可的冒充。
  • 未经同意将性内容展示给可能会看到它的人。
  • 错误和误导信息。
  • 恶意暴力和血腥描绘。
  • 共享违反其使用条款的受版权或受许可的材料。
  • 共享违反其使用条款对版权或受许可的材料进行修改的内容。

局限性和偏见

局限性

  • 该模型无法达到完美的照片逼真度。
  • 该模型无法渲染清晰可辨的文本。
  • 该模型在涉及组合性的更困难任务(如渲染与“A red cube on top of a blue sphere”相对应的图像)方面表现不佳。
  • 脸部和人物的生成可能不正确。
  • 该模型主要使用英文标题进行训练,在其他语言上的表现可能不佳。
  • 模型的自动编码部分存在信息损失。
  • 该模型是在包含成人、暴力和性内容的大规模数据集 LAION-5B 的子集上训练的。为部分减轻此问题,我们已使用LAION的NFSW检测器对数据集进行了过滤(参见训练部分)。

偏见

虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。稳定扩散主要在 LAION-2B(en) 的子集上进行了训练,该数据集仅包含英文说明的图像。来自使用其他语言的社区和文化的文本和图像可能未被充分考虑。这影响了模型的整体输出,因为白人和西方文化通常被设定为默认情况。此外,与英语提示相比,该模型使用非英语提示生成内容的能力会明显较差。稳定扩散v2会镜像和加剧偏见,以至于无论输入和意图如何,都必须谨慎使用。

训练

训练数据:模型开发者使用以下数据集进行模型训练:

  • LAION-5B及其子集(详细信息见下文)。使用LAION的NSFW检测器对训练数据进行进一步过滤,使用“p_unsafe”得分为0.1(保守值)。更多详情,请参阅LAION-5B的 NeurIPS 2022 论文和有关此主题的审稿人讨论。

训练过程:稳定扩散v2是一个潜在的扩散模型,它将自动编码器和在自动编码器的潜在空间中训练的扩散模型相结合。在训练过程中,

  • 图像通过编码器进行编码,将图像转换为潜在表示。自动编码器使用相对下采样因子8,将形状为H x W x 3的图像映射到形状为H/f x W/f x 4的潜在表示
  • 文本提示通过OpenCLIP-ViT/H文本编码器进行编码。
  • 文本编码器的输出通过交叉注意力与潜在扩散模型的UNet主干网络相连。
  • 损失是潜在空间中添加噪音后的噪音与UNet的预测之间的重构目标。还使用了所谓的v-objective,详见 https://arxiv.org/abs/2202.00512

我们目前提供以下检查点:

  • 512-base-ema.ckpt:在一部分过滤了显性色情材料的 LAION-5B 数据集上,以分辨率256x256进行了550k步骤的训练,使用了punsafe=0.1和 aesthetic score >=4.5,以分辨率>=512x512继续训练了相同数据集上的850k步骤。

  • 768-v-ema.ckpt:从512-base-ema.ckpt恢复并在相同数据集上使用 v-objective 进行了150k步骤的训练。在我们的数据集的768x768子集上继续恢复了另外的140k步骤。

  • 512-depth-ema.ckpt:从512-base-ema.ckpt恢复并进行了额外的200k步骤微调。增加了一个额外的输入通道,用于处理由 MiDaS (dpt_hybrid)产生的(相对)深度预测,作为附加的条件。处理这些额外信息的UNet的额外输入通道是以零初始化的。

  • 512-inpainting-ema.ckpt:从512-base-ema.ckpt恢复并进行了额外的200k步骤训练。使用 LAMA 中提出的遮罩生成策略,在遮罩图像的潜在VAE表示和遮罩图像的结合中作为附加条件。处理这些额外信息的UNet的额外输入通道是以零初始化的。同样的策略用于训练 1.5-inpainting checkpoint

  • x4-upscaling-ema.ckpt:在包含尺寸>2048x2048的LAION子集中进行了125万步骤的训练。模型在尺寸为512x512的裁剪图上进行训练,是一个文本引导的 latent upscaling diffusion model 。除了文本输入外,还根据预定义的扩散计划添加一个noise_level作为输入参数,用于给低分辨率输入添加噪音。

  • 硬件:32 x 8 x A100 GPU

  • 优化器:AdamW

  • 梯度累积:1

  • 批次:32 x 8 x 2 x 4 = 2048

  • 学习率:先热身到0.0001,经过10000步保持不变

评估结果

使用不同的无分类器指导比例(1.5、2.0、3.0、4.0、5.0、6.0、7.0、8.0)和50步DDIM采样步骤对检查点进行了评估,以下为相对改进的结果:

使用50个DDIM步骤和COCO2017验证集中的10000个随机提示进行评估,以512x512的分辨率进行评估,不针对FID得分进行优化。

环境影响

稳定扩散v1预计的排放量基于 Machine Learning Impact calculator 的信息。硬件、运行时间、云服务提供商和计算地区被用于估计碳足迹。

  • 硬件类型:A100 PCIe 40GB
  • 使用时间:200000小时
  • 云服务提供商:AWS
  • 计算地区:美国东部
  • 排放的碳量(功耗 x 时间 x 基于电力网络位置的碳排放量):15000公斤二氧化碳当量

引用

@InProceedings{Rombach_2022_CVPR,
    author    = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn},
    title     = {High-Resolution Image Synthesis With Latent Diffusion Models},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022},
    pages     = {10684-10695}
}

本模型卡片由Robin Rombach、Patrick Esser和David Ha编写,基于 Stable Diffusion v1 DALL-E Mini model card