

JPG · PNG · WEBP · PDF · CBZ · CBR — up to 20 MB
JPG · PNG · WEBP | 3 pages a day free
An AI manga translator online, not OCR plus machine translation bolted together. Bubble detection, reading-order inference, source-text removal and typesetting run as one pass — which is why the output looks like a page instead of a caption file.


JPG · PNG · WEBP | 3 pages a day free
Find bubbles, free-floating text, handwritten SFX and text baked into the art. Infer panel reading order — right-to-left for manga, top-down for webtoon.
Translate the page as a whole, not bubble by bubble, so a sentence split across two bubbles stays one sentence and honorifics stay consistent.
Clear the original text: balloons are refilled with their own background colour, text drawn on the art is erased stroke by stroke so the picture behind it survives.
Fit the translation to the bubble — line breaks, font weight, size. This is the step that separates “translated” from “readable.”
It will. Here's what you can do about it, which most tools don't offer at all.
Draw a rectangle over a missed bubble or SFX and the model reads just that region — merged into the page for one credit.
Drew it in the wrong place? Undo removes the last box from the page; nothing is re-run.
Latin, Cyrillic, CJK, Thai and Arabic each get a font that actually has the glyphs, loaded only when a page needs it.
Detection and translation get the headlines. These six decide whether the output is actually readable.
Right-to-left for manga, left-to-right for comics, top-down for long-strip. Worked out from the layout of each page rather than assumed from a global setting, because a single volume often mixes them.
A character called 白夜 stays Byakuya in chapter 12 the same as in chapter 1. Machine translation loses this first, and it is the thing readers notice fastest.
Only the inside of a balloon is repainted. Repaint the outline too and the page looks like someone stuck white labels on it — a failure mode that is worse than leaving the original text alone.
English runs longer than Japanese, and the balloon was drawn for vertical text. Each balloon gets its own size, searched from the largest that fits down, with hyphenation before shrinking.
A line spread over two balloons is set at the same size in both, so it reads as one person speaking instead of two.
Illegible text comes back empty and the original is left in place, rather than being replaced with a confident guess that happens to be wrong.
Most tools send each balloon to the model on its own. That is cheaper and worse.
Translation is the easy step. These are the parts that decide whether the output is readable.
Balloons are easy. Margin notes at half body size, text on a sign in the background, and effects drawn into the artwork are where detection quietly fails.
Repaint too little and the old text shows through the new. Repaint too much and the balloon outline disappears, which looks like a white sticker on the page.
English runs longer than Japanese. The same sentence has to fit a balloon drawn for vertical text, without shrinking to unreadable.
A sentence spread across two balloons has to come out at the same size in both, or it reads as two different people speaking.
Three sample pages are built in — including a dense one with nine small balloons on a dark background.
Source is detected automatically; pick any target below.
A multimodal model reads the page and returns the text with its translation; a separate detection model trained on comic pages finds the balloons. Splitting the two jobs is why the boxes line up with the artwork instead of drifting.
Yes. The detector is about 10 MB, downloads once and is then cached by the browser. Page composition also happens locally — only the text extraction and translation touch a server.
That first run downloads the detection model. Afterwards it is served from browser cache and adds well under a second.
Yes, including right-to-left panel order and text that breaks across two balloons.
Anything illegible comes back with an empty translation rather than a hallucinated one, and the original is left in place.
The image goes to the translation model and is discarded after the response. Nothing is stored on our side beyond page count, language and timing.