STOCKMIL STUDIO

f4 Storyboard · T02E02

En la máquina: storyboard · tiene puerta (se aprueba) · ← cadena del proyecto

Cada plano va en tres bloques separados: diálogo (lo que suena), imagen (el prompt) y vídeo (lo que se mueve). El prompt del guion manda; el director solo añade lo técnico. Si tarda y el log sale vacío, no está parado: la máquina escribe en buffer.

Estado: hecha · puerta: pendiente

/tmp/proyectos/T02E02/Guiones/STORYBOARD.md md sí (6849 B) /tmp/proyectos/T02E02/Guiones/planos.json json sí (15827 B)

sha256 aprobado: — · sha256 actual: 140c5b03991ab9e4edb4fa17a88e769cc33b20ee2ff82cd938c0b40d73bb65bc

El .md (prosa para leer y aprobar)

Los planos y sus prompts, para aprobar antes de generar nada.

# STORYBOARD — T02E02

**6 planos · 24.0 s · corto vertical 9:16**
- **Master lock** (no cambia entre planos): teal and rust palette, tungsten torch beams, vertical framing
- **Motivo de serie** (el ancla que se repite): el parpadeo azul de la pantalla en la oscuridad

## e1 · 4.0s · establish_context
**DICE:** «¿Quién habla?»
**SE VE:** Una radio de mano chisporrotea en la oscuridad; el pulgar busca el botón y una pantalla azul tiembla.
**Por qué existe:** Presentar la radio como único canal con la voz perdida.
**Cámara:** close_up · static · 50 · low_key · shallow · cool
**Detalles:** detalle_entorno: niebla pegada a la lámina de agua, farolas apagadas al fondo | micro_accion: el pulgar aprieta el botón hasta que la carcasa cruje | motivo: el parpadeo azul de la pantalla en la oscuridad
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «¿Quién habla?»
- **IMAGEN:** `Wet phone tangled in fishing net on wooden boat deck, fisherman's rough hand reaching, grey sea behind, 50mm lens, locked off, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.`
- **VÍDEO:** el pulgar aprieta el botón, la radio escupe estática y la pantalla parpadea | movimiento: locked off

## e2 · 4.0s · emotional_beat
**DICE:** «Papá, soy yo. Estoy aquí.»
**SE VE:** El hombre se detiene en seco sobre el asfalto mojado, linterna alzada, el haz barriendo el agua negra.  🎙 **VOZ EN OFF** (el que habla no sale en pantalla)
**Por qué existe:** Mostrar la reacción de quien escucha, no de quien habla.
**Cámara:** medium · handheld · 35 · low_key · shallow · cool
**Detalles:** detalle_entorno: charcos devolviendo el haz de la linterna en el asfalto | micro_accion: se le corta la inhalación a mitad de pecho | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-HIJA
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Papá, soy yo. Estoy aquí.»
- **IMAGEN:** `Old radio on boat dashboard, static humming, faint female voice waveform on screen, dim cabin light, 35mm lens, handheld, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.`
- **VÍDEO:** se detiene, gira la cabeza hacia el agua, el haz barre la superficie | movimiento: handheld

## e3 · 4.0s · build_tension
**DICE:** «Dime dónde estás.»
**SE VE:** La lluvia golpea la carcasa de la radio; el haz de la linterna tiembla sobre el agua quieta del embalse.
**Por qué existe:** Subrayar la desesperación de quien no obtiene respuesta.
**Cámara:** extreme_close_up · static · 85 · low_key · shallow · cool
**Detalles:** detalle_entorno: goterones resbalando por el borde metálico de la radio | micro_accion: traga saliva y la mandíbula se tensa antes de hablar | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Dime dónde estás.»
- **IMAGEN:** `Fisherman steering boat through thick fog, compass needle pointing north, hands gripping wheel, grey water, 85mm lens, locked off, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.`
- **VÍDEO:** grita contra la radio, la linterna tiembla, nadie responde | movimiento: locked off

## e4 · 4.0s · build_tension
**DICE:** «Voy a buscarte.»
**SE VE:** Botas hundiéndose en el barro, el cuerpo corriendo hacia el embalse, la linterna rebotando contra la niebla.
**Por qué existe:** Convertir la promesa en movimiento físico hacia el agua.
**Cámara:** medium_wide · tracking_right · 24 · low_key · medium · cool
**Detalles:** detalle_entorno: ramas rotas y barro que succiona cada pisada | micro_accion: los nudillos blancos agarrando la linterna | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Voy a buscarte.»
- **IMAGEN:** `Man rowing small dinghy, coast guard spotlight behind, oars cutting black water, radio silence button pressed, 24mm lens, slow lateral track right, medium depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.`
- **VÍDEO:** corre hacia el embalse, las botas se hunden, la linterna rebota | movimiento: slow lateral track right

