{
  "openapi": "3.1.0",
  "info": {
    "title": "Backend 源码接口",
    "description": "API service for App Factory reusable modules",
    "version": "1.0.0",
    "x-source-commit": "f33cc2b935f31b36240d724948dc8b9c765430cc"
  },
  "paths": {
    "/api/v1/health/": {
      "get": {
        "tags": [
          "health",
          "健康检查"
        ],
        "summary": "基础健康检查",
        "description": "返回应用的基本健康状态信息，用于快速检测应用是否正常运行。",
        "operationId": "health_check_api_v1_health__get",
        "responses": {
          "200": {
            "description": "应用健康",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                },
                "example": {
                  "status": "healthy",
                  "version": "1.0.0",
                  "timestamp": "2024-01-01T00:00:00Z"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/health/detailed": {
      "get": {
        "tags": [
          "health",
          "健康检查"
        ],
        "summary": "详细健康检查",
        "description": "返回更详细的系统状态信息。",
        "operationId": "detailed_health_check_api_v1_health_detailed_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/health/ready": {
      "get": {
        "tags": [
          "health",
          "健康检查"
        ],
        "summary": "就绪检查",
        "description": "检查所有依赖服务的连接状态，用于 Kubernetes 就绪探针。\n\n返回各服务的状态：\n- **database**: PostgreSQL 数据库连接状态\n- **redis**: Redis 缓存服务连接状态",
        "operationId": "readiness_check_api_v1_health_ready_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage": {
      "get": {
        "tags": [
          "storage"
        ],
        "summary": "List Files And Folders",
        "operationId": "list_files_and_folders_api_v1_storage_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/upload": {
      "post": {
        "tags": [
          "storage"
        ],
        "summary": "Upload Tool File",
        "description": "工具侧文件上传（鉴权）。\n\n不创建 user_assets、不占用用户云存储配额。\n返回 URL 供后续工具处理；兼容旧客户端对 asset.file_url 的解析。\n匿名工具上传请走 /api/v1/upload/minio。",
        "operationId": "upload_tool_file_api_v1_storage_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/storage/{asset_id}": {
      "delete": {
        "tags": [
          "storage"
        ],
        "summary": "Delete Asset",
        "operationId": "delete_asset_api_v1_storage__asset_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/batch-move": {
      "post": {
        "tags": [
          "storage"
        ],
        "summary": "Batch Move Assets",
        "operationId": "batch_move_assets_api_v1_storage_batch_move_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/storage/files/{path}": {
      "get": {
        "tags": [
          "storage"
        ],
        "summary": "Get File",
        "description": "获取本地存储的文件，支持 Range 请求和 CORS（工具处理产物，非用户云盘）",
        "operationId": "get_file_api_v1_storage_files__path__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/resolve": {
      "post": {
        "tags": [
          "resolve"
        ],
        "summary": "Resolve",
        "description": "统一内容解析接口 - 支持抖音/快手/小红书/B站/TikTok/YouTube\n\n返回统一格式的数据结构，包含：\n- 基本信息：title, type, video_url, audio_url, cover_url, platform\n- 作者信息：author, author_id, author_avatar\n- 视频属性：duration, width, height\n- 统计数据：view_count, like_count, comment_count, share_count, collect_count\n- 发布时间：release_time",
        "operationId": "resolve_api_v1_resolve_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/tasks": {
      "post": {
        "tags": [
          "agent"
        ],
        "summary": "Run Agent Task",
        "description": "Submit a new agent task.\nRequires authentication.",
        "operationId": "run_agent_task_api_v1_agent_tasks_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/agent/tasks/{task_id}": {
      "get": {
        "tags": [
          "agent"
        ],
        "summary": "Get Agent Task",
        "description": "Get the status and result of an agent task.\nRequires authentication.",
        "operationId": "get_agent_task_api_v1_agent_tasks__task_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/tasks/{task_id}/stream": {
      "get": {
        "tags": [
          "agent"
        ],
        "summary": "Stream Agent Task",
        "description": "Stream agent task updates using SSE.\n\nSupports two frame types:\n- **Snapshot frames** (default, no ``event:`` field): full ``AgentTaskResponse`` JSON.\n  Sent on every task state change.\n- **Incremental frames** (typed with ``event:`` field): granular events like\n  ``text_delta``, ``tool_use``, ``tool_result``, ``confirmation_request``,\n  ``confirmation_result``, ``assistant_message``, ``terminal``.\n\nThe stream stays open during ``awaiting_confirmation``; it closes on\n``completed``, ``failed``, or ``cancelled``.",
        "operationId": "stream_agent_task_api_v1_agent_tasks__task_id__stream_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/tasks/{task_id}/confirm": {
      "post": {
        "tags": [
          "agent"
        ],
        "summary": "Confirm Tool Execution",
        "description": "Confirm or reject a high-cost tool execution that is awaiting user authorization.\n\nThe agent loop is suspended at the tool's check_permissions=ASK stage.\nThis endpoint resolves the pending confirmation, allowing the loop to\neither proceed with tool execution (approved=True) or skip it (approved=False).",
        "operationId": "confirm_tool_execution_api_v1_agent_tasks__task_id__confirm_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/tasks/{task_id}/pending-confirmations": {
      "get": {
        "tags": [
          "agent"
        ],
        "summary": "Get Pending Confirmations",
        "description": "Get all pending tool confirmations for a task.",
        "operationId": "get_pending_confirmations_api_v1_agent_tasks__task_id__pending_confirmations_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/tasks/{task_id}/cancel": {
      "post": {
        "tags": [
          "agent"
        ],
        "summary": "Cancel Agent Task",
        "description": "Cancel a running agent task.",
        "operationId": "cancel_agent_task_api_v1_agent_tasks__task_id__cancel_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/sessions": {
      "get": {
        "tags": [
          "agent"
        ],
        "summary": "List Agent Sessions",
        "description": "List agent sessions for the current user.",
        "operationId": "list_agent_sessions_api_v1_agent_sessions_get",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/agent/sessions/{session_id}/messages": {
      "get": {
        "tags": [
          "agent"
        ],
        "summary": "Get Session Messages",
        "description": "Get message history for a session.",
        "operationId": "get_session_messages_api_v1_agent_sessions__session_id__messages_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agent/sessions/{session_id}": {
      "delete": {
        "tags": [
          "agent"
        ],
        "summary": "Delete Agent Session",
        "description": "Delete a session and clear its cached engine.",
        "operationId": "delete_agent_session_api_v1_agent_sessions__session_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects": {
      "post": {
        "tags": [
          "project"
        ],
        "summary": "创建项目",
        "description": "创建新的项目 (支持 generic, image, video, tool)",
        "operationId": "create_project_api_v1_project_projects_post",
        "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": {
        "tags": [
          "project"
        ],
        "summary": "获取项目列表",
        "description": "获取当前用户的项目列表",
        "operationId": "list_projects_api_v1_project_projects_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}": {
      "get": {
        "tags": [
          "project"
        ],
        "summary": "获取项目详情",
        "description": "获取项目详情（含消息历史和业务数据）",
        "operationId": "get_project_api_v1_project_projects__project_id__get",
        "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": {
        "tags": [
          "project"
        ],
        "summary": "更新项目",
        "description": "更新项目基本信息和配置",
        "operationId": "update_project_api_v1_project_projects__project_id__put",
        "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": {
        "tags": [
          "project"
        ],
        "summary": "删除项目",
        "description": "删除项目",
        "operationId": "delete_project_api_v1_project_projects__project_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/chat": {
      "post": {
        "tags": [
          "project"
        ],
        "summary": "发送聊天消息",
        "description": "与 Agent 进行对话",
        "operationId": "chat_with_agent_api_v1_project_projects__project_id__chat_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/generate": {
      "post": {
        "tags": [
          "project"
        ],
        "summary": "生成内容",
        "description": "触发内容生成",
        "operationId": "generate_content_api_v1_project_projects__project_id__generate_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/assets": {
      "get": {
        "tags": [
          "project"
        ],
        "summary": "获取项目资产列表",
        "description": "获取项目的资产列表",
        "operationId": "get_project_assets_api_v1_project_projects__project_id__assets_get",
        "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": {
        "tags": [
          "project"
        ],
        "summary": "添加资产",
        "description": "向项目添加资产",
        "operationId": "add_project_asset_api_v1_project_projects__project_id__assets_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/assets/{asset_id}": {
      "delete": {
        "tags": [
          "project"
        ],
        "summary": "删除资产",
        "description": "从项目删除资产",
        "operationId": "delete_project_asset_api_v1_project_projects__project_id__assets__asset_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/scripts": {
      "get": {
        "tags": [
          "project"
        ],
        "summary": "获取脚本列表",
        "description": "获取项目的脚本列表",
        "operationId": "get_project_scripts_api_v1_project_projects__project_id__scripts_get",
        "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": {
        "tags": [
          "project"
        ],
        "summary": "更新脚本列表",
        "description": "更新项目的脚本列表",
        "operationId": "update_project_scripts_api_v1_project_projects__project_id__scripts_put",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/timeline": {
      "get": {
        "tags": [
          "project"
        ],
        "summary": "获取时间线",
        "description": "获取项目的时间线",
        "operationId": "get_project_timeline_api_v1_project_projects__project_id__timeline_get",
        "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": {
        "tags": [
          "project"
        ],
        "summary": "更新时间线",
        "description": "更新项目的时间线",
        "operationId": "update_project_timeline_api_v1_project_projects__project_id__timeline_put",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/project/projects/{project_id}/export": {
      "post": {
        "tags": [
          "project"
        ],
        "summary": "导出项目",
        "description": "导出项目 (支持视频导出、图片导出等)",
        "operationId": "export_project_api_v1_project_projects__project_id__export_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/download/media/{path}": {
      "get": {
        "tags": [
          "download"
        ],
        "summary": "Download Media File",
        "description": "下载媒体文件代理端点\n\n用于代理 MinIO 中的媒体文件，支持视频、音频等文件的下载\n支持 Range 请求（视频拖动播放）\n\nArgs:\n    path: 媒体文件路径，如 videos/filename.mp4, audios/filename.mp3\n    download: true 时用 Content-Disposition: attachment（移动端「另存为」）",
        "operationId": "download_media_file_api_v1_download_media__path__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/download/cache/stats": {
      "get": {
        "tags": [
          "download"
        ],
        "summary": "Get Cache Stats",
        "description": "获取缓存统计信息（无需认证）\n\n返回缓存命中率、内存使用情况等统计数据",
        "operationId": "get_cache_stats_api_v1_download_cache_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/download/extract-text": {
      "post": {
        "tags": [
          "download"
        ],
        "summary": "Extract Text",
        "description": "提取音频文案（口播文案）\n\n从音频URL中提取口播文案文本内容\n\n返回码说明：\n- 200: 提取成功，返回文案内容\n- 202: 正在处理中，前端应每隔 retry_after 秒轮询本接口直至完成\n- 400: 请求参数错误\n- 500: 服务器内部错误",
        "operationId": "extract_text_api_v1_download_extract_text_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/download/extract-bgm": {
      "post": {
        "tags": [
          "download"
        ],
        "summary": "Extract Bgm",
        "description": "提取背景音乐\n\n从音频URL中提取背景音乐\n\n返回码说明：\n- 200: 提取成功\n- 202: 正在处理中，前端应每隔 retry_after 秒轮询本接口直至完成\n- 400: 请求参数错误\n- 500: 服务器内部错误",
        "operationId": "extract_bgm_api_v1_download_extract_bgm_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/download/extract-audio": {
      "post": {
        "tags": [
          "download"
        ],
        "summary": "Extract Audio From Video",
        "description": "从视频URL提取音频\n\n从视频URL下载并提取音频，返回音频文件URL\n\n返回码说明：\n- 200: 提取成功\n- 202: 正在处理中，前端应每隔 retry_after 秒轮询本接口直至完成\n- 400: 请求参数错误\n- 500: 服务器内部错误",
        "operationId": "extract_audio_from_video_api_v1_download_extract_audio_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/download/cache/clear": {
      "delete": {
        "tags": [
          "download"
        ],
        "summary": "Clear Cache",
        "description": "清空所有缓存\n\n需要管理员权限（当前为演示模式）",
        "operationId": "clear_cache_api_v1_download_cache_clear_delete",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/extraction/analyze": {
      "post": {
        "tags": [
          "extraction"
        ],
        "summary": "分析 URL（纯素材解析，不下载不上传）",
        "description": "分析 URL 并解析素材元数据与直链。\n\n**仅数据提取**：返回平台 video/audio/cover 直链与标题等元数据。\n**不会**下载媒体文件、**不会**上传到对象存储、**不会**做 BGM/ASR。\n需要落盘/转存、口播文案、人声分离请走独立原子能力。",
        "operationId": "analyze_url_api_v1_extraction_analyze_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/extraction/upload": {
      "post": {
        "tags": [
          "extraction"
        ],
        "summary": "登记本地上传文件（仅登记元数据，不做二次下载/转码）",
        "description": "登记用户上传的媒体文件为一条素材提取记录。\n\n仅保存用户提交的文件到存储并登记元数据（文件本身由客户端提交），\n**不做**平台下载、BGM 分离、ASR 或二次转码。",
        "operationId": "upload_file_extraction_api_v1_extraction_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/extraction/{extraction_id}": {
      "get": {
        "tags": [
          "extraction"
        ],
        "summary": "获取提取结果",
        "description": "获取提取结果详情",
        "operationId": "get_extraction_api_v1_extraction__extraction_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/extraction/{extraction_id}/progress": {
      "get": {
        "tags": [
          "extraction"
        ],
        "summary": "获取提取进度 (SSE)",
        "description": "获取提取进度（Server-Sent Events）\n\n注意: 由于 EventSource 不支持自定义 headers，\ntoken 通过 query 参数传递。\n\n资源隔离：鉴权用短会话；SSE 轮询每轮独立开/关 session，\n禁止在长连接期间持有 Depends(get_db) 连接。",
        "operationId": "get_extraction_progress_api_v1_extraction__extraction_id__progress_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/extraction/history": {
      "get": {
        "tags": [
          "extraction"
        ],
        "summary": "获取提取历史",
        "description": "获取用户的提取历史",
        "operationId": "get_extraction_history_api_v1_extraction_history_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/extraction/{extraction_id}/save-to-assets": {
      "post": {
        "tags": [
          "extraction"
        ],
        "summary": "保存到资源库（已下线）",
        "description": "云素材库已下线；请使用各端「我的空间」本地记录。",
        "operationId": "save_to_assets_api_v1_extraction__extraction_id__save_to_assets_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/extraction/{extraction_id}/download/{resource_type}": {
      "get": {
        "tags": [
          "extraction"
        ],
        "summary": "跳转到资源直链",
        "description": "按资源类型 302 跳转到解析得到的直链（服务端不二次拉取/转存）。",
        "operationId": "download_resource_api_v1_extraction__extraction_id__download__resource_type__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools": {
      "get": {
        "tags": [
          "tools"
        ],
        "summary": "Get Tools",
        "description": "获取工具列表\n返回所有可用的工具信息",
        "operationId": "get_tools_api_v1_tools_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/{tool_id}": {
      "get": {
        "tags": [
          "tools"
        ],
        "summary": "Get Tool By Id",
        "description": "根据ID获取工具信息",
        "operationId": "get_tool_by_id_api_v1_tools__tool_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tool-history": {
      "post": {
        "tags": [
          "tool-history"
        ],
        "summary": "创建工具使用历史记录",
        "description": "记录用户使用工具的历史",
        "operationId": "create_tool_history_api_v1_tool_history_post",
        "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": {
        "tags": [
          "tool-history"
        ],
        "summary": "获取工具使用历史记录列表",
        "description": "分页获取当前用户的工具使用历史记录",
        "operationId": "get_tool_history_list_api_v1_tool_history_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tool-history/{history_id}": {
      "get": {
        "tags": [
          "tool-history"
        ],
        "summary": "获取单个工具使用历史记录",
        "description": "根据ID获取工具使用历史记录详情",
        "operationId": "get_tool_history_api_v1_tool_history__history_id__get",
        "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": {
        "tags": [
          "tool-history"
        ],
        "summary": "删除工具使用历史记录",
        "description": "根据ID删除工具使用历史记录",
        "operationId": "delete_tool_history_api_v1_tool_history__history_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tool-history/": {
      "delete": {
        "tags": [
          "tool-history"
        ],
        "summary": "批量删除工具使用历史记录",
        "description": "根据条件批量删除工具使用历史记录",
        "operationId": "delete_tool_history_batch_api_v1_tool_history__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/extract-link": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Extract Link",
        "description": "从链接提取口播文案\n\n短视频链接流水线：解析视频 → 分离音频 → ASR 识别 → 返回文案。\n普通网页仍走 HTML 抓取。",
        "operationId": "extract_link_api_v1_copywriting_extract_link_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/smart-original": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Smart Original",
        "description": "智能原创",
        "operationId": "smart_original_api_v1_copywriting_smart_original_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/image-to-text": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Image To Text",
        "description": "图片转文案：经 Backend 调 Media OCR（model=auto|glm-ocr|pp-ocrv5）。",
        "operationId": "image_to_text_api_v1_copywriting_image_to_text_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/word-to-text": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Word To Text",
        "description": "文档转文案（Backend → Media anydoc）",
        "operationId": "word_to_text_api_v1_copywriting_word_to_text_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/webpage-scrape": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Webpage Scrape",
        "description": "网页解析转文案（Backend → Media web scrape）",
        "operationId": "webpage_scrape_api_v1_copywriting_webpage_scrape_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/audio-to-text": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Audio To Text",
        "description": "音频转文案\n\n将上传的音频文件转录为文字。使用远程 AI 推理服务进行语音识别。\n\n注意: 需要配置 AI 推理服务 (SH_INFER_ENABLED=true)",
        "operationId": "audio_to_text_api_v1_copywriting_audio_to_text_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/detect-forbidden": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Detect Forbidden Words",
        "description": "违禁词检测",
        "operationId": "detect_forbidden_words_api_v1_copywriting_detect_forbidden_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/video-script": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Generate Video Script",
        "description": "生成视频脚本",
        "operationId": "generate_video_script_api_v1_copywriting_video_script_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/product-review": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Generate Product Review",
        "description": "生成产品测评",
        "operationId": "generate_product_review_api_v1_copywriting_product_review_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/xiaohongshu": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Generate Xiaohongshu",
        "description": "生成小红书风格文案",
        "operationId": "generate_xiaohongshu_api_v1_copywriting_xiaohongshu_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/copywriting/marketing": {
      "post": {
        "tags": [
          "copywriting"
        ],
        "summary": "Generate Marketing",
        "description": "生成营销文案",
        "operationId": "generate_marketing_api_v1_copywriting_marketing_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/document/formats": {
      "get": {
        "tags": [
          "document"
        ],
        "summary": "Document Formats",
        "operationId": "document_formats_api_v1_document_formats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/document/parse": {
      "post": {
        "tags": [
          "document"
        ],
        "summary": "Document Parse",
        "description": "通过文件 URL 解析文档（Word / Excel / PDF / PPT / TXT 等）。",
        "operationId": "document_parse_api_v1_document_parse_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/document/parse/upload": {
      "post": {
        "tags": [
          "document"
        ],
        "summary": "Document Parse Upload",
        "description": "上传文档并解析。",
        "operationId": "document_parse_upload_api_v1_document_parse_upload_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/web/status": {
      "get": {
        "tags": [
          "web"
        ],
        "summary": "Web Status",
        "operationId": "web_status_api_v1_web_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/web/scrape": {
      "post": {
        "tags": [
          "web"
        ],
        "summary": "Web Scrape",
        "description": "抓取网页并提取降噪正文（Markdown）。",
        "operationId": "web_scrape_api_v1_web_scrape_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/studio/projects": {
      "get": {
        "tags": [
          "studio"
        ],
        "summary": "List Projects",
        "description": "列出当前用户的 Studio 项目",
        "operationId": "list_projects_api_v1_studio_projects_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/studio/projects/quick-render": {
      "post": {
        "tags": [
          "studio"
        ],
        "summary": "Quick Render",
        "operationId": "quick_render_api_v1_studio_projects_quick_render_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/studio/projects/{project_id}": {
      "get": {
        "tags": [
          "studio"
        ],
        "summary": "Get Project",
        "operationId": "get_project_api_v1_studio_projects__project_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/studio/projects/{project_id}/run": {
      "post": {
        "tags": [
          "studio"
        ],
        "summary": "Run Project",
        "operationId": "run_project_api_v1_studio_projects__project_id__run_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/studio/projects/{project_id}/visual-assets": {
      "post": {
        "tags": [
          "studio"
        ],
        "summary": "Upsert Visual Asset",
        "operationId": "upsert_visual_asset_api_v1_studio_projects__project_id__visual_assets_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/studio/projects/{project_id}/shots/{shot_id}": {
      "put": {
        "tags": [
          "studio"
        ],
        "summary": "Patch Shot",
        "operationId": "patch_shot_api_v1_studio_projects__project_id__shots__shot_id__put",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/studio/jobs/{job_id}": {
      "get": {
        "tags": [
          "studio"
        ],
        "summary": "Get Job",
        "operationId": "get_job_api_v1_studio_jobs__job_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/proxy/stream": {
      "get": {
        "tags": [
          "proxy"
        ],
        "summary": "Proxy Stream",
        "description": "Proxy stream a URL to bypass CORS / anti-hotlink.\nThis routes the traffic through the backend with proper platform-specific headers.\n\n鉴权：\n- Authorization: Bearer <token>（fetch/XHR）\n- ?token=<jwt>（原生 video/audio 标签无法自定义请求头）\n\n安全措施：\n- 强制登录\n- 禁止访问私有 IP 地址 (10.x.x.x, 192.168.x.x, 127.0.0.1 等)\n- 禁止访问云服务元数据端点\n- DNS 解析检查防止 DNS 重绑定攻击\n\n资源隔离：鉴权/配额短会话；流式传输期间不持有 DB 连接。",
        "operationId": "proxy_stream_api_v1_proxy_stream_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/proxy/download": {
      "get": {
        "tags": [
          "proxy"
        ],
        "summary": "Proxy Download",
        "description": "Proxy download a file with proper headers to bypass anti-hotlinking.\nReturns the file with Content-Disposition header for download.\n\n鉴权：\n- Authorization: Bearer <token>（fetch/XHR）\n- ?token=<jwt>（浏览器 <a href> 原生下载无法带 Authorization）\n\n安全措施：\n- 强制登录 + 配额\n- 禁止访问私有 IP 地址\n- 禁止访问云服务元数据端点\n- DNS 解析检查防止 DNS 重绑定攻击\n\n资源隔离：鉴权/配额短会话；下载流期间不持有 DB 连接。",
        "operationId": "proxy_download_api_v1_proxy_download_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/upload/presign": {
      "post": {
        "tags": [
          "upload"
        ],
        "summary": "Presign Upload",
        "description": "签发对象存储直传凭证。\n\n- mode=put：返回 upload_url，客户端 PUT 原始 body\n- mode=proxy：本地盘或不支持时，客户端应走 /upload/minio\n允许匿名（与 /minio 一致，供工具输入）。",
        "operationId": "presign_upload_api_v1_upload_presign_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/upload/minio": {
      "post": {
        "tags": [
          "upload"
        ],
        "summary": "Upload To Minio",
        "description": "代理上传到对象存储（默认 TOS），返回可下载 URL。\n\n路径名 `/minio` 为历史兼容；直传失败时 Web 会降级到此接口。",
        "operationId": "upload_to_minio_api_v1_upload_minio_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/history": {
      "get": {
        "tags": [
          "tasks"
        ],
        "summary": "Get Async Task History Endpoint",
        "operationId": "get_async_task_history_endpoint_api_v1_tasks_history_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{task_id}/progress": {
      "get": {
        "tags": [
          "tasks"
        ],
        "summary": "Get Async Task Progress Endpoint",
        "operationId": "get_async_task_progress_endpoint_api_v1_tasks__task_id__progress_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks/{task_id}": {
      "get": {
        "tags": [
          "tasks"
        ],
        "summary": "Get Async Task Endpoint",
        "operationId": "get_async_task_endpoint_api_v1_tasks__task_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/basic/extract": {
      "post": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Extract Audio",
        "description": "从视频提取音频",
        "operationId": "extract_audio_api_v1_audio_basic_extract_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/basic/trim": {
      "post": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Trim Audio",
        "description": "音频裁剪",
        "operationId": "trim_audio_api_v1_audio_basic_trim_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/basic/merge": {
      "post": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Merge Audio",
        "description": "音频拼接",
        "operationId": "merge_audio_api_v1_audio_basic_merge_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/basic/convert": {
      "post": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Convert Format",
        "description": "音频格式转换",
        "operationId": "convert_format_api_v1_audio_basic_convert_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/basic/mix": {
      "post": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Mix Audio",
        "description": "混音（添加背景音乐）",
        "operationId": "mix_audio_api_v1_audio_basic_mix_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/basic/split": {
      "post": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Split Audio",
        "description": "按时间切分音频（固定时长或等分 N 段）",
        "operationId": "split_audio_api_v1_audio_basic_split_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/basic/formats": {
      "get": {
        "tags": [
          "audio",
          "Audio - Basic"
        ],
        "summary": "Get Supported Formats",
        "description": "获取支持的音频格式",
        "operationId": "get_supported_formats_api_v1_audio_basic_formats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/effects/volume": {
      "post": {
        "tags": [
          "audio",
          "Audio - Effects"
        ],
        "summary": "Adjust Volume",
        "description": "调整音量",
        "operationId": "adjust_volume_api_v1_audio_effects_volume_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/effects/speed": {
      "post": {
        "tags": [
          "audio",
          "Audio - Effects"
        ],
        "summary": "Change Speed",
        "description": "变速",
        "operationId": "change_speed_api_v1_audio_effects_speed_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/effects/fade": {
      "post": {
        "tags": [
          "audio",
          "Audio - Effects"
        ],
        "summary": "Fade Audio",
        "description": "淡入淡出",
        "operationId": "fade_audio_api_v1_audio_effects_fade_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/effects/voice-effect": {
      "post": {
        "tags": [
          "audio",
          "Audio - Effects"
        ],
        "summary": "Apply Voice Effect",
        "description": "变声效果",
        "operationId": "apply_voice_effect_api_v1_audio_effects_voice_effect_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/effects/denoise": {
      "post": {
        "tags": [
          "audio",
          "Audio - Effects"
        ],
        "summary": "Denoise Audio",
        "description": "AI 音频降噪：engine=resemble（默认）| mossformer2-se",
        "operationId": "denoise_audio_api_v1_audio_effects_denoise_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/effects/effects": {
      "get": {
        "tags": [
          "audio",
          "Audio - Effects"
        ],
        "summary": "List Voice Effects",
        "description": "常用变声目标音色（Seed-VC 预设；兼容旧 effects 字段名）。",
        "operationId": "list_voice_effects_api_v1_audio_effects_effects_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/ai/transcribe": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Transcribe Audio",
        "description": "语音转文字 (STT / ASR)\n\n使用 Qwen3-ASR。可选 with_align=true 调用 forced-align 补词级时间戳。",
        "operationId": "transcribe_audio_api_v1_audio_ai_transcribe_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/align": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Align Audio",
        "description": "词级强制对齐\n\n输入音频 URL + 已有转写文本，返回词/句时间戳列表。\n可与 /transcribe 组合：先转写再对齐。",
        "operationId": "align_audio_api_v1_audio_ai_align_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/enhance": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Enhance Audio",
        "description": "人声增强 / 音频 AI 增强\n\nmode: enhance | denoise\nengine: mossformer2-se-sr（默认）| resemble",
        "operationId": "enhance_audio_api_v1_audio_ai_enhance_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/voice-convert": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Voice Convert",
        "description": "音频变声（Seed-VC）\n\n将 source 音频内容转为参考音色；可用 preset_id（Qwen3 合成示例）或自定义 reference_url。",
        "operationId": "voice_convert_api_v1_audio_ai_voice_convert_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/voice-change/presets": {
      "get": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "List Voice Change Presets",
        "description": "检索常用变声目标音色示例（Qwen3-TTS 合成，可试听）。",
        "operationId": "list_voice_change_presets_api_v1_audio_ai_voice_change_presets_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/ai/voice-change/presets/{preset_id}": {
      "get": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Get Voice Change Preset",
        "description": "单个变声预设；默认合成/返回 Qwen3 试听音。",
        "operationId": "get_voice_change_preset_api_v1_audio_ai_voice_change_presets__preset_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/ai/vocal-separate": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Vocal Separate",
        "description": "人声/伴奏分离\n\n使用 Demucs AI 模型分离音频中的人声和背景音乐。",
        "operationId": "vocal_separate_api_v1_audio_ai_vocal_separate_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/tts": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Text To Speech",
        "description": "文字转语音 (TTS) — EdgeTTS / Qwen3-TTS",
        "operationId": "text_to_speech_api_v1_audio_ai_tts_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/tts/stream": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Text To Speech Stream",
        "description": "分句增量 TTS：每段完成后以 SSE 发出音频 URL，结束事件提供合并成品 URL。",
        "operationId": "text_to_speech_stream_api_v1_audio_ai_tts_stream_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/voice-clone": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Voice Clone",
        "description": "音色克隆合成（Qwen3-TTS）\n\n用参考音频即时克隆并合成 text；默认写入「我的克隆」音色库，\n供文字配音通过 prompt_audio_url 复用。VIP 专属。",
        "operationId": "voice_clone_api_v1_audio_ai_voice_clone_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/voice-design": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Voice Design",
        "description": "音色设计试听（Qwen3-TTS VoiceDesign）\n\n用自然语言 instruct 描述音色并合成试听音频；确认后调用\nPOST /voice-design/save 写入「我的克隆」，供文字配音复用。",
        "operationId": "voice_design_api_v1_audio_ai_voice_design_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/voice-design/save": {
      "post": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Save Voice Design",
        "description": "确认使用设计音色：将试听音频作为参考音写入「我的克隆」。\n\n不额外合成；后续文字配音通过 prompt_audio_url + Base 模型克隆复用。",
        "operationId": "save_voice_design_api_v1_audio_ai_voice_design_save_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/tts/voices/mine": {
      "get": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Get My Tts Voices",
        "description": "获取当前用户已保存的克隆音色（文字配音「我的克隆」）。",
        "operationId": "get_my_tts_voices_api_v1_audio_ai_tts_voices_mine_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/tts/voices/mine/{voice_id}": {
      "delete": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Delete My Tts Voice",
        "description": "删除我的克隆音色。",
        "operationId": "delete_my_tts_voice_api_v1_audio_ai_tts_voices_mine__voice_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/ai/tts/voices": {
      "get": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Get Tts Voices",
        "description": "获取可用的 TTS 语音列表。\n\ncategory: sample（Edge 全量→Qwen3 克隆）| qwen3 | edge | all\nlocale: 语种前缀或完整 locale（zh / zh-CN / en / en-US）\nq: 搜索关键字\n\n用户克隆音色请用 GET /tts/voices/mine（需登录）。\n\n额外返回 languages：按语种聚合的数量，便于前端国际化语言选择。",
        "operationId": "get_tts_voices_api_v1_audio_ai_tts_voices_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/ai/status": {
      "get": {
        "tags": [
          "audio",
          "Audio - AI"
        ],
        "summary": "Get Ai Status",
        "description": "获取 AI 服务状态",
        "operationId": "get_ai_status_api_v1_audio_ai_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/ai/tts/streaming/status": {
      "get": {
        "tags": [
          "audio",
          "Audio - TTS Streaming"
        ],
        "summary": "Streaming Status",
        "operationId": "streaming_status_api_v1_audio_ai_tts_streaming_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/ai/tts/audio-stream": {
      "post": {
        "tags": [
          "audio",
          "Audio - TTS Streaming"
        ],
        "summary": "Audio Stream",
        "operationId": "audio_stream_api_v1_audio_ai_tts_audio_stream_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TTSByteStreamRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/voiceover/synthesize": {
      "post": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Synthesize Voiceover",
        "description": "配音合成（支持多段精细配置）\n\n- 支持多段文本分别设置音色、语速、音调\n- 支持段落间停顿控制\n- 支持合并或分段输出\n\nVIP 专属功能。",
        "operationId": "synthesize_voiceover_api_v1_audio_voiceover_synthesize_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/voiceover/tts": {
      "post": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Simple Tts",
        "description": "简单文字转语音\n\nEdgeTTS（默认）或 Qwen3-TTS；提供 prompt_audio_url 时走克隆合成。VIP 专属。",
        "operationId": "simple_tts_api_v1_audio_voiceover_tts_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/voiceover/voices": {
      "get": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Get Voices",
        "description": "获取可用音色列表\n\n包括系统预设音色和用户克隆的音色。",
        "operationId": "get_voices_api_v1_audio_voiceover_voices_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/voiceover/voices/clone": {
      "post": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Clone Voice",
        "description": "音色克隆合成（Qwen3-TTS）\n\n用参考音频即时克隆并合成 text；默认写入「我的克隆」音色库。VIP 专属。",
        "operationId": "clone_voice_api_v1_audio_voiceover_voices_clone_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/voiceover/voices/clone/upload": {
      "post": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Clone Voice Upload",
        "description": "上传参考音频并克隆合成。\n\n支持 WAV、MP3、M4A，最大 10MB。需提供 text。默认写入音色库。VIP 专属。",
        "operationId": "clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/voiceover/voices/my": {
      "get": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Get My Voices",
        "description": "获取我的克隆音色列表",
        "operationId": "get_my_voices_api_v1_audio_voiceover_voices_my_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/voiceover/voices/{voice_id}": {
      "delete": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Delete Voice",
        "description": "删除克隆音色（支持数字 id 或 clone_{id}）",
        "operationId": "delete_voice_api_v1_audio_voiceover_voices__voice_id__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/voiceover/status": {
      "get": {
        "tags": [
          "audio",
          "Audio - Voiceover"
        ],
        "summary": "Get Voiceover Status",
        "description": "获取配音服务状态 (EdgeTTS)",
        "operationId": "get_voiceover_status_api_v1_audio_voiceover_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/audio/tasks/vocal-separate": {
      "post": {
        "tags": [
          "audio",
          "Audio - Tasks"
        ],
        "summary": "Create Vocal Separate Task",
        "operationId": "create_vocal_separate_task_api_v1_audio_tasks_vocal_separate_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/tasks/voice-convert": {
      "post": {
        "tags": [
          "audio",
          "Audio - Tasks"
        ],
        "summary": "Create Voice Convert Task",
        "description": "音频变声（Seed-VC）：预设音色或自定义参考音。",
        "operationId": "create_voice_convert_task_api_v1_audio_tasks_voice_convert_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/tasks/enhance": {
      "post": {
        "tags": [
          "audio",
          "Audio - Tasks"
        ],
        "summary": "Create Audio Enhance Task",
        "operationId": "create_audio_enhance_task_api_v1_audio_tasks_enhance_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/audio/tasks/transcribe": {
      "post": {
        "tags": [
          "audio",
          "Audio - Tasks"
        ],
        "summary": "Create Transcribe Task",
        "description": "语音转写：提交时校验配额，成功后扣减",
        "operationId": "create_transcribe_task_api_v1_audio_tasks_transcribe_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/extract-shots": {
      "post": {
        "tags": [
          "video",
          "Video - Shots"
        ],
        "summary": "Extract Shots",
        "description": "视频镜头提取（独立原子能力）\n\n检测视频中的场景切换，提取各个镜头。不属于素材提取流程。",
        "operationId": "extract_shots_api_v1_video_extract_shots_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/compress": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Compress Video",
        "description": "视频压缩。预设: wechat, douyin, kuaishou, bilibili, weibo",
        "operationId": "compress_video_api_v1_video_basic_compress_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/crop": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Crop Video",
        "description": "视频裁剪：mode=pixel|ratio|platform",
        "operationId": "crop_video_api_v1_video_basic_crop_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/trim": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Trim Video",
        "description": "视频时长裁剪",
        "operationId": "trim_video_api_v1_video_basic_trim_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/convert": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Convert Format",
        "description": "视频格式转换",
        "operationId": "convert_format_api_v1_video_basic_convert_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/extract-frames": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Extract Frames",
        "description": "视频抽帧",
        "operationId": "extract_frames_api_v1_video_basic_extract_frames_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/export-keyframe": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Export Keyframe",
        "description": "导出关键帧",
        "operationId": "export_keyframe_api_v1_video_basic_export_keyframe_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/stitch": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Stitch Videos",
        "description": "视频拼接",
        "operationId": "stitch_videos_api_v1_video_basic_stitch_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/modify-md5": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Modify Md5",
        "description": "修改视频MD5",
        "operationId": "modify_md5_api_v1_video_basic_modify_md5_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/add-cover": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Add Cover",
        "description": "添加封面",
        "operationId": "add_cover_api_v1_video_basic_add_cover_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/to-audio": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Video To Audio",
        "description": "视频转音频 —— 委托 audio_extract，与 /audio/basic/extract 行为一致",
        "operationId": "video_to_audio_api_v1_video_basic_to_audio_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/remove-audio": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Remove Original Sound",
        "description": "消除原声 - 移除视频音轨（ffmpeg -an）",
        "operationId": "remove_original_sound_api_v1_video_basic_remove_audio_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/extract-shots": {
      "post": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Extract Shots Compat",
        "description": "镜头切分（兼容路径）\n\n推荐使用独立原子接口 POST /api/v1/video/extract-shots。",
        "operationId": "extract_shots_compat_api_v1_video_basic_extract_shots_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/basic/formats": {
      "get": {
        "tags": [
          "video",
          "Video - Basic"
        ],
        "summary": "Get Supported Formats",
        "description": "获取支持的视频格式（元数据，无需鉴权）",
        "operationId": "get_supported_formats_api_v1_video_basic_formats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/video/effects/mirror": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Mirror Video",
        "description": "对称镜像",
        "operationId": "mirror_video_api_v1_video_effects_mirror_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/reverse": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Reverse Video",
        "description": "视频倒放",
        "operationId": "reverse_video_api_v1_video_effects_reverse_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/to-gif": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Video To Gif",
        "description": "视频转GIF（高质量 palette）",
        "operationId": "video_to_gif_api_v1_video_effects_to_gif_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/text-watermark": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Add Text Watermark",
        "description": "添加文字水印",
        "operationId": "add_text_watermark_api_v1_video_effects_text_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/sticker-watermark": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Add Sticker Watermark",
        "description": "添加贴纸水印",
        "operationId": "add_sticker_watermark_api_v1_video_effects_sticker_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/doodle-watermark": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Add Doodle Watermark",
        "description": "添加涂鸦水印",
        "operationId": "add_doodle_watermark_api_v1_video_effects_doodle_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/smudge": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Smudge",
        "description": "区域打码/模糊（CPU）",
        "operationId": "smudge_api_v1_video_effects_smudge_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/filter": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Video Filter",
        "description": "视频滤镜（FFmpeg）",
        "operationId": "video_filter_api_v1_video_effects_filter_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/effect": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Video Effect",
        "description": "视频特效（FFmpeg）",
        "operationId": "video_effect_api_v1_video_effects_effect_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/burn-subtitle": {
      "post": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "Burn Subtitle",
        "description": "烧录硬字幕（FFmpeg）",
        "operationId": "burn_subtitle_api_v1_video_effects_burn_subtitle_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/effects/filters": {
      "get": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "List Filters",
        "operationId": "list_filters_api_v1_video_effects_filters_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/video/effects/effects": {
      "get": {
        "tags": [
          "video",
          "Video - Effects"
        ],
        "summary": "List Effects",
        "operationId": "list_effects_api_v1_video_effects_effects_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/video/ai/watermark-remove": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Watermark Remove",
        "description": "AI 去水印（Infer / ProPainter 链路）",
        "operationId": "watermark_remove_api_v1_video_ai_watermark_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/subtitle-remove": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Subtitle Remove",
        "description": "视频去字幕（同步，兼容移动端；Web/Extension 请用异步任务接口）\n\n推荐：POST /api/v1/video/tasks/subtitle-removal + GET .../{task_id}\n\n- 区域二选一：传 region（像素）→ 去该区域；不传 → auto（底部字幕带）\n- mode=fast|standard|high（全部 OpenCV TELEA/NS，由 Media 按档调参）",
        "operationId": "subtitle_remove_api_v1_video_ai_subtitle_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/subtitle-detect": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Subtitle Detect",
        "description": "自动检测字幕条带区域，返回推荐区域供前端回填。",
        "operationId": "subtitle_detect_api_v1_video_ai_subtitle_detect_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/upscale": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Upscale",
        "description": "视频超分（同步兼容）。推荐：POST /video/tasks/upscale + GET /api/v1/tasks/{id}",
        "operationId": "video_upscale_api_v1_video_ai_upscale_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/enhance": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Enhance",
        "description": "视频 AI 增强（同步兼容）。推荐：POST /video/tasks/enhance + GET /api/v1/tasks/{id}",
        "operationId": "video_enhance_api_v1_video_ai_enhance_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/bg-remove": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Bg Removal",
        "description": "视频抠图（同步兼容）。推荐：POST /video/tasks/bg-remove + GET /api/v1/tasks/{id}",
        "operationId": "video_bg_removal_api_v1_video_ai_bg_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/capabilities": {
      "get": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Generate Capabilities",
        "description": "文生视频能力：已配置供应商 + xbai/H3 capabilities（失败不 5xx）。",
        "operationId": "video_generate_capabilities_api_v1_video_ai_capabilities_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/generate": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Generate",
        "description": "文生视频。geekai=Seedance；xbai=MiniMax H3 自建卡。\n需登录；按 tool_type=video_ai_generate 扣积分。\nxbai 立即返回本系统 task_id，用 GET /video/ai/generate/{task_id} 轮询。",
        "operationId": "video_generate_api_v1_video_ai_generate_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/ai/generate/{task_id}": {
      "get": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Generate Status",
        "description": "查询文生视频异步任务。xbai 为本系统 task_id；GeekAI 为上游 task_id。",
        "operationId": "video_generate_status_api_v1_video_ai_generate__task_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/ai/generate/{task_id}/cancel": {
      "post": {
        "tags": [
          "video",
          "Video - AI"
        ],
        "summary": "Video Generate Cancel",
        "description": "取消 xbai 生视频任务。",
        "operationId": "video_generate_cancel_api_v1_video_ai_generate__task_id__cancel_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/watermark-removal": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Watermark Removal Task",
        "description": "提交去水印任务（统一写入 async_media_tasks，Celery 投递）。\n\n指定水印区域，或 auto_detect=true 自动检测，后台异步处理。",
        "operationId": "create_watermark_removal_task_api_v1_video_tasks_watermark_removal_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/watermark-removal-from-file": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Watermark Removal Task From File",
        "description": "上传文件并创建去水印任务\n\n直接上传视频文件，后台异步处理。",
        "operationId": "create_watermark_removal_task_from_file_api_v1_video_tasks_watermark_removal_from_file_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/watermark-preview": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Watermark Preview",
        "description": "预览去水印效果（单帧）",
        "operationId": "watermark_preview_api_v1_video_tasks_watermark_preview_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/watermark-removal/history": {
      "get": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Get Watermark Removal History",
        "description": "获取当前用户的去水印任务历史（async_media_tasks）",
        "operationId": "get_watermark_removal_history_api_v1_video_tasks_watermark_removal_history_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/watermark-removal/{task_id}/progress": {
      "get": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Get Watermark Removal Progress",
        "description": "获取去水印任务进度 (SSE) — 支持 async_media_tasks",
        "operationId": "get_watermark_removal_progress_api_v1_video_tasks_watermark_removal__task_id__progress_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/watermark-removal/{task_id}": {
      "get": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Get Watermark Removal Task",
        "description": "获取去水印任务详情（优先 async_media_tasks，兼容旧表）",
        "operationId": "get_watermark_removal_task_api_v1_video_tasks_watermark_removal__task_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/subtitle-removal": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Subtitle Removal Task",
        "description": "提交去字幕任务（统一 async_media_tasks + Celery）。\n\n立即返回 task_id，客户端轮询 GET /subtitle-removal/{task_id}。",
        "operationId": "create_subtitle_removal_task_api_v1_video_tasks_subtitle_removal_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/subtitle-removal-from-file": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Subtitle Removal Task From File",
        "description": "上传文件并创建去字幕任务（公共仅 mode）",
        "operationId": "create_subtitle_removal_task_from_file_api_v1_video_tasks_subtitle_removal_from_file_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/subtitle-removal/history": {
      "get": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Get Subtitle Removal History",
        "description": "获取当前用户的去字幕任务历史（async_media_tasks）",
        "operationId": "get_subtitle_removal_history_api_v1_video_tasks_subtitle_removal_history_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/subtitle-removal/{task_id}/progress": {
      "get": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Get Subtitle Removal Progress",
        "description": "获取去字幕任务进度 (SSE) — 支持 async_media_tasks",
        "operationId": "get_subtitle_removal_progress_api_v1_video_tasks_subtitle_removal__task_id__progress_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/subtitle-removal/{task_id}": {
      "get": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Get Subtitle Removal Task",
        "description": "获取去字幕任务详情（优先 async_media_tasks，兼容旧表）",
        "operationId": "get_subtitle_removal_task_api_v1_video_tasks_subtitle_removal__task_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/video/tasks/upscale": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Upscale Task",
        "description": "提交视频超分任务",
        "operationId": "create_upscale_task_api_v1_video_tasks_upscale_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/enhance": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Enhance Task",
        "description": "提交视频 AI 增强任务",
        "operationId": "create_enhance_task_api_v1_video_tasks_enhance_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/video/tasks/bg-remove": {
      "post": {
        "tags": [
          "video",
          "Video - Tasks"
        ],
        "summary": "Create Bg Remove Task",
        "description": "提交视频抠图任务",
        "operationId": "create_bg_remove_task_api_v1_video_tasks_bg_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/upload": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Upload Image",
        "operationId": "upload_image_api_v1_image_basic_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/compress": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Compress Image",
        "operationId": "compress_image_api_v1_image_basic_compress_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/convert": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Convert Format",
        "operationId": "convert_format_api_v1_image_basic_convert_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/resize": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Resize Image",
        "operationId": "resize_image_api_v1_image_basic_resize_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/mirror": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Mirror Image",
        "operationId": "mirror_image_api_v1_image_basic_mirror_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/collage": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Collage Images",
        "operationId": "collage_images_api_v1_image_basic_collage_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/triple-cover": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Triple Cover",
        "operationId": "triple_cover_api_v1_image_basic_triple_cover_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/modify-md5": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Modify Md5",
        "operationId": "modify_md5_api_v1_image_basic_modify_md5_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/crop": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Crop Image",
        "operationId": "crop_image_api_v1_image_basic_crop_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/rotate": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Rotate Image",
        "operationId": "rotate_image_api_v1_image_basic_rotate_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/mosaic": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Mosaic Image",
        "operationId": "mosaic_image_api_v1_image_basic_mosaic_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/adjust": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Adjust Image",
        "operationId": "adjust_image_api_v1_image_basic_adjust_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/stretch-recovery": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Stretch Recovery",
        "operationId": "stretch_recovery_api_v1_image_basic_stretch_recovery_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/defog": {
      "post": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Defog Image",
        "operationId": "defog_image_api_v1_image_basic_defog_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/basic/formats": {
      "get": {
        "tags": [
          "image",
          "Image - Basic"
        ],
        "summary": "Get Supported Formats",
        "operationId": "get_supported_formats_api_v1_image_basic_formats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/image/effects/text-watermark": {
      "post": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "Add Text Watermark",
        "operationId": "add_text_watermark_api_v1_image_effects_text_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/effects/sticker-watermark": {
      "post": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "Add Sticker Watermark",
        "operationId": "add_sticker_watermark_api_v1_image_effects_sticker_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/effects/doodle-watermark": {
      "post": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "Add Doodle Watermark",
        "operationId": "add_doodle_watermark_api_v1_image_effects_doodle_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/effects/batch-watermark": {
      "post": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "Batch Watermark",
        "operationId": "batch_watermark_api_v1_image_effects_batch_watermark_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/effects/filter": {
      "post": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "Filter Image",
        "operationId": "filter_image_api_v1_image_effects_filter_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/effects/effect": {
      "post": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "Effect Image",
        "operationId": "effect_image_api_v1_image_effects_effect_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/effects/filters": {
      "get": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "List Filters",
        "operationId": "list_filters_api_v1_image_effects_filters_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/image/effects/effects": {
      "get": {
        "tags": [
          "image",
          "Image - Effects"
        ],
        "summary": "List Effects",
        "operationId": "list_effects_api_v1_image_effects_effects_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/image/ai/cutout": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Ai Cutout",
        "description": "AI 抠图（同步 rembg；完整异步请用 /bg-remove）",
        "operationId": "ai_cutout_api_v1_image_ai_cutout_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/colorize": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Colorize Photo",
        "description": "黑白照片上色",
        "operationId": "colorize_photo_api_v1_image_ai_colorize_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/lossless-zoom": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Lossless Zoom",
        "description": "无损放大",
        "operationId": "lossless_zoom_api_v1_image_ai_lossless_zoom_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/enhance-clarity": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Enhance Clarity",
        "description": "清晰度增强",
        "operationId": "enhance_clarity_api_v1_image_ai_enhance_clarity_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/portrait-anime": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Portrait Animation",
        "description": "人像动漫化",
        "operationId": "portrait_animation_api_v1_image_ai_portrait_anime_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/style-transfer": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Style Transfer",
        "description": "风格转换（Media 预设；后续迁 Infer 真模型）",
        "operationId": "style_transfer_api_v1_image_ai_style_transfer_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/bg-remove": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Background Remove",
        "description": "AI背景移除\n\n支持自动识别前景并移除背景。\n可选返回mask，支持边缘羽化。",
        "operationId": "background_remove_api_v1_image_ai_bg_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/extend": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Extend",
        "description": "AI图像扩展 (Outpainting)\n\n支持向上/下/左/右/全方向扩展。\n可自定义扩展比例，支持内容提示词引导生成。",
        "operationId": "image_extend_api_v1_image_ai_extend_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/recolor": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Recolor",
        "description": "AI图像重着色\n\n支持指定目标颜色，多种风格。",
        "operationId": "image_recolor_api_v1_image_ai_recolor_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/upscale": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Upscale",
        "description": "AI图像放大 (Super Resolution)\n\n支持2x/4x/8x放大，可选人脸增强。",
        "operationId": "image_upscale_api_v1_image_ai_upscale_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/object-remove": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Object Remove",
        "description": "AI对象移除 (Inpainting)\n\n通过mask标记要移除的区域，自动填充背景。",
        "operationId": "object_remove_api_v1_image_ai_object_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/enhance": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Enhance",
        "description": "AI图像增强\n\n自动/人脸/通用三种增强模式。\n可调节锐化、降噪、色彩增强强度。",
        "operationId": "image_enhance_api_v1_image_ai_enhance_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/bg-remove/upload": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Background Remove Upload",
        "description": "AI背景移除（文件上传）",
        "operationId": "background_remove_upload_api_v1_image_ai_bg_remove_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/extend/upload": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Extend Upload",
        "description": "AI图像扩展（文件上传）",
        "operationId": "image_extend_upload_api_v1_image_ai_extend_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/recolor/upload": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Recolor Upload",
        "description": "AI图像重着色（文件上传）",
        "operationId": "image_recolor_upload_api_v1_image_ai_recolor_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/upscale/upload": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Upscale Upload",
        "description": "AI图像放大（文件上传）",
        "operationId": "image_upscale_upload_api_v1_image_ai_upscale_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/object-remove/upload": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Object Remove Upload",
        "description": "AI对象移除（文件上传）",
        "operationId": "object_remove_upload_api_v1_image_ai_object_remove_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/enhance/upload": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Enhance Upload",
        "description": "AI图像增强（文件上传）",
        "operationId": "image_enhance_upload_api_v1_image_ai_enhance_upload_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/watermark-remove": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Watermark Remove",
        "description": "图片去水印（同步兼容；Web 推荐任务接口）\n\n推荐：POST /api/v1/image/tasks/watermark-remove + GET /api/v1/tasks/{id}\n\n- regions 优先；其次 mask_url；都为空时 auto_detect（OpenNoMark / OWLv2）",
        "operationId": "image_watermark_remove_api_v1_image_ai_watermark_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/generate": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Generate",
        "description": "文生图（同步）\n\nGeekAI（quality=low，size 由调用方指定且 ≤1K，按 GPT-Image-2.5 约束修正）。\n模型由请求 model 指定：gpt-image-2 / gpt-image-2.5-sunburst。\n\n需登录；按 tool_type=image_generate 扣积分。\n建议客户端超时 ≥300s。",
        "operationId": "image_generate_api_v1_image_ai_generate_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/task/{task_id}": {
      "get": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Get Task",
        "description": "获取任务详情（仅任务所有者）",
        "operationId": "get_task_api_v1_image_ai_task__task_id__get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/image/ai/task/{task_id}/progress": {
      "get": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Get Task Progress Sse",
        "description": "获取任务进度 (SSE)；使用独立 DB session，避免长连接占用请求级会话。",
        "operationId": "get_task_progress_sse_api_v1_image_ai_task__task_id__progress_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/image/ai/history": {
      "get": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Get Task History",
        "description": "获取当前用户的任务历史",
        "operationId": "get_task_history_api_v1_image_ai_history_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/image/ai/ocr/models": {
      "get": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Ocr Models",
        "description": "OCR 可选模型（业务传 model=glm-ocr|pp-ocrv5）。",
        "operationId": "image_ocr_models_api_v1_image_ai_ocr_models_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/ocr/status": {
      "get": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Ocr Status Api",
        "description": "GLM-OCR 能力状态。",
        "operationId": "image_ocr_status_api_api_v1_image_ai_ocr_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/ocr": {
      "post": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Image Ocr Api",
        "description": "图片 OCR（第一推荐 GLM-OCR）。\n文案工具「图片转文案」走 /copywriting/image-to-text，内部同样优先调用本能力。",
        "operationId": "image_ocr_api_api_v1_image_ai_ocr_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/image/ai/status": {
      "get": {
        "tags": [
          "image",
          "Image - AI"
        ],
        "summary": "Get Ai Status",
        "description": "获取 AI 服务状态",
        "operationId": "get_ai_status_api_v1_image_ai_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/image/tasks/watermark-remove": {
      "post": {
        "tags": [
          "image",
          "Image - Tasks"
        ],
        "summary": "Create Image Watermark Remove Task",
        "operationId": "create_image_watermark_remove_task_api_v1_image_tasks_watermark_remove_post",
        "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"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/chat": {
      "post": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "Chat",
        "description": "发送聊天消息 (基于 QueryEngine)\n\n- 自动创建或使用已有会话\n- 支持工具调用\n- 支持上下文记忆\n\n示例:\n```\nPOST /api/v1/chat\n{\n    \"message\": \"帮我提取这个视频的素材 https://...\",\n    \"stream\": false\n}\n```",
        "operationId": "chat_api_v1_chat_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/stream": {
      "post": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "Chat Stream",
        "description": "流式聊天 (基于 QueryEngine，SSE)\n\n返回 Server-Sent Events 格式:\n```\ndata: {\"type\": \"session\", \"data\": {\"session_key\": \"...\"}}\n\ndata: {\"type\": \"stream_request_start\", \"data\": {\"turn\": 1}}\n\ndata: {\"type\": \"text_delta\", \"data\": {\"text\": \"Hello\"}}\n\ndata: {\"type\": \"tool_use\", \"data\": {\"name\": \"video_extraction\", ...}}\n\ndata: {\"type\": \"confirmation_request\", \"data\": {\"tool_call_id\": \"...\", ...}}\n\ndata: {\"type\": \"tool_result\", \"data\": {\"success\": true, ...}}\n\ndata: {\"type\": \"done\", \"data\": {\"status\": \"completed\", ...}}\n```",
        "operationId": "chat_stream_api_v1_chat_stream_post",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/sessions": {
      "get": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "List Sessions",
        "description": "列出会话（基于 QueryEngine 进程内缓存）",
        "operationId": "list_sessions_api_v1_chat_sessions_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/sessions/{session_key}": {
      "get": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "Get Session",
        "description": "获取会话信息",
        "operationId": "get_session_api_v1_chat_sessions__session_key__get",
        "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": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "Delete Session",
        "description": "删除会话",
        "operationId": "delete_session_api_v1_chat_sessions__session_key__delete",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/sessions/{session_key}/messages": {
      "get": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "Get Session Messages",
        "description": "获取会话消息历史",
        "operationId": "get_session_messages_api_v1_chat_sessions__session_key__messages_get",
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/tools": {
      "get": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "List Tools",
        "description": "获取可用工具列表",
        "operationId": "list_tools_api_v1_chat_tools_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/health": {
      "get": {
        "tags": [
          "chat",
          "Chat (deprecated)"
        ],
        "summary": "Health Check",
        "description": "健康检查",
        "operationId": "health_check_api_v1_chat_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/": {
      "get": {
        "summary": "Root",
        "operationId": "root__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    }
  },
  "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",
                  "gpt-image-2.6-flare",
                  "gpt-image-2.6-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）。"
      },
      "TTSByteStreamRequest": {
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 5000,
            "minLength": 1,
            "title": "Text"
          },
          "engine": {
            "type": "string",
            "enum": [
              "edge",
              "qwen3"
            ],
            "title": "Engine",
            "default": "edge"
          },
          "voice": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice"
          },
          "speed": {
            "type": "number",
            "maximum": 2.0,
            "minimum": 0.5,
            "title": "Speed",
            "default": 1.0
          },
          "pitch": {
            "type": "number",
            "maximum": 12.0,
            "minimum": -12.0,
            "title": "Pitch",
            "default": 0.0
          },
          "output_format": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "mp3",
                  "pcm"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Format"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "text"
        ],
        "title": "TTSByteStreamRequest"
      },
      "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": "number",
            "maximum": 15.0,
            "minimum": 5.0,
            "title": "Duration",
            "description": "时长秒 5-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"
          }
        },
        "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"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.sniphunter.com"
    }
  ]
}