π° Refiner - McBoaty [3/3] v4 /u
The tile refiner that puts McBoaty's seams exactly where you want them
- pipe
- tiles
- McBoaty Pipe
- image
- tiles
- prompts
- original_resized
- info
The Refiner is where the McBoaty v4 set actually does its work. The Upscaler slices the image and builds the pipe; the TilePrompter edits the prompts; this node runs the KSampler over each tile and stitches the results back into a full-size image. It's the [3/3] piece, and it's also the node you chain to itself: run a first pass over everything, then point it at a single stubborn tile for a second pass without touching the rest.
If you've only ever done whole-image hi-res fixes, the mental model here is simple - this is a KSampler with a tiling harness around it, plus the tile-selection knob that makes it useful for print work.
The inputs that matter
pipe (required, MC_BOATY_PIPE) comes from the Upscaler. prompts and tiles are optional and come from the TilePrompter and the Upscaler's tile preview respectively.
- tile_to_process (0β64, default 0): the whole trick. 0 processes all tiles; pick a number and it refines only that one. This is how you re-run tile 07 at higher denoise while everything else stays put. Note that v4's selector is a single tile - the v5 line generalizes this to ranges like
1-4,6. - output_size_type (boolean, default true) and output_size (1.0β16.0, default 1): true outputs at the upscale model's native size; false multiplies your input size by
output_size. Handy when you want a 1.5x that isn't a model's 4x. - sigmas_type (
BasicScheduler,SDTurboScheduler,AlignYourStepsScheduler) with ays_model_type (SD1/SDXL/SD3/SVD). Pick AYS to match your model family; the author notes SVD is untested. - sampler_name, basic_scheduler, steps, cfg, denoise (default 0.27): the usual KSampler controls. This is where the sweet-spot advice lives - keep denoise 0.27β0.35; above that, tiles hallucinate and seams appear.
- control_net_name plus low_threshold/high_threshold (canny) and strength/start_percent/end_percent: optional ControlNet conditioning per tile. The original v1/v2 McBoaty ignored ControlNets; v4 added them, and they're the difference between a faithful upscale and one that drifts.
Outputs
Six wires. image is the finished upscale. McBoaty Pipe loops back into another Refiner (or onward) so you can chain passes. tiles and prompts show you what each tile was given, original_resized is the pre-refine reference for comparison, and info is a STRING of diagnostics. Wire image to a SaveImage and you're done; wire tiles to a preview and you get the tile map that makes tile_to_process usable.
Installing it
Same pack, same install:
cd ComfyUI/custom_nodes
git clone https://github.com/davask/ComfyUI-MarasIT-Nodes
Restart, and it's under MaraScott/upscaling as "Refiner - McBoaty [3/3] v4". Manager path: search "MaraScott" β Install β restart.
Real-world shape
The workflow the author documents: Upscaler β TilePrompter β Refiner for pass one, then a second Refiner pass fed by the first Refiner's pipe, with tile_to_process set to only the tiles that went wrong. People who run McBoaty in the wild confirm the rhythm - one reddit thread on the original versions described it as "more for small refinements" on a finished image than a from-scratch tool, which is exactly the right way to think about it. The traps are the usual ones: empty upscale_model means no model in models/upscale_models, and ControlNet strength above ~0.4 at high denoise will start to fight the tile boundaries.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | MC_BOATY_PIPE | β | |
| tile_to_process | COMBO | 00β64 | 65 options: 0, 1, 2, 3, 4, 5, +59 |
| output_size_type | BOOLEAN | true | β |
| output_size | FLOAT | 1.001β16 | β |
| sigmas_type | COMBO | 3 options: BasicScheduler, SDTurboScheduler, AlignYourStepsScheduler | |
| ays_model_type | COMBO | SDXL | 4 options: SD1, SDXL, SD3, SVD |
| sampler_name | COMBO | 27 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +21 | |
| basic_scheduler | COMBO | 6 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform | |
| steps | INT | 101β10000 | β |
| cfg | FLOAT | 2.50β100 | β |
| denoise | FLOAT | 0.270β1 | β |
| control_net_name | COMBO | None | 1 options: None |
| low_threshold | FLOAT | 0.600.01β0.99 | β |
| high_threshold | FLOAT | 0.600.01β0.99 | β |
| strength | FLOAT | 0.400β10 | β |
| start_percent | FLOAT | 0.0000β1 | β |
| end_percent | FLOAT | 1.0000β1 | β |
| promptsopt | STRING | β | |
| tilesopt | IMAGE | β |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| McBoaty Pipe | MC_BOATY_PIPE | β |
| image | IMAGE | β |
| tiles | IMAGE | β |
| prompts | STRING | β |
| original_resized | IMAGE | β |
| info | STRING | β |