Nodes/ComfyUI_MaraScott_Nodes/🐰 Refiner - McBoaty [3/3] v4 /u
ComfyUI Node

🐰 Refiner - McBoaty [3/3] v4 /u

The tile refiner that puts McBoaty's seams exactly where you want them

By MaraScottΒ·Created 3 years agoΒ·Updated 10 months agoΒ· 178
🐰 Refiner - McBoaty [3/3] v4 /u
  • pipe
  • tiles
  • McBoaty Pipe
  • image
  • tiles
  • prompts
  • original_resized
  • info
β—„tile_to_process0β–Ί
β—„output_size_typetrueβ–Ί
β—„output_size1.00β–Ί
β—„sigmas_typeβ–Ύβ–Ί
β—„ays_model_typeSDXLβ–Ί
β—„sampler_nameβ–Ύβ–Ί
β—„basic_schedulerβ–Ύβ–Ί
β—„steps10β–Ί
β—„cfg2.5β–Ί
β—„denoise0.27β–Ί
β—„control_net_nameNoneβ–Ί
β—„low_threshold0.60β–Ί
β—„high_threshold0.60β–Ί
β—„strength0.40β–Ί
β—„start_percent0.000β–Ί
β—„end_percent1.000β–Ί
β—„promptsβ€”β–Ί

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.

CategoryMaraScott/upscaling

Inputs (19)

NameTypeDefaultDescription
pipeMC_BOATY_PIPEβ€”
tile_to_processCOMBO00–6465 options: 0, 1, 2, 3, 4, 5, +59
output_size_typeBOOLEANtrueβ€”
output_sizeFLOAT1.001–16β€”
sigmas_typeCOMBO3 options: BasicScheduler, SDTurboScheduler, AlignYourStepsScheduler
ays_model_typeCOMBOSDXL4 options: SD1, SDXL, SD3, SVD
sampler_nameCOMBO27 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +21
basic_schedulerCOMBO6 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform
stepsINT101–10000β€”
cfgFLOAT2.50–100β€”
denoiseFLOAT0.270–1β€”
control_net_nameCOMBONone1 options: None
low_thresholdFLOAT0.600.01–0.99β€”
high_thresholdFLOAT0.600.01–0.99β€”
strengthFLOAT0.400–10β€”
start_percentFLOAT0.0000–1β€”
end_percentFLOAT1.0000–1β€”
promptsoptSTRINGβ€”
tilesoptIMAGEβ€”

Outputs (6)

NameTypeDescription
McBoaty PipeMC_BOATY_PIPEβ€”
imageIMAGEβ€”
tilesIMAGEβ€”
promptsSTRINGβ€”
original_resizedIMAGEβ€”
infoSTRINGβ€”