Files

19 lines
869 B
Python

"""Decoding a latent in tiles the way ComfyUI's own VAE Decode (Tiled) does, for any VAE."""
def tiled_decode(vae, latent, tile_size):
"""The ordinary decode, tiled when asked: a quarter-tile overlap, 64-frame temporal tiles with an
8-frame overlap (a VAE with no time axis gets none)."""
if not tile_size or tile_size <= 0:
return vae.decode(latent)
overlap = tile_size // 4
t_size, t_overlap = 64, 8
t_comp = vae.temporal_compression_decode()
if t_comp is not None:
t_size, t_overlap = max(2, t_size // t_comp), max(1, min(t_size // t_comp // 2, t_overlap // t_comp))
else:
t_size = t_overlap = None
c = vae.spacial_compression_decode()
return vae.decode_tiled(latent, tile_x=tile_size // c, tile_y=tile_size // c, overlap=overlap // c,
tile_t=t_size, overlap_t=t_overlap)