## e5 · 4.0s · evidence  ★HERO
**DICE:** «El móvil era la baliza. Abre.»
**SE VE:** Bajo la superficie, un móvil encendido parpadea azul dentro de una cabina inundada; burbujas suben despacio.  🎙 **VOZ EN OFF** (el que habla no sale en pantalla)
**Por qué existe:** Revelar la baliza que sostiene toda la búsqueda.
**Cámara:** insert · dolly_in · 50 · volumetric · shallow · cool
**Detalles:** detalle_entorno: haces de luz atravesando agua turbia con partículas en suspensión | micro_accion: dedos curvados golpeando el cristal de la ventanilla | motivo: el parpadeo azul de la pantalla en la oscuridad
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-HIJA
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «El móvil era la baliza. Abre.»
- **IMAGEN:** `Diver's hand touching black box inside sunken wreck, voice coming from box speaker, name engraved on metal, 50mm lens, slow dolly in, shallow depth of field, volumetric light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.`
- **VÍDEO:** el móvil parpadea bajo el agua; una mano golpea el cristal desde fuera | movimiento: slow dolly in

## e6 · 4.0s · deliver_payload  ★HERO
**DICE:** «Donde hundiste la verdad.»
**SE VE:** Un coche hundido en el fondo verde, faros apagados, limo flotando; el parpadeo azul se apaga del todo.  🎙 **VOZ EN OFF** (el que habla no sale en pantalla)
**Por qué existe:** Cerrar con la verdad hundida y la última luz que se apaga.
**Cámara:** extreme_wide · crane_down · 24 · low_key · deep · cool
**Detalles:** detalle_entorno: limo arremolinándose sobre el capó y la matrícula | micro_accion: una mano pequeña abierta contra el cristal, quieta | motivo: el parpadeo azul de la pantalla en la oscuridad
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-HIJA
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Donde hundiste la verdad.»
- **IMAGEN:** `Open black box revealing tape recorder and brass key, water flooding through open hatch below, hands holding key, 24mm lens, slow descent, deep depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.`
- **VÍDEO:** el limo se asienta, el parpadeo azul se apaga, el coche queda quieto | movimiento: slow descent

El .json (la misma información para las máquinas)

