Nodes/Protoface/Protoface Kling 3.0 Pro · Text to Video
ComfyUI Node

Protoface Kling 3.0 Pro · Text to Video

Multi-shot storyboards from one node

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface Kling 3.0 Pro · Text to Video
    • video
    • files
    • run id
    ◄prompt►
    ◄duration5►
    ◄aspect_ratio16:9►
    ◄cfg_scale0.5►
    ◄multi_prompt▾►
    ◄negative_prompt▾►
    ◄shot_typecustomize►
    ◄sound▾►
    ◄generation_id0►
    ◄request_scope►

    Kling, and the feature nobody else has

    Kling built its reputation on motion - the models that make a figure actually move rather than drift. Kling 3.0 Pro is the current generation, and this node is its text-to-video task, via Protoface, the beta pack that puts hosted models on the ComfyUI canvas. Paid per generation, remote, no weights.

    The thing that makes this node more than "Kling in a box" is multi_prompt. Instead of one prompt for one clip, you build a list of shots - each with its own prompt segment and duration - and the model renders them as a single cut sequence. For anyone who's been rendering three separate clips and stitching them in a video editor, that's a real workflow change.

    The catch is equally real: the shot durations have to add up to duration, and getting that arithmetic wrong is the number one error on this node.

    How it works

    Everything runs through the pack's shared adapter: schema-derived controls, payload validation, upload, journal, submit, poll, download, native VIDEO. The multi-shot control isn't a text box - it's a list input that takes typed helper nodes. You search the model name plus "Shot", connect one helper per shot, and set the control to Set. Same mechanism the pack uses for Kling transitions and keyframe lists.

    generation_id is the paid-request identity, separate from any seed. Keep it fixed to reuse/resume; increment to buy another generation.

    The inputs that matter

    prompt vs multi_prompt is an exclusive choice - the tooltip spells it out: provide exactly one of them, not both. Single prompt for one continuous shot; multi-shot when you want cuts.

    duration defaults to 5 seconds and is a combo, not a free number. This is the budget your shot list has to sum to.

    cfg_scale (default 0.5, range 0–1) is worth understanding, because it's not the CFG you know from a local sampler. Higher values reduce the model's flexibility and bind it more tightly to your prompt; lower values let it improvise. If your clips keep ignoring the prompt, this goes up. If they look stiff, this comes down.

    shot_type defaults to customize - the mode that lets your multi-prompt list drive the structure.

    sound is media-style (Default omits it entirely), so audio is an opt-in here rather than something baked into the run.

    negative_prompt likewise defaults to omitted. aspect_ratio is 16:9 out of the box; change it before you render, not after.

    Outputs

    video (native VIDEO, list), files (PROTOFACE_FILE list of originals), run id (string). If you're chaining - into Extend, into another Protoface video input, into an editor - files is the honest source of what the provider actually returned.

    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+, using ComfyUI's interpreter. Then click Protoface in the lower-right corner and paste a key from your Protoface account. The helper shot nodes only exist once the pack's frontend has loaded, so if searching "Shot" finds nothing, reload the browser rather than reinstalling.

    Where people get burned

    Shot durations that don't sum to duration. Instant validation failure, and the message will point at the field. Do the arithmetic before you build the list.

    Setting both prompt and multi_prompt. Mutually exclusive by contract. Pick one.

    Expecting the shot helpers to appear like normal nodes. They're generated from the model's schema, so they show up under Protoface/Structured Controls - search the model name plus "Shot" rather than browsing for Kling.

    Chasing a reroll without incrementing generation_id. You'll get the recorded job. Deliberate: it's what stops a crashed run from becoming two charges.

    CategoryProtoface/Video/kuaishou

    Inputs (10)

    NameTypeDefaultDescription
    promptSTRINGThe positive prompt for the generation.
    durationCOMBO5The duration of the generated media in seconds.
    aspect_ratioCOMBO16:9The aspect ratio of the generated video.
    cfg_scaleFLOAT0.50–1Flexibility 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_promptCOMBOList of multi-prompt shot segments for the generation.
    negative_promptCOMBOThe negative prompt for the generation.
    shot_typeCOMBOcustomizeShot type for the generation.
    soundCOMBOWhether sound is generated simultaneously when generating a video.
    generation_idINT00–9007199254740991Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed.
    request_scopeSTRINGAutomatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret.

    Outputs (3)

    NameTypeDescription
    videoVIDEO—
    filesPROTOFACE_FILE—
    run idSTRING—