Skip to content

AI Comic Builder

A self-hosted pipeline that takes a script to a finished animated episode: parse it, extract the characters, generate four-view reference sheets, storyboard it, generate keyframes per shot, then interpolate the video and burn in subtitles.

Screenshot of AI Comic Builder
Editor screenshot, 29 Sep 2026AI Comic Builder ↗

What it is

A self-hostable Next.js application that carries a script to a finished animated episode without leaving the browser: it parses the script, extracts the characters, generates a four-view reference sheet for each one, splits the story into shots, generates a first and last keyframe per shot, writes the video prompt, generates the clips, and concatenates them with burned-in subtitles. Text, image and video models are all pluggable — OpenAI, Gemini, Kling, Seedance and Veo — and every stage can be triggered alone or as a batch. It runs on SQLite with FFmpeg and ships as a Docker image.

Who built itThe organisation that owns the repository. Who actually wrote the code is harder to say here than usual: 409 of the 417 commits carry an email address with no linked GitHub account, so GitHub credits only 8 commits across three names. The published Docker image belongs to a fourth account, twwch, whose repository the README names as the development guide.

Build log

8 stages
  1. 01

    Seven weeks, sixteen releases, then silence

    The repository was created on 2026-03-11, the first commit landed the same day, and v0.0.1 was tagged on 2026-03-12. Sixteen releases followed in seven weeks — v0.0.2 through v0.2.6, not one of them marked pre-release — across 292 commits in March and 125 in April. The last commit is dated 2026-04-27. Nothing has landed since. That is not the same as the users going away: 1,883 stars, 320 forks and 7 watchers, and pull requests were still being opened on 2026-05-28, 06-21, 06-24, 07-08 and 07-29. Every one of those arrived after the final commit, and every one was either left open or closed without merging. Twelve issues sit open. A fork-to-star ratio of roughly one in six suggests people meant to run it rather than bookmark it.

  2. 02

    Almost nobody’s commits count

    This repository is an argument for reading git authors instead of contributor graphs. 409 of the 417 commits come from a single name, chenhao, under an address with no linked GitHub account. GitHub therefore credits 8 commits spread across three accounts — LingyiChen-AI with 5, dandandujie with 2, mishiqian with 1 — and reports three contributors for a project with 417 commits. The Docker image is published under a fourth account, twwch, and the README names twwch/vibe-coding as the development guide for a codebase it describes as AI-driven throughout. The code is all there; what is missing is any identity GitHub will connect to most of it.

  3. 03

    232 commits name their co-author

    More than half the history — 232 of 417 commits — carries a co-author trailer naming a model: Claude Opus 4.6 (1M context) on 141 of them, Claude Sonnet 4.6 on 91. That is a more precise record of AI involvement than most projects offer, because it is per commit rather than a sentence in a README. Taken together with the README’s own statement that the site was AI-driven and its link to a development guide, the picture is a codebase largely written by an agent, partly reviewed by strangers, and released sixteen times in seven weeks.

  4. 04

    What it actually does

    The pipeline runs: script in, script parsing, character extraction, four-view character sheets, storyboard, reference-frame or first-and-last-frame generation per shot, video prompt per shot, video generation per shot, then concatenation with subtitles. The two steps that decide whether the output holds together are the character sheet and the keyframes. Generating a front, three-quarter, side and back view of a character first gives every later image a fixed reference, which is the usual answer to a cast whose faces drift between shots. Generating the first and last frame of each shot and interpolating between them turns video generation — the expensive, slow, least controllable part — into something with two fixed ends and only the middle left to chance. The data model is correspondingly small: a project holds characters, characters hold reference images, shots hold prompts, keyframes and video, and a task queue does the work in the background.

  5. 05

    The prompts ship as agents, not as code

    The most interesting directory is agents/. Nine pipeline steps — script parsing, character extraction, shot splitting, and the various prompt writers — are exported three times over: as nine zip archives and a 21-kilobyte template for Alibaba’s Bailian, as nine workflow archives for Coze, and as nine .dify.yml files for Dify. The prompt pipeline is therefore not locked inside the application; a studio already running Coze or Dify can import the same nine steps and drive them there. A user asking for editable system prompts — so that a lead could hand a script to assistants without handing over the prompt set — was answered by the maintainer saying he was wiring up Bailian’s agent API for exactly that reason.

  6. 06

    Strangers did the production work

    If the maintainer stopped in April, the community did not, and the pull requests that arrived afterwards are not typo fixes. One adds email-and-password accounts through Better Auth with subscription billing across Stripe Checkout and the customer portal, five new tables, a four-language pricing page, route protection, and a migration that moves anonymous work onto the new account. Another adds registration, login and session-based access control, rate limiting on authentication, tighter asset-ownership validation, and production Docker Compose with a GHCR build workflow. A third adds four HappyHorse 1.0 models across three API formats inside the existing provider protocol. A fourth rebuilds task handling so that ten of eleven handlers have a full lifecycle including cancellation, adds a deterministic recommender for seven named transition types, and brings nineteen tests with it. None of it was merged.

  7. 07

    A stranger reviewed a leaked key

    One of those unmerged pull requests carries a code review worth reading. On 2026-07-01 a reviewer worked through the scene-transition change and, in a comment written in Chinese, flagged line 6 of scripts/test-ai-sdk-shot-split.mjs: an API-key fallback hardcoded into a test script. His points were that the value is truncated in the diff but complete in git history, that the base URL suggests a live proxy key rather than a dummy value, and that the correct fix is to delete the fallback so the script fails loudly when the variable is unset, rotate the key, and rewrite the history rather than append a commit that removes it. His verdict on the change was one critical issue, four warnings and five suggestions, and he published the whole review inline with a Chinese version alongside it. The pull request is still open.

  8. 08

    What the issues say

    The tracker is mostly installation and model behaviour, which is what a self-hosted pipeline should expect. Repeated reports that the application will not start because Drizzle migrations collide with a schema that already exists — the README says to initialise with drizzle-kit push, and a community pull request changed that advice to drizzle-kit migrate because pushing first leaves the migration table empty, so the next start replays every statement. Character extraction failing on unterminated JSON, answered with the suggestion to configure a better model. Scene frames that generate but never appear, blocking the next step. Requests for models that did not exist when they were asked for — Happy Horse, Grok video, GPT Image 2 — several of which the community then implemented in the unmerged pull requests above. One exchange is pure support load: the Feishu group is full, so a second one was opened.

Adjacent records

All records →