SnipHunter API

业务 API

媒体工具、AI 创作、Agent、文件与任务。

Base URL https://api.sniphunter.com

OpenAPI JSON · 完整 Markdown

请求与响应中的 $ref 在 OpenAPI 的 components 中定义。

233 个接口

Agent

GET/api/v1/agent/sessionsList Agent Sessions

List agent sessions for the current user.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/AgentSessionSummary"
            },
            "type": "array",
            "title": "Response List Agent Sessions Api V1 Agent Sessions Get"
          }
        }
      }
    }
  }
}
DELETE/api/v1/agent/sessions/{session_id}Delete Agent Session

Delete a session and clear its cached engine.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "session_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Session Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Delete Agent Session Api V1 Agent Sessions  Session Id  Delete"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/agent/sessions/{session_id}/messagesGet Session Messages

Get message history for a session.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "session_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Session Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentSessionMessage"
            },
            "title": "Response Get Session Messages Api V1 Agent Sessions  Session Id  Messages Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/agent/tasksRun Agent Task

Submit a new agent task. Requires authentication.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentTaskCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentTaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/agent/tasks/{task_id}Get Agent Task

Get the status and result of an agent task. Requires authentication.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "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/AgentTaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/agent/tasks/{task_id}/cancelCancel Agent Task

Cancel a running agent task.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Cancel Agent Task Api V1 Agent Tasks  Task Id  Cancel Post"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/agent/tasks/{task_id}/confirmConfirm Tool Execution

Confirm or reject a high-cost tool execution that is awaiting user authorization. The agent loop is suspended at the tool's check_permissions=ASK stage. This endpoint resolves the pending confirmation, allowing the loop to either proceed with tool execution (approved=True) or skip it (approved=False).

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Task Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ToolConfirmRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Confirm Tool Execution Api V1 Agent Tasks  Task Id  Confirm Post"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/agent/tasks/{task_id}/pending-confirmationsGet Pending Confirmations

Get all pending tool confirmations for a task.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Get Pending Confirmations Api V1 Agent Tasks  Task Id  Pending Confirmations Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/agent/tasks/{task_id}/streamStream Agent Task

Stream agent task updates using SSE. Supports two frame types: - **Snapshot frames** (default, no ``event:`` field): full ``AgentTaskResponse`` JSON. Sent on every task state change. - **Incremental frames** (typed with ``event:`` field): granular events like ``text_delta``, ``tool_use``, ``tool_result``, ``confirmation_request``, ``confirmation_result``, ``assistant_message``, ``terminal``. The stream stays open during ``awaiting_confirmation``; it closes on ``completed``, ``failed``, or ``cancelled``.

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Stream Agent Task Api V1 Agent Tasks  Task Id  Stream Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Audio

POST/api/v1/audio/ai/alignAlign Audio

词级强制对齐 输入音频 URL + 已有转写文本,返回词/句时间戳列表。 可与 /transcribe 组合:先转写再对齐。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AlignRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/enhanceEnhance Audio

人声增强 / 音频 AI 增强 mode: enhance | denoise engine: mossformer2-se-sr(默认)| resemble

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EnhanceRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/statusGet Ai Status

获取 AI 服务状态

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/audio/ai/transcribeTranscribe Audio

语音转文字 (STT / ASR) 使用 Qwen3-ASR。可选 with_align=true 调用 forced-align 补词级时间戳。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TranscribeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/ttsText To Speech

文字转语音 (TTS) — EdgeTTS / Qwen3-TTS

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TTSRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/tts/voicesGet Tts Voices

获取可用的 TTS 语音列表。 category: sample(Edge 全量→Qwen3 克隆)| qwen3 | edge | all locale: 语种前缀或完整 locale(zh / zh-CN / en / en-US) q: 搜索关键字 用户克隆音色请用 GET /tts/voices/mine(需登录)。 额外返回 languages:按语种聚合的数量,便于前端国际化语言选择。

{
  "parameters": [
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    },
    {
      "name": "category",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Category"
      }
    },
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Q"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/tts/voices/mineGet My Tts Voices

获取当前用户已保存的克隆音色(文字配音「我的克隆」)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
DELETE/api/v1/audio/ai/tts/voices/mine/{voice_id}Delete My Tts Voice

删除我的克隆音色。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "voice_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Voice Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/vocal-separateVocal Separate

人声/伴奏分离 使用 Demucs AI 模型分离音频中的人声和背景音乐。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VocalSeparateRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/voice-change/presetsList Voice Change Presets

检索常用变声目标音色示例(Qwen3-TTS 合成,可试听)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Q"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    },
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "ensure",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false,
        "title": "Ensure"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/voice-change/presets/{preset_id}Get Voice Change Preset

单个变声预设;默认合成/返回 Qwen3 试听音。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "preset_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Preset Id"
      }
    },
    {
      "name": "ensure",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": true,
        "title": "Ensure"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-cloneVoice Clone

音色克隆合成(Qwen3-TTS) 用参考音频即时克隆并合成 text;默认写入「我的克隆」音色库, 供文字配音通过 prompt_audio_url 复用。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__audio__ai__VoiceCloneRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-convertVoice Convert

音频变声(Seed-VC) 将 source 音频内容转为参考音色;可用 preset_id(Qwen3 合成示例)或自定义 reference_url。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceConvertRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-designVoice Design

音色设计试听(Qwen3-TTS VoiceDesign) 用自然语言 instruct 描述音色并合成试听音频;确认后调用 POST /voice-design/save 写入「我的克隆」,供文字配音复用。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceDesignRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-design/saveSave Voice Design

确认使用设计音色:将试听音频作为参考音写入「我的克隆」。 不额外合成;后续文字配音通过 prompt_audio_url + Base 模型克隆复用。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceDesignSaveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/convertConvert Format

音频格式转换

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ConvertFormatRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/extractExtract Audio

从视频提取音频

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/basic/formatsGet Supported Formats

获取支持的音频格式

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/audio/basic/mergeMerge Audio

音频拼接

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MergeAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/mixMix Audio

混音(添加背景音乐)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MixAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/splitSplit Audio

按时间切分音频(固定时长或等分 N 段)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SplitAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/trimTrim Audio

音频裁剪

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TrimAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/denoiseDenoise Audio

AI 音频降噪:engine=resemble(默认)| mossformer2-se

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DenoiseRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/effects/effectsList Voice Effects

常用变声目标音色(Seed-VC 预设;兼容旧 effects 字段名)。

{
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Q"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    },
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "ensure",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false,
        "title": "Ensure"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/fadeFade Audio

淡入淡出

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FadeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/speedChange Speed

变速

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SpeedRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/voice-effectApply Voice Effect

变声效果

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceEffectRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/volumeAdjust Volume

调整音量

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VolumeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/enhanceCreate Audio Enhance Task

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AudioEnhanceTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/transcribeCreate Transcribe Task

语音转写:提交时校验配额,成功后扣减

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TranscribeTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/vocal-separateCreate Vocal Separate Task

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VocalSeparateTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/voice-convertCreate Voice Convert Task

音频变声(Seed-VC):预设音色或自定义参考音。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceConvertTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/voiceover/statusGet Voiceover Status

获取配音服务状态 (EdgeTTS)

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/synthesizeSynthesize Voiceover

配音合成(支持多段精细配置) - 支持多段文本分别设置音色、语速、音调 - 支持段落间停顿控制 - 支持合并或分段输出 VIP 专属功能。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceoverSynthesizeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/ttsSimple Tts

简单文字转语音 EdgeTTS(默认)或 Qwen3-TTS;提供 prompt_audio_url 时走克隆合成。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimpleTTSRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/voiceover/voicesGet Voices

获取可用音色列表 包括系统预设音色和用户克隆的音色。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/voices/cloneClone Voice

音色克隆合成(Qwen3-TTS) 用参考音频即时克隆并合成 text;默认写入「我的克隆」音色库。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__audio__voiceover__VoiceCloneRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/voices/clone/uploadClone Voice Upload

上传参考音频并克隆合成。 支持 WAV、MP3、M4A,最大 10MB。需提供 text。默认写入音色库。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/voiceover/voices/myGet My Voices

获取我的克隆音色列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
DELETE/api/v1/audio/voiceover/voices/{voice_id}Delete Voice

删除克隆音色(支持数字 id 或 clone_{id})

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "voice_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Voice Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Image

POST/api/v1/image/ai/bg-removeBackground Remove

AI背景移除 支持自动识别前景并移除背景。 可选返回mask,支持边缘羽化。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BackgroundRemoveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/BackgroundRemoveResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/bg-remove/uploadBackground Remove Upload

AI背景移除(文件上传)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_background_remove_upload_api_v1_image_ai_bg_remove_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAIUploadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/colorizeColorize Photo

黑白照片上色

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ColorizeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/cutoutAi Cutout

AI 抠图(同步 rembg;完整异步请用 /bg-remove)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AICutoutRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/enhanceImage Enhance

AI图像增强 自动/人脸/通用三种增强模式。 可调节锐化、降噪、色彩增强强度。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageEnhanceRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageEnhanceResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/enhance-clarityEnhance Clarity

清晰度增强

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ClarityRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/enhance/uploadImage Enhance Upload

AI图像增强(文件上传)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_image_enhance_upload_api_v1_image_ai_enhance_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAIUploadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/extendImage Extend

AI图像扩展 (Outpainting) 支持向上/下/左/右/全方向扩展。 可自定义扩展比例,支持内容提示词引导生成。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageExtendRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageExtendResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/extend/uploadImage Extend Upload

AI图像扩展(文件上传)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_image_extend_upload_api_v1_image_ai_extend_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAIUploadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/generateImage Generate

文生图(同步) GeekAI(quality=low,size 由调用方指定且 ≤1K,按 GPT-Image-2.5 约束修正)。 模型由请求 model 指定:gpt-image-2 / gpt-image-2.5-sunburst。 需登录;按 tool_type=image_generate 扣积分。 建议客户端超时 ≥300s。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageGenerateRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/ai/historyGet Task History

获取当前用户的任务历史

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Task Type"
      }
    },
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 1,
        "title": "Page"
      }
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 20,
        "title": "Page Size"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAITaskListResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/lossless-zoomLossless Zoom

无损放大

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/LosslessZoomRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/object-removeObject Remove

AI对象移除 (Inpainting) 通过mask标记要移除的区域,自动填充背景。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ObjectRemoveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ObjectRemoveResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/object-remove/uploadObject Remove Upload

AI对象移除(文件上传)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_object_remove_upload_api_v1_image_ai_object_remove_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAIUploadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/ocrImage Ocr Api

图片 OCR(第一推荐 GLM-OCR)。 文案工具「图片转文案」走 /copywriting/image-to-text,内部同样优先调用本能力。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageOcrRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/ai/ocr/modelsImage Ocr Models

OCR 可选模型(业务传 model=glm-ocr|pp-ocrv5)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
GET/api/v1/image/ai/ocr/statusImage Ocr Status Api

GLM-OCR 能力状态。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/image/ai/portrait-animePortrait Animation

人像动漫化

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PortraitAnimationRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/recolorImage Recolor

AI图像重着色 支持指定目标颜色,多种风格。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageRecolorRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageRecolorResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/recolor/uploadImage Recolor Upload

AI图像重着色(文件上传)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_image_recolor_upload_api_v1_image_ai_recolor_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAIUploadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/ai/statusGet Ai Status

获取 AI 服务状态

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/image/ai/style-transferStyle Transfer

风格转换(Media 预设;后续迁 Infer 真模型)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/StyleTransferRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/ai/task/{task_id}Get Task

获取任务详情(仅任务所有者)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAITaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/ai/task/{task_id}/progressGet Task Progress Sse

获取任务进度 (SSE);使用独立 DB session,避免长连接占用请求级会话。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/upscaleImage Upscale

AI图像放大 (Super Resolution) 支持2x/4x/8x放大,可选人脸增强。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageUpscaleRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageUpscaleResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/upscale/uploadImage Upscale Upload

AI图像放大(文件上传)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_image_upscale_upload_api_v1_image_ai_upscale_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ImageAIUploadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/ai/watermark-removeImage Watermark Remove

图片去水印(同步兼容;Web 推荐任务接口) 推荐:POST /api/v1/image/tasks/watermark-remove + GET /api/v1/tasks/{id} - regions 优先;其次 mask_url;都为空时 auto_detect(OpenNoMark / OWLv2)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageWatermarkRemoveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/adjustAdjust Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AdjustRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/collageCollage Images

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CollageRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/compressCompress Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CompressRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/convertConvert Format

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ConvertRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/cropCrop Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CropRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/defogDefog Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DefogRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/basic/formatsGet Supported Formats

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/image/basic/mirrorMirror Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__image__basic__MirrorRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/modify-md5Modify Md5

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__image__basic__ModifyMd5Request"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/mosaicMosaic Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MosaicRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/resizeResize Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ResizeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/rotateRotate Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RotateRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/stretch-recoveryStretch Recovery

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/StretchRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/triple-coverTriple Cover

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TripleCoverRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/basic/uploadUpload Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_upload_image_api_v1_image_basic_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/effects/batch-watermarkBatch Watermark

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/effects/doodle-watermarkAdd Doodle Watermark

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__image__effects__DoodleWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/effects/effectEffect Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EffectRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/effects/effectsList Effects

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/image/effects/filterFilter Image

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FilterRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/image/effects/filtersList Filters

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/image/effects/sticker-watermarkAdd Sticker Watermark

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__image__effects__StickerWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/effects/text-watermarkAdd Text Watermark

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__image__effects__TextWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/image/tasks/watermark-removeCreate Image Watermark Remove Task

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ImageWatermarkRemoveTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Video

POST/api/v1/video/ai/bg-removeVideo Bg Removal

视频抠图(同步兼容)。推荐:POST /video/tasks/bg-remove + GET /api/v1/tasks/{id}

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoBgRemoveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/ai/capabilitiesVideo Generate Capabilities

文生视频能力:已配置供应商 + xbai/H3 capabilities(失败不 5xx)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/video/ai/enhanceVideo Enhance

视频 AI 增强(同步兼容)。推荐:POST /video/tasks/enhance + GET /api/v1/tasks/{id}

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoEnhanceRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/ai/generateVideo Generate

文生视频。geekai=Seedance;xbai=MiniMax H3 自建卡。 需登录;按 tool_type=video_ai_generate 扣积分。 xbai 立即返回本系统 task_id,用 GET /video/ai/generate/{task_id} 轮询。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoGenerateRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/ai/generate/{task_id}Video Generate Status

查询文生视频异步任务。xbai 为本系统 task_id;GeekAI 为上游 task_id。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/ai/generate/{task_id}/cancelVideo Generate Cancel

取消 xbai 生视频任务。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Task Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/ai/subtitle-detectSubtitle Detect

自动检测字幕条带区域,返回推荐区域供前端回填。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SubtitleDetectRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/ai/subtitle-removeSubtitle Remove

视频去字幕(同步,兼容移动端;Web/Extension 请用异步任务接口) 推荐:POST /api/v1/video/tasks/subtitle-removal + GET .../{task_id} - 区域二选一:传 region(像素)→ 去该区域;不传 → auto(底部字幕带) - mode=fast|standard|high(全部 OpenCV TELEA/NS,由 Media 按档调参)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SubtitleRemoveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/ai/upscaleVideo Upscale

视频超分(同步兼容)。推荐:POST /video/tasks/upscale + GET /api/v1/tasks/{id}

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoUpscaleRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/ai/watermark-removeWatermark Remove

AI 去水印(Infer / ProPainter 链路)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AIWatermarkRemovalRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/add-coverAdd Cover

添加封面

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AddCoverRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/compressCompress Video

视频压缩。预设: wechat, douyin, kuaishou, bilibili, weibo

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoCompressRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/convertConvert Format

视频格式转换

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FormatConvertRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/cropCrop Video

视频裁剪:mode=pixel|ratio|platform

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoCropRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/export-keyframeExport Keyframe

导出关键帧

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExportKeyframeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/extract-framesExtract Frames

视频抽帧

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractFramesRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/extract-shotsExtract Shots Compat

镜头切分(兼容路径) 推荐使用独立原子接口 POST /api/v1/video/extract-shots。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ShotExtractionRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/basic/formatsGet Supported Formats

获取支持的视频格式(元数据,无需鉴权)

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/video/basic/modify-md5Modify Md5

修改视频MD5

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__basic__ModifyMd5Request"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/remove-audioRemove Original Sound

消除原声 - 移除视频音轨(ffmpeg -an)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__BaseVideoRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/stitchStitch Videos

视频拼接

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoStitchingRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/to-audioVideo To Audio

视频转音频 —— 委托 audio_extract,与 /audio/basic/extract 行为一致

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoToAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/basic/trimTrim Video

视频时长裁剪

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoTrimRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/burn-subtitleBurn Subtitle

烧录硬字幕(FFmpeg)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BurnSubtitleRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/doodle-watermarkAdd Doodle Watermark

添加涂鸦水印

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__DoodleWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/effectVideo Effect

视频特效(FFmpeg)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoEffectRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/effects/effectsList Effects

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/video/effects/filterVideo Filter

视频滤镜(FFmpeg)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoFilterRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/effects/filtersList Filters

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/video/effects/mirrorMirror Video

对称镜像

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__MirrorRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/reverseReverse Video

视频倒放

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__BaseVideoRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/smudgeSmudge

区域打码/模糊(CPU)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SmudgeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/sticker-watermarkAdd Sticker Watermark

添加贴纸水印

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__StickerWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/text-watermarkAdd Text Watermark

添加文字水印

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__TextWatermarkRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/effects/to-gifVideo To Gif

视频转GIF(高质量 palette)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoToGifRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/extract-shotsExtract Shots

视频镜头提取(独立原子能力) 检测视频中的场景切换,提取各个镜头。不属于素材提取流程。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ShotExtractionRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/bg-removeCreate Bg Remove Task

提交视频抠图任务

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoBgRemoveTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/enhanceCreate Enhance Task

提交视频 AI 增强任务

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoEnhanceTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/subtitle-removalCreate Subtitle Removal Task

提交去字幕任务(统一 async_media_tasks + Celery)。 立即返回 task_id,客户端轮询 GET /subtitle-removal/{task_id}。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SubtitleRemovalRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SubtitleRemovalTaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/subtitle-removal-from-fileCreate Subtitle Removal Task From File

上传文件并创建去字幕任务(公共仅 mode)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_create_subtitle_removal_task_from_file_api_v1_video_tasks_subtitle_removal_from_file_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SubtitleRemovalTaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/tasks/subtitle-removal/historyGet Subtitle Removal History

获取当前用户的去字幕任务历史(async_media_tasks)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "default": 1,
        "title": "Page"
      }
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 50,
        "minimum": 1,
        "default": 10,
        "title": "Page Size"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SubtitleRemovalHistoryResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/tasks/subtitle-removal/{task_id}Get Subtitle Removal Task

获取去字幕任务详情(优先 async_media_tasks,兼容旧表)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    },
    {
      "name": "progress_token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "匿名任务进度访问令牌",
        "title": "Progress Token"
      },
      "description": "匿名任务进度访问令牌"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SubtitleRemovalTaskDetail"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/tasks/subtitle-removal/{task_id}/progressGet Subtitle Removal Progress

