STOCKMIL STUDIO

f4 Storyboard · T02E01

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/T02E01/Guiones/STORYBOARD.md md sí (4710 B) /tmp/proyectos/T02E01/Guiones/planos.json json sí (11023 B)

sha256 aprobado: — · sha256 actual: 8c4e409b01131f415d089f50ec87b1487d592707a29a3e049de9e5bec1eac8e9

El .md (prosa para leer y aprobar)

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

# STORYBOARD — T02E01

**4 planos · 16.0 s · corto vertical 9:16**
- **Master lock** (no cambia entre planos): teal and rust palette, blue hour light, vertical framing
- **Motivo de serie** (el ancla que se repite): la luz fría del móvil sobre madera mojada
- **Erratas detectadas:** 

## e1 · 4.0s · establish_context
**DICE:** «No hay peces. Solo un móvil que suena.»
**SE VE:** Red de pesca vacía sobre la cubierta mojada; un móvil vibra y se desplaza solo por las tablas
**Por qué existe:** presentar el vacío de la pesca y el móvil como única señal viva
**Cámara:** insert · static · 35 · blue_hour · shallow · cool
**Detalles:** detalle_entorno: madera empapada con sal seca en el borde de la borda | micro_accion: el móvil vibra y avanza medio palmo por las tablas | motivo: la luz fría del móvil sobre madera mojada
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «No hay peces. Solo un móvil que suena.»
- **IMAGEN:** `Fisherman's hands pulling a fishing net onto a boat deck, a cracked phone tangled in the mesh, no fish, 35mm lens, locked off, shallow depth of field, blue hour light, cool tones. teal and rust palette, blue hour light, vertical framing.`
- **VÍDEO:** el móvil vibra, avanza medio palmo por la madera y vuelve a quedarse quieto | movimiento: locked off

## e2 · 4.0s · emotional_beat  ★HERO
**DICE:** «Papá, estoy debajo de ti.»
**SE VE:** Bajo el casco, una mano pequeña se abre contra el metal; burbujas suben hacia la luz de la superficie
**Por qué existe:** revelar que la voz viene de debajo del barco y golpear al espectador
**Cámara:** medium_close · handheld · 24 · silhouette · deep · cool
**Detalles:** detalle_entorno: luz verdosa que se filtra desde la superficie y percebes en el casco | micro_accion: los dedos se abren y se cierran contra el metal | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-LARA
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Papá, estoy debajo de ti.»
- **IMAGEN:** `Close-up of a cracked phone screen glowing in a fisherman's calloused hand, his face lit by the screen, night sea behind, 24mm lens, handheld, deep depth of field, silhouette light, cool tones. teal and rust palette, blue hour light, vertical framing.`
- **VÍDEO:** los dedos se abren y se cierran contra el metal mientras las burbujas escapan hacia arriba | movimiento: handheld

## e3 · 4.0s · deliver_payload  ★HERO
**DICE:** «Apago el motor para oírte.»
**SE VE:** Una mano gira la llave de encendido; el motor enmudece y la estela se deshace en agua quieta
**Por qué existe:** mostrar la decisión de callar el motor para poder escuchar
**Cámara:** close_up · dolly_in · 50 · blue_hour · shallow · cool
**Detalles:** detalle_entorno: el motor calla y el silencio deja oír el golpeteo del agua contra el casco | micro_accion: los nudillos giran la llave y se quedan quietos | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Apago el motor para oírte.»
- **IMAGEN:** `Fisherman's hand turning a rusty ignition key to off, engine silence, boat drifting toward dark rocks, wake behind, 50mm lens, slow dolly in, shallow depth of field, blue hour light, cool tones. teal and rust palette, blue hour light, vertical framing.`
- **VÍDEO:** la llave gira a la posición de apagado, el motor se detiene y la estela se aplana | movimiento: slow dolly in

## e4 · 4.0s · resolution
**DICE:** «Cierre el parte. Es accidental.»
**SE VE:** Mesa de cartas: una mano marca la casilla de accidente y deja el parte junto a la radio
**Por qué existe:** cerrar el vídeo con el parte firmado que borra lo ocurrido
**Cámara:** insert · static · 85 · tungsten_warm · shallow · mixed
**Detalles:** detalle_entorno: mesa de cartas con café frío y radio marina encendida de fondo | micro_accion: la punta del boli marca la casilla y se detiene | motivo: la luz fría del móvil sobre madera mojada
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-MARINA
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Cierre el parte. Es accidental.»
- **IMAGEN:** `Coast guard radio on a boat console, a red light blinking, a map with coordinates, a hand holding a microphone, 85mm lens, locked off, shallow depth of field, tungsten warm light, mixed tones. teal and rust palette, blue hour light, vertical framing.`
- **VÍDEO:** el bolígrafo marca la casilla, se levanta y el parte queda boca arriba con la firma | movimiento: locked off

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