{
  "version": "1.0",
  "proyecto_id": "T02E02",
  "idioma_texto": "es",
  "formato": "corto vertical 9:16",
  "master_lock": "teal and rust palette, tungsten torch beams, vertical framing",
  "motivo_serie": "el parpadeo azul de la pantalla en la oscuridad",
  "erratas": [],
  "duracion_total_s": 24,
  "escenas": [
    {
      "id": "e1",
      "beat": null,
      "tipo": "generated",
      "texto": "¿Quién habla?",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Una radio de mano chisporrotea en la oscuridad; el pulgar busca el botón y una pantalla azul tiembla.",
      "prompt_base_guion": "Wet phone tangled in fishing net on wooden boat deck, fisherman's rough hand reaching, grey sea behind",
      "bloques": {
        "dialogo": "¿Quién habla?",
        "imagen": "Wet phone tangled in fishing net on wooden boat deck, fisherman's rough hand reaching, grey sea behind, 50mm lens, locked off, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
        "video": "el pulgar aprieta el botón, la radio escupe estática y la pantalla parpadea | movimiento: locked off"
      },
      "start_seconds": 0,
      "end_seconds": 4,
      "narrative_role": "establish_context",
      "shot_intent": "Presentar la radio como único canal con la voz perdida.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "close_up",
        "camera_movement": "static",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "una radio de mano y el pulgar que la sostiene",
        "accion": "el pulgar aprieta el botón, la radio escupe estática y la pantalla parpadea",
        "escena": "orilla de un embalse de noche, niebla baja sobre el agua, sin nadie alrededor",
        "espacial": "close_up; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "niebla pegada a la lámina de agua, farolas apagadas al fondo",
        "micro_accion": "el pulgar aprieta el botón hasta que la carcasa cruje",
        "motivo": "el parpadeo azul de la pantalla en la oscuridad"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Wet phone tangled in fishing net on wooden boat deck, fisherman's rough hand reaching, grey sea behind, 50mm lens, locked off, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
      "prompt_palabras": 39,
      "transition_out": "hard cut"
    },
    {
      "id": "e2",
      "beat": null,
      "tipo": "generated",
      "texto": "Papá, soy yo. Estoy aquí.",
      "hablante": "@hija",
      "voz_en_off": true,
      "refs": [
        "REF-HIJA"
      ],
      "visual": "El hombre se detiene en seco sobre el asfalto mojado, linterna alzada, el haz barriendo el agua negra.",
      "prompt_base_guion": "Old radio on boat dashboard, static humming, faint female voice waveform on screen, dim cabin light",
      "bloques": {
        "dialogo": "Papá, soy yo. Estoy aquí.",
        "imagen": "Old radio on boat dashboard, static humming, faint female voice waveform on screen, dim cabin light, 35mm lens, handheld, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
        "video": "se detiene, gira la cabeza hacia el agua, el haz barre la superficie | movimiento: handheld"
      },
      "start_seconds": 4,
      "end_seconds": 8,
      "narrative_role": "emotional_beat",
      "shot_intent": "Mostrar la reacción de quien escucha, no de quien habla.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium",
        "camera_movement": "handheld",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "el hombre detenido en la orilla con la linterna en alto",
        "accion": "se detiene, gira la cabeza hacia el agua, el haz barre la superficie",
        "escena": "asfalto mojado junto al embalse, madrugada, no hay nadie más",
        "espacial": "medium; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, handheld, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "charcos devolviendo el haz de la linterna en el asfalto",
        "micro_accion": "se le corta la inhalación a mitad de pecho",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Old radio on boat dashboard, static humming, faint female voice waveform on screen, dim cabin light, 35mm lens, handheld, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
      "prompt_palabras": 37,
      "transition_out": "hard cut"
    },
    {
      "id": "e3",
      "beat": null,
      "tipo": "generated",
      "texto": "Dime dónde estás.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "La lluvia golpea la carcasa de la radio; el haz de la linterna tiembla sobre el agua quieta del embalse.",
      "prompt_base_guion": "Fisherman steering boat through thick fog, compass needle pointing north, hands gripping wheel, grey water",
      "bloques": {
        "dialogo": "Dime dónde estás.",
        "imagen": "Fisherman steering boat through thick fog, compass needle pointing north, hands gripping wheel, grey water, 85mm lens, locked off, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
        "video": "grita contra la radio, la linterna tiembla, nadie responde | movimiento: locked off"
      },
      "start_seconds": 8,
      "end_seconds": 12,
      "narrative_role": "build_tension",
      "shot_intent": "Subrayar la desesperación de quien no obtiene respuesta.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "extreme_close_up",
        "camera_movement": "static",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 85
      },
      "aspectos": {
        "sujeto": "la radio empapada y el haz de luz sobre el agua",
        "accion": "grita contra la radio, la linterna tiembla, nadie responde",
        "escena": "borde del embalse, noche cerrada, lluvia fina, sin testigos",
        "espacial": "extreme_close_up; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "85mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "goterones resbalando por el borde metálico de la radio",
        "micro_accion": "traga saliva y la mandíbula se tensa antes de hablar",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Fisherman steering boat through thick fog, compass needle pointing north, hands gripping wheel, grey water, 85mm lens, locked off, shallow depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
      "prompt_palabras": 37,
      "transition_out": "hard cut"
    },
    {
      "id": "e4",
      "beat": null,
      "tipo": "generated",
      "texto": "Voy a buscarte.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Botas hundiéndose en el barro, el cuerpo corriendo hacia el embalse, la linterna rebotando contra la niebla.",
      "prompt_base_guion": "Man rowing small dinghy, coast guard spotlight behind, oars cutting black water, radio silence button pressed",
      "bloques": {
        "dialogo": "Voy a buscarte.",
        "imagen": "Man rowing small dinghy, coast guard spotlight behind, oars cutting black water, radio silence button pressed, 24mm lens, slow lateral track right, medium depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
        "video": "corre hacia el embalse, las botas se hunden, la linterna rebota | movimiento: slow lateral track right"
      },
      "start_seconds": 12,
      "end_seconds": 16,
      "narrative_role": "build_tension",
      "shot_intent": "Convertir la promesa en movimiento físico hacia el agua.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium_wide",
        "camera_movement": "tracking_right",
        "lighting_key": "low_key",
        "depth_of_field": "medium",
        "color_temperature": "cool",
        "lens_mm": 24
      },
      "aspectos": {
        "sujeto": "las botas y el tramo de barro hasta el agua",
        "accion": "corre hacia el embalse, las botas se hunden, la linterna rebota",
        "escena": "talud de barro que baja al agua, noche, sin gente",
        "espacial": "medium_wide; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "24mm, tracking_right, DoF medium, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "ramas rotas y barro que succiona cada pisada",
        "micro_accion": "los nudillos blancos agarrando la linterna",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Man rowing small dinghy, coast guard spotlight behind, oars cutting black water, radio silence button pressed, 24mm lens, slow lateral track right, medium depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
      "prompt_palabras": 40,
      "transition_out": "hard cut"
    },
    {
      "id": "e5",
      "beat": null,
      "tipo": "generated",
      "texto": "El móvil era la baliza. Abre.",
      "hablante": "@hija",
      "voz_en_off": true,
      "refs": [
        "REF-HIJA"
      ],
      "visual": "Bajo la superficie, un móvil encendido parpadea azul dentro de una cabina inundada; burbujas suben despacio.",
      "prompt_base_guion": "Diver's hand touching black box inside sunken wreck, voice coming from box speaker, name engraved on metal",
      "bloques": {
        "dialogo": "El móvil era la baliza. Abre.",
        "imagen": "Diver's hand touching black box inside sunken wreck, voice coming from box speaker, name engraved on metal, 50mm lens, slow dolly in, shallow depth of field, volumetric light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
        "video": "el móvil parpadea bajo el agua; una mano golpea el cristal desde fuera | movimiento: slow dolly in"
      },
      "start_seconds": 16,
      "end_seconds": 20,
      "narrative_role": "evidence",
      "shot_intent": "Revelar la baliza que sostiene toda la búsqueda.",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "insert",
        "camera_movement": "dolly_in",
        "lighting_key": "volumetric",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "el móvil encendido en la cabina inundada",
        "accion": "el móvil parpadea bajo el agua; una mano golpea el cristal desde fuera",
        "escena": "bajo la superficie del embalse, noche, agua turbia, sin nadie",
        "espacial": "insert; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, dolly_in, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "haces de luz atravesando agua turbia con partículas en suspensión",
        "micro_accion": "dedos curvados golpeando el cristal de la ventanilla",
        "motivo": "el parpadeo azul de la pantalla en la oscuridad"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Diver's hand touching black box inside sunken wreck, voice coming from box speaker, name engraved on metal, 50mm lens, slow dolly in, shallow depth of field, volumetric light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
      "prompt_palabras": 39,
      "transition_out": "hard cut"
    },
    {
      "id": "e6",
      "beat": null,
      "tipo": "generated",
      "texto": "Donde hundiste la verdad.",
      "hablante": "@hija",
      "voz_en_off": true,
      "refs": [
        "REF-HIJA"
      ],
      "visual": "Un coche hundido en el fondo verde, faros apagados, limo flotando; el parpadeo azul se apaga del todo.",
      "prompt_base_guion": "Open black box revealing tape recorder and brass key, water flooding through open hatch below, hands holding key",
      "bloques": {
        "dialogo": "Donde hundiste la verdad.",
        "imagen": "Open black box revealing tape recorder and brass key, water flooding through open hatch below, hands holding key, 24mm lens, slow descent, deep depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
        "video": "el limo se asienta, el parpadeo azul se apaga, el coche queda quieto | movimiento: slow descent"
      },
      "start_seconds": 20,
      "end_seconds": 24,
      "narrative_role": "deliver_payload",
      "shot_intent": "Cerrar con la verdad hundida y la última luz que se apaga.",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "extreme_wide",
        "camera_movement": "crane_down",
        "lighting_key": "low_key",
        "depth_of_field": "deep",
        "color_temperature": "cool",
        "lens_mm": 24
      },
      "aspectos": {
        "sujeto": "el coche hundido en el fondo del embalse",
        "accion": "el limo se asienta, el parpadeo azul se apaga, el coche queda quieto",
        "escena": "fondo del embalse, noche, limo y agua verde, sin nadie",
        "espacial": "extreme_wide; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "24mm, crane_down, DoF deep, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "limo arremolinándose sobre el capó y la matrícula",
        "micro_accion": "una mano pequeña abierta contra el cristal, quieta",
        "motivo": "el parpadeo azul de la pantalla en la oscuridad"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Open black box revealing tape recorder and brass key, water flooding through open hatch below, hands holding key, 24mm lens, slow descent, deep depth of field, low key light, cool tones. teal and rust palette, tungsten torch beams, vertical framing.",
      "prompt_palabras": 40,
      "transition_out": "hard cut"
    }
  ]
}