Saber-Translator: a local web app for translating manga into Chinese
✨ 一款小白也能轻松使用的漫画翻译工具,旨在帮助漫画爱好者轻松跨越语言障碍,畅享原汁原味的日文漫画。 利用先进的 AI 技术,智能检测漫画中的对话气泡,精准识别日文文本,并快速翻译成流畅自然的中文。 ✨ 无论是图片还是 PDF 格式的漫画,Saber-Translator 都能轻松应对,让你无压力阅读心爱的漫画作品。
At a glance
- What is it?
- Saber-Translator is a Python manga translation tool that runs as a local web interface on port 5000, combining bubble detection, OCR, AI translation, inpainting and text rendering. It ships as a packaged executable rather than a pip package, and its translation quality depends entirely on the API keys you supply.
- Who is it for?
- Adopt Saber-Translator if you translate Japanese manga into Chinese, want the whole pipeline in one window, and are willing to bring your own API keys and read the Chinese tutorial site. Skip it if you need a pip-installable Python package, an English interface, or a one-click translation with no provider configuration.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The gap Saber-Translator fills between OCR scripts and image editors
Most manga translation workflows break into three unrelated tools: a detector, a translator, and an image editor. Saber-Translator's README describes a single pipeline that carries one image from import to export: import, text detection, OCR, AI translation, inpainting, text rendering, export. The target user is stated plainly in the project description: people who want to read Japanese manga in Chinese without assembling that toolchain themselves. The README calls it a tool that even beginners can use.
That framing matters, because the hard part of manga translation is not the translation call. It is keeping the bubble geometry, the erased original text and the rendered replacement aligned across a hundred pages. The project's answer is a browser UI backed by a Python server, plus a bookshelf that stores chapters and progress. It is aimed at individual readers and small scanlation groups, not at a translation API you would call from your own code. There is no documented public API for embedding the pipeline elsewhere.
How the translation pipeline is wired
The README documents a fixed sequence. Text detection offers Default (DBNet), CTD, or YOLO, plus a manual annotation mode. OCR offers MangaOCR for Japanese, PaddleOCR for multiple languages, Baidu OCR, and an AI vision OCR option. Translation routes through SiliconFlow, DeepSeek, Gemini, Volcengine, Ollama, Sakura and others. Inpainting uses LAMA or flat colour fill. Rendering controls font, size, colour, stroke, direction and position. Export produces PNG, ZIP, PDF or CBZ.
Each stage is swappable, which is the design's main strength and its main cost. A local-only setup is possible in principle, since MangaOCR and Ollama both appear in the option lists, but the README does not state which combinations have been validated together. The repository layout hints at the scale of the thing: app.py, app.spec for packaging, separate requirements-cpu.txt and requirements-gpu.txt, a src/ directory, a vue-frontend/ directory, plugins/, and tests_backend/. A GPU build and a CPU build are maintained as distinct dependency sets, which tells you the inpainting and detection stages are expected to be the heavy ones.
The experimental high-quality mode changes the data flow. Instead of translating each bubble in isolation, the program runs detection, OCR and colour extraction first, assembles the source text per image into JSON, then batches several images plus their text to a multimodal model. The AI returns batch translations, which are written back to the matching image and bubble, and only then does inpainting and rendering run. The README warns this consumes more time and API quota, and that RPM limits and batch size must be configured to match your provider.
Installing Saber-Translator and running a first translation
The README does not describe a pip install or a source build for end users. It points to the Releases page or a QQ group for an operating-system-specific archive. The documented steps are: download the latest release, extract it, run Saber-Translator.exe on Windows or the equivalent executable on your platform, then let it open the web interface.
The default address is given explicitly, so if the browser does not open on its own, you visit it yourself.
http://127.0.0.1:5000/Once the interface loads, you drag images or a PDF onto the page. Supported inputs are JPG, PNG, WEBP and PDF, with PDF images extracted automatically. Before the first translation you must configure a translation provider, which the README defers to the tutorial site at mashirosaber.top. The interface then offers "translate current image" and "translate all images".
After a page finishes, the right-hand thumbnail strip switches between pages and the download button exports the result. For a PDF input, the README lists PDF and CBZ among the export formats, so a whole volume can come back as one file rather than loose PNGs.
The part worth budgeting time for is provider setup. The README lists many engines but gives no key-acquisition steps inside the repository text; that lives on the external tutorial site. If you are working offline, Ollama and MangaOCR are the options named, and the CPU requirement file exists for machines without a usable GPU.
Where Saber-Translator fails or is the wrong tool
The high-quality mode is labelled Beta in the README, and the warning attached to it is concrete: it processes every image multiple times and makes repeated AI calls, so it burns time and quota. On a long volume with a metered API key, that cost is easy to underestimate.
The bigger limitation is dependency on external services. The translation stage is not self-contained. Every provider in the list requires an account, a key, and network access, and the README's guidance is to configure RPM limits to match what the provider allows. If a provider rate-limits you mid-volume, the pipeline is only as resilient as the retry behaviour, which the README does not document. There is also no documented rollback for a bad batch: session save and load exist, and text can be imported and exported as JSON, but the README does not describe undoing an inpainting pass that erased a page you wanted to keep.
Detection accuracy is the other soft spot, and the project acknowledges it indirectly by shipping a manual annotation mode and a per-bubble editor. That is an admission that automatic bubble detection will miss or overreach on stylised pages. If your source is mostly full-bleed art with hand-lettered sound effects, expect to spend most of your time in the editor rather than watching the pipeline run. And if you need to translate manga into English, the project description and OCR defaults are oriented around Japanese source and Chinese output; the README does not present English as a first-class target.
Saber-Translator versus calling an OCR and translation API yourself
The obvious alternative is scripting the stages yourself: run a detector such as DBNet, pass crops to MangaOCR, send the text to a translation API, then inpaint with LAMA and render with Pillow. That approach gives you version control over every step, a repeatable CLI, and no browser in the loop. It also means writing the bubble-to-text mapping, the font fitting, and the resume logic that Saber-Translator already provides.
Saber-Translator's real difference is the editor and the bookshelf. Once a page is translated you can select a bubble and change its text, font, size, colour, fill, direction, rotation and offset, with live preview and a one-click apply-to-all-bubbles action. You can also draw, move, resize and delete text boxes manually, then translate from those boxes. A hand-rolled script gives you none of that without significant work. The trade-off is that you inherit a Flask-style local server, a Vue frontend, and a GPL-3.0 licence, which is a different proposition from a small script you own outright. For one-off pages, a script is lighter. For a multi-chapter project you intend to correct by hand, the editor is the feature that justifies the heavier stack.
Maintenance, licensing and what an upgrade costs
The repository is not archived, and the last push was on 2026-09-19, which is recent relative to the latest release v3.4.1.5 from 2026-06-02. The release cadence visible in the project's own history runs v3.4.0 and v3.4.1 in late May 2026, then a patch in early June, with repository activity continuing after that. That pattern suggests ongoing work between releases rather than a frozen project, though the README does not publish a support policy or a compatibility matrix for older releases.
The upgrade cost is shaped by how you install it. Because the documented path is a release archive rather than a package manager, upgrading means downloading a new archive and replacing your working directory. The README does not document a migration step for bookshelf data or saved sessions, so before replacing a directory you should know where that data lives. The split requirements-cpu.txt and requirements-gpu.txt files imply that anyone building from source must choose the right dependency set for their hardware.
Licensing is GPL-3.0, stated in the repository and shown in the README badge. That is a copyleft licence, which matters if you plan to distribute a modified build or bundle the tool into a product. This is not legal advice; read the licence text in the LICENSE file and, for commercial redistribution, take your own advice. The project also depends on third-party OCR and translation services whose own terms apply to the content you send them, and the README does not summarise those terms.
Editorial conclusion
Adopt Saber-Translator if you translate Japanese manga into Chinese, want the whole pipeline in one window, and are willing to bring your own API keys and read the Chinese tutorial site. Skip it if you need a pip-installable Python package, an English interface, or a one-click translation with no provider configuration. Before committing, verify that your chosen OCR and translation provider are reachable from your machine, and confirm the GPL-3.0 terms fit how you intend to redistribute anything you build on top of it.
Frequently asked questions
What is Saber-Translator and who is it for?
It is a manga translation tool that detects speech bubbles, runs OCR on Japanese text, translates it with an AI provider, repairs the background and renders the translation back onto the image. The project describes its audience as beginners who want to read Japanese manga in Chinese without building that toolchain themselves.
How do I install and start Saber-Translator?
Download the latest release archive from the Releases page or a QQ group, extract it, and run Saber-Translator.exe on Windows or the equivalent executable on your platform. The web interface normally opens at http://127.0.0.1:5000/; if it does not open automatically, visit that address manually.
Does Saber-Translator need an API key?
Yes. The translation stage routes through providers such as SiliconFlow, DeepSeek, Gemini, Volcengine, Ollama or Sakura, and the README directs users to the tutorial site to configure a provider. The experimental high-quality mode consumes more API quota because it makes repeated calls across multiple images.
What input and output formats does Saber-Translator support?
Inputs are JPG, PNG, WEBP and PDF, with images extracted automatically from PDFs. Exports are PNG, ZIP, PDF and CBZ.
Is Saber-Translator available as a pip package?
The README does not describe a pip install. It points to release archives and QQ groups for downloads, and the repository carries separate requirements-cpu.txt and requirements-gpu.txt files for anyone working from source.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/mashirosaber03-saber-translator)