Closed Isotr0py closed 11 months ago
Hmm, I think the README was overselling things (my fault!).
Here's what the receptive field looks like for TAESD decoding:
TAESD Receptive Field
vs. the SD VAE:
SD-VAE Receptive Field
So, TAESD receptive field is bounded, and SD-VAE receptive field isn't. For tiled decoding to be perfect (identical to non-tiled), you need enough tile overlap to cover the entire receptive field. So with enough tile overlap, TAESD can give identical results to non-tiled decoding, whereas SD-VAE (in principle) will always have tiling artifacts... or so I figured, while writing the README.
In practice, it looks like you can get away with a lot less than full-receptive-field tile overlap for both TAESD and SD-VAE - so the "bounded-but-large receptive field" vs "infinite receptive field" distinction doesn't have much practical benefit.
Here's TAESD tiled decode output:
TAESD Tiled Decode, 3x3 32x32 tiles, 16 (latent) pixels of overlap
vs. SD-VAE tiled decode output:
SD-VAE Tiled Decode, 3x3 32x32 tiles, 16 (latent) pixels of overlap
To me, they both look free of perceptible tiling artifacts once you add the overlap, so I'll update the README.
Got it! Thx for the detailed instruction!
What about the encoder? Does it have any issues with seems? What is its receptive field?
When I split decoding works into tiles without overlap, there are some strange weird seams on the bounds of each tile in decoded image.
However, according to the readme, it seems that weird seams shouldn't be created since
TAESD
has a bounded receptive field.Though it can be solved by splitting tiles with overlap, I wonder whether it's a bug.
Here is the tiling-decoding code modified from
taesd.py
:original image
decoded
tiling decoded