V1 Pro Image to Video
One still in, five or ten seconds out
- image_url
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
The V1 family is the older, cheaper tier of ByteDance video in this pack, and its image-to-video nodes are the ones I'd hand a beginner. One required image, one prompt, five or ten seconds, done. No reference-audio matrices, no mutually exclusive modes, no -1 duration semantics - you animate a picture you already like and you see quickly whether the hosted-model route is worth your money.
This is the Pro variant: better fidelity than Lite, one required image instead of the Lite node's required start and end frame pair. If you've got a single still and no idea how it should finish, this is the node. If you have two frames and want the model to interpolate between them, that's Lite's image-to-video, and it's cheaper.
Inputs and outputs
image_url is required and it's a native IMAGE socket - connect the output of any local generation, or a loaded photo. The pack uploads it to KIE and injects the URL for you, so there's no URL field to paste and no manual upload step. The prompt is where you tell it what should move: subject motion, environment motion, and the camera language you want. Sanity check on that last part: camera_fixed exists as a switch, so prompt-only camera control is only half the story here.
prompt is required too - multiline and documented up to 10,000 characters. V1-era prompts handle multi-shot descriptions by convention: several of KIE's own examples use bracketed beats like [Cut to] and [Wide shot] inside one prompt, and that's the cheap way to get more than a single continuous action out of a five-second clip.
Optional: resolution (480p, 720p, 1080p - 720p is the balance point and 480p the draft), duration as a discrete choice of 5 or 10, camera_fixed to lock the camera off, seed (FLOAT, -1 for random), enable_safety_checker (default true - the docs note it's always on in KIE's own playground and can only be disabled through the API), nsfw_checker (default true here), timeout_seconds, and callback_url, which you leave empty in ComfyUI.
Outputs are the pack's video signature: video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. After a run the node also displays credits spent and the remaining balance, which is the honest feedback loop for metered work.
Practical notes
Iterate at 480p and five seconds. Two knobs cut the bill: halving resolution and halving duration. Get the motion right cheaply, then re-run the keeper at 720p or 1080p. Anyone using the Seedance 2.x nodes arrived at the same habit independently.
Fix the image, not the prompt. The most common disappointment with image-to-video is that the model animates fine but the frame you fed it was mediocre. Approve the still first - this is exactly where a Seedream-generated or locally generated and upscaled image pays off.
Watch the seed. In ComfyUI the seed widget typically has a control mode that changes the value between runs. If you find a seed you want to keep, switch it so the value is used before generation, or you'll never actually reproduce the clip and you'll blame the model.
It waits. The node blocks your queue until the task completes; timeout_seconds defaults to 1200 and can go to 7200. A generation that times out still cost what it cost.
Install
Manager → search KIE.ai Nodes Next (publisher id felipeosilva); if Manager returns nothing, the README still describes registry publication as prepared rather than shipped, so clone it:
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. Requirements are requests, Pillow, numpy and PyYAML - no local model, no ffmpeg, nothing to download, because all the inference happens on KIE's side. Finished results get archived under output/KIE-Results/ so a restart doesn't lose them. Windows users can run the one-click .vbs installer in dist/. Set your key once in Settings → KIE.ai Nodes Next → Connection: it's validated against KIE before replacing a saved key, only a masked fingerprint reaches the frontend, and the full key never lands in workflow JSON. KIE_API_KEY overrides for headless installs.
Gotchas
camera_fixed and the prompt can fight. Setting the switch doesn't rewrite your prompt; if you asked for a slow push-in, expect some movement.
The filter is the provider's. enable_safety_checker and nsfw_checker are KIE's controls, and ByteDance's model still makes its own decisions. There are no local weights to patch - that's the nature of a closed model.
New models won't appear on their own forever. The V1 nodes come from the catalog that's cached on your machine. Run KIE • Refresh Model Catalog if a model you've read about is missing, and remember that node definitions mirror KIE's live docs - including their quirks.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A golden retriever dashing through shallow surf at the beach, back angle camera low near waterline, splashes frozen in time, blur trails in waves and paws, afternoon sun glinting off wet fur, overcast day, dramatic clouds | The text prompt used to generate the video (Max length: 10000 characters) |
| image_url | IMAGE | — | |
| resolutionopt | COMBO | 720p | Video resolution - 480p for faster generation, 720p for balance, 1080p for higher quality |
| durationopt | COMBO | 5 | Duration of the video in seconds |
| camera_fixedopt | BOOLEAN | false | Whether to fix the camera position (Boolean value (true/false)) |
| seedopt | FLOAT | -1.00-1–2147483647 | Random seed to control video generation. Use -1 for random. (Min: -1, Max: 2147483647, Step: 1) (step: 1) |
| enable_safety_checkeropt | BOOLEAN | true | The safety checker is always enabled in Playground. It can only be disabled by setting false through the API. (Boolean value (true/false)) |
| nsfw_checkeropt | BOOLEAN | true | Defaults to false. You can set it to false based on your needs. If set to false, our content filtering will be disabled, and all results will be returned directly by the model itself. Note: There is no guarantee that everything can be filtered out; if you are not satisfied with the results, you will need to make your own arrangements. |
| 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 | — |