feat: initial commit - manga-image-translator setup with MiniMax LLM for Spanish translation
This commit is contained in:
59
OPTIMIZACIONES.md
Normal file
59
OPTIMIZACIONES.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user