部署教程:ai-video-api

1. 准备工作与环境要求

在开始之前,请确保你的系统满足以下基本要求:

  • Python版本:3.9 或更高版本。
  • 包管理工具pip
  • (可选)git,用于从源码安装。

2. 安装方式

该项目支持两种安装方式,推荐使用 pip 进行快速安装。

方式一:通过 pip 安装(推荐)

这是最快捷的方式,可以直接从Python包索引(PyPI)安装。

1
pip install ai-video-api

方式二:从源码安装

如果你想获取最新代码或进行二次开发,可以选择源码安装。

  1. 克隆仓库到本地:

    1
    2
    git clone https://github.com/starryrbs/ai-video-api.git
    cd ai-video-api
  2. (建议)创建并激活Python虚拟环境,以避免依赖冲突:

    1
    2
    3
    4
    python -m venv venv
    source venv/bin/activate # Linux/Mac
    # 或
    .\venv\Scripts\activate # Windows
  3. 安装项目所需依赖:

    1
    pip install -r requirements.txt

3. 配置API密钥

在使用前,你需要配置所选择视频服务提供商的API密钥。项目推荐使用.env文件来管理这些敏感信息。

  1. 在项目根目录下创建一个名为.env的文件。

  2. 根据你计划使用的服务,参考以下格式填入你的API密钥。项目支持通义千问(通义万相)、Vidu、Stability AI、Runway等多个供应商。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 通义千问/通义万相配置
    TONGYI_API_KEY=你的通义API_Key
    TONGYI_API_SECRET=你的通义API_Secret

    # Vidu配置
    VIDU_API_KEY=你的Vidu_API_Key
    VIDU_API_SECRET=你的Vidu_API_Secret

    # 其他供应商依此类推...

4. 运行与测试

项目自带了一个示例脚本 video_generation/example.py,你可以通过运行它来验证安装和配置是否成功,并了解基本用法。

  1. 确保已激活虚拟环境。

  2. 在项目根目录下执行:

    1
    python video_generation/example.py

该示例默认会运行“参考视频生成”功能。你可以通过编辑 example.py 文件中的 main() 函数,取消注释不同的示例函数来测试其他功能,例如:

  • text_to_video_example(default_generator): 测试文本生成视频。
  • image_to_video_example(default_generator): 测试图片生成视频。
  • batch_processing_example(default_generator): 测试批量处理。

5. 核心用法示例

以下是如何在你自己代码中调用API的简要示例。

文本生成视频

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from video_generation.factory import VideoGeneratorFactory
from video_generation.base import TextToVideoRequest, VideoProvider

# 1. 创建生成器实例,需传入服务提供商和API密钥
# 注意:实际使用时,API密钥也可以从环境变量中读取
generator = VideoGeneratorFactory.create_generator(
VideoProvider.TONGYI,
"你的API_Key"
)

# 2. 构建文本生成视频的请求
request = TextToVideoRequest(
prompt="一只可爱的猫咪在花园里玩耍,阳光明媚,画面温馨",
negative_prompt="模糊,低质量",
width=1024,
height=576,
duration=4,
fps=8,
style="写实风格"
)

# 3. 发送请求并获取响应
response = generator.text_to_video(request)
print(f"生成的任务ID: {response.task_id}")

图片生成视频

1
2
3
4
5
6
7
8
9
10
11
12
13
from video_generation.base import ImageToVideoRequest

# 构建图片生成视频的请求
request = ImageToVideoRequest(
image_url="你的图片URL",
prompt="让图片中的场景动起来",
width=1024,
height=576,
duration=4,
motion_strength=0.8
)

response = generator.image_to_video(request)

查询任务状态

1
2
3
4
5
# 使用上一步返回的task_id查询任务状态
status = generator.get_task_status(response.task_id)
print(f"进度: {status.progress * 100:.1f}%")
print(f"状态: {status.status.value}")
print(f"视频URL: {status.video_url}")

6. 注意事项

  • API额度:请确保你的账户有足够的API调用额度。
  • 异步处理:视频生成是异步任务,通常需要一段时间。建议使用异步方式处理,并利用任务ID轮询结果。
  • 视频链接有效期:生成的视频URL通常有有效期(例如,阿里云百炼平台生成的链接有效期为24小时),请及时下载保存到自己的服务器或存储服务中。