开源!我用 Python 造了个 AI 视频生成框架,输入一句话自动出片

开源!我用 Python 造了个 AI 视频生成框架,输入一句话自动出片

一句话需求,AI 自动完成,视频直接输出。

最近做了一个开源项目:小云雀视频 Agent。它是一个纯粹的 AI 视频生成 Agent 框架,把用户输入的自然语言需求,自动转换成视频。

项目地址(MIT 协议):

https://github.com/xiaoyunque-video-agent/xiaoyunque-video-agent


为什么做这个

现在的 AI 视频工具很强,但用起来割裂感严重:

  1. 写好 Prompt,打开网页,粘贴,等待,下载
  2. 想换个风格?重写 Prompt,重来
  3. 想做多镜头?手动拼,累死人

如果这个过程让 AI 自己完成呢?这就是小云雀的设计目标:一个让 Agent 自动完成视频生成的框架。


快速体验

bash 复制代码
git clone https://github.com/xiaoyunque-video-agent/xiaoyunque-video-agent.git
cd xiaoyunque-video-agent
pip install -e ".[dev,cli]"

# 无需 API Key,Mock 模式直接测试
python examples/generate_video.py --prompt "古代侠客雨夜竹林行走" --mock

3 秒后就能看到完整的生成流程日志。整个框架的依赖只有 5 个:Pydantic v2、httpx、python-dotenv、openai 和 typer(CLI)。


核心架构

整个框架就三层:

复制代码
用户输入
  |
  v
Workflow Agent(工作流编排)
  |
  +-> Prompt Agent(LLM 优化 Prompt)
  |
  +-> Video Agent(提交 + 轮询 + 下载)
          |
          v
    Provider 抽象层
    小云雀 / Mock / Kling(未来)
          |
          v
     生成视频

Prompt Agent

把大白话转成结构化视频 Prompt。支持 OpenAI 和 DeepSeek,几行代码就能接入:

python 复制代码
class PromptGenerator(ABC):
    async def generate(self, user_input: str) -> VideoPrompt:
        ...

AI 自动输出场景、角色、运镜、风格、光影、动态等结构化字段。

Video Agent

管理视频任务的完整生命周期。提交任务后,用指数退避轮询:

python 复制代码
# 轮询间隔:2s -> 5s -> 10s -> 30s(上限)
# 超时时间:600 秒(10 分钟)
intervals = [2, 5, 10]
timeout = 600

Provider 抽象层

就三个抽象方法:

python 复制代码
class VideoProvider(ABC):
    async def submit_video(self, options) -> TaskInfo
    async def query_task(self, task_id: str) -> TaskInfo
    async def download_video(self, url: str, path=None) -> Path

接新平台只需要继承这个接口。框架内置小云雀和 Mock 两种实现,开发阶段用 Mock,测试通过切到真实 API,零代码改动。


在代码里调用

python 复制代码
import asyncio
from src.agents.workflow import WorkflowAgent

async def main():
    wf = WorkflowAgent()
    result = await wf.run("生成 30 秒赛博朋克城市夜景视频")
    print(result.local_path)  # 视频文件路径

asyncio.run(main())

Workflow Agent 的编排代码只有 100 行,每个步骤都有清晰的日志输出。


进阶:多镜头剧本生成

单一镜头不够?框架内置了 v2.0 多镜头工作流:

复制代码
剧本文本
  v
ScriptParser        解析为镜头列表
  v
CharacterExtractor   提取角色档案(外貌、服装)
  v
SceneExtractor       提取场景信息(时间、光影)
  v
ShotGenerator        逐镜头生成,跨镜头一致性
  v
AudioDesigner        设计音效和配乐
  v
VideoCompositor      合成最终视频

数据模型用 Pydantic v2 定义:

python 复制代码
class Shot(BaseModel):
    id: int                # 镜头编号
    duration: float        # 时长(秒)
    shot_type: ShotType    # 景别:远景/中景/特写/过肩
    subject: str           # 主体
    action: str            # 动作
    camera_movement: str   # 运镜方式
    characters_in_frame: list[str]  # 画面中的角色
    prompt: str            # 生成的 Prompt

每个镜头可以独立调整,然后一键合成最终视频。


技术栈

技术 用途
Python 3.13+ 开发语言
Pydantic v2 数据模型与配置管理
httpx 异步 HTTP 客户端
asyncio 全链路异步 I/O
openai SDK LLM Prompt 优化
typer CLI 命令行

测试覆盖:25 个测试文件,核心路径加异常路径全覆盖。Mock Provider 让 CI 测试零外部依赖。


命令行工具

bash 复制代码
# 生成视频
python -m src generate --prompt "古代侠客" --duration 10 --ratio 9:16

# 仅提交任务(不等待)
python -m src submit --prompt "测试视频" --duration 10

# 查询任务状态
python -m src query task_abc123

# 下载视频
python -m src download task_abc123 --output ./my_video.mp4

写在最后

做这个项目的初衷很简单:让视频生成像写代码一样,可以被编排、被自动化。

现在的版本接入了小云雀 API,但 Provider 抽象层已经为 Kling、Runway 留好了位置。框架也是完全开源的,欢迎加功能、提 PR。

仓库地址:

https://github.com/xiaoyunque-video-agent/xiaoyunque-video-agent

欢迎在评论区聊聊你们的 AI 视频使用场景。对框架有想法也可以直接提 Issue。

如果这篇文章对你有帮助,GitHub Star 是对开源最好的支持。


本文由 CSDN Writer 自动发布

相关推荐
爆写加倍1 天前
2026新一代录音转文字AI,识别准整理快帮你省超多手动整理时间
ai
网络研究院1 天前
不装了!Claude背后的AI巨头也开始造芯片了,英伟达的“铁饭碗”要被砸?
人工智能·科技·ai·芯片·供应链·底层·产业链
bigroc1 天前
被聚光灯照中的行业,为什么总像突然起飞
ai·聚光灯
xiezhr1 天前
期待了很久的DeepSeek多模态视觉模型终于上线了
ai·多模态·ai agent·deepseek·视觉模型·deepseek harness
MicrosoftReactor1 天前
技术速递|Canvas 如何让 Agentic Workflow 更可见、可控、更高效
ai·agent·canvas
前沿在线1 天前
百度文心助手推出任务引擎 2.0,日活用户同比增长 83%,日均对话轮次增长超 2 倍
人工智能·ai·大模型
张忠琳2 天前
【deepseek-harness】DeepSeek Harness (dsh) 系统级架构分析之二
ai·agent·deepseek·harness
DevOps老兵2 天前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
wujian83112 天前
AI手机版怎么直接生成word?用“AI 导出鸭”把碎片时间变成专业文档
人工智能·ai·chatgpt·智能手机·word·ai导出鸭