Bria Video Eraser
Object erasure in video — make the thing disappear, keep the audio
- video
Inpainting a still image is paint over a region. Inpainting a video is removing an object across dozens of frames so it doesn't flicker back into existence - a water tower, a passerby, a logo on a wall. Bria Video Eraser is that, running on Runware's servers, and it's the one node in this pack's video trio that returns an actual VIDEO output. You point at the thing to remove, it vanishes, and the surrounding frames get filled in consistently. No local model, no VRAM, just a per-run bill.
The three ways to point at the target
- providerSettings.bria.mask.prompt - the friendliest: describe the object in plain words ("remove the red car," "delete the street sign"). The model figures out where it is. This is the first thing to try.
- providerSettings.bria.mask.foreground - flip on automatic foreground-object detection and the eraser targets the main subject instead. Good when the thing to remove is the thing in front.
- mask - the precise route: supply a mask video as a UUID/URL specifying exactly which pixels to erase. Paired with advanced_json, which the tooltip flags as the way in for
providerSettings.bria.mask.keyPoints- key points for the regions, when you need frame-accurate targeting that a prompt can't express.
Inputs and settings
- video - required STRING (UUID or URL), same as the other video nodes. Don't wire a VIDEO tensor; Runware addresses media by ID or hosted URL.
- providerSettings.bria.preserveAudio - default on. The eraser keeps the original audio track unless you turn it off. That's a thoughtful default - you don't usually want object removal to also nuke the soundtrack - and it's the reason you don't need an audio-settings builder here.
- providerSettings.bria.autoTrim - clips over 5 seconds down to 5. On by default off; flip it if your source is long and you want the whole thing processed.
- providerSettings.bria.mask.frameIndex (+
_value) - pick a specific frame for the key points. - numberResults (1–4), safety (mode: none/fast/full), outputFormat (MP4/WEBM/MOV), outputQuality, ttl.
Output: video, native VIDEO type, into a Preview/Save video node.
Install
One-time pack setup, then the API key:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart; key via Settings → Runware API key or RUNWARE_API_KEY. No checkpoints download - the erasure runs cloud-side and the node reports cost after each run.
Where it gets fiddly
The prompt-based route is genuinely good and worth starting there. But "describe the object" is doing a lot of work - if the thing you're removing is small, partially occluded, or moving, the model can miss it, and that's what mask + keyPoints is for. That's also the fiddly part: you need to get a mask video onto Runware as a URL/UUID, which means an extra upload step. And remember the 5-second autoTrim default when you set autoTrim off for longer footage. For clean, obvious objects this node is nearly magic; for the hard cases, budget a couple of iterations before you get the wipe you want.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| video | STRING | Video input (UUID or URL). | |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| maskopt | STRING | Mask video specifying areas to erase (UUID or URL). | |
| providerSettings.bria.autoTrimopt | BOOLEAN | false | Automatically trim videos exceeding 5 seconds. |
| providerSettings.bria.mask.foregroundopt | BOOLEAN | false | Enable automatic foreground object detection. |
| providerSettings.bria.mask.frameIndexopt | BOOLEAN | false | Enable to set providerSettings.bria.mask.frameIndex. Off uses the model's default. |
| providerSettings.bria.mask.frameIndex_valueopt | INT | 0 | Frame number for key points. |
| providerSettings.bria.preserveAudioopt | BOOLEAN | true | Preserve original audio track. |
| providerSettings.bria.mask.promptopt | STRING | Text description of object to remove. | |
| 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. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: providerSettings.bria.mask.keyPoints |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |