BallonsTranslator is a mature, feature-rich desktop application for translating manga and comic images. It provides a complete pipeline: text detection (CTD, YOLO, DBNet), OCR (MangaOCR, MIT48px, PaddleOCR, cloud APIs), inpainting (AOT, LaMa, PatchMatch, LLM), machine/LLM translation (Google, DeepL, Sakura, OpenAI-compatible, etc.), and a sophisticated WYSIWYG text editor with effects (stroke, shadow, glow, gradient, filters, transforms). The architecture is monolithic with a plugin-like module registry for extensible backends. It uses PyQt5/PyQt6 for the GUI, supports project-based workflows, undo/redo, and headless batch processing. While primarily an application, it incorporates significant data engineering and ML model integration, making it a hybrid tool with strong research components. The codebase demonstrates high craftsmanship in areas like custom Qt widgets, frameless windows, text rendering engine, and LLM context management, but also carries technical debt from platform-specific code and a large dependency surface.
Koharu is a desktop application for manga/comic translation, built with Rust (Tauri) and a React/TypeScript frontend. It provides an end-to-end pipeline: page import, AI-based layout detection, speech bubble segmentation, OCR (multiple models including Manga OCR, PP-OCRv6, Baberu OCR), text translation (local LLMs via llama.cpp and 13+ remote providers), inpainting (LaMa, AOT, FLUX.2 Klein, RORem mixed), and typesetting with CJK/RTL support. The application features a WebGPU canvas editor, project management with undo/redo, PSD export, and an AI agent (Codex) for natural-language editing. The architecture is modular: a scene graph document model (koharu-scene), content-addressed blob storage (koharu-storage), a pipeline orchestrator (koharu-pipeline), and a hardware abstraction layer (koharu-runtime) for CUDA/ROCm/Vulkan/Metal. The frontend uses a custom UI component library (packages/ui) built on @base-ui/react. While the codebase is well-structured and actively maintained, it has technical drift risks from pinned git dependencies, multiple ML model ports that must stay synchronized with upstream, and platform-specific runtime packages.