2.0 KiB
2.0 KiB
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
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.gatheren 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