Nodes/comfyui-budgetpixel/P-Video (BudgetPixel)
ComfyUI Node

P-Video (BudgetPixel)

The pack's bargain text-to-video, and its audio-driven trick

By budgetpixel-ai·Created about 17 hours ago·Updated about 12 hours ago· 3
P-Video (BudgetPixel)
  • audio
  • end_image
  • image
  • video
prompt
aspect_ratio16:9
generate_audiotrue
length_seconds5
resolution720p
seed-1
force_rerunfalse

P-Video is Pruna's text-to-video model, and in a pack where the video nodes run 85–160 credits per second, it's the budget option: 40 credits per second, 720p or 1080p, 5 or 10 seconds. It also has a party trick the bigger video models don't bother with - an audio input that lets you drive the video from an existing track, in which case the clip's length follows the audio instead of a length setting. Text-to-video, image-to-video with an end frame, and audio-driven video in one cheap node. That's a lot of capability at a price you can afford to iterate with.

Like every node in the pack it's a hosted API call. Prompt (and optionally image or audio) goes to the API, the Pruna pipeline renders server-side, and the clip comes back as a core VIDEO value in your graph. No local GPU, no weights, and it's served through BudgetPixel's direct Pruna integration, per the pack docs.

The inputs

  • prompt (required) - the text description.
  • image / end_image - start frame, plus optional end frame for interpolation between the two.
  • audio - the driving track (MP3/WAV/FLAC). When supplied, video length matches the audio and length_seconds is ignored - which also changes the per-second charge, so estimate via the Cost Estimate node.
  • length_seconds - 5 or 10 (enum, not a free number).
  • resolution - 720p or 1080p.
  • generate_audio - default true; keeps the model's generated audio in the output, no price impact.
  • seed - -1 for random, or set for reproducible renders.
  • aspect_ratio - 16:9 / 9:16 / 1:1; ignored once a start image sets the frame.

Output is video into Save Video or a frame extractor.

The audio-driven mode is the reason to care

Most video models make you sync audio afterward - generate the clip, then line up the track in an editor. P-Video instead generates to the audio, matching the clip's length and rhythm to the supplied track. It's not lip-sync (that's the pack's P-Video Avatar node) but it's a surprisingly useful step: music-driven b-roll, beat-matched ambient clips, reaction-style content. And it's the input where you should double-check the bill, because the price scales with the audio's length and that's easy to forget when length_seconds says 5.

Install and issues

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

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

Restart, find it under Add Node → BudgetPixel → Video, and set your API key via BUDGETPIXEL_API_KEY or a budgetpixel.json file - no key widget, by design.

Pack-wide caveats: a 2025+ ComfyUI for the core VIDEO type, and interrupting a run abandons the local wait but the server-side job keeps going and keeps billing. With a cheap node like this the interruption risk is low-stakes, which is part of why it's a good place to start if you're new to the pack.

CategoryBudgetPixel/Video

Inputs (10)

NameTypeDefaultDescription
promptSTRINGText description of the video.
aspect_ratiooptCOMBO16:9Aspect ratio. Ignored when a start image already sets the frame.
audiooptAUDIOOptional driving-audio track (MP3/WAV/FLAC). Provide a public audio URL or an uploaded-file URL from POST /v1/uploads (passed by URL, not inlined). When supplied, the video's length matches the audio and `length_seconds` is ignored — which changes the per-second charge, so estimate via POST /v1/cost.
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_audiooptBOOLEANtrueKeep the model's generated audio in the output (default true; no price impact).
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.
length_secondsoptCOMBO5Video length in seconds. Ignored when `audio` is supplied.
resolutionoptCOMBO720pOutput resolution.
seedoptINT-1-1–2147483647Seed for reproducible generation. Omit for random.
force_rerunoptBOOLEANfalse

Outputs (1)

NameTypeDescription
videoVIDEO