# ComfyUI-TiledDiffusion
**Repository Path**: tkliuxing/ComfyUI-TiledDiffusion
## Basic Information
- **Project Name**: ComfyUI-TiledDiffusion
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-01-19
- **Last Updated**: 2024-01-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Tiled Diffusion & VAE for ComfyUI
See [this](https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111/) for more information.
This extension enables **large image drawing & upscaling with limited VRAM** via the following techniques:
1. Two SOTA diffusion tiling algorithms: [Mixture of Diffusers](https://github.com/albarji/mixture-of-diffusers) and [MultiDiffusion](https://github.com/omerbt/MultiDiffusion)
2. pkuliyi2015 & Kahsolt's Tiled VAE algorithm.
3. ~~pkuliyi2015 & Kahsolt's TIled Noise Inversion for better upscaling.~~
> [!NOTE]
> Sizes/dimensions are in pixels and then converted to latent-space sizes.
## Features
- [x] SDXL model support
- [x] ControlNet support
- [ ] ~~StableSR support~~
- [ ] Tiled Noise Inversion
- [x] Tiled VAE
- [ ] Regional Prompt Control
- [x] Img2img upscale
- [x] Ultra-Large image generation
Some conditioning nodes like SetArea or GLIGEN aren't working at the moment.
## Tiled Diffusion
The image is split into tiles, which are then padded with 11/32 pixels' in the decoder/encoder.| | `fast` |
| | `color_fix` |When Fast Mode is disabled:
- The original VAE forward is decomposed into a task queue and a task worker, which starts to process each tile.
- When GroupNorm is needed, it suspends, stores current GroupNorm mean and var, send everything to RAM, and turns to the next tile.
- After all GroupNorm means and vars are summarized, it applies group norm to tiles and continues.
- A zigzag execution order is used to reduce unnecessary data transfer.
When Fast Mode is enabled:
- The original input is downsampled and passed to a separate task queue.
- Its group norm parameters are recorded and used by all tiles' task queues.
- Each tile is separately processed without any RAM-VRAM data transfer.
After all tiles are processed, tiles are written to a result buffer and returned.
Only estimate GroupNorm before downsampling, i.e., run in a semi-fast mode.
Only for the encoder. Can restore colors if tiles are too small.
| ## Workflows The following images can be loaded in ComfyUI.Simple upscale.
4x upscale. 3 passes.