Spaces:
Running on Zero
Running on Zero
| # 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.** | |