Nodes/KIE.ai Nodes Next/Kling 3.0 Omni Image To Video
ComfyUI Node

Kling 3.0 Omni Image To Video

A two-widget node, and why that's on KIE, not you

By felipederosilva·Created 2 months ago·Updated a day ago· 3
Kling 3.0 Omni Image To Video
    • video
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄prompt►
    ◄timeout_seconds1200►
    ◄callback_url►
    ◄expert_override_json{}►

    First, the weird part

    Open this node and you'll find… a prompt box. That's it. Plus timeout_seconds, callback_url and a JSON field called expert_override_json. No image socket on an image-to-video node.

    That is not a bug in your install, and it's worth understanding because it explains a whole class of nodes in this pack. KIE Next builds its model nodes automatically from KIE's API documentation: it reads the request example for an endpoint, pulls the parameter metadata, and generates widgets. When a documentation page has examples but no request schema, there's nothing to turn into widgets - so the factory emits a prompt plus a raw escape hatch. Kling 3.0 Omni's image-to-video page is one of those pages.

    So this is the Kling 3.0 Omni image-to-video endpoint, reachable from ComfyUI, in its least polished form.

    Why you'd still want it

    Kling 3.0 Omni is the omnimodal tier - the one that handles multi-shot planning, subject elements, audio and 4K in the sibling nodes in this same folder. Image-to-video is the mode you use when you already have the frame you want and just need it to move: a portrait that should turn and smile, a product shot that should get a slow push-in, a character still that needs one beat of motion.

    Same deal as every Kling node in this pack: Kuaishou's model has no weights, so there's no local route, and the connection is KIE.ai - a third-party reseller with its own account, credits and key, not ComfyUI's official Partner Nodes. Cost per call, real moderation, your inputs leaving the machine. That's the trade you're making.

    How the payload actually gets built

    Under the hood the node assembles {"model": "kling-3.0-omni/image-to-video", "input": {...}}, POSTs it to KIE's createTask, then polls recordInfo until the task reports success, downloads the MP4 to output/KIE-Results/videos/, and returns it as a native ComfyUI VIDEO. Whatever you put in expert_override_json is merged straight into that input object, overriding anything the widgets produced - which is the entire point here, since the widgets are effectively empty.

    Making it usable in four minutes

    Wire your image into a KIE • Upload Image node (it lives under the pack's Utility branch - it pushes a local image to KIE and outputs the hosted url). Then paste that URL into the override field using KIE's documented field name:

    {
      "image_urls": ["https://your-uploaded-url.png"],
      "prompt": "she turns toward the camera and smiles, slow dolly in",
      "duration": "5",
      "aspect_ratio": "16:9",
      "resolution": "1080p"
    }
    

    Keep the JSON in expert_override_json small and only include fields you're sure about. The prompt widget above also still works - if the override has no prompt, the value from the widget goes out.

    Inputs and outputs

    Required: prompt. Optional: timeout_seconds (default 1200 seconds of polling - raise it before you assume a 4K job hung), callback_url (leave empty), expert_override_json. That's the whole surface. There is no seed, no negative prompt, no camera widget on this node.

    Outputs: video (the VIDEO object to wire into a save or preview), url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. When a job fails, raw_json is the first place to look - KIE usually tells you which field it hated. credits_left comes back -1 if the balance service is down, which is not an error.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
    

    Restart ComfyUI, then Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The key is validated against KIE before it's stored, kept out of your workflow JSON, and confirmed with a masked fingerprint and ✅ CONNECTED. Server installs can set KIE_API_KEY instead; it takes priority. Dependencies are only requests, Pillow, numpy, PyYAML. Manager install and the ZIP in dist/ both work.

    Gotchas

    The node class name is stable, the widgets are not. Because these nodes are generated from KIE's docs, the same node may grow real widgets after a catalog refresh - that's the 24-hour background sync doing its job. Don't rebuild your workflow around the override hack; check whether the image socket has appeared, and if it has, use it.

    Old workflows move. The pack ships widget-migration JavaScript specifically because generated nodes have changed shape across releases (a boolean audio field that used to be a socket, seeds that shifted position). If a workflow loads with values in the wrong boxes, update the pack and let the migration run.

    KIE task ... failed is the provider refusing, not the pack misbehaving. Read the message, check the prompt, check the image. And remember this node is doing real work per call - the credit receipt printed on the node after each run is the cheapest cost audit you'll get.

    CategoryKIE Next/Video/Kling

    Inputs (4)

    NameTypeDefaultDescription
    promptSTRINGPrompt sent to this KIE model.
    timeout_secondsoptINT120030–7200—
    callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.
    expert_override_jsonoptSTRING{}Expert-only payload overrides for APIs whose documentation has no request schema yet.

    Outputs (7)

    NameTypeDescription
    videoVIDEO—
    urlSTRING—
    all_urls_jsonSTRING—
    task_idSTRING—
    raw_jsonSTRING—
    credits_consumedFLOAT—
    credits_leftFLOAT—