One sentence in. A finished short-form drama out โ script, cast, storyboards, voiceover, timeline, mp4.
Multi-agent AI studio ยท reusable characters ยท novelโseason splitting ยท director's control room ยท real-time collab ยท bring-your-own LLM.
ไธๅฅ่ฏ่ฟ,ๆด็็ญๅงๅบ โโ ๅงๆฌ ยท ่ง่ฒ ยท ๅ้ ยท ้
้ณ ยท ๆถ้ด็บฟ ยท mp4 ไธๆก้พใ
ๅค Agent AI ๅไฝๅทฅไฝๅฎค ยท ๅฏๅค็จ่ง่ฒ ยท ้ฟ็ฏๅฐ่ฏดโ่ชๅจๅ้ ยท ๅฏผๆผ็บงๆง็ๅฐ ยท ๅฎๆถๅไฝ ยท ่ชๅธฆ LLMใ
English ยท ็ฎไฝไธญๆ ยท ๐ฅ Pitch ยท ๐ BYO LLM
Mirror for mainland China ยท ๅฝๅ AtomGit ๆ็ฎก(่ชๅจๅๆญฅ่ช GitHub):atomgit.com/ChrisChen667788/wind-comic
โถ Watch the full 39-second promo โ with voiceover & sound
Real cinematic footage woven with motion-graphics ยท 8 distinct art styles ยท English narration ยท scored by the platform's own MiniMax music engine.
|
MiniMax H3 ่ง้ข็ๆ API๏ฝ็งๅก็งๆ ็งๅก็งๆๆไพ้ซๆงไปทๆฏ็ MiniMax H3 ่ง้ข็ๆๆๅก๏ผ768P ไป
0.09 ๅ
/็ง๏ผ2K ไป
0.15 ๅ
/็งใๆฏๆๅ็ 2Kใ้ณ็ปๅๆญฅ๏ผAPI ๅ
ผๅฎน OpenAI ๅ่ฎฎ๏ผๅๆถๆฏๆ ComfyUI๏ผๆ ้่ช่ก้จ็ฝฒ GPUใ ๐ ้่ฟ wind-comicไธๅฑ้พๆฅๆณจๅ๏ผๅณๅฏ้ขๅ่ต ้้ขๅบฆๅไธๅฑไผๆ ใ MiniMax H3 video-generation API โ MetaSota (็งๅก็งๆ). ยฅ0.09/s at 768P, ยฅ0.15/s at 2K ยท native 2K with synced audio ยท OpenAI-compatible API ยท ComfyUI supported ยท no GPU to deploy. ๐ Sign up through the wind-comic link for bonus credits and a partner discount. |
Most "AI video" tools give you a 5-second clip from a one-line prompt. Wind Comic gives you a finished short-form drama โ script, character bible, multi-shot storyboards, voice-acted lines, BGM, mouth-synced characters (indicative 2D lip bar out of the box; photorealistic face-level lip-sync via BYO wav2lip/SadTalker/MuseTalk or Kling), and a final mp4 โ from the same single line.
It works because it doesn't try to be one giant model. It's an honest multi-agent pipeline where each role (Writer, Director, Producer, Character Designer, Storyboard Artist, Cameo Locker, Lipsync, Editor) is a specialist that hands off with strict consistency contracts. Plus a real-time multiplayer timeline to edit with your team like Figma for film.
"A reborn CEO confronts his cheating ex-fiancรฉe at her wedding."
โ
โผ
Writer โถ Director โถ Style Bible โถ Char Designer โถ Scene Designer โถ
โถ Storyboard (vision-audited) โถ Video (multi-engine race) โถ
โถ TTS (per-character voice) โถ Lipsync (Kling/Sync.so/Hailuo) โถ
โถ Editor (j-cut/l-cut + BGM per act + CJK subtitles) โถ final.mp4
+ Real-time collab timeline (Yjs CRDT)
+ Bring-your-own LLM (3 env vars, 0 code change)
+ Plug-in image/video providers (12+ supported)
+ Lip-sync pipeline: viseme track โ align score โ drift auto-correct โ engine render โ back into timeline (v10)
+ Template market: save a hit project โ rate / favorite / one-click remix (with its voices) (v10)
+ Per-project cost attribution + budget guard, four-dimension publish gate (v10)
Three views of the same engine. Open on GitHub to watch them animate โ flowing dashes trace live data & control paths, traveling dots are data packets moving through the pipeline.
System architecture โ five layers, top to bottom. The Director threads control across the seven pipeline agents (eight roles including the Director); the LLM gateway falls back DeepSeek โ MiniMax with zero code change; 12+ media engines plug in behind one router; everything lands on a dual-driver (SQLite โ PostgreSQL) platform.
Sequence โ the lifecycle of one idea โ film request, time flowing down. Two signature beats: the Vision-Audit retry loop (auto-regenerate any shot scoring < 70) and the multi-engine race (Seedance / Kling / Veo / Vidu โ first good clip wins).
Data flow โ the artifact refinery. One line of text is refined stage-by-stage (TEXT โ JSON โ PNG โ IMG โ MP4); every artifact is persisted to the dual-driver DB + asset store and is independently reusable, so any stage can be re-run in isolation.
๐๏ธ Diagrams are animated SVG, authored as code in
assets/diagrams/โ crisp at any zoom, versioned with the source. (Animation renders on GitHub; the ModelScope mirror shows static PNG.)
Every tool can generate a clip. These three let you direct one โ and they compose into a single loop: inspect โ locate โ retake only what's broken.
Director's console (v12.316โ318) โ place the actors and the camera on a top-down stage; the exact blocking becomes two things a model can actually use: a precise staging directive appended to the prompt ("Lin Wan at frame left in full shot; Lu Chen right of center in wide shot"), and a layout sketch fed through the existing [STORYBOARD LOCK] channel (layout only โ style still comes from the prompt). Shot size and camera angle are derived from the geometry, not typed in by hand, so lens/framing and the written spec can't disagree. A deterministic composition audit reports who is out of frame, who is occluding whom, whether the camera clips an actor โ before you spend a cent generating.
Segment retake (v12.315) โ hate two seconds of an eight-second shot? Retake those two. The other six are byte-copied (-c copy), not re-encoded, so the part you liked doesn't lose a generation. Shot duration is unchanged by construction, which means the compressed timeline, voice-over delays, subtitle starts and EDL record-ins need no recomputation. Takes are versioned like voice retakes โ adopt or roll back.
Frame-by-frame inspection (v12.328โ330) โ step through a finished shot frame by frame, box the broken stretch, and hand that exact range to segment retake. Frames are extracted with accurate seek (-ss after -i, not the fast keyframe-only seek), and the timestamp under each frame uses the same frame-snapping as the retake planner โ so the frame you picked is the frame it cuts at. When the strip is thinned to stay responsive, it says so; frames that fail to decode are reported, not silently skipped.
Also in this range: fonts are self-hosted so builds no longer depend on a network fetch; the director paths finally receive the target language (non-Chinese projects used to get Chinese scripts and rely on a costly after-the-fact re-translation); the in-process rate limiter bounds and evicts its bucket table (the key contained an attacker-supplied email โ an unbounded memory vector), and eviction never releases an active block; collaborative comments arriving over Yjs are validated and field-whitelisted, so a peer can no longer overwrite another author's name or text.
Sketch-Lock storyboarding โ every shot first renders a B/W composition sketch, then the final frame is generated locked to that composition (toggle at creation time, or per-shot in the Shot Workshop). Camera language finally survives the diffusion lottery.
Emotion-driven camera โ shots missing camera movement get one derived from story beats (hookโpush-in, chaseโhandheld, revealโzoom-in, farewellโpull-out, emotion temperature โ push/orbit/crane). Even the Ken Burns degradation follows the intended move.
Engine matrix, honestly โ Veo ยท MiniMax (Hailuo) ยท Kling (official Beijing API) ยท HappyHorse 1.1 (Alibaba, v12.272 โ joint video+audio in one pass) with a one-line env priority (VIDEO_ENGINE_ORDER=kling,minimax,veo,happyhorse), base64 first-frame channel for local assets, and an honest fallback chain: a failed shot becomes a labeled animatic, never a still image masquerading as video.
The quality loop โ ffprobe-powered film health report (aspect/duration/fps/bitrate/audio/degraded shots) per project and per series; batch re-render of degraded shots (2-way concurrent); a season-export health gate so no broken episode sneaks into the compilation; an engine weather bar so you know before you hit generate.
Round-trip storyboards โ export the pull sheet as CSV / Markdown / print-ready PDF (with character sheet + health appendix), edit in Excel, import it back โ changed visual fields offer one-click re-render of exactly the affected shots.
Writer resilience โ truncated or quote-mangled LLM scripts are salvaged (bracket-stack completion + content-quote escaping) instead of being silently replaced by a template. The real 23KB incident dump lives in the test fixtures.
v3 shipped the pipeline. v6 turned it into a production studio; v7โv9 hardened it into a platform; v10 closed the lip-sync, template-market, and cost loops. Reusable characters, a prompt IDE, novelโseason auto-splitting with real voiceover, a 60-style gallery, a director's control room, team credit budgets, an industry-grade script audit (Polish Pro, v7.1), a premium design pass (v8.3), a fully-migrated Postgres backend (v9), a lip-sync delivery pipeline + template market + cost observability (v10), and a live API health board โ every screen below is a real capture of the running app.
v10 landing โ looping cinematic hero, 8 collaborating agents ยท 7 media engines ยท 3 consistency guards.
- ๐๏ธ Voice & lip-sync, end-to-end โ per-character voice routing (auto by name + manual pick/audition) โ TTS โ viseme keyframe track โ measured mouth-vs-audio alignment score (Web-Audio) โ drift auto-correct โ pluggable engine render (wav2lip / SadTalker / MuseTalk, BYO
LIPSYNC_API_URL) โ written back into the timeline. One-click whole-film lip-sync with a Vision QC self-heal loop (weak shots auto re-render). - ๐งฉ Template market โ turn a hit project into a reusable template (style + multi-ref elements + pacing + voices), with a preview clip, โ ratings & โฅ favorites, quality score, and one-click remix that prefills a new project.
- ๐ด Cost observability + budget guard โ per-project cost attribution by stage (LLM / image / video / TTS / lip-sync), saving hints, and an ok/warn/over budget guard. The publish-readiness gate is now four-dimensional: picture-vs-script ยท consistency ยท lip-sync alignability ยท measured mouth-vs-audio.
Every screen above is a real capture of the running v10 app. Design language (v8.3 Taste pass โ Plus Jakarta Sans + Phosphor icons, gold machined-bezel cards, spring motion, AI gold-neon genre emblems) carries across all of them.
Notes are consolidated per major version โ the full minor-by-minor changelog lives in
VERSIONS.md/ROADMAP.md.
| Major version | What landed |
|---|---|
| v6 ยท Production studio | Character Studio (reusable cast, multi-view turnaround + 8-field DNA identity lock, cross-project Cameo IP) ยท Prompt Workbench (@-mention assets + compile-preview + readiness score) ยท Long-form Intake (novel โ chapter-aware episodes, real TTS narration + burned SRT, N-episode parallel) ยท 60-look Style Gallery ยท Director Console (4-stage pipeline, stale-detection, single-stage rerun) ยท Team Workspace (credit pool + RBAC + real invite links) ยท API Health Board (live gateway status + balance) ยท top-tier model repointing (veo3.1-pro) + supplement gateway backfilling TTS / Midjourney / Kling. |
| v7 ยท Platform hardening | Writer/Director on DeepSeek deepseek-v4-pro with a universal MiniMax fallback on any error / out-of-credits / timeout (3-tier LLM health board) ยท tiered models (deepseek-v4-flash for speed) that cured the reasoning-token instability ยท Polish Studio Pro โ industry script audit: AIGC-readiness score, Save-the-Cat 3-act beat-gap detection, on-the-nose dialogue flags, per-character identity anchors. |
| v8 ยท AI director station + premium design | Per-shot cinematography console (ๆฏๅซ/ๆบไฝ/้ๅคด/่ฟ้/็ฆ็น) + continuity & seed lock + emotion/rhythm curves + JSONโvisual parameter linkage, all converging into an 11-tab director station ยท Taste design pass: Plus Jakarta Sans + Phosphor icons, gold machined-bezel cards, spring motion, an asymmetric bento dashboard, 60 AI-rendered style thumbnails, and AI gold-neon genre icons (18 templates + 5 modes + 8 looks). |
| v9 ยท Postgres platform + monetization | Full SQLiteโPostgres dual-driver cutover โ 17 core tables/clusters migrated to async repos, verified end-to-end on Postgres with transaction commit + rollback atomicity (default stays SQLite, same file, zero split-brain; DB_DRIVER=pg is opt-in) ยท multi-platform distribution-pack generator (ๆ้ณ / ๅฟซๆ / ่ง้ขๅท / ๅฐ็บขไนฆ / YouTube Shorts / B็ซ) ยท real binary AAF export (MS-CFB container, for Avid) alongside EDL / FCPXML ยท plus quality & consistency depth (publish-readiness gate, rebirth loop, consistency report) and the Kling-style multi-reference + one-click film fusion. |
| v10 ยท Lip-sync delivery ยท template market ยท cost (Stage 16) | Voice & lip-sync end-to-end โ per-character voice routing (auto + manual audition), viseme keyframe track, measured mouth-vs-audio alignment + drift auto-correct, pluggable engine render (wav2lip/SadTalker/MuseTalk) plus a zero-config built-in 2D engine that works out of the box (no BYO key), written back into the timeline, one-click whole-film with a Vision QC self-heal loop ยท Template market โ saveโrate/favoriteโone-click remix (carries voices), preview clips, quality score ยท Cost observability โ per-project stage attribution + budget guard, and a four-dimension publish gate (picture ยท consistency ยท lip-sync ยท measured alignment). 2135 tests green on both drivers. |
| v12.49โv12.80 ยท Commercial Ad Factory (Stage 22) | ็ตๅ/ๅ็ๅนฟๅๅทฅๅๅ
จ้พ โ ไธๅฅ brief(ๆ่ดดๅๅ URL ่ชๅจๅบ brief)โ ็ซๅฑๆ็:็ฐไปฃๅๅฎ+photoreal ๅ็กฌ้(Director ่ทๅๅค่ฃ
/3D ็ๅฎๆต็
ๆ นๅไฟฎ + plan ็กฎๅฎๆงๅๅไฟ้ฉ)ยท ็ปๆๅ Hook/CTA ๆๅญๅก(ffmpeg drawtext ้ถไนฑ็ ,Hook ๅ
ฌๅผๅ้ๅฅ:้ฎๅฅ>ๆๅน,ๆน้ Hook ๅไฝ A/B,ๅ็่ฒๅฏ้
)ยท karaoke ่ฏ็บงๆซๅ
ๅญๅน(ๅฏน้ฝ TTS ็ๅฎๆถ้ฟ,ๆ้ณ/ๅฐ็บขไนฆๅฎๅ
จๅบ้ฟ่ฎฉ)ยท BGM sidechain ่ชๅจ้ช้ฟ ยท ใๅนฟๅๆณใๅ่งๅๅ(็ปๅฏนๅ็จ่ฏญ/ๅป็็บข็บฟ,ๅ
จๅ
ฅๅฃ่ฆ็)ยท ่ดจ้ไธ้ฒ็บฟ+่ดฆๆฌ(้้ VLM ้จ็ฆ photoreal/็คๅญ/็ธๅโๅฎๅ้็ ยท ่ง้ข็ฌๆถ้่ฏฏๅๅผๆ้่ฏ ยท ๅ mp4 ๅฎๆดๆงๆฆๆช ยท ๅคฑ่ดฅ้ Ken Burns ๅ
ๅบไฟๆถ้ฟ ยท quality_report ๅฅๅบทๅ)ยท ๅๅธ้ขๆฃ(ไธๅนณๅฐ็กฌๆๆ )ยท rembg ๅ็จๅฎๅ
จๆ ๅพ(ไบงๅ่ทจ้ไธ่ด)+ Kling Elements ๆ้ ยท LLM ็ฝๅ
ณ 429/503 ๅฅๅบทๆ็ฅ่ชๅจ้็บงใ2712 tests greenใ |
| v12.82โv12.120 ยท Ad Factory ๆทฑๅ + ไพ็ป้พๆฉๅฎน | ่ง้ข้้ๆฉๅฎน(qyt-vidu(Vidu Q3 via ็ฝๅ
ณ /ent/v2)ๅ
ฅ้พ pri=75 ยท minimax ่ฝฎ่ฏข่ถ
ๆถๅฏ่ฐ ยท Seedream 4.5 ๅพๅๅฐพๆขฏ้(720x1280 ๅ็็ซๅฑ,ๅฎๆต 14s/ๅผ ))ยท ็ด ๆ่ดจ้้ญ็ฏ(Pexels B-roll ๅๅฑๅ
ๅบ + ไบบ่ฎพๆ็ฅๆฃ็ดข + ็คๅญ/ๅญๅน VLM ๆฝๆฅ(B-roll ไธ AI ้ๅๅ)+ ็ปๆ็ผๅญ LRU)ยท ๅๅบฆๅฝไธ -14 LUFS(ๅฎๆต -13.62/-1.42 dBTP ๅฝไธญๅนณๅฐๆ ๅ)ยท ๆ็ๆฝๅธงๅฐ้ข็ฒพ้(VLM ๆๅ,้ถ T2I ้ขๅบฆ)+ ๅๅธๅ
ๅฐ้ข้พ(chosen>AnyText>ๅ้)ยท karaoke ้ฟๅฐ่ฏๆ่ก+่กๅ
็ผฉๅญ(libass ๅฎๆธฒ้ช่ฏ)ยท ่ฑๆๅนฟๅ้พ(่ฏญ่จๆ็ฅ CTA + 6 ๆก่ฑๆๅ่ง็บข็บฟ)ยท ๅ่ง่ฏ่กจๅฏๆฉๅฑ(env+JSON)ยท ๅฏผๆผ/็ผๅง่ชๆฃไฟฎๆญฃ่ฝฎๅ
ฅ่ดฆ + ๅฏผๆผๅฐ HEALTH KPI + ๅ
่ฃ
่ฝฆ้ด็ปๆๅ็ปๆ้ขๆฟ ยท LLM ๅฅๅบท็ผๅญๅ
จ็ซฏ็นๅฏน้ฝ(ๆฅๅ ตๅฎๆต:fable-5 ๆญ็ฒฎ 403 โ opusโsonnetโOpenRouterโMiniMax ไบ็บงๆ ๆ้็บง)ใ2780 tests greenใ |
Features that still ship. Director console ยท novelโseason ยท finished-film station ยท team workspace ยท Cinema timeline are refreshed to v10 (live demo data). The style gallery, API health board, Polish Pro audit, and character turnaround are kept as earlier (v6โv8) captures because they show fuller sample output (the full style grid / live balances / a complete Pro audit / a 3-view turnaround sheet).
Every stage at a glance โ what's ready, what's gone stale because you changed something upstream, and a one-click rerun that knows exactly which downstream stages it invalidates.
Paste a full novel; Wind Comic splits it into episodes by chapter markers (or by target length), picks a narration mode, and can render a real narration track + burnable subtitles for the whole season in parallel.
Lock a consistent visual identity before you generate. Search, filter by category, and apply any preset straight into the creation workshop.
Live status for every model and gateway: ๆญฃๅธธ / ้ขๅบฆ็จๅฐฝ / ้ ็ฝฎ็ผบๅคฑ / ไธๅฏ่พพ, with real balance read-out and a "ๅปๅ ๅผ / ่กฅ้ ็ฝฎ" hint. Keys are never stored or returned.
Paste a draft, hit Pro: deepseek-v4-pro returns a polished script plus a full industry diagnostic โ AIGC-pipeline readiness score (e.g. 85/100), style profile, first-3-second hook strength, Save-the-Cat 3-act breakdown with missing beats called out, on-the-nose dialogue lines flagged, and per-character Cameo/Seedance identity anchors so every shot stays on-model.
Every character gets a real 3-view turnaround sheet (front / three-quarter / back) with a locked structured "DNA prompt" โ face geometry, skin tone, signature props, color palette, silhouette identity, full body pose โ so the same actor reads identically across all 6 shots. The Cameo IP economy lets the same character travel between projects.
One project, eleven tabs of cockpit-grade control: ๅฏผๆผๅฐ ยท ๅงๆฌ ยท ่ง่ฒ ยท ๅบๆฏ ยท ๅ้ ยท ่ฟ่ดฏๆง ยท ่ง้ข ยท ้ๅคดๅทฅๅ ยท Cinema ๆถ้ด็บฟ ยท ่ๅฅๅๆ ยท ๆ็่ดจๆฃ ยท ๆๆฏ็็ ยท ๅๆฐ่ๅจ ยท ่ฏ่ฎบๅไฝ ยท ๅฎๆดๆญๆพ. The finished film plays right in the workspace with a 90/100 audit badge and one-click mp4 / platform export.
![]() Credit pool + per-member allocations, RBAC, real invite links. |
![]() Multi-track timeline; narration audio + subtitles burned in. |
| You are... | What Wind Comic gives you |
|---|---|
| Vertical short-drama creator (้ธๆป / ้็ / ๆ็ฅ / ๅค่ฃ ) | Trope-aware Writer, hook-first shot 1, reversal density audit, cliffhanger detection, 9:16 default |
| Content marketing team | 1 idea โ 30-second polished ad with consistent characters across cuts, real Chinese subtitles burnt in, brand-safe negative prompts |
| Indie filmmaker / video artist | Style Bible locks the visual identity across all shots, McKee-structured story beats, Logic-Pro-style multi-track timeline, real BGM waveform editor |
| Comic / manhua adaptation studio | Script โ storyboards in your chosen art style, character consistency via cref+sref+DNA, drag-rearrange shots, regenerate single shots |
| Educator / explainer | Pacing audit warns when content is too flat, conflict-score per shot, suggestions for hooks |
| Open-source builder | Swap any LLM with 3 env vars (OpenAI / Anthropic / DeepSeek / Qwen / Kimi / OpenRouter / Ollama local โ all work) |
Director plans the story โ Writer drafts dialogue under McKee structure โ Style Bible Frame locks the look โ Character Designer extracts an 8-dimension DNA signature of each character โ Storyboard renders with Vision Audit (auto-regen on <70 score) โ Video producer races multiple engines (Minimax / Veo / Kling) โ Editor cuts j/l-cut on emotional beats and burns CJK subtitles.
We render one canonical "key art" frame from the Director's plan, then pass it as the first --sref of every subsequent storyboard render. Net effect: all 6 shots feel like they came from the same show, not 6 random Midjourney runs. (Most competitors only carry a 2-frame rolling chain โ shot 6 doesn't know what shot 1 looked like.)
Writer prompt detects ็ญๅง/ๆผซๅง genres and switches to vertical canvas + injects proven hook patterns (้็ๅๅฐ N ๅนดๅ ยท ๅฝ่กๆๆด + ็งๅฏ่บซไปฝ ยท ็ณป็ปๆ็คบ้ณ็ชๅ ยท etc). McKee 3-act still backs it; tropes are the surface.
The garbled-Chinese-text-in-AI-video problem solved properly: we strip dialogue text from the video prompt (so the model doesn't try to draw garbled glyphs) + add aggressive negatives (--no text --no chinese --no captions) + post-bake real subtitles with ffmpeg subtitles filter using a system CJK font (PingFang / Noto Sans CJK).
Beyond reference image hacks, we run each character's turnaround sheet through Vision LLM to extract structured features (eye shape / jaw angle / hair style / signature outfit etc.), then inject as natural-language anchor into every shot prompt. Combined with cameo-vision-retry: if a shot's character match scores <75, we auto-regen with boosted cw.
- 3 tracks: shots / BGM / subtitle
- Real BGM waveform decoded via Web Audio API (not procedural)
- Drag-to-retime + edge handles to resize duration
- Auto-snap to neighbors within 0.4s threshold + hard-clamp on overlap
- Real-time multiplayer: Yjs awareness paints other users' cursors live, presence avatars show which tab each collaborator is in, Y.Map locks prevent two people editing the same segment
- Project invites with viewer/commenter/editor role gating
Kling lip-sync API for talking heads, with Sync.so and Hailuo as auto-fallback. The pipeline strips dialogue from the prompt so the model only generates lip motion; we then sync the lips to the TTS audio in post. Real-machine limits: dialogue audio must be โฅ 2 seconds and the source video must be reachable at a public URL; ja/ko/ru currently degrade to no lip-sync (honest skip, surfaced in the engine-weather panel).
After Writer finishes, we score each shot 0-10 on a Chinese-conflict-word dictionary + detect emotional polarity reversals + cliffhanger keywords.
v12.275 turned scoring into diagnosis. An average score hides the difference between a story that builds and one that peaks in shot 1 โ [1,2,4,9] and [9,4,2,1] both average 4. So v2 adds four things the average cannot see:
- Conflict-curve shape โ least-squares slope + peak position + peak prominence, classified as
escalating/flat/front-loaded/no-climax. - Drag-segment localisation โ names the exact shot range (e.g. "shots 3โ5") where conflict flatlines, instead of reporting one global number.
- Opening density โ the first third is audited separately, because completion rate is decided there.
- Duration rhythm โ v1 never looked at
duration; v2 flags both uniform-length monotony and long-take pile-ups.
Every finding points at the shots to change. All pure functions over existing fields โ no extra LLM calls, no added cost.
Every text-LLM call (Director / Writer / Vision / Audit) goes through one OpenAI-compatible chat/completions endpoint. Want to swap to DeepSeek-r1 / GPT-4o / Claude (via OpenRouter) / Qwen-Max / local Ollama? Edit 3 lines in .env. Zero code change. See docs/llm-providers.md for the full matrix.
Every feature listed above is in main, type-checked, unit-tested, and visible at /projects/[id] if you npm install && npm run dev right now.
Lineup verified 2026-08-31 (Artificial Analysis arena; 6 parallel web-research lenses + key figures independently re-checked. Full analysis:
docs/COMPETITIVE-GAP-2026-08.md): the top slot changed hands, and a Chinese model took it โ T2V-with-audio: Wan 3.0 (1242) โ Gemini Omni Flash (1237, down from 1244). New entrant xAI Grok Imagine Video 1.5 (Jun 16): 7 simultaneous visual reference anchors (character + scene + prop + style) plus native audio and voice cloning, $0.08 (480p) / $0.14 (720p) / $0.25/s (1080p) โ more reference slots than our current cref+sref pair. Kling 3.0 remains the all-round pick for short drama (native 4K / 60fps / 15s / 6 coherent shots / built-in multilingual dialogue + lip-sync, $0.084โ0.112/s); Veo 3.1 (first shipped 2025-10-15; 4K and vertical added 2026-01-13) can reach 60s+ via Scene Extension โ but that is stitching; the single-generation ceiling is still 8โ10s. It uses its own joint audio-visual generation (Lyria 3 is a separate Google music model, not Veo's audio component), from $0.40/s. Note: Veo 3.1's own T2V+audio Elo is ~1091 โ the 1237 on the board belongs to Gemini Omni Flash, a different product. โ The Sora 2 API shutdown (2026-09-24) is confirmed by OpenAI โ and this project has been guarded since v12.173/207: warn before the date, auto-drop from the model chain after it (falling back to veo/kling), throw only if the chain empties (tests/v12-173-sora-sunset.test.tslocks it). Not an open action item. ๐จ๐ณ The domestic camp broke through on both shot length and reference count โ and two engines we already ship are behind. Seedance 2.5 (7-31) and Wan 3.0 (8-24 GA) both do native 30s single takes; Seedance accepts 50 reference inputs (token-billed, ยฅ42โ70/M tokens), Wan 3.0 runs ยฅ0.42/s at 720P and converts documents straight to video (PPT/Word/PDF โ 30s). Vidu Q3 is the only Chinese model explicitly positioned for short-drama industrialisation (7 reference images with multi-subject locking, 6 cinematic effect packs, lip-sync driving; Turbo 1080p โยฅ0.41/s). PixVerse C1 (4-08) is the most narrowly short-drama-vertical of all (storyboard-grid output + multi-speaker lip-sync).โ ๏ธ Two findings about our own stack, which matter more than any competitor: โservices/minimax.service.ts:240defaults toMiniMax-Hailuo-2.3(nothing overrides it in.env.local, so that is what actually runs) โ but 2.3 / 2.3-Fast are marked legacy by the vendor; H3 (V2 API) is the recommended path, and this vendor has pulled an endpoint before with no notice (Music API: 410 + 2153). We list MiniMax H3 as a competitor column in the table below while still calling its previous generation. โก our two Vidu call paths disagree:qyt-vidu.service.tspinsviduq3, whilevidu.service.tssends no model field at all and rides whatever the vendor defaults to โ the same disease as Midjourneyใno version pinned anywhere, gateway default winsใ: when the vendor changes its default our behaviour changes silently, and we cannot reconstruct afterwards which model produced a given shot. Both are queued as v12.402 / v12.403.This round re-checked every high-risk figure with an independent second search, and two claims I had already written into this README were overturned: Veo 3.1 first shipped 2025-10-15 (2026-01-13 was a feature update), its 60s+ is Scene Extension stitching โ the single-generation ceiling is still 8โ10s, and Lyria 3 is a separate Google music model, not Veo's audio component; and Runway Gen-4.5 has had native audio since 2025-12-11 โ the earlier draft called its absence a fatal flaw, which was simply wrong. Elo figures are arena snapshots and move with voting. โญ BYO ๆถๆๅๆฌกๆฅไฝ่ฟๆณข:ๆฆไธๆจกๅๅบๆฌ้ฝๅผๆพ API,ๅกซ key ๅณๆไธบๆฌ็ฎก็บฟๅฏ่ฐๅบฆ็ๅผๆ โโ ็ซๅ่ถๅผบ,ๆฌ็ฎก็บฟ่ถๅผบใ
๐ด We overclaimed last round โ four "only we have this" claims retracted (verified 2026-09-03). This is not competitors catching up; the claims were too broad to begin with: โ "EDL/AAF export is unique to us" โ Descript has had it: Timeline Export covers Premiere XML, FCPXML, Reaper (EDL) and Pro Tools/Logic (AAF). โก "the only MIT, self-hostable end-to-end AI short-drama platform" โ false:
EvoLinkAI/ai-short-drama(MIT + Docker + novelโscriptโstoryboardโimageโvideoโvoiceโfilm) qualifies too, alongside LocalMiniDrama, Toonflow, huobao-drama and others. โข "BYO multi-provider registry is unique" โ PopShort.AI already ships cross-vendor models (Veo 3.1 / Kling / Seedance / Nano Banana Pro). โฃ "no competitor does pacing/reversal auditing" โ Volcano Drama publicly claims a multi-agent verification mechanism with 200+ shot strategies optimising conflict, reversal and climax. What survives, stated narrowly: Volcano Drama optimises inline during generation, and Descript exports but has neither pacing audit nor an open licence โ so as of 2026-09-03, no single product has all three ofใpacing audit hardened into an independent blocking engineering gate + EDL/AAF export + open-source self-hostable for commercial useใ. Note this is narrower than last round: "pacing audit" alone no longer holds; it must be "an independent blocking gate". Open-source scale: OpenMontage 54.7kโ (AGPL), ViMax 12.2kโ (MIT), DramaClaw 4.8kโ (Elastic 2.0, not FOSS), BigBanana 1.8kโ (non-commercial), Novella AI 89โ (MIT). Full analysis:docs/COMPETITIVE-GAP-2026-09.md. v12.214โ244 ๅ็บฟๆจ่ฟใไบงๅๅฑ:GPT Image / Nano Banana(Gemini)ๆฅๅ ฅๆไปถๅผๅพๅ provider ้พ(issue #11,็คพๅบ @flobo3 ๆ่ฎฎ,OPENAI_IMAGE_ENABLED/GEMINI_API_KEY้จๆงใๅ็ i2i ๆฅ่ง่ฒไธ่ดๆงๅฅ็บฆ);ๅค้่ฟ็ปญ็ๆ่กฅไธใๅงๆ ่ฎฐๅฟใ(็ฌฌ N ้ Writer ๆณจๅ ฅๅๅ ้ๅๆ ๆ่ฆ + ๆฟๆฅ็บชๅพ,ๅฏนๆ ็บขๆ/้ ๆ็ 60~100 ้่ฟ็ปญ,ๆญคๅๅ้็ฌ็ซๆ็ฏ)ใๅนณๅฐ/ๅทฅ็จๅฑ:ๅ ญ่ฝฎ็ฌ็ซๅฏนๆๅคๆฃๆๅฎๅ จๆดไป CRITICAL ๅฐ LOW ๅ จๆธ (SSRF ้่ทณ้้ช้ๅฎๅ + IPv6 ๅ จ้ง้ๅไฝ / serve-file ็ญพๅ่ฝๅ URL / WebSocket ้ดๆ / ้ข็ฎๆคๆ ),ๅนถๆๅๅค่ธฉ็ใๆนไบๅฎๅซๅดๆฒก่ทๅฐๆถ่ดนๆนใ่ฟไธช็ ๅบๅๆ CI ๅ ฅๅบ้จ็ฆ(npm run gate:consumer,้ถๅฎนๅฟ,ไธ็บฟๅณๆๅฐ 2 ไธชไบบ่ๅคๆฃๆผๆ็็ SSRF)ใ ็ป่ฎบไธๅ:็ๆๅฑๅทฒๆฏ็บขๆตท(็ซๅๅจๅบ็/ๅค้/้ณ้ข้ฝ็ฌฌไธๆขฏ้),Wind Comic ๆคๅๆฒณๆถ็ชๅฐใๅถไฝ/ๅนณๅฐๅฑใโโ่ๅฅๅฎก่ฎกใๆบ่ฝๅช่พใๅญๅน็งๅ ฅใๅไฝใ่ชๆ็ฎกใๅผๆบใBYOใ
| Capability | Veo 3.1 | Kling 3.0 | Seedance 2.5 | Gemini Omni Flash | MiniMax H3 | ViMax (open-source) | Wind Comic |
|---|---|---|---|---|---|---|---|
| Multi-shot story from one prompt | โ storyboard mode | โ multi-shot native, 30s single take | โ 12-agent scriptโvideo | โ 8-agent scriptโedit pipeline | |||
| Character consistency across shots | โ | โ | โ up to 50 reference inputs | โ ๅคๆจกๆ็ปไธ | โ reference-to-video | โ character extractor agent | โ cref + sref + 8-dim DNA + vision retry |
| Style coherence locked | โ | โ | โ | โ | โ Style Bible Frame | ||
| Native dialogue + SFX audio | โ | โ ๅค่ฏญๅฏน็ฝ+ๅฃๅ | โ | โ 4 ๆจกๆๅ็ไธไฝ | โ ๅ็็ซไฝๅฃฐ | โ ๆ ้ ้ณๆจกๅ | โ per-character TTS + lip-sync |
| Real CJK subtitles (burned-in) | โ | โ | โ | โ | โ | โ | โ libass + open-license CJK font burn |
| Vertical drama tropes | โ | โ | โ | โ | โ | โ | โ 12 templates + 9:16 default |
| Real-time multiplayer timeline | โ | โ | โ | โ | โ | โ | โ Yjs CRDT + Y.Map locks + cursors |
| Self-hostable | โ | โ | โ | โ | โ ๆฌๅฐ้จ็ฝฒ | โ Next.js + SQLite/Postgres | |
| BYO LLM (OpenAI / Claude / DeepSeek / local) | โ | โ | โ | โ(ๅฎ่ชๅทฑๅฐฑๆฏๆจกๅ) | โ | โ 12+ providers via .env | |
| Open source | โ | โ | โ | โ | โ MIT | โ MIT | |
| Per-shot regenerate with custom prompt | โ | โ motion brush | โ ๅฏน่ฏๅผ่ฟญไปฃ็ผ่พ(ๆ็่ฝๅ) | โ video-edit ็ซฏ็น | โ + reference image upload | ||
| Pacing / conflict audit | โ | โ | โ | โ | โ | โ | โ v2 (v12.275): shot score + reversal detection plus conflict-curve shape (escalating / flat / front-loaded / no-climax), drag-segment localisation to exact shot ranges, opening-density check, and duration-rhythm analysis โ every finding names the shots to fix |
| Smart editing (beat-snap + emotion pacing + one-instruction style) | โ | โ | โ | โ | โ | โ beat-snap ยท emotion pacing ยท emphasis ยท transition aesthetics ยท "fast & hype/slow & lyrical" in one line (BYO LLM) | |
| First+last frame lock (image_tail cut-to-cut coherence) | โ | โ | โ | โ (I2V) | โ | โ Kling FLF wired into main pipeline, per-shot tail-frame picker | |
| Multi-character face cast library (post-build editable) | โ | โ ไธปไฝๅบ | โ ่ง่ฒ็ฎก็ | โ | โ 3-slot cast + cross-shot subject_reference injection | ||
| One-click localization (script + re-voice) | โ | โ | โ | โ | โ | โ 8-lang translate โ apply โ re-TTS, honest degradation | |
| Royalty-free AI BGM per story | โ | โ | โ | โ | โ | โ | โ MiniMax music-2.6, style-prompt โ project BGM |
| Per-shot auditable decision log (engine/cost/consistency) | โ | โ | โ | โ | โ | โ | โ decision log + cost drill-down + quality score |
| Emotion-aware TTS (mapped to native enum) | โ | โ | โ CN emotion โ MiniMax speech-2.8-hd enum, live A/B verified | ||||
| Lip-sync wired into pipeline (auto per dialogue shot) | โ | โ | โ ๅ็ | โ | |||
| Full-app i18n (zh/en/ja/ko/ru, all UI) | โ(ๆฏๆจกๅไธๆฏ app) | โ | โ 5-language core UI, ~400 keys (component-level string cleanup ongoing) |
Cells marked
โ ๏ธ = the feature exists but in a limited / locked-down form (e.g. "you can only do this on a paid Pro tier through a UI panel").
ๆฌ่ๆฐๆฎๅ จ้จๆฅ่ช่็ฝๆฃ็ดข(่พๅชใDataEyeใๅ ๅณ้ใๅ็ปใๆฐๅ็ฝใๅนฟ็ตๆปๅฑๅ ฌๅผๆไปถ็ญ),ๅซๅฏนๆฌ้กน็ฎไธๅฉ็ไบๅฎใๆไปฌ่ฎคไธบๅๆธ ๆฅ่ต้็็ๅฎ็ปๆต็ปๆ,ๆฏๅ ไธไธชๆผไบฎ็ TAM ๆดๆ็จใ
| ๆๆ | ๆฐๅผ | ๅฃๅพ |
|---|---|---|
| ไธญๅฝๅพฎ็ญๅงๅธๅบ | 2025 ๅนด็ ด 1000 ไบฟๅ (2024 ไธบ 504 ไบฟ,+35%) | ๅ จๅนดไบงๅผ |
| 2026 ้ขๆต | ็บฆ 1200 ไบฟๅ ,ๆๆดป็ปดๆ 7.18 ไบฟ้็บง | ๅคๅฎถๆบๆไธ่ด้ขๆต |
| AI ๆผซๅง็ปๅ | 2025 ๅนด 189.8 ไบฟๅ ,ๅๆฏ +276%;2030E ็ ด 850 ไบฟ | ่พๅชๅจ่ฏข |
| AI ๆธ้็ | 2026 Q1 ๆฐไธ็บฟ 12.8 ไธ้จไธญ็บฆ 12.2 ไธ้จๆ AI ๅไธ(>95%) | AI ๅทฒๆฏ้ป่ฎค็ไบงๆนๅผ |
| ๅบๆตท | 2025 ไบงๅผ็บฆ $40 ไบฟ,ๆตทๅค App ๅ็ซฏๅ ่ดญ $20.3 ไบฟ(+115%);ไธญๅฝ็ฉๅฎถๅ ๅ จ็็บฆ 80% | ReelShort $4.32 ไบฟ / DramaBox ็บฆ $3.7 ไบฟ |
| ไผ ็ป็ไบบๅพฎ็ญๅง | AI ็ฎก็บฟ | |
|---|---|---|
| ๅ้จๆๆฌ | 30โ150 ไธๅ (็ฒพๅ 150โ300 ไธ) | 2โ30 ไธๅ (็บฏ AI ๆผซๅง 2โ10 ไธ) |
| ๅจๆ | 15โ30 ๅคฉ | 1โ30 ๅคฉ |
| ๅข้ | 40 ไบบไปฅไธๅง็ป | 3โ10 ไบบ |
| ๆฏๅ้ๆๆฌ | ็บฆ 1 ไธๅ | 100โ4000 ๅ |
็ปผๅ้ๆฌ 80โ90%ใ ๆ็ซฏๆกไพใๅฎๅพฝๅฐๆจๅ ใๅถไฝๆๆฌ 2900 ๅ ใๆถ็็บฆ 50 ไธๅ (ROI โ 170 ๅ)ใ
โ ๅถไฝๅชๅ ๆปๆๆฌ 7.5%,ๆๆตๅ 70โ85%ใ ๅ็ป็ฝๅฃๅพ:ๅนณๅฐๅนฟๅๆๆพ 82.5%ใๅถไฝ 7.5%ใๆผๅ 5%ใๅงๆฌ 1.5%ใ่ฟๆๅณ็ใๆๅถไฝๆๆฌๅ็ ไธๅใๅฏน้กน็ฎ็ไบๅ ไนๆ ๅฝฑๅ โโ ไปปไฝไปฅใๆดไพฟๅฎๅฐๅบ็ใไธบๅฏไธๅ็น็ๅทฅๅ ท,ไปทๅผๅคฉ่ฑๆฟๆไฝใ
โก ๅไฝ็ปๆตๅทฒ็ปๅพ่ใ CPM ไป 2025 ไธๅๅนด็บฆ 60 ๅ /ๅๆฌก่ทๅฐ 2026 ๅนด 15โ30 ๅ ;ๆ ๅ ROI ไป 1.03โ1.07(ไธๅไบๅบๆตท่พไผ,1.2โ1.5)ใ็บฆ 90% ็ AI ็ญๅงๅ ฌๅธๅคไบไบๆ,AI ๆผซๅง็ๆฌพ็ไธ่ถณ 0.1%,ๅคด้จ 5% ้กน็ฎๅๆ 70% ่กไธๅฉๆถฆใ
โข ๅนณๅฐๆญฃๅจ็ปใ็บฏ AI ็ๆใ้ๆใ 2026 ๅนดๆ้ณ/็ฑๅฅ่บ/่ พ่ฎฏ่ง้ขๆจๅบๅ็บงๅ่ดฆๆฐๆฟ,ๅๅๆ ็ไบบๅบ้็ๅ จ AI ็ญๅงไฟๅบ่ตๆบ,่ฝฌ่ๆถๆใ็ไบบ + AI ๅไฝใใ
- ๆ้ซๆๅ็ไธ่ดจ้ไธ้,ๅปๅค้ฃ <0.1% ็็ๆฌพ็ใ ่ๅฅ/ๅฒ็ชๅฎก่ฎกใ้้ Vision ่ดจๆฃไธ่ชๅจ้็ใ่ง่ฒไธ่ดๆง(DNA + ๅตๅ ฅไฝๅผฆ)ใๅๅธ้ขๆฃ โโ ้ฝๆฏๅจๅๅฐๅบ็,่ๅบ็็ๆๆฏ่ฟ้จ็ๆ็็ๅฎๆๆใ
- ่ฝไบคไป่ฟไธไธๅช่พ็บฟ,ๆฏๆๅนณๅฐๆญฃๅจๆถๆ็ใ็ไบบ+AI ๅไฝใใ EDL / FCPXML / ็ไบ่ฟๅถ AAF(MS-CFB,็ป Avid)ๅฏผๅบ โโ AI ๅบ็็ด ๆๅฏไปฅ่ฟไบบ็ฑปๅช่พๅธ็ๅทฅ็จ,่ไธๆฏๅช่ฝๆด็็ดๅบใ่ฟๆฏๅฝๅๅ จ้จๅทฒๆฅ็ซๅ็ๅ ฑๅ็ฉบ็ฝใ
- ่ชๆ็ฎก + ๅผๆบ + BYO key,ๆๅก B ็ซฏไปฃๅทฅไธๅ็ๅฎๅถใ ่กไธๆญฃไป C ็ซฏๆๆต่ฝฌๅๆๆ /ๅ็ๅฎๅถ B ๅ(ๅฎขๅไปทๆฐๅไธ่ณ็พไธ็บง),่ฟ็ฑปๅฎขๆทๅฏนๆฐๆฎไธๅบ็งๅไธๆๆฌๅฏๆงๆ็กฌ่ฆๆฑ โโ ้ญๆบ SaaS ๅคฉ็ถๅไธๅฐใ
ๅนฟ็ตๆปๅฑใๅพฎ็ญๅงๅๅฑ็ฎก็ๅๆณใ2026 ๅนด 9 ๆ 1 ๆฅๆฝ่ก:
- AI ็ๆ/่พ ๅฉๅถไฝ็ๅพฎ็ญๅง,้กปๅจๆฏ้ๆพ่ไฝ็ฝฎๆ ๆณจใAIๅไฝใๆใAI่พ ๅฉๅถไฝใ,ๅญไฝไธๅพๆจก็ณ็ผฉๅฐ;
- ่ง้ขๅ ๆฐๆฎ้กปๅตๅ ฅ AI ็ๆๆบฏๆบไฟกๆฏ;
- ไธ็บงๅ็ฑปๅคๆก โโ ไธ/ไบ็บง้กปๆญๅบๅๅๅพ็็บงๅไปฅไธๅฎกๆ ธ่ฎธๅฏ,ๆ ๅคๆกไธๅพๅ่กใไธๅพๅ่ฏใ
ๆฌ้กน็ฎๅฝๅ็ถๆ(่ฏๅฎๆซ้ฒ):่ฏฅๅๆณ็บฆๆ็ๆฏๅ ๅฎนๆญๅบ/ๅ่กๆน,ไธๆฏๅผๆบๅทฅๅ ทๆฌ่บซ;ๆฌ้กน็ฎไธ่ฟ่ฅๅ ๅฎน,ๆ ไธ็ดๆฅ้็จใๅทฅๅ ทไพงๅทฒๆไพ็ๆๆฎต:v12.222 ็ๆ้ณ็ดๅๅผบๆ
aigc_info+ ๅบๆตทๆๅ ็ปๆๅ AI ๅฃฐๆ(ๆช็กฎ่ฎคๅณ 422)+ ๆ็่งๆ (AI_WATERMARK=1ๅผๅฏ,ๆๆฌๅฏ็จAI_WATERMARK_TEXT่ฆ็ไธบใAIๅไฝใ)ใๅฐๆชๆไพ:่ง้ขๅ ๆฐๆฎๆบฏๆบๅญๆฎตๅๅ ฅใ่ฅไฝ ่ฆๆๆ็ๆๆพๅฐไธญๅฝๅคง้ๅนณๅฐ,่ฏท่ช่กๅผๅฏ่งๆ ๅนถๆๅนณๅฐ่ฆๆฑๅฎๆๅคๆกไธๆ ่ฏ โโ ๅ่ง่ดฃไปปๅจ่ฟ่ฅ่ ไธไพงใ
Real puppeteer captures of the running app (node scripts/capture-v12.mjs). ๆ ธๅฟ่ฟญไปฃ:
- ้ถๆฎตๅไน AI ๆ็ๅคๅป(v11.1.x):ๆ็ไบๆ ็ๅผ่กจ(ๅบๅๅๆฐ,้ AI ็ๅพ็)ยท ๅค้จ่ง้ข ffmpeg ๆๆก + BYO Vision ๆๆ ยท ๆฟๆขๅทฅไฝๅฐ(ใๅ จๅๆข็ซใ็บงๅ จๅฑๆฟๆข)+ ๅคๅป่ตท็(ไฟๅ็้ๅคด็ปๆ/ๆถ้ฟ)ยท ๅคๅปไฟ็ๅบฆๅฏน็ ง ยท ๅญไธบ็งๆๆจกๆฟใ
- ้กน็ฎ/่ตไบง็ฎก็(v11.2.0):ๆ็้กน็ฎ / ๆ็่ตไบง ๅ ้ค + ไธๆถ(็บง่ๆธ ็ + ๅฑไธปๅฎๅซ)ใ
- ๆจกๅ้ท่พพ(v10.6.3):ไธ้ฎๆซๆๅ API ๆๆฐๆจกๅ + ๅๅฎถๆ่ชๅจๅ็บง(ๅๆคๆ + ๅๆป)ใ
- ้ฉๅญๅฎก่ฎกไธๆๆ (v10.6.2):ๅผๅบ 3 ็ง้ฉๅญ / ้ๅฐพๆฌๅฟต / BGM ๅก็นๅฏน้ฝ็ใ
- ้ถๆฎตไบๅ A ๆบ่ฝๅช่พ(v12.0.x,ไบๅๅ จไบคไป):ๅก็นๅช่พ(ๅ็นๅธ้้ณไนๆ็น)ยท ๆ ็ปช่ๅฅๆฒ็บฟ(ๅณฐๅผ้ breathe / ๅจไฝ้ๅฟซๅ)ยท ไพง้ๅผบ่ฐ(ๅ ณ้ฎ้ไธๅ + ๆฒ็จณ่ฝฌๅบ)ยท ่ฝฌๅบๅฎก็พ(ๆ้ๅคดๅ ณ็ณป้่ฝฌๅบ)ยท ไธๅฅๆไปค่ฐ้ฃๆ ผ(v12.0.4,BYO)โโใๅฟซ่ๅฅ็ๅใ/ใๆ ขๅๆๆ ใไธๅฅ่ฏ่ฐ pacing ๅๅบฆ + ่ฝฌๅบ่ฝฏ็กฌ,ๆ key ่ตฐ่งๅใ้ key LLM ่งฃๆ่ช็ฑๆๆฌใ
- ้ถๆฎตไบๅ B ้ข่ง้ณ้ข(v12.1.x):็ๆฎต้ข่งๅ ๆญ้ ้ณ(้้ณ่ฃธ็ + ๅๆญฅ้ ้ณ่ฝจ)+ ๆ็้ณ้ขไฝๆฃ่ชๆ(ffprobe ็ผบๆต่กฅ่ฝจ)ใ
- ้ถๆฎตไบๅไธ ่ง่ฒ/่ตไบงไธ่ดๆงๅ็บง ยท ๅ
จๅฑ่ตไบง่ฎฐๅฟๅบ v2(v12.2.x,ไบๅๅ
จไบคไป):ๅฏนๆ ๅๆ็ซๅ OiiOiiใ่ง่ฒ้ซ็ปด็นๅพๅ้ + ่ทจๅบๆฏไธ่ดๆงใโโๅ็งฐๅฝไธไฟฎ DNA ๆผๆณจๅ
ฅ ยท DNA/ๅบๆฏ้่ฝๅบ(rerun/้ๅฏๅค็จใๆฉ้ไธๆผ) ยท ็ป
global_assets.embeddingๆญปๅ้็ต(BYO ๆๆฌๅตๅ ฅ + ๅ ๅญไฝๅผฆๆฃ็ดข) ยท ๅปบ่ง่ฒๅ ฅๅฃใ็ธไผผ่ง่ฒใๆจ่ไธ้ฎๅค็จ(้ฒ้ๅคๅปบ/่ทจ้ๆผ็งป) ยท ่บซไปฝๆผ็งปๆฃๆต(้้่ง่ง embedding ไฝๅผฆ่ท็ฆปๆ outlier ๆผ็งป้)ใๅ จ็จๆ key ่ตฐ็กฎๅฎๆงๅฐๆฟ(็ฒพ็กฎๅ+ๆๆฌๅน้ ),ๆ key ๅ้ๅขๅผบ,่ฏๅฎ้็บงใ - ๅฎๅ จๅ ๅบ(v11.1.4):JWT ๅ ฌๅผๅ ๅบๅฏ้ฅๆ น้ค(่ฟ็จ็บง้ๆบๅฏ้ฅ,ๆงๆณ้ฒๅผไฝๅบ)ใ
| ๆ็้กน็ฎ ยท ๅ ้ค/ไธๆถ็ฎก็ | ๆ็่กจ + ๅคๅปๅทฅไฝๅฐ |
|---|---|
![]() |
![]() |
| ็ด ๆๅบ ยท ่ตไบง็ฎก็ | API ๅฅๅบท ยท ๆจกๅ้ท่พพ |
|---|---|
![]() |
![]() |
| ้ฉๅญๅฎก่ฎกไธๆๆ | ไธๅฅๆไปค่ฐๅช่พ้ฃๆ ผ(v12.0.4) |
|---|---|
![]() |
![]() |
| ็ๆฎต้ข่ง้ณ้ข:ไธๆๅพฝ็ซ + ๅธฆๅฃฐ่ฏๅฌ(v12.1.2) | |
|---|---|
![]() |
ๅทฆ:ๅธฆ้ ้ณ(TTS ๅ ๅฑ)+ ๅธฆๅฃฐ่ฏๅฌๅผๅ ณ ยท ๅณ:็ๆฎตๆ ็ฌ็ซ้ณ่ฝจ(ๆ็ๅซ้ ไน+้ ้ณ) |
ๅฎๆด้็ๆฌๆ ธๅฟ่ฟญไปฃ่ง VERSIONS.md;้ถๆฎต่ฎกๅ่ง docs/stage18โdocs/stage20ใ
ๅ จ้จ็ฑ
node scripts/capture-v12-425.mjsๅฏน็ๆฌๆบ็ๅฎๆฐๆฎ่ทๅบๆฅใ่ๆฌๅธฆ็ฉบๅฃณๆฃๆตไธ่ฟ้ๅคๆฃๆต: ้กต้ขๆฒกๆธฒๆๅบๆฅใๆ่ ใ็นไบ tab ไฝ่งๅพๆฒกๅใ็,ไธๅพๅ ๆๅนถๅฆๅฎๆฅๅ โโ ไธๅผ ๆชๅพๅๅ ไธคๅผ ,ๆฏๅฐไธๅผ ๆด็ณใ๐ ๅฎๆด 18 ๅผ + ๆฏๅผ ็ๅฎ็ฐ้ป่พไธๅทฅไฝๆตๆถๆ่ฏดๆ:docs/SCREENSHOTS-v12.425.md (ๅ็ฌๆๆๆฏไธบไบไธ่ฎฉ้ฆ้กตๆฟ่ฎฟๅฎขๆไธ่ฝฝ้ โโ README ๅผ็จๅชไฝๆ 12MB ้ข็ฎ้จ็ฆใ) v12.426 ่กฅ่ฎฐ:ไธ้ขใๆ็้กน็ฎใ้ฃๅผ (
docs/screenshots/v12/01-my-projects-manage.jpg)ๅทฒ้ๆใ ๆงๅพ้ๅก็ๅคงๅๆฏๆธๅๅ ไฝ โโ ไธๆฏๆฒกไฝๅ,ๆฏๅฐ้ข่ขซๅป็ปๆไบไธๆฌกๅคฑ่ดฅ็ๅฟซ็ ง:ๆตๆฐด็บฟๆซๅฐพๆไธไปฝ็ฌฌ 1 ้็imageUrlๅฐฑๅไธ้็ฎ,ไบๆฏๅบๅพๅ จๆๆถ็ mock ๅ ๅบๅพ่ขซๆฐธไน ๅๆญป(30 ไธช้กน็ฎ้ 12 ไธชๅฆๆญค,ๅ ถไธญ 3 ไธชๆๆๅๆ 11~12 ๅผ ็ๅ้่ฟๆดป็)ใ็ฐๆนไธบ่ฏปๆถ่งฃๆ,ๅนถๆธ ๆไบ 21 ไธชๅคนๅ ท/ๆ ็ด ๆ้กน็ฎ(ไธๆถ,ๅฏไธ้ฎๆขๅค)ใ
All captured by
node scripts/capture-v12-416.mjsagainst real local data (1440ร900 @2x, downscaled to 1600px wide). The script has blank-page detection and near-duplicate detection: a screen that failed to render, or one where "the tab was clicked but the view never changed", is deleted and reported honestly โ one screenshot masquerading as two is worse than one missing.
Only one project-page shot: clicking the tabs and scrolling the body both leave the view unchanged.This conclusion was wrong and is retracted (v12.425.) The tab bar sits below the fold, so a coordinate click missed it;scrollIntoViewfollowed byel.click()switches tabs fine. See the v12.425 section above for 12 shots taken that way.
Measured performance (local dev server, curl time-to-first-byte): landing 46 ms;
console pages (projects / assets / engine health / usage) 22โ38 ms.
Tests: 5294 passing ยท 0 failing; preflight 10/10; CI all five jobs green.
Below is the foundational v3 pipeline (the v6 studio screens are in the New in v6 section above). Every panel is a real puppeteer capture of the running app (run node scripts/capture-screenshots.mjs / node scripts/capture-v6.mjs to refresh).
The ๅไฝๆป่ง dashboard: 99 projects + 4 case studies + recent activity feed + system status (engines in use, model versions).
Cross-project reusable: ่ง่ฒ / ๅบๆฏ / ่ง้ข / ้ณไน / ๅญๅน / ๆจกๆฟ โ 1467 assets in this demo project.
Every short film with auto-generated cinematic covers + status badges + quality donut.
The whole pipeline as a live agent flow: Writer / Character Designer / Scene Designer / Storyboard Artist / Video Producer / Editor nodes wired together with progress streaming per node, plus a chat side-rail showing every agent message in real time.
The ๅงๆฌ tab: every shot with duration, emotion tag (่ญฆ่ง / ๅ้ / ๆๆ / ๆด้ฃ็ๆฒ็ / ้ๅฎ็ไธๆณจโฆ) and a one-line beat note (ไป่กจ้ขๅฐๆทฑๅฑ่ญฆ่ง / ไปๆ ็ฅๅฐๆ็ฅๅจ่ / ไป่ญฆๆๅฐ้ญๅ่ขญๅป โฆ) so the rhythm of the cut is legible at a glance.
3-track layout (SHOTS / BGM / SUBTITLE), drag-to-retime, double-click subtitles to rewrite, drag edges to resize, real BGM waveform (Web Audio decode), live other-user cursors with name labels, segment lock indicators.
KPI: ๅนณๅๅฒ็ชๅ / ๅ่ฝฌๆฐ / ้่ฟ็ถๆ. Per-shot conflict-score bar chart with reversal arrows + emotional polarity icons. Color-coded green (โฅ7) / amber (4-6) / red (<4). Below: actionable warnings + suggestions.
Project-level + per-shot threaded comments with @-autocomplete and notification bell. Each shot collapses for context.
Per-shot "ๆน prompt ้็" (regenerate image with custom prompt + reference image upload) and "4K ้ๆธฒ" (Kling Master 4K re-render, plan-gated).
| What it does | Where it lives | |
|---|---|---|
| Multi-agent pipeline | Director / Writer / Char Designer / Storyboard / Editor โ 8 agents | services/hybrid-orchestrator.ts |
| Style Bible Frame | One canonical key-art frame locks visual identity across all shots | lib/style-bible.ts |
| Character DNA | 8-dim vision-extracted character signature + per-shot prompt injection | lib/character-dna.ts |
| Style Vision Audit | Auto-regen any shot scoring <70 on palette/lighting/colorTemp/texture | lib/style-audit.ts |
| Cameo Vision Retry | Auto-regen any shot scoring <75 on character resemblance | services/cameo-retry.ts |
| Pacing Audit | Conflict-score / reversal-detect / cliffhanger per Chinese drama tropes | lib/pacing-audit.ts |
| Drama Tropes | 12 vertical-drama hook templates + 9:16 default + reversal density rules | lib/drama-tropes.ts |
| CJK Subtitle Burner | ffmpeg libass with system CJK font discovery | lib/text-control.ts + services/video-composer.ts |
| Multi-track Timeline | 3 tracks, drag/resize/snap/auto-collide, BGM waveform | components/project/cinema-timeline.tsx + lib/timeline-tracks.ts |
| Real-time collab | Yjs CRDT + WS server + presence + cursors + segment locks | scripts/ws-server.mjs + hooks/use-yjs.ts + hooks/use-segment-locks.ts |
| Project invites | viewer/commenter/editor role + token expiry + revoke | lib/project-share.ts |
| Comments + @mentions | Threaded comments, @-autocomplete, mention notifications | lib/comments.ts + lib/notifications.ts |
| Lipsync | Kling / Sync.so / Hailuo auto-select, fail-safe fallback | services/lipsync.service.ts |
| Plan-gate billing | Per-engine plan checks (Vidu Q3 = enterprise, etc.) | lib/plan-gate.ts |
| API quota tracker | Per-provider failure tracking + dashboard banner | lib/api-usage-tracker.ts |
| 18 project templates | ้ธๆป/้็/็ฉฟ่ถ/ๅค่ฃ /็งๅนป/ๅฟ็ซฅ/็บชๅฎ/ๆๆ/ๅๅง etc. | lib/story-templates.ts |
| BYO LLM docs | 12-provider config matrix, 0-code swap | docs/llm-providers.md |
| ๐ Character Studio | Multi-view turnaround + DNA lock + auto-bound voice + bio | lib/character-studio.ts |
| ๐ Prompt Workbench | @-mention assets, autocomplete, compile-preview, readiness score |
lib/prompt-ide.ts + components/prompt-editor.tsx |
| ๐ Long-form Intake | Novelโepisodes + narration modes + real TTS + season parallel | lib/story-intake.ts + lib/narration-synth.ts + lib/season-orchestrator.ts |
| ๐ Style Gallery | 60 presets, 5 categories, one-click apply | lib/style-presets.ts + app/dashboard/styles |
| ๐ Director Console | 4-stage pipeline model + stale detection + single-stage rerun | lib/pipeline-stages.ts + components/director-console.tsx |
| ๐ Team Workspace | Credit pool + per-member allocations + RBAC + real invites | lib/team-credits.ts + lib/team-invite.ts |
| ๐ Postgres cutover (v9) | SQLiteโPG dual-driver; all write paths on async repos (project_assets/projects/users/notifications/comments cleared), tx commit+rollback verified, DB_DRIVER=pg opt-in |
lib/db-driver.ts + lib/repos/* + scripts/pg-migrate.ts |
| ๐ API Health Board | Live model/gateway status + balance + out-of-credits detection | lib/provider-health.ts + app/dashboard/health |
Every model call is provider-pluggable (priority chain + automatic fallback). Creative and high-frequency LLM traffic are split across two model tiers, and MiniMax is always the last-resort fallback on any error / out-of-credits / timeout:
| Capability | Default model (env override) | Supplement / fallback |
|---|---|---|
| Creative LLM (writer / director) | deepseek-v4-pro (OPENAI_CREATIVE_MODEL) + deepseek-v4-flash fast tier for drafts/polish |
MiniMax-M2.7 (LLM_FALLBACK_MODEL) |
| General LLM (planning / validation / Vision-Audit) | claude-sonnet-4-6 (OPENAI_MODEL) |
MiniMax-M2.7 |
| Video | veo3.1-pro (VEO_MODEL) |
veo3.1 ยท Kling โ MiniMax Hailuo (Sora-2 retired โ API EOL 2026-09-24) |
| Image | flux.1-kontext-pro (IMAGE_MODEL) |
Midjourney (mj_imagine) ยท fal FLUX Kontext ยท local ComfyUI โ MiniMax image |
| TTS / voiceover | gpt-4o-mini-tts (VE_TTS_MODEL) |
MiniMax T2A (speech-02-hd) |
| Music / BGM | MiniMax music | (Suno when gateway channel available) |
- Why two LLM tiers: the creative tier (DeepSeek
-pro, a reasoning model) carries writer/director quality work; the general tier (Claudesonnet-4-6) handles high-frequency planning / validation / Vision-Audit; the-flashtier keeps draft-compare & basic polish at sub-second latency. - MiniMax safety net: any primary LLM / video / image failure auto-routes to MiniMax (OpenAI-compatible) โ surfaced live on the API Health Board (ๆญฃๅธธ / ้ขๅบฆ็จๅฐฝ / ้ ็ฝฎ็ผบๅคฑ / ไธๅฏ่พพ).
- Swap anything in
.env.local(OPENAI_*/OPENAI_CREATIVE_*/VEO_*/IMAGE_MODEL/VE_TTS_MODEL/MINIMAX_*) โ zero code change. Seedocs/llm-providers.md.
docker run -p 3100:3100 -e MOCK_ENGINES=1 -e JWT_SECRET=demo -e NEXTAUTH_SECRET=demo \
ghcr.io/chrischen667788/wind-comic:latestThen open http://localhost:3100. No clone, no npm install, no local build.
Prefer compose (also seeds a demo project):
docker compose -f docker-compose.demo.yml up
โ ๏ธ Honest note: demo mode runs the deterministic mock engines (MOCK_ENGINES=1โ SVG storyboards, solid-colour clips, sine-wave audio). It demonstrates the pipeline and the product shape, and is not representative of real generation quality. Every artifact is labelled as mock โ passing a placeholder off as a finished film is exactly the thing this project keeps hunting down. Add a single API key to switch to real engines.
# 1. clone + install
git clone https://github.com/ChrisChen667788/wind-comic.git
# in mainland China, clone the AtomGit mirror instead (LFS videos included):
# git clone https://atomgit.com/ChrisChen667788/wind-comic.git
cd wind-comic
npm install
# 2. configure (3 mandatory lines, see docs/llm-providers.md for swaps)
cp .env.example .env.local
# Edit .env.local:
# OPENAI_API_KEY=sk-...
# OPENAI_BASE_URL=https://api.openai.com/v1 # or any compat provider
# OPENAI_MODEL=gpt-4o # or claude-opus-4 via OpenRouter, etc.
# 3. run
npm run dev # Next.js on :3000
# Optional second terminal for real-time collab:
npm run dev:ws # Yjs WebSocket server on :1234
# 4. open http://localhost:3000 and create your first short filmMinimum LLM: any model โฅ24B parameters that responds in JSON. We've tested gpt-4o, Claude Opus 4, DeepSeek-r1, Qwen-Max, MiniMax-M2, GLM-4.5, Kimi-K2.
Optional engines (graceful fallback when missing):
MINIMAX_API_KEYโ image-01 / Hailuo-2.3 video / speech-2.8-hd TTS / music-2.6 BGMKELING_API_KEYโ Kling Master 4K + first-last-frame fusion + lip-syncHAPPYHORSE_API_KEY(or reuseVECTORENGINE_API_KEY) โ HappyHorse 1.1 (Alibaba). Joint video+audio in a single pass; top-5 on both Artificial Analysis boards. Enable by listing it inVIDEO_ENGINE_ORDER(it is not in the default chain, so adding the key alone changes nothing for existing users). Live-verified 2026-08-07: 1080p h264 + aac, ~170s for a 3s clip. Fixed in v12.295 โ we had been sending a field that does not exist. From v12.272 we passedsize: '9:16'; the upstream has nosizeparameter at all, and it silently ignores fields it does not recognise, so every clip came back in the default 16:9. (A deliberately bogussizestill returns HTTP 200 and creates a task โ that is how the silent-fallback was proven.) Per Alibaba's own HappyHorse text-to-video reference, the real fields areratio(16:9default,9:16,1:1,4:3,3:4,4:5,5:4,9:21,21:9),resolution(480P/720P/1080P),duration,watermarkandseed. Theusageblock the API returns โ{"SR": 1080, "ratio": "16:9"}โ is simply an echo of those two, which had been in plain sight all along. Also fixed:watermarkdefaults to true upstream, so every HappyHorse clip carried a bottom-right "Happy Horse" watermark; it is now off by default (HAPPYHORSE_WATERMARK=1restores it). Vertical is no longer gated off, but every finished task still cross-checksusage.ratio, and a mismatch disables that ratio for the rest of the run instead of burning shot after shot. Tune withHAPPYHORSE_RESOLUTION/HAPPYHORSE_SEED;HAPPYHORSE_SIZEis deprecated and ignored.VIDU_API_KEYโ Vidu Q3 (long-form 16s clips)VEO_API_KEYโ Veo 3.1-fast video fallbackGROK_API_KEYโ xAI Grok Imagine 1.5 (T2V/I2V, native audio; BYO โ 2026-06 image-to-video #1; auto-preferred when set)JIMENG_AK/JIMENG_SKโ ByteDance Seedance 2.0 (็ซๅฑฑๅผๆ CV; multi-ref + native A/V; 2026-06 text-to-video #3; BYO)LTX_API_KEY(orFAL_KEY) โ LTX-2.3 (Lightricks open-weight #2 text-to-video; self-hostable viaLTX_BASE_URL; BYO)GEN_CONCURRENCY/GEN_CONCURRENCY_VIDEOยท_STORYBOARDยท_SCENEโ per-stage generation concurrency (default 2, max 8).โ ๏ธ Higher video concurrency is faster but weakens keyframe-chain continuity (shot N pulls shot N-1's last frame) โ keep low (1โ2) when cross-shot ่กๆฅ matters.SYNCSO_API_KEY/HAILUO_API_KEYโ alternative lip-sync providers
We're open to PRs. Two things matter most:
- Don't break the multi-agent contracts. Each agent has explicit input/output shapes โ see
types/agents.ts. - Tests gate everything. Vitest 5869/5869 must stay green. Add tests for new lib/service files.
See CONTRIBUTING.md for the repo's contribution guide.
docs/llm-providers.mdโ Swap LLM provider in 3 env varsdocs/SCREENSHOTS.mdโ Module-by-module screenshot manifestdocs/MARKETING-en.mdยทdocs/MARKETING-zh.mdโ Pitch deck copyROADMAP.mdโ Full sprint-by-sprint changelog (v2.10 โ v9.2.0) ยทVERSIONS.mdโ version history tabledocs/COMPETITIVE-GAP-2026-05.mdโ Honest analysis vs Sora/Kling/Vidu/Higgsfield
MIT. Use it, fork it, build a startup on it. We just ask: if you ship a feature on top, send a PR back.
Wind Comic's own source is MIT. But three npm dependencies ship pre-built binaries under copyleft licenses. This does not affect the MIT status of this repository, and it does not affect you if you simply run or fork the source. It does matter the moment you redistribute a bundle that embeds those binaries (a Docker image, a desktop build, a hosted appliance you hand to a customer):
| Dependency | License | What you must do when redistributing a bundle |
|---|---|---|
ffmpeg-static |
GPL-3.0-or-later | Strongest constraint. Ship the GPL-3 text and a written offer for the corresponding FFmpeg source โ or drop the dependency and point FFMPEG_PATH at a system ffmpeg you obtained separately. |
lightningcss (+ platform binaries) |
MPL-2.0 | File-level weak copyleft. Unmodified use/redistribution carries no extra duty; only if you modify its MPL-licensed files must you publish those files. |
@img/sharp-libvips-* |
LGPL-3.0-or-later | Dynamic linking does not infect your code. On redistribution you must let end users replace/relink the library and point them to its source. |
CI enforces this: scripts/license-check.mjs scans the production dependency tree every run and fails the build if a copyleft dependency appears that is not registered in the table above โ so a new GPL dependency can never slip in unnoticed.
Wind Comic stands on a lot of excellent open-source work:
- App & UI โ Next.js (App Router + Turbopack) ยท React 19 ยท Tailwind CSS v4 ยท Radix UI ยท Phosphor Icons + Lucide ยท Framer Motion ยท React Flow for the agent-workflow DAG
- Realtime & data โ Yjs + y-websocket for CRDT real-time collaboration ยท better-sqlite3 + node-postgres for the dual-driver persistence layer
- Media & export โ FFmpeg via fluent-ffmpeg (CJK subtitle burn / audio mux) ยท pro NLE interchange through CMX3600 EDL ยท FCP7 XML ยท AAF (a from-scratch MS-CFB Compound File Binary writer, no third-party lib)
- Methods & algorithms โ Robert McKee story structure + Save-the-Cat 3-act beat analysis ยท CRDT (conflict-free replicated data types) for collaborative editing ยท
cref/sref+ 8-dimension character DNA for cross-shot identity consistency - Tooling โ TypeScript (strict) ยท Vitest ยท Stripe โ and every creator whose real-world feedback shaped the pipeline.
Features that exist because someone outside the team took the time to file a good report:
- @flobo3 โ #11: proposed GPT Image (
gpt-image-1) and Nano Banana (Gemini Image) as first-class image providers, including the endpoints, the env-var naming, the "reuse the already-configuredOPENAI_API_KEYto lower the barrier" idea, and the observation that Nano Banana's native i2i fits the existing character-consistency contract. Shipped in v12.247โv12.247 essentially as designed. - @MikhailNikolaev44 โ #2: reported that selected characters were being ignored on shot regeneration, which uncovered three separate bugs in the reference-image path (v12.132โv12.134), plus the script-language selector request.
- @JSap0914 โ #1: fixed broken README links.
Found something? Issues and PRs are genuinely read โ several of the pipeline's sharpest fixes started as an outside bug report.
If Wind Comic saved you time, a star helps other creators find it.
Self-collected โ GitHub restricted the stargazers API to repo admins and collaborators on 2026-06-30, which broke every third-party star-history service. This chart is generated by scripts/gen-star-history.mjs from this repo's own token and committed daily, so it depends on no outside service. Raw series: assets/star-history.json.
Built with โค๏ธ by people who believe AI-generated drama should feel like a show, not a tech demo.
โญ Star us if Wind Comic saved you a week.


































