Manga pages in. Voiced video out.

A command-line tool that finds the panels and speech bubbles, reads the text, voices the characters and cuts a reading video or a full anime episode. Run it on Apple Silicon, or use your own API keys.

    Demo pages: Give My Regards to Black Jack by SHUHO SATO, used under the author's free-use terms.

    From manga page to anime episode

    manga anime is the last step. Each panel is repainted as a clean key image, animated with its sound effects for as long as its shot lasts, and cut full-frame with the voices and subtitles. Page four of this demo, from the same analysis and voices as the video above. Turn the sound on:

    The original black-and-white manga panel, with sound effects lettered over the art
    The panel, with its lettering.
    The same scene as a full-color widescreen anime still, with no lettering
    --style color, the default.
    The same scene as a clean black-and-white widescreen still, with no lettering
    --style bw.
    # what would this cost? no model is called
    manga anime bj --backend openrouter \
      --image-model black-forest-labs/flux-3-image \
      --video-model alibaba/wan-3.0 --dry-run
    
    # check the images before paying for clips
    manga anime bj … --keyframes-only
    
    # the episode, refused above 14 s of video
    manga anime bj … --key-shots-only --max-seconds 18
    This demoCost
    2 remembered faces and 6 key images, FLUX 3About $0.30
    5 clips with sound, 18 s of Wan 3.0 at 720pAbout $2.35
    1 bowing shot kept as a still with a camera move, so without sound effectsFree

    AI-colorized and animated adaptation; the colors and sound effects are invented by the models. Redrawing five images during tuning brought the real spend to $2.97. Mouths follow timing cues in the prompt, which is not exact lip sync, and there is no music yet.

    Sound effects, one look, the same faces

    What makes it feel like one episode instead of a series of clips.

    • Sound effects. The video model generates them with the picture, so a knock lands on the knock. They sit under the voices at the same level from shot to shot.
    • Nothing goes missing silently. A run ends by listing the shots without sound effects and the command to fix each one.
    • One art style. anime.toml pins it to one era in every prompt, and the first image becomes the reference for all the others.
    • Remembered faces. Each named character is drawn once, then reused in every shot. The panel still decides the pose and the expression.
    • Across episodes. --style-from carries the style and the faces to the next one.
    # the sounds printed on the page
    manga animate bj p0004_k0 \
      --sound "knuckles knocking on a door" \
      --characters Saito
    
    # the end of a run
    1 shots without sound effects:
      p0004_k1: still image, no clip. To fix:
      manga animate bj p0004_k1 --sound "..."
    
    # the next episode, same look and faces
    manga anime bj2 … --style-from bj

    Ready for TikTok and Shorts

    --format vertical outputs 1080×1920. --max-duration 60 stops on a whole shot, never mid-sentence, and --split turns a long chapter into numbered parts. Subtitles sit above the app's own buttons.

    This is part one of the demo as a reading video, rendered for free. On manga anime, images and clips are generated in 9:16 and only what you keep is paid for.

    manga render bj --format vertical --style panels --max-duration 60 --split

    Seven commands from archive to video

    Every step is cached and can be resumed. The analysis and the edit are plain JSON, so you can correct a line or retime a shot and render again.

    # CBZ, EPUB, PDF, CBR or a folder of images
    manga import enbj001.pdf --title "Black Jack"
    manga project new bj --title "Black Jack" \
      --from ch1:p11 --to ch1:p14 --lang en
    manga analyze bj   # panels, bubbles, OCR, speakers
    manga read bj      # web reader to check and fix it
    manga voice bj     # one voice per character
    manga timeline bj  # the edit, as timeline.json
    manga render bj    # out/bj.mp4
    {
      "id": "0002_t4",
      "bbox": [320, 1020, 530, 1240],
      "panel": 2,
      "text": "Graduated from Eiroku University's medical department.",
      "speaker": "Director",
      "essential": true
    }
    One reviewed bubble from analysis/0002.json.

    Real pages need a second read

    On page two of this demo, the local OCR saw two neighbouring bubbles as one. A review splits them, restores the words and names who is talking. Choose how that review happens below.

    # Apple Vision, one box
    "GRADUATED FROM EIROKU UNIVERSITY'S MEDICAL THIS WILL
    DEPARTBE YOUR MENT. FIRST TIME ON DUTY... WELL..."
    Before review.
    # after review, two bubbles
    Director: "Graduated from Eiroku University's medical department."
    Director: "This will be your first time on duty... well..."
    After review, in Claude Code mode.
    ModeCommandWhat happens
    Localmanga analyze bjMagi v2 or Apple Vision. Nothing leaves your Mac.
    APImanga analyze bj --detector apiVision finds the boxes and a vision model proofreads each page: Claude by default, or OpenRouter, OpenAI and Google with --provider. Billed, and pages are sent to that provider.
    Claude Codethe manga skillClaude Code reads the pages and corrects the JSON, with no API key. Pages are sent to Anthropic.

    Scroll the page, or go panel by panel

    The video above uses the default style: the full-width page glides from panel to panel as it is read. With --style panels, each panel gets the frame to itself, with a zoom or a pan and subtitles.

    Same analysis, same voices: only the render changes.

    Check every line in the reader

    manga read opens a local web page with the panels and bubbles drawn over the art. Edit the text, the speaker and the order, and listen to each line.

    The manga-anim reader showing a page with numbered bubbles and an editable list of lines

    Bring a panel to life

    Mark the shots that matter and render them as short clips. This three-second clip came from Wan 3.0 through OpenRouter, at about $0.45. The same step can run locally with Wan2.2.

    manga render bj --backend openrouter --model alibaba/wan-3.0

    Draw a new story with the same characters

    Crops from the source pages go in as character references. You write story.json, FLUX 3 draws each panel and the tool letters the bubbles. These four panels cost about $0.10 through OpenRouter.

    manga story build spin --backend openrouter --model black-forest-labs/flux-3-image

    A generated four-panel manga page in which the young doctor's day off is interrupted by the hospital director

    Then dub it like any other project

    A spin-off is a normal project, so voices, editing, animation and rendering all work on it. The last panel of this one is animated.

    manga voice spin && manga timeline spin && manga render spin

    Pick any model with your own keys

    Search current models and prices without leaving the terminal, then pass the id to any step. Keys come from environment variables and are never written to disk.

    $ manga models search image flux
    bfl/flux-3-image-klein   gateway   $0.008-0.036/image
    bfl/flux-kontext-pro     gateway   $0.04/image
    bfl/flux-pro-1.1         gateway   $0.04/image
    bfl/flux-3-image         gateway   $0.041-0.607/image
    StepProviders
    ReviewAnthropic, OpenRouter, OpenAI, Google
    VoicesOpenRouter, fal, OpenAI, Google, ElevenLabs
    AnimationOpenRouter, fal, Google, xAI, Replicate
    DrawingOpenRouter, fal, OpenAI, Google, xAI, Replicate

    This demo ran on OpenRouter and Anthropic. The other providers are covered by automated tests only, through llm-models and llm-connect.

    Or just ask Claude Code

    The manga skill runs the whole job: it checks the setup, picks the models, states the cost before spending, reviews every page and hands you the video.

    It can run the anime step too: it writes the motion prompts, checks the first key image and the first clip, then does the rest within your budget.

    # install the skill once
    npx skills add maxgfr/manga-anim --skill manga -a claude-code
    
    # then, in Claude Code
    Turn pages 11 to 14 of enbj001.pdf into an anime
    episode with voices. Keep it under $4.

    Everything manga-anim can do

    New in this version:

    The full list:

    CommandWhat it doesWhere it runs
    doctorChecks the tools, models and API keys.Local
    source search, chapters, fetchFinds and downloads chapters from MangaDex.MangaDex
    importCBZ, EPUB, PDF, CBR, or a folder of images or chapters.Local
    libraryLists the local library.Local
    project new, list, showCreates and inspects projects.Local
    analyze --detector visionPanels, bubbles and OCR with Apple Vision.Local
    analyze --detector magiPanels, bubbles, characters and speakers with Magi v2.Local
    analyze --detector apiVision, then a model proofreads each page.Anthropic, OpenRouter, OpenAI, Google
    manga skill reviewClaude Code reads the pages and corrects the JSON.Claude Code
    readWeb reader to edit text, speakers and order, and listen to each line.Local
    voiceOne voice per character, from cast.toml.Kokoro, OpenRouter, fal, OpenAI, Google, ElevenLabs
    timelineBuilds the editable cut, keeping manual changes.Local
    animateMarks shots for animation, with a motion prompt, sound effects and the characters in view.Local
    render --style scrollThe full-width page scrolls as it is read.Local, with clips from any video backend
    render --style panelsOne panel at a time, with zoom, pan and subtitles.Local, with clips from any video backend
    render --format vertical1080×1920 reading video, with --max-duration and numbered parts.Local
    animeClean key images, clips with sound effects and a full-frame episode, with one style and remembered faces.OpenRouter, llm-connect providers, local FLUX and Wan
    anime --format verticalImages and clips generated in 9:16, up to a maximum length.OpenRouter, llm-connect providers
    runChains analyze, voice, timeline and render.Local
    charactersCrops the characters found by Magi, to name and reuse them.Local
    story new, buildA new manga drawn with a project's characters.Local FLUX, OpenRouter, llm-connect providers
    models searchCurrent models and prices for video, image, speech and vision.llm-models
    models installInstalls the local Wan and FLUX models.Local
    uninstallRemoves the app folder and its links.Local

    Local by default, OpenRouter when you want it

    The tool needs macOS on Apple Silicon, with ffmpeg, uv and Rust to build. Each generation step runs on your Mac or through OpenRouter with --backend openrouter, which is billed and sends your text and panels to third parties.

    JobOn your MacThrough OpenRouter
    VoicesKokoro-82M, about 350 MBAny speech model. Used here: ElevenLabs v4 Turbo.
    Animate chosen panelsWan2.2 TI2V-5B, about 34 GB to downloadAny image-to-video model. Used here: Wan 3.0.
    Draw a spin-offFLUX.2 [klein] 4B, about 15 GB to downloadAny image model that takes references. Used here: FLUX 3.
    Anime key images and clipsThe same FLUX and Wan modelsAn image model that takes references and a first-frame video model. Used here: FLUX 3 and Wan 3.0.
    Panels, bubbles, speakersMagi v2 (research license) or Apple VisionAny vision model, with --detector api --provider openrouter.