GPU Infer
视频超分、抠像与推理任务。
Base URL https://sniphunter.com/ai
请求与响应中的 $ref 在 OpenAPI 的 components 中定义。
20 个接口
Video
POST/api/v1/video/bg-removeBg Remove
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoBgRemoveRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhanceResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}POST/api/v1/video/enhanceEnhance
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhanceRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhanceResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}GET/api/v1/video/enhance/statusEnhance Status
探测当前设备与可用引擎。
{
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}POST/api/v1/video/subtitle/detectDetect Subtitle
自动检测字幕条带区域(引擎 PP-OCRv5 采样检测,聚合文本框)。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleDetectRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleDetectResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}POST/api/v1/video/subtitle/removeRemove Subtitle
视频去字幕(同步兼容端点)。 内部与 POST /tasks 走同一任务管线(时长门限/串行调度/真实进度一致), 等待任务完成后一次性返回。新接入方请使用异步任务端点。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleRemoveRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleRemoveResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}GET/api/v1/video/subtitle/statusGet Service Status
去字幕服务状态:VSR 引擎(in-process) 权重就绪情况。
{
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}POST/api/v1/video/subtitle/tasksSubmit Subtitle Task
提交去字幕异步任务:立即返回 task_id,GET /tasks/{task_id} 轮询真实进度。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleRemoveRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleTaskSubmitResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}GET/api/v1/video/subtitle/tasks/{task_id}Get Subtitle Task
查询去字幕任务:真实进度 / 排队位置 / 时长 / 预估耗时 / 结果。
{
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubtitleTaskStatusResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}POST/api/v1/video/tasksSubmit Unified Video Task
提交视频异步任务(超分 / 增强 / 抠图)。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoTaskSubmitRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoAsyncTaskSubmitResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}GET/api/v1/video/tasks/{task_id}Get Unified Video Task
查询统一视频任务状态(任意 kind)。
{
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoAsyncTaskStatusResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}POST/api/v1/video/upscaleUpscale
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoUpscaleRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhanceResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}POST/api/v1/video/watermark/detectDetect Watermark
水印自动检测(同步)。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WatermarkDetectRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WatermarkDetectResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}POST/api/v1/video/watermark/removeRemove Watermark
视频去水印(同步兼容端点)。 内部与 POST /tasks 同一管线,等待完成后一次性返回。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WatermarkRemoveRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WatermarkRemoveResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}GET/api/v1/video/watermark/statusGet Service Status
获取水印去除服务状态。
{
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}POST/api/v1/video/watermark/tasksSubmit Watermark Task
提交视频去水印异步任务。
{
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WatermarkRemoveRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoAsyncTaskSubmitResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}GET/api/v1/video/watermark/tasks/{task_id}Get Watermark Task
查询去水印任务状态。
{
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoAsyncTaskStatusResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}Health
GET/Root
{
"security": [],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}GET/api/v1/healthHealth Check
存活 / 浅层健康探针。 - 默认:进程可响应即 healthy(liveness) - INFER_REQUIRE_CUDA=1:额外做 CUDA 张量探针;失败返回 status=unhealthy (Docker healthcheck 可据此标记 unhealthy;真正自愈靠进程 exit + restart) 深度就绪请用 /ready。
{
"security": [],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HealthResponse"
}
}
}
}
}
}ready
GET/api/v1/readyReadiness Check
就绪检查:对象存储 + 内存 + CUDA 信息 + 关键权重(权重缺失为 degraded 但仍 ready, 仅 storage/memory 失败时 ready=false,避免无存储时仍接写任务)。
{
"security": [],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReadyResponse"
}
}
}
}
}
}status
GET/api/v1/status/modelsModel Status
模型 / GPU 槽位状态(含懒加载注册表)
{
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelStatusResponse"
}
}
}
}
}
}数据模型
展开 components
{
"schemas": {
"HTTPValidationError": {
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
},
"HealthResponse": {
"properties": {
"status": {
"type": "string",
"title": "Status",
"description": "服务状态"
},
"service": {
"type": "string",
"title": "Service",
"description": "服务名称"
},
"version": {
"type": "string",
"title": "Version",
"description": "服务版本"
}
},
"type": "object",
"required": [
"status",
"service",
"version"
],
"title": "HealthResponse",
"description": "健康检查响应"
},
"ModelStatusResponse": {
"properties": {
"loaded_models": {
"items": {},
"type": "array",
"title": "Loaded Models",
"description": "已加载的模型列表"
},
"estimated_usage_mb": {
"type": "integer",
"title": "Estimated Usage Mb",
"description": "估算内存使用 (MB)",
"default": 0
},
"memory_budget_mb": {
"type": "integer",
"title": "Memory Budget Mb",
"description": "内存预算 (MB)",
"default": 0
},
"system_memory": {
"additionalProperties": true,
"type": "object",
"title": "System Memory",
"description": "系统内存状态"
}
},
"type": "object",
"title": "ModelStatusResponse",
"description": "模型状态响应"
},
"ReadyResponse": {
"properties": {
"ready": {
"type": "boolean",
"title": "Ready",
"description": "是否就绪"
},
"checks": {
"additionalProperties": true,
"type": "object",
"title": "Checks",
"description": "各项检查结果"
}
},
"type": "object",
"required": [
"ready"
],
"title": "ReadyResponse",
"description": "就绪检查响应"
},
"SubtitleDetectRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
}
},
"type": "object",
"required": [
"video_url"
],
"title": "SubtitleDetectRequest",
"description": "字幕区域自动检测请求"
},
"SubtitleDetectResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态"
},
"detected_region": {
"anyOf": [
{
"$ref": "#/components/schemas/SubtitleRegion"
},
{
"type": "null"
}
],
"description": "推荐的字幕条带区域"
},
"preview_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Preview Url",
"description": "预览图 URL"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "SubtitleDetectResponse",
"description": "字幕区域自动检测响应"
},
"SubtitleRegion": {
"properties": {
"x": {
"type": "integer",
"minimum": 0.0,
"title": "X",
"description": "左上角 X"
},
"y": {
"type": "integer",
"minimum": 0.0,
"title": "Y",
"description": "左上角 Y"
},
"width": {
"type": "integer",
"minimum": 1.0,
"title": "Width",
"description": "宽度"
},
"height": {
"type": "integer",
"minimum": 1.0,
"title": "Height",
"description": "高度"
}
},
"type": "object",
"required": [
"x",
"y",
"width",
"height"
],
"title": "SubtitleRegion",
"description": "字幕区域(像素坐标)"
},
"SubtitleRemoveRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"task_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Id",
"description": "可选任务关联 ID;缺省服务端生成"
},
"region": {
"anyOf": [
{
"$ref": "#/components/schemas/SubtitleRegion"
},
{
"type": "null"
}
],
"description": "显式字幕区域(像素)。传入后整框全片擦除,不跑 OCR;省略则 auto 检测"
},
"mode": {
"type": "string",
"enum": [
"standard",
"high",
"fast"
],
"title": "Mode",
"description": "产品档位(均走 VSR):fast=OpenCV | standard=LaMa | high=ProPainter。引擎调参与算法由服务内置推导。",
"default": "standard"
},
"output_format": {
"type": "string",
"title": "Output Format",
"description": "输出格式",
"default": "mp4"
}
},
"type": "object",
"required": [
"video_url"
],
"title": "SubtitleRemoveRequest",
"description": "去字幕请求\n\n区域来源二选一:\n - 传 region(像素坐标)→ 整框矩形 mask 全片擦除该区域(不依赖 OCR)\n - 不传 region → auto 自动检测字幕主带 + OCR 定位有字幕帧"
},
"SubtitleRemoveResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: processing/completed/failed"
},
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Result",
"description": "处理结果"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "SubtitleRemoveResponse",
"description": "去字幕响应"
},
"SubtitleTaskStatusResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: queued/processing/completed/failed"
},
"progress": {
"type": "number",
"title": "Progress",
"description": "真实进度 0~100(下载/引擎/上传全链路)",
"default": 0
},
"current_step": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Current Step",
"description": "当前步骤"
},
"queue_position": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Queue Position",
"description": "排队位置(仅 queued)"
},
"video_duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Video Duration",
"description": "输入视频时长(秒)"
},
"estimated_time_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Estimated Time Seconds",
"description": "预估处理耗时(秒)"
},
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Result",
"description": "处理结果(completed 时)"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息(failed 时)"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "SubtitleTaskStatusResponse",
"description": "去字幕异步任务状态"
},
"SubtitleTaskSubmitResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: queued/processing"
},
"queue_position": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Queue Position",
"description": "排队位置(1=下一个执行)"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "SubtitleTaskSubmitResponse",
"description": "去字幕异步任务提交响应"
},
"ValidationError": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"VideoAsyncTaskStatusResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Kind",
"description": "任务类型"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: queued/processing/completed/failed"
},
"progress": {
"type": "number",
"title": "Progress",
"description": "进度 0~100",
"default": 0
},
"current_step": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Current Step",
"description": "当前步骤"
},
"queue_position": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Queue Position",
"description": "排队位置(仅 queued)"
},
"video_duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Video Duration",
"description": "输入视频时长(秒)"
},
"estimated_time_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Estimated Time Seconds",
"description": "预估耗时(秒)"
},
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Result",
"description": "处理结果(completed 时)"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息(failed 时)"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "VideoAsyncTaskStatusResponse",
"description": "通用视频异步任务状态"
},
"VideoAsyncTaskSubmitResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: queued/processing"
},
"kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Kind",
"description": "任务类型"
},
"queue_position": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Queue Position",
"description": "排队位置(1=下一个执行)"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "VideoAsyncTaskSubmitResponse",
"description": "通用视频异步任务提交响应"
},
"VideoBgRemoveRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"task_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Id",
"description": "可选任务关联 ID;缺省服务端生成"
},
"bg_color": {
"type": "string",
"title": "Bg Color",
"description": "背景填充色(hex),默认绿幕",
"default": "#00FF00"
},
"output_format": {
"type": "string",
"title": "Output Format",
"description": "输出格式",
"default": "mp4"
}
},
"type": "object",
"required": [
"video_url"
],
"title": "VideoBgRemoveRequest",
"description": "视频抠图(背景移除)请求"
},
"VideoEnhanceRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"task_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Id",
"description": "可选任务关联 ID;缺省服务端生成"
},
"scale": {
"type": "integer",
"maximum": 4.0,
"minimum": 1.0,
"title": "Scale",
"description": "放大倍数(1 = 不放大)",
"default": 1
},
"face_enhance": {
"type": "boolean",
"title": "Face Enhance",
"description": "人脸修复",
"default": true
},
"denoise": {
"type": "boolean",
"title": "Denoise",
"description": "降噪锐化",
"default": true
},
"output_format": {
"type": "string",
"title": "Output Format",
"description": "输出格式",
"default": "mp4"
}
},
"type": "object",
"required": [
"video_url"
],
"title": "VideoEnhanceRequest",
"description": "视频 AI 增强请求"
},
"VideoEnhanceResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: completed/failed"
},
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Result",
"description": "处理结果"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "VideoEnhanceResponse",
"description": "统一响应"
},
"VideoTaskSubmitRequest": {
"properties": {
"kind": {
"type": "string",
"enum": [
"subtitle",
"watermark",
"upscale",
"bg-remove",
"bg_remove"
],
"title": "Kind",
"description": "任务类型"
},
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"task_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Id",
"description": "可选任务关联 ID;缺省服务端生成"
},
"output_format": {
"type": "string",
"title": "Output Format",
"description": "输出格式",
"default": "mp4"
},
"region": {
"anyOf": [
{
"$ref": "#/components/schemas/SubtitleRegion"
},
{
"type": "null"
}
],
"description": "去字幕显式区域(像素)"
},
"mode": {
"anyOf": [
{
"type": "string",
"enum": [
"standard",
"high",
"fast"
]
},
{
"type": "null"
}
],
"title": "Mode",
"description": "去字幕档位",
"default": "standard"
},
"regions": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/WatermarkRegion"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Regions",
"description": "去水印手动区域"
},
"auto_detect": {
"type": "boolean",
"title": "Auto Detect",
"description": "去水印自动检测",
"default": true
},
"detection_sensitivity": {
"type": "string",
"title": "Detection Sensitivity",
"description": "去水印检测敏感度",
"default": "medium"
},
"quality": {
"type": "string",
"title": "Quality",
"description": "去水印质量 fast/medium/high",
"default": "medium"
},
"processing_height": {
"type": "integer",
"maximum": 1080.0,
"minimum": 240.0,
"title": "Processing Height",
"description": "去水印处理高度",
"default": 720
},
"scale": {
"anyOf": [
{
"type": "integer",
"maximum": 4.0,
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Scale",
"description": "超分/增强放大倍数"
},
"face_enhance": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Face Enhance",
"description": "超分/增强人脸修复"
},
"denoise": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Denoise",
"description": "增强降噪"
},
"bg_color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bg Color",
"description": "抠图背景色 hex"
}
},
"type": "object",
"required": [
"kind",
"video_url"
],
"title": "VideoTaskSubmitRequest",
"description": "统一视频异步任务提交。\n\nkind: subtitle | watermark | upscale | bg-remove\n公共字段 video_url / task_id / output_format;其余按 kind 选用。\n生产去字幕/去水印走 media;本进程代码保留。"
},
"VideoUpscaleRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"task_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Id",
"description": "可选任务关联 ID;缺省服务端生成"
},
"scale": {
"type": "integer",
"maximum": 4.0,
"minimum": 2.0,
"title": "Scale",
"description": "放大倍数 2/3/4",
"default": 2
},
"face_enhance": {
"type": "boolean",
"title": "Face Enhance",
"description": "是否启用人脸修复(GFPGAN)",
"default": false
},
"output_format": {
"type": "string",
"title": "Output Format",
"description": "输出格式",
"default": "mp4"
}
},
"type": "object",
"required": [
"video_url"
],
"title": "VideoUpscaleRequest",
"description": "视频超分请求"
},
"WatermarkDetectRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"sensitivity": {
"type": "string",
"title": "Sensitivity",
"description": "检测敏感度: low/medium/high",
"default": "medium"
}
},
"type": "object",
"required": [
"video_url"
],
"title": "WatermarkDetectRequest",
"description": "水印检测请求"
},
"WatermarkDetectResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态"
},
"detected_regions": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/WatermarkRegion"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Detected Regions",
"description": "检测到的水印区域"
},
"preview_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Preview Url",
"description": "检测结果预览图 URL"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "WatermarkDetectResponse",
"description": "水印检测响应"
},
"WatermarkRegion": {
"properties": {
"x": {
"type": "integer",
"title": "X",
"description": "左上角 X 坐标"
},
"y": {
"type": "integer",
"title": "Y",
"description": "左上角 Y 坐标"
},
"width": {
"type": "integer",
"minimum": 1.0,
"title": "Width",
"description": "宽度"
},
"height": {
"type": "integer",
"minimum": 1.0,
"title": "Height",
"description": "高度"
}
},
"type": "object",
"required": [
"x",
"y",
"width",
"height"
],
"title": "WatermarkRegion",
"description": "水印区域"
},
"WatermarkRemoveRequest": {
"properties": {
"video_url": {
"type": "string",
"title": "Video Url",
"description": "视频文件 URL"
},
"task_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Id",
"description": "可选任务关联 ID;缺省服务端生成"
},
"regions": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/WatermarkRegion"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Regions",
"description": "手动指定的水印区域列表。如果为空,将自动检测"
},
"auto_detect": {
"type": "boolean",
"title": "Auto Detect",
"description": "是否自动检测水印(当 regions 为空时生效)",
"default": true
},
"detection_sensitivity": {
"type": "string",
"title": "Detection Sensitivity",
"description": "自动检测敏感度: low/medium/high",
"default": "medium"
},
"quality": {
"type": "string",
"title": "Quality",
"description": "处理质量/算法:fast=OpenCV | medium=LaMa | high=ProPainter",
"default": "medium"
},
"processing_height": {
"type": "integer",
"maximum": 1080.0,
"minimum": 240.0,
"title": "Processing Height",
"description": "处理高度(像素)。默认 720;越高画质越好、越吃显存",
"default": 720
},
"output_format": {
"type": "string",
"title": "Output Format",
"description": "输出格式",
"default": "mp4"
},
"output_quality": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Output Quality",
"description": "输出质量 1-100",
"default": 80
}
},
"type": "object",
"required": [
"video_url"
],
"title": "WatermarkRemoveRequest",
"description": "水印去除请求"
},
"WatermarkRemoveResponse": {
"properties": {
"task_id": {
"type": "string",
"title": "Task Id",
"description": "任务 ID"
},
"status": {
"type": "string",
"title": "Status",
"description": "状态: processing/completed/failed"
},
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Result",
"description": "处理结果"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Error",
"description": "错误信息"
}
},
"type": "object",
"required": [
"task_id",
"status"
],
"title": "WatermarkRemoveResponse",
"description": "水印去除响应"
}
},
"securitySchemes": {
"ServiceApiKey": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key",
"description": "服务间密钥,鉴权是否启用由部署配置决定。"
}
}
}