从视频里去掉硬字幕、画面文字、水印和角标 logo,并在原位重建干净背景。高帧率检测 + AIGC 多帧一致修复,补出来的区域不会逐帧闪。有两种指定方式:自动模式替你找文字;区域模式按你给的矩形处理——水印、台标、签名这类检测不会当成文字的东西走这一种。输出分辨率与输入一致(最高 1080p),按视频时长计费 $0.015 每秒,仅成功扣费。
区域模式下,矩形要比目标本身大 30-50%。紧贴着水印边缘画的框,常常让整段视频原样返回;同一个水印,四周留出余量就能干净去除。角标类直接把框拉到画面边缘最稳,那一带本来也没有需要保护的内容。
这是「框了却没反应」最常见的原因,也是我们自己踩出来的:最初的测试正好贴着水印画框,差点得出「这功能不行」的结论。
| eraseMode | 适合处理 | 区域框的作用 |
|---|---|---|
| auto(默认) | 硬字幕、画面里的任意文字 | 可选。只是【限定检测范围】——只擦框内被识别出的文字 |
| manual | 水印、角标 logo、台标、签名 | 必填。框【就是处理目标】,不依赖文字识别定位 |
同一批 eraseRatioLocation 在两种模式下含义完全不同,这是最容易踩错的地方:在 auto 模式下框住一个没有文字的 logo,结果是毫无变化——因为框内没有可识别的文字。要擦非文字的东西,必须切到 manual。
POST /api/v1/video/generations —— 异步:创建后轮询同一个端点取结果。
# ── Region mode — remove a watermark / corner logo ──────────────────────
# Box the mark with normalized 0-1 coordinates (fractions of width/height).
curl -X POST https://apimodels.app/api/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "subtitle-erase",
"video_url": "https://example.com/clip-with-watermark.mp4",
"eraseMode": "manual",
"eraseRatioLocation": [
{ "topLeftX": 0.70, "topLeftY": 0.02, "bottomRightX": 1.0, "bottomRightY": 0.20 }
]
}'
# ⚠️ Draw the box GENEROUSLY — about 30-50% larger than the mark itself.
# A box cropped tight to the mark very often returns the video unchanged.
# For a corner logo, run the box out to the frame edges as above.
# ── Automatic mode — remove hardcoded subtitles (no box needed) ─────────
curl -X POST https://apimodels.app/api/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "subtitle-erase",
"video_url": "https://example.com/clip-with-subtitles.mp4",
"eraseType": "subtitle"
}'
# Poll until state == "completed" — data.resultUrls[0] is the cleaned video.
# Result files are kept 7 days.
curl "https://apimodels.app/api/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| model | 是 | string | 固定为 subtitle-erase |
| video_url | 是 | string | 待处理视频的公开地址(MP4 / MOV) |
| eraseMode | 否 | string | "auto"(默认,自动检测文字)或 "manual"(按你给的区域框处理,此时 eraseRatioLocation 必填) |
| eraseType | 否 | string | "subtitle"(默认,只去字幕样式的文字)或 "text"(去画面任意文字)。仅 auto 模式有效 |
| eraseRatioLocation | 否 | array | 归一化(0-1)区域框 [{ topLeftX, topLeftY, bottomRightX, bottomRightY }]。manual 模式下必填。⚠️ 要比目标本身大 30-50% |
| clipFilter | 否 | object | { mode: "Selected" | "Skip", clips: [{ start, end }] } —— 按秒只处理("Selected")或只跳过("Skip")这些时间段。两种模式都支持 |
| callback_url | 否 | string | 任务完成后回调该地址,省去轮询 |
可以。向 /api/v1/video/generations 传 model "subtitle-erase"、eraseMode "manual",附上归一化(0-1)的水印矩形,再轮询 task id。拿回的视频会在原水印位置重建背景,分辨率与输入一致(最高 1080p),$0.015 每秒。
绝大多数是框画得太紧。把框放大到比目标本身大 30-50% —— 紧贴可见边缘的矩形常常让视频原样返回,留出余量就能干净去除。另外确认 eraseMode 是 "manual":默认的 auto 模式下,框只是限定文字检测的范围,框住一个没有文字的 logo 不会有任何变化。坐标是宽高的 0-1 比例,不是像素。
按输入视频时长 $0.015 每秒,仅成功扣费 —— 30 秒 $0.45,3 分钟 $2.70。去字幕、去画面文字、去水印同价。用 clipFilter 只处理一段不会降价,因为整个文件仍要解码和重新编码。
不需要。不传 eraseMode 就是自动模式:eraseType "subtitle"(默认)会擦掉画面中任意位置的字幕样式文字,eraseType "text" 则擦掉任意屏幕文字。那种模式下框是可选的,作用只是限定检测范围 —— 想清掉下三分之一字幕、又保留片头标题卡时很有用。
输入支持 MP4 和 MOV(公开地址)。输出分辨率与输入一致,上游封顶 1080p。流程是「创建任务 + 轮询」的异步接口;结果文件保留 7 天,需要长期保存请及时下载或转存。