MangaLoom:把生肉漫画自动翻译 + 嵌字,一条龙搞定

起因:生肉看不懂,汉化又太慢 🍖

喜欢的漫画,官方没引进、汉化组又鸽了,只能对着日文生肉发愁——这种情况二次元朋友大概都遇到过。

想自己翻?光是把气泡里的原文抹干净、再把译文逐字排回去这道工序,就足够劝退。于是我做了 MangaLoom:把”检测文字 → 识别 → 翻译 → 消字 → 嵌字”整条流程自动化,你最后只需要润色一下语气。

仓库地址:github.com/QinYe233/MangaLoom

翻译前后对比

一条完整的处理流水线

1
输入 → 文字检测 → OCR 识别 → 翻译 → 擦除原文 → 自适应排版 → 输出

丢进一张生肉,它会依次走完上面每一步,输出一张已嵌好中文的成品。下面拆开讲几个关键环节。

文字检测 & OCR

  • 检测用的是专为漫画设计的 comic-text-detector。它不只框出文字区域,还输出笔画级别的蒙版——这一步的精度,直接决定了后面消字干不干净。
  • OCR用的是 manga-ocr,对日文竖排和手写体拟声词的识别尤其强。而这两样,恰恰是漫画里最难识别、通用 OCR 最容易翻车的部分。

翻译:为什么要整页一起翻

翻译层兼容任何 OpenAI 接口格式的服务,DeepSeek、通义、本地 Ollama 都能接,配好 API key 即可。

这里有个刻意的设计:整页一次性送给模型翻译,而不是逐句翻。逐句翻会丢失上下文,人物语气容易前后割裂;整页翻则能保持同一段对话的语气连贯。此外还加了两道一致性保险——翻译前预扫一遍人物档案,翻译后再做一次一致性复查,尽量避免同一个人名、同一个术语在整本书里出现多种译法。

消字 & 嵌字

  • 纯色气泡直接用背景色填平;压在画面上的文字,则交给 LaMa(一个图像修复 / inpainting 模型)把原文”擦”掉并补全背景,尽量不留痕迹。
  • 嵌字时,字号以原文字号为基准换算,并套用中文排版规则(竖排文本也做了排布平衡)。默认字体为思源黑体,与汉化行业的常见选择一致。

嵌字效果细节

自动去水印

不少图源会在固定位置打上站点 logo。MangaLoom 通过跨页统计分析——同一位置反复出现的相同图案,大概率就是水印——自动识别并去除,不需要你手动提供模板。

一个做完才想明白的点 💭

做这个工具的过程中,我逐渐确认了一件事:机翻的质量瓶颈其实不在 OCR,而在”语气”。拟声词、语气助词、角色的说话习惯,这些才是机器最难拿捏的地方。

所以 MangaLoom 的定位是机翻打底 + 人工润色,而非追求一键完美。它会生成一个 review.html,左右对照原文与译文;你直接在其上修改,改的是 script.json(翻译总账)。改完重新渲染即可,无需再次调用 API——既省钱又省时间。

安装与使用

1
2
3
4
5
# 先装 PyTorch(按自己的 CUDA 版本选择)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126

# 再装其余依赖
pip install -r requirements.txt

配好 API key(如 DeepSeek),把待翻译的图片放进 cartoon/ 目录,运行即可。⚠️ 首次运行会下载约 700MB 的模型和字体,需要耐心等待。

运行结束后,成品都在 cartoon_output/ 里:

  • 最终图片;
  • script.json:翻译总账(改译文改这里);
  • profile.json:人物档案;
  • glossary.txt:术语对照表;
  • review.html:左右对照的校对页面。

关于开源协议

因为依赖 comic-text-detector,整个项目遵循 GPL-3.0;其余用到的库各自遵循其协议(Apache-2.0、OFL-1.1 等)。打算二次开发的话请留意。

写在最后

工具再强,也替代不了汉化组对作品的那份用心。MangaLoom 更适合自己看生肉时救急,或者给汉化流程打个初稿。也请务必尊重原作者与正版,不要用它做商业传播。🌿