Nodes/comfyui-budgetpixel/Kling V3 Omni (BudgetPixel)
ComfyUI Node

Kling V3 Omni (BudgetPixel)

The one BudgetPixel node that does all four video jobs

By budgetpixel-ai·Created about 17 hours ago·Updated about 12 hours ago· 3
Kling V3 Omni (BudgetPixel)
  • end_image
  • image
  • reference_images
  • video
  • video
prompt
aspect_ratio16:9
generate_audiofalse
length_seconds5
resolution720p
force_rerunfalse

Kling V3 Omni is the node you reach for when you don't want to pick a Kling variant. It's one model that covers text-to-video, image-to-video (with an optional end frame), reference-images-to-video with up to seven images, and video-to-video editing - all in a single node. Most of the other Kling nodes in this pack specialize; this one is the generalist, and at 85 credits per second it's the mid-priced option between the standard and 4K tiers.

Like every node in the BudgetPixel pack, this one doesn't run anything locally. You give it a prompt (and optionally some media), it POSTs a job to the BudgetPixel API, polls until the render is done, and downloads the result back into your graph as a core VIDEO value. No GPU, no model files, no Kling weights sitting in your ComfyUI directory. That's the whole API-wrapper pattern in one paragraph - if you want Kling, it's not like you had a local option anyway, since Kling has never shipped open weights.

The inputs that matter

  • prompt (required) - your text description. This is where all the effort goes for text-to-video.
  • image - the start frame for image-to-video. end_image pairs with it to interpolate a clip between two frames.
  • reference_images - up to seven images that guide the video. This is the reference-to-video mode, and it's mutually exclusive with image/end_image; you can't mix start frames and reference images in one request.
  • video - an input video that flips the node into video-edit mode. You can bring up to four reference images along with it, but not start/end frames.
  • length_seconds - 3–15 seconds (default 5). In video-edit mode set it to the input's rounded duration; that's what billing uses.
  • resolution (720p / 1080p / 4k) and aspect_ratio - the usual. Aspect ratio is ignored once an image or video sets the frame.
  • generate_audio - default off. It raises the per-second rate at 720p/1080p (no price impact at 4K), and it's simply unavailable in video-edit mode, where the model forces sound off.

Output is a single video socket carrying a ComfyUI VIDEO. Wire it into a Save Video node or a frame extractor.

Where people get burned

The video-edit mode has two quirks that surprise people. First, output length follows the input - set length_seconds to match or you'll be billed against the wrong number. Second, audio is always off when you edit an existing video; there's no way around it, it's a model constraint, not a setting you missed.

The other classic trap is the interrupt behavior, which is shared across the whole pack: if you hit stop while a job is polling, the node gives up waiting, but the server-side render keeps running - and keeps billing. Interrupting a Kling render to save credits does the opposite.

Install and first run

Install via ComfyUI Manager (search "BudgetPixel") or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/budgetpixel-ai/comfyui-budgetpixel.git
pip install -r comfyui-budgetpixel/requirements.txt

Restart ComfyUI and the node lives under Add Node → BudgetPixel → Video. You'll need a BudgetPixel API key (included in every paid plan) set as the BUDGETPIXEL_API_KEY environment variable or in a budgetpixel.json file inside the pack folder - there's no key widget, deliberately, so shared workflows don't leak secrets.

If you get a MissingAPIKeyError, that's the key not being found. If the node's video socket shows up but nothing saves, you're probably on an older ComfyUI - these nodes output the core VIDEO type, which needs a 2025+ ComfyUI build. And use the BudgetPixel Cost Estimate node first if you're unsure what a 15-second 1080p clip will run you, because per-second video billing adds up fast.

CategoryBudgetPixel/Video

Inputs (10)

NameTypeDefaultDescription
promptSTRINGText description of the video.
aspect_ratiooptCOMBO16:9Aspect ratio. Ignored when an input image or video already sets the frame.
end_imageoptIMAGEOptional end frame, used together with `image` (the start frame) to interpolate the video between the two frames. Same input forms as `image`.
generate_audiooptBOOLEANfalseGenerate audio with the video. Raises the 720p/1080p per-second rate (no price impact at 4K); unavailable on video-edit.
imageoptIMAGEOptional start frame for image-to-video. Provide a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Omit for text-to-video. Can't be combined with `reference_images`.
length_secondsoptINT53–15Video length in seconds (3–15). For video-edit, set this to the input video's rounded duration.
reference_imagesoptIMAGEOptional reference images that guide the generated video. Each item is a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Can't be combined with `image`/`end_image` (start/end frames). Up to 7 on their own (reference-images-to-video); up to 4 when accompanying a `video` edit.
resolutionoptCOMBO720pOutput resolution. Pricing varies by resolution — see `resolution_pricing` in GET /v1/models.
videooptVIDEOOptional input video for video-to-video editing. Provide a public video URL or an uploaded-file URL from POST /v1/uploads (videos are passed by URL, not inlined). When set, the request runs in video-edit mode: up to 4 `reference_images` may guide the edit, start/end frames are not supported, audio is always off, and the output length matches the input video — set `length_seconds` to the input's duration rounded to whole seconds (3–15), which is what billing uses.
force_rerunoptBOOLEANfalse

Outputs (1)

NameTypeDescription
videoVIDEO