ComfyUI Node

P-Video-2

Draft mode, 48fps and a duration toggle that quietly isn't 5 seconds

By Runware·Created 2 years ago·Updated about 20 hours ago· 140
P-Video-2
  • frameImages
  • video
◄positivePrompt—►
◄audio►
◄size720p (~16:9)►
◄seed0►
◄durationfalse►
◄duration_value1►
◄fps24►
◄numberResults1►
◄settings.audiotrue►
◄settings.draftfalse►
◄settings.promptUpsamplingtrue►
◄safetyfalse►
◄safety.checkContentfalse►
◄safety.modefast►
◄ttlfalse►
◄ttl_value60►
◄outputFormatMP4►
◄outputQuality95►

First, an honest note about the track record

Pruna AI is the efficiency shop - you've probably met them through their optimization work rather than as a model brand. Their PrunaVAED, a drop-in decoder replacement for LTX-2.3, was one of the better-received releases of July 2026, and it made it into ComfyUI through a kijai pull request inside a couple of weeks. That's who's behind P-Video-2.

What the community record doesn't have is much on P-Video-2 itself - search the corpus and you get a handful of mentions, most of them incidental. So treat this as a new model on a known lab, not a proven one. Which is exactly why the cheap-preview controls on this node matter more than usual: you can find out for yourself for a few cents rather than trusting a hype post.

What you get to control

positivePrompt is required. Then a fairly wide set of widgets for a video node, because this one covers text-to-video, image-driven video, and audio-driven work:

  • frameImages - the IMAGE socket. Feed it a frame and you're in image-to-video.
  • audio - a STRING input, "Audio input (UUID or URL)". The tooltip is the whole spec: a URL or a Runware media UUID, not a local file, so host the clip's soundtrack first.
  • size - seventeen options from None (model default) through 720p and 1080p at every common aspect ratio, plus 720p (from input) and 1080p (from input) for when a frame image should own the shape. Default is 720p (~16:9).
  • settings.draft - off by default, and it should be your first stop: lower-resolution preview generation. Iterate in draft, re-queue the keepers at full quality.
  • fps - 24 or 48. Higher is smoother motion and more frames, which the tooltip is polite enough to call "more processing time." It's more bill.
  • settings.audio - on by default, so the model includes audio in the output. Turn it off if you're scoring the clip yourself.
  • settings.promptUpsampling - on by default, "Automatically enhance the prompt for improved results." Same trap as every prompt rewriter: your queued prompt isn't the prompt that ran, so turn it off when you're chasing a specific composition.

The duration controls are the quirk worth reading twice. duration is a BOOLEAN toggle (default off) and duration_value is the number - 1 to 20 seconds, default 1. While the toggle is off, nothing is sent and the model picks its own length. So if you were assuming the visible "1" meant one-second clips, that's not what's happening; flip duration on and set duration_value deliberately.

Rounding it out: seed (0 to 2147483647 - a smaller ceiling than some of the pack's nodes), numberResults up to 4, outputFormat (MP4/WEBM/MOV), outputQuality 20–99, the safety group (safety.checkContent, safety.mode fast/full) and the ttl toggle gating ttl_value.

Output: one video.

Install

ComfyUI Manager → search Runware → install → restart. By hand:

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

runware-sdk>=1.6.5, pillow, soundfile. No weights in the repo, nothing to download, and the generation happens on Runware's hardware. Create a key at runware.ai/api-keys, then put it in ComfyUI Settings → Runware API key, or RUNWARE_API_KEY, or runware auth login. Each run reports its cost on the node's title bar.

Where people get burned

Iterating at 48fps, full quality, audio on, 20 seconds. That's the most expensive request this node can build. Draft plus short duration is how you audition a prompt.

Being surprised by the duration. The gate confuses people: an unset duration isn't zero seconds, it's "model decides."

Video output that shows up as a file path. The pack only wraps the downloaded clip as ComfyUI's native VIDEO type when the comfy_api video class is available in your build; older ComfyUI gets the path string instead. Your clip is still saved as runware_<id>.mp4 in the output folder - update ComfyUI, restart, re-queue, and the socket works as documented.

Losing a run to your own upsampler. Turn settings.promptUpsampling off before you spend on a precise prompt, and back on when you want the model's own suggestion.

CategoryRunware/Video/prunaai

Inputs (19)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
frameImagesoptIMAGE—
audiooptSTRINGAudio input (UUID or URL).
sizeoptCOMBO720p (~16:9)Output size. Only one of resolution or dimensions is sent.
seedoptINT00–2147483647Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
durationoptBOOLEANfalseEnable to set duration. Off uses the model's default.
duration_valueoptINT11–20Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).
fpsoptCOMBO24Frames per second for video generation. Higher values create smoother motion but require more processing time.
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
settings.audiooptBOOLEANtrueInclude audio in the generated video output.
settings.draftoptBOOLEANfalseEnable draft mode for lower-resolution preview generation.
settings.promptUpsamplingoptBOOLEANtrueAutomatically enhance the prompt for improved results.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking. Increases total generation time.
safety.modeoptCOMBOfastSafety checking mode for video generation.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOMP4File format for the generated video.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
videoVIDEO—