模型简介
模型特点
模型能力
使用案例
🚀 稳定扩散图像修复模型
稳定扩散图像修复模型是一种潜在的文本到图像扩散模型,能够根据任何文本输入生成逼真的图像,还具备通过使用掩码对图片进行修复的额外能力。
🚀 快速开始
稳定扩散图像修复模型可以根据文本输入生成逼真图像,还能利用掩码对图片进行修复。你可以使用以下两种方式使用该模型:
使用🧨Diffusers库
from diffusers import StableDiffusionInpaintPipeline
pipe = StableDiffusionInpaintPipeline.from_pretrained(
"runwayml/stable-diffusion-inpainting",
revision="fp16",
torch_dtype=torch.float16,
)
prompt = "Face of a yellow cat, high resolution, sitting on a park bench"
# image和mask_image应该是PIL图像。
# 掩码结构中,白色部分表示要修复的区域,黑色部分表示保持原样
image = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
image.save("./yellow_cat_on_park_bench.png")
运行原理:
图像 |
掩码图像 |
---|---|
![]() |
![]() |
提示词 |
输出结果 |
---|---|
Face of a yellow cat, high resolution, sitting on a park bench | ![]() |
使用原始GitHub仓库
- 下载权重文件 sd-v1-5-inpainting.ckpt
- 遵循此处的说明操作。
✨ 主要特性
- 能够根据文本输入生成逼真的图像。
- 具备图像修复能力,可通过掩码对图片进行修复。
📚 详细文档
模型详情
- 开发者:Robin Rombach, Patrick Esser
- 模型类型:基于扩散的文本到图像生成模型
- 语言:英语
- 许可证:CreativeML OpenRAIL M许可证 是一种 Open RAIL M许可证,改编自 BigScience 和 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) 的子集上进行训练,该数据集主要由英语描述的图像组成。来自使用其他语言的社区和文化的文本和图像可能没有得到充分考虑。这影响了模型的整体输出,因为白人和西方文化通常被设定为默认值。此外,模型使用非英语提示词生成内容的能力明显低于使用英语提示词的情况。
训练
训练数据
模型开发者使用以下数据集对模型进行训练:
- LAION-2B (en) 及其子集(见下一节)
训练过程
稳定扩散v1是一个潜在扩散模型,它将自动编码器与在自动编码器潜在空间中训练的扩散模型相结合。在训练过程中:
- 图像通过编码器进行编码,将图像转换为潜在表示。自动编码器使用相对下采样因子8,将形状为 H x W x 3 的图像映射到形状为 H/f x W/f x 4 的潜在表示。
- 文本提示通过ViT-L/14文本编码器进行编码。
- 文本编码器的非池化输出通过交叉注意力输入到潜在扩散模型的UNet主干中。
- 损失是添加到潜在表示中的噪声与UNet预测之间的重建目标。
我们目前提供六个检查点,sd-v1-1.ckpt
、sd-v1-2.ckpt
、sd-v1-3.ckpt
、sd-v1-4.ckpt
、sd-v1-5.ckpt
和 sd-v1-5-inpainting.ckpt
,它们的训练方式如下:
-
sd-v1-1.ckpt
:在 laion2B-en 上以分辨率256x256
进行237k步训练。在 laion-high-resolution(来自LAION-5B的分辨率>= 1024x1024
的170M个示例)上以分辨率512x512
进行194k步训练。 -
sd-v1-2.ckpt
:从sd-v1-1.ckpt
继续训练。在 “laion-improved-aesthetics”(laion2B-en的一个子集,过滤为原始大小>= 512x512
、估计美学分数> 5.0
且估计水印概率< 0.5
的图像。水印估计来自LAION-5B元数据,美学分数使用 改进的美学估计器 进行估计)上以分辨率512x512
进行515k步训练。 -
sd-v1-3.ckpt
:从sd-v1-2.ckpt
继续训练。在 “laion-improved-aesthetics” 上以分辨率512x512
进行195k步训练,并以10%的概率丢弃文本条件以改进 无分类器引导采样。 -
sd-v1-4.ckpt
:从稳定扩散v1-2继续训练。在 “laion-aesthetics v2 5+” 上以分辨率512x512进行225,000步训练,并以10%的概率丢弃文本条件以进行 无分类器引导采样。 -
sd-v1-5.ckpt
:从sd-v1-2.ckpt继续训练。在 “laion-aesthetics v2 5+” 上以分辨率512x512进行595k步训练,并以10%的概率丢弃文本条件以改进无分类器引导采样。 -
sd-v1-5-inpaint.ckpt
:从sd-v1-2.ckpt继续训练。在 “laion-aesthetics v2 5+” 上以分辨率512x512进行595k步训练,并以10%的概率丢弃文本条件以改进无分类器引导采样。然后在 “laion-aesthetics v2 5+” 上以分辨率512x512进行440k步的图像修复训练,并以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个PLMS采样步骤进行评估,显示了检查点的相对改进情况:
使用50个PLMS步骤和来自COCO2017验证集的10000个随机提示进行评估,评估分辨率为512x512。未针对FID分数进行优化。
图像修复评估
为了评估图像修复模型的性能,我们使用了与 LDM论文 中相同的评估协议。由于稳定扩散图像修复模型接受文本输入,我们简单地使用了固定提示 photograph of a beautiful empty scene, highest quality settings
。
模型 | FID | LPIPS |
---|---|---|
稳定扩散图像修复模型 | 1.00 | 0.141 (+- 0.082) |
潜在扩散图像修复模型 | 1.50 | 0.137 (+- 0.080) |
CoModGAN | 1.82 | 0.15 |
LaMa | 2.21 | 0.134 (+- 0.080) |
环境影响
稳定扩散v1估计排放量
基于该信息,我们使用 Lacoste等人(2019) 中提出的 机器学习影响计算器 估计了以下二氧化碳排放量。利用硬件、运行时间、云服务提供商和计算区域来估计碳影响。
- 硬件类型:A100 PCIe 40GB
- 使用时长:150000小时
- 云服务提供商:AWS
- 计算区域:美国东部
- 碳排放(功耗 x 时间 x 基于电网位置产生的碳):11250千克二氧化碳当量
🔧 技术细节
模型初始化
Stable-Diffusion-Inpainting 模型使用 Stable-Diffusion-v-1-2 的权重进行初始化。首先进行595k步的常规训练,然后在分辨率为512x512的 “laion-aesthetics v2 5+” 数据集上进行440k步的图像修复训练,并以10%的概率丢弃文本条件以改进 无分类器引导采样。
图像修复训练
对于图像修复,UNet有5个额外的输入通道(4个用于编码的掩码图像,1个用于掩码本身),其权重在恢复非图像修复检查点后初始化为零。在训练过程中,我们生成合成掩码,并在25%的情况下对整个图像进行掩码。
📄 许可证
该模型使用 CreativeML OpenRAIL M许可证。在使用该模型之前,请仔细阅读完整的许可证内容。
在获取此模型之前,还需完成以下步骤: 此模型为开放访问模型,所有人均可使用,同时附带CreativeML OpenRAIL - M许可证,该许可证进一步明确了使用权利和规则。
CreativeML OpenRAIL许可证规定:
- 不得使用该模型故意生成或分享非法或有害的输出或内容。
- CompVis对您生成的输出不主张任何权利,您可以自由使用这些输出,但需对其使用负责,且使用不得违反许可证中的规定。
- 您可以重新分发模型权重,并将模型用于商业用途和/或作为服务使用。如果您这样做,请务必包含与许可证中相同的使用限制,并向所有用户提供CreativeML OpenRAIL - M许可证的副本(请完整且仔细地阅读许可证)。
请在此处阅读完整的许可证:https://huggingface.co/spaces/CompVis/stable-diffusion-license
通过点击下面的 “访问仓库”,您也同意您的 联系信息(电子邮件地址和用户名)可以与模型作者共享。

