ComfyUI Node

Emu 3.5 VQA

The node that turns your 65B model into a local vision analyst

By EricRollei·Created 9 months ago·Updated 9 months ago· 5
Emu 3.5 VQA
  • model
  • tokenizer
  • vq_model
  • image
  • image2
  • response
task_type
max_tokens512
question
temperature0.3
image_resolution

Emu 3.5 isn't just an image generator - it's a native multimodal model, which means it can also read images. Emu 3.5 VQA is the node that puts that to work: feed it an image and it can caption it, describe it in detail, analyze composition and mood, read text off it (OCR), answer free-form questions, or compare two images. The same 65B base model that writes stories is doing the analysis, and it's genuinely good at it.

Mechanically it's the mirror image of the generation nodes: your image is encoded through the vision tokenizer into visual tokens, inserted into the prompt stream before the question (image comes first, which is the format Emu expects for understanding tasks), and the model generates an answer autoregressively. The task_type dropdown swaps in a purpose-built prompt for each job - the OCR preset gets an optimized transcription prompt, the compare preset labels your images [First Image] / [Second Image] so the model doesn't mix them up. Generation uses a repetition penalty and low temperature by default, because you want a factual answer, not a hallucination with style.

The inputs that matter

  • image - required IMAGE. For comparisons, also wire image2.
  • task_type - caption, describe, analyze, ocr, question, compare, custom. question and custom require you to fill in question; the presets work on their own but will append your question if you add one.
  • max_tokens - answer length cap, default 512 (up to 2048).
  • temperature - default 0.3. The pack's advice is worth following: keep it at 0.1–0.3 for counting, OCR, identification (facts), and raise it toward 0.5–0.7 for creative description or artistic analysis.
  • image_resolution - 256x256, 384x384 (default), or 512x512. Lower is faster and lighter on VRAM; higher is better for OCR on fine text.

Output

  • response (STRING) - the model's answer. That's the whole output; wire it into a text display or a Show Text node.

The model choice that matters

Use the base Emu 3.5 model (65B), not Emu3.5-Image (34B). The pack is explicit about this: the Image model is optimized for generation, not understanding, and VQA quality on the 34B is noticeably weaker. The practical sting is that the 65B base is a serious piece of hardware - NF4 quantized it can split across two 24GB cards, and single-24GB cards are out of the running.

Install

cd ComfyUI/custom_nodes
git clone --recursive https://github.com/EricRollei/Emu35-Comfyui-Nodes.git emu35
cd emu35
pip install -r requirements.txt

Weights: huggingface-cli download BAAI/Emu3.5 --local-dir models/emu35/Emu3.5 plus BAAI/Emu3.5-VisionTokenizer.

Where it fits

If you already have Emu 3.5 loaded for story generation, VQA is effectively free - same model, new task. That's the honest use case: it's a niche add-on to a niche model, and most people who just want image captioning or OCR are better served by a smaller, purpose-built vision model that doesn't need 65B and two GPUs. But if you're in the Emu ecosystem anyway and want everything on one stack - generate the image, then ask the same model what it made - this is the node that closes the loop.

CategoryEmu3.5

Inputs (10)

NameTypeDefaultDescription
modelEMU_MODEL
tokenizerEMU_TOKENIZER
vq_modelEMU_VQ
imageIMAGE
task_typeCOMBO7 options: caption, describe, analyze, ocr, question, compare, +1
max_tokensINT51264–2048
questionoptSTRING
temperatureoptFLOAT0.30–2
image_resolutionoptCOMBO3 options: 256x256, 384x384, 512x512
image2optIMAGE

Outputs (1)

NameTypeDescription
responseSTRING