TL;DR

OpenMontage là hệ thống video production open source vận hành theo mô hình agentic. Bạn không mở website, không kéo thả timeline, không mua subscription. Bạn nói với AI coding assistant thứ bạn muốn và toàn bộ dây chuyền production - từ research tới render - tự chạy trong repo trên máy bạn.

Điểm quan trọng nhất: OpenMontage biết làm cả video ảnh tĩnh có animation (Ken Burns, spring animation trên FLUX images) lẫn video thật - agent build corpus từ Archive.org, NASA, Wikimedia Commons, Pexels, dùng CLIP index để tìm clip chuyển động phù hợp rồi cắt dựng timeline như một editor thực thụ.

Trong bài này tôi mổ xẻ kiến trúc agent-first, 12 pipeline sản xuất và cách 3 lớp kiến thức (tool registry + skill markdown + Layer 3 API knowledge) khiến agent tự nghiên cứu, tự viết prompt, tự chọn provider. Phần 2 sẽ đi sâu vào provider gateway 52 tool, quality gate, Backlot dashboard và bảng chi phí thực tế từ các production demo. Đọc trước Phần 2.

Mascot cú đội beret đạo diễn cầm clapperboard đứng giữa các màn hình đang render video sci-fi và anime
OpenMontage cấu hình lại vai trò của AI coding assistant - từ trợ lý viết code sang director điều phối cả dây chuyền production.

Vấn đề với đa số công cụ AI video hiện nay

Thị trường AI video đang ngập trong hai kiểu sản phẩm. Kiểu thứ nhất là SaaS UI-first như Runway, Pika, Fliki, Synthesia - bạn trả tiền hàng tháng, upload prompt, đợi output. Được cái nhanh, mất cái bạn phụ thuộc hoàn toàn vào roadmap của họ, không thấy được provider nào tạo clip nào, không kiểm soát chi phí ở cấp asset, không thể tự chèn logic tùy chỉnh cho pipeline.

Kiểu thứ hai là các bản demo mã nguồn mở kiểu "AI video generator" - thường chỉ là script Python gọi 1 API rồi ghép slideshow. Marketing gọi đó là "free AI video" nhưng thực chất là ảnh tĩnh với Ken Burns effect. Bạn không tạo được một video documentary thực sự, không có narration đồng bộ subtitle, không có music mixing, không có quality gate.

OpenMontage đứng ở một chỗ khác hẳn. Nó là hệ điều hành cho một studio video được điều phối bởi agent. Đây là cách README chính thức mô tả sự khác biệt:

OpenMontage có thể làm video từ ảnh tĩnh, nhưng nó cũng có thể làm video thật cho workflow free/open source - agent build corpus từ stock footage free và archive mở, retrieve clip chuyển động thực, cắt dựng thành timeline và render ra phẩm hoàn chỉnh. Đó không phải trick "animate vài ảnh tĩnh rồi gọi là video".

Bạn có thể nghĩ đơn giản như thế này: nếu Runway là công cụ, thì OpenMontage là người điều phối công cụ. Nó biết khi nào nên gọi Kling để có motion đẹp, khi nào nên xài WAN 2.1 local để tiết kiệm, khi nào nên bỏ qua video AI hoàn toàn và cắt từ Archive.org vì brief yêu cầu "real footage only".

Kiến trúc agent-first: agent chính là orchestrator

Đây là chỗ khiến OpenMontage khác biệt rõ rệt so với các "AI video framework" cùng thời. Không có Python orchestrator. Không có Python reviewer. Không có Python handler cho stage transitions. Tất cả sống trong instruction file.

Cụ thể, luồng vận hành trong AGENT_GUIDE.md đặt agent làm intelligence trung tâm:

Agent đọc pipeline manifest (YAML) → đọc stage director skill (Markdown)
→ dùng tool (Python BaseTool subclass) → tự review (meta skill)
→ checkpoint (Python utility) → present cho user duyệt

