基于 单 Agent Loop 架构的 CLI 创意视频生成工具。输入自然语言需求,由 MiniMax 大模型规划分镜,MiniMax Hailuo 生成 AI 视频,最终输出 MP4。
用户需求 (CLI)
│
▼
┌─────────────────────────────────────┐
│ Single Agent Loop (MiniMax LLM) │
│ ┌─────────────────────────────┐ │
│ │ MiniMax-M2.5 决策下一步 │ │
│ └──────────────┬──────────────┘ │
│ ▼ │
│ ┌─────────────────────────────┐ │
│ │ 调用工具 → 观察结果 │ │
│ └──────────────┬──────────────┘ │
│ │ │
│ 循环直到 finish │
└─────────────────────────────────────┘
│
▼
output/*.mp4
| 工具 | 作用 |
|---|---|
plan_storyboard |
MiniMax LLM 规划分镜(标题、旁白、画面描述) |
generate_scene_assets |
本机 say 配音 + MiniMax Hailuo 文生视频 |
render_scene_clip |
合成 Hailuo 视频、配音与字幕 |
assemble_video |
拼接所有片段为最终 MP4 |
finish |
标记任务完成 |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt系统需安装 FFmpeg:
# macOS
brew install ffmpeg在 MiniMax 开放平台 获取 API Key 和 Group ID:
cp .env.example .env
# 编辑 .env,填入 MINIMAX_API_KEY 和 MINIMAX_GROUP_ID# 直接传入需求
python main.py "制作一个 30 秒的咖啡品牌宣传短片,风格温暖治愈"
# 交互式输入
python main.py
# 指定输出文件名
python main.py -r "用简单语言向儿童解释太阳能" -o solar.mp4生成的视频保存在 output/run_YYYYMMDD_HHMMSS/ 目录下。
| 环境变量 | 说明 | 默认值 |
|---|---|---|
MINIMAX_API_KEY |
MiniMax API 密钥 | 必填 |
MINIMAX_GROUP_ID |
MiniMax Group ID | 必填 |
MINIMAX_API_URL |
API 地址 | https://api.minimaxi.com |
MINIMAX_LLM_BASE_URL |
LLM 兼容端点 | https://api.minimaxi.com/v1 |
MINIMAX_MODEL |
Agent 决策模型 | MiniMax-M2.5 |
HAILUO_MODEL |
视频生成模型 | MiniMax-Hailuo-2.3 |
HAILUO_DURATION |
每场景时长(秒) | 6 |
HAILUO_RESOLUTION |
视频分辨率 | 1080P |
HAILUO_MAX_WAIT |
单场景最大等待时间(秒) | 600 |
MAX_AGENT_ITERATIONS |
Agent 最大循环次数 | 20 |
SCENE_PARALLELISM |
场景并行生成数 | 2 |
TTS_BACKEND |
本机 TTS 引擎(auto/say/espeak) | auto |
TTS_VOICE_ZH |
中文语音(macOS say -v) |
Ting-Ting |
TTS_VOICE_EN |
英文语音(macOS say -v) |
Samantha |
国际用户使用 https://api.minimax.io 替换 API 地址即可。
powerCut/
├── main.py # CLI 入口
├── config.py # 配置
├── agent/
│ ├── loop.py # Agent Loop 核心
│ ├── state.py # 状态管理
│ ├── prompts.py # 系统提示词
│ ├── providers/
│ │ └── minimax_hailuo.py # Hailuo API 客户端
│ └── tools/
│ ├── registry.py # 工具注册与调度
│ ├── media.py # 本机 TTS + Hailuo 视频生成
│ ├── local_tts.py # macOS say / Linux espeak-ng
│ └── video.py # 视频合成
├── output/ # 生成产物
└── requirements.txt
- 用户通过 CLI 输入创意需求
- Agent 调用 MiniMax-M2.5 分析需求,规划 3-5 个分镜场景
- 逐场景调用 MiniMax Hailuo 文生视频 API(异步任务 + 轮询)
- 使用 macOS 内置
say命令生成本地旁白,MoviePy 将 Hailuo 视频与配音、字幕合成 - 拼接所有片段,输出 1080P MP4 视频
Hailuo 视频生成为异步流程:创建任务 → 轮询状态 → 下载视频文件。