Erase Subtitle Pro · 字幕擦除(增强版)
Erase subtitles, but only the ones you actually meant to
- video
- video
The standard subtitle eraser goes at the whole frame and hopes for the best. Pro is the version you use on footage you care about, because it lets you decide what gets erased and where - down to a normalized rectangle on the frame. Same cloud machinery underneath, but with the guardrails the blunt tool lacks.
The inputs that matter
Three of these do the real work:
erase_mode-Subtitleonly removes subtitles;Textalso erases other rendered text like logos, watermarks and on-screen UI captions. Default isSubtitle. PickTextonly if you actually want those gone - erasing is destructive.output_encode_mode-Quality(prioritize image quality) orSize(prioritize a smaller output). DefaultQuality, which is the right call for most people; you're already paying for the job, don't let the encode cheapen it.restrict_region(BOOLEAN, defaultfalse) - the headline feature. Flip it on and the node only erases text inside the box you define with the four coordinates below.
Then the coordinates, which are normalized (0–1 across the full frame, so they work at any resolution):
top_left_x,top_left_y- defaults0,0.5bottom_right_x,bottom_right_y- defaults1,1
Read those defaults and you'll see the box is the bottom half of the frame - the classic subtitle band. That's the pack's way of saying "subtitles live at the bottom, start there." If your subs sit lower, nudge top_left_y up toward 0.8; if they're top-centered, you're rebuilding the box from scratch.
There's also the usual video input plus poll_interval_seconds (default 10) and max_poll_attempts (default 720) - advanced polling knobs you can ignore. The single output is video, straight into a Save Video node.
How it works
Identical plumbing to the rest of the pack: materialize the video to a temp file, submit an async erase task to your MediaKit account via mediakit-cli, poll, download the result. The difference is what gets submitted - with restrict_region on, the four coordinates are bundled into an erase_region object that tells the cloud exactly which part of the frame is fair game. When the box is right, background regions outside it never get touched, so logos, faces and scene text survive untouched.
Install and the cloud setup
Install via ComfyUI Manager (search "MediaKit Toolkit" / mediakit-toolkit), restart fully, or:
cd ComfyUI/custom_nodes
git clone https://github.com/fudanll-sys/comfyui-mediakit-toolkit.git
No Python dependencies, no model files - this pack wraps Volcengine's CLI rather than loading weights. Before first run you need a Volcengine account with AI MediaKit activated and the CLI installed and authed in the environment that starts ComfyUI:
npx @volcengine/mediakit-cli install -y
mediakit-cli init --mode cloud-first --api-key "YOUR_MEDIAKIT_API_KEY" --credential-store config --yes
Every run bills your MediaKit account by usage, and your clip goes directly to Volcengine - the plugin author's servers are never in the path.
Where people get burned
Erase is inpainting, and inpainting invents pixels. On busy backgrounds you can get smear where text was, and if your region box is wrong you can paint over a face and never notice until the render's done. The fix is discipline: start with restrict_region on and a tight box, run a 10-second test clip, and only then commit the full video. Also remember Pro costs more than standard - it's the enhanced capability on Volcengine's pricing sheet. Worth it when you need the control, wasted when you don't.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | — | |
| erase_mode | COMBO | Subtitle | Subtitle 仅擦字幕;Text 同时擦除其他渲染文字。 |
| output_encode_mode | COMBO | Quality | 2 options: Quality, Size |
| restrict_region | BOOLEAN | false | 启用后只擦除归一化坐标框内的文字。 |
| top_left_x | FLOAT | 0.000–1 | — |
| top_left_y | FLOAT | 0.500–1 | — |
| bottom_right_x | FLOAT | 1.000–1 | — |
| bottom_right_y | FLOAT | 1.000–1 | — |
| poll_interval_seconds | INT | 102–60 | — |
| max_poll_attempts | INT | 7201–5000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |