PixVerse Modify
Edit an existing video, not just make one
- referenceImages
- masks
- video
Most AI video nodes make something from nothing. PixVerse Modify is the exception: it takes a video you already have and changes it according to a prompt. Swap the background, change the weather, restyle the whole scene, replace an object - while keeping the motion and structure of the original. That's a genuinely different capability from text-to-video, and it's the node to reach for when you don't want to start from a blank canvas.
It's part of the PixVerse family in the Runware pack, which means the editing happens on Runware's cloud, not your GPU. You feed it a clip, describe the change, and get back a modified VIDEO. The input clip tops out at 29.9 seconds, which is plenty for the kind of shot-level edits this is good at.
What you actually set
video- required, aSTRINGtaking a UUID or URL of the source clip. Max 29.9 seconds. This is a cloud-side media reference, not a local file path - that trips people up the first time.positivePrompt- what to change. "Turn this street into a snowy Tokyo alley" beats "change it." Be concrete about the edit.referenceImages-IMAGEsocket. If you want the edit to match a specific look or subject, give it a reference.masks-IMAGEsocket. This is the power control: mask the region you want edited so the model leaves the rest of the frame alone. Localized edits, like changing only the car in a street scene, basically require this.resolution-360p,540p, or720p(default360p). When used with input media it auto-matches the input's aspect ratio, so you rarely touch this unless you want to downsample.settings.keyframe- a gated toggle; when enabled,settings.keyframe_valuesets a frame index in the input video used as an anchor for the edit. Off by default, and you want it off unless you have a specific frame to pin the edit to.seed,numberResults- the usual reproducibility and variation controls.
Output: one video socket, type VIDEO. Preview it, save it, or pass it further down a video pipeline.
Install
The one-time pack setup: ComfyUI Manager → search Runware → install → restart, or
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
API key from runware.ai/api-keys into ComfyUI Settings → Runware API key or RUNWARE_API_KEY. No models to download - that's the cloud's job.
Where people get burned
- The source video must be reachable. A local path won't cut it; the
videostring wants a hosted URL or a Runware-uploaded UUID. Get the clip where the API can see it before you queue. - Skip the mask and the whole frame changes. PixVerse Modify will happily restyle everything if you give it no guidance about what to touch.
masksis the difference between "changed one thing" and "reshot the scene." - Cost and length. It's a paid run, and edits close to the 29.9s cap are the pricier kind. Watch the title-bar readout.
safety.modedefaults tonone. Content checking is opt-in here, unlike the OpenAI image nodes where it rides along.
The takeaway: if you're doing iterative video edits - polish a clip, retime a mood, swap an element - this is the node. It's more controllable than regenerating from scratch, and the mask input is where that control actually lives.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| video | STRING | Video input (UUID or URL). Max 29.9 seconds. | |
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| masksopt | IMAGE | — | |
| resolutionopt | COMBO | 360p | Resolution preset for the output. When used with input media, automatically matches the aspect ratio from the input. |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.keyframeopt | BOOLEAN | false | Enable to set settings.keyframe. Off uses the model's default. |
| settings.keyframe_valueopt | INT | 0 | Frame index in the input video used as anchor for editing. |
| 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. |
| 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 | — |