- Delete unused guider_utils.py, gaussian_blend_tiles, resize_mask_to_latent
(and its test); drops the numpy dependency from utils
- Extract the duplicated neighbour-copy block from node.py/node_advanced.py
into build_working_tensor() in image_utils
- Port 5D video-latent handling and fix_empty_latent_channels from the
adaptive detailer to LLMTileSequentialDetailer
- Throttle soft_empty_cache to every 4 tiles (plus a final flush)
- Run the quadtree scorer on CPU to avoid per-region GPU syncs
- Stub fix_empty_latent_channels in conftest (restores 5 failing tests)
- Ignore .claude/ and pytest cache dirs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Generator nodes dispatch seam coherence by wired input: a ControlNet
(SDXL/Flux conditioning path) or a DiffSynth/Fun inpaint model patch
(z-image/Qwen), sharing neighbor-pixel context and a keep-mask. Empty
latents are resized to the model channel count so 16ch/video-format
models (Flux, Krea2/Wan21, z-image) work. Adaptive detailer handles
5D single-frame video latents. README documents both coherence paths.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
i'm trying to improve the tiled diffusion - these changes in node and node advanced are to ensure that final output is always tile width * grid width by tile height * grid height. i'm also starting work on a new tiled diffusion upscaler.
stole this idea from looking at tiled-diffusion. it seems to make better tile seams.
also did some code refactoring, splitting out the json functionality into it's own utility file alongside the image utilities that are used in tile blending.