Stable Diffusion
映射图像到潜空间
1.AutoencoderKL
代码如下(示例):
from diffusers import AutoencoderKL
from diffusers import DiffusionPipeline
import torch
from PIL import Image
import torchvision
from torchvision.utils import save_image
vae= AutoencoderKL.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="vae")
pipeline.to("cuda")
image=Image.open('testdata/brad_pitt.png').convert('RGB')
image=torchvision.transforms.functional.resize(image,256)
image=torchvision.transforms.functional.to_tensor(image).to("cuda").unsqueeze(0)
feature=vae.encode(image).latent_dist.sample()
######映射图片到潜空间
feature=feature+torch.rand(feature.shape).to("cuda")
feature = vae.decode(feature).sample
可视化图像与特征(示例):
Input image
latent
Channel 0;1;2;3