BMAB Context
The node every BMAB pipeline actually starts from
- seed_in
- BMAB context
BMAB started life as an Automatic1111 extension before it was ever a ComfyUI node pack - people were running "Bmab" inside A1111 workflows well before the ComfyUI port existed, and if you're one of them, this node is the closest thing to the settings panel you remember. If you're new to BMAB entirely, this is the node to understand first, because almost everything else in the pack builds on it.
What it is and why you'd reach for it
BMAB doesn't pass sampler settings around as loose wires the way a stock ComfyUI graph does. Instead, it bundles seed, steps, CFG scale, sampler, and scheduler into a single custom type - the BMAB bind (technically typed CONTEXT on this node's output) - and every other BMAB node that samples anything reads its settings from that bind rather than from its own individual widgets. BMAB Context is where that bind is born.
Practically, this means you set your core sampling parameters once, here, and every downstream BMAB node - BMAB KSampler Hires. Fix With Upscaler, BMAB Detail Anything, and friends - inherits them automatically unless it explicitly overrides something. It's the same instinct behind "set it once, reuse everywhere" nodes in other packs, just implemented as BMAB's own bind/context convention rather than a generic settings node.
How it works
There's no generation happening in this node itself - it's pure configuration. You set your seed and core sampler parameters, and it packages them into a CONTEXT object. From here the typical chain continues through BMAB Model To Bind (adds model/clip/vae) and BMAB Conditioning To Bind (adds positive/negative), building up the same bind piece by piece until it reaches a node that actually samples.
Inputs and outputs
The required fields are the sampling basics you'd expect on any KSampler:
- seed (default 0) - your generation seed.
- steps (default 20, min 1) - sampling step count.
- cfg_scale (default 8) - classifier-free guidance strength. Worth double-checking against what your base model actually wants - SD1.5/SDXL checkpoints want something in the 5–9 range, but guidance-distilled flow-matching models (Z-Image Turbo and similar) want CFG close to 1, where a value like 8 will visibly overcook the image.
- sampler_name - a large dropdown (40+ options: euler, euler_ancestral, dpm_2, heun, and so on).
- scheduler - simple, karras, exponential, sgm_uniform, and others.
There's also an optional seed_in (SEED type), which lets you feed a seed generated by an upstream node instead of typing one directly into this node's widget - handy if you're randomizing or reusing a seed elsewhere in a larger graph.
The single output is a BMAB context, typed CONTEXT - that's what feeds into BMAB Model To Bind next.
Installing it
Through ComfyUI Manager: search comfyui_bmab, install, restart ComfyUI. Manual install:
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: python_embeded\python.exe -m pip install -r requirements.txt.) This node is pure configuration with no model weights involved, so once the base pack is installed, you're ready - no need for BMAB's optional comfyui_controlnet_aux or ComfyUI_IPAdapter_plus companion packs unless you're also using BMAB's ControlNet or IPAdapter nodes elsewhere.
Common issues
- Sampler/scheduler defaults copied from an SDXL workflow onto a flow-matching model, or vice versa. The "safe default" combo genuinely reverses between architectures - what works well on SD1.5/SDXL can actively hurt on Z-Image, Flux, and similar models. Check what your base checkpoint expects rather than assuming one universal default.
- Setting values here and not seeing them take effect downstream. Remember this node only produces a context - nothing samples until you chain it through Model To Bind (and usually Conditioning To Bind) into an actual sampling node. If a downstream node has its own override for steps or CFG, that override wins.
- Treating this as optional. If you're building a BMAB graph from scratch and skip this node, you'll find several BMAB nodes simply have no bind to accept - it's the starting point the rest of the pack assumes.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg_scale | FLOAT | 8.00–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| seed_inopt | SEED | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BMAB context | CONTEXT | — |