# Optimizaciones de manga-image-translator ## OPCIÓN A: Solo config (sin tocar código) ### Flags para acelerar en CPU | Flag | Default | Recomendado | Impacto | Riesgo | |------|---------|-------------|---------|--------| | `--detection-size` | 2048 | **1024** | ~2-4x más rápido detección | Puede perder burbujas muy pequeñas | | `--inpainting-size` | 2048 | **1024** | ~2-4x más rápido inpainting | Menor calidad de borrado | | `--inpainter` | lama_large | **default (AOT)** | ~3-5x más rápido inpainting | AOT borra un poco peor | | `--ocr` | 48px | **32px** | ~20-30% más rápido OCR | Puede fallar en texto pequeño | | `--batch-size` | 1 | **20-50** | Reduce llamadas API ~20x | Textos muy largos pueden fallar (error 2013) | | `--batch-concurrent` | off | **on** | Superpone red + CPU | Mejora parcial | | `--skip-no-text` | off | **on** | Ahorra I/O en páginas sin texto | Solo ahorra escritura, no procesamiento | ### Comando óptimo ```bash python -m manga_translator local \ -i "input" -o "output" \ --config-file translate_config.json \ --detection-size 1024 \ --inpainting-size 1024 \ --inpainter default \ --ocr 32px \ --batch-size 30 \ --batch-concurrent \ --skip-no-text \ --ignore-errors --overwrite ``` ### Estimación: 1.5h → ~20-30 min --- ## OPCIÓN B: Cambios de código (requiere modificar el repo) ### B1. Corregir `_concurrent_translate_contexts` (chatgpt.py) - Usar `asyncio.gather` en vez de loop secuencial - Impacto: ~30-40% más rápido en fase de traducción - Riesgo: Bajo ### B2. Pipeline real con ProcessPoolExecutor - multiprocessing.Pool para detección + OCR paralela - Bypass del GIL de Python - Impacto: ~50-60% más rápido (mayor salto) - Riesgo: Requiere refactorizar state global de modelos ### B3. Aumentar `_MAX_TOKENS` (chatgpt.py) - Default: 4096 → 8192 si MiniMax lo soporta - Impacto: Menor con batch-size alto ### Estimación: 1.5h → ~15-25 min --- ## OPCIÓN C: Híbrida (recomendada) - Config de Opción A + B1 (código menor) - Estimación: ~15-25 min, ~50-80 llamadas API