Crayotter

idwts活跃维护

基于多模态大模型的视频剪辑智能体,能把文字需求直接变成成片,自动完成剪辑、合成与全流程视频生产。

🦦 Crayotter: A Multimodal AI-Agent for Video-Editing, Video-Composing, and Video Production. Powered by Multimodal LLMs for autonomous Text-to-Video agentic framework. | 基于多模态大模型 (Multimodal LLMs) 的 AI 剪辑智能体,支持从文字需求到视频成品的端到端全自动生产与创作。

v1.1.0发布于 2026-10-31 08:35 UTC252star +1 / 7 天12fork同步于 2026-11-10 18:03 UTC

怎么上手

由 README 提炼,执行前请确认
python -m pip install -r requirements.txt
python script/run_backend.py --host 127.0.0.1 --port 8765
硬件要求按 README 说明

README 未说明显存或 GPU 要求;桌面版已打包 Python、FFmpeg 和下载器,Windows 原生窗口依赖 Edge WebView2,macOS 包要求 macOS 15.0 以上且仅支持 Apple Silicon(arm64)。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于多模态大模型的视频剪辑智能体,把一句文字需求端到端跑成完整成片

基于多模态大模型的视频剪辑智能体,能把文字需求直接变成成片,自动完成剪辑、合成与全流程视频生产。

核心能力

  • 三阶段可追溯工作流:规划、剪辑研究、工具执行全程留日志
  • 用多模态模型逐条理解素材,指导叙事与节奏
  • 资源感知 DAG 调度,支持重试、冲突键与断点续跑
  • 多平台素材导入,支持 B 站、抖音、小红书、快手、YouTube 及通用链接
  • 内置分段 TTS 配音、响度归一、背景闪避与字幕烧录

容易踩的坑

