模型简介
模型特点
模型能力
使用案例
🚀 稳定扩散 v1 - 5 模型卡片
稳定扩散(Stable Diffusion)是一种潜在的文本到图像的扩散模型,能够根据任何文本输入生成逼真的图像。更多关于稳定扩散如何工作的信息,请查看 🤗 的稳定扩散博客。
🚀 快速开始
你可以使用 🧨Diffusers 库 或 RunwayML GitHub 仓库 来使用这个模型。
💻 使用示例
基础用法
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, 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")
更多详细说明、用例和 JAX 中的示例,请遵循 此处 的说明。
从原始 GitHub 仓库使用
- 下载权重
- v1 - 5 - pruned - emaonly.ckpt - 4.27GB,仅 EMA 权重。使用较少的显存,适合推理。
- v1 - 5 - pruned.ckpt - 7.7GB,EMA + 非 EMA 权重。使用更多的显存,适合微调。
- 遵循 此处 的说明。
✨ 主要特性
- 能够根据文本输入生成逼真的图像。
- 可使用不同的库和仓库进行调用。
📚 详细文档
模型详情
- 开发者: Robin Rombach, Patrick Esser
- 模型类型: 基于扩散的文本到图像生成模型
- 语言: 英语
- 许可证: The CreativeML OpenRAIL M license 是一个 Open RAIL M license,改编自 BigScience 和 the RAIL Initiative 在负责任的人工智能许可领域的联合工作。另见 关于 BLOOM Open RAIL 许可证的文章,我们的许可证基于此。
- 模型描述: 这是一个可以根据文本提示生成和修改图像的模型。它是一个 潜在扩散模型,使用一个固定的预训练文本编码器 (CLIP ViT - L/14),如 Imagen 论文 中所建议。
- 更多信息资源: 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}
}
使用方式
直接使用
该模型仅用于研究目的。可能的研究领域和任务包括:
- 安全部署有可能生成有害内容的模型。
- 探索和理解生成模型的局限性和偏差。
- 生成艺术作品并用于设计和其他艺术过程。
- 在教育或创意工具中的应用。
- 对生成模型的研究。
排除的使用方式如下所述。
滥用、恶意使用和超出范围的使用
注意: 本节内容取自 DALLE - MINI 模型卡片,但同样适用于稳定扩散 v1。
该模型不应被用于故意创建或传播会给人们造成敌对或疏离环境的图像。这包括生成人们可预见会感到不安、痛苦或冒犯的图像,或传播历史或当前刻板印象的内容。
超出范围的使用
该模型并非用于对人物或事件进行事实或真实的呈现,因此使用该模型生成此类内容超出了该模型的能力范围。
滥用和恶意使用
使用该模型生成对个人残酷的内容是对该模型的滥用。这包括但不限于:
- 生成贬低、非人化或以其他方式伤害人们或其环境、文化、宗教等的表现形式。
- 故意推广或传播歧视性内容或有害的刻板印象。
- 在未经个人同意的情况下冒充他人。
- 未经可能看到的人的同意生成色情内容。
- 虚假和误导性信息。
- 令人震惊的暴力和血腥场景的表现形式。
- 违反版权或许可材料使用条款进行分享。
- 违反版权或许可材料使用条款分享其修改后的内容。
局限性和偏差
局限性
- 模型无法实现完美的照片写实效果。
- 模型无法渲染清晰可读的文本。
- 模型在涉及组合性的更困难任务上表现不佳,例如渲染与 “一个红色立方体在蓝色球体上” 对应的图像。
- 面部和人物总体上可能无法正确生成。
- 模型主要使用英语字幕进行训练,在其他语言中的效果不佳。
- 模型的自动编码部分存在信息损失。
- 模型在大规模数据集 LAION - 5B 上进行训练,该数据集包含成人内容,在没有额外安全机制和考虑的情况下不适合产品使用。
- 未采取额外措施对数据集进行去重。因此,我们观察到模型对训练数据中重复的图像有一定程度的记忆。可以在 https://rom1504.github.io/clip - retrieval/ 上搜索训练数据,以帮助检测记忆的图像。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。稳定扩散 v1 在 LAION - 2B(en) 的子集上进行训练,该子集主要由英语描述的图像组成。使用其他语言的社区和文化的文本和图像可能没有得到充分考虑。这影响了模型的整体输出,因为白人和西方文化往往被设定为默认。此外,模型使用非英语提示生成内容的能力明显低于使用英语提示。
安全模块
该模型的预期使用方式是结合 Diffusers 中的 安全检查器。该检查器通过将模型输出与已知的硬编码 NSFW 概念进行比对来工作。这些概念被故意隐藏,以降低反向工程此过滤器的可能性。具体来说,检查器在图像生成 之后,在 CLIPTextModel
的嵌入空间中比较有害概念的类别概率。这些概念与生成的图像一起传入模型,并与每个 NSFW 概念的手工设计权重进行比较。
训练
训练数据
模型开发者使用以下数据集进行模型训练:
- LAION - 2B (en) 及其子集(见下一节)
训练过程
稳定扩散 v1 - 5 是一个潜在扩散模型,它将自动编码器与在自动编码器的潜在空间中训练的扩散模型相结合。在训练过程中:
- 图像通过编码器进行编码,将图像转换为潜在表示。自动编码器使用相对下采样因子 8,将形状为 H x W x 3 的图像映射到形状为 H/f x W/f x 4 的潜在表示。
- 文本提示通过 ViT - L/14 文本编码器进行编码。
- 文本编码器的非池化输出通过交叉注意力输入到潜在扩散模型的 UNet 主干中。
- 损失是添加到潜在表示中的噪声与 UNet 预测之间的重建目标。
目前提供了六个稳定扩散检查点,它们的训练方式如下:
-
stable - diffusion - v1 - 1
:在 laion2B - en 上以256x256
分辨率训练 237,000 步。在 laion - high - resolution(来自 LAION - 5B 的 170M 个分辨率>= 1024x1024
的示例)上以512x512
分辨率训练 194,000 步。 -
stable - diffusion - v1 - 2
:从stable - diffusion - v1 - 1
继续训练。在 “laion - improved - aesthetics”(laion2B - en 的一个子集,过滤为原始大小>= 512x512
、估计美学分数> 5.0
且估计水印概率< 0.5
的图像。水印估计来自 LAION - 5B 元数据,美学分数使用 改进的美学估计器 进行估计)上以512x512
分辨率训练 515,000 步。 -
stable - diffusion - v1 - 3
:从stable - diffusion - v1 - 2
继续训练 - 在 “laion - improved - aesthetics” 上以512x512
分辨率训练 195,000 步,并丢弃 10% 的文本条件以改进 无分类器引导采样。 -
stable - diffusion - v1 - 4
从stable - diffusion - v1 - 2
继续训练 - 在 “laion - aesthetics v2 5+” 上以512x512
分辨率训练 225,000 步,并丢弃 10% 的文本条件以改进 无分类器引导采样。 -
stable - diffusion - v1 - 5
从stable - diffusion - v1 - 2
继续训练 - 在 “laion - aesthetics v2 5+” 上以512x512
分辨率训练 595,000 步,并丢弃 10% 的文本条件以改进 无分类器引导采样。 -
stable - diffusion - inpainting
从stable - diffusion - v1 - 5
继续训练 - 然后在 “laion - aesthetics v2 5+” 上以 512x512 分辨率进行 440,000 步的修复训练,并丢弃 10% 的文本条件。对于修复,UNet 有 5 个额外的输入通道(4 个用于编码的掩码图像,1 个用于掩码本身),其权重在恢复非修复检查点后初始化为零。在训练过程中,我们生成合成掩码,并在 25% 的情况下对所有内容进行掩码。 -
硬件: 32 x 8 x A100 GPUs
-
优化器: AdamW
-
梯度累积: 2
-
批次: 32 x 8 x 2 x 4 = 2048
-
学习率: 在 10,000 步内预热到 0.0001,然后保持不变
评估结果
使用不同的无分类器引导尺度(1.5、2.0、3.0、4.0、5.0、6.0、7.0、8.0)和 50 个 PNDM/PLMS 采样步骤进行评估,显示了检查点的相对改进:
使用 50 个 PLMS 步骤和来自 COCO2017 验证集的 10000 个随机提示进行评估,在 512x512 分辨率下进行评估。未针对 FID 分数进行优化。
环境影响
稳定扩散 v1 估计排放量
基于这些信息,我们使用 Lacoste 等人(2019) 中提出的 机器学习影响计算器 估计了以下 CO2 排放量。利用硬件、运行时间、云服务提供商和计算区域来估计碳影响。
- 硬件类型: A100 PCIe 40GB
- 使用小时数: 150000
- 云服务提供商: AWS
- 计算区域: US - east
- 碳排放(功耗 x 时间 x 基于电网位置产生的碳): 11250 kg CO2 eq.
📄 许可证
本模型采用 CreativeML OpenRAIL - M 许可证。该许可证规定:
- 您不能使用该模型故意生成或分享非法或有害的输出或内容。
- CompVis 对您生成的输出不主张任何权利,您可以自由使用它们,但需对其使用负责,且使用不得违反许可证中的规定。
- 您可以重新分发权重,并将该模型用于商业用途和/或作为服务。如果您这样做,请务必包含与许可证中相同的使用限制,并向您的所有用户分享一份 CreativeML OpenRAIL - M 许可证副本(请仔细阅读完整的许可证)。
请在此处仔细阅读完整的许可证:https://huggingface.co/spaces/CompVis/stable - diffusion - license

