模型简介
模型特点
模型能力
使用案例
🚀 Stable Diffusion Inpainting 模型
Stable Diffusion Inpainting 是一个潜在文本到图像的扩散模型,能够根据任何文本输入生成逼真的图像,还具备通过使用掩码进行图像修复的额外能力。
🚀 快速开始
本仓库正按照 CreativeML OpenRAIL - M 许可证 重新上传至 HuggingFace。此许可证最初用于上传本仓库,特别是 第二节 授予了以下权利:
... 一项永久的、全球性的、非排他性的、免费的、免版税的、不可撤销的版权许可,用于复制、准备、公开展示、公开表演、转授权和分发补充材料、模型以及模型的衍生作品。
请注意,这些文件并非来自 HuggingFace,而是来自 [modelscope](https://www.modelscope.cn/models/AI - ModelScope/stable - diffusion - inpainting/files)。因此,原始仓库中存在的某些文件可能在此处缺失。文件完整性已通过校验和验证。
✨ 主要特性
- 能够根据文本输入生成逼真的图像。
- 具备图像修复功能,可通过掩码对图像进行修改。
📦 安装指南
文档中未提及具体安装步骤,可参考相关库的官方文档进行安装,如 🧨Diffusers 库。
💻 使用示例
基础用法
from diffusers import StableDiffusionInpaintPipeline
pipe = StableDiffusionInpaintPipeline.from_pretrained(
"benjamin-paine/stable-diffusion-v1-5-inpainting",
variant="fp16",
torch_dtype=torch.float16,
)
prompt = "Face of a yellow cat, high resolution, sitting on a park bench"
#image and mask_image should be PIL images.
#The mask structure is white for inpainting and black for keeping as is
image = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
image.save("./yellow_cat_on_park_bench.png")
高级用法
文档中未提及高级用法示例。
使用示例图示
How it works:
image |
mask_image |
---|---|
![]() |
![]() |
prompt |
Output |
---|---|
Face of a yellow cat, high resolution, sitting on a park bench | ![]() |
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发者 | Robin Rombach, Patrick Esser |
模型类型 | 基于扩散的文本到图像生成模型 |
语言 | 英语 |
许可证 | CreativeML OpenRAIL M 许可证 是一种 Open RAIL M 许可证,改编自 BigScience 和 RAIL Initiative 在负责任的人工智能许可领域的联合工作。另见 关于 BLOOM Open RAIL 许可证的文章,本许可证以此为基础。 |
模型描述 | 这是一个可用于根据文本提示生成和修改图像的模型。它是一个 潜在扩散模型,使用固定的预训练文本编码器 (CLIP ViT - L/14),如 Imagen 论文 中所建议。 |
更多信息资源 | 论文 |
引用格式 | @InProceedings{Rombach_2022_CVPR, |
用途
直接使用
该模型仅用于研究目的。可能的研究领域和任务包括:
- 安全部署有可能生成有害内容的模型。
- 探索和理解生成模型的局限性和偏差。
- 生成艺术作品并用于设计和其他艺术过程。
- 在教育或创意工具中的应用。
- 对生成模型的研究。
排除的使用情况如下所述。
滥用、恶意使用和超出范围的使用
注意:本节内容取自 [DALLE - MINI 模型卡片](https://huggingface.co/dalle - mini/dalle - mini),但同样适用于 Stable Diffusion v1。
该模型不应被用于故意创建或传播为人们创造敌对或疏离环境的图像。这包括生成人们可预见会感到不安、痛苦或冒犯的图像;或传播历史或当前刻板印象的内容。
超出范围的使用
该模型并非用于生成对人物或事件的事实或真实表述,因此使用该模型生成此类内容超出了该模型的能力范围。
滥用和恶意使用
使用该模型生成对个人残酷的内容是对该模型的滥用。这包括但不限于:
- 生成对人或其环境、文化、宗教等的贬低、非人化或其他有害表述。
- 故意推广或传播歧视性内容或有害刻板印象。
- 在未经个人同意的情况下冒充个人。
- 未经可能看到的人同意的色情内容。
- 错误和虚假信息。
- 严重暴力和血腥的表述。
- 违反版权或许可材料使用条款的共享。
- 违反版权或许可材料使用条款的对其进行修改后的内容共享。
局限性和偏差
局限性
- 模型无法实现完美的照片级真实感。
- 模型无法渲染清晰的文本。
- 模型在涉及组合性的更困难任务上表现不佳,例如渲染与 “一个红色立方体在蓝色球体上” 对应的图像。
- 面部和人物通常可能无法正确生成。
- 模型主要使用英文字幕进行训练,在其他语言中的效果不佳。
- 模型的自动编码部分存在信息损失。
- 模型在大规模数据集 [LAION - 5B](https://laion.ai/blog/laion - 5b/) 上进行训练,该数据集包含成人内容,在没有额外安全机制和考虑的情况下不适合产品使用。
- 未使用额外措施对数据集进行去重。因此,我们观察到对训练数据中重复的图像存在一定程度的记忆现象。可以在 [https://rom1504.github.io/clip - retrieval/](https://rom1504.github.io/clip - retrieval/) 上搜索训练数据,以帮助检测记忆的图像。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。Stable Diffusion v1 在 [LAION - 2B(en)](https://laion.ai/blog/laion - 5b/) 的子集上进行训练,该数据集主要由英文描述的图像组成。使用其他语言的社区和文化的文本和图像可能没有得到充分考虑。这影响了模型的整体输出,因为白人和西方文化通常被设定为默认。此外,模型使用非英文提示生成内容的能力明显不如使用英文提示。
训练
训练数据
模型开发者使用以下数据集进行模型训练:
- LAION - 2B (en) 及其子集(见下一节)
训练过程
Stable Diffusion 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](https://huggingface.co/datasets/laion/laion2B - en) 上以分辨率256x256
训练 237k 步。在 [laion - high - resolution](https://huggingface.co/datasets/laion/laion - high - resolution)(来自 LAION - 5B 的 170M 个分辨率>= 1024x1024
的示例)上以分辨率512x512
训练 194k 步。sd - v1 - 2.ckpt
:从sd - v1 - 1.ckpt
继续训练。在 “laion - improved - aesthetics”(laion2B - en 的一个子集,过滤到原始大小>= 512x512
、估计美学分数> 5.0
且估计水印概率< 0.5
的图像。水印估计来自 LAION - 5B 元数据,美学分数使用 [改进的美学估计器](https://github.com/christophschuhmann/improved - aesthetic - predictor) 进行估计)上以分辨率512x512
训练 515k 步。sd - v1 - 3.ckpt
:从sd - v1 - 2.ckpt
继续训练。在 “laion - improved - aesthetics” 上以分辨率512x512
训练 195k 步,并丢弃 10% 的文本条件以改进 无分类器引导采样。sd - v1 - 4.ckpt
:从 stable - diffusion - 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 采样进行评估,显示了检查点的相对改进:
在 512x512 分辨率下,使用 50 步 PLMS 采样和来自 COCO2017 验证集的 10000 个随机提示进行评估。未针对 FID 分数进行优化。
图像修复评估
为了评估图像修复模型的性能,我们使用了与 LDM 论文 中相同的评估协议。由于 Stable Diffusion 图像修复模型接受文本输入,我们简单地使用固定提示 photograph of a beautiful empty scene, highest quality settings
。
模型 | FID | LPIPS |
---|---|---|
Stable Diffusion Inpainting | 1.00 | 0.141 (+- 0.082) |
Latent Diffusion Inpainting | 1.50 | 0.137 (+- 0.080) |
CoModGAN | 1.82 | 0.15 |
LaMa | 2.21 | 0.134 (+- 0.080) |
环境影响
Stable Diffusion v1 估计排放量
基于这些信息,我们使用 Lacoste 等人 (2019) 中提出的 机器学习影响计算器 估计了以下 CO2 排放量。利用硬件、运行时间、云服务提供商和计算区域来估计碳影响。
- 硬件类型:A100 PCIe 40GB
- 使用小时数:150000
- 云服务提供商:AWS
- 计算区域:US - east
- 碳排放(功耗 x 时间 x 基于电网位置产生的碳):11250 kg CO2 eq.
📄 许可证
本仓库遵循 The CreativeML OpenRAIL M license。
引用
@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 模型卡片](https://huggingface.co/dalle - mini/dalle - mini)。

