模型:
stabilityai/stable-diffusion-2-inpainting
该模型卡关注的是 Stable Diffusion v2 模型,可在 here 中获得。
stable-diffusion-2-inpainting 模型从 stable-diffusion-2-base (512-base-ema.ckpt) 恢复,并进行了另外20w步的训练。采用了 LAMA 中提出的遮罩生成策略,结合掩码图像的潜在变分自编码器表示,作为附加的条件。
开发者:Robin Rombach, Patrick Esser
模型类型:基于扩散的文本到图像生成模型
语言:英语
模型描述:这是一个基于文本提示生成和修改图像的模型。这是一个 Latent Diffusion Model ,采用固定的预训练文本编码器 ( OpenCLIP-ViT/H )。
更多信息资源: GitHub Repository 。
引用方式:
@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 2 inpainting。
pip install diffusers transformers accelerate scipy safetensors
from diffusers import StableDiffusionInpaintPipeline pipe = StableDiffusionInpaintPipeline.from_pretrained( "stabilityai/stable-diffusion-2-inpainting", torch_dtype=torch.float16, ) pipe.to("cuda") 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")
注意:
工作原理:
image | mask_image |
---|
prompt | Output |
---|---|
Face of a yellow cat, high resolution, sitting on a park bench | 12336321
该模型仅用于研究目的。可能的研究领域和任务包括:
下文描述了不适用的用途。
注意:此部分最初取自 DALLE-MINI model card ,用于 Stable Diffusion v1,但适用于 Stable Diffusion v2。
不能使用该模型有意创建或传播可能导致人们感到敌对或疏远的图像。这包括生成人们可以预见到的令人不安、痛苦或冒犯的图像;或者传播历史上或现实中的刻板印象的内容。
超出范围的使用该模型未经过训练,无法更准确地表示人物或事件的真实情况,因此使用该模型生成此类内容超出了该模型的能力范围。
误用和恶意使用误用该模型生成对个人不利的内容属于对该模型的误用。这包括但不限于:
尽管图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。Stable Diffusion vw 主要在 LAION-2B(en) 的子集上进行了训练,该数据集仅包含英文描述的图像。其他语言社区和文化的文本和图像可能并未充分考虑到。这会影响模型的整体输出,因为白人和西方文化常常被设定为默认值。此外,与英语提示相比,模型使用非英语提示生成内容的能力明显较差。无论输入或目的如何,Stable Diffusion v2 都会倾向于镜像并加剧偏见,因此必须谨慎使用。
训练数据 模型开发人员使用以下数据集训练模型:
训练过程 Stable Diffusion v2 是一个潜在扩散模型,它将自编码器与在自编码器的潜在空间训练的扩散模型结合起来。在训练过程中,
目前我们提供以下检查点:
512-base-ema.ckpt:在分辨率 256x256 上的 550k 步,使用过滤了明确的色情材料的 LAION-5B 数据集,使用 LAION-NSFW classifier 设置 punsafe=0.1 和分辨率 >= 512x512 的相同数据集上的 850k 步的模型。
768-v-ema.ckpt:从 512-base-ema.ckpt 恢复,并使用 v-objective 在相同数据集上训练了 150k 步。在我们的数据集的 768x768 子集上继续训练了另外 140k 步。
512-depth-ema.ckpt:从 512-base-ema.ckpt 恢复,并继续微调了 200k 步。在处理由 MiDaS (dpt_hybrid) 生成的(相对)深度预测时,添加了额外的输入通道,用作附加条件。处理这些额外信息的U-Net的额外输入通道被初始化为零。
512-inpainting-ema.ckpt:从 512-base-ema.ckpt 恢复,并训练了另外 200k 步。遵循 LAMA 中提出的遮罩生成策略,将遮罩图像的潜在变分自编码器表示与其结合作为附加条件。处理这些额外信息的U-Net的额外输入通道被初始化为零。相同的策略用于训练 1.5-inpainting checkpoint 。
x4-upscaling-ema.ckpt:在 LAION 的 1000 万个子集(>2048x2048)上训练了 1.25M 步。该模型训练于大小为 512x512 的裁剪图像上,是一个文本引导的 latent upscaling diffusion model 。除了文本输入外,还根据预定义的扩散时间表为低分辨率输入添加噪声的 noise_level 作为输入参数。
硬件:32 x 8 x A100 GPUs
优化器:AdamW
梯度累积:1
批量: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 步 DDIM 取样步骤对检查点进行了评估,显示了相对的改进:
在 COCO2017 验证集上使用了 50 步 DDIM 和 10000 个随机提示进行评估,评估分辨率为 512x512。未针对 FID 分数进行优化。
Stable Diffusion v1 估计的排放量 基于该信息,我们使用 Machine Learning Impact calculator 中介绍的 Lacoste et al. (2019) 估算了以下碳排放量。硬件、运行时间、云提供商和计算区域被用来估计碳影响。
@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 和 David Ha,基于 Stable Diffusion v1 和 DALL-E Mini model card 。