π° Upscaler - McBoaty [1/3] v4 /u
Big prints without the patchwork
- image
- model
- clip
- vae
- positive
- negative
- McBoaty Pipe
- prompts
- tiles (Upscaled)
- info
McBoaty is the upscaler you reach for when the output is going on a wall. This node is the first of the v4 three-piece set - Upscaler, TilePrompter, Refiner - and its job is deceptively simple: upscale your image, slice it into overlapping tiles, and hand the whole bundle to the Refiner so each tile gets its own diffusion pass without blowing up your VRAM.
If you've ever done a tiled upscale and gotten patchwork seams, or watched Ultimate SD Upscale grind a 2x into a 4x and soften everything, you know the problem McBoaty exists to solve. The KB's upscaling write-up calls this the "tiled diffusion" family: arbitrary output sizes on modest VRAM, with the tile condition being what stops tiles diverging. McBoaty is that idea turned into a single opinionated pipeline by davask (MaraScott), originally converted from a Treeshark12 workflow that one redditor called "twice as fast as Ultimate Upscale, with, I feel, better quality." That was 2024; the v4 line here is the per-tile-prompt generation that grew out of it.
How it works
You feed it the usual suspects - an image, a model, clip and vae, plus positive and negative conditioning and a seed. The upscale_model dropdown reads straight from your models/upscale_models folder; if it's empty, drop a 4x ESRGAN like 4x-UltraSharp in there first. The output_upscale_method (bicubic by default) is the fallback resize when you aren't using a model.
Then come the two numbers that actually matter:
tile_size(default 512): how big each slice is. Bigger tiles = fewer seams but more VRAM per pass.feather_mask(default 64): the overlap between tiles, feathered so the Refiner's tile boundaries don't show up as lines in the final print.
vae_encode and tile_size_vae (both default 512) switch on tiled VAE encoding, which is what keeps a 4K+ upscale from dying on a 6GB card. color_match_method (none by default; choices like reinhard, mvgd, hm-mkl-hm) pulls in Kijai's color-match trick to correct the final image back toward your original's palette after the diffusion pass.
The v4 node also ships the optional tile_prompting_active, vision_llm_model (Florence-2-large) and llm_model (llama3-70b-8192) inputs. Turn them on and it tries to auto-write a prompt per tile using a vision model plus an external LLM. The author is upfront that this is "not accurate and will be improved" - most people leave it off and edit tile prompts by hand in the TilePrompter instead.
Outputs
Four wires leave it:
- McBoaty Pipe - the
MC_BOATY_PIPEcarrying tiles, model, conditioning and settings. It only plugs into the Refiner (or another McBoaty stage). Don't try to read it like a normal pipe. - prompts - a STRING, one per tile, for the TilePrompter.
- tiles (Upscaled) - the sliced tiles as an IMAGE, handy if you want to eyeball them before refining.
- info - a STRING with diagnostics.
Installing it
The whole pack comes from one repo, so install once:
cd ComfyUI/custom_nodes
git clone https://github.com/davask/ComfyUI-MarasIT-Nodes
Then restart ComfyUI. Or, easier, use ComfyUI Manager β Custom Nodes Manager β search "MaraScott" β Install β restart. No model downloads for the core nodes; the LLM prompting extras want Florence-2 and a Groq/Ollama-style LLM backend if you turn them on.
The trap
The positive and negative inputs are required on the graph but, in this node, mostly passthrough for the pipe - the real conditioning happens in the Refiner. And respect the denoise: the community's standing advice is 0.27β0.35 as the sweet spot. Push it to 0.5 and you get seams and hallucinations on a print-sized image. If a tile came out wrong, fix that tile in the Refiner, not the whole image.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| model | MODEL | β | |
| clip | CLIP | β | |
| vae | VAE | β | |
| positive | CONDITIONING | β | |
| negative | CONDITIONING | β | |
| seed | INT | 40β18446744073709550000 | β |
| upscale_model | COMBO | 0 options: | |
| output_upscale_method | COMBO | bicubic | 6 options: area, bicubic, bilinear, bislerp, lanczos, nearest-exact |
| tile_size | INT | 512320β4096 | β |
| feather_mask | INT | 6432β16384 | β |
| vae_encode | BOOLEAN | true | β |
| tile_size_vae | INT | 512320β4096 | β |
| color_match_method | COMBO | none | 7 options: none, mkl, hm, reinhard, mvgd, hm-mvgd-hm, +1 |
| tile_prompting_active | BOOLEAN | false | β |
| vision_llm_model | COMBO | microsoft/Florence-2-large | 1 options: microsoft/Florence-2-large |
| llm_model | COMBO | llama3-70b-8192 | 1 options: llama3-70b-8192 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| McBoaty Pipe | MC_BOATY_PIPE | β |
| prompts | STRING | β |
| tiles (Upscaled) | IMAGE | β |
| info | STRING | β |