需自备模型 API key、endpoint 和模型名,项目不含 API 额度;源码运行需 Python 3.10+ 及 FFmpeg/FFprobe,Mac 上可用 python script/setup_ffmpeg.py 补装;需登录的平台要先在本地浏览器授权,否则素材抓取会失败。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.1.0
  1. v1.1.0Crayotter 1.1.0最新正式版2026-10-31 · 2026-10-31 08:35 UTC

    Crayotter 1.1.0 现已支持 Windows 和 macOS 桌面使用。

    • 提供 Windows 和 Apple Silicon Mac 安装包,解压后即可打开工作台。
    • 自带视频处理工具,无需单独安装 Python 或 FFmpeg。
    • 改善配音、字幕显示和素材剪辑体验。

    下载选择

    • Windows 10/11 x64:Crayotter-Windows-x64.zip
    • macOS 15 及以上、Apple Silicon:Crayotter-macOS-arm64.zip

    首次使用请在“设置”中填写自己的模型 API 配置。Mac 包尚未通过 Apple 公证,系统可能要求确认后才能打开。

  2. v1.0.0Crayotter 1.0.02026-06-26 · 2026-06-26 16:33 UTC
    查看更新说明

    A maintenance release of the multimodal, agent-driven video editing system. This update syncs main with the latest documentation and removes the blocker that prevented the README demo video from playing inline on GitHub.

    ✨ Highlights

    • Inline README demo playback — The demo video in README.md now plays directly on GitHub. demo/showcase.mp4 is stored as a regular git blob instead of a Git LFS pointer, so blob/main/demo/showcase.mp4 renders the native HTML5 video player.
    • README restructure — Both README.md and README_CN.md rebuilt following a high-quality GitHub layout: header, table of contents, highlights, overview with framework figure, workflow diagram, quick start, log visualization, citation, and repository layout. Paper section and figures (logo.png, crayottor_framework.jpg) preserved.
    • Bilingual — English and 中文 kept in sync.

    🔧 Fixed

    • README demo video was not playable on GitHub because it was stored as a Git LFS pointer (#25). Added a path exception in .gitattributes so only demo/showcase.mp4 bypasses LFS; website/assets/videos/*.mp4 and other mp4 assets remain on LFS.
  3. v0.2.0Demo for Crayotter2026-06-10 · 2026-06-10 11:25 UTC
    查看更新说明
    • Added a complete desktop workbench for easier daily use
    • Redesigned the frontend with a modern React + Tailwind interface
    • Added Dashboard, Feedback, and Settings views
    • Added Chinese and English language support
    • Improved workflow preparation with parallel execution support
    • Added Windows desktop packaging support
    • Updated documentation with workbench usage guidance
  4. v0.1.2v0.1.2: Demo for Crayotter2026-05-03 · 2026-05-03 18:04 UTC
    查看更新说明

    Fixed the issue of dependency files

  5. v0.1.1v0.1.1: Demo for Crayotter2026-04-10 · 2026-04-10 11:10 UTC
    查看更新说明
    • Added more flexible orchestration controls, including direct Phase 3 execution, local-material-first mode, and configurable stall timeout.
    • Unified runtime settings around the portable .env, with Web UI changes syncing back to the same shared config file.
    • Hardened historical memory so past cases stay advisory-only and no longer override the current task goal.
    • Reused cached files in user_temp, surfaced analysis status in the UI, and cleaned paired cache files when uploads are deleted.
    • Fixed local-first sufficiency checks so content match is required before skipping online search.
    • Improved candidate ranking and final composition with orientation-aware scoring and crop-based fitting instead of simple stretching.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Crayotter

    Crayotter is a multimodal, agent-driven video editing system that turns a single text request into a complete edited video. It combines planning, deep editing research, and tool-based execution into a three-phase workflow, with full logs and visual trace analysis for debugging and iteration.


    📽️ Demo

    A full end-to-end run: from a one-line text request, Crayotter prepares materials, researches an editing blueprint, and produces the final edited video. The online player also includes three finished case videos.


    Table of Contents


    News


    Highlights

    • One request to one video — A single natural-language prompt drives the whole pipeline from sourcing to export.
    • Three-phase, traceable workflow — Explicit planning, pure-reasoning editing research, and controlled tool execution, all logged for replay.
    • Multimodal material understanding — Each source video is analyzed by a multimodal model to inform narrative and pacing.
    • Resource-aware DAG scheduling — Bounded concurrency for search, download, analysis, LLM, FFmpeg, TTS, and export, with retries, conflict keys, and checkpoint/resume.
    • Multi-source material import — Bilibili, Douyin, Xiaohongshu/Rednote, Kuaishou, YouTube, or generic URLs (via yt-dlp).
    • Built-in narration, subtitles, and audio mixing — Segmented TTS, loudness normalization, background-ducking, and subtitle burn-in.
    • Local workbench + desktop mode — Web UI for task management, .env-synced config, structured logs, artifact preview, and interrupted-job resume.
    • Visual trace analysis — Local server + static HTML export for inspecting phase progress and tool-call trajectories.

    Overview

    This repository centers around four core components:

    • script/agent.py — Main entrypoint. Initializes runtime, runs tasks (interactive or single request), performs workspace cleanup, and writes logs/experience memory.
    • script/graph.py — Orchestration layer (LangGraph StateGraph). Defines the three-phase workflow and routing.
    • script/tools/ — Modular toolset for search, download, analysis, cutting, transitions, narration, subtitles, and export.
    • script/visualize.py — Log parser + local trace server for inspecting phase progress and tool calls.

    Supporting folders:

    • temp/ — Intermediate and output artifacts during execution.
    • user_temp/ — User-provided local source assets.
    • logs/ — Runtime logs (video_agent_*.log).
    • memory_experience/ — Concise historical-case notes kept for reference only; they must not override the current task goal.
    • website/ — Static launch site and GitHub Pages assets.

    Workflow

    Crayotter uses a three-phase architecture:

    START -> planner -> phase1_scheduler -> material_gap_evaluator
    material_gap_evaluator -> planner (supplement) | editing_research | react_editor
    editing_research -> react_editor -> END
    
    1. Phase 1 — Material Preparation (Planner + Executor)

      • Planner emits an explicit dependency DAG.
      • A deterministic scheduler validates dependencies, resource pools, retries, and write conflicts.
      • Search, per-video download, and per-video analysis tasks execute concurrently when resources are available.
      • A Material Gap Evaluator decides whether to proceed or run an incremental sourcing round (at most two supplement rounds, reusing already-successful tasks).
      • Search candidate videos through the platform-agnostic material-source layer.
      • Import user-provided URLs from Bilibili, Douyin, Xiaohongshu/Rednote, Kuaishou, YouTube, or generic URLs when supported by yt-dlp.
      • Rank/select high-quality candidates (target orientation is a scoring factor: landscape by default, portrait when requested).
      • Download selected videos and standardize them into editing-compatible MP4/H.264/AAC assets.
      • Analyze each source video multimodally.
    2. Phase 2 — Editing Research

      • Research source analyses concurrently.
      • Build narrative, visual, pacing, and narration strategies concurrently.
      • Integrate them into one structured editing blueprint (JSON + compatibility Markdown).
      • No editing tools are called in this phase — it is pure reasoning.

      This phase can be disabled with CRAYOTTER_ENABLE_PHASE2_RESEARCH=false in the runtime .env to save tokens. When disabled, the workflow becomes: Phase 1 → Phase 3.

    3. Phase 3 — ReAct Editing Execution

      • Prefer a controlled editing DAG with parallel clip cutting and segmented TTS.
      • Keep timeline merge, mixing, subtitles, quality evaluation, and export serial.
      • Fall back to the existing ReAct editor when structured planning or validation fails.
      • Log full tool-call trajectory for later trace visualization.

    Quick Start

    Install and open

    PlatformWhere to get itHow to open
    Windows 10/11 x64Crayotter-Windows-x64.zip in ReleasesExtract the complete archive and run Crayotter.exe
    macOS Apple SiliconCrayotter-macOS-arm64.zip in ReleasesUnzip and open Crayotter.app, or move it to Applications

    Desktop packages include Python, FFmpeg, and the downloader. Conda is not required. The Windows native window uses Edge WebView2; browser mode is attempted if unavailable. The current Mac package declares macOS 15.0 or newer and targets arm64; packages are not Apple-notarized.

    Your first video

    1. Set up models: open Settings and enter your API key, endpoint, and models. Provider charges apply; Crayotter does not include API credit.
    2. Choose material: upload local videos, describe a subject for online sourcing, or provide video links.
    3. Describe the edit: include duration, style, orientation, narration, and subtitle preferences, then start the task.
    4. Review the result: preview and save the final video from the task details, checking the narration, subtitles, and footage.

    Defaults are qwen3.8-flash for planning/editing, qwen3.8-omni-flash for audio/video analysis, and qwen3-tts-flash for speech. For visual-only analysis, set the video model to qwen3.8-flash. Explicit model settings are preserved.

    Sourcing, video analysis, and model reasoning take time. Runtime depends on footage length and provider response. A 30-second task is a useful first run.

    Common questions

    Where is the result? Open the task details in the workbench. Mac runtime data defaults to ~/Library/Application Support/Crayotter; Windows uses the writable program directory or the user application-data directory.

    Why did sourcing fail? Check platform access. For platforms requiring login, authorize through your local browser and retry, or upload your own footage.

    Why did the model or narration fail? Check the API key, endpoint, model availability, and account balance. Text, video, and speech providers can be configured separately.

    Can I resume? The workbench can resume jobs marked interrupted. A failed job is different and is not guaranteed to resume in place.

    Run from source

    Use Python 3.10+ and FFmpeg/FFprobe. Runtime paths select matching bundled tools when available; on Mac, python script/setup_ffmpeg.py can fetch missing binaries.

    python -m pip install -r requirements.txt
    python script/run_backend.py --host 127.0.0.1 --port 8765
    

    Open http://127.0.0.1:8765/ui/ and configure your API in Settings. For a native window, also install requirements-desktop.txt and run python script/run_desktop.py.

    Development and research


    Citation

    If you find Crayotter useful for your research or work, please cite:

    @misc{yan2026crayottertraceablemultiagentworkflows,
          title={Crayotter: Traceable Multi-Agent Workflows for Long-Form Video Editing}, 
          author={Lecheng Yan and Yichong Zhang and Xiantao Xu and Jianze Lin and Ben Pan and Xiaoyu Zheng and Jiawei Qian and Anqi Wu and Jiahui Geng and Ruizhe Li and Fengyu Cai and Jingcheng Niu and Raymond Li and Wenxi Li and Chenyang Lyu},
          year={2026},
          eprint={2606.07636},
          archivePrefix={arXiv},
          primaryClass={cs.CV},
          url={https://arxiv.org/abs/2606.07636}, 
    }
    
    @misc{yan2026crayotterlearninglonghorizonvideo,
          title={Crayotter: Learning Long-Horizon Video Editing Agents via Group-Relative Preference Backpropagation}, 
          author={Lecheng Yan and Jianze Lin and Yichong Zhang and Ben Pan and Wenxi Li and Chenyang Lyu and Liting Zhou and Cathal Gurrin},
          year={2026},
          eprint={2608.02694},
          archivePrefix={arXiv},
          primaryClass={cs.CL},
          url={https://arxiv.org/abs/2608.02694}, 
    }
    

    Repository Layout

    Crayotter/
    ├─ script/
    │  ├─ agent.py
    │  ├─ graph.py
    │  ├─ visualize.py
    │  └─ tools/
    ├─ app/                # backend server, frontend, runtime paths
    ├─ packaging/          # Windows / macOS 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
    

    Licensed under PolyForm Noncommercial 1.0.0. Check the terms before commercial use.