From 73e04987f7e0f14bdee9baa0aafe61cf7f42a8b2 Mon Sep 17 00:00:00 2001 From: comfyanonymous Date: Tue, 24 Dec 2024 07:36:30 -0500 Subject: [PATCH] Prevent black images in VAE Decode (Tiled) node. Overlap should be minimum 1 with tiling 2 for tiled temporal VAE decoding. --- comfy/sd.py | 5 +++-- nodes.py | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/comfy/sd.py b/comfy/sd.py index 2db00fa4..de3ce677 100644 --- a/comfy/sd.py +++ b/comfy/sd.py @@ -509,9 +509,10 @@ class VAE: if overlap_t is None: args["overlap"] = (1, overlap, overlap) else: - args["overlap"] = (overlap_t, overlap, overlap) + args["overlap"] = (max(1, overlap_t), overlap, overlap) if tile_t is not None: - args["tile_t"] = tile_t + args["tile_t"] = max(2, tile_t) + output = self.decode_tiled_3d(samples, **args) return output.movedim(1, -1) diff --git a/nodes.py b/nodes.py index e95abc40..a135a612 100644 --- a/nodes.py +++ b/nodes.py @@ -304,6 +304,8 @@ class VAEDecodeTiled: def decode(self, vae, samples, tile_size, overlap=64, temporal_size=64, temporal_overlap=8): if tile_size < overlap * 4: overlap = tile_size // 4 + if temporal_size < temporal_overlap * 2: + temporal_overlap = temporal_overlap // 2 temporal_compression = vae.temporal_compression_decode() if temporal_compression is not None: temporal_size = max(2, temporal_size // temporal_compression)