模型:

stabilityai/stable-diffusion-2-base

英文

Stable Diffusion v2-base 模型卡片

该模型卡片主要介绍了 Stable Diffusion v2-base 模型,可在 here 上获得。

该模型是从头开始训练的,使用 LAION-5B 数据集中过滤掉明确的色情内容的子集,在分辨率 256x256 上进行了 550k 步的训练,使用 punsafe=0.1 和 aesthetic score >= 4.5 的 LAION-NSFW classifier 进行训练。然后在相同数据集上,在分辨率 >= 512x512 的图像上继续进行了 850k 步的训练。

模型详情

  • 开发者: Robin Rombach, Patrick Esser
  • 模型类型: 基于Diffusion的文本到图像生成模型
  • 使用语言: 英语
  • 许可证: CreativeML Open RAIL++-M License
  • 模型描述: 这是一个基于文本提示生成和修改图像的模型。它是一个 Latent Diffusion Model ,使用了一个固定的、预训练的文本编码器 ( OpenCLIP-ViT/H )。
  • 获取更多信息的资源: 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 来简化和高效地运行 Stable Diffusion 2。

pip install diffusers transformers accelerate scipy safetensors

运行流程 (如果不更换调度器,将使用默认的 PNDM/PLMS 调度器运行,默认情况下我们将其更换为 EulerDiscreteScheduler):

from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler
import torch

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

# Use the Euler scheduler here instead
scheduler = EulerDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, torch_dtype=torch.float16)
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 以实现内存高效的attention(提高性能)。
  • 如果您的 GPU 内存较低,请确保在将其发送到 cuda 之后添加 pipe.enable_attention_slicing() 以减少 VRAM 的使用 (速度会受到影响)。

使用

直接使用

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

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

排除的用途如下所述。

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

注意:本节内容原文摘自 DALLE-MINI model card ,用于 Stable Diffusion v1,但同样适用于 Stable Diffusion v2。

不得使用该模型有意地创建或传播人们可能会感到不悦、痛苦或冒犯的图像,包括生成人们可能预见到会引起不适、痛苦或冒犯的内容,以及传播历史或当前的刻板印象的内容。

超出范围的使用

该模型没有被训练成为人物或事件的事实或真实的表达,因此使用该模型生成此类内容超出了该模型的能力范围。

滥用和恶意使用

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

  • 生成贬低、贬损或以其他方式有害的人物或环境、文化、宗教等的表现。
  • 故意推广或传播歧视性内容或有害刻板印象。
  • 未经个人同意就冒充个人。
  • 未经人们的同意就共享性内容。
  • 不实信息和失实信息
  • 极端暴力和血腥的表现
  • 共享受版权或许可协议保护的材料,违反了其使用条款。
  • 共享对受版权或许可协议保护的材料进行了改编的内容,违反了其使用条款。

限制和偏见

限制

  • 该模型不能完美地实现照片般的逼真效果
  • 该模型无法渲染可读的文本
  • 该模型在涉及合成性的更复杂任务上表现不佳,比如渲染对应于 "一个红色的立方体位于蓝色的球体之上" 的图像
  • 人脸和人物可能无法正确生成
  • 该模型主要通过英文标题进行训练,在其他语言上的表现可能不如英文标题好
  • 模型的自编码部分是有损的
  • 该模型是在包含成人、暴力和性内容的大规模数据集 LAION-5B 的子集上进行训练的。为了部分缓解这个问题,我们使用 LAION 的 NFSW 检测器过滤了数据集 (请参阅训练部分的详细信息)

偏见

尽管图像生成模型的功能令人印象深刻,但它们也可能强化或加剧社会偏见。Stable Diffusion v2 主要是在包含英文描述的 LAION-2B(en) 子集上进行训练的,对使用其他语言的社区和文化的文本和图像可能不能得到充分考虑。这影响了模型的整体输出,因为白人和西方文化通常被视为默认设置。此外,模型生成非英语提示内容的能力明显不如生成英语提示内容的能力好。Stable Diffusion v2 反映并加剧了偏见,无论输入或其意图如何,都必须谨慎处理。

训练

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

  • LAION-5B 和其子集 (详细信息参见相关论文 NeurIPS 2022 和审稿人对该主题的讨论)。使用 LAION 的 NSFW 检测器对训练数据进行进一步过滤,使用保守的 "p_unsafe" 得分为 0.1。

训练过程:Stable Diffusion 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: 在分辨率 256x256 上训练了 550k 步,使用了过滤掉明确色情内容的 LAION-5B 子集,使用 punsafe=0.1 和分数 >= 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) 产生的(相对)深度预测,该预测用作额外的条件。处理此额外信息的 U-Net 的附加输入通道被初始化为零。
  • 512-inpainting-ema.ckpt: 从 512-base-ema.ckpt 恢复,并继续进行了 200k 步的训练。使用了 LAMA 中介绍的遮罩生成策略,结合了掩蔽图像的潜在 VAE 表示,作为额外的条件。处理此额外信息的 U-Net 的附加输入通道被初始化为零。相同的策略用于训练 1.5-inpainting checkpoint
  • x4-upscaling-ema.ckpt: 在包含 >2048x2048 图像的 LAION 的 10M 子集上进行了 1.25M 步的训练。该模型在 512x512 的裁剪图上进行训练,是一个文本引导的 latent upscaling diffusion model 。除了文本输入外,它还接收一个 noise_level 作为输入参数,根据预定义的扩散进度为低分辨率输入添加噪声。
  • 硬件: 32 x 8 x A100 GPUs
  • 优化器: AdamW
  • 渐变积累: 1
  • 批量大小:32 x 8 x 2 x 4 = 2048
  • 学习率:热身到 0.0001,持续 10,000 步,然后保持恒定

评估结果

使用不同的无分类器引导尺度 (1.5、2.0、3.0、4.0、5.0、6.0、7.0、8.0) 和 50 个步骤的 DDIM 采样步骤,显示了检查点的相对改进:

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

环境影响

Stable Diffusion v1 估计的排放量 基于这些信息,我们估计使用 Machine Learning Impact calculator 提供的 Lacoste et al. (2019) 来估算碳排放量。根据硬件、运行时间、云服务提供商和计算区域的使用情况,估算出碳排放量。

  • 硬件类型: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 的基础上编写。