Nodes/ComfyUI-API-DockerCPU/Replicate lucataco/qwen3-vl-8b-instruct
ComfyUI Node

Replicate lucataco/qwen3-vl-8b-instruct

Ask a vision model what's in your image β€” then feed the answer back into your workflow

By trustypangolinΒ·Created 5 months agoΒ·Updated about a month agoΒ· 0
Replicate lucataco/qwen3-vl-8b-instruct
  • VIDEO
  • text
  • API_JSON
β—„dry_runfalseβ–Ί
β—„force_rerunfalseβ–Ί
β—„max_new_tokens512β–Ί
β—„promptDescribe what is happening in the media contentβ–Ί
β—„temperature0.70β–Ί
β—„top_p0.90β–Ί
β—„video_fps1.00β–Ί
β—„video_max_pixels200704β–Ί

Sometimes your workflow's problem isn't generating an image - it's understanding one. Qwen3-VL is a vision-language model, and lucataco's 8B instruct build on Replicate is one of the more sensible hosted ways to run one: you hand it an image (or a video), it describes it, answers questions about it, and returns text. In ComfyUI terms that means this node sits at the front of a pipeline: caption a batch of images for a LoRA dataset, write alt-text, generate prompts from reference photos, or build an auto-tagger that feeds your prompt back into a generation node. It's the "eyes" a CPU-only ComfyUI install otherwise doesn't have.

The node is a standard Replicate schema node with a text output: text (STRING - the model's answer) and API_JSON (the payload that was sent). Feed the text output into the pack's Save Text With Filename node and you've built a batch captioner in four nodes. That pairing is, honestly, the most common real use of this node.

Inputs worth knowing:

  • prompt (default "Describe what is happening in the media content") - your instruction. This is a multiline string and it does what you'd expect; the model follows it.
  • max_new_tokens (default 512) - cap on the reply length. If the model keeps cutting itself off on long descriptions, raise it.
  • temperature (default 0.7) and top_p (default 0.9) - the usual sampling dials. For captioning you mostly want them low-ish so descriptions are stable and repeatable; for creative prompt-generation you can let them loose.
  • VIDEO (a VIDEO-labeled input that's actually IMAGE-typed, accepting frames) plus video_fps (default 1) and video_max_pixels (default 200704) - the model handles video by sampling frames. Keep video_fps low unless you're genuinely reviewing motion; every frame you add is tokens and time.
  • dry_run and force_rerun - the pack-wide pair. Dry-run tests your wiring for free; force_rerun busts ComfyUI's output cache when you want a real new call.

There's no image-specific "upload" input in the schema - you wire your IMAGE through the VIDEO input (yes, the naming is weird; it's a schema-mapping artifact of a model whose input is media-typed). If you're coming from local VLM workflows expecting separate image and video ports, just know this one node covers both.

Install is the pack standard - ComfyUI Manager, search ComfyUI-API-DockerCPU, or:

cd ComfyUI/custom_nodes
git clone https://github.com/trustypangolin/ComfyUI-API-DockerCPU
cd ComfyUI-API-DockerCPU
pip install -r requirements.txt

Set REPLICATE_API_TOKEN and restart; it's under 🎨 DockerCPU API/🎨 Replicate.

The catches are the usual ones for hosted inference: it's pay-per-call, so a captioning run over a few thousand images is a real line item - always dry-run on a handful first. And vision models hallucinate details in the way LLMs do: if your captions feed a LoRA training run, skim the first batch of output before committing, because garbage captions train garbage LoRAs. But as a way to give a GPU-less ComfyUI install eyes, this is the node.

Category🎨 DockerCPU API/🎨 Replicate

Inputs (9)

NameTypeDefaultDescription
dry_runBOOLEANfalseβ€”
force_rerunBOOLEANfalseβ€”
VIDEOoptIMAGEβ€”
max_new_tokensoptINT5121–4096β€”
promptoptSTRINGDescribe what is happening in the media contentβ€”
temperatureoptFLOAT0.700–2β€”
top_poptFLOAT0.900–1β€”
video_fpsoptFLOAT1.000.1–10β€”
video_max_pixelsoptINT2007040–1048576β€”

Outputs (2)

NameTypeDescription
textSTRINGβ€”
API_JSONSTRINGβ€”