Nodes/WanComfyUI/Wan 3 Generate (Ace Data Cloud)
ComfyUI Node

Wan 3 Generate (Ace Data Cloud)

Wan 3 Generate is the same node as Wan Generate Video, and that matters

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Wan 3 Generate (Ace Data Cloud)
    • status
    • task_id
    • media_urls_json
    • first_media_url
    • result_json
    • trace_id
    ◄parameters_json{}►
    ◄model(from JSON/default)►
    ◄action(from JSON/default)►
    ◄audio►
    ◄prompt_extend►
    ◄resolution►
    ◄shot_type►
    ◄duration►
    ◄prompt►
    ◄negative_prompt►
    ◄size►
    ◄audio_url►
    ◄reference_video_urls►
    ◄callback_url►
    ◄image_url►
    ◄media►
    ◄ratio►
    ◄seed►
    ◄watermark►

    The short version, because it saves you an hour

    This node and Wan Generate Video are the same node with one line changed. Same 16 widgets, same six outputs, same endpoint (POST /wan/videos), and the pack's own contract file holds byte-identical JSON Schemas for the two. The single difference is the fallback model: leave model on (from JSON/default) and this node reaches for wan3.0-video, where the other reaches for wan2.6-t2v. Both then default action to text2video, duration to 5 and resolution to 720P.

    So the real question isn't what this node does - it's whether wan3.0-video earns its credits. Which is a fair thing to be suspicious about, since "Wan 3" has basically no community record.

    What wan3.0-video actually is

    A model ID in a fixed list, not a checkpoint. There are no Wan 3.0 weights, and no reason to expect any: Alibaba's numbered series went API-only after 2.2, and 2.5, 2.6 and 2.7 all shipped without weights. Search the Wan 3.0 chatter in r/StableDiffusion and r/comfyui through mid-2026 and you get a handful of threads hoping the model will exist - "I hope they do release wan 3.0 this year" is the whole genre. Nobody has run it locally, and anyone offering you a Wan 3.0 download is running the same content-farm playbook that produced the dead "run Wan 2.7 locally" guides.

    Which leaves you pricing it yourself. Run your own prompt on wan3.0-video, wan2.6-t2v and wan2.6-i2v-flash, compare, and pick by what you see rather than by the number in the name. The -flash variant exists precisely so you can iterate cheaply.

    Inputs worth knowing

    The widget set is identical to the other generate node, so here's the part that's specific to what this node's description means by "multimodal references." The media widget takes a JSON array of up to ten objects, each {"type": ..., "url": ...}, where type is one of first_frame, last_frame, reference_image, reference_video, reference_audio, file, link. That's how you pin a first frame, hand over a character reference, or drive the shot from a source clip - it's strictly more expressive than the single image_url box, and it's the field people miss.

    For character-driven work, pair model: wan2.6-r2v with reference_image entries: r2v in Wan's naming is reference-to-video, and multi-reference consistency is the one capability here you genuinely can't reproduce with a local Wan 2.2 checkpoint without a ControlNet-ish pile of plumbing. Everything else is the familiar set: prompt, negative_prompt, image_url, resolution (480P/720P/1080P), ratio, duration (2–30 or -1), seed, shot_type (single/multi), and the boolean-shaped audio, prompt_extend and watermark fields you type as true or false.

    Remember the merge rule: parameters_json is the payload, widgets override it, and an empty widget is not sent at all. Set model and action explicitly rather than trusting the default - picking image2video while leaving model on the sentinel means a 3.0 model running an i2v action, which may be exactly what you meant or exactly what you didn't.

    Outputs and the two-step

    status, task_id, media_urls_json, first_media_url, result_json, trace_id - all strings. A fresh submission comes back pending with no media, because the pack always submits async: the task ID is the deliverable, not the video. Take task_id to Wan Retrieve Task (which is read-only and can wait up to 240 seconds), then wire first_media_url into Wan Load Video to get a native VIDEO out. Keep trace_id around if anything goes wrong; it's the handle the service's request history understands, and the pack scrubs the raw error body before you see it.

    Install

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

    Or ComfyUI Manager → search Wan → publisher acedatacloud, package Wan by Ace Data Cloud → install → restart. Two dependencies (requests, jsonschema), zero model downloads. Put ACEDATACLOUD_API_KEY in the ComfyUI process environment and restart, or the node raises Set ACEDATACLOUD_API_KEY in the ComfyUI process environment and restart.

    Where people get burned

    The payload is validated against the published contract locally, so typos cost you a red node, not a credit - but only for things the schema knows about. A blank image_url with an i2v action sails through, because empty widgets are dropped rather than rejected. Paid submits are single-attempt by design, so a timeout tells you to preserve the task ID and check request history before paying again. And since both generate nodes hit the same endpoint, stacking them in one workflow buys you nothing except a model comparison - which is, to be fair, a decent reason to run two of them on the same prompt and batch-retrieve the results.

    CategoryAce Data Cloud/Wan

    Inputs (19)

    NameTypeDefaultDescription
    parameters_jsonSTRING{}—
    modelCOMBO(from JSON/default)6 options: (from JSON/default), wan2.6-i2v, wan2.6-r2v, wan2.6-i2v-flash, wan2.6-t2v, wan3.0-video
    actionCOMBO(from JSON/default)3 options: (from JSON/default), text2video, image2video
    audioSTRING—
    prompt_extendSTRING—
    resolutionSTRING—
    shot_typeSTRING—
    durationSTRING—
    promptSTRING—
    negative_promptSTRING—
    sizeSTRING—
    audio_urlSTRING—
    reference_video_urlsSTRING—
    callback_urlSTRING—
    image_urlSTRING—
    mediaSTRING—
    ratioSTRING—
    seedSTRING—
    watermarkSTRING—

    Outputs (6)

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