koharu
Rust 写就的本地漫画翻译工具,ML 全流程自动化,隐私零上传
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Rust 写就的本地漫画翻译工具,ML 全流程自动化,隐私零上传
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:Koharu 主界面,支持检测/修复/翻译全流程操作
对于喜欢追日漫汉化的读者来说,有一个痛点始终困扰着整个社区:翻译质量参差不齐。在线机翻工具虽然方便,但图片要上传到服务器,隐私安全无法保证;传统人工汉化需要用 Photoshop 逐帧处理文字区域,效率极低;而像 Google Translate 这类通用翻译引擎,对漫画中大量存在的拟声词、双关语、角色专属口癖几乎束手无策。
Koharu 的出现,正是为了解决这三个问题。它是一款完全本地运行的漫画翻译工具,通过 ML 模型自动完成从"读图"到"输出汉化稿"的全流程——整个过程不依赖任何外部服务器,用户的漫画文件永远留在本地磁盘上。
Koharu 由 Mayo Takanashi(mayocream)发起开发,这是一位活跃在 GitHub 上的 Rust 爱好者,同时维护着 candle(ML 推理框架)的 fork 和 ug(CUDA 动态加载库)。项目最初的动力,来自作者在个人汉化实践中对效率工具的强烈需求。
从技术选型来看,Mayo 选择 Rust 作为唯一开发语言,并非追赶潮流,而是经过深思熟虑的结果:Rust 的内存安全特性确保了 ML 推理过程中不会因为野指针导致崩溃;零成本抽象让 hot path(图像处理流水线)拥有 C/C++ 同级别的性能;而 WebAssembly 和 WASM-bindgen 的成熟,也为未来跨平台部署埋下了伏笔。
Koharu 采用了 Rust workspace 模式,将整个项目拆分为 11 个独立 crate,每个 crate 职责单一,通过 workspace dependencies 统一版本管理。这种架构设计使得代码模块化程度极高,也为社区贡献提供了清晰的边界。
整个翻译流程分为 5 个阶段,每个阶段对应专门的 crate:
阶段 1 - 文本区域检测(koharu-ai):使用目标检测模型(推测为 YOLO 变体或类似架构),精确定位漫画页面中的所有文字区域,包括对话框、拟声词(效果字)、背景字幕等。与通用 OCR 不同,漫画中的文字往往伴随复杂的背景纹理和气泡遮挡,普通检测器很容易漏检或误检,Koharu 在此做了专门的领域适配。
阶段 2 - OCR 识别(koharu-ml):对检测到的区域进行文字识别。这里使用 candle(Hugging Face 开源的 Rust ML 框架)作为推理后端,支持 Vulkan/Metal/CUDA 多后端。值得注意的是,Koharu 训练数据中包含大量竖排日文文字,OCR 模型对日语的识别精度远高于通用模型。
阶段 3 - 原文去除(Inpainting)(koharu-ml):将识别后的原文文字从画面中擦除,为翻译文字腾出空间。这一步需要精确的蒙版生成技术——既要清除文字本身,又不能破坏背景图案。Koharu 的 inpainting 模型专门针对漫画的高对比度线条风格进行了优化。
阶段 4 - LLM 翻译(koharu-llm):使用本地 LLM 对 OCR 识别结果进行语义理解和翻译。支持的推理后端包括 llama.cpp(本地量化模型)和 OpenAI/Anthropic 兼容 API(远程调用)。本地模式下,用户可以加载 GGUF 格式的量化模型(如 Qwen、GLM 等),完全离线工作。远程模式下,支持通过 OPENAI_API_KEY 等环境变量接入云端大模型。
阶段 5 - 文字渲染(koharu-renderer):这是 Koharu 最具技术含量的模块之一。漫画翻译不仅仅是"把文字换掉",还需要处理大量排版细节:日文竖排、CJK 混排、阿拉伯语/希伯来语从右到左(RTL)文字、拟声词的手写体风格渲染、等宽字体对齐等。Koharu 从零构建了一个基于 OpenType 规范的文字渲染引擎,支持 Unicode-aware 字形塑形(shaping)、脚本感知断行、精确字形度量,以及受限空间内的自适应排版(constrained-box fitting)。
| Crate 名称 | 职责 | 关键依赖 |
|---|---|---|
koharu-core | 核心数据类型与业务逻辑 | serde, anyhow |
koharu-ai | 目标检测模型封装 | candle-core/nn/transformers |
koharu-ml | OCR + Inpainting 模型推理 | candle, hf-hub, imageproc |
koharu-llm | LLM 推理与 API 集成 | llama.cpp, reqwest |
koharu-renderer | OpenType 文字渲染引擎 | skrifa, harfrust, hypher |
koharu-psd | Photoshop PSD 文件导出 | — |
koharu-rpc | HTTP API + MCP Server | axum, rmcp |
koharu-runtime | 跨平台后端运行时 | cudarc, objc2-metal |
koharu-app | Tauri 桌面应用主入口 | tauri 2.x |
koharu | CLI/应用入口 crate | clap |
跨平台 GPU 加速策略:Koharu 支持 CUDA(NVIDIA)、ZLUDA(AMD on Windows)、Metal(Apple Silicon)、Vulkan(通用 GPU)四种 GPU 加速路径,同时保留 CPU fallback。CUDA 后端通过 cudarc 驱动库实现动态加载——首次运行时会自动从系统中检测 CUDA 运行时,避免了静态链接带来的版本兼容问题。
Koharu 内置了 MCP(Model Context Protocol)服务器,通过 --port 参数启动后,可供 Cursor、Claude Desktop 等 MCP 客户端接入。这意味着用户可以让 AI 助手直接操控 Koharu:自动识别漫画图片中的对话、分析角色关系、甚至批量处理多话漫画。MCP 工具列表包括 detect_text、translate_text、render_page、export_psd 等,覆盖了翻译流程的每个环节。
通过 koharu --headless --port 4000 启动后,Koharu 不显示桌面窗口,而是启动一个本地 HTTP 服务器,用户通过浏览器访问 http://localhost:4000 操作工具。这一设计使得 Koharu 可以作为服务器端工具集成到自动化工作流中——比如用 Python 脚本批量调用 API 处理漫画文件夹。
翻译完成的页面可以导出为 Photoshop PSD 文件,其中翻译文字以可编辑文字图层的形式存在,背景和原文字区域以独立图层分开保存。这对于汉化组来说意义重大:导出的 PSD 文件可以直接交给专业美工进行最终润色,不需要从零开始重建图层结构。
Koharu 内置了 Google Fonts 支持,翻译文字可以直接使用开源字体渲染;同时也支持加载本地 OpenType/TrueType 字体(包括可变字体)。对于汉化来说,字体选择直接影响阅读体验——Koharu 的字体管理器会自动扫描系统字体目录,用户在 UI 中直接选择即可,无需手动配置路径。
Koharu 提供了两条部署路径:
路径一:Docker 容器(一键部署)
官方提供的单阶段 Dockerfile 基于 Ubuntu 24.04,安装了 CJK 字体支持、libwebkit2gtk-4.1(用于 Web UI 渲染)、RSVG(SVG 渲染)等依赖。容器暴露了 4000 端口(Web UI),数据持久化通过 /home/koharu/.local/share/Koharu volume 实现。用户只需一行命令即可在服务器上启动 Koharu Web 服务。
路径二:预编译二进制(开箱即用)
项目在 GitHub Releases 维护着 macOS(Apple Silicon + Intel)、Linux(x64)、Windows 三平台的预编译二进制包,下载即用,无需从源码编译——这对不具备 Rust 编译环境的普通用户非常友好。
硬件需求:GPU 模式下建议 NVIDIA GPU(CUDA Compute Capability ≥ 8.0,即 RTX 20 系列及以上)或 Apple Silicon Mac;最低显存 4GB,系统内存 8GB+,磁盘空间 2GB(包含模型)。无 GPU 的用户也可以用 --cpu 强制 CPU 运行,但处理速度会显著降低。
尽管 Koharu 提供了完整的翻译流水线,但在实际使用中仍有需要注意的局限:
翻译质量依赖 LLM 能力:本地量化模型(如 4-bit Qwen)在复杂语境理解上不如 GPT-4 等大模型强大,对双关语、文化梗的处理能力有限。用户若追求更高翻译质量,需要接入远程 API(如 OpenAI GPT-4)或加载更大的本地模型。
模型下载依赖外部源:Koharu 的 ML 模型通过 Hugging Face Hub 分发,需要稳定的网络连接访问 hf.co。国内用户可能需要配置镜像源。
inpainting 质量不稳定:对于背景复杂的漫画页面,自动 inpainting 可能会在文字区域留下残影或产生伪影,此时需要手动使用 Brush/Repair Brush 工具修正。
Rust 编译生态门槛:如果用户想从源码编译(而非使用预编译二进制),需要安装 Rust 工具链和 LLVM/Clang,Windows 上还需 Visual Studio Build Tools。对于非开发者用户,这一门槛仍然存在。
Koharu 的出现,折射出一个重要的行业趋势:本地化 AI 工具正在从极客玩具走向生产可用。在此之前,漫画翻译要么依赖在线 API(隐私问题),要么需要 PhotoShop 手工处理(效率问题)。Koharu 通过 Rust + ML 的组合拳,第一次在消费级硬件上实现了"一键漫画汉化"的体验。
从开源生态角度看,Koharu 也是 Rust 在 AI 领域落地的成功案例。它验证了 candle + llama.cpp 这套纯 Rust ML 推理栈的工程可行性,为其他想要用 Rust 开发 AI 应用的团队提供了参考范式。同时,项目对 ZLUDA 的实验性支持(让 AMD GPU 运行 CUDA 训练模型)也值得关注——这可能是未来打破 NVIDIA 垄断的一条路径。

图2:项目作者 Mayo Takanashi 的 GitHub 头像
项目地址:https://github.com/mayocream/koharu | 官方文档:https://koharu.rs