Glossarion is a comprehensive AI-powered translation suite for light novels, web novels, manga, subtitles, synchronized lyrics, and documents in virtually any language, with preconfigured profiles for Korean, Japanese, and Chinese via its profile system. Built to transform EPUB, TXT, PDF, SRT, ASS, and LRC files into high-quality, context-aware translations, it also includes a dedicated manga translator panel that combines multiple AI models to translate .cbz archives and direct image files, plus a translation-editing tool for .sdlxliff files. It works with 40+ AI providers — including OpenAI, Google Gemini, Anthropic Claude, DeepSeek, xAI Grok, Mistral, and local LLMs via Ollama — and, beyond those, any OpenAI-compatible model or endpoint, all through a modern PySide6 GUI that gives you total control over every step of the translation process.
📖 Read the Complete User Guide →
Every button and setting explained in plain language — including how to translate for free.
- Multi-Provider AI Support — 40+ providers out of the box (see Supported Providers below)
- Advanced Context Management
- Rolling history window for consistent translations
- Chunk-based processing for long chapters
- Contextual memory with configurable depth
- Parallel chapter translation support
- Full history export/import
- Smart Retry System
- AI Hunter duplicate detection (ML-based similarity analysis with TF-IDF fingerprinting)
- Automatic retry for timeouts, truncation, and server errors
- Multi-key rotation with automatic failover on 429/5xx errors
- Rate limit handling with exponential backoff
- Dual OCR System
- Google Cloud Vision API for text detection
- Azure AI Vision / Document Intelligence as alternative OCR backends
- YOLO Bubble Detection
- ONNX-based speech bubble detection for precise text region isolation
- Automatic bubble segmentation for complex page layouts
- Visual Context-Aware Translation
- AI sees the full manga page image for accurate context
- Full page context mode for multi-bubble consistency
- Character expressions inform translation tone
- Advanced Text Rendering
- Customizable fonts, colors, backgrounds, shadows, and outlines
- Smart inpainting to remove original text (local ONNX or Replicate cloud)
- Preserve original art option
- Batch Processing
- Process entire manga chapters automatically
- Stop/resume functionality with progress tracking
- ML-based content similarity analysis with TF-IDF semantic fingerprinting
- Structural pattern recognition and statistical outlier detection
- Configurable sensitivity thresholds with length ratio checks
- Key phrase verification and character name consistency checks
- AI-Powered Extraction from EPUB and TXT files
- Custom field support with configurable prompts
- Multi-language support (KR/JP/CN)
- Duplicate merging strategies
- Import/export with validation (JSON and Markdown formats)
- Automatic backup system
- Comprehensive Scanning — duplicate content, non-English fragments, spacing/formatting issues, repetitive patterns
- Multiple Report Formats — interactive HTML, JSON analysis, CSV exports, summary statistics
- EPUB — structure-preserving translation, metadata/cover retention, image gallery, clean HTML output, EPUB → translated EPUB conversion
- TXT — chapter detection, custom delimiters, encoding auto-detection, format preservation
- PDF — extraction via PyMuPDF, generation via WeasyPrint/xhtml2pdf
- HTML — header translation, scan and batch processing
- Auto-detection of text in images
- Tall image splitting for reliable OCR
- Batch processing with progress tracking
- Context preservation across chunks
- Cross-Platform — Windows 10/11, macOS (Apple Silicon & Intel)
- DPI-aware scaling with high-DPI display support
- Animated splash screen and spinner indicators
- Real-time translation progress with API watchdog monitoring
- Comprehensive logging system with rotating log files and crash tracing
- Per-language prompt profiles, temperature/token controls, API endpoint customization
- API Key Encryption — keys encrypted at rest using the
cryptographylibrary - Multi-Key Management — key pool with rotation, rate limit caching, and per-key health tracking
- Config Backup System — automatic JSON config backups with atomic writes
- AuthGPT OAuth — use your ChatGPT subscription directly via OAuth token flow
- AuthGrok Browser Login & Pooling — sign in to multiple xAI/Grok accounts with deterministic numbered slots, or use
authgrok0/for automatic rotation - OpenCode Antigravity OAuth — use
ocagy0/for the plugin-managed account pool or numbered OcAgy routes for deterministic batch-account selection, including Gemini 3.1 Pro High
| Provider | Model Prefix | Example Models (2026) |
|---|---|---|
| OpenAI | gpt-*, o3-* |
gpt-5.4, gpt-5.4-pro, gpt-5.3-codex, gpt-5.2, gpt-5, gpt-5-mini, gpt-5-nano, o3 |
| Google Gemini | gemini-* |
gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-2.5-flash, gemini-2.5-pro |
| Anthropic Claude | claude-* |
claude-opus-4-6, claude-sonnet-4-6, claude-sonnet-4-5, claude-haiku-4-5 |
| xAI Grok | grok-*, xai/* |
grok-4.20-beta, grok-4-fast, grok-4-0709, grok-3, grok-3-mini |
| DeepSeek | deepseek-* |
deepseek-chat, deepseek-reasoner, deepseek-coder |
| Mistral | mistral-*, mixtral-*, codestral-* |
mistral-large, mixtral-8x22b, codestral-latest |
| Cohere | command-* |
command-r, command-r-plus |
| ElectronHub | eh/* |
eh/gpt-5-chat-latest, eh/claude-sonnet-4-6, eh/gemini-3.1-pro-preview, eh/grok-4-fast |
| OpenRouter | or/* |
or/openai/gpt-5.4, or/google/gemini-3.1-pro-preview, or/deepseek/deepseek-v3.2 |
| LiteRouter | lr/* |
lr/deepseek-v3.2:free, lr/gpt-oss-120b:free, lr/openrouter:free:full-context |
| OpenCode Go | oc/* |
oc/kimi-k2.6, oc/glm-5.1, oc/deepseek-v4-pro, oc/mimo-v2.5-pro |
| Poe | poe/* |
poe/gpt-4.5, poe/claude-4-opus, poe/gemini-2.5-pro |
| VertexAI | vertex/* |
vertex/gemini-3.1-pro-preview, vertex/claude-4-opus |
| Groq | groq/* |
groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b |
| AuthGPT | authgpt/* |
authgpt/gpt-5.4, authgpt/gpt-5.3-codex, authgpt/gpt-5.2 |
| AuthGrok | authgrok0/*, authgrok/*, authgrokN/* |
authgrok0/grok-4.5, authgrok/grok-4.5, authgrok1/grok-build |
| AuthCD | authcd/* |
authcd/claude-sonnet-4-6, authcd/claude-haiku-4-5-20251001 |
| AuthGem | authgem/*, authgem-vertex/* |
authgem/gemini-3.1-pro-preview, authgem-vertex/gemini-3.1-pro-preview |
| Antigravity | antigravity/* |
antigravity/claude-opus-4-6-thinking-high, antigravity/gemini-3.1-pro-low |
| OcAgy (OpenCode Antigravity) | ocagy0/*, ocagy/*, ocagy1/*, ... |
ocagy0/gemini-3.1-pro-high, ocagy/gemini-3.1-pro-high, ocagy1/gemini-3.1-pro-high |
| AuthND | authnd/* |
authnd/z-ai/glm-5.1 |
| NVIDIA | nd/* |
nd/deepseek-ai/deepseek-v3.2, nd/moonshotai/kimi-k2-thinking |
| Chutes | chutes/* |
chutes/deepseek-ai/DeepSeek-V3.2, chutes/openai/gpt-oss-120b |
| Zhipu Intl. | za/* |
za/glm-4.6, za/glm-4-plus |
| NanoGPT | nan/* |
nan/gpt-image-2, nan/deepseek/deepseek-v4-flash, nan/openai/gpt-latest |
| SambaNova | sam/* |
sam/DeepSeek-V3.2, sam/Meta-Llama-3.3-70B-Instruct, sam/gpt-oss-120b |
| Fireworks | fireworks/* |
fireworks/llama-v3-70b |
| Together AI | together/* |
together/llama-3-70b |
| Perplexity | perplexity/*, pplx-* |
perplexity-70b-online, pplx-70b-online |
| AI21 | j2-*, jamba-* |
j2-ultra, jamba-instruct |
| Qwen | qwen-* |
qwen-72b-chat, qwen-plus, qwen-turbo |
| Yi | yi-* |
yi-34b-chat-200k |
| DeepL | deepl |
deepl (traditional translation API) |
| Google Translate | google-translate* |
google-translate, google-translate-free |
| Custom Prefix Routes | user-defined prefix/* |
Route custom prefixes to OpenAI-compatible endpoints in Model Manager |
AuthGrok browser login and account pool:
authgrok/pins the default saved account, whileauthgrok1/,authgrok2/, and later numbered routes pin their matching account slots. Whenauthgrok0/is selected in the main model field or used in the Multi API Key Manager, the Grok account-slot dropdown appears beside Grok Login. Choose + N there to allocate the next free numbered slot and open a fresh xAI sign-in for another email—there is no need to type numbered prefixes manually. Numbered logins use xAI's device-authorization flow in the regular default browser. Glossarion first signs out the previous xAI website session (without signing out Google or deleting the already-saved OAuth token), then polls xAI and saves the new account's tokens automatically after approval; a Grok Build code never needs to be copied back from the browser. Glossarion also rejects saving the same known email into two numbered slots. After saving the accounts,authgrok0/rotates distinct accounts round-robin and advances to another account on authentication, quota, or request failure.
OcAgy login and account slots: OcAgy is separate from the local
antigravity/proxy. Click OCAGY Login; Glossarion installs OpenCode andopencode-antigravity-authautomatically when needed, then opens the login so you can choose Google → OAuth with Google (Antigravity). No API key is required.ocagy0/...preserves the plugin-managed shared pool/current behavior;ocagy/...pins saved account #1,ocagy1/...pins account #2,ocagy2/...pins account #3, and so on. A pinned route fails clearly if that slot is missing, disabled, or out of quota instead of silently switching accounts.
Custom prefix routing is supported for user-defined OpenAI-compatible endpoints; add the prefix route in Model Manager, then use prefix/model-name in the model field.
Note: Many more providers are supported — including Baichuan, Zhipu AI (GLM), Moonshot/Kimi, Baidu ERNIE, Tencent Hunyuan, ByteDance Doubao, MiniMax, Meta Llama, Microsoft Phi, Falcon, and others. See
model_options.pyandunified_api_client.pyfor the full catalog.
Custom endpoints can use either a base URL or a user-defined prefix route for self-hosted and alternative OpenAI-compatible endpoints.
- Direct Providers — use API keys from OpenAI, Google, Anthropic, etc.
- ElectronHub — single API key for access to models from multiple providers
- AuthGPT — use your ChatGPT subscription via OAuth (no API key needed)
- AuthGrok — type
authgrok/grok-4.5, click Grok Login, and sign in to xAI (Google sign-in is available on xAI's page) - OcAgy — use
ocagy0/gemini-3.1-pro-highfor automatic plugin account rotation or a numbered account route for batch translation, then use OCAGY Login; Glossarion installs the required OpenCode runtime and auth plugin when needed (no API key required) - Antigravity — local Cloud Code proxy on
localhost:3000viaShirochi-stack/antigravity-proxy(no API key needed) - Custom Endpoints — configure base URL for self-hosted or alternative endpoints
- Create a Google Cloud Project (or Azure AI resource)
- Enable Cloud Vision API (or Azure AI Vision)
- Create service account credentials
- Download JSON key file
- Set path in Manga Translator interface
| Workflow | Extensions | Notes |
|---|---|---|
| Books and documents | .epub, .txt, .pdf, .md, .json, .csv |
Supported by the main translation and batch workflows. |
| Translation editing | .sdlxliff |
Extract, translate, review, and rebuild SDLXLIFF translation units. |
| Subtitles and synchronized lyrics | .srt, .ass, .lrc |
Preserves subtitle timing and structure. Files can be selected directly or stored inside a ZIP, including within nested subfolders. |
| Archives and comics | .zip, .cbz |
ZIP handling depends on its contents; subtitle ZIPs are processed as one bundle, while CBZ archives are handled by the manga workflow. |
| Images | .png, .jpg, .jpeg, .gif, .bmp, .webp |
Supported by the image and manga translation workflows. |
| Video and game integration | .mp4, .exe |
MP4 video input and RPG Maker game translation through the GTool integration. |
| Additional Direct Text attachments | .markdown, .html, .htm, .xhtml, .xml, .tsv, .vtt, .log, .tif, .tiff, .svg, .ico, .heic, .heif, .avif, .jxl |
Available when attaching a file in Direct Text. |
Extension matching is case-insensitive. Output formats depend on the selected workflow and its output settings.
- Python 3.10 or higher
- Windows 10/11 or macOS (for full feature support)
-
Clone the repository:
git clone https://github.com/Shirochi-stack/Glossarion.git cd Glossarion -
Install dependencies:
# Windows pip install -r requirements.txt # macOS pip install -r requirements-macos.txt
-
Launch the GUI:
cd src python translator_gui.py
pip install pyinstaller
# Standard build
pyinstaller src/translator.spec
# Lite build
pyinstaller src/translator_lite.spec
# macOS
pyinstaller src/translator_lite_mac.spec# GUI Framework
PySide6==6.9.3
# AI/API Clients
openai, anthropic, mistralai, cohere, tiktoken
google-genai, google-cloud-aiplatform, vertexai
poe-api-wrapper, deepl, httpx, aiohttp
# File Processing
ebooklib, beautifulsoup4, lxml, html5lib, html2text
pymupdf, weasyprint, xhtml2pdf
# Image Processing & OCR
Pillow, opencv-python-headless, numpy, scipy
google-cloud-vision, azure-ai-vision-imageanalysis
azure-ai-documentintelligence
# Manga / Bubble Detection
onnxruntime, ultralytics (YOLO)
torch, torchvision, transformers
# Text Analysis
langdetect, chardet, datasketch, rapidfuzz, jellyfish, regex
# Security
cryptography
📖 For a full walkthrough of every feature and setting, see the Complete User Guide. The quick steps below get you started.
- Launch
translator_gui.py - Select your EPUB/TXT/PDF file
- Choose source language (Korean, Japanese, or Chinese)
- Enter your API key and select a model
- Configure translation settings (chunk size, context depth, etc.)
- Click "Run Translation"
- Open Manga Translator from the Tools menu
- Set Google Cloud Vision (or Azure) credentials
- Select manga images or folder
- Configure text rendering options (font, color, inpainting)
- Start batch translation
- After translation completes, click "Extract Glossary"
- Review and edit entries
- Export to JSON or Markdown
- Complete translation
- Click "QA Scan"
- Review the interactive HTML report
- Fix identified issues
Glossarion/
├── src/
│ ├── translator_gui.py # Main GUI entry point (PySide6)
│ ├── TransateKRtoEN.py # Core translation engine
│ ├── unified_api_client.py # Multi-provider AI client (40+ providers)
│ ├── async_api_processor.py # Async concurrent chapter processing
│ ├── model_options.py # Centralized model catalog
│ ├── multi_api_key_manager.py # API key pool & rotation
│ ├── manga_translator.py # Manga OCR and translation
│ ├── manga_integration.py # Manga GUI interface
│ ├── bubble_detector.py # YOLO-based speech bubble detection
│ ├── local_inpainter.py # ONNX local inpainting engine
│ ├── ocr_manager.py # OCR provider manager
│ ├── ai_hunter_enhanced.py # ML-based duplicate detection
│ ├── epub_converter.py # EPUB processing & conversion
│ ├── pdf_extractor.py # PDF text extraction (PyMuPDF)
│ ├── scan_html_folder.py # QA scanner
│ ├── GlossaryManager.py # Glossary management engine
│ ├── extract_glossary_from_epub.py # EPUB glossary extractor
│ ├── review_dialog.py # Translation review UI
│ ├── other_settings.py # Advanced settings dialogs
│ ├── authgpt_auth.py # ChatGPT OAuth integration
│ ├── authgrok_auth.py # xAI/Grok OAuth integration
│ ├── api_key_encryption.py # API key encryption at rest
│ ├── config_backup.py # Config backup management
│ ├── dpi_setup.py # DPI awareness configuration
│ ├── splash_utils.py # Animated splash screen
│ ├── update_manager.py # Auto-update system
│ └── ...
├── assets/ # App icons and images
├── docs/ # User guides and documentation
├── .github/workflows/ # CI/CD (Windows, macOS)
├── requirements.txt # Windows dependencies
├── requirements-macos.txt # macOS dependencies
├── translator.spec # PyInstaller build config
└── LICENSE # GNU AGPL v3.0
- Japanese (Manga_JP / Novel) — optimized for manga and novel translation
- Korean (Manga_KR / Novel) — manhwa and web novel translation
- Chinese (Manga_CN / Novel) — manhua and web novel translation
- Rolling Window — maintains recent context for consistency
- Reset on Limit — clears history at threshold
- Dynamic Adjustment — adapts based on model token limits
- Export/Import — save and resume translation sessions
- Concurrent Chunks — process multiple sections simultaneously
- Auto-retry — automatic error recovery with key rotation
- Progress Persistence — resume interrupted translations via
translation_progress.json - Resource Management — memory usage tracking and optimization
- Real-time monitoring of in-flight API requests
- Per-request tracking with chapter/chunk labels
- Retry attempt logging and duration tracking
Built using:
- OpenAI, Google, Anthropic, xAI, and many more AI provider APIs
- Designed with assistance from ChatGPT & Claude
- Community feedback and contributions
- OMORIO - contributed the SDLXLIFF source-to-output reviewer workflow
- TK - contributed the Gemma stray p> and number spacing token fixes
- Jin - contributed the
ocagy/prefix routing implementation - Open source libraries and tools
- comic-translate by ogkalu2 — https://github.com/ogkalu2/comic-translate
Copyright (C) 2025 Shirochi-stack.
This project is licensed under the GNU Affero General Public License v3.0 only
(AGPL-3.0-only) — see the LICENSE file for details. Third-party
components remain subject to their respective licenses.
- Issues: GitHub Issues
- Discord: Join our Community
Made with 🌸 for the translation community
