Grok Imagine - Video Upscale
The cheapest node in the Grok folder, with one hard rule
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it is
A resolution bump for video, at KIE Next / Video / xAI / Grok Imagine. One input, one switch, one output - and unlike the rest of this folder, it generates nothing. It takes a video that KIE already produced and re-renders it at a higher resolution, which makes it the cheapest way to turn a 480p draft into something you'd actually post.
That's the honest place for it in a workflow: draft everything low, pick the take you like, then upscale that one. Rendering a 1080p clip blind costs more than rendering 480p and upscaling the survivor.
How it works
It submits an upscale task against an existing KIE video task ID, polls until the job finishes, downloads the result and returns a native ComfyUI VIDEO. Since KIE holds the original, there's no upload from your side and nothing local to compute - the upscaling model lives on their hardware.
The inputs
- task_id (required) - the source, and this is the hard rule: it must be a task ID from a previously successful Kie AI video generation (the docs name
grok-imagine/text-to-videoas the example class). Only KIE-generated task IDs are accepted. A locally rendered clip has no such ID, so this node cannot upscale your Wan output, your AnimateDiff render, or anything else that never left your machine. Wire it from thetask_idoutput of a Grok Imagine video node. - resolution -
720p(default) or1080p. KIE's description is just "video generation resolution"; there's no scale factor to set, which is the whole reason this node has two widgets instead of five. - timeout_seconds (default 1200) and callback_url - leave the callback empty for normal ComfyUI use.
Outputs
video is the upscaled clip as a ComfyUI VIDEO object. url is the primary result URL, all_urls_json holds every URL the task returned, task_id is the new task you can chain further, raw_json is the provider's full response, and credits_consumed / credits_left report cost and remaining balance, also drawn on the node after a successful run.
Local alternative, stated plainly
Our KB's upscaling deep-dive makes the local case well: for video, real-ESRGAN-class models and the various frame-by-frame workflows are free per run and give you control over what's happening to the frames. What they don't give you is convenience - video upscaling locally is a whole afternoon of VRAM tuning on a long clip. So: this node when you want it done, a local pipeline when you want it done your way and you're doing it often. Neither is wrong, and the per-call cost here is small enough to be the tiebreaker.
Install
Manager → KIE.ai Nodes Next, or:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
python -m pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
requests, Pillow, numpy, PyYAML. No weights, no GPU. Restart ComfyUI, then save your KIE.ai key once at Settings → KIE.ai Nodes Next → Connection - validated before it's stored, masked afterwards, with KIE_API_KEY as the headless option. The pack builds its nodes from KIE's live API docs on first launch and re-checks about daily, so a missing node usually means "sync hasn't happened yet".
Gotchas
- KIE task IDs only. The single most predictable failure here is feeding it a video object or a task ID from another service. There's no upload socket to fall back on, by design.
- Source must have succeeded. A failed task has no video to upscale, and the error you get will look like a bad ID.
- 1080p output, not 4K. Two options, nothing else.
- Need a current ComfyUI for the
VIDEOoutput. The pack usescomfy_api's file-backed video helper and raises an explicit update-ComfyUI error on old builds. - No key →
No KIE API key configured.One-time Settings step.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| task_id | STRING | task_grok_12345678 | Task ID from a previously successful video generation task. Required field. - Must be from a Kie AI video generation model (e.g., grok-imagine/text-to-video) - The original video generation must have completed successfully - Only Kie AI–generated task IDs are supported |
| resolutionopt | COMBO | 720p | Video generation resolution. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
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 | — |