Nodes/ComfyUI-BAGEL/BAGEL Image Understanding (Deprecated)
ComfyUI Node

BAGEL Image Understanding (Deprecated)

Ask your images questions — this is the BAGEL node that won't melt your GPU

By neverbiasu·Created about a year ago·Updated 25 days ago· 188
BAGEL Image Understanding (Deprecated)
  • model
  • image
  • text
promptWhat do you see in this image?
show_thinkingfalse
do_samplefalse
text_temperature0.30
max_new_tokens512

Of all the nodes in ComfyUI-BAGEL, this is the one that surprises people most, because it doesn't generate anything. BAGEL is ByteDance's open multimodal model - one transformer (7B active parameters in a 14B Mixture-of-Transformer-Experts hybrid, Apache 2.0) that both reads and draws. The understanding node uses the reading half: you hand it an image, ask a question, and it answers in plain text. It's the cheapest node in the pack to run, and it's genuinely useful for things like checking what your generated images actually contain, captioning, or sanity-checking whether that character consistency experiment worked.

How it works

The image is passed through BAGEL's vision encoder (SigLIP-based), tokenized alongside your question, and the language side of the model produces an answer token by token. Because it's the same 7B-active backbone that does image generation, the model already has deep visual understanding built in - ByteDance benchmarks it against top VLMs like Qwen2.5-VL and InternVL-2.5, and it holds its own. There's no diffusion involved here at all, which is why this node is comparatively quick and light: no denoising loop, just autoregressive text.

The output is a single text string. There's no image output, so wire it into a text display node (or any node that takes a STRING) - that's what you'll actually read.

The inputs that matter

Required:

  • image - the IMAGE tensor you want to interrogate, from any Load Image.
  • prompt - the question. The default is the classic "What do you see in this image?", and it's a genuinely good default. Ask for specifics: "Read the text on this sign," "How many people are in this picture?", "Describe the lighting." The model reads full sentences, so write them like a person.

Optional, and all text-generation settings rather than image ones:

  • show_thinking - display the reasoning process. BAGEL is trained to think in <think>...</think> blocks before answering, and this surfaces them.
  • do_sample - sampling on/off. Default off, meaning greedy decoding - the most deterministic answer. Flip it on when you want variety in creative/interpretive answers.
  • text_temperature - randomness for the answer text, default 0.3. Only matters when do_sample is on.
  • max_new_tokens - maximum answer length, default 512 (range 64–4096). If it's cutting off mid-sentence, raise this.

Installing and running it

Same routine as every BAGEL node - install the pack once:

cd ComfyUI/custom_nodes
git clone https://github.com/neverbiasu/ComfyUI-BAGEL
cd ComfyUI-BAGEL && pip install -r requirements.txt

or hit "ComfyUI-BAGEL" in ComfyUI Manager, then restart. Feed the model input from the BAGEL Model Loader. Since this node skips diffusion, you can often get away with less VRAM headroom than the generation nodes - the model load itself is the cost, not the inference. If you're on a single 24GB card, the pre-quantized DFloat11 variant or NF4 mode is still the comfortable choice.

Common gotchas

The environment issues are the same pack-wide ones: NameError: 'Qwen2Config' is not defined points at missing flash-attention/triton (prebuilt wheels are linked in the pack's issue tracker), and NF4/INT8 quantization needs bitsandbytes installed. For the node itself, the two practical traps are forgetting that text_temperature does nothing unless do_sample is on, and expecting deterministic answers when sampling is on - with greedy decoding you get stable, repeatable output; with sampling you get interpretation, which is great for captions and bad for counting objects reliably. If you get an "Error: ..." string in the text output, it's the node catching an exception and passing it through as text - check the console for the real stack trace.

CategoryBAGEL/Deprecated

Inputs (7)

NameTypeDefaultDescription
modelBAGEL_MODELBAGEL model
imageIMAGEInput image
promptSTRINGWhat do you see in this image?Question text
show_thinkingoptBOOLEANfalseDisplay reasoning process
do_sampleoptBOOLEANfalseEnable sampling
text_temperatureoptFLOAT0.300–1Text generation temperature
max_new_tokensoptINT51264–4096Maximum new tokens

Outputs (1)

NameTypeDescription
textSTRING