获取去字幕任务进度 (SSE) — 支持 async_media_tasks

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    },
    {
      "name": "token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "JWT token for EventSource",
        "title": "Token"
      },
      "description": "JWT token for EventSource"
    },
    {
      "name": "progress_token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "匿名任务进度访问令牌",
        "title": "Progress Token"
      },
      "description": "匿名任务进度访问令牌"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/upscaleCreate Upscale Task

提交视频超分任务

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoUpscaleTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/watermark-previewWatermark Preview

预览去水印效果(单帧)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WatermarkPreviewRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WatermarkPreviewResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/watermark-removalCreate Watermark Removal Task

提交去水印任务(统一写入 async_media_tasks,Celery 投递)。 指定水印区域,或 auto_detect=true 自动检测,后台异步处理。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WatermarkRemovalRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WatermarkRemovalTaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/video/tasks/watermark-removal-from-fileCreate Watermark Removal Task From File

上传文件并创建去水印任务 直接上传视频文件,后台异步处理。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_create_watermark_removal_task_from_file_api_v1_video_tasks_watermark_removal_from_file_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WatermarkRemovalTaskResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/tasks/watermark-removal/historyGet Watermark Removal History

获取当前用户的去水印任务历史(async_media_tasks)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "default": 1,
        "title": "Page"
      }
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 50,
        "minimum": 1,
        "default": 10,
        "title": "Page Size"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WatermarkRemovalHistoryResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/tasks/watermark-removal/{task_id}Get Watermark Removal Task

获取去水印任务详情(优先 async_media_tasks,兼容旧表)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    },
    {
      "name": "progress_token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "匿名任务进度访问令牌",
        "title": "Progress Token"
      },
      "description": "匿名任务进度访问令牌"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WatermarkRemovalTaskDetail"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/video/tasks/watermark-removal/{task_id}/progressGet Watermark Removal Progress

获取去水印任务进度 (SSE) — 支持 async_media_tasks

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    },
    {
      "name": "token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "JWT token for EventSource authentication",
        "title": "Token"
      },
      "description": "JWT token for EventSource authentication"
    },
    {
      "name": "progress_token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "匿名任务进度访问令牌",
        "title": "Progress Token"
      },
      "description": "匿名任务进度访问令牌"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Document

GET/api/v1/document/formatsDocument Formats

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/document/parseDocument Parse

通过文件 URL 解析文档(Word / Excel / PDF / PPT / TXT 等)。

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DocumentParseRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/document/parse/uploadDocument Parse Upload

上传文档并解析。

{
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_document_parse_upload_api_v1_document_parse_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Web

POST/api/v1/web/scrapeWeb Scrape

抓取网页并提取降噪正文(Markdown)。

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WebScrapeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/web/statusWeb Status

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}

Resolve

POST/api/v1/resolveResolve

统一内容解析接口 - 支持抖音/快手/小红书/B站/TikTok/YouTube 返回统一格式的数据结构,包含: - 基本信息:title, type, video_url, audio_url, cover_url, platform - 作者信息:author, author_id, author_avatar - 视频属性:duration, width, height - 统计数据:view_count, like_count, comment_count, share_count, collect_count - 发布时间:release_time

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ResolveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResolveResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Download

DELETE/api/v1/download/cache/clearClear Cache

清空所有缓存 需要管理员权限(当前为演示模式)

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
GET/api/v1/download/cache/statsGet Cache Stats

获取缓存统计信息(无需认证) 返回缓存命中率、内存使用情况等统计数据

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/download/extract-audioExtract Audio From Video

从视频URL提取音频 从视频URL下载并提取音频,返回音频文件URL 返回码说明: - 200: 提取成功 - 202: 正在处理中,前端应每隔 retry_after 秒轮询本接口直至完成 - 400: 请求参数错误 - 500: 服务器内部错误

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractMediaRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/download/extract-bgmExtract Bgm

提取背景音乐 从音频URL中提取背景音乐 返回码说明: - 200: 提取成功 - 202: 正在处理中,前端应每隔 retry_after 秒轮询本接口直至完成 - 400: 请求参数错误 - 500: 服务器内部错误

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractMediaRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/download/extract-textExtract Text

提取音频文案(口播文案) 从音频URL中提取口播文案文本内容 返回码说明: - 200: 提取成功,返回文案内容 - 202: 正在处理中,前端应每隔 retry_after 秒轮询本接口直至完成 - 400: 请求参数错误 - 500: 服务器内部错误

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractMediaRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/download/media/{path}Download Media File

下载媒体文件代理端点 用于代理 MinIO 中的媒体文件,支持视频、音频等文件的下载 支持 Range 请求(视频拖动播放) Args: path: 媒体文件路径,如 videos/filename.mp4, audios/filename.mp3 download: true 时用 Content-Disposition: attachment(移动端「另存为」)

{
  "parameters": [
    {
      "name": "path",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Path"
      }
    },
    {
      "name": "download",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false,
        "title": "Download"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Extraction

POST/api/v1/extraction/analyze分析 URL(纯素材解析,不下载不上传)

分析 URL 并解析素材元数据与直链。 **仅数据提取**:返回平台 video/audio/cover 直链与标题等元数据。 **不会**下载媒体文件、**不会**上传到对象存储、**不会**做 BGM/ASR。 需要落盘/转存、口播文案、人声分离请走独立原子能力。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractionAnalyzeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExtractionResultResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/extraction/history获取提取历史

获取用户的提取历史

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "platform",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "平台过滤",
        "title": "Platform"
      },
      "description": "平台过滤"
    },
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "状态过滤",
        "title": "Status"
      },
      "description": "状态过滤"
    },
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "default": 1,
        "title": "Page"
      }
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 100,
        "minimum": 1,
        "default": 20,
        "title": "Page Size"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExtractionListResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/extraction/upload登记本地上传文件(仅登记元数据,不做二次下载/转码)

登记用户上传的媒体文件为一条素材提取记录。 仅保存用户提交的文件到存储并登记元数据(文件本身由客户端提交), **不做**平台下载、BGM 分离、ASR 或二次转码。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_upload_file_extraction_api_v1_extraction_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExtractionResultResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/extraction/{extraction_id}获取提取结果

获取提取结果详情

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "extraction_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Extraction Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExtractionResultResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/extraction/{extraction_id}/download/{resource_type}跳转到资源直链

按资源类型 302 跳转到解析得到的直链(服务端不二次拉取/转存)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "extraction_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Extraction Id"
      }
    },
    {
      "name": "resource_type",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Resource Type"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/extraction/{extraction_id}/progress获取提取进度 (SSE)

获取提取进度(Server-Sent Events) 注意: 由于 EventSource 不支持自定义 headers, token 通过 query 参数传递。 资源隔离:鉴权用短会话;SSE 轮询每轮独立开/关 session, 禁止在长连接期间持有 Depends(get_db) 连接。

{
  "parameters": [
    {
      "name": "extraction_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Extraction Id"
      }
    },
    {
      "name": "token",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "description": "JWT token for SSE authentication",
        "title": "Token"
      },
      "description": "JWT token for SSE authentication"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/extraction/{extraction_id}/save-to-assets保存到资源库(已下线)

云素材库已下线;请使用各端「我的空间」本地记录。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "extraction_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Extraction Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SaveToAssetsRequest"
        }
      }
    }
  },
  "responses": {
    "410": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SaveToAssetsResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Copywriting

POST/api/v1/copywriting/audio-to-textAudio To Text

音频转文案 将上传的音频文件转录为文字。使用远程 AI 推理服务进行语音识别。 注意: 需要配置 AI 推理服务 (SH_INFER_ENABLED=true)

{
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_audio_to_text_api_v1_copywriting_audio_to_text_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/detect-forbiddenDetect Forbidden Words

违禁词检测

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ForbiddenWordRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/extract-linkExtract Link

从链接提取口播文案 短视频链接流水线:解析视频 → 分离音频 → ASR 识别 → 返回文案。 普通网页仍走 HTML 抓取。

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/LinkExtractionRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/image-to-textImage To Text

图片转文案:经 Backend 调 Media OCR(model=auto|glm-ocr|pp-ocrv5)。

{
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_image_to_text_api_v1_copywriting_image_to_text_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/marketingGenerate Marketing

生成营销文案

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MarketingRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/product-reviewGenerate Product Review

生成产品测评

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProductReviewRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/smart-originalSmart Original

智能原创

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SmartOriginalRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/video-scriptGenerate Video Script

生成视频脚本

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VideoScriptRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/webpage-scrapeWebpage Scrape

网页解析转文案(Backend → Media web scrape)

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WebpageScrapeCopyRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/word-to-textWord To Text

文档转文案(Backend → Media anydoc)

{
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_word_to_text_api_v1_copywriting_word_to_text_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/copywriting/xiaohongshuGenerate Xiaohongshu

生成小红书风格文案

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/XiaohongshuRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Studio

GET/api/v1/studio/jobs/{job_id}Get Job

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "job_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Job Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/StudioJobResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/studio/projectsList Projects

列出当前用户的 Studio 项目

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 50,
        "title": "Limit"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response List Projects Api V1 Studio Projects Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/studio/projects/quick-renderQuick Render

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/StudioQuickRenderRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QuickRenderResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/studio/projects/{project_id}Get Project

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/StudioProjectResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/studio/projects/{project_id}/runRun Project

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/StudioRunRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QuickRenderResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/studio/projects/{project_id}/shots/{shot_id}Patch Shot

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    },
    {
      "name": "shot_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Shot Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ShotPatch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Patch Shot Api V1 Studio Projects  Project Id  Shots  Shot Id  Put"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/studio/projects/{project_id}/visual-assetsUpsert Visual Asset

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VisualAssetUpsert"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "title": "Response Upsert Visual Asset Api V1 Studio Projects  Project Id  Visual Assets Post"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Project

POST/api/v1/project/projects创建项目

创建新的项目 (支持 generic, image, video, tool)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects获取项目列表

获取当前用户的项目列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "项目类型过滤",
        "title": "Project Type"
      },
      "description": "项目类型过滤"
    },
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "状态过滤",
        "title": "Status"
      },
      "description": "状态过滤"
    },
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "description": "页码",
        "default": 1,
        "title": "Page"
      },
      "description": "页码"
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 100,
        "minimum": 1,
        "description": "每页数量",
        "default": 20,
        "title": "Page Size"
      },
      "description": "每页数量"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectListResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}获取项目详情

获取项目详情(含消息历史和业务数据)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectDetailResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/project/projects/{project_id}更新项目

更新项目基本信息和配置

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/project/projects/{project_id}删除项目

删除项目

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}/assets获取项目资产列表

获取项目的资产列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaAssetResponse"
            },
            "title": "Response Get Project Assets Api V1 Project Projects  Project Id  Assets Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/assets添加资产

向项目添加资产

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AddAssetRequest"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaAssetResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/project/projects/{project_id}/assets/{asset_id}删除资产

从项目删除资产

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    },
    {
      "name": "asset_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Asset Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/chat发送聊天消息

与 Agent 进行对话

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentChatRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentChatResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/export导出项目

导出项目 (支持视频导出、图片导出等)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectExportRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectExportResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/generate生成内容

触发内容生成

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentGenerateRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentGenerateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}/scripts获取脚本列表

获取项目的脚本列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScriptSegmentResponse"
            },
            "title": "Response Get Project Scripts Api V1 Project Projects  Project Id  Scripts Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/project/projects/{project_id}/scripts更新脚本列表

更新项目的脚本列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UpdateScriptsRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScriptSegmentResponse"
            },
            "title": "Response Update Project Scripts Api V1 Project Projects  Project Id  Scripts Put"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}/timeline获取时间线

获取项目的时间线

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TimelineResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/project/projects/{project_id}/timeline更新时间线

更新项目的时间线

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UpdateTimelineRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TimelineResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Upload

POST/api/v1/upload/minioUpload To Minio

代理上传到对象存储(默认 TOS),返回可下载 URL。 路径名 `/minio` 为历史兼容;直传失败时 Web 会降级到此接口。

{
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_upload_to_minio_api_v1_upload_minio_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/upload/presignPresign Upload

签发对象存储直传凭证。 - mode=put:返回 upload_url,客户端 PUT 原始 body - mode=proxy:本地盘或不支持时,客户端应走 /upload/minio 允许匿名(与 /minio 一致,供工具输入)。

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PresignRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Storage

GET/api/v1/storageList Files And Folders

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "category",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Category"
      }
    },
    {
      "name": "asset_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Asset Type"
      }
    },
    {
      "name": "parent_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "Parent Id"
      }
    },
    {
      "name": "is_favorite",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "Is Favorite"
      }
    },
    {
      "name": "search",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Search"
      }
    },
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "default": 1,
        "title": "Page"
      }
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 100,
        "minimum": 1,
        "default": 20,
        "title": "Page Size"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/storage/batch-moveBatch Move Assets

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BatchMoveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "410": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "boolean",
            "title": "Response Batch Move Assets Api V1 Storage Batch Move Post"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/storage/files/{path}Get File

获取本地存储的文件,支持 Range 请求和 CORS(工具处理产物,非用户云盘)

{
  "parameters": [
    {
      "name": "path",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Path"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/storage/uploadUpload Tool File

工具侧文件上传(鉴权)。 不创建 user_assets、不占用用户云存储配额。 返回 URL 供后续工具处理;兼容旧客户端对 asset.file_url 的解析。 匿名工具上传请走 /api/v1/upload/minio。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_upload_tool_file_api_v1_storage_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/storage/{asset_id}Delete Asset

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "asset_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Asset Id"
      }
    }
  ],
  "responses": {
    "410": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Tasks

GET/api/v1/tasks/historyGet Async Task History Endpoint

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "default": 1,
        "title": "Page"
      }
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 50,
        "minimum": 1,
        "default": 10,
        "title": "Page Size"
      }
    },
    {
      "name": "job_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Job Type"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskHistoryResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/tasks/{task_id}Get Async Task Endpoint

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    },
    {
      "name": "progress_token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Progress Token"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskDetail"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/tasks/{task_id}/progressGet Async Task Progress Endpoint

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Task Id"
      }
    },
    {
      "name": "token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Token"
      }
    },
    {
      "name": "progress_token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Progress Token"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Tools

GET/api/v1/toolsGet Tools

获取工具列表 返回所有可用的工具信息

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
GET/api/v1/tools/{tool_id}Get Tool By Id

根据ID获取工具信息

{
  "parameters": [
    {
      "name": "tool_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Tool Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Tool History

POST/api/v1/tool-history创建工具使用历史记录

记录用户使用工具的历史

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ToolHistoryCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ToolHistoryResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/tool-history获取工具使用历史记录列表

分页获取当前用户的工具使用历史记录

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "description": "页码",
        "default": 1,
        "title": "Page"
      },
      "description": "页码"
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 100,
        "minimum": 1,
        "description": "每页数量",
        "default": 20,
        "title": "Page Size"
      },
      "description": "每页数量"
    },
    {
      "name": "tool_category",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "工具分类筛选",
        "title": "Tool Category"
      },
      "description": "工具分类筛选"
    },
    {
      "name": "tool_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "工具ID筛选",
        "title": "Tool Id"
      },
      "description": "工具ID筛选"
    },
    {
      "name": "status_filter",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "状态筛选",
        "title": "Status Filter"
      },
      "description": "状态筛选"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ToolHistoryListResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/tool-history/批量删除工具使用历史记录

根据条件批量删除工具使用历史记录

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "tool_category",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "工具分类筛选",
        "title": "Tool Category"
      },
      "description": "工具分类筛选"
    },
    {
      "name": "tool_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "工具ID筛选",
        "title": "Tool Id"
      },
      "description": "工具ID筛选"
    },
    {
      "name": "status_filter",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "状态筛选",
        "title": "Status Filter"
      },
      "description": "状态筛选"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ToolHistoryDeleteResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/tool-history/{history_id}获取单个工具使用历史记录

根据ID获取工具使用历史记录详情

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "history_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "History Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ToolHistoryResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/tool-history/{history_id}删除工具使用历史记录

根据ID删除工具使用历史记录

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "history_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "History Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ToolHistoryDeleteResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Chat

POST/api/v1/chatChat

发送聊天消息 (基于 QueryEngine) - 自动创建或使用已有会话 - 支持工具调用 - 支持上下文记忆 示例: ``` POST /api/v1/chat { "message": "帮我提取这个视频的素材 https://...", "stream": false } ```

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "authorization",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Authorization"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ChatRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ChatResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/chat/healthHealth Check

健康检查

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
GET/api/v1/chat/sessionsList Sessions

列出会话(基于 QueryEngine 进程内缓存)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "authorization",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Authorization"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Response List Sessions Api V1 Chat Sessions Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/chat/sessions/{session_key}Get Session

获取会话信息

{
  "parameters": [
    {
      "name": "session_key",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Session Key"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SessionInfo"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/chat/sessions/{session_key}Delete Session

删除会话

{
  "parameters": [
    {
      "name": "session_key",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Session Key"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/chat/sessions/{session_key}/messagesGet Session Messages

获取会话消息历史

{
  "parameters": [
    {
      "name": "session_key",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Session Key"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 200,
        "description": "返回消息数量",
        "default": 50,
        "title": "Limit"
      },
      "description": "返回消息数量"
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 0,
        "description": "偏移量",
        "default": 0,
        "title": "Offset"
      },
      "description": "偏移量"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageInfo"
            },
            "title": "Response Get Session Messages Api V1 Chat Sessions  Session Key  Messages Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/chat/streamChat Stream

流式聊天 (基于 QueryEngine,SSE) 返回 Server-Sent Events 格式: ``` data: {"type": "session", "data": {"session_key": "..."}} data: {"type": "stream_request_start", "data": {"turn": 1}} data: {"type": "text_delta", "data": {"text": "Hello"}} data: {"type": "tool_use", "data": {"name": "video_extraction", ...}} data: {"type": "confirmation_request", "data": {"tool_call_id": "...", ...}} data: {"type": "tool_result", "data": {"success": true, ...}} data: {"type": "done", "data": {"status": "completed", ...}} ```

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "authorization",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Authorization"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ChatRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/chat/toolsList Tools

获取可用工具列表

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}

Proxy

GET/api/v1/proxy/downloadProxy Download

Proxy download a file with proper headers to bypass anti-hotlinking. Returns the file with Content-Disposition header for download. 鉴权: - Authorization: Bearer <token>(fetch/XHR) - ?token=<jwt>(浏览器 <a href> 原生下载无法带 Authorization) 安全措施: - 强制登录 + 配额 - 禁止访问私有 IP 地址 - 禁止访问云服务元数据端点 - DNS 解析检查防止 DNS 重绑定攻击 资源隔离:鉴权/配额短会话;下载流期间不持有 DB 连接。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "url",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Target URL to download",
        "title": "Url"
      },
      "description": "Target URL to download"
    },
    {
      "name": "filename",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Suggested filename for download",
        "title": "Filename"
      },
      "description": "Suggested filename for download"
    },
    {
      "name": "token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "JWT token fallback when Authorization header is unavailable",
        "title": "Token"
      },
      "description": "JWT token fallback when Authorization header is unavailable"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/proxy/streamProxy Stream

Proxy stream a URL to bypass CORS / anti-hotlink. This routes the traffic through the backend with proper platform-specific headers. 鉴权: - Authorization: Bearer <token>(fetch/XHR) - ?token=<jwt>(原生 video/audio 标签无法自定义请求头) 安全措施: - 强制登录 - 禁止访问私有 IP 地址 (10.x.x.x, 192.168.x.x, 127.0.0.1 等) - 禁止访问云服务元数据端点 - DNS 解析检查防止 DNS 重绑定攻击 资源隔离:鉴权/配额短会话;流式传输期间不持有 DB 连接。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "url",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Target URL to stream",
        "title": "Url"
      },
      "description": "Target URL to stream"
    },
    {
      "name": "platform",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Platform hint for setting correct Referer",
        "title": "Platform"
      },
      "description": "Platform hint for setting correct Referer"
    },
    {
      "name": "token",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "JWT token for <video>/<audio> src (no Authorization header available)",
        "title": "Token"
      },
      "description": "JWT token for <video>/<audio> src (no Authorization header available)"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Health

