iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
한 줄 텍스트를 스크립트·스토리보드·영상까지 완성하는 다중 에이전트 AI 파이프라인, 제공자 독립
Multi-agent AI pipeline that turns one line of text into a finished short-form drama: script, cinematic storyboards, character-consistent video. Provider-agnostic (OpenAI/Claude, MJ, Minimax, Veo/Sora
미디어TypeScript · JavaScriptGitHub @ChrisChen667788직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
Multi-agent AI pipeline that turns one line of text into a finished short-form drama: script, cinematic storyboards, character-consistent video. Provider-agnostic (OpenAI/Claude, MJ, Minimax, Veo/Sora, fal, ComfyUI). MIT.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗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.)
v13.0 consolidates v12.461 – v12.473 (13 releases, 2026-09-30 → 10-09). One pattern ran through most of them: settings that looked like they worked but had no code reading them, and engine requests that looked like they succeeded but sent the wrong thing.
Aspect ratio, end to end (v12.464, 467, 468, 470 – 473) — until v12.467 only full-film generation read the project's aspect ratio. Regenerating a single shot, self-healing retakes, segment retake, 4K re-render, recomposing after a chat edit, scene-image regeneration and the ad workshop each fell back to their own 16:9 or 9:16, so a 9:16 project could get a landscape shot back. They now all read projects.aspect through one shared parser. Prompt templates no longer hard-code --ar 16:9 (a vertical project used to send Midjourney both --ar 16:9 and --ar 9:16); Midjourney parameters are moved to the end and appear once, and non-Midjourney image engines and the video engines receive plain text. The create page no longer offers 2.35:1, which no video engine we ship can output; the ad workshop's aspect is now selectable and defaults to the project's.
Settings that finally have a reader (v12.464, 466, 469, 473) — the format bar's color space now goes into storyboard prompts, its safe-area toggle drives the 9:16 overlay, and its aspect is a read-only display of the project's real aspect instead of a second, dead copy. The short-video planner dropped the resolution / frame-rate / upscaling / interpolation / motion-strength controls that nothing read (the defaults claimed 8K, 4× upscale and interpolation), and its aspect choice now carries over to the create page.
Director's console, finished (v12.462, 463, 465) — add, remove and rename actors; the camera can tilt, and "aim at subjects" points a raised camera at the actors; the layout sketch re-renders when the blocking changes, and shots generated from the old blocking are marked stale. The sketch goes only to engines that compose from it (fal Kontext, Seedream; Midjourney as an opt-in) — never to MiniMax, whose reference input is portrait-only. The full walkthrough — real WebGL (software-rendered in CI) and real MediaPipe pose inference — now runs in CI.
Engine requests that were silently wrong (v12.461, 465, 471, 472) — MiniMax's subject_reference[].image_file had been sent as an array since v2.20 while the official schema is a string, so every MiniMax generation with reference images was rejected (2013) and quietly fell back to another engine; a live call found it. The Vidu host default existed twice, one copy wrong; Midjourney prompts carried duplicated and mid-prompt parameters; video engines were handed Midjourney syntax as prompt text.
Not verified yet: sketch delivery to Seedream / kontext / Midjourney follows their documented request formats but could not be confirmed with a live generation (gateway quota exhausted / no Midjourney channel / upstream saturated on 10-01, 10-06 and 10-08);
npx tsx scripts/probe-sketch-engines.ts --yes <engine>re-runs the check, one paid image per engine. fal is unverified (no key configured).
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; the sketch goes only to engines that actually compose from it — fal Kontext and Seedream, with Midjourney image prompts as an opt-in; MiniMax's reference input is portrait-only, so it never gets the sketch. When no such engine is available the lock is skipped, and if generation falls back to an engine that didn't receive the sketch the lock line is stripped — never claimed). 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; the camera can tilt up and down (v12.465), and "aim at subjects" points a raised camera at the actors in one click — the prompt, the 3D preview and the layout sketch all describe the same camera. 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 aren't regenerated: they're re-encoded once, in the same pass that splices in the new two seconds, at x264 crf 17 (the visually-lossless range). It's not a byte copy — -c copy can only cut on keyframes, and here the cut has to land on the exact frame you picked. The whole audio track keeps the source's sample rate and channel layout, so the spliced seconds don't shift pitch. 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. End to end since v12.459: box the bad frames in the frame inspector → a free dry-run shows what will be generated → confirm, and the server generates the patch starting from the source frame at the cut-in point, splices it, checks the video frame count before recording the take, and lists it for preview. The first adoption keeps the original as a take of its own, so rolling back is one click. If every video engine fails it refuses instead of splicing in a still-image placeholder, and the request is synchronous (engines take ~30–120 s).
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.
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).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站) · (MS-CFB container, for Avid) alongside EDL / FCP7 XML (Premiere, DaVinci) · plus (publish-readiness gate, rebirth loop, consistency report) and the fusion. |
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.
| 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.
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:
escalating / flat / front-loaded / no-climax.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-10-15 (research agents + independent checkers, then I re-read both Artificial Analysis boards live and pulled every open-source star count from the GitHub API. Ledger:
docs/competitive/claims.json; full analysis:docs/COMPETITIVE-GAP-2026-09.md). ⚠️ Both arenas were re-versioned twice in three weeks — text-to-video went to v2.0 and then v2.1 (Kling 3.0 1080p Pro fixed at 1000), image-to-video from v1.0 to v1.1 — so figures in earlier versions of this README cannot be compared with these. T2V with audio (v2.1): Wan 3.0 1173 > Utopai X 1166 (new; no API) > Seedance 2.5 1159 > MiniMax H3 768p 1158 > MiniMax H3 Max 1156 > FLUX 3 1145; Gemini Omni Flash 1.1 is #8 (1132) and Veo 3.1 #19 (968). T2V without audio: Wan 3.0 1134 > MiniMax H3 768p 1121 > MiniMax H3 Max 1117. I2V with audio (v1.1): MiniMax H3 768p 1141 > Seedance 2.5 1139 > Gemini Omni Flash 1.1 1134 > Wan 3.0 1127 > MiniMax H3 Max 1124; without audio: Gemini Omni Flash 1368 > Bach 1.0 Pro 1362 = Wan 3.0 1362 > MiniMax H3 1356. Vidu Q4 Preview (launched 10-07) entered the old v1.0 I2V board at #3 (1179) on 10-09 but is not listed on v1.1, even with research previews shown. Kling 4.0 is announced (up to 30s / 4K / 15 references) but not callable yet: the full model is set for October, the Flash variant has been in limited early access since 9-28, and no API pricing is published — so the column below stays on Kling 3.0, the version you can actually call (native 4K / 60fps / 15s / 6 coherent shots / built-in multilingual dialogue + lip-sync, $0.084–0.112/s as of the 09-22 check). xAI Grok Imagine Video 1.5 (Jun 16) still offers 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. 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. ✅ The Sora 2 API shut down on 2026-09-24 as announced (no extension) — 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 ( runs the branch against a fake clock; keeps the defaults clean). (7-31) and (8-24 GA) both do ; Seedance accepts (token-billed, ¥42–70/M tokens), Wan 3.0 runs and converts documents straight to video (PPT/Word/PDF → 30s). (10-07) succeeds Q3 as ShengShu's flagship (briefly #3 on the old I2V-with-audio board, not listed after the v1.1 re-version): up to 15 image + 3 audio references, 2K/4K output at 10-bit, 1–16s, aimed at independent creators, small studios and production teams. () — Q4 is not wired in yet. (4-08) is the most narrowly short-drama-vertical of all (storyboard-grid output + multi-speaker lip-sync). ① — the default video model moved to H3 in v12.402 and the two disagreeing Vidu call paths were unified in v12.403. What replaced them is a billing wall: (re-confirmed 2026-09-22, $0.08/s at 768P, $0.13/s at 2K). On a Token Plan key every H3 call is refused, so the pipeline falls back to Hailuo-2.3 (v12.446 made that fallback actually fire — it had been dead for 16 days because it only recognised the English error text), and . The health page now says so out loud instead of showing MiniMax all-green off a TTS probe (v12.452). ② (re-confirmed on OpenAI's deprecations page 2026-09-22, no extension). The guard has existed since v12.173/207 — warn before the date, drop Sora from the model chain after it, throw only if the chain empties — but until v12.452 the two tests "locking" it only grepped the source, so . It is now run against a fake clock with mocked upstreams, which also exposed a gap: if the vendor stops serving before our UTC-midnight cutoff, a Sora error used to abort the whole chain instead of falling through to veo/kling.
🔴 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". ⚠️ Self-correction (2026-09-25): until v12.455 this did not match the code — the pacing audit only warned (the comment inwriter-agentliterally says non-blocking). v12.455 adds a real block: withPACING_GATE=block, a script that fails the audit stops before character design, is never auto-released on a timeout, and cannot be bypassed by resuming; thepacingGaterequest field can only tighten the server setting, and proceeding anyway takes an explicitpacingOverride: true, which is recorded on the script asset; the default is still warn-only. Also, the "EDL export" leg of the triple is no longer rare in open source: openframe (AGPL) already exports FCPXML/EDL, and ArcReel (AGPL, 5.5k★) has committed to an editing-timeline model. Open-source scale (GitHub API, 2026-10-15): OpenMontage 68.3k★ (AGPL), ViMax 12.7k★ (MIT), DramaClaw 6.3k★ (Elastic 2.0, not FOSS), ArcReel 5.5k★ (AGPL), BigBanana 2.3k★ (non-commercial), Novella AI 125★ (MIT). OpenMontage is still the one to watch, and still has no timeline-file export (EDL/FCPXML/AAF) — its "edit decision list" is an internal step before Remotion renders. Full analysis: . 。:GPT Image / Nano Banana(Gemini)接入插件式图像 provider 链(issue #11,社区 @flobo3 提议, / 门控、原生 i2i 接角色一致性契约);(第 N 集 Writer 注入前几集前情提要 + 承接纪律,对标红果/阅文的 60~100 集连续,此前各集独立成篇)。:六轮独立对抗复检把安全洞从 CRITICAL 到 LOW 全清(SSRF 逐跳重验重定向 + IPv6 全隧道变体 / serve-file 签名能力 URL / WebSocket 鉴权 / 预算护栏),并把反复踩的「改了守卫却没跟到消费方」这个病(,零容忍,上线即抓到 2 个人肉复检漏掉的真 SSRF)。 结论不变:——节奏审计、智能剪辑、字幕烧入、协作、自托管、开源、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 | ⚠️(单段生成,多镜叙事非强项) | ⚠️ (4~15s 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 |
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 协作」。
广电总局《微短剧发展管理办法》2026 年 9 月 1 日施行:
本项目当前状态(诚实披露):该办法约束的是内容播出/发行方,不是开源工具本身;本项目不运营内容,故不直接适用。工具侧已提供的手段: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). 核心迭代:
global_assets.embedding 死列通电(BYO 文本嵌入 + 内存余弦检索) · 建角色入口「相似角色」推荐一键复用(防重复建/跨集漂移) · 身份漂移检测(逐镜视觉 embedding 余弦距离标 outlier 漂移镜)。全程无 key 走确定性地板(精确名+文本匹配),有 key 向量增强,诚实降级。| 我的项目 · 删除/下架管理 | 拉片表 + 复刻工作台 |
|---|---|
| 素材库 · 资产管理 | 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 个夹具/无素材项目(下架,可一键恢复)。
| 角色转身图 · v12.425 修的就是这里 | 导演台 · 全链路控片 |
|---|---|
立绘原生 896×1152 竖构图,修前被塞进 355×200 横框 + object-cover,裁掉 56%,必须点全屏才看得到完整图。现在框比例跟素材走、填充改 object-contain。 | 四个环节各自可寻址:剧本 / 角色·场景 / 分镜 / 成片,任一环单独「编辑」或「重跑」,并预告重跑的下游影响。 |
| 拉片分析 · 五栏出厂真值 | 分镜规格 · 出厂参数 + 一致性仪表 |
|---|---|
| 每镜给出叙事要素 / 时间 / 镜头语言 / 影像处理 / 声音五栏,且是流水线生成时的真实摄影语言,不是 AI 事后看图反推;可导出 CSV / 剧本册 MD / PDF,也能回灌外部片子做复刻。 | 画幅取项目创建时选定的 projects.aspect(整片生成、分镜构图、导演台同一来源),格式条只读显示;导出帧率只决定 EDL / AAF 的时间码帧率(成片固定 24fps,片段重拍按原片的真实帧率缝合);色彩空间写进之后出的分镜图提示词(默认「不指定」,不加任何色彩描述);安全框开关项目页的竖屏安全区预览叠层(只影响预览,不进成片)。右侧逐镜一致性打分,低分镜一键跳转重生。 |
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 |
lib/config.ts)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 | ElevenLabs Music (ELEVENLABS_API_KEY) | self-hosted ACE-Step / YuE (MUSIC_SELFHOST_URL) → MiniMax music-2.6 (closed to new accounts) |
-pro, a reasoning model) carries writer/director quality work; the general tier (Claude sonnet-4-6) handles high-frequency planning / validation / Vision-Audit; the -flash tier keeps draft-compare & basic polish at sub-second latency..env.local (OPENAI_* / OPENAI_CREATIVE_* / VEO_* / IMAGE_MODEL / VE_TTS_MODEL / MINIMAX_*) — zero code change. See docs/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:latest
Then 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 film
Minimum 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 BGM (closed to new accounts — for BGM set ELEVENLABS_API_KEY or MUSIC_SELFHOST_URL)KELING_API_KEY — Kling Master 4K + first-last-frame fusion + lip-syncHAPPYHORSE_API_KEY (or reuse VECTORENGINE_API_KEY) — HappyHorse 1.1 (Alibaba). Joint video+audio in a single pass; top-5 on both Artificial Analysis boards. Enable by listing it in VIDEO_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 passed size: '9:16'; the upstream has no size parameter at all, and it silently ignores fields it does not recognise, so every clip came back in the default 16:9. (A deliberately bogus size still 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 are ratio (16:9 default, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9), resolution (480P/720P/1080P), duration, watermark and seed. The usage block 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: watermark defaults to true upstream, so every HappyHorse clip carried a bottom-right "Happy Horse" watermark; it is now off by default (HAPPYHORSE_WATERMARK=1 restores it). Vertical is no longer gated off, but every finished task still cross-checks usage.ratio, and a mismatch disables that ratio for the rest of the run instead of burning shot after shot. Tune with HAPPYHORSE_RESOLUTION / HAPPYHORSE_SEED; HAPPYHORSE_SIZE is deprecated and ignored.VIDU_API_KEY — Vidu Q3 (long-form 16s clips)We're open to PRs. Two things matter most:
types/agents.ts.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/HiggsfieldMIT. 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:
cref / sref + 8-dimension character DNA for cross-shot identity consistencyFeatures that exist because someone outside the team took the time to file a good report:
gpt-image-1) and Nano Banana (Gemini Image) as first-class image providers, including the endpoints, the env-var naming, the "reuse the already-configured OPENAI_API_KEY to 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.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.
| 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。 |
| v13 · Settings that work, frames that match (v12.461–v12.473) | Aspect ratio end to end — single-shot regen, self-healing retakes, segment retake, 4K re-render, chat-edit recompose, scene-image regen and the ad workshop all read projects.aspect through one parser; prompt templates stop hard-coding --ar 16:9, Midjourney params go last and appear once, other engines get plain text · settings with a reader — format-bar color space reaches storyboard prompts, safe-area drives the 9:16 overlay, short-video planner drops the controls nothing read · director's console finished — actor management, camera tilt + aim at subjects, sketch re-render + stale marking, sketch routed only to engines that compose from it, full walkthrough in CI · MiniMax reference images fixed (image_file had been an array since v2.20 — every call with references was rejected) |
tests/v12-452-sora-sunset-runtime.test.tstests/v12-173-sora-sunset.test.tsviduq3 familyservices/vidu.service.tsHow this round was checked, and what it overturned: an independent checker caught one research agent's Elo figures off by 1–2 points; my own GitHub API pull overturned three agents' star counts (ViMax put at ~2.7k★ — actually 12.7k★; ArcReel at 1.3–2.3k★ — 5.5k★; DramaClaw at ~1.5k★ — 6.3k★); Grok Imagine Video 1.5 Lite's release date is contradictory (the board lists Aug 2026, trackers say Oct 1 or Oct 8), so we state none; and Vidu Q4's "$0.014/s" launch price comes from a single article while the board listed $5.04/min at 1080p, so neither is used as a table figure. Both boards changed version between 10-09 and 10-14, so every Elo figure above was re-read on 10-14 and again on release day, 10-15 (scores unchanged; SkyReels V4 left the text-to-video board, so the models below it each moved up one place). The previous round's two self-corrections (Veo 3.1's dates and Scene Extension; Runway Gen-4.5 has had native audio since 2025-12-11) still stand. Elo figures are arena snapshots and move with voting. ⭐ BYO 架构再次接住这波:榜上模型基本都开放 API,填 key 即成为本管线可调度的引擎 —— 竞品越强,本管线越强。
OPENAI_IMAGE_ENABLEDGEMINI_API_KEYnpm run gate:consumer| Per-shot regenerate with custom prompt | ⚠️ | ✅ | ✅ region edit (timestamp + marked area, 2.5) | ✅ 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 · optional hard gate PACING_GATE=block (v12.455; default only warns) |
| Editable timeline export (EDL / FCP7 XML) | ❌ | ❌ | ⚠️ Dreamina can push assets into CapCut, not a timeline | ❌ | ❌ | ❌ | ✅ EDL (CMX 3600) + FCP7 XML (Premiere / DaVinci) + built-in multi-track timeline |
| 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) | ❌ | ⚠️ dub only | ❌ | ❌ | ❌ | ❌ | ✅ 8-lang translate → apply → re-TTS, honest degradation |
| Royalty-free AI BGM per story | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ ElevenLabs Music → self-hosted ACE-Step / YuE → MiniMax fallback chain (v12.410; needs one of them configured — MiniMax music-2.6 is closed to new accounts) |
| 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) | ✅ | ✅ | ⚠️ | ⚠️ | ✅ 原生 | ❌ | ⚠️ Kling lip-sync — zh/en only (needs public video URL + audio ≥2s); ja/ko/ru degrade to none; honest skip on non-face |
| Full-app i18n (zh/en/ja/ko/ru, all UI) | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ❌(是模型不是 app) | ❌ | ✅ 5-language core UI, ~400 keys (component-level string cleanup ongoing) |
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 |
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 (or FAL_KEY) — LTX-2.3 (Lightricks open-weight #2 text-to-video; self-hostable via LTX_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