Nodes/comfyui_bmab/BMAB Import Integrator
ComfyUI Node

BMAB Import Integrator

The node that hands your graph over to BMAB

By portu-sim·Created 2 years ago·Updated 8 months ago· 124
BMAB Import Integrator
  • model
  • clip
  • vae
  • context
  • positive
  • negative
  • seed_in
  • latent
  • image
  • BMAB bind
stop_at_clip_layer-2

BMAB doesn't hook into ComfyUI's normal wires - it runs its own internal pipeline object, a BMAB bind, that gets built up node by node and eventually consumed by a sampler-flavored node like Resize By Ratio or Resize By Person. This is the node that creates that bind in the first place. Think of it as the on-ramp: it's where your ordinary checkpoint loader, CLIP, VAE, and conditioning stop being "regular ComfyUI" and become "BMAB's problem."

How it works

You feed it the standard set - model, clip, vae, your positive/negative conditioning - plus a context input, which is BMAB's own settings/config type. That context isn't produced by any of the nodes in this article; it comes from another BMAB context node upstream in your graph (check the pack's example workflows, linked from the README, to see the full chain if you're not sure where it comes from). Everything gets bundled into one BMAB bind output that downstream BMAB nodes read from and write back to as your graph continues.

The inputs and outputs that matter

  • model, clip, vae (required) - wire these straight from your checkpoint loader, same as any normal ComfyUI graph.
  • context (required, CONTEXT) - BMAB-specific; comes from an upstream BMAB settings node, not from a core ComfyUI loader.
  • positive / negative (required, CONDITIONING) - your usual encoded prompts.
  • stop_at_clip_layer (default -2, range -24 to -1) - this is CLIP skip, the same setting as core ComfyUI's "Clip Set Last Layer" node. The default of -2 (skip 2) is the value most anime-leaning checkpoints - Illustrious, Pony, NoobAI - expect; realistic SD 1.5/SDXL checkpoints more often want -1. If your results look subtly off in style versus what you expected from the checkpoint, this is a setting worth checking before anything else.
  • Optional: seed_in (SEED), latent (LATENT), image (IMAGE) - feed these in if you're continuing from an existing seed or starting point rather than beginning fresh.
  • Output: BMAB bind - the pipeline object every other bind-consuming BMAB node expects.

How to install it

ComfyUI Manager: search comfyui_bmab. Manual:

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 wants two companion packs installed for BMAB's detection and IP-Adapter-driven features to work: Fannovel16/comfyui_controlnet_aux and cubiq/ComfyUI_IPAdapter_plus, installed the same clone-and-pip way. ComfyICU's shared image already carries both, so self-hosters are the ones who need to chase this down. Grounding DINO, which several downstream BMAB nodes use for detection, ships inside transformers 4.40.0+ - no separate install, per the README.

Common issues & troubleshooting

"Missing input: context" or a red node on load. You almost certainly skipped the upstream BMAB context/settings node this input expects. This isn't a core ComfyUI type, so a generic loader won't satisfy it - trace back to whichever BMAB node in your workflow is meant to produce it.

CLIP skip looks wrong for your checkpoint. stop_at_clip_layer defaults to -2. That's correct for most anime-family SDXL checkpoints but will mute detail on a lot of photoreal SD 1.5/SDXL models expecting -1 (the full, unskipped CLIP output). Flip it and re-render before assuming the checkpoint itself is the problem.

The bind seems to "lose" something you set earlier in the graph. Bind-consuming nodes generally read and re-emit the bind, but not every BMAB node necessarily forwards every field untouched - if a downstream setting isn't sticking, check whether an intermediate node in the chain is meant to override it rather than pass it through.

CategoryBMAB/sampler

Inputs (10)

NameTypeDefaultDescription
modelMODEL
clipCLIP
vaeVAE
contextCONTEXT
positiveCONDITIONING
negativeCONDITIONING
stop_at_clip_layerINT-2-24–-1
seed_inoptSEED
latentoptLATENT
imageoptIMAGE

Outputs (1)

NameTypeDescription
BMAB bindBMAB bind