Waiting for Photos — a '90s Throwback

Veo 3RetroCreativeVerticalStructured PromptHandheld CameraFilm Grain8s
"Waiting for Photos": a 20-second vertical nostalgia piece set in the film-photo era of waiting for prints, written as JSON. An archaeology of collective memory from the last night before digital.

PROMPT · Veo 3 Prompt

Create with AI
{ "version": "3.0", "meta": { "title": "Waiting for Photos - 90s/2000s Throwback", "aspect_ratio": "9:16", "duration": "00:20", "fps": 24, "style": "cinematic, nostalgic, soft film grain, slight VHS glow", "mood": "humorous, warm", "tags": ["90s", "2000s", "film camera", "photo lab", "nostalgia"] }, "look": { "colorgrading": "warm highlights, soft contrast, mild grain", "lighting": "indoor tungsten for 90s scenes; neutral daylight for modern scene", "wardrobe": "casual late-90s: oversized hoodie, denim, scrunchie", "props": [ "disposable film camera", "photo lab envelope", "stack of glossy prints", "modern smartphone" ] }, "audio": { "music": { "track": "nostalgic lo-fi pop instrumental", "duck_for_dialogue": true, "intensity_curve": [ { "time": 0, "value": 0.3 }, { "time": 3, "value": 0.6 }, { "time": 10, "value": 0.5 }, { "time": 18, "value": 0.2 } ] }, "sfx": [ { "at": "00:02", "sound": "camera shutter click (film)" }, { "at": "00:06", "sound": "shop door chime" }, { "at": "00:08", "sound": "calendar page flip + ticking clock" }, { "at": "00:13", "sound": "paper shuffle of photo prints" }, { "at": "00:17", "sound": "smartphone rapid shutter burst" } ] }, "shots": [ { "id": 1, "start": "00:00", "end": "00:03", "transition_in": "cut", "transition_out": "match_cut", "camera": "close-up, handheld; rack focus from person’s smile to disposable camera; slight vignette", "action": "late 90s party/kids’ birthday; someone clicks a disposable camera", "on_screen_text": { "pos": "top", "text": "90s/2000s" }, "voiceover": { "lang": "en", "text": "Back then, this is how we took photos." } }, { "id": 2, "start": "00:03", "end": "00:06", "transition_in": "match_cut", "transition_out": "cut", "camera": "medium wide, exterior; slow push-in on local photo shop with 'Photo Lab' sign", "action": "person places film roll in envelope and drops it off", "on_screen_text": { "pos": "bottom_small", "text": "Drop off film → wait" }, "voiceover": { "lang": "en", "text": "Then you brought the film to the shop…" } }, { "id": 3, "start": "00:06", "end": "00:10", "transition_in": "crossfade", "transition_out": "whip_pan", "camera": "montage: calendar pages flying by; ticking clock; close-ups of '1 WEEK LATER'", "action": "time passes in an exaggerated way", "on_screen_text": { "pos": "center_large", "text": "…sometimes a whole week 😅" }, "voiceover": { "lang": "en", "text": "…and sometimes waited an entire week." } }, { "id": 4, "start": "00:10", "end": "00:14", "transition_in": "whip_pan", "transition_out": "cut", "camera": "POV shot; hands opening photo lab envelope; flipping through glossy prints", "action": "most photos are blurry or underexposed", "on_screen_text": { "pos": "bottom_small", "text": "Result: 10 photos → 9 blurry" }, "voiceover": { "lang": "en", "text": "You got ten prints… and nine were blurry." } }, { "id": 5, "start": "00:14", "end": "00:17", "transition_in": "cut", "transition_out": "split_screen", "camera": "close-up; one photo is just barely sharp—person cheers", "action": "exaggerated joy over the ‘almost decent’ shot", "on_screen_text": { "pos": "center_large", "text": "One almost-sharp photo: YES!" }, "voiceover": { "lang": "en", "text": "And one that was *almost* sharp. Success!" } }, { "id": 6, "start": "00:17", "end": "00:20", "transition_in": "split_screen", "transition_out": "fade_to_black", "camera": "split-screen: left = stack of 90s prints; right = modern smartphone taking 20 shots + instant gallery", "action": "right: live preview, delete, retake, AI-enhance icons (generic, no brands)", "on_screen_text": { "pos": "top", "text": "Then vs. Now" }, "cta": { "pos": "bottom", "text": "What other 90s/2000s trend would blow kids’ minds today?" }, "voiceover": { "lang": "en", "text": "Then: wait and hope. Now: shoot, choose, post." } } ], "safety": { "note": "Use only generic store and UI elements. Avoid real brands or identifiable people." } }

✍️ Editor’s Notes

This one operates at director's-shot-list granularity — every entry in the shots array carries the full five-piece set: start/end/camera/action/on_screen_text/voiceover, essentially feeding the model a director's storyboard directly, right down to labeling each transition type (match_cut/whip_pan/crossfade) individually. That level of granularity is a hard requirement for a 20-second, multi-shot narrative piece — otherwise the model tends to bleed visual cues from different eras into the same shot. The safety field specifically calls out avoiding real brands and real people, which is preemptively clearing landmines for platform moderation.

Create with AI

Related Works

׋›
↑