PixVerse V6
Hosted video gen in your graph
- frameImages
- video
PixVerse is one of the big commercial video generators, and V6 is its current top tier. If you've only ever used it through a website or Discord bot, this node is the same model wearing a ComfyUI costume: you type a prompt on a node, it runs on Runware's cloud, and a finished VIDEO comes back into your graph. No local GPU, no 8GB model download, no waiting for a queue on a website.
This is the whole pitch of the Runware pack, and it's the one to internalize before you wire anything: every node here is a thin wrapper that ships your parameters to an inference API and returns the result as a native ComfyUI type. You're paying per run - check the node's title bar after execution, where it prints the cost and the content-check result - in exchange for zero local hardware and zero setup per model.
What you actually set
positivePrompt is the only required input, and it's your entire screenplay. PixVerse is prompt-driven, so describe motion, camera, and scene changes explicitly - "slow dolly in on a rain-streaked window, lightning flickers" beats "a storm." negativePrompt only does anything when guidance is actually active (the model ignores it below CFG 1), so don't build a workflow around it.
The inputs that matter for video work:
frameImages- first-frame image-to-video. Wire anyIMAGE(from Load Image or another Runware node) and PixVerse animates from it.video- a UUID or URL of a source clip for video-to-video. Dimensions and duration are read from the source.duration- 1 to 15 seconds (default 5). This is the per-video pricing lever, so don't leave it at max.size- a dropdown of resolution/aspect combos from 360p to 1080p, including "from input" variants that inherit the source clip's framing.settings.audio- generates a soundtrack along with the clip. It costs extra; keep it off for drafts.settings.multiClip- multi-shot generation with varying camera angles, which is where the cinematic stuff happens.settings.style- one-shot aesthetics (anime, clay, comic, cyberpunk, 3D animation) without a LoRA.
seed, numberResults, outputFormat (MP4/WEBM/MOV), and outputQuality are the same knobs you've seen a hundred times. settings.thinking toggles an enhanced reasoning mode that reads the prompt more carefully; auto is the sane default.
Wiring it up
The output is a single video socket of type VIDEO. Runware's pack saves the clip and hands it back as a native video, so you can chain it straight into core ComfyUI video nodes - SaveVideo or anything else that eats a VIDEO tensor. Don't forget you're online: the run happens in the cloud, so nothing executes until you queue, and there's a round-trip for every clip.
Install and the honest gotchas
Install is standard for this pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart ComfyUI. Or skip all of that and install "Runware" from the Custom Nodes Manager, which is the smoother path. You then need an API key from the Runware dashboard - paste it in ComfyUI Settings under "Runware API key", or set RUNWARE_API_KEY, or run runware auth login.
The real gotchas are about money and expectations. Video costs more than images, and at 15 seconds you'll watch the per-run cost climb; keep duration short while you iterate. It's a paid API with a minimum top-up, so this is not the node to hand to someone who assumes ComfyUI is free. And content safety is on by default at Runware's discretion - if a run silently returns nothing, check the NSFW flag the node prints. One more thing: this is hosted PixVerse, not the open-weights local model, so there's no checkpoint to download and no offline mode. If you need that, this pack's the wrong tool - but if you need a V6 clip and your GPU is a potato, this is the easiest way to get one into a graph.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| frameImagesopt | IMAGE | — | |
| videoopt | STRING | Video input (UUID or URL). Source video for video-to-video generation. Dimensions and duration are derived from the input video. | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| sizeopt | COMBO | 720p (16:9) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| durationopt | FLOAT | 5.001–15 | Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps). |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.audioopt | BOOLEAN | false | Enable audio generation. |
| settings.multiClipopt | BOOLEAN | false | Enable multi-shot generation with varying camera angles. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| settings.styleopt | COMBO | (default) | Artistic style aesthetic for video generation. |
| settings.thinkingopt | COMBO | auto | Enhanced reasoning mode. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |