模型:

stabilityai/stable-diffusion-2-depth

英文

Stable Diffusion v2模型卡

本模型卡主要介绍与Stable Diffusion v2模型相关的内容,可在 here 下载。

该stable-diffusion-2-depth模型是从 stable-diffusion-2-base (512-base-ema.ckpt)中恢复,并经过20万步的微调。添加了一个额外的输入通道,用于处理由 MiDaS (dpt_hybrid)生成的(相对)深度预测,作为附加的条件。

模型细节

  • 开发者: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 -U git+https://github.com/huggingface/transformers.git
pip install diffusers transformers accelerate scipy safetensors

运行管道(如果您不交换调度程序,默认使用DDIM,这里我们将其替换为EulerDiscreteScheduler):

import torch
import requests
from PIL import Image
from diffusers import StableDiffusionDepth2ImgPipeline

pipe = StableDiffusionDepth2ImgPipeline.from_pretrained(
   "stabilityai/stable-diffusion-2-depth",
   torch_dtype=torch.float16,
).to("cuda")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
init_image = Image.open(requests.get(url, stream=True).raw)

prompt = "two tigers"
n_propmt = "bad, deformed, ugly, bad anotomy"
image = pipe(prompt=prompt, image=init_image, negative_prompt=n_propmt, strength=0.7).images[0]

注意:

  • 尽管不是必需的,但强烈推荐您安装 xformers 以实现内存高效的注意力(更好的性能)
  • 如果您的GPU RAM较低,请确保在将其发送到cuda之后添加pipe.enable_attention_slicing()以减少VRAM的使用(以速度为代价)

用途

直接使用

此模型仅供研究目的使用。可能的研究领域和任务包括

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

以下是不包括在内的用途。

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

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

不得使用该模型有意创建或传播人们会预见到的令人不安、苦恼或冒犯的图像,或者传播历史上或现在的刻板印象的内容。

不在范围内的使用

该模型的训练目标不是真实信息或事件的准确表示,因此使用该模型生成此类内容超出了该模型的能力范围。

滥用和恶意使用

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

  • 生成贬低、贬损或以其他方式对人、环境、文化、宗教等造成伤害的表达
  • 有意宣传或传播歧视性内容或有害刻板印象
  • 未经个人同意即冒充个人
  • 未经查看者同意的性内容
  • 误导和虚假信息
  • 表示严重暴力和血腥
  • 共享受版权或许可证保护的材料,违反其使用条款
  • 分享对受版权或许可保护的材料进行修改的内容,违反其使用条款

局限性和偏差

局限性

  • 该模型无法达到完美的照片真实性
  • 该模型无法呈现清晰可辨的文本
  • 该模型在涉及组合性等较困难的任务中表现不佳,例如渲染与“红色立方体放在蓝色球上”相对应的图像
  • 面部和人物可能无法正确生成
  • 该模型主要是使用英文标题进行训练的,对其他语言的支持效果较差
  • 模型的自编码部分存在损失
  • 该模型是在包含成人内容、暴力和性内容的大规模数据集 LAION-5B 的子集上进行训练的。为了部分减轻这一问题,我们使用了LAION的NFSW检测器对数据集进行了过滤(有关培训的详细信息,请参阅LAION-5B的 NeurIPS 2022 论文和审稿人对此主题的讨论)。

偏差

尽管图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。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上进行了55万步训练,使用了经过过滤的包含明确色情材料的 LAION-5B 子集,使用每秒不安全的奉献(punsafe=0.1)和 aesthetic score >= 4.5。在相同的数据集上,分辨率大于等于512x512,进行了85万步训练。
  • 768-v-ema.ckpt:从512-base-ema.ckpt恢复,在相同数据集上进行了15万步训练,使用 v-objective 。然后从768x768子集上继续训练另外14万步。
  • 512-depth-ema.ckpt:从512-base-ema.ckpt恢复,并进行了20万步的微调。添加了额外的输入通道,用于处理由 MiDaS (dpt_hybrid)生成的(相对)深度预测,作为附加的条件。处理这些额外信息的UNet的额外输入通道被初始化为零。
  • 512-inpainting-ema.ckpt:从512-base-ema.ckpt恢复,并进行了20万步的训练。遵循 LAMA 中介绍的掩膜生成策略,结合遮盖图像的潜在VAE表示,作为附加条件。处理这些额外信息的UNet的额外输入通道被初始化为零。相同的策略用于训练 1.5-inpainting checkpoint
  • x4-upscaling-ema.ckpt:在包含大于2048x2048的图像的1000万个LAION子集上进行了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的前1万步,然后保持不变

评估结果

使用不同的无分类器引导尺度(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 进行的。功耗估计了电力消耗、时间和基于电力网格位置的产生的二氧化碳排放。

  • 硬件类型:A100 PCIe 40GB
  • 使用时间:200000小时
  • 云提供商:AWS
  • 计算区域:US-east
  • 排放的碳量(功耗 x 时间 x 基于电力网格位置的产生的碳量):15000 kg CO2 eq.

引用

@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