Nodes/ComfyUl-UCloud/Modelverse Veo 3.1 Video
ComfyUI Node

Modelverse Veo 3.1 Video

Veo 3.1 with real audio, right in your ComfyUI graph

By ucloud·Created about a year ago·Updated 3 months ago· 3
Modelverse Veo 3.1 Video
  • client
  • first_frame_image
  • last_frame_image
  • url
  • task_id
modelveo-3.1-generate-001
prompt
generate_audiotrue
first_frame_url
last_frame_url
negative_prompt
aspect_ratio16:9
resolution720p
duration8
seed0
person_generationallow_adult

Google's Veo is the video model the local community keeps measuring itself against, and Veo 3.1 has one thing nobody else on this list has: native audio. It generates synchronized sound effects and dialogue along with the picture - the KB's closed-source notes call it a genuine capability gap, and it still mostly is. Modelverse Veo 3.1 Video puts that model inside ComfyUI through UCloud's ModelVerse API. You get Veo 3.1 without a Google Cloud account, a Gemini API key, or any local model.

If your project needs video with sound - a talking character, a scene with ambience - this is the node in this pack you actually can't replicate locally. Veo 3.1's audio is the differentiator, and this is the cheapest way to touch it from a ComfyUI workflow.

The inputs that matter

Required:

  • client - the pack's standard wiring from Modelverse Client or Secret Client.
  • model - veo-3.1-generate-001 (default, standard quality) or veo-3.1-fast-generate-001 (faster, lower cost).
  • prompt - required. Describe the shot, motion, and if you want audio, describe the sound too.
  • generate_audio - defaults to true and the tooltip is blunt: audio is required by the Veo API, not optional polish. Turn it off only if you want video-only and a smaller bill.

Optional but useful:

  • first_frame_image / first_frame_url - turns it into image-to-video (give one or the other, never both).
  • last_frame_image / last_frame_url - with a first frame, gives you start-and-end animation.
  • duration - 4, 6, or 8 seconds. Veo's default here is 8.
  • resolution - 720p or 1080p; aspect_ratio - 16:9 or 9:16.
  • person_generation - allow_adult (default) or dont_allow. This is Google's safety dial for faces and people; expect it to actually matter.
  • seed - 0 to skip, or a fixed number to reproduce.

The two outputs are the pack's standard url and task_id, and url feeds Modelverse Preview Video to save the clip.

How it works

Under the hood the node converts your frame tensors to base64 (or fetches URLs), submits a task to Modelverse, and polls every 5 seconds until the video - up to 180 retries, which is a long wait for 8 seconds of video. Veo is not fast; budget for it. The audio comes back embedded in the generated file, so Preview Video just saves an .mp4 that has sound when you play it.

Install and expectations

Standard pack install: ComfyUI Manager → search "ComfyUl-UCloud" → Install → restart, or git clone https://github.com/ucloud/comfyui-plugin into custom_nodes. Light deps, no downloads.

Two honest notes. First, Veo 3.1 is the priciest model in this pack and the queue can be slow - don't treat it as a toy for iterating; draft with something cheaper, then run Veo for the final. Second, it's Google: expect the same content-filtering behavior you'd get from the first-party API. The person_generation dial is real, and the model will still refuse things it doesn't like. That's the trade for getting the audio gap closed.

CategoryUCLOUD_MODELVERSE/Veo

Inputs (14)

NameTypeDefaultDescription
clientMODELVERSE_API_CLIENT
modelCOMBOveo-3.1-generate-001veo-3.1-generate-001: standard quality, veo-3.1-fast-generate-001: faster generation
promptSTRINGText prompt describing the desired video
generate_audioBOOLEANtrueWhether to generate synchronized audio (required by Veo API)
first_frame_imageoptIMAGEFirst frame image for image-to-video
first_frame_urloptSTRINGFirst frame image URL (use either this OR first_frame_image)
last_frame_imageoptIMAGELast frame image for start-end video
last_frame_urloptSTRINGLast frame image URL (use either this OR last_frame_image)
negative_promptoptSTRINGNegative prompt for unwanted elements
aspect_ratiooptCOMBO16:9Output aspect ratio
resolutionoptCOMBO720pOutput resolution
durationoptCOMBO8Video duration in seconds: 4, 6, or 8
seedoptINT00–4294967295Random seed (0 to skip)
person_generationoptCOMBOallow_adultSafety setting for person/face generation

Outputs (2)

NameTypeDescription
urlSTRING
task_idSTRING