Nodes/ComfyUI-nkxx/1. Veo 提交任务 (Wujiai)
ComfyUI Node

1. Veo 提交任务 (Wujiai)

Veo 3.1 from the Wujiai channel, with three reference images and seven model flavors

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
1. Veo 提交任务 (Wujiai)
  • image_1
  • image_2
  • image_3
  • response
promptA cinematic shot of...
modelveo_3_1-fast
aspect_ratio16:9
api_key

If you're comparing this pack's two Veo submit nodes, the difference is which reseller you're paying. This is the Wujiai-channel one, "1. Veo 提交任务 (Wujiai)"; the Grsai channel has its own submitter with its own API key and its own task database. Same idea - upload a prompt and up to three images, get a task ID back - but you register at wujiai.org instead of nkxx.grsai.ai, and your credits and moderation live in a different account.

The mechanism

Veo 3.1 is a closed Google model, so this node is an HTTP client in a trench coat: it wraps your prompt and images, calls the Wujiai API, and returns a string. The mechanism is straightforward. Each of the three optional image_1/2/3 inputs gets uploaded to Wujiai's image host and turned into a URL. Then it POSTs {model, prompt, aspectRatio, ...} to Wujiai's /v1/video/create endpoint, reads the task ID out of the response, and writes it into a local JSON database so the matching query node can find it later. It also appends a random zero-width character to your prompt - that's a deliberate trick to stop ComfyUI from seeing the same prompt twice and skipping the run, so don't "clean it up."

Picking a model

The model dropdown is where this node earns its keep - seven Veo 3.1 flavors, more than the Grsai submitter offers:

  • veo_3_1-fast and veo_3_1 - the workhorses
  • veo_3_1-fast-4K and veo_3_1-4K - 4K output, pricier per second
  • veo_3_1-components, veo_3_1-components-4K, veo_3_1-fast-components-4K - the components family, which is Veo's take on layered/shot composition control

Plus aspect_ratio (16:9 or 9:16). The default of veo_3_1-fast is a sensible place to start: fast is noticeably cheaper than the full model and most people can't tell the difference until they're pixel-peeping at 4K. Your call, but I'd prototype on fast and only reach for 4K when the deliverable actually needs it - video credits evaporate fast and this is metered per second.

Output is a single response STRING containing the task ID and a nudge to use the query node. You don't wire it into anything; the workflow continues through VeoQueryTasks (same Wujiai channel) and then VeoGetNextVideo when the status flips to done.

Install and gotchas

Install is the shared pack routine: git clone https://github.com/jieg9341-lab/ComfyUI-nkxx into ComfyUI/custom_nodes/, restart, and let it auto-install requests, pandas, openpyxl, yt-dlp, opencv-python and aiohttp on first load. No model files, no VRAM, just the Wujiai API key - which you can paste in the node, set as the WUJIAI_KEY environment variable, or hardcode in __init__.py.

Where people get burned: the Wujiai and Grsai channels are fully separate, so a task submitted here won't show up in the Grsai query node and vice versa - keep the pairing straight. A blank key gets you "API Key 不能为空". And remember this is a cloud call: your prompt and reference images leave the machine, cost real credits, and Google's moderation applies no matter which reseller fronted the request.

CategoryNkxx/Wujiai/视频

Inputs (7)

NameTypeDefaultDescription
promptSTRINGA cinematic shot of...
modelCOMBOveo_3_1-fast7 options: veo_3_1-fast, veo_3_1, veo_3_1-fast-4K, veo_3_1-4K, veo_3_1-components, veo_3_1-components-4K, +1
aspect_ratioCOMBO16:92 options: 16:9, 9:16
image_1optIMAGE
image_2optIMAGE
image_3optIMAGE
api_keyoptSTRING

Outputs (1)

NameTypeDescription
responseSTRING