# SadTalker 文档 ## 目录 1. [基础信息](#基础信息) 2. [接口列表](#接口列表) - [生成动态视频(并移除音频)](#1-生成动态视频并移除音频) - [生成静音视频(并裁剪视频)](#2-生成静音视频并裁剪视频) 3. [错误响应](#错误响应) 4. [文件命名约定](#文件命名约定) 5. [运行服务](#运行服务) ## 基础信息 - **应用名称**: Video Processing Service - **基础URL**: `http://:8000` ## 接口列表 ### 1. 生成动态视频(并移除音频) - **端点**: `/dynamic-video` - **方法**: `POST` - **描述**: 上传图片生成动态视频,并移除视频中的音频。 - **请求参数**: - **文件**: - **名称**: `image` - **类型**: `file` - **描述**: 要处理的图像文件,格式应为PNG或JPEG。 - **响应**: - **成功**: 返回生成的无声视频文件。 - **类型**: `video/mp4` - **失败**: - **JSON**: `{"error": "No subdirectory found in result directory"}` (如果结果目录中没有找到子目录) - **JSON**: `{"error": "Video file not found"}` (如果生成的视频文件不存在) - **示例**: ```sh curl -X POST "http://:8000/dynamic-video" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "image=@path/to/your/image.png" ``` ### 2. 生成静音视频(并裁剪视频) - **端点**: `/silent-video` - **方法**: `POST` - **描述**: 上传图片生成静音视频,并裁剪视频时长。 - **请求参数**: - **文件**: - **名称**: `image` - **类型**: `file` - **描述**: 要处理的图像文件,格式应为PNG或JPEG。 - **响应**: - **成功**: 返回生成的裁剪视频文件。 - **类型**: `video/mp4` - **失败**: - **JSON**: `{"error": "No subdirectory found in result directory"}` (如果结果目录中没有找到子目录) - **JSON**: `{"error": "Video file not found"}` (如果生成的视频文件不存在) - **示例**: ```sh curl -X POST "http://:8000/silent-video" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "image=@path/to/your/image.png" ``` ## 错误响应 所有端点均可能返回以下错误响应: - **HTTP 400**: 请求格式错误 - **JSON**: `{"detail": "Invalid request"}` - **HTTP 500**: 服务器内部错误 - **JSON**: `{"detail": "Internal server error"}` ## 文件命名约定 - 上传的图片文件将根据上传接口存储到以下路径: - 动态视频:`dynamic/dynamic_image.png` - 静音视频:`silent/silent_image.png` - 生成的视频文件将存储在 `results` 目录中的子目录下,文件名示例: - 动态视频:`dynamic_image##dynamic_audio_enhanced.mp4` - 静音视频:`silent_image##silent_audio_enhanced.mp4` - 无声视频:`dynamic_image##dynamic_audio_enhanced_dynamic.mp4` - 裁剪视频:`silent_image##silent_audio_enhanced_trimmed.mp4` ## 运行服务 - 启动服务: ```sh uvicorn main:app --host 0.0.0.0 --port 8000 ``` 请确保在实际部署时替换 `` 为你的服务器 IP 地址,并根据需要调整端口号。