💪TB | Tiny Upscaler
The model's own hires-fix, controlled from your genparams
- image
- genparams
- model
- clip
- vae
- image
Most upscalers are separate models you bolt onto the end of a workflow. 💪TB | Tiny Upscaler is different: it's TinyBreaker's own built-in upscaling pass, wired so the genparams bundle decides whether and how it runs. Think of it as the model's native hires-fix, not a third-party add-on.
Here's the mechanism, straight from the source. The node takes your image, bilinearly scales it up (default 3×), encodes that big image into latent space in tiles, and then runs a short denoising pass with the model's embedded refiner to add plausible detail and clean up the interpolation softness. It uses cross-tiling - alternating top-left-to-bottom-right and bottom-right-to-top-left passes - specifically to kill the grid artifacts tiled upscalers usually leave behind. The author describes it as deliberately low-creativity: it nudges the image just enough that it looks like it was born at high resolution.
The catch before anything else
This node only works with the prototype1 version of the TinyBreaker checkpoint. That's not a version bump for fun - the upscaler needs the refiner and a dedicated upscaler VAE stored inside the checkpoint, and older prototypes don't have them. If you're on prototype0 and the upscaler silently does nothing, that's why.
Inputs
- image - the image to upscale.
- model, clip, vae - from
LoadTinyBreakerCkpt. These are the "generator" side; the node needs a refiner-capable model or it skips the pass with a warning. - genparams - the interesting one. The node reads
denoising.upscaler.*for sampler settings and checksimage.enable_upscalerto decide whether to run at all. You normally flip that via--upscalein the Unified Prompt, not by toggling the node. - scale_by - the upscale factor, 1.5× to 6×, default 3.
- mode - currently only
upscaler; an "enhancer" mode is stubbed but not shipped.
Output is the upscaled image.
The honest part
This is the most experimental node in the pack, and the community experience shows it. Reports of the upscaler misbehaving - oversharpened results, or producing different composition than expected - go back to the prototype0 days, and the fix is usually version-related. Expect it to work, but treat it as a first pass, not a polished tool. If you want predictable detail injection on a clean image, the wider ecosystem has better-refined answers (SeedVR2 and friends); Tiny Upscaler's selling point is that it's inside the model and basically free to enable.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/martin-rizzo/ComfyUI-TinyBreaker
or via ComfyUI Manager, then restart. No pip dependencies. And again: prototype1 checkpoint required, or none of this fires.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The image to upscale. | |
| genparams | GENPARAMS | The generation parameters containing the upscaling configuration. | |
| model | MODEL | The diffusion model used to improve the upscaling quality. | |
| clip | CLIP | The CLIP used to encode the prompt for the model. | |
| vae | VAE | The VAE used to encode the image for the model. | |
| mode | COMBO | The upscaling mode (experimental). | |
| scale_by | FLOAT | 3.01.5–6 | The factor by which to scale the image. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | The upscaled image. |