SDXL-VAE-FP16-Fix is the SDXL VAE*, but modified to ru i fp16 precisio without geeratig NaNs. Just load this checkpoit via SDXL-VAE geerates NaNs i fp16 because the iteral activatio values are too big:
SDXL-VAE-FP16-Fix was created by fietuig the SDXL-VAE to: There are slight discrepacies betwee the output of SDXL-VAE-FP16-Fix ad SDXL-VAE, but the decoded images should be close eough for most purposes. * SDXL-VAE-FP16-Fix
VAE
Decodig i
float32
/ bfloat16
precisioDecodig i
float16
precisio
SDXL-VAE
✅
⚠️
SDXL-VAE-FP16-Fix
✅
✅
? Diffusers Usage
AutoecoderKL
:import torch
from diffusers import DiffusioPipelie, AutoecoderKL
from modelscope import sapshot_dowload
local_vae = sapshot_dowload("AI-ModelScope/sdxl-vae-fp16-fix",revisio='master')
local_sd = sapshot_dowload("AI-ModelScope/stable-diffusio-xl-base-1.0",revisio='master')
local_refier = sapshot_dowload("AI-ModelScope/stable-diffusio-xl-refier-1.0",revisio='master')
vae = AutoecoderKL.from_pretraied(local_vae, torch_dtype=torch.float16)
pipe = DiffusioPipelie.from_pretraied(local_sd, vae=vae, torch_dtype=torch.float16, variat="fp16", use_safetesors=True)
pipe.to("cuda")
refier = DiffusioPipelie.from_pretraied(local_refier, vae=vae, torch_dtype=torch.float16, use_safetesors=True, variat="fp16")
refier.to("cuda")
_steps = 40
high_oise_frac = 0.7
prompt = "A majestic lio jumpig from a big stoe at ight"
image = pipe(prompt=prompt, um_iferece_steps=_steps, deoisig_ed=high_oise_frac, output_type="latet").images
image = refier(prompt=prompt, um_iferece_steps=_steps, deoisig_start=high_oise_frac, image=image).images[0]
image
Details
sdxl-vae-fp16-fix
is specifically based o SDXL-VAE (0.9), but it works with SDXL 1.0 too
点击空白处退出提示
评论