Python trong repo chỉ giữ 2 vai trò: cung cấp tool (video generator, TTS, image gen, subtitle, transcript, mixer) và persistence (checkpoint, cost tracker, config loader). Toàn bộ orchestration logic, quyết định sáng tạo, review criteria và checkpoint policy nằm trong file markdown và YAML mà agent đọc.

Điều này có nghĩa gì với bạn? Khi bạn nói "làm cho tôi video 60 giây giải thích black hole", agent Claude Code (hoặc Cursor, Copilot, Windsurf, Codex) sẽ:

  1. Đọc pipeline_defs/animated-explainer.yaml để biết stage nào phải chạy
  2. Đọc skills/pipelines/animated-explainer/<stage>-director.md để biết cách chạy từng stage
  3. Gọi tool (FLUX, Piper TTS, Suno, Remotion) qua tool_registry
  4. Đọc Layer 3 skill trong .agents/skills/ để biết provider-specific prompt trick
  5. Tự review lại output với skills/meta/reviewer.md
  6. Ghi checkpoint và dừng lại chờ bạn duyệt tại mỗi creative gate

Không có "black box". Bạn có thể mở bất kỳ file skill nào và sửa hướng dẫn. Chỉnh policy budget từ $10 thành $50? Sửa config.yaml. Muốn agent luôn ưu tiên WAN 2.1 local thay vì Kling? Sửa scoring weight trong selector skill. Đây là điểm sát với triết lý Unix nhất mà tôi thấy trong không gian AI video hiện nay.

3-Layer Knowledge Architecture - tại sao agent làm được việc chuyên gia

OpenMontage tổ chức kiến thức thành ba lớp có ranh giới rõ ràng, mỗi lớp trả lời một câu hỏi khác nhau:

LayerFileCâu hỏi
Layer 1tools/tool_registry.py"Có tool nào tồn tại?" - runtime capability, status, cost
Layer 2skills/"OpenMontage dùng chúng thế nào?" - convention của project
Layer 3.agents/skills/"Công nghệ đó vận hành ra sao?" - API rules generic, best practice của từng provider

Điều đắt giá là Layer 3. Đây là các "knowledge pack" cực dày về cách viết prompt cho FLUX, cách xử lý word-level timestamp trong WhisperX, cách thiết kế scene trong Remotion sao cho không rơi vào "animated PowerPoint", cách xin phép Suno cho instrumental section trước vocal. Khi agent chuẩn bị dùng tool nào, nó bị bắt buộc đọc Layer 3 skill tương ứng trước khi viết prompt cụ thể.

Đây là lý do tại sao output OpenMontage nhìn khác hẳn khi bạn tự bash prompt vào FLUX qua fal.ai. Không phải vì model tốt hơn - mà vì agent đọc một tài liệu 500 dòng dạy nó cách phrase prompt cho pipeline này, style playbook này, tỷ lệ khung hình này.

12 pipeline production sẵn có

Mỗi pipeline là một dây chuyền production hoàn chỉnh, từ ý tưởng tới file MP4 cuối. Chọn đúng pipeline là bước quan trọng nhất trong Rule Zero.

PipelineOutputPhù hợp cho
Animated ExplainerVideo explainer với research, narration, visual, musicNội dung giáo dục, tutorial, topic breakdown
AnimationMotion graphic, kinetic typography, animated sequenceSocial media, product demo, khái niệm trừu tượng
Avatar SpokespersonVideo presenter dùng avatarCorporate comms, training, announcement
Character AnimationRigged SVG character animation localCartoon short, character acting với GSAP timeline
CinematicTrailer, teaser, edit theo moodBrand film, teaser, promotional content
Clip FactoryBatch short-form clip xếp hạng từ 1 source dàiRepurpose long content cho social
Documentary MontageMontage theme cut từ corpus CLIP-index của stock footage free và archiveVideo essay, mood piece, real-footage video không cần paid gen API
HybridSource footage + AI-generated support visualTăng cường footage có sẵn bằng graphic
Localization & DubSubtitle, dub, translate video có sẵnPhát hành multi-language
Podcast RepurposeHighlight từ podcast thành videoPodcast marketing, audiogram video
Screen DemoScreen recording chỉn chu và walkthroughProduct demo, tutorial, documentation
Talking HeadVideo footage-led speakerPresentation, vlog, interview