{
  "version": "1.0",
  "proyecto_id": "T02E01",
  "idioma_texto": "es",
  "formato": "corto vertical 9:16",
  "master_lock": "teal and rust palette, blue hour light, vertical framing",
  "motivo_serie": "la luz fría del móvil sobre madera mojada",
  "erratas": [
    ""
  ],
  "duracion_total_s": 16,
  "escenas": [
    {
      "id": "e1",
      "beat": null,
      "tipo": "generated",
      "texto": "No hay peces. Solo un móvil que suena.",
      "hablante": "@me",
      "refs": [
        "REF-ME"
      ],
      "visual": "Red de pesca vacía sobre la cubierta mojada; un móvil vibra y se desplaza solo por las tablas",
      "prompt_base_guion": "Fisherman's hands pulling a fishing net onto a boat deck, a cracked phone tangled in the mesh, no fish.",
      "bloques": {
        "dialogo": "No hay peces. Solo un móvil que suena.",
        "imagen": "Fisherman's hands pulling a fishing net onto a boat deck, a cracked phone tangled in the mesh, no fish, 35mm lens, locked off, shallow depth of field, blue hour light, cool tones. teal and rust palette, blue hour light, vertical framing.",
        "video": "el móvil vibra, avanza medio palmo por la madera y vuelve a quedarse quieto | movimiento: locked off"
      },
      "start_seconds": 0,
      "end_seconds": 4,
      "narrative_role": "establish_context",
      "shot_intent": "presentar el vacío de la pesca y el móvil como única señal viva",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "insert",
        "camera_movement": "static",
        "lighting_key": "blue_hour",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "cubierta de barco pesquero al amanecer, red recogida y sin captura, móvil tirado entre las tablas",
        "accion": "el móvil vibra, avanza medio palmo por la madera y vuelve a quedarse quieto",
        "escena": "cubierta de un pesquero amarrado en el puerto, primera luz del día, nadie más a bordo",
        "espacial": "insert; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "madera empapada con sal seca en el borde de la borda",
        "micro_accion": "el móvil vibra y avanza medio palmo por las tablas",
        "motivo": "la luz fría del móvil sobre madera mojada"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Fisherman's hands pulling a fishing net onto a boat deck, a cracked phone tangled in the mesh, no fish, 35mm lens, locked off, shallow depth of field, blue hour light, cool tones. teal and rust palette, blue hour light, vertical framing.",
      "prompt_palabras": 41,
      "transition_out": "hard cut"
    },
    {
      "id": "e2",
      "beat": null,
      "tipo": "generated",
      "texto": "Papá, estoy debajo de ti.",
      "hablante": "@lara",
      "refs": [
        "REF-LARA"
      ],
      "visual": "Bajo el casco, una mano pequeña se abre contra el metal; burbujas suben hacia la luz de la superficie",
      "prompt_base_guion": "Close-up of a cracked phone screen glowing in a fisherman's calloused hand, his face lit by the screen, night sea behind.",
      "bloques": {
        "dialogo": "Papá, estoy debajo de ti.",
        "imagen": "Close-up of a cracked phone screen glowing in a fisherman's calloused hand, his face lit by the screen, night sea behind, 24mm lens, handheld, deep depth of field, silhouette light, cool tones. teal and rust palette, blue hour light, vertical framing.",
        "video": "los dedos se abren y se cierran contra el metal mientras las burbujas escapan hacia arriba | movimiento: handheld"
      },
      "start_seconds": 4,
      "end_seconds": 8,
      "narrative_role": "emotional_beat",
      "shot_intent": "revelar que la voz viene de debajo del barco y golpear al espectador",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "medium_close",
        "camera_movement": "handheld",
        "lighting_key": "silhouette",
        "depth_of_field": "deep",
        "color_temperature": "cool",
        "lens_mm": 24
      },
      "aspectos": {
        "sujeto": "mano pequeña bajo el agua, casco del barco visto desde abajo, agua turbia y verde",
        "accion": "los dedos se abren y se cierran contra el metal mientras las burbujas escapan hacia arriba",
        "escena": "bajo el casco del pesquero, amanecer, agua fría y oscura atravesada por un haz de luz",
        "espacial": "medium_close; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "24mm, handheld, DoF deep, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "luz verdosa que se filtra desde la superficie y percebes en el casco",
        "micro_accion": "los dedos se abren y se cierran contra el metal",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Close-up of a cracked phone screen glowing in a fisherman's calloused hand, his face lit by the screen, night sea behind, 24mm lens, handheld, deep depth of field, silhouette light, cool tones. teal and rust palette, blue hour light, vertical framing.",
      "prompt_palabras": 41,
      "transition_out": "hard cut"
    },
    {
      "id": "e3",
      "beat": null,
      "tipo": "generated",
      "texto": "Apago el motor para oírte.",
      "hablante": "@me",
      "refs": [
        "REF-ME"
      ],
      "visual": "Una mano gira la llave de encendido; el motor enmudece y la estela se deshace en agua quieta",
      "prompt_base_guion": "Fisherman's hand turning a rusty ignition key to off, engine silence, boat drifting toward dark rocks, wake behind.",
      "bloques": {
        "dialogo": "Apago el motor para oírte.",
        "imagen": "Fisherman's hand turning a rusty ignition key to off, engine silence, boat drifting toward dark rocks, wake behind, 50mm lens, slow dolly in, shallow depth of field, blue hour light, cool tones. teal and rust palette, blue hour light, vertical framing.",
        "video": "la llave gira a la posición de apagado, el motor se detiene y la estela se aplana | movimiento: slow dolly in"
      },
      "start_seconds": 8,
      "end_seconds": 12,
      "narrative_role": "deliver_payload",
      "shot_intent": "mostrar la decisión de callar el motor para poder escuchar",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "close_up",
        "camera_movement": "dolly_in",
        "lighting_key": "blue_hour",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "mano en el cuadro de mandos, llave de encendido, agua removida por la hélice",
        "accion": "la llave gira a la posición de apagado, el motor se detiene y la estela se aplana",
        "escena": "bañera del pesquero en marcha lenta, amanecer, sin nadie más a la vista",
        "espacial": "close_up; 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": "el motor calla y el silencio deja oír el golpeteo del agua contra el casco",
        "micro_accion": "los nudillos giran la llave y se quedan quietos",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Fisherman's hand turning a rusty ignition key to off, engine silence, boat drifting toward dark rocks, wake behind, 50mm lens, slow dolly in, shallow depth of field, blue hour light, cool tones. teal and rust palette, blue hour light, vertical framing.",
      "prompt_palabras": 41,
      "transition_out": "hard cut"
    },
    {
      "id": "e4",
      "beat": null,
      "tipo": "generated",
      "texto": "Cierre el parte. Es accidental.",
      "hablante": "@marina",
      "refs": [
        "REF-MARINA"
      ],
      "visual": "Mesa de cartas: una mano marca la casilla de accidente y deja el parte junto a la radio",
      "prompt_base_guion": "Coast guard radio on a boat console, a red light blinking, a map with coordinates, a hand holding a microphone.",
      "bloques": {
        "dialogo": "Cierre el parte. Es accidental.",
        "imagen": "Coast guard radio on a boat console, a red light blinking, a map with coordinates, a hand holding a microphone, 85mm lens, locked off, shallow depth of field, tungsten warm light, mixed tones. teal and rust palette, blue hour light, vertical framing.",
        "video": "el bolígrafo marca la casilla, se levanta y el parte queda boca arriba con la firma | movimiento: locked off"
      },
      "start_seconds": 12,
      "end_seconds": 16,
      "narrative_role": "resolution",
      "shot_intent": "cerrar el vídeo con el parte firmado que borra lo ocurrido",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "insert",
        "camera_movement": "static",
        "lighting_key": "tungsten_warm",
        "depth_of_field": "shallow",
        "color_temperature": "mixed",
        "lens_mm": 85
      },
      "aspectos": {
        "sujeto": "parte de pesca en papel, bolígrafo y radio marina, manos sobre la mesa de cartas",
        "accion": "el bolígrafo marca la casilla, se levanta y el parte queda boca arriba con la firma",
        "escena": "interior del puente de mando, luz de amanecer por la ventana, radio encendida de fondo",
        "espacial": "insert; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "85mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "mesa de cartas con café frío y radio marina encendida de fondo",
        "micro_accion": "la punta del boli marca la casilla y se detiene",
        "motivo": "la luz fría del móvil sobre madera mojada"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Coast guard radio on a boat console, a red light blinking, a map with coordinates, a hand holding a microphone, 85mm lens, locked off, shallow depth of field, tungsten warm light, mixed tones. teal and rust palette, blue hour light, vertical framing.",
      "prompt_palabras": 42,
      "transition_out": "hard cut"
    }
  ]
}