
SD-XL Inpainting 0.1 是一个潜在的文本到图像扩散模型,能够根据任何文本输入生成逼真的图像,并额外具备通过使用遮罩进行图像修复的能力。
SD-XL Inpainting 0.1 模型基于 stable-diffusion-xl-base-1.0 权重进行初始化。该模型在 1024x1024 分辨率下训练了 40,000 步,并降低了 5% 的文本条件以改善无分类器指导采样。对于图像修复,UNet 增加了 5 个输入通道(4 个用于编码的遮罩图像,1 个用于遮罩本身),这些通道的权重在恢复非修复检查点后被初始化为零。在训练过程中,我们生成合成遮罩,并在 25% 的情况下遮罩整个图像。
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
pipe = AutoPipelineForInpainting.from_pretrained("diffusers/stable-diffusion-xl-1.0-inpainting-0.1", torch_dtype=torch.float16, variant="fp16").to("cuda")
img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
image = load_image(img_url).resize((1024, 1024))
mask_image = load_image(mask_url).resize((1024, 1024))
prompt = "a tiger sitting on a park bench"
generator = torch.Generator(device="cuda").manual_seed(0)
image = pipe(
prompt=prompt,
image=image,
mask_image=mask_image,
guidance_scale=8.0,
num_inference_steps=20, # steps between 15 and 30 work well for us
strength=0.99, # make sure to use `strength` below 1.0
generator=generator,
).images[0]工作原理:
![]() | ![]() |
|---|---|
| 输入图像 | 遮罩区域 |
| “一只老虎坐在公园长椅上” | 输出结果 |
![]() |
该模型仅供研究使用,可能的研究领域和任务包括:
本模型未被训练来呈现人物或事件的事实性或真实性,因此用于此类内容的生成超出了模型的能力范畴。
尽管图像生成模型的能力令人印象深刻,它们也可能强化或加剧社会偏见。