idwts/Crayotter
GitHub: idwts/Crayotter
Crayotter 是一个基于多模态大模型和 LangGraph 的 AI 视频剪辑智能体,通过三阶段可追溯工作流实现从文本需求到成品视频的端到端全自动生产。
Stars: 164 | Forks: 10
# Crayotter
下载,并使用 `ffmpeg -version` 进行验证。在 Windows 上,`script/dep/windows`(`ffmpeg.exe`、`ffprobe.cmd`、`yt-dlp.exe`)下的打包二进制文件也会被自动添加到 `PATH` 的最前面。
### 1) 环境
使用 Python 3.10+。
```
python -m venv .venv
.venv\Scripts\activate
```
### 2) 安装依赖
```
pip install -r requirements.txt
```
### 3) 配置 API 端点和运行时选项
将 `.env.example` 复制到 `.env`,然后在其中编辑各项值:
```
copy .env.example .env
```
常用选项:
```
CRAYOTTER_API_KEY=your-key
CRAYOTTER_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
CRAYOTTER_MODEL_NAME=qwen-plus
CRAYOTTER_VIDEO_MODEL_NAME=qwen-vl-max-latest
CRAYOTTER_TTS_MODEL_NAME=qwen-tts-latest
CRAYOTTER_ENABLE_PHASE2_RESEARCH=true
CRAYOTTER_ENABLE_PLAN_REVIEW=true
CRAYOTTER_DIRECT_PHASE3_EXECUTION=false
CRAYOTTER_PREFER_LOCAL_MATERIALS=false
CRAYOTTER_SEARCH_POOL_SIZE=4
CRAYOTTER_DOWNLOAD_POOL_SIZE=2
CRAYOTTER_VIDEO_ANALYSIS_POOL_SIZE=2
CRAYOTTER_LLM_POOL_SIZE=2
CRAYOTTER_FFMPEG_POOL_SIZE=2
CRAYOTTER_TTS_POOL_SIZE=2
CRAYOTTER_EXPORT_POOL_SIZE=1
CRAYOTTER_STANDARDIZE_TARGET_FPS=30
CRAYOTTER_AUDIO_LOUDNORM_TARGET=0
CRAYOTTER_AGENT_STALL_TIMEOUT_SECONDS=150
```
注意事项:
- `CRAYOTTER_DIRECT_PHASE3_EXECUTION=true` 会跳过素材搜索/下载,直接进入现有素材分析 + 阶段 3 的执行路径。
- `CRAYOTTER_ENABLE_PLAN_REVIEW=true` 会在编辑前生成一个可视化的 EditingPlan,并等待用户批准或自然语言修改后再进入阶段 3。
- `CRAYOTTER_PREFER_LOCAL_MATERIALS=true` 会优先分析本地素材,只有当前素材不足时才去线上搜索。
- 资源池变量约束了搜索、下载、视频分析、LLM、FFmpeg、TTS 以及最终导出工作。
- 素材下载通过 `download_material_video` 路由;Bilibili 仍是默认的关键词搜索源,而支持的第三方 URL 可以通过相同的 pipeline 导入和清理。
- `CRAYOTTER_STANDARDIZE_TARGET_FPS` 控制下载清理的帧率。`CRAYOTTER_AUDIO_LOUDNORM_TARGET=0` 会禁用响度归一化;设置一个负的 LUFS 值(如 `-16`)可启用两遍 EBU R128 loudnorm。
- `CRAYOTTER_AGENT_STALL_TIMEOUT_SECONDS` 控制运行中作业的“无新进度”看门狗阈值。
- 工作台 UI 会将 API 设置、阶段 2、直接进入阶段 3、本地优先模式和超时更改写回同一个 `.env` 文件中。
- 候选排序将目标朝向视为评分因素:默认为横屏,当用户明确要求时为竖屏。合并/导出使用缩放覆盖加居中裁剪,而不是直接拉伸。
- 对于 `user_temp` 下的视频,Crayotter 会将匹配的 `*_analysis.json` 写回 `user_temp`,在后续运行中复用,并且当该上传文件从工作台删除时,会移除配对的 JSON。
- `memory_experience/latest_skills.md` 会自动压缩为有限的、仅供参考的案例记录,因此它不会无限增长,也不会重新定义未来的任务目标。
### 4) 运行 Agent
交互式模式:
```
python script\agent.py
```
单次任务模式:
```
python script\agent.py "Create a 1-minute campus-themed promo video"
```
### 5) 运行工作台 GUI
桌面模式会启动后端并打开独立窗口:
```
python script\run_desktop.py
```
或者,仅启动本地后端服务:
```
python script\run_backend.py --host 127.0.0.1 --port 8765
```
然后在浏览器中打开本地工作台:
```
http://127.0.0.1:8765/ui/
```
## 日志轨迹可视化
使用最新日志启动轨迹 UI:
```
python script\visualize.py
```
使用特定日志:
```
python script\visualize.py logs\video_agent_20260321_045836.log
```
自定义端口:
```
python script\visualize.py --port 8080
```
`script\visualize.py` 还会在输入日志旁边导出一个静态轨迹 HTML 文件(例如 `*_trace.html`)。
## 引用
如果 Crayotter 对您的研究或工作有帮助,请引用:
```
@misc{yan2026crayottertraceablemultiagentworkflows,
title={Crayotter: Traceable Multi-Agent Workflows for Long-Form Video Editing},
author={Lecheng Yan and Yichong Zhang and Ben Pan and Xiaoyu Zheng and Jiawei Qian and Anqi Wu and Wenxi Li and Chenyang Lyu},
year={2026},
eprint={2606.07636},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2606.07636},
}
```
## 仓库结构
```
Crayotter/
├─ script/
│ ├─ agent.py
│ ├─ graph.py
│ ├─ visualize.py
│ └─ tools/
├─ app/ # backend server, frontend, runtime paths
├─ packaging/ # Windows release build scripts
├─ phase3_rl/ # experimental RL smoke pipeline (not the main runtime)
├─ demo/ # showcase media
├─ logs/
├─ temp/
├─ user_temp/
├─ memory_experience/
├─ website/ # static site + GitHub Pages assets
├─ logo.png
├─ crayottor_framework.jpg
└─ requirements.txt
```
如果 Crayotter 对您的研究或演示有帮助,请在 GitHub 上给本仓库点个 Star。
Crayotter 是一个多模态、agent 驱动的视频编辑系统,能将单条文本请求转化为完整的编辑后视频。它将**规划**、**深度编辑研究**和**基于工具的执行**结合为一个三阶段的工作流,并提供完整的日志和可视化轨迹分析,方便调试与迭代。 ## 📽️ 演示 一次完整的端到端运行:从一行文本请求开始,Crayotter 会准备素材、研究编辑蓝图,并输出最终剪辑好的视频。在线播放器中还包含三个已完成的案例视频。 ## 目录 - [新闻](#news) - [核心亮点](#highlights) - [概述](#overview) - [工作流](#workflow) - [快速开始](#quick-start) - [Windows 独立发行版](#windows-standalone-release) - [前置条件](#prerequisites) - [1) 环境](#1-environment) - [2) 安装依赖](#2-install-dependencies) - [3) 配置 API 端点和运行时选项](#3-configure-api-endpoints-and-runtime-options) - [4) 运行 Agent](#4-run-the-agent) - [5) 运行工作台 GUI](#5-run-the-workbench-gui) - [日志轨迹可视化](#log-trace-visualization) - [引用](#citation) - [仓库结构](#repository-layout) ## 新闻 - **2026.6.27** — Crayotter 1.0.0 新增多源素材导入、统一的下载清理功能,并更新了 Windows 发行版的打包。 - **2026.6.15** — 异步调度升级使整体视频生成工作流提速约 1.6 倍。 - **2026.5.31** — 我们的论文现已上线:[Crayotter: Traceable Multi-Agent Workflows for Long-Form Video Editing](https://arxiv.org/abs/2606.07636)。 - **2026.5.23** — 获得 100 个 Star! - **2026.5.11** — 论文页面现已上线,访问 [Crayotter 论文页面](https://idwts.github.io/Crayotter/paper/)。 - **2026.4.10** — 发行版已更新。 - **2026.3.30** — 首个发行版本现已上线。详见 [v0.1.0-demo](https://github.com/idwts/Crayotter/releases/tag/v0.1.0-demo)。 ## 核心亮点 - **一次请求生成一个视频** — 单条自然语言 prompt 即可驱动从获取素材到导出的整个 pipeline。 - **三阶段、可追溯的工作流** — 显式规划、纯逻辑推理的编辑研究以及受控的工具执行,所有过程均被记录以便重放。 - **多模态素材理解** — 每个源视频都由多模态模型进行分析,为叙事和节奏提供依据。 - **资源感知的 DAG 调度** — 为搜索、下载、分析、LLM、FFmpeg、TTS 和导出提供有限的并发支持,并具备重试、冲突键和检查点/恢复功能。 - **多源素材导入** — 支持 Bilibili、Douyin、Xiaohongshu/Rednote、Kuaishou、YouTube 或通用 URL(通过 `yt-dlp`)。 - **内置解说、字幕和音频混音** — 分段 TTS、响度归一化、背景闪避和字幕嵌入。 - **本地工作台 + 桌面模式** — 提供 Web UI 用于任务管理、与 `.env` 同步的配置、结构化日志、产出物预览以及中断任务恢复。 - **可视化轨迹分析** — 本地服务器 + 静态 HTML 导出,用于检查阶段进度和工具调用轨迹。 ## 概述
标签:AI智能体, 多模态大模型, 文生视频, 视频剪辑, 逆向工具