Nodes/comfyui_bmab/BMAB KSampler Hires. Fix
ComfyUI Node

BMAB KSampler Hires. Fix

The classic two-pass detail boost, BMAB-flavored

By portu-sim·Created 2 years ago·Updated 8 months ago· 124
BMAB KSampler Hires. Fix
  • bind
  • image
  • lora
  • BMAB bind
  • image
steps20
cfg_scale8.0
sampler_name
scheduler
denoise0.40

Hi-res fix is one of the oldest tricks in the Stable Diffusion book: generate at your model's native resolution first, then run a second, low-denoise pass to add coherent detail rather than trying to generate directly at a size the model wasn't trained for. Skip that second pass and pushing resolution up front just gets you tiling artifacts and duplicated limbs. This node is BMAB's version of that second pass, wired to run right after a first BMAB KSampler in the same pipeline.

What makes it a "hires fix" node specifically

The tell is the denoise default: 0.4. Compare that to BMAB's plain KSampler node, which defaults to denoise = 1 (a full first-pass generation from noise). A low denoise here means the sampler starts from your existing image rather than pure noise, and only redraws enough to add texture and sharpen edges without changing the composition underneath - exactly the two-pass pattern the community settled on years ago and never really moved off of for anything below full instruction-editing models.

Notably, this node doesn't expose its own width/height fields the way BMAB's Kohya Deep Shrink sampler variant does - the resolution bump comes from whatever upstream scaling has already happened to the image or latent carried in your bind before it reaches this node, not from a parameter set here.

The inputs

steps, cfg_scale, sampler_name, and scheduler behave exactly like your main sampler - and as with the rest of BMAB, the sampler/scheduler dropdowns default to "Use same sampler" / "Use same scheduler," so leaving them alone means this pass inherits whatever you set on your first KSampler. denoise (default 0.4) is the one dial that actually defines this node's job: raise it if the detail pass feels too subtle, lower it toward 0.25-0.3 if it's changing things you didn't want touched.

Optional inputs are image (feed something other than what's in the bind) and lora - BMAB's own lora type, letting you apply a LoRA to just this refinement pass without it affecting your first-pass generation.

Output is the standard BMAB pair: an updated bind to keep chaining, and the refined image.

Installing it

ComfyUI Manager: search comfyui_bmab, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt

The README also calls for comfyui_controlnet_aux and ComfyUI_IPAdapter_plus installed alongside comfyui_bmab, cloned and pip-installed the same way, even though this particular sampler node doesn't call either directly.

Where this goes wrong

The most common mistake is treating this like a first-pass generator and setting denoise near 1 - that mostly discards your first pass and re-generates from scratch, which defeats the point of a hi-res fix and usually changes the composition you were trying to refine. The second is skipping the actual resolution upscale before this node runs: since there's no width/height field here, if nothing upstream in your bind chain increased the image size, this node is just doing a low-denoise re-sample at the same resolution, which adds a little texture but not the detail boost people expect from "hires fix." Make sure something - a latent upscale, an image resize node, whatever fits your graph - actually bumps the resolution before this node gets the bind.

CategoryBMAB/sampler

Inputs (8)

NameTypeDefaultDescription
bindBMAB bind
stepsINT200–10000
cfg_scaleFLOAT8.00–100
sampler_nameCOMBO45 options: Use same sampler, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39
schedulerCOMBO10 options: Use same scheduler, simple, sgm_uniform, karras, exponential, ddim_uniform, +4
denoiseFLOAT0.400–1
imageoptIMAGE
loraoptBMAB lora

Outputs (2)

NameTypeDescription
BMAB bindBMAB bind
imageIMAGE