Qwen2.5-VL-7B-Instruct
The image-to-text node that reads your images
- image
- text
Here's the node that turns your graph into a self-describing pipeline: feed it any IMAGE and it tells you what's in it. Runware_alibaba_qwen2_5_vl_7b_instruct is Qwen's 7-billion-parameter vision-language model - the V in VL is "vision" - running in the cloud as a single ComfyUI node. One input, one STRING output, and the amount of workflow magic that unlocks is quietly enormous.
This is the captioning node. Wire an image into it, ask "describe this in detail for an image-generation prompt," and the output feeds straight into a positivePrompt socket on an image node. That single loop gives you three things people pay tools for: image-to-prompt reversal (turn a reference render into a re-generable prompt), auto-captioning batches for training sets, and a "describe what this produced" debug step that tells you whether your generation actually matches your intent. In the Runware pack's own taxonomy this is a caption task, which tells you how the author thinks of it.
How it works
Runware runs it as a caption task with the runware:152@2 model AIR - this is Qwen2.5-VL-7B-Instruct served on their side, so no weights, no VRAM, no Ollama. The node base64-encodes your IMAGE tensor, sends it up with your optional prompt, and returns the model's text. That's the whole mechanism; the sophistication is all in what you ask it.
The inputs that matter
There are only two, and that's a feature:
image(required) - theIMAGEtensor. It's a full image input, so it accepts generated images, loaded files, or frames from a video node.prompt(optional) - the instruction. This is where the node lives or dies. "Write a detailed prompt that would regenerate this image" produces something you can loop back. "Describe the lighting and camera angle" produces an analysis. "List every object and its position" produces a structured dump. Default empty gives you a generic caption.
The output is a single text (STRING) - wire it into a prompt input, a text display, a file saver, anything.
Installing it
Install the pack, not the model. ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Add a key from runware.ai/api-keys via ComfyUI Settings → Runware API key (or RUNWARE_API_KEY). Nothing downloads - the 7B model is served remotely.
Where people get burned
- It's not free. Every caption is a metered cloud call with a title-bar cost. Batch-captioning 500 images is a bill, not a background task - budget accordingly.
- The prompt controls everything. An empty
promptgets you a generic caption that's often useless for prompt-reversal. Be specific about the format you want. - It reads, it doesn't modify. This node returns text. If you want Qwen to edit an image rather than describe it, that's a different model - this one is the caption rung.
- Don't loop it into itself. A caption node feeding a generation node feeding a caption node is a fun demo and a miserable way to spend API credits. Use it for one direction at a time.
Qwen2.5-VL-7B is the cheapest vision-language node in the pack and the one that most rewards a good prompt field. Give it a job, not a shrug.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| promptopt | STRING | Instructions or questions to guide the image analysis. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |