P-Video-Replace
Swap the subject, keep the performance
- referenceImages
- video
P-Video-Replace is the prank that became a tool: you give it a video and a reference image, and it puts the image's subject into the video - replacing the original actor or object while keeping the performance, the camera moves, and the timing. Required inputs are referenceImages (the new subject) and video (the clip to re-enact). It runs on Runware's cloud and returns a native VIDEO of the substituted scene.
The name says "replace" and the mechanism is exactly that - this isn't a face-swap or a style transfer, it's a full subject replacement that re-renders the motion onto the new look. That's the capability behind the funny demos (a cartoon character dancing in a live-action clip) and it's also genuinely useful for product videos and character shots where you want to iterate on the subject without reshooting the performance.
What you actually set
referenceImages- required,IMAGEsocket. The new subject that replaces whoever's in the source video.video- required, aSTRINGtaking a UUID or URL of the source clip. Cloud-side reference, not a local path.positivePrompt- optional, for steering the replacement beyond what the reference implies.resolution-720por1080p(default720p); matches the input's aspect ratio.settings.sourceAudioSync- defaultTrue: drive lip and motion sync from the source video's audio. This is the setting that makes a talking-head replacement actually talk in sync. Independent ofpreserveAudio.settings.preserveAudio- defaultTrue: keep the source audio in the final output.settings.turbo- faster generation, may drop subtle details.fps- model default, 24, or 48.seed,numberResults- the usuals.
Output: one video socket, type VIDEO.
Install
One-time pack install: 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 into ComfyUI Settings → Runware API key or RUNWARE_API_KEY. Light dependencies, no model downloads.
Where people get burned
- The source video must be reachable by the cloud. The
videostring wants a hosted URL or an uploaded UUID, notC:\videos\clip.mp4. This is the #1 failure with the media-input nodes in this pack. - Reference quality sets the result. A clear, well-lit reference of the subject gives a clean replacement; a muddy one gives a muddy one.
- Turbo breaks sync. If you flip
settings.turboon for speed, check thatsourceAudioSyncstill holds - that's the first detail to degrade. safety.modedefaults tonone. Same opt-in guardrail story as the rest of the video nodes.
The verdict: P-Video-Replace is the pack's most show-off capable node and it earns the attention. Use it when you want the performance but a different performer, and keep the source clip clean and reachable.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| referenceImages | IMAGE | — | |
| video | STRING | Video input (UUID or URL). | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| resolutionopt | COMBO | 720p | 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. |
| fpsopt | COMBO | (default) | Frames per second for video generation. Higher values create smoother motion but require more processing time. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.preserveAudioopt | BOOLEAN | true | Preserve the source video audio track in the output. |
| 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.sourceAudioSyncopt | BOOLEAN | true | Drive lip and motion sync from the source video audio. Independent of `preserveAudio`, which controls audio in the final output. |
| settings.turboopt | BOOLEAN | false | Enable turbo mode for faster generation. May reduce subtle details in complex tasks. |
| 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 | — |