模型:

stabilityai/stable-diffusion-2-inpainting

英文

Stable Diffusion v2 模型卡

该模型卡关注的是 Stable Diffusion v2 模型,可在 here 中获得。

stable-diffusion-2-inpainting 模型从 stable-diffusion-2-base (512-base-ema.ckpt) 恢复,并进行了另外20w步的训练。采用了 LAMA 中提出的遮罩生成策略,结合掩码图像的潜在变分自编码器表示,作为附加的条件。

模型详细信息

  • 开发者: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 inpainting。

pip install diffusers transformers accelerate scipy safetensors
from diffusers import StableDiffusionInpaintPipeline
pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-inpainting",
    torch_dtype=torch.float16,
)
pipe.to("cuda")
prompt = "Face of a yellow cat, high resolution, sitting on a park bench"
#image and mask_image should be PIL images.
#The mask structure is white for inpainting and black for keeping as is
image = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
image.save("./yellow_cat_on_park_bench.png")

注意:

  • 尽管不是一个依赖项,但我们强烈建议您安装 xformers 以实现内存高效的注意力(更好的性能)
  • 如果您的GPU内存较低,请确保在将其发送到cuda后添加 pipe.enable_attention_slicing() 以减少VRAM使用(牺牲速度)

工作原理:

12334321 12335321
image mask_image
12336321
prompt Output
Face of a yellow cat, high resolution, sitting on a park bench

用途

直接使用

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

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

下文描述了不适用的用途。

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

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

不能使用该模型有意创建或传播可能导致人们感到敌对或疏远的图像。这包括生成人们可以预见到的令人不安、痛苦或冒犯的图像;或者传播历史上或现实中的刻板印象的内容。

超出范围的使用

该模型未经过训练,无法更准确地表示人物或事件的真实情况,因此使用该模型生成此类内容超出了该模型的能力范围。

误用和恶意使用

误用该模型生成对个人不利的内容属于对该模型的误用。这包括但不限于:

  • 生成贬损、贬低或其他有害人物、环境、文化、宗教等的描绘。
  • 故意推广或传播具有歧视性内容或有害刻板印象。
  • 未经个人同意冒充个人。
  • 未经可能看到的人的同意的性内容。
  • 虚假和失实信息
  • 极端暴力和血腥的描绘
  • 共享违反版权或许可条款的受版权保护或许可的材料。
  • 共享违反版权或许可条款的经修改的受版权保护或许可的材料。

限制和偏差

限制

  • 该模型无法实现完美的照片级逼真度
  • 该模型无法呈现可读的文本
  • 该模型在涉及组合性更强的任务(如渲染与“在蓝色球的顶部的红色立方体”相对应的图像)上表现不佳
  • 脸部和人物可能无法正确生成。
  • 该模型主要使用英文标题进行训练,对其他语言的支持效果较差。
  • 模型的自编码部分具有损失
  • 该模型训练于包含成人、暴力和性内容的数据集 LAION-5B 的子集。为了部分缓解这一问题,我们使用LAION的NFSW检测器来过滤数据集(请参见培训部分)。

偏差

尽管图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。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

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

  • 512-base-ema.ckpt:在分辨率 256x256 上的 550k 步,使用过滤了明确的色情材料的 LAION-5B 数据集,使用 LAION-NSFW classifier 设置 punsafe=0.1 和分辨率 >= 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 中提出的遮罩生成策略,将遮罩图像的潜在变分自编码器表示与其结合作为附加条件。处理这些额外信息的U-Net的额外输入通道被初始化为零。相同的策略用于训练 1.5-inpainting checkpoint

  • x4-upscaling-ema.ckpt:在 LAION 的 1000 万个子集(>2048x2048)上训练了 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 取样步骤对检查点进行了评估,显示了相对的改进:

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

环境影响

Stable Diffusion v1 估计的排放量 基于该信息,我们使用 Machine Learning Impact calculator 中介绍的 Lacoste et al. (2019) 估算了以下碳排放量。硬件、运行时间、云提供商和计算区域被用来估计碳影响。

  • 硬件类型:A100 PCIe 40GB
  • 使用时间:200000 小时
  • 云提供商:AWS
  • 计算区域:US-east
  • 排放的碳量(能耗 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