Get Veo3.1 Video Details
Get Veo3.1 Video Details and Its Timeouts
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it's for
Veo 3.1 is the one closed video model whose party trick nobody has matched locally: it generates audio with the video, synchronised dialogue and all. That's why people put up with it despite it being closed, expensive and unglamorous to call. There is no open-weights equivalent of that audio pipeline, so if you need it, you're going through an API.
The generation side of that lives in its own node. Get Veo3.1 Video Details is the lookup: give it a task and it reports back what happened. Useful when the job was submitted outside ComfyUI, when a workflow was interrupted mid-render, or when you set a callback and want to pick the result up later.
Two things to get straight. It's a read - no charge, no render. And it's not the thing you want for a normal in-graph flow: when you run a Veo generation node in this pack, that node submits the job and polls until it's finished, so the details node is the recovery path rather than the everyday path.
How it works
It queries the Veo3.1 API's record endpoint through the pack's shared client, using the key you saved in Connection Settings. The pack's internals are aware of this family specifically: for Veo results it reads a successFlag, treats 1 as complete, and raises on 2 or 3 with the provider's errorMessage or failMsg. Veo jobs are long, and the pack's default patience reflects that - generation nodes default to a 1200-second wait, tunable between 30 and 7200.
The input story is the pack's standard fallback situation. KIE's docs page for this endpoint didn't carry a machine-readable request schema when the node catalog was built, so the node was generated from the fallback template rather than from real parameters. The pack does re-fetch such pages on demand, so a reload can bring the documented fields in - but as shipped, the visible input is a placeholder.
Inputs and outputs
Required: prompt (multiline STRING, tooltip "Prompt sent to this KIE model"). On a record lookup, this is not a real parameter. It's the pack's generic stand-in for pages whose documentation had no request schema.
Optional: timeout_seconds - INT, default 1200, range 30 to 7200, in 30-second steps. On a details node this is the pack's wait budget for the request; it isn't the render time, since the render already happened. And expert_override_json (default {}), the escape hatch for unschema'd pages. On a GET node, the pack sends its keys as query parameters, so a task ID belongs in there rather than in the prompt field. If you're filling in prompt and leaving this empty, you're not actually querying anything.
Outputs: video (VIDEO), url, all_urls_json, task_id, raw_json (STRING), credits_consumed, credits_left (FLOAT). For a report call, raw_json is where the record lives and url is the first link the pack extracted. The socket layout mirrors the video API family; don't assume a status read will populate a tensor.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart ComfyUI, then paste your key at Settings → KIE.ai Nodes Next → Connection. The pack validates it before saving, keeps the full key out of workflow JSON, and prefers a KIE_API_KEY environment variable when one is set - which is the sane option on a shared or headless box.
Nothing heavy installs here: the requirements are requests, Pillow, numpy, PyYAML. No weights, no CUDA, no models folder. The README's one-click Windows installer under dist/ handles Desktop and Portable paths if you'd rather not place the folder by hand.
Where people get burned
Timeouts are the real friction with Veo through a reseller. A Veo render is slow, a queue can sit behind it, and if you've set timeout_seconds down for a snappier graph you'll get "timed out waiting" while the job is still happily running server-side. Raise the timeout and re-query rather than resubmitting - resubmitting bills you again for a job that was already in flight.
Second: Veo is expensive per second, and per-call cost is the fundamental trade of every API node in this category. People who batch a hundred trial renders through KIE find out the hard way that the pricing is per call and real. Use the low tier to iterate, the headline model to finish.
Third, the standing caveat for API-wrapper packs: this node holds a credential and calls the network by design, and the category has already shipped one credential-stealing malware incident. This pack stores the key in ComfyUI's user config directory, not in the graph, which is the right behaviour - but read what a fresh pack does before its first run, always.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Prompt sent to this KIE model. | |
| timeout_secondsopt | INT | 120030–7200 | — |
| expert_override_jsonopt | STRING | {} | Expert-only payload overrides for APIs whose documentation has no request schema yet. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |