BMAB Upscaler
The plain, honest pixel upscaler in BMAB's toolbox
- bind
- image
- BMAB bind
- image
If you've spent any time in the upscaling rabbit hole, you know the space is full of models that promise to invent detail that was never there. BMAB Upscaler doesn't do any of that, and that's the point. It's a classic pixel upscaler - Lanczos, nearest, bilinear, or bicubic interpolation - the same category of tool that's been resizing images since before diffusion models existed. No GPU model to load, no VRAM budget to worry about, and nothing to hallucinate. It just makes the image bigger.
That distinction matters more than it sounds. There are really three different jobs people lump together under "upscaling": adding more pixels to an already-sharp image, adding more detail to a soft or damaged one, and the temporal mess that is video upscaling. BMAB Upscaler only does the first job. If your source is already sharp and you just need it larger for a canvas, a print, or a second-pass sampler, this is the right tool. If the image is blurry or low-res and you're hoping for the model to invent pores and fabric weave, you want a generative upscaler instead (SeedVR2 is the current community favorite for that), or one of BMAB's own detail-pass nodes layered on top.
How it works
Nothing exotic under the hood: it's PIL/torch-style interpolation. Lanczos is the community's default pick for general use - it's what most "just make it bigger cleanly" workflows reach for, because it doesn't over-sharpen the way some cheaper methods can. Bicubic and bilinear are softer and faster; nearest is the blocky, no-interpolation option you'd only want for pixel art or masks.
Inputs and outputs
The four required fields are straightforward:
- upscale_method - pick from LANCZOS, NEAREST, BILINEAR, or BICUBIC. Lanczos is the safe default.
- scale - a straight multiplier (default 2x, 0 to 4).
- width / height - an explicit target size (default 512x512).
Having both a scale factor and explicit dimensions on the same node is a BMAB pattern you'll see again on its other upscale/hires nodes. Treat scale as the quick way to say "2x bigger" and width/height as the way to target an exact pixel size - if your output doesn't look like what the scale slider implied, it's worth zeroing out whichever pair you're not actually using.
On the optional side, there's bind and image. This is where BMAB's plumbing shows: you can wire this node in two ways. Feed it a plain image and it works like any standalone resize node. Or, if you're already inside a BMAB pipeline built from BMAB Context plus BMAB Model To Bind, wire in the bind instead and this node will resize whatever image is riding along inside it, then pass the bind forward untouched for the next BMAB node in the chain. The node outputs both - a BMAB bind (pass-through, for chaining into more BMAB nodes) and the resized image itself, which is what you'll actually wire into a Save Image or the next stage of your workflow.
Installing it
Easiest path: open ComfyUI Manager, search for comfyui_bmab, install, and restart ComfyUI.
Manual install is just as simple for this particular node, since it has no heavy dependencies of its own:
cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt
(Windows portable users: swap pip for python_embeded\python.exe -m pip.) Restart ComfyUI afterward. BMAB does pull in two more custom node packs - comfyui_controlnet_aux and ComfyUI_IPAdapter_plus - but those are only needed if you're using BMAB's ControlNet or IPAdapter nodes elsewhere in the pack. This particular node doesn't touch either.
Common issues
There's not much to trip over here - it's a CPU-side resize with no model weights to download and no version-sensitive dependency like the detection nodes in this pack have. The one real gotcha is conceptual, not technical: don't expect this node to fix a blurry or low-detail source. It will faithfully make a soft image bigger and still soft. If you want it to look actually sharper, run it before or after a real detail pass - BMAB's own detailer nodes, or a generative upscaler outside this pack - rather than expecting the interpolation itself to add anything that wasn't already in the pixels.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| upscale_method | COMBO | 4 options: LANCZOS, NEAREST, BILINEAR, BICUBIC | |
| scale | FLOAT | 2.0000–4 | — |
| width | INT | 51232–16384 | — |
| height | INT | 51232–16384 | — |
| bindopt | BMAB bind | — | |
| imageopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| BMAB bind | BMAB bind | — |
| image | IMAGE | — |