英文

Stable Diffusion v1-2 模型卡

Stable Diffusion 是一个潜在的文本到图像扩散模型,可以根据任何文本输入生成逼真的图像。关于 Stable Diffusion 的功能的更多信息,请查看 ?'s Stable Diffusion with D?iffusers blog

Stable-Diffusion-v1-2 检查点是使用 Stable-Diffusion-v1-1 检查点的权重初始化的,并在 laion-improved-aesthetics 数据集上的 515,000 步训练,分辨率为 512x512 (laion2B-en 的子集,过滤掉原始大小大于等于 512x512 的图像,美学评分大于 5.0,无水印的图像)。更多信息,请参阅 come here

模型细节

  • 开发者:Robin Rombach,Patrick Esser

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

  • 语言:英语

  • 许可证: The CreativeML OpenRAIL 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-2"
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 内存有限且可用的 GPU RAM 少于 10GB,请确保加载 StableDiffusionPipeline 时使用 float16 精度而不是默认的 float32 精度。您可以通过告诉 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-2"
# 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
  • 批次大小: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
  • 计算区域:美国东部
  • 排放的碳(能耗 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 的模型卡。