Skip to content

非对称自动编码器KL

用于修复任务的改进型大型变分自动编码器(VAE)模型,带有KL损失:设计更好的非对称VQGAN以用于StableDiffusion,作者为Zixin Zhu、Xuelu Feng、Dongdong Chen、Jianmin Bao、Le Wang、Yinpeng Chen、Lu Yuan、Gang Hua。

论文的摘要如下:

StableDiffusion是一种革命性的文本到图像生成器,正在图像生成和编辑领域引起轰动。与传统方法在像素空间中学习扩散模型不同,StableDiffusion通过VQGAN在潜在空间中学习扩散模型,确保了效率和质量。它不仅支持图像生成任务,还支持对真实图像的编辑,如图像修复和局部编辑。然而,我们观察到StableDiffusion中使用的原始VQGAN导致了显著的信息损失,即使在未编辑的图像区域也产生了失真伪影。为此,我们提出了一种新的非对称VQGAN,具有两个简单的设计。首先,除了来自编码器的输入外,解码器还包含一个条件分支,该分支结合了来自任务特定先验的信息,例如修复中的未遮罩图像区域。其次,解码器比编码器更重,允许更详细的恢复,同时仅略微增加总推理成本。我们的非对称VQGAN的训练成本低廉,我们只需重新训练一个新的非对称解码器,同时保持原始VQGAN编码器和StableDiffusion不变。我们的非对称VQGAN可以广泛应用于基于StableDiffusion的修复和局部编辑方法。大量实验表明,它可以显著提高修复和编辑性能,同时保持原有的文本到图像生成能力。代码可在https://github.com/buxiangzhiren/Asymmetric_VQGAN获取。

评估结果可在原论文的第4.1节中找到。

可用的检查点

示例用法

python
from diffusers import AsymmetricAutoencoderKL, StableDiffusionInpaintPipeline
from diffusers.utils import load_image, make_image_grid


prompt = "a photo of a person with beard"
img_url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/repaint/celeba_hq_256.png"
mask_url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/repaint/mask_256.png"

original_image = load_image(img_url).resize((512, 512))
mask_image = load_image(mask_url).resize((512, 512))

pipe = StableDiffusionInpaintPipeline.from_pretrained("runwayml/stable-diffusion-inpainting")
pipe.vae = AsymmetricAutoencoderKL.from_pretrained("cross-attention/asymmetric-autoencoder-kl-x-1-5")
pipe.to("cuda")

image = pipe(prompt=prompt, image=original_image, mask_image=mask_image).images[0]
make_image_grid([original_image, mask_image, image], rows=1, cols=3)

AsymmetricAutoencoderKL

[[autodoc]] models.autoencoders.autoencoder_asym_kl.AsymmetricAutoencoderKL

AutoencoderKLOutput

[[autodoc]] models.autoencoders.autoencoder_kl.AutoencoderKLOutput

DecoderOutput

[[autodoc]] models.autoencoders.vae.DecoderOutput