P-Video (BudgetPixel)
The pack's bargain text-to-video, and its audio-driven trick
- audio
- end_image
- image
- video
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 andlength_secondsis 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.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text description of the video. | |
| aspect_ratioopt | COMBO | 16:9 | Aspect ratio. Ignored when a start image already sets the frame. |
| audioopt | AUDIO | Optional 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_imageopt | IMAGE | Optional end frame, used together with `image` (the start frame) to interpolate the video between the two frames. Same input forms as `image`. | |
| generate_audioopt | BOOLEAN | true | Keep the model's generated audio in the output (default true; no price impact). |
| imageopt | IMAGE | Optional 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_secondsopt | COMBO | 5 | Video length in seconds. Ignored when `audio` is supplied. |
| resolutionopt | COMBO | 720p | Output resolution. |
| seedopt | INT | -1-1–2147483647 | Seed for reproducible generation. Omit for random. |
| force_rerunopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |