Stable Diffusion v1.5 Inpainting 项目介绍
项目背景
Stable Diffusion Inpainting 是一种稳定扩散的图像生成模型,它能够基于文字描述生成逼真的图像,并且具备图像修复(Inpainting)的功能。图像修复功能通过使用掩码(mask)来对图像进行特定区域的修补和重绘。
模型开发与训练
模型初始化:Stable-Diffusion-Inpainting 模型以 Stable-Diffusion-v-1-2 的权重为基础进行了初始化。
训练步骤:
- 常规训练:首先进行 595,000 步的常规训练。
- 修复训练:在图像分辨率 512x512 上进行 440,000 步的修复训练。
- 数据集:训练使用 "laion-aesthetics v2 5+" 数据集,并在部分训练步骤中随机丢弃 10% 的文本条件以提高采样的分类器自由度。
- 模型结构:UNet 网络在修复过程中增加了 5 个输入通道,以便处理编码后的掩码图像和掩码本身。
模型使用
用户可以通过 Diffusers 库 或 RunwayML GitHub 仓库 来实现和使用此模型。以下是示例代码选段:
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 = pipe(prompt=prompt, image=image, mask_image=mask_image).images[0]
image.save("./yellow_cat_on_park_bench.png")
使用限制与风险防范
该模型开放供科研用途,包括:
- 模型可能生成有害内容的安全部署研究。
- 探索和理解生成模型的局限性和偏差。
- 在艺术创作和设计过程中的应用。
但是,模型严禁用于产生或传播恶意、冒犯或抹黑的内容,以及可能激发社会偏见的内容。
模型局限性
- 无法完美生成逼真图像。
- 对文本内容渲染不佳。
- 复杂合成图像的表现不佳,如“红色立方体在蓝色球体上”这种描述。
- 训练主要基于英文描述,因此非英语的使用表现较差。
- 数据集可能包含成人内容,因此不适合未经增强的产品使用。
- 大规模数据集没有去重,可能存在一定的记忆性。
模型评估
Stable Diffusion v1.5 在 COCO2017 数据集上通过多种参数和不同的采样步骤进行了评估。结果显示模型在生成图像和修复能力上表现出一定的优越性。
环境影响
训练过程消耗的硬件和计算资源估算出二氧化碳排放总量约为 11250 kg CO2 eq,显示了在使用高性能计算资源时的环保考量。
总之,Stable Diffusion v1.5 Inpainting 项目为图像生成和修复提供了强大的技术支持,但用户需注意尊重使用规定和道德底线,不得进行不当使用。