GET/Root

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
GET/api/v1/health/基础健康检查

返回应用的基本健康状态信息,用于快速检测应用是否正常运行。

{
  "responses": {
    "200": {
      "description": "应用健康",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HealthResponse"
          },
          "example": {
            "status": "healthy",
            "version": "1.0.0",
            "timestamp": "2024-01-01T00:00:00Z"
          }
        }
      }
    }
  }
}
GET/api/v1/health/detailed详细健康检查

返回更详细的系统状态信息。

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HealthResponse"
          }
        }
      }
    }
  }
}
GET/api/v1/health/ready就绪检查

检查所有依赖服务的连接状态,用于 Kubernetes 就绪探针。 返回各服务的状态: - **database**: PostgreSQL 数据库连接状态 - **redis**: Redis 缓存服务连接状态

{
  "responses": {
    "200": {
      "description": "所有服务就绪",
      "content": {
        "application/json": {
          "schema": {},
          "example": {
            "status": "ready",
            "checks": {
              "database": {
                "status": "healthy",
                "latency_ms": 5.23
              },
              "redis": {
                "status": "healthy",
                "latency_ms": 1.05
              }
            },
            "version": "1.0.0",
            "environment": "production",
            "timestamp": "2024-01-01T00:00:00Z"
          }
        }
      }
    },
    "503": {
      "description": "服务未就绪",
      "content": {
        "application/json": {
          "example": {
            "status": "not_ready",
            "checks": {
              "database": {
                "status": "unhealthy",
                "error": "Connection refused"
              },
              "redis": {
                "status": "healthy",
                "latency_ms": 1.05
              }
            },
            "version": "1.0.0",
            "environment": "production",
            "timestamp": "2024-01-01T00:00:00Z"
          }
        }
      }
    }
  }
}

数据模型

