本模型卡片专注于 Stable Diffusion v2-1-base 模型。
stable-diffusion-2-1-base 模型在 stable-diffusion-2-base(512-base-ema.ckpt)的基础上进行了 22 万步的额外训练,训练数据集相同,punsafe=0.98。
stablediffusion 仓库:下载 v2-1_512-ema-pruned.ckpt 在此。diffusers开发者: Robin Rombach, Patrick Esser
模型类型: 基于扩散的文本到图像生成模型
语言: 英语
模型描述: 这是一个可以根据文本提示生成和修改图像的模型。它是一个 Latent Diffusion Model,使用了一个固定的预训练文本编码器(OpenCLIP-ViT/H)。
更多信息资源: GitHub 仓库。
引用:
@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 库 以简单高效的方式运行 Stable Diffusion 2。
pip install diffusers transformers accelerate scipy safetensors运行管道(如果不替换调度器,它将使用默认的PNDM/PLMS调度器运行,在此示例中,我们将其更改为EulerDiscreteScheduler):
执行管道流程时,若不进行调度器的替换,系统将采用默认的PNDM或PLMS调度策略。但在此示范中,我们选择将调度器更换为Euler离散调度器。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")注意事项:
cuda 后添加 pipe.enable_attention_slicing(),以减少 VRAM 使用(但会牺牲速度)。该模型仅用于研究目的。可能的研究领域和任务包括:
以下列出了排除的用途。
注意:本节内容最初取自 DALLE-MINI 模型卡,曾用于 Stable Diffusion v1,但同样适用于 Stable Diffusion v2。
该模型不应被用于故意创建或传播可能对人们造成敌对或排斥环境的图像。这包括生成人们可预见会感到不安、痛苦或冒犯的图像;或传播历史或当前的刻板印象的内容。
该模型未经过训练以成为人物或事件的真实或准确表示,因此使用该模型生成此类内容超出了该模型的能力范围。
使用该模型生成对个人造成伤害的内容是对该模型的误用。这包括但不限于:
尽管图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。 Stable Diffusion vw 主要在 LAION-2B(en) 的子集上进行训练, 该子集仅限于英语描述的图像。 使用其他语言的社区和文化的文本和图像可能未得到充分考虑。 这影响了模型的整体输出,因为白人和西方文化通常被设定为默认值。此外, 该模型生成非英语提示内容的能力显著低于英语提示内容。 Stable Diffusion v2 在很大程度上反映了并加剧了这些偏见,以至于无论输入或意图如何,都必须建议观众谨慎对待。
训练数据 模型开发者使用以下数据集进行模型训练:
训练过程 Stable Diffusion v2 是一种潜在扩散模型,结合了自动编码器和在自动编码器潜在空间中训练的扩散模型。在训练过程中,
我们目前提供以下检查点,适用于各种版本:
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 次额外步骤的微调。512-base-ema.ckpt:在分辨率为 256x256 的 LAION-5B 子集上进行了 550k 步训练,该子集经过过滤以排除明确的色情材料,使用 LAION-NSFW 分类器 的 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 检查点。
x4-upscaling-ema.ckpt:在包含 >2048x2048 图像的 10M 子集 LAION 上进行了 1.25M 步训练。该模型在 512x512 大小的裁剪图像上进行训练,是一种文本引导的 潜在上采样扩散模型。除了文本输入外,它还接收一个 noise_level 作为输入参数,可根据 预定义的扩散计划 向低分辨率输入添加噪声。
硬件: 32 x 8 x A100 GPU
优化器: 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 估算排放量 基于这些信息,我们使用机器学习影响计算器估算了以下CO2排放量,该计算器在Lacoste et al. (2019)中提出。硬件、运行时间、云服务提供商和计算区域被用于估算碳影响。
@InProceedings{Rombach_2022_CVPR, author = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj"orn}, title = {高分辨率图像合成与潜在扩散模型}, booktitle = {IEEE/CVF计算机视觉与模式识别会议(CVPR)论文集}, month = {六月}, year = {2022}, pages = {10684-10695} }
本模型卡由Robin Rombach、Patrick Esser和David Ha撰写,基于Stable Diffusion v1和DALL-E Mini模型卡。