Nodes/VeoComfyUI/Veo Upsample Video (Ace Data Cloud)
ComfyUI Node

Veo Upsample Video (Ace Data Cloud)

1080p, 4K, or a GIF of all things

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Veo Upsample Video (Ace Data Cloud)
    • status
    • task_id
    • video_url
    • trace_id
    ◄video_id►
    ◄action1080p►

    The most common way people first notice this pack exists is by complaining that their Veo output is 720p. Fair - the default tier is not full HD, and the good version is a separate operation you pay for. Upsample is the broadest of the two nodes that do it.

    What it does

    It POSTs to a dedicated /veo/upsample endpoint with an existing video ID and an action, then returns a task ID like every other paid node here. Ace re-encodes the clip at your chosen target and gives you a new CDN URL.

    Three actions, and they're not all the same kind of thing:

    • 1080p - full HD. The ordinary reason you're here.
    • 4k - the big one. Only worth it if you have a real reason; file sizes and processing time both climb.
    • gif - yes, really. An animated loop, which is a format conversion rather than a resolution bump - and also a handy way to get a small, silent preview you can drop in a post or a chat without asking anyone to download a video file.

    Note there's no model input. That's the difference between this node and Veo Get 1080p, which needs you to name the model that made the original and only targets 1080p. Upsample doesn't care what generated the file, which makes it the one that works on clips from the Ingredients model too.

    Inputs and outputs

    • video_id - the ID of an existing, completed Veo video. Not a URL. The client rejects a URL loudly (An existing Veo video ID is required; do not enter a URL) rather than letting the request fail upstream.
    • action - 1080p (default), 4k, or gif.

    Outputs are the pack's standard status, task_id, video_url, trace_id. Submission returns pending with an empty video_url - normal, not an error. Wire task_id into Veo Retrieve Task, then the video_url it returns into Veo Load Video.

    Install and key

    ComfyUI Manager → Custom Nodes → search Veo → confirm publisher acedatacloud and package Veo by Ace Data Cloud → install, restart. Or clone it:

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

    One dependency, requests>=2.31,<3. No weights, no VRAM, but it does need ComfyUI 0.39.0+ because results come back as the native VIDEO type. Credential goes in the environment of the running ComfyUI process, then restart:

    export ACEDATACLOUD_API_KEY='paste-your-key-here'
    python main.py
    

    Where people get burned

    The big one is a conceptual mismatch that costs money. Upscaling re-encodes pixels; it does not add detail. If your clip is soft, or the motion is mush, upscaling to 4K gives you a big soft clip. This is the same "more pixels vs more detail" split that trips people in image upscaling - a re-encode is the first job, not the second, and no provider-side pass is inventing eyelashes that weren't rendered.

    So: if you still have the ability to regenerate, don't upsample - generate at the resolution you want in the first place. 4k is accepted at generation time on the veo31 and veo31-fast models, and a native 4K render beats an upscaled 720p one every time. Treat this node as the tool for rescuing a clip you have already paid for and can't or don't want to redo.

    Small stuff after that: the field wants a video ID, so keep the task record rather than just the download link. The node is an output node, which means it runs on Queue Prompt even with nothing connected downstream of it - mute it while you set the graph up. And when a job sits at pending, rerun Retrieve against the same task ID; nothing in this pack ever retries a paid submission for you.

    CategoryAce Data Cloud/Veo

    Inputs (2)

    NameTypeDefaultDescription
    video_idSTRING—
    actionCOMBO1080p3 options: 1080p, 4k, gif

    Outputs (4)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    video_urlSTRING—
    trace_idSTRING—