展开 components
{
  "schemas": {
    "AICutoutRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "AICutoutRequest",
      "description": "AI智能抠图请求"
    },
    "AIWatermarkRemovalRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "mode": {
          "type": "string",
          "title": "Mode",
          "default": "auto"
        },
        "platform_hint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform Hint"
        },
        "blur_intensity": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Blur Intensity",
          "default": 50
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "AIWatermarkRemovalRequest",
      "description": "AI智能去水印请求"
    },
    "AddAssetRequest": {
      "properties": {
        "asset": {
          "$ref": "#/components/schemas/MediaAssetCreate",
          "description": "资产信息"
        }
      },
      "type": "object",
      "required": [
        "asset"
      ],
      "title": "AddAssetRequest",
      "description": "添加资产请求"
    },
    "AddCoverRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "cover_url": {
          "type": "string",
          "title": "Cover Url"
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "cover_url"
      ],
      "title": "AddCoverRequest",
      "description": "添加封面请求"
    },
    "AdjustRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "brightness": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Brightness",
          "default": 1.0
        },
        "contrast": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Contrast",
          "default": 1.0
        },
        "saturation": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Saturation",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "AdjustRequest"
    },
    "AgentChatRequest": {
      "properties": {
        "message": {
          "type": "string",
          "minLength": 1,
          "title": "Message",
          "description": "用户消息"
        },
        "attachments": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Attachments",
          "description": "附件"
        }
      },
      "type": "object",
      "required": [
        "message"
      ],
      "title": "AgentChatRequest",
      "description": "Agent 聊天请求"
    },
    "AgentChatResponse": {
      "properties": {
        "message": {
          "$ref": "#/components/schemas/AgentMessageResponse",
          "description": "Agent 回复"
        },
        "project_status": {
          "type": "string",
          "title": "Project Status",
          "description": "项目状态"
        }
      },
      "type": "object",
      "required": [
        "message",
        "project_status"
      ],
      "title": "AgentChatResponse",
      "description": "Agent 聊天响应"
    },
    "AgentGenerateRequest": {
      "properties": {
        "prompt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt",
          "description": "生成提示词"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "生成配置"
        }
      },
      "type": "object",
      "title": "AgentGenerateRequest",
      "description": "Agent 生成请求"
    },
    "AgentGenerateResponse": {
      "properties": {
        "task_id": {
          "type": "string",
          "title": "Task Id",
          "description": "任务ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态: pending, processing, completed, failed"
        },
        "progress": {
          "type": "integer",
          "title": "Progress",
          "description": "进度百分比",
          "default": 0
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result",
          "description": "生成结果"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "AgentGenerateResponse",
      "description": "Agent 生成响应"
    },
    "AgentMessageResponse": {
      "properties": {
        "role": {
          "type": "string",
          "title": "Role",
          "description": "角色: user, agent, system"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "消息内容"
        },
        "attachments": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Attachments",
          "description": "附件列表"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "消息ID"
        },
        "project_id": {
          "type": "integer",
          "title": "Project Id",
          "description": "项目ID"
        },
        "tool_calls": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Calls",
          "description": "工具调用记录"
        },
        "tool_results": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Results",
          "description": "工具执行结果"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "completed"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        }
      },
      "type": "object",
      "required": [
        "role",
        "content",
        "id",
        "project_id",
        "created_at"
      ],
      "title": "AgentMessageResponse",
      "description": "Agent 消息响应"
    },
    "AgentSessionMessage": {
      "properties": {
        "role": {
          "type": "string",
          "title": "Role"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "default": ""
        },
        "tool_calls": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Calls"
        },
        "tool_call_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Call Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "artifacts": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Artifacts"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "role"
      ],
      "title": "AgentSessionMessage",
      "description": "会话历史消息"
    },
    "AgentSessionSummary": {
      "properties": {
        "session_id": {
          "type": "string",
          "title": "Session Id"
        },
        "title": {
          "type": "string",
          "title": "Title",
          "default": ""
        },
        "last_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Last Message"
        },
        "message_count": {
          "type": "integer",
          "title": "Message Count",
          "default": 0
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At"
        }
      },
      "type": "object",
      "required": [
        "session_id"
      ],
      "title": "AgentSessionSummary",
      "description": "会话列表项"
    },
    "AgentStep": {
      "properties": {
        "step_id": {
          "type": "string",
          "title": "Step Id"
        },
        "description": {
          "type": "string",
          "title": "Description"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "output": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "step_id",
        "description",
        "status"
      ],
      "title": "AgentStep"
    },
    "AgentTaskCreate": {
      "properties": {
        "query": {
          "type": "string",
          "title": "Query",
          "description": "The user query or task description"
        },
        "task_type": {
          "$ref": "#/components/schemas/AgentTaskType",
          "description": "Type of agent task",
          "default": "general"
        },
        "session_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Session Id",
          "description": "Session ID for conversation context"
        },
        "context": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Context",
          "description": "Additional context for the task"
        },
        "mode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Mode",
          "description": "manual: 高耗工具需确认; auto: 自动确认但仍计费"
        }
      },
      "type": "object",
      "required": [
        "query"
      ],
      "title": "AgentTaskCreate"
    },
    "AgentTaskResponse": {
      "properties": {
        "task_id": {
          "type": "string",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/AgentTaskStatus"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result"
        },
        "steps": {
          "items": {
            "$ref": "#/components/schemas/AgentStep"
          },
          "type": "array",
          "title": "Steps",
          "default": []
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At"
        },
        "user_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "User Id",
          "description": "用户 ID(用于权限控制)"
        },
        "pending_confirmation": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/PendingConfirmationPayload"
            },
            {
              "type": "null"
            }
          ],
          "description": "当前等待用户确认的高消耗工具(SSE 实时推送)"
        },
        "session_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Session Id",
          "description": "关联会话 ID"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status",
        "created_at",
        "updated_at"
      ],
      "title": "AgentTaskResponse"
    },
    "AgentTaskStatus": {
      "type": "string",
      "enum": [
        "pending",
        "running",
        "awaiting_confirmation",
        "completed",
        "failed",
        "cancelled"
      ],
      "title": "AgentTaskStatus"
    },
    "AgentTaskType": {
      "type": "string",
      "enum": [
        "research",
        "coding",
        "general"
      ],
      "title": "AgentTaskType"
    },
    "AlignRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "transcript": {
          "type": "string",
          "minLength": 1,
          "title": "Transcript",
          "description": "已有转写文本"
        },
        "language": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Language",
          "description": "对齐语言",
          "default": "Chinese"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "transcript"
      ],
      "title": "AlignRequest",
      "description": "词级对齐请求"
    },
    "AsyncTaskCreateResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "default": true
        },
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "default": "pending"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交,正在处理中"
        },
        "progress_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Progress Token"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "task_id"
      ],
      "title": "AsyncTaskCreateResponse"
    },
    "AsyncTaskDetail": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "job_type": {
          "type": "string",
          "title": "Job Type"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "progress": {
          "type": "number",
          "title": "Progress",
          "default": 0
        },
        "current_step": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Step"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url"
        },
        "params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Params"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "output_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Url"
        },
        "result_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Video Url"
        },
        "result_payload": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Payload"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        },
        "started_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Started At"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "job_type",
        "status"
      ],
      "title": "AsyncTaskDetail"
    },
    "AsyncTaskHistoryItem": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "job_type": {
          "type": "string",
          "title": "Job Type"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "job_type",
        "status"
      ],
      "title": "AsyncTaskHistoryItem"
    },
    "AsyncTaskHistoryResponse": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/components/schemas/AsyncTaskHistoryItem"
          },
          "type": "array",
          "title": "Items"
        },
        "total": {
          "type": "integer",
          "title": "Total"
        },
        "page": {
          "type": "integer",
          "title": "Page"
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size"
        }
      },
      "type": "object",
      "required": [
        "items",
        "total",
        "page",
        "page_size"
      ],
      "title": "AsyncTaskHistoryResponse"
    },
    "AudioEnhanceTaskRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "mode": {
          "type": "string",
          "enum": [
            "enhance",
            "denoise"
          ],
          "title": "Mode",
          "description": "enhance=人声增强; denoise=转调 Moss 降噪",
          "default": "enhance"
        },
        "engine": {
          "type": "string",
          "enum": [
            "mossformer2-se-sr",
            "resemble"
          ],
          "title": "Engine",
          "description": "mossformer2-se-sr=SE→SR+低频回填(默认); resemble=CFM+低频回填",
          "default": "mossformer2-se-sr"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "AudioEnhanceTaskRequest"
    },
    "BackgroundRemoveRequest": {
      "properties": {
        "image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Url",
          "description": "图片URL"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/webp",
          "default": "png"
        },
        "return_mask": {
          "type": "boolean",
          "title": "Return Mask",
          "description": "是否返回mask",
          "default": false
        },
        "feather_edge": {
          "type": "integer",
          "maximum": 20.0,
          "minimum": 0.0,
          "title": "Feather Edge",
          "description": "边缘羽化像素",
          "default": 0
        },
        "background_color": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Background Color",
          "description": "替换背景色 如 #FFFFFF"
        }
      },
      "type": "object",
      "title": "BackgroundRemoveRequest",
      "description": "背景移除请求"
    },
    "BackgroundRemoveResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "mask_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Mask Url"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "BackgroundRemoveResponse",
      "description": "背景移除响应"
    },
    "BatchMoveRequest": {
      "properties": {
        "asset_ids": {
          "items": {
            "type": "integer"
          },
          "type": "array",
          "minItems": 1,
          "title": "Asset Ids",
          "description": "资源ID列表"
        },
        "target_folder_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Folder Id",
          "description": "目标文件夹ID"
        }
      },
      "type": "object",
      "required": [
        "asset_ids"
      ],
      "title": "BatchMoveRequest",
      "description": "批量移动请求"
    },
    "BatchWatermarkRequest": {
      "properties": {
        "image_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "minItems": 1,
          "title": "Image Urls"
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "title": "Text"
        },
        "position_x": {
          "type": "integer",
          "title": "Position X",
          "default": 10
        },
        "position_y": {
          "type": "integer",
          "title": "Position Y",
          "default": 10
        },
        "font_size": {
          "type": "integer",
          "title": "Font Size",
          "default": 20
        },
        "color": {
          "type": "string",
          "title": "Color",
          "default": "white"
        }
      },
      "type": "object",
      "required": [
        "image_urls",
        "text"
      ],
      "title": "BatchWatermarkRequest"
    },
    "Body_audio_to_text_api_v1_copywriting_audio_to_text_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_audio_to_text_api_v1_copywriting_audio_to_text_post"
    },
    "Body_background_remove_upload_api_v1_image_ai_bg_remove_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "png"
        },
        "return_mask": {
          "type": "boolean",
          "title": "Return Mask",
          "default": false
        },
        "feather_edge": {
          "type": "integer",
          "title": "Feather Edge",
          "default": 0
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_background_remove_upload_api_v1_image_ai_bg_remove_upload_post"
    },
    "Body_clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "Chinese"
        },
        "save_voice": {
          "type": "boolean",
          "title": "Save Voice",
          "default": true
        },
        "audio_file": {
          "type": "string",
          "format": "binary",
          "title": "Audio File"
        }
      },
      "type": "object",
      "required": [
        "text",
        "audio_file"
      ],
      "title": "Body_clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post"
    },
    "Body_create_subtitle_removal_task_from_file_api_v1_video_tasks_subtitle_removal_from_file_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File",
          "description": "视频文件"
        },
        "region": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Region",
          "description": "字幕区域 JSON 字符串(像素)"
        },
        "mode": {
          "type": "string",
          "title": "Mode",
          "description": "产品档位 fast/standard/high",
          "default": "standard"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_create_subtitle_removal_task_from_file_api_v1_video_tasks_subtitle_removal_from_file_post"
    },
    "Body_create_watermark_removal_task_from_file_api_v1_video_tasks_watermark_removal_from_file_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File",
          "description": "视频文件"
        },
        "watermark_regions": {
          "type": "string",
          "title": "Watermark Regions",
          "description": "水印区域 JSON 字符串",
          "default": "[]"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "description": "处理模式",
          "default": "standard"
        },
        "auto_detect": {
          "type": "boolean",
          "title": "Auto Detect",
          "description": "自动检测水印区域",
          "default": false
        },
        "output_quality": {
          "type": "integer",
          "title": "Output Quality",
          "description": "输出质量",
          "default": 80
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_create_watermark_removal_task_from_file_api_v1_video_tasks_watermark_removal_from_file_post"
    },
    "Body_document_parse_upload_api_v1_document_parse_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "output": {
          "type": "string",
          "title": "Output",
          "default": "text"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_document_parse_upload_api_v1_document_parse_upload_post"
    },
    "Body_image_enhance_upload_api_v1_image_ai_enhance_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "enhance_type": {
          "type": "string",
          "title": "Enhance Type",
          "default": "auto"
        },
        "sharpen_strength": {
          "type": "number",
          "title": "Sharpen Strength",
          "default": 0.5
        },
        "denoise_strength": {
          "type": "number",
          "title": "Denoise Strength",
          "default": 0.3
        },
        "color_enhance": {
          "type": "number",
          "title": "Color Enhance",
          "default": 0.2
        },
        "face_enhance": {
          "type": "boolean",
          "title": "Face Enhance",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_image_enhance_upload_api_v1_image_ai_enhance_upload_post"
    },
    "Body_image_extend_upload_api_v1_image_ai_extend_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "direction": {
          "type": "string",
          "title": "Direction",
          "default": "right"
        },
        "extend_ratio": {
          "type": "number",
          "title": "Extend Ratio",
          "default": 0.5
        },
        "prompt": {
          "type": "string",
          "title": "Prompt",
          "default": ""
        },
        "negative_prompt": {
          "type": "string",
          "title": "Negative Prompt",
          "default": ""
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_image_extend_upload_api_v1_image_ai_extend_upload_post"
    },
    "Body_image_recolor_upload_api_v1_image_ai_recolor_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "target_colors": {
          "type": "string",
          "title": "Target Colors",
          "default": ""
        },
        "style": {
          "type": "string",
          "title": "Style",
          "default": "natural"
        },
        "strength": {
          "type": "number",
          "title": "Strength",
          "default": 0.8
        },
        "preserve_luminance": {
          "type": "boolean",
          "title": "Preserve Luminance",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_image_recolor_upload_api_v1_image_ai_recolor_upload_post"
    },
    "Body_image_to_text_api_v1_copywriting_image_to_text_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "model": {
          "type": "string",
          "title": "Model",
          "default": "auto"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_image_to_text_api_v1_copywriting_image_to_text_post"
    },
    "Body_image_upscale_upload_api_v1_image_ai_upscale_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "scale": {
          "type": "number",
          "title": "Scale",
          "default": 4.0
        },
        "face_enhance": {
          "type": "boolean",
          "title": "Face Enhance",
          "default": false
        },
        "denoise_strength": {
          "type": "number",
          "title": "Denoise Strength",
          "default": 0.5
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_image_upscale_upload_api_v1_image_ai_upscale_upload_post"
    },
    "Body_object_remove_upload_api_v1_image_ai_object_remove_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "mask_data": {
          "type": "string",
          "title": "Mask Data",
          "default": ""
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "inpaint_mode": {
          "type": "string",
          "title": "Inpaint Mode",
          "default": "auto"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_object_remove_upload_api_v1_image_ai_object_remove_upload_post"
    },
    "Body_upload_file_extraction_api_v1_extraction_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File",
          "description": "上传的视频或音频文件"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_upload_file_extraction_api_v1_extraction_upload_post"
    },
    "Body_upload_image_api_v1_image_basic_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_upload_image_api_v1_image_basic_upload_post"
    },
    "Body_upload_to_minio_api_v1_upload_minio_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File",
          "description": "待上传的文件"
        },
        "folder": {
          "type": "string",
          "title": "Folder",
          "description": "存储子目录",
          "default": "uploads"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_upload_to_minio_api_v1_upload_minio_post"
    },
    "Body_upload_tool_file_api_v1_storage_upload_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        },
        "category": {
          "type": "string",
          "title": "Category",
          "default": "all"
        },
        "folder": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Folder"
        },
        "parent_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Parent Id"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_upload_tool_file_api_v1_storage_upload_post"
    },
    "Body_word_to_text_api_v1_copywriting_word_to_text_post": {
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "title": "File"
        }
      },
      "type": "object",
      "required": [
        "file"
      ],
      "title": "Body_word_to_text_api_v1_copywriting_word_to_text_post"
    },
    "Brief": {
      "properties": {
        "topic": {
          "type": "string",
          "title": "Topic",
          "default": ""
        },
        "audience": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audience"
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform",
          "default": "generic"
        },
        "duration_sec_target": {
          "type": "integer",
          "title": "Duration Sec Target",
          "default": 45
        },
        "tone": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tone"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "zh"
        },
        "source_type": {
          "type": "string",
          "title": "Source Type",
          "default": "script"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url"
        },
        "raw_input": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Raw Input"
        },
        "style_hint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Style Hint"
        }
      },
      "type": "object",
      "title": "Brief"
    },
    "BurnSubtitleRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "srt_content": {
          "type": "string",
          "minLength": 1,
          "title": "Srt Content"
        },
        "font_size": {
          "type": "integer",
          "maximum": 72.0,
          "minimum": 8.0,
          "title": "Font Size",
          "default": 24
        },
        "font_color": {
          "type": "string",
          "title": "Font Color",
          "default": "white"
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "srt_content"
      ],
      "title": "BurnSubtitleRequest",
      "description": "烧录硬字幕"
    },
    "ChatRequest": {
      "properties": {
        "message": {
          "type": "string",
          "minLength": 1,
          "title": "Message",
          "description": "用户消息"
        },
        "session_key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Session Key",
          "description": "会话标识,不传则自动创建"
        },
        "model": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model",
          "description": "指定模型"
        },
        "stream": {
          "type": "boolean",
          "title": "Stream",
          "description": "是否流式返回",
          "default": false
        },
        "images": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Images",
          "description": "图片 URL 列表"
        },
        "context": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Context",
          "description": "额外上下文"
        },
        "tools_allow": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tools Allow",
          "description": "允许的工具列表"
        },
        "tools_deny": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tools Deny",
          "description": "禁止的工具列表"
        }
      },
      "type": "object",
      "required": [
        "message"
      ],
      "title": "ChatRequest",
      "description": "聊天请求",
      "example": {
        "message": "帮我提取这个视频 https://www.youtube.com/watch?v=xxx",
        "stream": false
      }
    },
    "ChatResponse": {
      "properties": {
        "session_key": {
          "type": "string",
          "title": "Session Key",
          "description": "会话标识"
        },
        "run_id": {
          "type": "string",
          "title": "Run Id",
          "description": "运行 ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态: completed, failed, timeout"
        },
        "response": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Response",
          "description": "助手回复"
        },
        "tool_calls": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Calls",
          "description": "工具调用"
        },
        "tool_results": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Results",
          "description": "工具结果"
        },
        "artifacts": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Artifacts",
          "description": "生成的资产"
        },
        "tokens_used": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tokens Used",
          "description": "使用的 Token 数"
        },
        "duration_ms": {
          "type": "integer",
          "title": "Duration Ms",
          "description": "耗时 (毫秒)"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error",
          "description": "错误信息"
        }
      },
      "type": "object",
      "required": [
        "session_key",
        "run_id",
        "status",
        "duration_ms"
      ],
      "title": "ChatResponse",
      "description": "聊天响应",
      "example": {
        "duration_ms": 5000,
        "response": "我已经成功提取了视频素材...",
        "run_id": "run_xyz",
        "session_key": "agent:default:user:123:session:abc",
        "status": "completed",
        "tokens_used": 1234
      }
    },
    "ClarityRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ClarityRequest",
      "description": "清晰度增强请求"
    },
    "ClipCreate": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/ClipType"
        },
        "start": {
          "type": "number",
          "title": "Start",
          "description": "开始时间(秒)"
        },
        "end": {
          "type": "number",
          "title": "End",
          "description": "结束时间(秒)"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "片段内容(文本或资产ID)"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        }
      },
      "type": "object",
      "required": [
        "type",
        "start",
        "end",
        "content"
      ],
      "title": "ClipCreate",
      "description": "创建片段"
    },
    "ClipResponse": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/ClipType"
        },
        "start": {
          "type": "number",
          "title": "Start",
          "description": "开始时间(秒)"
        },
        "end": {
          "type": "number",
          "title": "End",
          "description": "结束时间(秒)"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "片段内容(文本或资产ID)"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "片段ID"
        }
      },
      "type": "object",
      "required": [
        "type",
        "start",
        "end",
        "content",
        "id"
      ],
      "title": "ClipResponse",
      "description": "片段响应"
    },
    "ClipType": {
      "type": "string",
      "enum": [
        "text",
        "video",
        "audio",
        "image"
      ],
      "title": "ClipType",
      "description": "片段类型"
    },
    "CollageRequest": {
      "properties": {
        "image_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "minItems": 2,
          "title": "Image Urls"
        },
        "layout": {
          "type": "string",
          "title": "Layout",
          "default": "horizontal"
        }
      },
      "type": "object",
      "required": [
        "image_urls"
      ],
      "title": "CollageRequest"
    },
    "ColorizeRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ColorizeRequest",
      "description": "黑白上色请求"
    },
    "CompressRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "quality": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Quality",
          "default": 80
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "CompressRequest"
    },
    "ConvertFormatRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        },
        "bitrate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bitrate"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "ConvertFormatRequest",
      "description": "音频格式转换请求"
    },
    "ConvertRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "png"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ConvertRequest"
    },
    "CropRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "x": {
          "type": "integer",
          "title": "X",
          "default": 0
        },
        "y": {
          "type": "integer",
          "title": "Y",
          "default": 0
        },
        "width": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Width"
        },
        "height": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Height"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "png"
        }
      },
      "type": "object",
      "required": [
        "image_url",
        "width",
        "height"
      ],
      "title": "CropRequest"
    },
    "DefogRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "intensity": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Intensity",
          "default": 0.5
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "DefogRequest"
    },
    "DenoiseRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式",
          "default": "mp3"
        },
        "engine": {
          "type": "string",
          "enum": [
            "resemble",
            "mossformer2-se"
          ],
          "title": "Engine",
          "description": "resemble=Resemble UNet;mossformer2-se=MossFormer enhance_wav",
          "default": "resemble"
        },
        "strength": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Strength",
          "description": "已废弃,忽略"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "DenoiseRequest",
      "description": "音频降噪请求:resemble(默认)| mossformer2-se"
    },
    "DocumentParseRequest": {
      "properties": {
        "file_url": {
          "type": "string",
          "minLength": 1,
          "title": "File Url"
        },
        "output": {
          "type": "string",
          "enum": [
            "text",
            "markdown"
          ],
          "title": "Output",
          "default": "text"
        }
      },
      "type": "object",
      "required": [
        "file_url"
      ],
      "title": "DocumentParseRequest"
    },
    "DoodlePath": {
      "properties": {
        "points": {
          "items": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "type": "array",
          "title": "Points"
        },
        "color": {
          "type": "string",
          "title": "Color",
          "default": "#FF0000"
        },
        "width": {
          "type": "integer",
          "maximum": 50.0,
          "minimum": 1.0,
          "title": "Width",
          "default": 3
        }
      },
      "type": "object",
      "required": [
        "points"
      ],
      "title": "DoodlePath",
      "description": "涂鸦路径"
    },
    "EffectRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "effect": {
          "type": "string",
          "title": "Effect",
          "default": "sketch"
        },
        "intensity": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Intensity",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "EffectRequest"
    },
    "EnhanceRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "mode": {
          "type": "string",
          "enum": [
            "enhance",
            "denoise"
          ],
          "title": "Mode",
          "description": "enhance=人声增强; denoise=转调 Moss 降噪",
          "default": "enhance"
        },
        "engine": {
          "type": "string",
          "enum": [
            "mossformer2-se-sr",
            "resemble"
          ],
          "title": "Engine",
          "description": "mossformer2-se-sr(默认)| resemble",
          "default": "mossformer2-se-sr"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "EnhanceRequest",
      "description": "人声增强 / 音频增强请求"
    },
    "EnhanceType": {
      "type": "string",
      "enum": [
        "auto",
        "face",
        "general"
      ],
      "title": "EnhanceType",
      "description": "增强类型"
    },
    "ExportKeyframeRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "timestamp": {
          "type": "number",
          "minimum": 0.0,
          "title": "Timestamp",
          "default": 0.0
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "ExportKeyframeRequest",
      "description": "导出关键帧请求"
    },
    "ExtendDirection": {
      "type": "string",
      "enum": [
        "up",
        "down",
        "left",
        "right",
        "all"
      ],
      "title": "ExtendDirection",
      "description": "图像扩展方向"
    },
    "ExtractAudioRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "ExtractAudioRequest",
      "description": "从视频提取音频请求"
    },
    "ExtractFramesRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "frame_count": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Frame Count",
          "default": 10
        },
        "start_time": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Start Time"
        },
        "end_time": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "End Time"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "ExtractFramesRequest",
      "description": "视频抽帧请求"
    },
    "ExtractMediaRequest": {
      "properties": {
        "url": {
          "type": "string",
          "title": "Url",
          "description": "媒体 URL:平台分享链,或 resolve 得到的音频/视频直链。抖音等 CDN 直链易因预览/防盗链 403,建议同时传 source_url。"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url",
          "description": "平台原始分享/详情页 URL(如 https://v.douyin.com/xxx/)。文案/BGM 提取时用于原子「重解析新鲜音轨 + 中转到对象存储」,避免把已过期/被预览占用的 CDN 直链交给 Infer。"
        },
        "download_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Download Type",
          "description": "可选下载类型标记(前端兼容字段,后端可忽略)"
        },
        "extract_bgm": {
          "type": "boolean",
          "title": "Extract Bgm",
          "description": "是否提取背景音乐(默认不提取)",
          "default": false
        },
        "extract_transcript": {
          "type": "boolean",
          "title": "Extract Transcript",
          "description": "是否提取口播文案(默认不提取)",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "title": "ExtractMediaRequest",
      "description": "提取媒体信息请求"
    },
    "ExtractionAnalyzeRequest": {
      "properties": {
        "url": {
          "type": "string",
          "title": "Url",
          "description": "视频/分享 URL"
        },
        "skip_bgm_separation": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Skip Bgm Separation",
          "description": "[已废弃/忽略] /extraction 不做 BGM 分离与任何下载上传。需要人声/伴奏分离请调用独立能力 extract_bgm 或 vocal_separate。",
          "deprecated": true
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "title": "ExtractionAnalyzeRequest",
      "description": "分析提取请求:纯解析平台元数据与媒体直链,不下载、不上传对象存储。"
    },
    "ExtractionListResponse": {
      "properties": {
        "results": {
          "items": {
            "$ref": "#/components/schemas/ExtractionResultResponse"
          },
          "type": "array",
          "title": "Results",
          "description": "结果列表"
        },
        "total": {
          "type": "integer",
          "title": "Total",
          "description": "总数"
        },
        "page": {
          "type": "integer",
          "title": "Page",
          "description": "当前页",
          "default": 1
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size",
          "description": "每页数量",
          "default": 20
        }
      },
      "type": "object",
      "required": [
        "results",
        "total"
      ],
      "title": "ExtractionListResponse",
      "description": "提取列表响应"
    },
    "ExtractionResource": {
      "properties": {
        "type": {
          "type": "string",
          "title": "Type",
          "description": "类型: video, audio, bgm, cover, subtitle"
        },
        "format": {
          "type": "string",
          "title": "Format",
          "description": "格式: mp4, mp3, jpg, srt等"
        },
        "quality": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Quality",
          "description": "质量: 1080p, 720p等"
        },
        "size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Size",
          "description": "文件大小(字节)"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url",
          "description": "下载URL"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态: pending, ready, failed",
          "default": "pending"
        }
      },
      "type": "object",
      "required": [
        "type",
        "format"
      ],
      "title": "ExtractionResource",
      "description": "提取资源"
    },
    "ExtractionResultResponse": {
      "properties": {
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url",
          "description": "来源URL"
        },
        "source_type": {
          "type": "string",
          "title": "Source Type",
          "description": "来源类型: url, file"
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform",
          "description": "平台"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "提取ID"
        },
        "user_id": {
          "type": "integer",
          "title": "User Id",
          "description": "用户ID"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Title",
          "description": "标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "描述"
        },
        "author": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author",
          "description": "作者"
        },
        "author_avatar": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author Avatar",
          "description": "作者头像"
        },
        "author_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author Id",
          "description": "作者ID"
        },
        "views": {
          "type": "integer",
          "title": "Views",
          "description": "播放量",
          "default": 0
        },
        "likes": {
          "type": "integer",
          "title": "Likes",
          "description": "点赞数",
          "default": 0
        },
        "duration": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "时长(秒)"
        },
        "duration_formatted": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration Formatted",
          "description": "格式化时长"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "封面图"
        },
        "resources": {
          "items": {
            "$ref": "#/components/schemas/ExtractionResource"
          },
          "type": "array",
          "title": "Resources",
          "description": "资源列表"
        },
        "extracted_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Extracted Text",
          "description": "提取的文本"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "pending"
        },
        "progress": {
          "type": "integer",
          "title": "Progress",
          "description": "进度",
          "default": 0
        },
        "current_step": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Step",
          "description": "当前步骤"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message",
          "description": "错误信息"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At",
          "description": "完成时间"
        }
      },
      "type": "object",
      "required": [
        "source_type",
        "id",
        "user_id",
        "created_at"
      ],
      "title": "ExtractionResultResponse",
      "description": "提取结果响应"
    },
    "FadeRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "fade_in_duration": {
          "type": "number",
          "minimum": 0.0,
          "title": "Fade In Duration",
          "description": "淡入时长(秒)",
          "default": 1.0
        },
        "fade_out_duration": {
          "type": "number",
          "minimum": 0.0,
          "title": "Fade Out Duration",
          "description": "淡出时长(秒)",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "FadeRequest",
      "description": "淡入淡出请求"
    },
    "FilterRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "filter_type": {
          "type": "string",
          "title": "Filter Type",
          "default": "blur"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "FilterRequest"
    },
    "ForbiddenWordRequest": {
      "properties": {
        "text": {
          "type": "string",
          "title": "Text"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "ForbiddenWordRequest"
    },
    "FormatConvertRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp4"
        },
        "preserve_quality": {
          "type": "boolean",
          "title": "Preserve Quality",
          "default": true
        },
        "compatibility_mode": {
          "type": "boolean",
          "title": "Compatibility Mode",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "FormatConvertRequest",
      "description": "视频格式转换请求"
    },
    "HTTPValidationError": {
      "properties": {
        "detail": {
          "items": {
            "$ref": "#/components/schemas/ValidationError"
          },
          "type": "array",
          "title": "Detail"
        }
      },
      "type": "object",
      "title": "HTTPValidationError"
    },
    "HealthResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "description": "操作是否成功",
          "default": true
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "服务状态",
          "default": "healthy"
        },
        "version": {
          "type": "string",
          "title": "Version",
          "description": "服务版本",
          "default": "1.0.0"
        },
        "timestamp": {
          "type": "string",
          "title": "Timestamp",
          "description": "检查时间戳"
        }
      },
      "type": "object",
      "required": [
        "timestamp"
      ],
      "title": "HealthResponse",
      "description": "健康检查响应"
    },
    "ImageAIProcessingMode": {
      "type": "string",
      "enum": [
        "fast",
        "standard",
        "quality"
      ],
      "title": "ImageAIProcessingMode",
      "description": "处理模式"
    },
    "ImageAITaskListResponse": {
      "properties": {
        "tasks": {
          "items": {
            "$ref": "#/components/schemas/ImageAITaskResponse"
          },
          "type": "array",
          "title": "Tasks"
        },
        "total": {
          "type": "integer",
          "title": "Total"
        },
        "page": {
          "type": "integer",
          "title": "Page"
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size"
        }
      },
      "type": "object",
      "required": [
        "tasks",
        "total",
        "page",
        "page_size"
      ],
      "title": "ImageAITaskListResponse",
      "description": "AI图片任务列表响应"
    },
    "ImageAITaskResponse": {
      "properties": {
        "id": {
          "type": "integer",
          "title": "Id"
        },
        "task_type": {
          "$ref": "#/components/schemas/ImageAITaskType"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode"
        },
        "source_image_url": {
          "type": "string",
          "title": "Source Image Url"
        },
        "source_width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Width"
        },
        "source_height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Height"
        },
        "result_image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Image Url"
        },
        "result_width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Width"
        },
        "result_height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Height"
        },
        "processing_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Params"
        },
        "progress": {
          "type": "number",
          "title": "Progress",
          "default": 0.0
        },
        "current_step": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Step"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At"
        }
      },
      "type": "object",
      "required": [
        "id",
        "task_type",
        "status",
        "processing_mode",
        "source_image_url",
        "created_at",
        "updated_at"
      ],
      "title": "ImageAITaskResponse",
      "description": "AI图片任务响应"
    },
    "ImageAITaskStatus": {
      "type": "string",
      "enum": [
        "pending",
        "processing",
        "completed",
        "failed"
      ],
      "title": "ImageAITaskStatus",
      "description": "任务状态"
    },
    "ImageAITaskType": {
      "type": "string",
      "enum": [
        "background_remove",
        "image_extend",
        "image_recolor",
        "image_upscale",
        "object_remove",
        "image_enhance"
      ],
      "title": "ImageAITaskType",
      "description": "AI图片处理任务类型"
    },
    "ImageAIUploadResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "图片已上传,任务处理中"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "ImageAIUploadResponse",
      "description": "图片上传响应"
    },
    "ImageEnhanceRequest": {
      "properties": {
        "image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Url",
          "description": "图片URL"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/webp",
          "default": "png"
        },
        "enhance_type": {
          "$ref": "#/components/schemas/EnhanceType",
          "default": "auto"
        },
        "sharpen_strength": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Sharpen Strength",
          "description": "锐化强度",
          "default": 0.5
        },
        "denoise_strength": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Denoise Strength",
          "description": "降噪强度",
          "default": 0.3
        },
        "color_enhance": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Color Enhance",
          "description": "色彩增强",
          "default": 0.2
        },
        "face_enhance": {
          "type": "boolean",
          "title": "Face Enhance",
          "description": "是否增强人脸",
          "default": true
        }
      },
      "type": "object",
      "title": "ImageEnhanceRequest",
      "description": "图像增强请求"
    },
    "ImageEnhanceResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "ImageEnhanceResponse",
      "description": "图像增强响应"
    },
    "ImageExtendRequest": {
      "properties": {
        "image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Url",
          "description": "图片URL"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/webp",
          "default": "png"
        },
        "direction": {
          "$ref": "#/components/schemas/ExtendDirection",
          "description": "扩展方向",
          "default": "right"
        },
        "extend_ratio": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.1,
          "title": "Extend Ratio",
          "description": "扩展比例",
          "default": 0.5
        },
        "prompt": {
          "type": "string",
          "title": "Prompt",
          "description": "内容提示词",
          "default": ""
        },
        "negative_prompt": {
          "type": "string",
          "title": "Negative Prompt",
          "description": "负面提示词",
          "default": ""
        }
      },
      "type": "object",
      "title": "ImageExtendRequest",
      "description": "图像扩展请求"
    },
    "ImageExtendResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "ImageExtendResponse",
      "description": "图像扩展响应"
    },
    "ImageGenerateRequest": {
      "properties": {
        "prompt": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Prompt"
        },
        "negative_prompt": {
          "type": "string",
          "maxLength": 2000,
          "title": "Negative Prompt",
          "description": "仅 Infer/Krea 生效",
          "default": ""
        },
        "width": {
          "type": "integer",
          "maximum": 1024.0,
          "minimum": 256.0,
          "title": "Width",
          "description": "宽(调用方指定,≤1K;GeekAI 按 GPT-Image-2.5 约束修正)",
          "default": 1024
        },
        "height": {
          "type": "integer",
          "maximum": 1024.0,
          "minimum": 256.0,
          "title": "Height",
          "description": "高(调用方指定,≤1K;GeekAI 按 GPT-Image-2.5 约束修正)",
          "default": 1024
        },
        "num_inference_steps": {
          "type": "integer",
          "maximum": 16.0,
          "minimum": 1.0,
          "title": "Num Inference Steps",
          "description": "仅 Infer/Krea 生效",
          "default": 8
        },
        "guidance_scale": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.0,
          "title": "Guidance Scale",
          "description": "仅 Infer/Krea 生效",
          "default": 0.0
        },
        "seed": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Seed",
          "description": "仅 Infer/Krea 生效"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "png/jpg/webp",
          "default": "png"
        },
        "quality": {
          "type": "string",
          "title": "Quality",
          "description": "仅支持 low(本环境约束)",
          "default": "low"
        },
        "model": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "gpt-image-2",
                "gpt-image-2.5-sunburst"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Model",
          "description": "GeekAI 生图模型;省略则用 SH_GEEKAI_IMAGE_MODEL(默认 gpt-image-2)"
        }
      },
      "type": "object",
      "required": [
        "prompt"
      ],
      "title": "ImageGenerateRequest",
      "description": "文生图请求。\n\n走 GeekAI(quality 固定 low,size 由调用方指定且 ≤1K)。\nGeekAI 模型由调用方指定:gpt-image-2 / gpt-image-2.5-sunburst;省略则用 SH_GEEKAI_IMAGE_MODEL。\n\n文档:\n- https://docs.geekai.co/cn/docs/image/openai/gpt-image-2\n- https://docs.geekai.co/cn/docs/image/openai/gpt-image-2.5\n不支持 negative_prompt/seed/aspect_ratio(GeekAI 路径会忽略)。\nsize 由 width/height 指定,≤1K;网关按 GPT-Image-2.5 约束修正\n(16 倍数、像素 655360–8294400、宽高比 1:3–3:1)。"
    },
    "ImageOcrRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "title": "Image Url",
          "description": "图片 URL"
        },
        "task": {
          "type": "string",
          "enum": [
            "text",
            "table",
            "formula",
            "document"
          ],
          "title": "Task",
          "default": "text"
        },
        "model": {
          "type": "string",
          "enum": [
            "glm-ocr",
            "pp-ocrv5"
          ],
          "title": "Model",
          "description": "自主选型:glm-ocr | pp-ocrv5",
          "default": "glm-ocr"
        },
        "prompt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt"
        },
        "return_layout": {
          "type": "boolean",
          "title": "Return Layout",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ImageOcrRequest"
    },
    "ImageRecolorRequest": {
      "properties": {
        "image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Url",
          "description": "图片URL"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/webp",
          "default": "png"
        },
        "target_colors": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Target Colors",
          "description": "目标颜色列表 如 ['#FF0000', '#00FF00']",
          "default": []
        },
        "style": {
          "$ref": "#/components/schemas/RecolorStyle",
          "default": "natural"
        },
        "strength": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.1,
          "title": "Strength",
          "description": "重着色强度",
          "default": 0.8
        },
        "preserve_luminance": {
          "type": "boolean",
          "title": "Preserve Luminance",
          "description": "保持原图亮度",
          "default": true
        }
      },
      "type": "object",
      "title": "ImageRecolorRequest",
      "description": "图像重着色请求"
    },
    "ImageRecolorResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "ImageRecolorResponse",
      "description": "图像重着色响应"
    },
    "ImageRegionModel": {
      "properties": {
        "x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "X"
        },
        "y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Y"
        },
        "width": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Width"
        },
        "height": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Height"
        }
      },
      "type": "object",
      "required": [
        "x",
        "y",
        "width",
        "height"
      ],
      "title": "ImageRegionModel",
      "description": "图片水印区域(像素坐标)"
    },
    "ImageUpscaleRequest": {
      "properties": {
        "image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Url",
          "description": "图片URL"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/webp",
          "default": "png"
        },
        "scale": {
          "type": "integer",
          "maximum": 8.0,
          "minimum": 2.0,
          "title": "Scale",
          "description": "放大倍数 2/4/8",
          "default": 4
        },
        "face_enhance": {
          "type": "boolean",
          "title": "Face Enhance",
          "description": "是否增强人脸",
          "default": false
        },
        "denoise_strength": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Denoise Strength",
          "description": "降噪强度",
          "default": 0.5
        }
      },
      "type": "object",
      "title": "ImageUpscaleRequest",
      "description": "图像放大请求"
    },
    "ImageUpscaleResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "result_width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Width"
        },
        "result_height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Height"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "ImageUpscaleResponse",
      "description": "图像放大响应"
    },
    "ImageWatermarkRemoveRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "regions": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/components/schemas/ImageRegionModel"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Regions",
          "description": "手动指定的水印矩形,优先于 mask_url / auto_detect"
        },
        "mask_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Mask Url",
          "description": "自定义掩码图 URL(白=待修复)"
        },
        "auto_detect": {
          "type": "boolean",
          "title": "Auto Detect",
          "description": "regions/mask_url 均为空时自动检测文字水印",
          "default": true
        },
        "dilate_px": {
          "type": "integer",
          "maximum": 64.0,
          "minimum": 0.0,
          "title": "Dilate Px",
          "description": "掩码膨胀像素",
          "default": 6
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/jpeg/webp",
          "default": "png"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ImageWatermarkRemoveRequest",
      "description": "图片去水印请求(Media / LaMa)\n\n掩码优先级:regions > mask_url > auto_detect(OpenNoMark / OWLv2)。"
    },
    "ImageWatermarkRemoveTaskRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "regions": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Regions"
        },
        "mask_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Mask Url"
        },
        "auto_detect": {
          "type": "boolean",
          "title": "Auto Detect",
          "default": true
        },
        "dilate_px": {
          "type": "integer",
          "maximum": 64.0,
          "minimum": 0.0,
          "title": "Dilate Px",
          "default": 6
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "png"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ImageWatermarkRemoveTaskRequest"
    },
    "InpaintMode": {
      "type": "string",
      "enum": [
        "auto",
        "fast",
        "quality"
      ],
      "title": "InpaintMode",
      "description": "修复模式"
    },
    "LinkExtractionRequest": {
      "properties": {
        "url": {
          "type": "string",
          "title": "Url"
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "title": "LinkExtractionRequest"
    },
    "LosslessZoomRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "scale": {
          "type": "number",
          "maximum": 8.0,
          "minimum": 1.0,
          "title": "Scale",
          "default": 2.0
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "LosslessZoomRequest",
      "description": "无损放大请求"
    },
    "MarketingRequest": {
      "properties": {
        "product": {
          "type": "string",
          "title": "Product"
        },
        "scene": {
          "type": "string",
          "title": "Scene",
          "default": "general"
        }
      },
      "type": "object",
      "required": [
        "product"
      ],
      "title": "MarketingRequest"
    },
    "MediaAssetCreate": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/MediaType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "资产名称"
        },
        "url": {
          "type": "string",
          "title": "Url",
          "description": "资产URL"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图URL"
        },
        "duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "时长(秒)"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width",
          "description": "宽度"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height",
          "description": "高度"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "url"
      ],
      "title": "MediaAssetCreate",
      "description": "创建媒体资产"
    },
    "MediaAssetResponse": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/MediaType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "资产名称"
        },
        "url": {
          "type": "string",
          "title": "Url",
          "description": "资产URL"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图URL"
        },
        "duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "时长(秒)"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width",
          "description": "宽度"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height",
          "description": "高度"
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "资产ID"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "url",
        "id",
        "created_at"
      ],
      "title": "MediaAssetResponse",
      "description": "媒体资产响应"
    },
    "MediaResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "description": "操作是否成功",
          "default": true
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Data",
          "description": "响应数据"
        },
        "message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Message",
          "description": "响应消息"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error",
          "description": "错误信息"
        }
      },
      "type": "object",
      "title": "MediaResponse",
      "description": "媒体处理统一响应模型\n\n用于视频压缩、裁剪、转换等操作的响应",
      "example": {
        "data": {
          "duration": 60.5,
          "file_size": 1024000,
          "output_url": "https://example.com/output.mp4"
        },
        "message": "处理成功",
        "success": true
      }
    },
    "MediaType": {
      "type": "string",
      "enum": [
        "video",
        "image",
        "audio"
      ],
      "title": "MediaType",
      "description": "媒体类型"
    },
    "MergeAudioRequest": {
      "properties": {
        "audio_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "minItems": 2,
          "title": "Audio Urls"
        },
        "interval": {
          "type": "number",
          "minimum": 0.0,
          "title": "Interval",
          "default": 0.0
        },
        "fade_duration": {
          "type": "number",
          "minimum": 0.0,
          "title": "Fade Duration",
          "default": 0.5
        },
        "crossfade": {
          "type": "boolean",
          "title": "Crossfade",
          "default": false
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_urls"
      ],
      "title": "MergeAudioRequest",
      "description": "音频拼接请求"
    },
    "MessageInfo": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "role": {
          "type": "string",
          "title": "Role"
        },
        "content": {
          "type": "string",
          "title": "Content"
        },
        "tokens": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tokens"
        },
        "tool_calls": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Calls"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "id",
        "role",
        "content",
        "tokens",
        "tool_calls",
        "created_at"
      ],
      "title": "MessageInfo",
      "description": "消息信息"
    },
    "MixAudioRequest": {
      "properties": {
        "main_audio_url": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Main Audio Url"
        },
        "background_audio_url": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Background Audio Url"
        },
        "original_audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Original Audio Url"
        },
        "background_music_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Background Music Url"
        },
        "main_volume": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Main Volume",
          "default": 1.0
        },
        "background_volume": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Background Volume",
          "default": 0.3
        },
        "original_volume": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 3.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Original Volume"
        },
        "bgm_volume": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 3.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Bgm Volume"
        },
        "main_delay": {
          "type": "number",
          "minimum": 0.0,
          "title": "Main Delay",
          "default": 0.0
        },
        "original_delay": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Original Delay"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "title": "MixAudioRequest",
      "description": "混音请求(添加背景音乐)\n\n兼容前端历史字段名:original_audio_url / background_music_url 等。"
    },
    "MosaicRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "block_size": {
          "type": "integer",
          "maximum": 128.0,
          "minimum": 2.0,
          "title": "Block Size",
          "default": 16
        },
        "x": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "X"
        },
        "y": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Y"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "MosaicRequest"
    },
    "MusicInfo": {
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name",
          "description": "原声名称"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Title",
          "description": "原声标题(同 name)"
        },
        "author": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author",
          "description": "原声作者"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url",
          "description": "原声直链(多为 ies-music mp3)"
        },
        "cover": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cover",
          "description": "原声封面"
        },
        "avatar": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Avatar",
          "description": "原声作者头像"
        }
      },
      "type": "object",
      "title": "MusicInfo",
      "description": "原声/BGM 元数据"
    },
    "ObjectRemoveRequest": {
      "properties": {
        "image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Url",
          "description": "图片URL"
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ImageAIProcessingMode",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式 png/jpg/webp",
          "default": "png"
        },
        "mask_data": {
          "type": "string",
          "title": "Mask Data",
          "description": "mask数据 base64编码"
        },
        "inpaint_mode": {
          "$ref": "#/components/schemas/InpaintMode",
          "default": "auto"
        }
      },
      "type": "object",
      "required": [
        "mask_data"
      ],
      "title": "ObjectRemoveRequest",
      "description": "对象移除请求"
    },
    "ObjectRemoveResponse": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "$ref": "#/components/schemas/ImageAITaskStatus"
        },
        "result_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Url"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "ObjectRemoveResponse",
      "description": "对象移除响应"
    },
    "PendingConfirmationPayload": {
      "properties": {
        "tool_call_id": {
          "type": "string",
          "title": "Tool Call Id"
        },
        "tool_name": {
          "type": "string",
          "title": "Tool Name"
        },
        "arguments": {
          "additionalProperties": true,
          "type": "object",
          "title": "Arguments"
        },
        "confirm_message": {
          "type": "string",
          "title": "Confirm Message",
          "default": ""
        },
        "cost_estimate": {
          "additionalProperties": true,
          "type": "object",
          "title": "Cost Estimate"
        },
        "task_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Id"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "tool_call_id",
        "tool_name"
      ],
      "title": "PendingConfirmationPayload",
      "description": "SSE/HTTP 暴露的待确认工具载荷"
    },
    "PortraitAnimationRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "PortraitAnimationRequest",
      "description": "人像动画化请求"
    },
    "PostSettings": {
      "properties": {
        "subtitle_enabled": {
          "type": "boolean",
          "title": "Subtitle Enabled",
          "default": true
        },
        "subtitle_style_id": {
          "type": "string",
          "title": "Subtitle Style Id",
          "default": "default"
        },
        "burn_in": {
          "type": "boolean",
          "title": "Burn In",
          "default": true
        },
        "bgm_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bgm Url"
        },
        "bgm_volume": {
          "type": "number",
          "title": "Bgm Volume",
          "default": 0.12
        },
        "width": {
          "type": "integer",
          "title": "Width",
          "default": 1080
        },
        "height": {
          "type": "integer",
          "title": "Height",
          "default": 1920
        },
        "fps": {
          "type": "integer",
          "title": "Fps",
          "default": 30
        }
      },
      "type": "object",
      "title": "PostSettings"
    },
    "PresignRequest": {
      "properties": {
        "filename": {
          "type": "string",
          "title": "Filename",
          "description": "原始文件名(用于扩展名)"
        },
        "content_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Content Type",
          "description": "MIME 类型"
        },
        "size": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Size",
          "description": "声明的字节大小"
        },
        "folder": {
          "type": "string",
          "title": "Folder",
          "description": "对象前缀目录",
          "default": "uploads"
        },
        "mode": {
          "type": "string",
          "title": "Mode",
          "description": "put | post(Web 用 put)",
          "default": "put"
        }
      },
      "type": "object",
      "required": [
        "filename"
      ],
      "title": "PresignRequest"
    },
    "ProcessingMode": {
      "type": "string",
      "enum": [
        "fast",
        "standard",
        "enhanced"
      ],
      "title": "ProcessingMode",
      "description": "处理模式枚举(与推理 quality / 算法对齐)"
    },
    "ProductReviewRequest": {
      "properties": {
        "product": {
          "type": "string",
          "title": "Product"
        }
      },
      "type": "object",
      "required": [
        "product"
      ],
      "title": "ProductReviewRequest"
    },
    "ProjectCreate": {
      "properties": {
        "project_type": {
          "type": "string",
          "title": "Project Type",
          "description": "项目类型: image, video"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "initial_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Initial Message",
          "description": "初始消息"
        },
        "aspect_ratio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Aspect Ratio",
          "description": "画面比例 (视频项目)"
        }
      },
      "type": "object",
      "required": [
        "project_type",
        "title"
      ],
      "title": "ProjectCreate",
      "description": "创建项目"
    },
    "ProjectDetailResponse": {
      "properties": {
        "project_type": {
          "type": "string",
          "title": "Project Type",
          "description": "项目类型: image, video"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "项目ID"
        },
        "user_id": {
          "type": "integer",
          "title": "User Id",
          "description": "用户ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "draft"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result",
          "description": "生成结果"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At",
          "description": "更新时间"
        },
        "data": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "title": "Data",
          "description": "反序列化后的项目数据"
        },
        "messages": {
          "items": {
            "$ref": "#/components/schemas/AgentMessageResponse"
          },
          "type": "array",
          "title": "Messages",
          "description": "消息列表"
        }
      },
      "type": "object",
      "required": [
        "project_type",
        "title",
        "id",
        "user_id",
        "created_at",
        "updated_at"
      ],
      "title": "ProjectDetailResponse",
      "description": "项目详情响应(含消息)"
    },
    "ProjectExportRequest": {
      "properties": {
        "format": {
          "type": "string",
          "title": "Format",
          "description": "导出格式: png, jpg, mp4, webm",
          "default": "mp4"
        },
        "quality": {
          "type": "string",
          "title": "Quality",
          "description": "质量: low, medium, high",
          "default": "high"
        },
        "variant_index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Variant Index",
          "description": "变体索引"
        },
        "resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Resolution",
          "description": "分辨率 (视频项目)"
        },
        "include_captions": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Include Captions",
          "description": "包含字幕"
        }
      },
      "type": "object",
      "title": "ProjectExportRequest",
      "description": "项目导出请求"
    },
    "ProjectExportResponse": {
      "properties": {
        "task_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Id",
          "description": "任务ID"
        },
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Status",
          "description": "任务状态"
        },
        "progress": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Progress",
          "description": "任务进度"
        },
        "download_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Download Url",
          "description": "下载URL"
        },
        "file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "File Size",
          "description": "文件大小"
        },
        "expires_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Expires At",
          "description": "过期时间"
        }
      },
      "type": "object",
      "title": "ProjectExportResponse",
      "description": "项目导出响应"
    },
    "ProjectListResponse": {
      "properties": {
        "projects": {
          "items": {
            "$ref": "#/components/schemas/ProjectResponse"
          },
          "type": "array",
          "title": "Projects",
          "description": "项目列表"
        },
        "total": {
          "type": "integer",
          "title": "Total",
          "description": "总数"
        },
        "page": {
          "type": "integer",
          "title": "Page",
          "description": "当前页",
          "default": 1
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size",
          "description": "每页数量",
          "default": 20
        }
      },
      "type": "object",
      "required": [
        "projects",
        "total"
      ],
      "title": "ProjectListResponse",
      "description": "项目列表响应"
    },
    "ProjectResponse": {
      "properties": {
        "project_type": {
          "type": "string",
          "title": "Project Type",
          "description": "项目类型: image, video"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "项目ID"
        },
        "user_id": {
          "type": "integer",
          "title": "User Id",
          "description": "用户ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "draft"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result",
          "description": "生成结果"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At",
          "description": "更新时间"
        },
        "data": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "title": "Data",
          "description": "反序列化后的项目数据"
        }
      },
      "type": "object",
      "required": [
        "project_type",
        "title",
        "id",
        "user_id",
        "created_at",
        "updated_at"
      ],
      "title": "ProjectResponse",
      "description": "项目响应"
    },
    "ProjectUpdate": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ],
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "aspect_ratio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Aspect Ratio",
          "description": "画面比例"
        },
        "caption_enabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Caption Enabled",
          "description": "是否显示字幕"
        }
      },
      "type": "object",
      "title": "ProjectUpdate",
      "description": "更新项目"
    },
    "QuickRenderResponse": {
      "properties": {
        "project_id": {
          "type": "integer",
          "title": "Project Id"
        },
        "job_id": {
          "type": "integer",
          "title": "Job Id"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "default": "pending"
        },
        "estimated_credits": {
          "type": "integer",
          "title": "Estimated Credits",
          "default": 15
        },
        "kind": {
          "type": "string",
          "title": "Kind",
          "default": "workflow"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "Studio 成片任务已提交"
        },
        "ui_hints": {
          "additionalProperties": true,
          "type": "object",
          "title": "Ui Hints"
        }
      },
      "type": "object",
      "required": [
        "project_id",
        "job_id"
      ],
      "title": "QuickRenderResponse"
    },
    "RecolorStyle": {
      "type": "string",
      "enum": [
        "natural",
        "artistic",
        "vintage",
        "vibrant"
      ],
      "title": "RecolorStyle",
      "description": "重着色风格"
    },
    "RenderMode": {
      "type": "string",
      "enum": [
        "still",
        "kenburns",
        "i2v",
        "clip"
      ],
      "title": "RenderMode"
    },
    "RenderPolicy": {
      "type": "string",
      "enum": [
        "kenburns",
        "hybrid",
        "i2v"
      ],
      "title": "RenderPolicy"
    },
    "ResizeRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height"
        },
        "scale": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Scale"
        },
        "maintain_aspect": {
          "type": "boolean",
          "title": "Maintain Aspect",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ResizeRequest"
    },
    "ResolveRequest": {
      "properties": {
        "url": {
          "type": "string",
          "title": "Url",
          "description": "视频/图文分享链接"
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "title": "ResolveRequest",
      "description": "统一解析请求"
    },
    "ResolveResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "description": "是否成功"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Title",
          "description": "标题"
        },
        "type": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "video",
                "audio",
                "image"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Type",
          "description": "内容类型"
        },
        "video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Url",
          "description": "视频直链URL(可播优先)"
        },
        "audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Url",
          "description": "作品原声/默认可播音频(抖音多为 ies-music mp3)"
        },
        "audio_track_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Track Url",
          "description": "视频音轨直链(media-audio 等,供 ASR;可选)"
        },
        "bgm_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bgm Url",
          "description": "人声分离后的伴奏直链;L0 解析不返回,需 extract_bgm"
        },
        "music": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/MusicInfo"
            },
            {
              "type": "null"
            }
          ],
          "description": "原声元数据"
        },
        "cover_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cover Url",
          "description": "封面图URL"
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform",
          "description": "平台标识 (douyin/kuaishou/xiaohongshu/bilibili/tiktok/youtube)"
        },
        "work_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Work Type",
          "description": "作品类型 video/images"
        },
        "image_urls": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Urls",
          "description": "图文原图列表"
        },
        "author": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author",
          "description": "作者昵称"
        },
        "author_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author Id",
          "description": "作者ID"
        },
        "author_avatar": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author Avatar",
          "description": "作者头像URL"
        },
        "author_signature": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author Signature",
          "description": "作者签名"
        },
        "author_age": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Author Age",
          "description": "作者年龄(若平台提供)"
        },
        "duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "时长(秒)"
        },
        "duration_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration Text",
          "description": "时长文案,如 30秒"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width",
          "description": "视频宽度"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height",
          "description": "视频高度"
        },
        "view_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "View Count",
          "description": "播放量"
        },
        "like_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Like Count",
          "description": "点赞量"
        },
        "comment_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Comment Count",
          "description": "评论数"
        },
        "share_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Share Count",
          "description": "分享数"
        },
        "collect_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Collect Count",
          "description": "收藏数"
        },
        "download_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Download Count",
          "description": "下载数"
        },
        "release_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Release Time",
          "description": "发布时间 (格式: YYYY-MM-DD HH:MM:SS)"
        },
        "video_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Id",
          "description": "作品/视频 ID"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url",
          "description": "用户输入的分享链(规范化)"
        },
        "exec_time_ms": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Exec Time Ms",
          "description": "解析耗时毫秒"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "description": "响应消息",
          "default": "获取成功"
        }
      },
      "type": "object",
      "required": [
        "success"
      ],
      "title": "ResolveResponse",
      "description": "统一 L0 解析响应(纯直链,不转存)。\n\n- video_url / audio_url:原始平台 CDN(可播优先)\n- audio_track_url:视频音轨(可选,供 ASR)\n- 禁止返回本站 proxy/TOS 改写地址"
    },
    "RotateRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "angle": {
          "type": "number",
          "title": "Angle",
          "default": 90
        },
        "expand": {
          "type": "boolean",
          "title": "Expand",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "RotateRequest"
    },
    "SaveToAssetsRequest": {
      "properties": {
        "resource_types": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Resource Types",
          "description": "要保存的资源类型"
        },
        "folder_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Folder Id",
          "description": "目标文件夹ID"
        }
      },
      "type": "object",
      "required": [
        "resource_types"
      ],
      "title": "SaveToAssetsRequest",
      "description": "保存到资源库请求"
    },
    "SaveToAssetsResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "description": "是否成功"
        },
        "saved_count": {
          "type": "integer",
          "title": "Saved Count",
          "description": "保存数量",
          "default": 0
        },
        "asset_ids": {
          "items": {
            "type": "integer"
          },
          "type": "array",
          "title": "Asset Ids",
          "description": "资源ID列表"
        }
      },
      "type": "object",
      "required": [
        "success"
      ],
      "title": "SaveToAssetsResponse",
      "description": "保存到资源库响应"
    },
    "ScriptDoc": {
      "properties": {
        "full_voiceover_text": {
          "type": "string",
          "title": "Full Voiceover Text",
          "default": ""
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "zh"
        }
      },
      "type": "object",
      "title": "ScriptDoc"
    },
    "ScriptSegmentCreate": {
      "properties": {
        "time_start": {
          "type": "number",
          "title": "Time Start",
          "description": "开始时间(秒)"
        },
        "time_end": {
          "type": "number",
          "title": "Time End",
          "description": "结束时间(秒)"
        },
        "text": {
          "type": "string",
          "title": "Text",
          "description": "脚本文本"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id",
          "description": "配音ID"
        }
      },
      "type": "object",
      "required": [
        "time_start",
        "time_end",
        "text"
      ],
      "title": "ScriptSegmentCreate",
      "description": "创建脚本片段"
    },
    "ScriptSegmentResponse": {
      "properties": {
        "time_start": {
          "type": "number",
          "title": "Time Start",
          "description": "开始时间(秒)"
        },
        "time_end": {
          "type": "number",
          "title": "Time End",
          "description": "结束时间(秒)"
        },
        "text": {
          "type": "string",
          "title": "Text",
          "description": "脚本文本"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id",
          "description": "配音ID"
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "片段ID"
        }
      },
      "type": "object",
      "required": [
        "time_start",
        "time_end",
        "text",
        "id"
      ],
      "title": "ScriptSegmentResponse",
      "description": "脚本片段响应"
    },
    "SegmentConfig": {
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "title": "Text",
          "description": "文本内容"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id",
          "description": "音色ID,为空则使用全局音色"
        },
        "speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed",
          "description": "语速 (0.5-2.0)",
          "default": 1.0
        },
        "pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Pitch",
          "description": "音调 (-12 ~ +12)",
          "default": 0.0
        },
        "pause_after": {
          "type": "number",
          "maximum": 5.0,
          "minimum": 0.0,
          "title": "Pause After",
          "description": "句后停顿(秒)",
          "default": 0.0
        },
        "emotion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Emotion",
          "description": "情感: happy, sad, neutral, angry"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "SegmentConfig",
      "description": "单句配置"
    },
    "SessionInfo": {
      "properties": {
        "session_key": {
          "type": "string",
          "title": "Session Key"
        },
        "agent_id": {
          "type": "string",
          "title": "Agent Id"
        },
        "user_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "User Id"
        },
        "message_count": {
          "type": "integer",
          "title": "Message Count"
        },
        "total_tokens": {
          "type": "integer",
          "title": "Total Tokens"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At"
        }
      },
      "type": "object",
      "required": [
        "session_key",
        "agent_id",
        "user_id",
        "message_count",
        "total_tokens",
        "created_at",
        "updated_at"
      ],
      "title": "SessionInfo",
      "description": "会话信息"
    },
    "Shot": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "order": {
          "type": "integer",
          "title": "Order",
          "default": 0
        },
        "script_text": {
          "type": "string",
          "title": "Script Text",
          "default": ""
        },
        "visual_prompt": {
          "type": "string",
          "title": "Visual Prompt",
          "default": ""
        },
        "visual_asset_ids": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Visual Asset Ids"
        },
        "render_mode": {
          "$ref": "#/components/schemas/RenderMode",
          "default": "kenburns"
        },
        "still_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Still Url"
        },
        "motion_prompt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Motion Prompt"
        },
        "clip_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Clip Url"
        },
        "camera": {
          "type": "string",
          "title": "Camera",
          "default": "push_in"
        },
        "transition": {
          "type": "string",
          "title": "Transition",
          "default": "fade"
        },
        "start_ms": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Start Ms"
        },
        "end_ms": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "End Ms"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "default": "pending"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error"
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "title": "Shot"
    },
    "ShotExtractionRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "threshold": {
          "type": "number",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Threshold",
          "default": 12.8
        },
        "min_shot_length": {
          "type": "number",
          "minimum": 0.1,
          "title": "Min Shot Length",
          "default": 0.35
        },
        "max_shot_length": {
          "type": "number",
          "minimum": 1.0,
          "title": "Max Shot Length",
          "default": 12.5
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "ShotExtractionRequest",
      "description": "镜头提取请求"
    },
    "ShotPatch": {
      "properties": {
        "script_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Script Text"
        },
        "visual_prompt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Visual Prompt"
        },
        "render_mode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Render Mode"
        },
        "visual_asset_ids": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Visual Asset Ids"
        },
        "still_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Still Url"
        }
      },
      "type": "object",
      "title": "ShotPatch"
    },
    "SimpleTTSRequest": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "要合成的文本"
        },
        "voice_id": {
          "type": "string",
          "title": "Voice Id",
          "description": "音色ID",
          "default": "xiaoxiao"
        },
        "speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed",
          "description": "语速",
          "default": 1.0
        },
        "pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Pitch",
          "description": "音调",
          "default": 0.0
        },
        "emotion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Emotion",
          "description": "情感(qwen3)"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式",
          "default": "mp3"
        },
        "engine": {
          "type": "string",
          "title": "Engine",
          "description": "edge | qwen3",
          "default": "edge"
        },
        "instruct": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruct",
          "description": "qwen3 指令"
        },
        "prompt_audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Audio Url",
          "description": "参考音频;有值时走 Qwen3 克隆合成"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "SimpleTTSRequest",
      "description": "简单 TTS 请求(Edge / Qwen3)"
    },
    "SmartOriginalRequest": {
      "properties": {
        "text": {
          "type": "string",
          "title": "Text"
        },
        "style": {
          "type": "string",
          "title": "Style",
          "default": "rewrite"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "SmartOriginalRequest"
    },
    "SmudgeRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "regions": {
          "items": {
            "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__RegionModel"
          },
          "type": "array",
          "title": "Regions"
        },
        "blur_intensity": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Blur Intensity",
          "default": 30
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "regions"
      ],
      "title": "SmudgeRequest",
      "description": "区域打码/模糊"
    },
    "SpeedRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "speed_factor": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed Factor",
          "description": "速度倍数"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "speed_factor"
      ],
      "title": "SpeedRequest",
      "description": "变速请求"
    },
    "SplitAudioRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "segment_duration": {
          "type": "number",
          "maximum": 3600.0,
          "exclusiveMinimum": 0.0,
          "title": "Segment Duration",
          "description": "每段时长(秒)",
          "default": 30.0
        },
        "parts": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 100.0,
              "minimum": 2.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Parts",
          "description": "等分为 N 段(优先)"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        },
        "max_segments": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Max Segments",
          "default": 50
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "SplitAudioRequest",
      "description": "音频按时间分割请求"
    },
    "StretchRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "target_ratio": {
          "type": "string",
          "title": "Target Ratio",
          "default": "16:9"
        },
        "mode": {
          "type": "string",
          "title": "Mode",
          "default": "crop"
        },
        "fill_color": {
          "type": "string",
          "title": "Fill Color",
          "default": "#000000"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "StretchRequest"
    },
    "StudioJobResponse": {
      "properties": {
        "job_id": {
          "type": "integer",
          "title": "Job Id"
        },
        "project_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Project Id"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "progress": {
          "type": "number",
          "title": "Progress",
          "default": 0
        },
        "current_node": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Node"
        },
        "current_step": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Step"
        },
        "output_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Url"
        },
        "payload": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/StudioProjectPayload-Output"
            },
            {
              "type": "null"
            }
          ]
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error"
        },
        "kind": {
          "type": "string",
          "title": "Kind",
          "default": "workflow"
        },
        "ui_hints": {
          "additionalProperties": true,
          "type": "object",
          "title": "Ui Hints"
        },
        "still_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Still Urls"
        }
      },
      "type": "object",
      "required": [
        "job_id",
        "status"
      ],
      "title": "StudioJobResponse"
    },
    "StudioProjectPayload-Output": {
      "properties": {
        "schema_version": {
          "type": "integer",
          "title": "Schema Version",
          "default": 1
        },
        "title": {
          "type": "string",
          "title": "Title",
          "default": "未命名成片"
        },
        "stage": {
          "$ref": "#/components/schemas/StudioStage",
          "default": "brief"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "default": "draft"
        },
        "render_policy": {
          "$ref": "#/components/schemas/RenderPolicy",
          "default": "kenburns"
        },
        "aspect_ratio": {
          "type": "string",
          "title": "Aspect Ratio",
          "default": "9:16"
        },
        "brief": {
          "$ref": "#/components/schemas/Brief"
        },
        "script": {
          "$ref": "#/components/schemas/ScriptDoc"
        },
        "visual_assets": {
          "items": {
            "$ref": "#/components/schemas/VisualAsset"
          },
          "type": "array",
          "title": "Visual Assets"
        },
        "shots": {
          "items": {
            "$ref": "#/components/schemas/Shot"
          },
          "type": "array",
          "title": "Shots"
        },
        "voice": {
          "$ref": "#/components/schemas/VoiceTrack"
        },
        "post": {
          "$ref": "#/components/schemas/PostSettings"
        },
        "subtitle_cues": {
          "items": {
            "$ref": "#/components/schemas/SubtitleCue"
          },
          "type": "array",
          "title": "Subtitle Cues"
        },
        "timeline": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Timeline"
        },
        "output_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Url"
        },
        "cover_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cover Url"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error"
        },
        "extracted": {
          "additionalProperties": true,
          "type": "object",
          "title": "Extracted"
        }
      },
      "type": "object",
      "title": "StudioProjectPayload"
    },
    "StudioProjectResponse": {
      "properties": {
        "project_id": {
          "type": "integer",
          "title": "Project Id"
        },
        "title": {
          "type": "string",
          "title": "Title"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "stage": {
          "type": "string",
          "title": "Stage"
        },
        "payload": {
          "$ref": "#/components/schemas/StudioProjectPayload-Output"
        },
        "estimated_credits": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Credits"
        }
      },
      "type": "object",
      "required": [
        "project_id",
        "title",
        "status",
        "stage",
        "payload"
      ],
      "title": "StudioProjectResponse"
    },
    "StudioQuickRenderRequest": {
      "properties": {
        "script": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Script"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "render_policy": {
          "$ref": "#/components/schemas/RenderPolicy",
          "default": "kenburns"
        },
        "voice_mode": {
          "$ref": "#/components/schemas/VoiceMode",
          "default": "tts"
        },
        "style_hint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Style Hint"
        },
        "aspect_ratio": {
          "type": "string",
          "title": "Aspect Ratio",
          "default": "9:16"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "zh"
        },
        "project_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Project Id"
        }
      },
      "type": "object",
      "title": "StudioQuickRenderRequest"
    },
    "StudioRunRequest": {
      "properties": {
        "from_stage": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "From Stage"
        },
        "to_stage": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "To Stage"
        },
        "shot_ids": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Shot Ids"
        }
      },
      "type": "object",
      "title": "StudioRunRequest"
    },
    "StudioStage": {
      "type": "string",
      "enum": [
        "brief",
        "script",
        "assets",
        "board",
        "post",
        "done",
        "failed"
      ],
      "title": "StudioStage"
    },
    "StyleTransferRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "style": {
          "type": "string",
          "title": "Style",
          "default": "oil_painting"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "StyleTransferRequest"
    },
    "SubtitleCue": {
      "properties": {
        "start_ms": {
          "type": "integer",
          "title": "Start Ms",
          "default": 0
        },
        "end_ms": {
          "type": "integer",
          "title": "End Ms",
          "default": 0
        },
        "text": {
          "type": "string",
          "title": "Text",
          "default": ""
        }
      },
      "type": "object",
      "title": "SubtitleCue"
    },
    "SubtitleDetectRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "SubtitleDetectRequest",
      "description": "字幕区域自动检测请求"
    },
    "SubtitleMode": {
      "type": "string",
      "enum": [
        "fast",
        "standard",
        "high"
      ],
      "title": "SubtitleMode",
      "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",
          "exclusiveMinimum": 0.0,
          "title": "Width",
          "description": "宽度像素"
        },
        "height": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Height",
          "description": "高度像素"
        }
      },
      "type": "object",
      "required": [
        "x",
        "y",
        "width",
        "height"
      ],
      "title": "SubtitleRegion",
      "description": "字幕区域(视频原始分辨率像素坐标)"
    },
    "SubtitleRemovalHistoryItem": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "source_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Video Url"
        },
        "result_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Video Url"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode"
        },
        "video_duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Duration"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status",
        "processing_mode"
      ],
      "title": "SubtitleRemovalHistoryItem"
    },
    "SubtitleRemovalHistoryResponse": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/components/schemas/SubtitleRemovalHistoryItem"
          },
          "type": "array",
          "title": "Items"
        },
        "total": {
          "type": "integer",
          "title": "Total"
        },
        "page": {
          "type": "integer",
          "title": "Page"
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size"
        }
      },
      "type": "object",
      "required": [
        "items",
        "total",
        "page",
        "page_size"
      ],
      "title": "SubtitleRemovalHistoryResponse"
    },
    "SubtitleRemovalRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url",
          "description": "视频 URL"
        },
        "region": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/SubtitleRegion"
            },
            {
              "type": "null"
            }
          ],
          "description": "显式字幕区域(像素);省略则 auto 自动检测"
        },
        "mode": {
          "$ref": "#/components/schemas/SubtitleMode",
          "description": "产品档位:fast(OpenCV) | standard(LaMa) | high(ProPainter)",
          "default": "standard"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式",
          "default": "mp4"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "SubtitleRemovalRequest",
      "description": "提交去字幕任务(公共仅 mode)"
    },
    "SubtitleRemovalTaskDetail": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "progress": {
          "type": "number",
          "title": "Progress",
          "default": 0
        },
        "current_step": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Step"
        },
        "source_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Video Url"
        },
        "video_duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Duration"
        },
        "video_width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Width"
        },
        "video_height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Height"
        },
        "subtitle_region": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Subtitle Region"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "default": "standard"
        },
        "inpaint_mode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Inpaint Mode"
        },
        "output_format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Format"
        },
        "result_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Video Url"
        },
        "result_file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result File Size"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds"
        },
        "frames_processed": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Frames Processed"
        },
        "detector": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Detector"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        },
        "started_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Started At"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "SubtitleRemovalTaskDetail",
      "description": "任务详情"
    },
    "SubtitleRemovalTaskResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "default": true
        },
        "task_id": {
          "type": "integer",
          "title": "Task Id",
          "description": "任务 ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "任务状态"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "description": "消息",
          "default": "任务已创建"
        },
        "progress_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Progress Token",
          "description": "匿名任务进度访问令牌(仅匿名任务返回)"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds",
          "description": "预计处理时间(秒)"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At",
          "description": "创建时间"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "SubtitleRemovalTaskResponse",
      "description": "创建任务响应"
    },
    "SubtitleRemoveRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "region": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/src__api__v1__endpoints__video__effects__RegionModel"
            },
            {
              "type": "null"
            }
          ],
          "description": "显式字幕区域(像素);省略则 auto 自动检测"
        },
        "mode": {
          "type": "string",
          "title": "Mode",
          "description": "产品档位:standard(标准) | high(高质量) | fast(快速)",
          "default": "standard"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "SubtitleRemoveRequest",
      "description": "去字幕请求(公共仅 mode)\n\n区域二选一:传 region(像素)去该区域;不传 region 则 auto 自动检测。\n所有 mode 均走 Media OpenCV inpaint(TELEA/NS)。"
    },
    "TTSRequest": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text"
        },
        "voice": {
          "type": "string",
          "title": "Voice",
          "description": "音色ID:Edge ShortName / 旧短 id / vivian 等 Qwen speaker / edge: 前缀",
          "default": "zh-CN-XiaoxiaoNeural"
        },
        "speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed",
          "description": "语速 (0.5-2.0)",
          "default": 1.0
        },
        "pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Pitch",
          "description": "音调 (-12 ~ +12)",
          "default": 0.0
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        },
        "engine": {
          "type": "string",
          "enum": [
            "edge",
            "qwen3"
          ],
          "title": "Engine",
          "description": "edge=云端 EdgeTTS; qwen3=本地(内置 speaker 或 Edge 示例克隆)",
          "default": "qwen3"
        },
        "emotion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Emotion",
          "description": "qwen3 情感/风格"
        },
        "instruct": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruct",
          "description": "qwen3 指令"
        },
        "prompt_audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Audio Url",
          "description": "参考音频 URL;有值时强制 qwen3 克隆合成"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text",
          "description": "参考音频对应文本;克隆合成时提升相似度"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "TTSRequest",
      "description": "文字转语音请求(EdgeTTS / Qwen3-TTS / 示例音色克隆)"
    },
    "TimelineCreate": {
      "properties": {
        "duration": {
          "type": "number",
          "title": "Duration",
          "description": "总时长(秒)",
          "default": 0
        },
        "playhead_position": {
          "type": "number",
          "title": "Playhead Position",
          "description": "播放头位置(秒)",
          "default": 0
        },
        "zoom_level": {
          "type": "number",
          "title": "Zoom Level",
          "description": "缩放级别",
          "default": 1.0
        },
        "tracks": {
          "items": {
            "$ref": "#/components/schemas/TrackCreate"
          },
          "type": "array",
          "title": "Tracks",
          "description": "轨道列表"
        }
      },
      "type": "object",
      "title": "TimelineCreate",
      "description": "创建时间线"
    },
    "TimelineResponse": {
      "properties": {
        "duration": {
          "type": "number",
          "title": "Duration",
          "description": "总时长(秒)",
          "default": 0
        },
        "playhead_position": {
          "type": "number",
          "title": "Playhead Position",
          "description": "播放头位置(秒)",
          "default": 0
        },
        "zoom_level": {
          "type": "number",
          "title": "Zoom Level",
          "description": "缩放级别",
          "default": 1.0
        },
        "tracks": {
          "items": {
            "$ref": "#/components/schemas/TrackResponse-Output"
          },
          "type": "array",
          "title": "Tracks",
          "description": "轨道列表"
        }
      },
      "type": "object",
      "title": "TimelineResponse",
      "description": "时间线响应"
    },
    "ToolConfirmRequest": {
      "properties": {
        "tool_call_id": {
          "type": "string",
          "title": "Tool Call Id",
          "description": "待确认的工具调用 ID"
        },
        "approved": {
          "type": "boolean",
          "title": "Approved",
          "description": "是否批准执行"
        },
        "reason": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reason",
          "description": "确认/拒绝原因"
        }
      },
      "type": "object",
      "required": [
        "tool_call_id",
        "approved"
      ],
      "title": "ToolConfirmRequest",
      "description": "用户确认/拒绝高消耗工具执行的请求"
    },
    "ToolHistoryCreate": {
      "properties": {
        "tool_id": {
          "type": "string",
          "title": "Tool Id",
          "description": "工具ID"
        },
        "tool_name": {
          "type": "string",
          "title": "Tool Name",
          "description": "工具名称"
        },
        "tool_category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Category",
          "description": "工具分类"
        },
        "input_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input Params",
          "description": "输入参数"
        },
        "output_result": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Result",
          "description": "输出结果"
        },
        "output_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Type",
          "description": "输出类型"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态: pending, processing, completed, failed"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message",
          "description": "错误信息"
        },
        "processing_time": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time",
          "description": "处理时间(毫秒)"
        },
        "file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "File Size",
          "description": "文件大小(字节)"
        },
        "input_file_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Url",
          "description": "输入文件URL"
        },
        "input_file_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Name",
          "description": "输入文件名"
        },
        "input_file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Size",
          "description": "输入文件大小(字节)"
        },
        "input_file_format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Format",
          "description": "输入文件格式"
        },
        "output_file_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output File Url",
          "description": "输出文件URL"
        },
        "output_file_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output File Name",
          "description": "输出文件名"
        },
        "output_file_format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output File Format",
          "description": "输出文件格式"
        },
        "duration": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "视频/音频时长(秒)"
        },
        "resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Resolution",
          "description": "视频分辨率"
        },
        "bitrate": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bitrate",
          "description": "比特率(bps)"
        },
        "sample_rate": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Sample Rate",
          "description": "音频采样率(Hz)"
        },
        "channels": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Channels",
          "description": "音频声道数"
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform",
          "description": "平台名称"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url",
          "description": "原始URL"
        },
        "metadata": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Metadata",
          "description": "其他元数据"
        }
      },
      "type": "object",
      "required": [
        "tool_id",
        "tool_name",
        "status"
      ],
      "title": "ToolHistoryCreate",
      "description": "创建工具历史记录请求模型"
    },
    "ToolHistoryDeleteResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "default": true
        },
        "message": {
          "type": "string",
          "title": "Message"
        }
      },
      "type": "object",
      "required": [
        "message"
      ],
      "title": "ToolHistoryDeleteResponse",
      "description": "删除工具历史记录响应模型"
    },
    "ToolHistoryListResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "default": true
        },
        "data": {
          "items": {
            "$ref": "#/components/schemas/ToolHistoryResponse"
          },
          "type": "array",
          "title": "Data"
        },
        "total": {
          "type": "integer",
          "title": "Total"
        },
        "page": {
          "type": "integer",
          "title": "Page"
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size"
        },
        "total_pages": {
          "type": "integer",
          "title": "Total Pages"
        }
      },
      "type": "object",
      "required": [
        "data",
        "total",
        "page",
        "page_size",
        "total_pages"
      ],
      "title": "ToolHistoryListResponse",
      "description": "工具历史记录列表响应模型"
    },
    "ToolHistoryResponse": {
      "properties": {
        "tool_id": {
          "type": "string",
          "title": "Tool Id",
          "description": "工具ID"
        },
        "tool_name": {
          "type": "string",
          "title": "Tool Name",
          "description": "工具名称"
        },
        "tool_category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Category",
          "description": "工具分类"
        },
        "input_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input Params",
          "description": "输入参数"
        },
        "output_result": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Result",
          "description": "输出结果"
        },
        "output_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Type",
          "description": "输出类型"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态: pending, processing, completed, failed"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message",
          "description": "错误信息"
        },
        "processing_time": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time",
          "description": "处理时间(毫秒)"
        },
        "file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "File Size",
          "description": "文件大小(字节)"
        },
        "input_file_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Url",
          "description": "输入文件URL"
        },
        "input_file_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Name",
          "description": "输入文件名"
        },
        "input_file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Size",
          "description": "输入文件大小(字节)"
        },
        "input_file_format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input File Format",
          "description": "输入文件格式"
        },
        "output_file_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output File Url",
          "description": "输出文件URL"
        },
        "output_file_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output File Name",
          "description": "输出文件名"
        },
        "output_file_format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output File Format",
          "description": "输出文件格式"
        },
        "duration": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "视频/音频时长(秒)"
        },
        "resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Resolution",
          "description": "视频分辨率"
        },
        "bitrate": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bitrate",
          "description": "比特率(bps)"
        },
        "sample_rate": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Sample Rate",
          "description": "音频采样率(Hz)"
        },
        "channels": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Channels",
          "description": "音频声道数"
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform",
          "description": "平台名称"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url",
          "description": "原始URL"
        },
        "metadata": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Metadata",
          "description": "其他元数据"
        },
        "id": {
          "type": "integer",
          "title": "Id"
        },
        "user_id": {
          "type": "integer",
          "title": "User Id"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "tool_id",
        "tool_name",
        "status",
        "id",
        "user_id",
        "created_at"
      ],
      "title": "ToolHistoryResponse",
      "description": "工具历史记录响应模型"
    },
    "TrackCreate": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/TrackType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "轨道名称"
        },
        "muted": {
          "type": "boolean",
          "title": "Muted",
          "description": "是否静音",
          "default": false
        },
        "locked": {
          "type": "boolean",
          "title": "Locked",
          "description": "是否锁定",
          "default": false
        },
        "clips": {
          "items": {
            "$ref": "#/components/schemas/ClipCreate"
          },
          "type": "array",
          "title": "Clips",
          "description": "片段列表"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name"
      ],
      "title": "TrackCreate",
      "description": "创建轨道"
    },
    "TrackResponse-Output": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/TrackType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "轨道名称"
        },
        "muted": {
          "type": "boolean",
          "title": "Muted",
          "description": "是否静音",
          "default": false
        },
        "locked": {
          "type": "boolean",
          "title": "Locked",
          "description": "是否锁定",
          "default": false
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "轨道ID"
        },
        "clips": {
          "items": {
            "$ref": "#/components/schemas/ClipResponse"
          },
          "type": "array",
          "title": "Clips",
          "description": "片段列表"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "id"
      ],
      "title": "TrackResponse",
      "description": "轨道响应"
    },
    "TrackType": {
      "type": "string",
      "enum": [
        "subtitle",
        "video",
        "voiceover",
        "music"
      ],
      "title": "TrackType",
      "description": "轨道类型"
    },
    "TranscribeRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "language": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Language",
          "description": "语言代码,None 为自动检测"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式: text, srt, vtt",
          "default": "text"
        },
        "with_align": {
          "type": "boolean",
          "title": "With Align",
          "description": "为 True 时在转写后调用 forced-align 生成词级时间戳(更慢)",
          "default": false
        },
        "model": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model",
          "description": "ASR 模型: auto=服务端默认尺寸(不按时长); qwen3=智能档(≤10min→1.7B, >10min→0.6B); qwen3-1.7b / qwen3-0.6b=强制指定"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "TranscribeRequest",
      "description": "语音转文字请求"
    },
    "TranscribeTaskRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "language": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Language"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "text"
        },
        "with_align": {
          "type": "boolean",
          "title": "With Align",
          "default": false
        },
        "model": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "TranscribeTaskRequest"
    },
    "TrimAudioRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "start_time": {
          "type": "number",
          "minimum": 0.0,
          "title": "Start Time"
        },
        "end_time": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "title": "End Time"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "start_time",
        "end_time"
      ],
      "title": "TrimAudioRequest",
      "description": "音频裁剪请求"
    },
    "TripleCoverRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "style": {
          "type": "string",
          "title": "Style",
          "default": "horizontal"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "TripleCoverRequest"
    },
    "UpdateScriptsRequest": {
      "properties": {
        "scripts": {
          "items": {
            "$ref": "#/components/schemas/ScriptSegmentCreate"
          },
          "type": "array",
          "title": "Scripts",
          "description": "脚本列表"
        }
      },
      "type": "object",
      "required": [
        "scripts"
      ],
      "title": "UpdateScriptsRequest",
      "description": "更新脚本请求"
    },
    "UpdateTimelineRequest": {
      "properties": {
        "timeline": {
          "$ref": "#/components/schemas/TimelineCreate",
          "description": "时间线数据"
        }
      },
      "type": "object",
      "required": [
        "timeline"
      ],
      "title": "UpdateTimelineRequest",
      "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"
    },
    "VideoBgRemoveRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "bg_color": {
          "type": "string",
          "title": "Bg Color",
          "description": "背景填充色 hex,默认绿幕",
          "default": "#00FF00"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoBgRemoveRequest",
      "description": "视频抠图请求"
    },
    "VideoBgRemoveTaskRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "bg_color": {
          "type": "string",
          "title": "Bg Color",
          "default": "#00FF00"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp4"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoBgRemoveTaskRequest"
    },
    "VideoCompressRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "preset": {
          "type": "string",
          "title": "Preset",
          "default": "wechat"
        },
        "target_size_mb": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Size Mb"
        },
        "resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Resolution"
        },
        "quality": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 100.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Quality"
        },
        "fps": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 60.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Fps"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoCompressRequest",
      "description": "视频压缩请求"
    },
    "VideoCropRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "mode": {
          "type": "string",
          "title": "Mode",
          "default": "pixel"
        },
        "aspect_ratio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Aspect Ratio"
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform"
        },
        "x": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "X"
        },
        "y": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Y"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Width"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Height"
        },
        "smart_tracking": {
          "type": "boolean",
          "title": "Smart Tracking",
          "default": false
        },
        "output_resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Resolution"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoCropRequest",
      "description": "视频裁剪(支持像素 / 比例 / 平台预设)"
    },
    "VideoEffectRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "effect": {
          "type": "string",
          "title": "Effect",
          "default": "fade_in"
        },
        "intensity": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Intensity",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoEffectRequest",
      "description": "视频特效"
    },
    "VideoEnhanceRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "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
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoEnhanceRequest",
      "description": "视频 AI 增强请求"
    },
    "VideoEnhanceTaskRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "scale": {
          "type": "integer",
          "maximum": 4.0,
          "minimum": 1.0,
          "title": "Scale",
          "default": 1
        },
        "face_enhance": {
          "type": "boolean",
          "title": "Face Enhance",
          "default": true
        },
        "denoise": {
          "type": "boolean",
          "title": "Denoise",
          "default": true
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp4"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoEnhanceTaskRequest"
    },
    "VideoFilterRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "filter": {
          "type": "string",
          "title": "Filter",
          "default": "grayscale"
        },
        "intensity": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.0,
          "title": "Intensity",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoFilterRequest",
      "description": "视频滤镜"
    },
    "VideoGenerateRequest": {
      "properties": {
        "prompt": {
          "type": "string",
          "maxLength": 20000,
          "minLength": 1,
          "title": "Prompt"
        },
        "provider": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "xbai",
                "geekai"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Provider",
          "description": "显式供应商;省略则按配置 auto|xbai|geekai"
        },
        "mode": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "t2v",
                "i2v",
                "fl2v",
                "ref2v"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Mode"
        },
        "model": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "h3_fl2va",
                "h3_ref2va"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Model"
        },
        "loras": {
          "items": {
            "$ref": "#/components/schemas/XbaiLoraIn"
          },
          "type": "array",
          "maxItems": 16,
          "title": "Loras"
        },
        "seed": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 4294967295.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Seed"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 1344.0,
              "minimum": 32.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Width"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 1344.0,
              "minimum": 32.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Height"
        },
        "image": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image",
          "description": "首帧图片 URL,或图片 URL 列表"
        },
        "image_tail": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image Tail",
          "description": "尾帧图片 URL"
        },
        "images": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Images",
          "description": "多张参考图 URL"
        },
        "video": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video",
          "description": "参考/待编辑视频 URL"
        },
        "audio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio",
          "description": "参考音频"
        },
        "references": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/components/schemas/XbaiReferenceIn"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "References",
          "description": "xbai 原生参考(name/url/type)"
        },
        "aspect_ratio": {
          "type": "string",
          "title": "Aspect Ratio",
          "description": "16:9/9:16/1:1/4:3/3:4/21:9/adaptive",
          "default": "16:9"
        },
        "resolution": {
          "type": "string",
          "title": "Resolution",
          "description": "geekai mini 仅 480p/720p",
          "default": "720p"
        },
        "duration": {
          "type": "integer",
          "maximum": 15.0,
          "minimum": 4.0,
          "title": "Duration",
          "description": "时长秒 4-15",
          "default": 5
        },
        "watermark": {
          "type": "boolean",
          "title": "Watermark",
          "default": false
        },
        "real_person_mode": {
          "type": "boolean",
          "title": "Real Person Mode",
          "description": "GeekAI:参考素材含真人人脸时开启",
          "default": false
        },
        "wait": {
          "type": "boolean",
          "title": "Wait",
          "description": "GeekAI 可服务端轮询;xbai 禁止 wait=true",
          "default": false
        },
        "idempotency_key": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 128,
              "minLength": 8
            },
            {
              "type": "null"
            }
          ],
          "title": "Idempotency Key",
          "description": "幂等键(xbai 必用于 H3;省略则创建新任务;重试同次提交时复用同一键)"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "prompt"
      ],
      "title": "VideoGenerateRequest",
      "description": "文生视频 / 图生视频。\n\n供应商:\n- geekai: doubao-seedance-2.0-mini\n- xbai: MiniMax H3 自建卡(t2v/i2v/fl2v/ref2v)\n- 省略则跟 SH_VIDEO_GENERATE_PROVIDER(auto=有 xbai 用 xbai)"
    },
    "VideoScriptRequest": {
      "properties": {
        "topic": {
          "type": "string",
          "title": "Topic"
        },
        "style": {
          "type": "string",
          "title": "Style",
          "default": "short"
        }
      },
      "type": "object",
      "required": [
        "topic"
      ],
      "title": "VideoScriptRequest"
    },
    "VideoStitchingRequest": {
      "properties": {
        "video_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "minItems": 2,
          "title": "Video Urls"
        }
      },
      "type": "object",
      "required": [
        "video_urls"
      ],
      "title": "VideoStitchingRequest",
      "description": "视频拼接请求"
    },
    "VideoToAudioRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoToAudioRequest",
      "description": "视频转音频(兼容旧路径;推荐 /audio/basic/extract)"
    },
    "VideoToGifRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "start_time": {
          "type": "number",
          "minimum": 0.0,
          "title": "Start Time",
          "default": 0.0
        },
        "end_time": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "End Time"
        },
        "fps": {
          "type": "integer",
          "maximum": 30.0,
          "minimum": 1.0,
          "title": "Fps",
          "default": 10
        },
        "width": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 1920.0,
              "minimum": 100.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Width",
          "default": 480
        },
        "quality": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Quality",
          "default": 80
        },
        "loop_count": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Loop Count",
          "default": 0
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoToGifRequest",
      "description": "视频转GIF(含时间段/质量参数)"
    },
    "VideoTrimRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "start_time": {
          "type": "number",
          "minimum": 0.0,
          "title": "Start Time"
        },
        "end_time": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "title": "End Time"
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "start_time",
        "end_time"
      ],
      "title": "VideoTrimRequest",
      "description": "视频裁剪时长请求"
    },
    "VideoUpscaleRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "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,需 GPU)",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoUpscaleRequest",
      "description": "视频超分请求"
    },
    "VideoUpscaleTaskRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "scale": {
          "type": "integer",
          "maximum": 4.0,
          "minimum": 2.0,
          "title": "Scale",
          "default": 2
        },
        "face_enhance": {
          "type": "boolean",
          "title": "Face Enhance",
          "default": false
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp4"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "VideoUpscaleTaskRequest"
    },
    "VisualAsset": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "type": {
          "$ref": "#/components/schemas/VisualAssetType",
          "default": "character"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "default": ""
        },
        "visual_prompt": {
          "type": "string",
          "title": "Visual Prompt",
          "default": ""
        },
        "ref_image_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Ref Image Urls"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Tags"
        },
        "extra": {
          "additionalProperties": true,
          "type": "object",
          "title": "Extra"
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "title": "VisualAsset"
    },
    "VisualAssetType": {
      "type": "string",
      "enum": [
        "character",
        "location",
        "product",
        "prop",
        "style"
      ],
      "title": "VisualAssetType"
    },
    "VisualAssetUpsert": {
      "properties": {
        "asset": {
          "$ref": "#/components/schemas/VisualAsset"
        }
      },
      "type": "object",
      "required": [
        "asset"
      ],
      "title": "VisualAssetUpsert"
    },
    "VocalSeparateRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "strategy": {
          "type": "string",
          "title": "Strategy",
          "description": "分离策略: auto, demucs, spleeter",
          "default": "auto"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "VocalSeparateRequest",
      "description": "人声分离请求"
    },
    "VocalSeparateTaskRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "strategy": {
          "type": "string",
          "title": "Strategy",
          "default": "auto"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "VocalSeparateTaskRequest"
    },
    "VoiceConvertRequest": {
      "properties": {
        "source_url": {
          "type": "string",
          "minLength": 1,
          "title": "Source Url",
          "description": "源说话音频 URL"
        },
        "reference_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference Url",
          "description": "自定义目标音色参考音频 URL;与 preset_id 二选一"
        },
        "preset_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Preset Id",
          "description": "常用变声预设(Qwen3-TTS 合成参考音)"
        },
        "version": {
          "type": "string",
          "enum": [
            "v1",
            "v2"
          ],
          "title": "Version",
          "description": "Seed-VC 版本:v1=DiT;v2=CFM+AR(口音/情感)",
          "default": "v1"
        }
      },
      "type": "object",
      "required": [
        "source_url"
      ],
      "title": "VoiceConvertRequest",
      "description": "音频变声(Seed-VC)请求"
    },
    "VoiceConvertTaskRequest": {
      "properties": {
        "source_url": {
          "type": "string",
          "minLength": 1,
          "title": "Source Url"
        },
        "reference_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference Url",
          "description": "自定义目标音色参考音频;与 preset_id 二选一"
        },
        "preset_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Preset Id",
          "description": "常用变声预设 id(Qwen3-TTS 合成参考音)"
        },
        "version": {
          "type": "string",
          "enum": [
            "v1",
            "v2"
          ],
          "title": "Version",
          "description": "Seed-VC 版本:v1=DiT;v2=CFM+AR",
          "default": "v1"
        }
      },
      "type": "object",
      "required": [
        "source_url"
      ],
      "title": "VoiceConvertTaskRequest",
      "description": "音频变声(Seed-VC):参考音或预设音色。"
    },
    "VoiceDesignRequest": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "试听文案"
        },
        "instruct": {
          "type": "string",
          "maxLength": 1000,
          "minLength": 1,
          "title": "Instruct",
          "description": "音色自然语言描述,如:30岁成熟男声,低沉温和"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "合成语言",
          "default": "Chinese"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "可选标签名"
        }
      },
      "type": "object",
      "required": [
        "text",
        "instruct"
      ],
      "title": "VoiceDesignRequest",
      "description": "自然语言音色设计试听(Qwen3 VoiceDesign)"
    },
    "VoiceDesignSaveRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url",
          "description": "设计试听音频 URL(作为克隆参考音)"
        },
        "prompt_text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Prompt Text",
          "description": "试听文案(与 audio_url 对齐,供后续 Base 克隆)"
        },
        "instruct": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 1000
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruct",
          "description": "音色描述,写入元数据"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "音色库名称"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "语言",
          "default": "Chinese"
        },
        "gender": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Gender",
          "description": "male / female,可选"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "prompt_text"
      ],
      "title": "VoiceDesignSaveRequest",
      "description": "将试听通过的设计音色写入「我的克隆」"
    },
    "VoiceEffectRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "effect": {
          "type": "string",
          "title": "Effect",
          "description": "效果类型: male, female, child, robot, echo"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "effect"
      ],
      "title": "VoiceEffectRequest",
      "description": "变声请求"
    },
    "VoiceMode": {
      "type": "string",
      "enum": [
        "tts",
        "original"
      ],
      "title": "VoiceMode"
    },
    "VoiceTrack": {
      "properties": {
        "mode": {
          "$ref": "#/components/schemas/VoiceMode",
          "default": "tts"
        },
        "audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Url"
        },
        "full_text": {
          "type": "string",
          "title": "Full Text",
          "default": ""
        },
        "tts_voice_id": {
          "type": "string",
          "title": "Tts Voice Id",
          "default": "zh-CN-XiaoxiaoNeural"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "zh"
        }
      },
      "type": "object",
      "title": "VoiceTrack"
    },
    "VoiceoverSynthesizeRequest": {
      "properties": {
        "segments": {
          "items": {
            "$ref": "#/components/schemas/SegmentConfig"
          },
          "type": "array",
          "maxItems": 100,
          "minItems": 1,
          "title": "Segments",
          "description": "段落列表"
        },
        "global_voice_id": {
          "type": "string",
          "title": "Global Voice Id",
          "description": "全局默认音色",
          "default": "xiaoxiao"
        },
        "global_speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Global Speed",
          "description": "全局默认语速",
          "default": 1.0
        },
        "global_pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Global Pitch",
          "description": "全局默认音调",
          "default": 0.0
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式: mp3, wav",
          "default": "mp3"
        },
        "merge_segments": {
          "type": "boolean",
          "title": "Merge Segments",
          "description": "是否合并为单个文件",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "segments"
      ],
      "title": "VoiceoverSynthesizeRequest",
      "description": "配音合成请求(多段)"
    },
    "VolumeRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "volume_factor": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Volume Factor",
          "description": "音量倍数,1.0为原始音量"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "volume_factor"
      ],
      "title": "VolumeRequest",
      "description": "音量调整请求"
    },
    "WatermarkPreviewRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url",
          "description": "视频URL"
        },
        "watermark_regions": {
          "items": {
            "$ref": "#/components/schemas/WatermarkRegion"
          },
          "type": "array",
          "minItems": 1,
          "title": "Watermark Regions",
          "description": "水印区域列表(百分比坐标)"
        },
        "timestamp": {
          "type": "number",
          "minimum": 0.0,
          "title": "Timestamp",
          "description": "预览时间点(秒)",
          "default": 0.0
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ProcessingMode",
          "description": "处理模式: fast/standard/enhanced",
          "default": "standard"
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "watermark_regions"
      ],
      "title": "WatermarkPreviewRequest",
      "description": "去水印单帧预览请求"
    },
    "WatermarkPreviewResponse": {
      "properties": {
        "original_frame_url": {
          "type": "string",
          "title": "Original Frame Url"
        },
        "processed_frame_url": {
          "type": "string",
          "title": "Processed Frame Url"
        },
        "timestamp": {
          "type": "number",
          "title": "Timestamp"
        },
        "processing_time_ms": {
          "type": "integer",
          "title": "Processing Time Ms"
        }
      },
      "type": "object",
      "required": [
        "original_frame_url",
        "processed_frame_url",
        "timestamp",
        "processing_time_ms"
      ],
      "title": "WatermarkPreviewResponse",
      "description": "去水印单帧预览响应"
    },
    "WatermarkRegion": {
      "properties": {
        "type": {
          "type": "string",
          "title": "Type",
          "description": "区域类型: rect",
          "default": "rect"
        },
        "x": {
          "type": "number",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "X",
          "description": "X坐标百分比 (0-100)"
        },
        "y": {
          "type": "number",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Y",
          "description": "Y坐标百分比 (0-100)"
        },
        "width": {
          "type": "number",
          "maximum": 100.0,
          "exclusiveMinimum": 0.0,
          "title": "Width",
          "description": "宽度百分比 (0-100)"
        },
        "height": {
          "type": "number",
          "maximum": 100.0,
          "exclusiveMinimum": 0.0,
          "title": "Height",
          "description": "高度百分比 (0-100)"
        }
      },
      "type": "object",
      "required": [
        "x",
        "y",
        "width",
        "height"
      ],
      "title": "WatermarkRegion",
      "description": "水印区域"
    },
    "WatermarkRemovalHistoryItem": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "type": "string",
          "title": "Status"
        },
        "source_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Video Url"
        },
        "result_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Video Url"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode"
        },
        "video_duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Duration"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status",
        "processing_mode"
      ],
      "title": "WatermarkRemovalHistoryItem",
      "description": "去水印历史记录项"
    },
    "WatermarkRemovalHistoryResponse": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/components/schemas/WatermarkRemovalHistoryItem"
          },
          "type": "array",
          "title": "Items"
        },
        "total": {
          "type": "integer",
          "title": "Total"
        },
        "page": {
          "type": "integer",
          "title": "Page"
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size"
        }
      },
      "type": "object",
      "required": [
        "items",
        "total",
        "page",
        "page_size"
      ],
      "title": "WatermarkRemovalHistoryResponse",
      "description": "去水印历史记录响应"
    },
    "WatermarkRemovalRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url",
          "description": "视频URL"
        },
        "watermark_regions": {
          "items": {
            "$ref": "#/components/schemas/WatermarkRegion"
          },
          "type": "array",
          "title": "Watermark Regions",
          "description": "水印区域列表(百分比坐标);auto_detect=true 时可为空"
        },
        "auto_detect": {
          "type": "boolean",
          "title": "Auto Detect",
          "description": "自动检测水印区域;为 true 时 regions 可为空",
          "default": false
        },
        "processing_mode": {
          "$ref": "#/components/schemas/ProcessingMode",
          "description": "处理模式: fast(TELEA)/standard(TELEA+residual)/enhanced(NS)",
          "default": "standard"
        },
        "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(编码 CRF 映射,前端可不传)",
          "default": 80
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "WatermarkRemovalRequest",
      "description": "去水印请求"
    },
    "WatermarkRemovalTaskDetail": {
      "properties": {
        "task_id": {
          "type": "integer",
          "title": "Task Id",
          "description": "任务ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "任务状态"
        },
        "progress": {
          "type": "number",
          "title": "Progress",
          "description": "进度百分比",
          "default": 0
        },
        "current_step": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Current Step",
          "description": "当前步骤"
        },
        "source_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Video Url",
          "description": "原视频URL"
        },
        "video_duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Duration",
          "description": "视频时长"
        },
        "video_width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Width",
          "description": "视频宽度"
        },
        "video_height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Video Height",
          "description": "视频高度"
        },
        "watermark_regions": {
          "items": {
            "$ref": "#/components/schemas/WatermarkRegion"
          },
          "type": "array",
          "title": "Watermark Regions",
          "description": "水印区域列表"
        },
        "processing_mode": {
          "type": "string",
          "title": "Processing Mode",
          "description": "处理模式",
          "default": "standard"
        },
        "output_format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Format",
          "description": "输出格式"
        },
        "output_quality": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Quality",
          "description": "输出质量"
        },
        "result_video_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Video Url",
          "description": "结果视频URL"
        },
        "result_file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result File Size",
          "description": "结果文件大小"
        },
        "processing_time_seconds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Processing Time Seconds",
          "description": "处理耗时(秒)"
        },
        "frames_processed": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Frames Processed",
          "description": "处理帧数"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds",
          "description": "预计处理时间(秒)"
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Error Message",
          "description": "错误信息"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At",
          "description": "创建时间"
        },
        "started_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Started At",
          "description": "开始时间"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed At",
          "description": "完成时间"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "WatermarkRemovalTaskDetail",
      "description": "去水印任务详情"
    },
    "WatermarkRemovalTaskResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "default": true
        },
        "task_id": {
          "type": "integer",
          "title": "Task Id",
          "description": "任务ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "任务状态"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "description": "消息",
          "default": "任务已创建"
        },
        "progress_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Progress Token",
          "description": "匿名任务进度访问令牌(仅匿名任务返回)"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds",
          "description": "预计处理时间(秒)"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At",
          "description": "创建时间"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "WatermarkRemovalTaskResponse",
      "description": "去水印任务响应"
    },
    "WebScrapeRequest": {
      "properties": {
        "url": {
          "type": "string",
          "minLength": 1,
          "title": "Url"
        },
        "fetch": {
          "type": "string",
          "enum": [
            "auto",
            "http",
            "browser"
          ],
          "title": "Fetch",
          "default": "auto"
        },
        "pruning_threshold": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Pruning Threshold",
          "default": 0.45
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "title": "WebScrapeRequest"
    },
    "WebpageScrapeCopyRequest": {
      "properties": {
        "url": {
          "type": "string",
          "title": "Url"
        },
        "fetch": {
          "type": "string",
          "title": "Fetch",
          "default": "auto"
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "title": "WebpageScrapeCopyRequest"
    },
    "XbaiLoraIn": {
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 256,
          "minLength": 1,
          "title": "Name"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name"
      ],
      "title": "XbaiLoraIn"
    },
    "XbaiReferenceIn": {
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 1,
          "title": "Name"
        },
        "url": {
          "type": "string",
          "minLength": 8,
          "title": "Url"
        },
        "type": {
          "type": "string",
          "enum": [
            "image",
            "video",
            "audio"
          ],
          "title": "Type"
        },
        "purpose": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Purpose"
        },
        "clip_start": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Clip Start"
        },
        "clip_duration": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 15.0,
              "exclusiveMinimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Clip Duration"
        },
        "use_audio": {
          "type": "boolean",
          "title": "Use Audio",
          "default": false
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "url",
        "type"
      ],
      "title": "XbaiReferenceIn"
    },
    "XiaohongshuRequest": {
      "properties": {
        "topic": {
          "type": "string",
          "title": "Topic"
        }
      },
      "type": "object",
      "required": [
        "topic"
      ],
      "title": "XiaohongshuRequest"
    },
    "src__api__v1__endpoints__audio__ai__VoiceCloneRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url",
          "description": "参考音频 URL"
        },
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "要用克隆音色合成的文本"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "可选标签;写入音色库名称"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text",
          "description": "参考音频对应文本"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "合成语言",
          "default": "Chinese"
        },
        "save_voice": {
          "type": "boolean",
          "title": "Save Voice",
          "description": "合成成功后是否保存到「我的克隆」音色库,供文字配音复用",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "text"
      ],
      "title": "VoiceCloneRequest",
      "description": "音色克隆合成(Qwen3 即时克隆 + 写入可复用音色库)"
    },
    "src__api__v1__endpoints__audio__voiceover__VoiceCloneRequest": {
      "properties": {
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "音色标签"
        },
        "audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Url",
          "description": "参考音频URL"
        },
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "要用克隆音色合成的文本"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text",
          "description": "参考音频对应文本(可选)"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "合成语言",
          "default": "Chinese"
        },
        "save_voice": {
          "type": "boolean",
          "title": "Save Voice",
          "description": "是否保存到「我的克隆」音色库",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "VoiceCloneRequest",
      "description": "音色克隆合成请求(Qwen3 即时克隆 + 写入可复用音色库)"
    },
    "src__api__v1__endpoints__image__basic__MirrorRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "direction": {
          "type": "string",
          "title": "Direction",
          "default": "horizontal"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "MirrorRequest"
    },
    "src__api__v1__endpoints__image__basic__ModifyMd5Request": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "target_md5": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Md5"
        }
      },
      "type": "object",
      "required": [
        "image_url"
      ],
      "title": "ModifyMd5Request"
    },
    "src__api__v1__endpoints__image__effects__DoodleWatermarkRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "doodle_data": {
          "type": "string",
          "title": "Doodle Data"
        },
        "position_x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position X",
          "default": 0
        },
        "position_y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position Y",
          "default": 0
        },
        "opacity": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Opacity",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "image_url",
        "doodle_data"
      ],
      "title": "DoodleWatermarkRequest"
    },
    "src__api__v1__endpoints__image__effects__StickerWatermarkRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "sticker_url": {
          "type": "string",
          "title": "Sticker Url"
        },
        "position_x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position X",
          "default": 10
        },
        "position_y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position Y",
          "default": 10
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height"
        }
      },
      "type": "object",
      "required": [
        "image_url",
        "sticker_url"
      ],
      "title": "StickerWatermarkRequest"
    },
    "src__api__v1__endpoints__image__effects__TextWatermarkRequest": {
      "properties": {
        "image_url": {
          "type": "string",
          "minLength": 1,
          "title": "Image Url"
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "title": "Text"
        },
        "position_x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position X",
          "default": 10
        },
        "position_y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position Y",
          "default": 10
        },
        "font_size": {
          "type": "integer",
          "maximum": 200.0,
          "minimum": 8.0,
          "title": "Font Size",
          "default": 20
        },
        "color": {
          "type": "string",
          "title": "Color",
          "default": "white"
        }
      },
      "type": "object",
      "required": [
        "image_url",
        "text"
      ],
      "title": "TextWatermarkRequest"
    },
    "src__api__v1__endpoints__video__basic__ModifyMd5Request": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "target_md5": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Md5"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "ModifyMd5Request",
      "description": "修改MD5请求"
    },
    "src__api__v1__endpoints__video__effects__BaseVideoRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "BaseVideoRequest",
      "description": "视频请求基类"
    },
    "src__api__v1__endpoints__video__effects__DoodleWatermarkRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "paths": {
          "items": {
            "$ref": "#/components/schemas/DoodlePath"
          },
          "type": "array",
          "title": "Paths"
        },
        "stroke_color": {
          "type": "string",
          "title": "Stroke Color",
          "default": "#FF0000"
        },
        "stroke_width": {
          "type": "integer",
          "maximum": 50.0,
          "minimum": 1.0,
          "title": "Stroke Width",
          "default": 3
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "paths"
      ],
      "title": "DoodleWatermarkRequest",
      "description": "涂鸦水印请求"
    },
    "src__api__v1__endpoints__video__effects__MirrorRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "direction": {
          "type": "string",
          "title": "Direction",
          "default": "horizontal"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "MirrorRequest",
      "description": "镜像请求"
    },
    "src__api__v1__endpoints__video__effects__RegionModel": {
      "properties": {
        "x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "X"
        },
        "y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Y"
        },
        "width": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Width"
        },
        "height": {
          "type": "integer",
          "exclusiveMinimum": 0.0,
          "title": "Height"
        }
      },
      "type": "object",
      "required": [
        "x",
        "y",
        "width",
        "height"
      ],
      "title": "RegionModel",
      "description": "区域模型"
    },
    "src__api__v1__endpoints__video__effects__StickerWatermarkRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "sticker_url": {
          "type": "string",
          "title": "Sticker Url"
        },
        "position_x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position X",
          "default": 10
        },
        "position_y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position Y",
          "default": 10
        },
        "width": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Width"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Height"
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "sticker_url"
      ],
      "title": "StickerWatermarkRequest",
      "description": "贴纸水印请求"
    },
    "src__api__v1__endpoints__video__effects__TextWatermarkRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "title": "Text"
        },
        "position_x": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position X",
          "default": 10
        },
        "position_y": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Position Y",
          "default": 10
        },
        "font_size": {
          "type": "integer",
          "maximum": 200.0,
          "minimum": 8.0,
          "title": "Font Size",
          "default": 20
        },
        "color": {
          "type": "string",
          "title": "Color",
          "default": "white"
        }
      },
      "type": "object",
      "required": [
        "video_url",
        "text"
      ],
      "title": "TextWatermarkRequest",
      "description": "文字水印请求"
    }
  },
  "securitySchemes": {
    "HTTPBearer": {
      "type": "http",
      "scheme": "bearer"
    }
  }
}