eyewitness / STATUS.md
Fcabla's picture
Upload folder using huggingface_hub
e1b885e verified
|
Raw
History Blame Contribute Delete
4.02 kB
# EYEWITNESS — Estado y backlog de iteración (12 jun 2026, mañana)
## Estado del sistema
| Componente | Estado | Evidencia |
|---|---|---|
| Juego core completo en el Space (ZeroGPU) | ✅ estable | múltiples rondas verificadas en prod |
| Parser fine-tune (`Fcabla/MiniCPM5-1B-eyewitness`) | ✅ en vivo | "caterpillar eyebrows"→retrato correcto |
| Pulla viva (1B base) + voz viva (VoxCPM2 anchor) | ✅ mecánicamente / ⚠️ calidad | logs `[taunt] ok`+`[voice] ok 3-4s`; pero ver backlog F2/F3 |
| Preload canónico ZeroGPU + duraciones 20/30s | ✅ | `[startup] models preloaded`; quota-admisible |
| Cascada de fallbacks | ✅ probada | nunca rompió prod en ningún fallo |
| Banco casos/voces/anchors (Modal) | ✅ | verificados por transcripción whisper |
Latencia percibida: aceptable (palabra de Fernando). GitHub/dataset/model publicados.
## BACKLOG DE FEEDBACK (Fernando, 12 jun) — por orden de ataque
- **F1 · UI: textos invisibles sobre fondo blanco (light mode)** — bug de contraste; además pase
general /frontend-design ("hay que pulir más"). *Primera tarea: reproducir en light mode.*
- **F2 · Calidad de las pullas**: el 1B confunde la voz narrativa (habla como testigo, no como
ladrón) y no se percibe la personalización. Diagnóstico en logs: `"A headache! I never noticed
your fancy hat!"`. Candidatos: prompt más restringido, temperatura menor, o plantilla
determinista desde el diff + el modelo solo adorna (honest fit). **Probar en local con la 4090.**
- **F3 · Voz: siempre suena la misma (femenina), alta y regular.** Los 3 anchors no se
diferenciaron — VoxCPM2 LEYÓ las descripciones de estilo pero no las OBEDECIÓ (gamble fallido).
Plan: con la 4090 local, generar ~20 candidatos de anchor, medir pitch (f0) y elegir 3
genuinamente distintos (grave/medio/agudo) + normalizar volumen (está clipeando o muy alto).
- **F4 · "No queda claro qué modelo hace qué en cada momento"** — UX de visibilidad del modelo:
badges por pantalla ("MiniCPM5-1B parseando tu testimonio…"), el cuaderno del retratista
(mapeo palabra→atributo visible), retrato construyéndose rasgo a rasgo.
- **F5 · Testimonio HABLADO** (idea Fernando): ASR para hablar en vez de escribir.
Decisión (12 jun): **Cohere Transcribe 2B en exclusiva** (sponsor award; sube runtime
a ~5.7B, sigue ≤32B sobrado). Sin fallback whisper — no puntúa para ningún premio.
Idioma del testigo (EN/ES) elegido por log-prob entre ambos decoder prompts.
- **F6 · Imagen realista del sospechoso** (idea Fernando): generar una "foto policial" realista
desde el retrato/atributos, al final o en el loop. Opciones: img2img/ControlNet sobre el SVG,
SDXL-Turbo (~3.5B) o FLUX (12B, rompe presupuesto Tiny Titan si computa runtime). Pesada:
evaluar coste/beneficio DESPUÉS de F1-F4. Posible modo "ficha policial final" como recompensa.
## Recursos nuevos
- **RTX 4090 local disponible** — probar modelos/voces/prompts en local, sin quemar cuota
ZeroGPU ni ciclos de deploy. (Falta instalar torch CUDA en el venv; los drivers ya están.)
## Lecciones ZeroGPU (no repetir)
1. La cuota ADMITE por duración SOLICITADA vs restante — pedir 90s "por seguridad" hace
inadmisibles las llamadas. Pedir pequeño (20-30s).
2. Patrón canónico: cargar modelos a CPU en el arranque (`preload()` en `__main__`), `.to(cuda)`
dentro de la función `@spaces.GPU` — las llamadas pasan de 30-60s a 3-8s.
3. Los usuarios anónimos pueden tener 0s de cuota → la cascada de fallbacks no es opcional.
4. El bloque `__main__` no se ejercita con `from app import demo` — usar `compile()` del fichero.
## Lo que NO está en discusión (congelado)
Mecánica del juego, motor de caras, rueda-desde-errores, scoring transparente, póster,
deploy pipeline. La iteración es: UI/contraste, calidad pulla+voz, visibilidad del modelo,
y (si hay margen) ASR y/o imagen realista. **El vídeo de submission sigue siendo el único
entregable duro pendiente — deadline 15 jun.**