Mỗi pipeline chạy theo state machine chung:

research → proposal → script → scene_plan → assets → edit → compose → publish

Mỗi stage có một director skill riêng - file markdown chỉ dẫn agent chính xác cách chạy stage đó. Ví dụ skills/pipelines/animated-explainer/script-director.md dạy agent cách viết script explainer 60 giây theo cấu trúc hook-fact-payoff, ràng buộc số từ theo runtime narration, và cách chèn scene cue.

Web research là first-class stage

Một chi tiết mà tôi cho là rất Nghiêm túc: research được nâng lên first-class stage. Trước khi viết một chữ script, agent phải search YouTube, Reddit, Hacker News, news site và academic source. Nó thu thập data point, câu hỏi audience, angle đang trending, visual reference - rồi cite mọi thứ trong structured research brief.

Kết quả: video của bạn được grounded trong thông tin thực và current. Nếu bạn làm explainer về CRISPR, agent sẽ ra ngoài đọc 15-25 nguồn, chọn số liệu chuẩn, gạch chân cái nào là consensus và cái nào còn tranh cãi. Đây là lý do research_brief nằm trong nhóm artifact canonical bắt buộc.

Bạn cũng có thể bắt đầu từ video tham chiếu. Paste URL YouTube Short, Reel, TikTok hoặc file local, agent sẽ dùng video_analyzer, transcript extraction, scene detection và frame sampling để hiểu:

  • Cái gì giữ từ reference: pacing, hook style, structure, tone
  • Cái gì thay đổi: topic, visual treatment, angle, narration approach
  • Chi phí bao nhiêu ở target duration của bạn
  • Nó sẽ trông thế nào với các tool bạn đang có

Agent trả về 2-3 concept khác biệt - không copy carbon. README nói rõ chuyện này để tránh model rơi vào default "search + guess" khi thấy URL video.

Composition runtime: Remotion, HyperFrames và FFmpeg

Đây là chỗ OpenMontage đi xa hơn các dự án tương tự. Không có 1 render engine - có 3, mỗi cái có governance rõ ràng khi nào nên dùng cái nào.

Remotion là default cho data-driven explainer và mọi thứ dùng React scene stack có sẵn. 8 component built-in: TextCard, StatCard, ProgressBar, CalloutBox, ComparisonCard và các loại chart. TikTok-style word-level caption. Spring animation. Google Fonts. Composition cho TalkingHead avatar.

HyperFrames là runtime HTML/CSS/GSAP local, chạy qua headless Chrome + FFmpeg. Phù hợp cho kinetic typography, product promo, launch reel, website-to-video, rigged SVG character animation. Không cần monorepo checkout, CLI được fetch qua npx @hyperframes/cli lần đầu.

FFmpeg luôn có sẵn cho core assembly, encoding, subtitle burn-in, audio mux và color grading.

Governance rất chặt: runtime được chốt ở stage proposal qua field render_runtime, silent swap giữa runtime là governance violation. Nếu agent muốn đổi từ Remotion sang HyperFrames giữa chừng, nó phải log lại decision với reason, alternative đã cân nhắc, và hỏi user duyệt.

Decision Communication Contract - bạn không bao giờ mù mờ

Có một quy tắc trong AGENT_GUIDE.md mà tôi cho là chuẩn cho mọi hệ agentic: agent phải thông báo mọi major decision trước khi hành động. Trước bất kỳ generation call có tính phí, agent phải phát biểu rõ:

  • Exact tool name
  • Provider
  • Model hoặc provider variant
  • Lý do được chọn
  • Đây là sample run hay batch run

Agent cũng phải hỏi trước khi thay đổi bất kỳ major production choice nào: switch provider, switch model family, chuyển từ video-led sang still-led, đổi composition engine, drop narration hoặc music đã duyệt, chuyển từ sample sang batch mode. Prompt refinement nhỏ trong provider đã duyệt thì không cần hỏi lại.

