Nodes/KlingComfyUI/Kling Apparel (Ace Data Cloud)
ComfyUI Node

Kling Apparel (Ace Data Cloud)

Put the clothes on a person, then make them move

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Kling Apparel (Ace Data Cloud)
    • status
    • task_id
    • media_urls_json
    • first_media_url
    • result_json
    • trace_id
    ◄parameters_json{}►
    ◄contents►
    ◄settings►
    ◄watermark►
    ◄callback_url►

    Fashion video, without the shoot

    Apparel is Kling's garment-specific tool: you describe the product, hand it the product imagery, and it produces a video of a model wearing the thing - optionally driven by a reference clip so the person actually moves like a person. It's the closest thing in this pack to a commercial product, and the audience is obvious: small shops, print-on-demand sellers, people who need an ad for a hoodie by Thursday and can't book a model.

    Be honest with yourself about the category before you build on it. This is a hosted, per-call, closed model behind a reseller with no community footprint - a literal corpus search for "Ace Data Cloud" returns zero threads. Flux 2 locally does a decent virtual try-on composite, and open video models do the motion half; the value here is that you get both in one paid call without owning the pipeline. If you're producing one video for one product, that's a great trade. If you're producing five hundred, do the math on per-call pricing first.

    How it works

    There's no model or action selector on this node. Everything goes through named widgets, and three of them carry the whole job.

    contents is where the input lives, and it's a JSON array - at least two entries, each tagged with a type. The allowed types are product_info (a text description, up to 2500 characters), source_video (a URL to a reference clip whose motion the output can follow), product_image (a URL), model_image (a URL of the person wearing it), bgm (a URL to background music) and voice (a voice ID, up to 128 characters, the ones you manage with Kling Voices). A minimal run looks like a product image plus a description; a rich one adds the model image, the driving video, music and a voice.

    settings is a JSON object with resolution (720p or 1080p) and aspect_ratio - and the aspect list is unusually generous here: 9:16, 2:3, 3:4, 1:1, 4:3, 3:2, 16:9, 21:9. Nine-by-sixteen for the feed, twenty-one-by-nine for a banner, from one node.

    watermark toggles the service watermark. It's a STRING widget, so you type true or false; the client coerces it. Leave it empty to fall back to the API default.

    Everything is validated against the published contract before the request leaves your machine, which means a typo in the JSON costs you a red node rather than Credits.

    Inputs and outputs

    Widgets: parameters_json, contents, settings, watermark, callback_url.

    Outputs are the pack's standard six STRINGs: status, task_id, media_urls_json, first_media_url, result_json, trace_id. first_media_url → Kling Load Video for a native VIDEO, and status into a PreviewAny while you're iterating.

    One wrinkle: the request is asynchronous. You get a task ID almost immediately and the render happens server-side, so expect status: pending on the first run and poll with Kling Retrieve Task.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/KlingComfyUI
    cd KlingComfyUI && python -m pip install -r requirements.txt
    # restart ComfyUI
    

    Manager: search Kling, confirm publisher acedatacloud and package Kling by Ace Data Cloud (Registry ID kling). Requirements are requests and jsonschema; nothing is downloaded and no GPU is touched. Video loading needs ComfyUI 0.39.0 or newer.

    export ACEDATACLOUD_API_KEY=your_key_here   # then launch ComfyUI
    

    Common issues

    "Invalid contents: does not meet the API's minItems constraint." Fewer than two entries. One product image alone isn't enough - pair it with a description.

    Unknown type values. The array is validated strictly; image or product aren't valid types. Copy the names from the list above, exactly.

    All your media has to be URLs the service can fetch. There's no upload widget. Product photos sitting in ComfyUI/input are invisible to this node.

    The JSON is a string widget. Newlines inside it are fine; smart quotes from a word processor are not. If the node complains that something must contain valid JSON, that's usually why.

    Paid calls don't retry. The client submits once. If a request fails at the connection layer it may still have created a task, so check the task or trace ID before re-queuing - re-running this node is a new charge every time.

    CategoryAce Data Cloud/Kling

    Inputs (5)

    NameTypeDefaultDescription
    parameters_jsonSTRING{}—
    contentsSTRING—
    settingsSTRING—
    watermarkSTRING—
    callback_urlSTRING—

    Outputs (6)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    media_urls_jsonSTRING—
    first_media_urlSTRING—
    result_jsonSTRING—
    trace_idSTRING—