Jimeng Visual Understanding
Ask questions about an image or video and get answers
- client
- visual_input_1
- visual_input_2
- visual_input_3
- content
- raw_json
The whole pack is about making images and videos. This node is the odd one out: it reads them. Jimeng Visual Understanding hands an image or video to ByteDance's Seed vision models and returns a text answer - describe this scene, identify this object, summarize what happens in this clip, check whether this render matches its prompt. Think of it as the quality-control node, or the bridge that lets a text-model workflow actually see your generated output.
It's the same deal as the rest of the pack - paid Volcano Ark API key, ByteDance servers, no local model - but the payment model is different in spirit: this is cheap, fast token-based inference rather than a pricey image/video render, so you can use it freely as a QC pass without watching your credits drain.
How it works
You feed up to three inputs into visual_input_1 through visual_input_3 (each accepts an image or a video), type a question, and the node uploads the file to the API and returns the model's answer. Images are cached locally and uploaded, videos too; the file_expire_seconds control (default 604800, i.e. seven days, min 24 hours) governs how long that uploaded file is valid for the API to reference. The model is doubao-seed-2-1-pro by default, with the older 2.0 variants (pro, lite, mini) still selectable for existing workflows.
The inputs that matter
- user_prompt - your question. The default is Chinese ("describe this image or video's content"), so expect to replace it unless you want Chinese answers.
- system_prompt - the model's persona; defaults to "you are Doubao, an AI developed by ByteDance." Fine to leave.
- model - the vision model,
doubao-seed-2-1-proby default. - reasoning_mode / reasoning_effort - the "deep thinking" controls. Set
reasoning_modetoenabledfor hard multi-step questions (like whether a generated frame matches a prompt), or leaveautoand let the model decide. - detail -
loworhigh; high costs more tokens. - fps - sample rate for videos, 0.2–5.
- turns - 1 to 10. Turn this up for multi-turn conversation in one run; above 1, the model keeps the prior turns as context.
- stream - off by default; streaming output for long answers.
- seed - reproducibility.
Outputs
- content - the model's answer as a string. Wire this into a text display or another node.
- raw_json - the full API response, for when you need metadata beyond the answer.
Installing and using it
Install is the pack-standard route: ComfyUI Manager (search "ComfyUI Jimeng API") or git clone https://github.com/fkxianzhou/ComfyUI-Jimeng-API into custom_nodes, restart. The usual caveats apply - legacy UI only, content moderation on what you upload.
The genuinely useful pattern: run a generation, pipe the result into this node, and ask it to verify the output against the prompt you used. It's marked experimental in the pack and the multi-turn feature is the one that can surprise you (context accumulates across turns), but for a one-shot "what's actually in this frame" check it's hard to beat - especially since it's cheap enough to run every time.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| client | JIMENG_CLIENT | — | |
| model | COMBO | doubao-seed-2-1-pro | 4 options: doubao-seed-2-1-pro, doubao-seed-2-0-pro, doubao-seed-2-0-lite, doubao-seed-2-0-mini |
| system_prompt | STRING | 你叫豆包,是由字节跳动开发的AI。 | — |
| user_prompt | STRING | 请描述这张图片或视频的内容。 | — |
| detail | COMBO | high | 2 options: low, high |
| fps | FLOAT | 1.00.2–5 | — |
| reasoning_mode | COMBO | auto | 3 options: auto, enabled, disabled |
| reasoning_effort | COMBO | medium | 4 options: minimal, low, medium, high |
| turns | INT | 11–10 | — |
| stream | BOOLEAN | false | — |
| file_expire_seconds | INT | 60480086400–2592000 | — |
| seed | INT | 00–18446744073709550000 | — |
| visual_input_1opt | IMAGE,VIDEO | — | |
| visual_input_2opt | IMAGE,VIDEO | — | |
| visual_input_3opt | IMAGE,VIDEO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| content | STRING | — |
| raw_json | STRING | — |