Và có một cơ chế nhỏ nhưng rất Nghiêm túc gọi là re-log changed decision. Decision log là append-only, không phải scratchpad. Khi choice bạn đã log thay đổi (user swap voice, agent switch provider, fallback override), agent phải append entry mới với cùng category và cùng subject. Option cũ được move vào options_considered với rejected_because. Backlot dashboard nhận diện decision qua pair (category, subject) và render entry mới nhất với tag "revised".

Templated vs Atelier - hai chế độ authoring độc lập với runtime

Orthogonal với runtime (Remotion/HyperFrames) là authoring mode: cách composition được xây dựng.

Templated: ráp các stock cut.type scene-type (text_card, stat_card, bar_chart) vào composition Explainer/Cinematic. Fast, cheap, reliable - và cũng là lý do đa số video AI "nhìn giống nhau". Phù hợp cho batch output, localization variant, quick draft.

Atelier: hand-author composition từ scratch. Scene bespoke, theme one-off, motion viết riêng cho piece này. No reusable creative component. Ngôn ngữ hình mới mỗi lần. Default cho hero work - marketing, launch, brand piece, bất kỳ single-deliverable explainer nào cần "đập vào mắt".

Rule quyết định: reuse engine knowledge, never creative components. Trong atelier mode, stock scene-type catalog, hyperframes-registry block, fixture và finished component đều off-limits. Chúng là look đóng băng sẽ khiến video của bạn nhìn như mọi video AI khác. Trước khi build atelier, agent route qua skills/meta/bespoke-composition.md theo trình tự: art direction (visual-style) → motion principle (Disney 12 via framer-motion/lottie-bodymovin) → engine mechanic (remotion-best-practices như codex của mechanic, không phải creative) → render atelier path. Kết thúc bằng distinctness review: video này có thể là video của product nào khác không? nó có reuse look tôi từng làm không?

Đây là điểm mà tôi nghĩ team OpenMontage đã ngồi nhìn rất nhiều "AI-generated video" và tự hỏi tại sao chúng đều na ná nhau. Câu trả lời: vì stack default reuse creative component. Atelier mode force bạn viết lại composition từ đầu để mỗi video có ngôn ngữ hình riêng - đắt hơn về token, chậm hơn về iteration, nhưng khác biệt về identity.

Phân biệt reference-driven và source-footage

OpenMontage phân biệt rõ hai kịch bản mà đa số framework khác gộp làm một:

  • Reference-driven request: "make me something like this" - agent chạy video-reference-analyst.md, phân tích transcript/pacing/scene, trả concept khác biệt.
  • Source-footage request: "edit this footage" hoặc "cut this into clip" - agent chạy source_media_review và footage-led pipeline (talking-head, clip-factory, hybrid).

Nếu model không phân biệt, nó sẽ fallback về plain search + guesswork. AGENT_GUIDE liệt kê thẳng đây là incorrect for OpenMontage.

Còn nữa - Phần 2 sẽ đi vào providers, quality gate và cost thực tế

Phần 1 dừng ở đây với bức tranh tổng thể: OpenMontage là hệ điều hành cho video studio agentic, agent là orchestrator, 12 pipeline sản xuất, 3 lớp kiến thức có phân định rõ ràng, dual-runtime composition và decision communication contract chặt tay.

Trong Phần 2 tôi sẽ mổ xẻ:

  • Bảng đầy đủ 52 tool và provider gateway (14 video, 10 image, 4 TTS, 3 music)
  • Bạn làm được gì với zero API key vs với FAL_KEY vs full setup
  • Quality gate: 7-dim scored selector, delivery promise, post-render self-review, slideshow risk scoring
  • Backlot living storyboard - dashboard local tự fill khi pipeline chạy
  • 6 production thực tế từ demo với cost cụ thể ($0.02 đến $2.50)
  • So sánh với Runway ML, Fliki, Synthesia
  • Setup step-by-step + cách chọn pipeline đầu tiên

Repo chính thức: via calesthio/OpenMontage.