英文

Stable Diffusion v1-1 模型卡片

Stable Diffusion 是一种潜在的文本到图像扩散模型,可以根据任意文本输入生成逼真的图像。有关 Stable Diffusion 的详细功能信息,请参阅 ?'s Stable Diffusion with D?iffusers blog

Stable-Diffusion-v1-1 在 laion2B-en 上以 256x256 的分辨率训练了 237,000 步,然后在 laion-high-resolution 上以 512x512 的分辨率进行了 194,000 步训练(使用 LAION-5B 中超过 170M 个分辨率 >= 1024x1024 的示例)。更多信息,请参阅 训练 。

这里的权重预期用于 D?iffusers 库。如果您正在寻找要加载到 CompVis Stable Diffusion 代码库中的权重,请参考 come here

模型详情

  • 开发者:Robin Rombach,Patrick Esser

  • 模型类型:基于扩散的文本到图像生成模型

  • 语言:英语

  • 许可证: The CreativeML OpenRAIL M license Open RAIL M license 的改编版本,根据 BigScience the RAIL Initiative 在负责任的 AI 许可方面的共同工作进行了调整。请参阅我们的许可证所基于的 the article about the BLOOM Open RAIL license

  • 模型描述:这是一个可以用于根据文本提示生成和修改图像的模型。它是一个 Latent Diffusion Model ,使用一个固定的、预训练的文本编码器( CLIP ViT-L/14 )作为 Imagen paper 所建议的。

  • 更多信息资源: GitHub Repository Paper

  • 引用方式:

    @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。

pip install --upgrade diffusers transformers scipy

使用默认的 PNDM 调度器运行流水线:

import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

model_id = "CompVis/stable-diffusion-v1-1"
device = "cuda"


pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe = pipe.to(device)

prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt)["sample"][0]  
    
image.save("astronaut_rides_horse.png")

注意:如果您的 GPU 内存受限,只有少于 10GB 的 GPU RAM 可用,请确保以 float16 精度而不是默认的 float32 精度加载 StableDiffusionPipeline,可以通过告知 diffusers 期望权重为 float16 精度来实现:

import torch

pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)

prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt, guidance_scale=7.5)["sample"][0]  
    
image.save("astronaut_rides_horse.png")

要更换噪声调度器,请将其传递给 from_pretrained :

from diffusers import StableDiffusionPipeline, LMSDiscreteScheduler

model_id = "CompVis/stable-diffusion-v1-1"
# Use the K-LMS scheduler here instead
scheduler = LMSDiscreteScheduler(beta_start=0.00085, beta_end=0.012, beta_schedule="scaled_linear", num_train_timesteps=1000)
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, use_auth_token=True)
pipe = pipe.to("cuda")

prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt, guidance_scale=7.5)["sample"][0]  
    
image.save("astronaut_rides_horse.png")

用途

直接使用

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

  • 安全部署可能生成有害内容的模型。
  • 探究和理解生成模型的局限性和偏见。
  • 生成艺术品并用于设计和其他艺术过程。
  • 应用于教育或创造性工具。
  • 生成模型的研究。

不适用的用途在下面有描述。

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

注意:这一部分取自 DALLE-MINI model card ,但同样适用于 Stable Diffusion v1。

该模型不应用于故意创建或传播可能对人们产生敌对或疏远环境的图像。这包括生成人们预计会感到恶心、痛苦或冒犯的图像,或者传播历史上的或当前的刻板印象的内容。

超出范围的使用

模型不是为了成为关于人或事件真实表示的事实依据,因此使用模型生成此类内容超出了模型的能力范围。

不当和恶意使用

使用模型生成虐待个人的内容是对该模型的不当使用。这包括但不限于:

  • 生成贬低、贬低或以其他方式伤害人们或其环境、文化、宗教等的有害表示。
  • 故意推广或传播歧视性内容或有害刻板印象。
  • 未经个人同意进行身份冒充。
  • 未经可能看到的人同意的性内容。
  • 误导和不实信息
  • 极端暴力和血腥的表现
  • 共享受版权保护的或受许可条款限制的材料
  • 共享违反版权或许可条款的已更改的材料

限制和偏见

限制

  • 该模型无法实现完美的照片逼真度
  • 该模型无法渲染可读的文本
  • 该模型在涉及合成性的更复杂任务上表现不佳,例如渲染与“红色立方体位于蓝色球体之上”相对应的图像
  • 人脸和人物可能无法正确生成。
  • 模型主要是使用英文标题进行训练的,对其他语言的适应能力较差。
  • 模型的自编码部分有损失
  • 模型是在包含成人内容的大规模数据集 LAION-5B 上进行训练的,如果没有附加的安全机制和考虑因素,不适合用于产品。
  • 未使用其他措施对数据集进行重复删除。因此,我们观察到训练数据中对重复出现的图像有一定程度的记忆效应。训练数据可以在 https://rom1504.github.io/clip-retrieval/ 处搜索,可能有助于检测那些存在记忆化图像的情况。

偏见

尽管图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。Stable Diffusion v1 是在 LAION-2B(en) 的子集上进行训练的,该数据集主要包含英文描述的图像。来自使用其他语言的社区和文化的文本和图像可能未能得到充分考虑。这会影响模型的整体输出,因为白人和西方文化往往被设定为默认值。此外,与使用英语提示相比,模型以非英语提示生成内容的能力明显较差。

训练

训练数据

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

  • LAION-2B (en) 及其子集(见下一节)

训练过程

Stable Diffusion v1-4 是一个潜在的扩散模型,它将自编码器与在自编码器的潜空间中训练的扩散模型相结合。训练过程中,

  • 通过编码器对图像进行编码,将图像转换为潜变量表示。自编码器使用相对下采样因子为 8,将形状为 H x W x 3 的图像映射到形状为 H/f x W/f x 4 的潜变量
  • 文本提示通过 ViT-L/14 文本编码器进行编码。
  • 文本编码器的非汇总输出通过交叉注意力输入到潜空间扩散模型的 UNet 主干网络中。
  • 损失是潜变量添加的噪声与 UNet 预测之间的重构目标。

我们目前提供四个检查点,其训练如下。

训练细节

  • 硬件:32 x 8 x A100 GPUs
  • 优化器:AdamW
  • 梯度累积:2
  • Batch: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 个 PLMS 抽样步骤对检查点进行了评估,结果显示了相对的改进:

使用 50 个 PLMS 步骤和 COCO2017 验证集中的 10000 个随机提示进行评估,评估分辨率为 512x512 。没有针对 FID 分数进行优化。

环境影响

Stable Diffusion v1 估计的排放量基于使用 Machine Learning Impact calculator Lacoste et al. (2019) 中提供的信息。硬件、运行时间、云提供商和计算区域用于估计碳排放量。

  • 硬件类型:A100 PCIe 40GB
  • 使用小时数:150000
  • 云提供商:AWS
  • 计算区域:US-east
  • 排放的碳量(电量消耗 x 时间 x 根据电源网格位置产生的碳):11250 公斤 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,基于 DALL-E Mini model card 编写。