模型:

stabilityai/stable-diffusion-2-1-base

英文

Stable Diffusion v2-1-base 模型卡片

该模型卡片关注 Stable Diffusion v2-1-base 模型。

该 stable-diffusion-2-1-base 模型使用 stable-diffusion-2-base (512-base-ema.ckpt) 进行了微调,额外进行了 220k 步的训练,并在相同的数据集上使用 punsafe=0.98。

  • 使用与 stablediffusion 存储库下载的 v2-1_512-ema-pruned.ckpt 进行配套使用。
  • 使用与 diffusers ?。

模型详情

  • 开发者:Robin Rombach, Patrick Esser
  • 模型类型:基于扩散的文本到图像生成模型
  • 语言:英语
  • 许可证: 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-1-base"

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 ,以实现记忆效率的注意力(更好的性能)
  • 如果您的GPU内存有限,请确保在将其发送到cuda后添加pipe.enable_attention_slicing()以减少VRAM的使用(牺牲速度)

使用

直接使用

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

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

不被包括在内的使用方法如下所述。

不正确使用、恶意使用和超出范围的使用

注意:此部分最初摘自 DALLE-MINI model card ,用于 Stable Diffusion v1,但对 Stable Diffusion v2 同样适用。

不应使用该模型有意创造或传播会给人带来敌意或隔离环境的图像。包括生成人们可以预见到会感到不安、痛苦或冒犯的图像;或者宣传历史上或当前的刻板印象的内容。

不包括在内的使用方法

该模型训练时并非用于对人或事件进行准确的真实表示,因此使用该模型生成此类内容超出了该模型的能力范围。

不正确使用和恶意使用

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

  • 生成贬低、贬损或以其他方式对人或他们的环境、文化、宗教等造成伤害的形象。
  • 故意推广或传播歧视性内容或有害的刻板印象。
  • 未经个人同意而冒充个人。
  • 在没有人们同意的情况下生成性内容。
  • 误导和虚假信息
  • 残忍的暴力和血腥表现
  • 共享侵犯版权或受许可条款限制的材料
  • 共享违反版权或受许可条款限制的材料的更改版

限制和偏见

限制

  • 该模型无法达到完美的照片逼真度
  • 该模型无法生成可读的文本
  • 该模型在涉及组合性更高的任务(如生成对应于“红色立方体放在蓝色球顶部”的图像)方面表现不佳
  • 人脸和人类一般可能无法正确生成
  • 该模型主要在英文标题下进行训练,因此在其他语言中的效果不佳
  • 模型的自编码部分是有损的
  • 模型在包含成人、暴力和性内容的大规模数据集 LAION-5B 上进行了训练。为此,我们使用 LAION 的 NSFW 检测器 (详情请参阅 LAION-5B 的 NeurIPS 2022 论文和评论讨论) 对数据集进行了过滤,使用了 0.1 的“p_unsafe”分数进行限制。

偏见

虽然图像生成模型的能力令人印象深刻,但它们也可能会强化或加剧社会偏见。Stable Diffusion vw 主要在局限为英文描述的 LAION-2B(en) 子集上进行训练。来自使用其他语言的社群和文化的文本和图像可能没有得到充分考虑。这会影响模型的整体输出,因为白人和西方文化通常被设定为默认值。此外,模型生成非英文提示的内容的能力明显较差。Stable Diffusion v2 在复制和加剧偏见方面存在严重问题,因此无论输入或其意图如何,观众都需要谨慎对待。

训练

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

  • LAION-5B 及其子集(下文有详细信息)。使用 LAION 的 NSFW 检测器通过 "p_unsafe" 得分为 0.1(保守)对训练数据进行了进一步过滤。更多细节,请参考 LAION-5B 的 NeurIPS 2022 论文和审稿人在此问题上的讨论。

训练过程: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

我们目前提供以下各个版本的检查点:

版本 2.1

  • 512-base-ema.ckpt:在与 512-base-ema.ckpt 2.0 相同的数据集上进行了微调,额外进行了 220k 步的训练,使用 punsafe=0.98。
  • 768-v-ema.ckpt:从 768-v-ema.ckpt 2.0 继续训练,在相同的数据集上额外进行了 55k 步的训练(punsafe=0.1),然后使用 punsafe=0.98 进行了微调,训练了另外 155k 步。

版本 2.0

  • 512-base-ema.ckpt:在经过过滤的 LAION-5B 子集上使用 LAION-NSFW classifier 进行了训练,通过 punsafe=0.1 和分辨率 >= 4.5 的 aesthetic score 进行了训练,在 256x256 分辨率下进行了 550k 步训练;通过相同的数据集并使用分辨率 >= 512x512 进行了 850k 步的训练。
  • 768-v-ema.ckpt:从 512-base-ema.ckpt 恢复,并在相同的数据集上进行了 150k 步的训练,使用了 v-objective 。然后在我们数据集的 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 的 1000 万子集上进行了 125 万步的训练。模型在大小为 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) 中提供的内容估计以下 CO2 排放量。硬件、运行时间、云供应商和计算区域被用于估计碳影响。

  • 硬件类型:A100 PCIe 40GB
  • 使用小时数:200000
  • 云供应商:AWS
  • 计算区域:美国东部
  • 排放产生的碳(功耗 x 时间 x 基于电网位置的碳产生量):15000 千克 CO2 相等

引用

@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