Comics generator for PocketFM

A browser studio that turns a script or prompt into editable comic and webtoon panels. This is not “generate an image”: the product has a production structure — Show → Chapter → Workflow → frames, a custom editor, and, above all, a model trained per character so a hero stays recognizable frame to frame. The V1 studio was built and shipped to production; its ongoing development later moved to the platform’s in-house team.

  • A script → editable comic panels, not a single image.
  • Heroes stay themselves: a model is trained per character.
  • A custom editor right in the browser.
Problem

A character has to stay itself in every frame.

A comic is not one image but dozens of frames where the same hero has to stay recognizable, in a layout the author can edit. Raw diffusion drifts: the same prompt yields a different face and outfit from one generation to the next. And the author needs a real editor, not a “generate again” button.

  • A comic is dozens of frames, not a single image.
  • The same character has to stay recognizable in every frame.
  • Raw diffusion drifts — face and clothing change from generation to generation.
  • The author needs an editor, not a “generate again” button.
Solution

A generation pipeline, a custom editor, and a model per character.

Generation lives inside a clear production structure, the author controls the composition of each frame, and a dedicated model is trained per hero so it stays itself. Everything runs on our own GPUs.

Style is set per comic — every frame in the series stays in one visual manner.
Each character gets its own model: LoRA training starts right from the panel.
  1. 01

    Structure the production

    Show → Chapter → Workflow → frames: generation happens inside a clear structure rather than an empty prompt box.

  2. 02

    Hold the character

    A dedicated model (LoRA) is trained per hero — it stays recognizable frame to frame. This is the headline feature.

  3. 03

    Control the composition

    ControlNet (scribble/pose/canny/depth), img2img and face-aware inpainting — the author sets the frame instead of relying on luck.

  4. 04

    Edit in the browser

    A custom <canvas> editor: drawing, masks, image tooling. State is saved as a JSON snapshot per workflow.

  5. 05

    Run on our own GPUs

    Training and inference run on self-hosted GPU EC2, with shared model files on EFS.

Technical

A diffusion pipeline wrapped in a product.

Python/Django backend with a typed Django-Ninja API and Postgres; a React/Next.js frontend served as a static build on S3 + CloudFront. The AI pipeline is Stable Diffusion XL through ComfyUI workflows: ControlNet, img2img, face-aware inpainting, IP-Adapter and IP-Adapter-FaceID for face and clothing consistency, and upscaling.

A LoRA is trained per character (kohya). Training and inference run on self-hosted GPU EC2, with shared model files on EFS, accessed via IAM STS.

01

Stable Diffusion XL through ComfyUI workflows.

02

ControlNet (scribble/pose/canny/depth), img2img, face-aware inpainting.

03

IP-Adapter / IP-Adapter-FaceID — face and clothing consistency.

04

Per-character LoRA training (kohya).

05

A custom <canvas> editor, state saved as a JSON snapshot per workflow.

06

Self-hosted GPU EC2 + EFS, Django-Ninja API, Next.js on S3 / CloudFront.

Stack
Python / Django + Ninja backend and API
React / Next.js the in-browser editor
Stable Diffusion XL frame generation
ComfyUI + ControlNet frame composition
LoRA (kohya) a model per character
GPU EC2 + EFS training and inference
A frame with a trained character: the face and style hold from scene to scene.
Outcome

What changed

01

The studio reached production

The V1 browser studio for AI comics and webtoons was built and shipped to production.

02

Characters hold frame to frame

Training a model per hero solved the core problem — recognizability across a series of frames.

03

Authors edit instead of re-rolling

A custom <canvas> editor gave control over the frame instead of betting on a lucky generation.

Need a generative product, not just a model call?

We build generative pipelines into products: composition control, character consistency, a custom editor, and inference on our own GPUs.

Brief (optional)