Protoface Kling 3 Turbo Pro · Image to Video
The fast pass on your key frame
- video
- files
- run id
Draft motion before you commit
Here's the loop nobody tells beginners about: pick your frame from four stills, then pick your camera move from four animations, then spend the real money rendering the one you liked. The expensive part should never be the exploration.
That's what this node is for. Kling 3.0 Turbo, image-to-video, 1080p, optimised for speed - the fast tier of the Kling line, in Protoface, the beta pack that exposes hosted models as ComfyUI nodes. Your start frame goes in, a motion pass comes out, and if the motion is right you re-render it on the Pro tier or take it to a local model.
The pairing that makes it click: image node → this node → pick a take → Pro node for the final. Protoface's media inputs take a reused result asset, so the intermediate frame never has to round-trip through your disk.
How it works
Schema-derived controls run through the pack's shared adapter: validation before any upload or submission, media upload with content-hash caching, a journal entry so an ambiguous failure can't silently become a second charge, submit, poll, download, cast to native VIDEO.
generation_id is the paid-request switch, and on a draft-tier node you'll be touching it constantly - every new take wants a bump.
The inputs that matter
image is the start frame and it dominates the result. Clean subject, clear composition, no busy background. Native Image mode, plus a References mode for asset ids and reused results from earlier remote jobs.
prompt is optional in practice - the tooltip calls it "optional text prompt to guide the video", mutually exclusive with multi_prompt. On an image-to-video pass that's the right way to think about it: the frame carries the scene, the prompt carries the movement. "Handheld push-in, coat moving in the wind" is enough; para-producing the scene again is noise.
duration defaults to 5 seconds, as a combo. cfg_scale (default 0.5, 0–1) is prompt adherence versus model freedom; leave it unless a take ignores you or looks stiff.
multi_prompt is the storyboard option: one helper node per shot, and the shot durations must add up to duration. It's the same typed-helper mechanism the pack uses for Kling's other list controls - search the model name plus "Shot" to find them.
Note what isn't here: no end_image, no negative_prompt, no sound toggle. The Turbo image-to-video node is the lean version. If you need an end frame, that's the Pro animate node.
Outputs
video (native VIDEO, list), files (PROTOFACE_FILE list of originals), run id (string). Resume Run with the run id if a render outlives your session; video jobs are long enough that this happens to everyone eventually.
Install
Manager → search Protoface → install protoface-nodes → restart → reload the browser. Manual:
git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git custom_nodes/protoface
python -m pip install -r custom_nodes/protoface/requirements.txt
ComfyUI 0.41.0+ and Python 3.10+; use ComfyUI's own interpreter - a system Python on Windows portable installs the dependencies somewhere ComfyUI will never look. Then click Protoface in the lower-right corner and paste your key. Interactive keys live in server memory only, so a restart means re-entering it.
Where people get burned
Searching for controls that aren't on this node. No end-frame interpolation, no negative prompt. Half the "the node is missing a field" threads for any pack are this.
Shot lists that don't total duration. Validation rejects it; the error names the field.
Rerolling by requeueing. Fixed generation_id + unchanged inputs = the recorded job. Bump it per take.
Interrupting a slow render and assuming nothing happened. Cancellation is best effort and doesn't imply a refund - check the run in your Protoface account, then recover rather than re-spend.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | COMBO | Optional text prompt to guide the video. Mutually exclusive with multi_prompt. | |
| image | COMBO | A public URL, a data URI, or an asset id. | |
| duration | COMBO | 5 | Video length in seconds. |
| cfg_scale | FLOAT | 0.50–1 | Flexibility in video generation; The higher the value, the lower the model's degree of flexibility, and the stronger the relevance to the user's prompt. |
| multi_prompt | COMBO | Multi-shot storyboard. Shot durations must add up to duration. Mutually exclusive with prompt. | |
| generation_id | INT | 00–9007199254740991 | Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed. |
| request_scope | STRING | Automatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| files | PROTOFACE_FILE | — |
| run id | STRING | — |