how to make AI videos so convincing people will question if they're real, using Sora 2 and JSON prompting:
you're writing your Sora 2 prompts like you're writing an essay... "create a cinematic video of a sunset over mountains with dramatic lighting and smooth camera movement" it (barely) works... but you're leaving so much quality and realism on the table here's the process that
before we get into the real stuff... if you're serious about learning ai, here are some very good resources: more free prompts + content in my telegram (link in bio) weekly newsletter (no ads/spam): http://aifirstbrain.com now back to the thread
JSON (JavaScript Object Notation) is just structured data... and before you roll your eyes thinking this sounds technical, stay with me because this is simpler than you think instead of writing paragraphs hoping the AI interprets correctly, you're organizing instructions the way
same idea as that essay prompt... but now every parameter has its own label > no ambiguity about what "dramatic" modifies > no confusion about relationships between elements > just clean, organized instructions
why this creates photorealistic results: Sora 2 doesn't have to waste processing power parsing grammar and inferring meaning... it reads structured key-value pairs directly which means more computing power goes to actually GENERATING the video instead of understanding your
and here's something nobody talks about... token efficiency when you write "create a cinematic video with dramatic lighting, smooth camera movement, and a sunset over mountains" the AI processes every single word, punctuation mark, grammatical structure JSON skips 90% of that
but Sora 2 is fundamentally different from image generators... (this is where most people's mental model breaks) it doesn't generate a pretty picture and add motion... it actually understands how scenes EVOLVE over time physics, momentum, cause and effect which means you need
here's what I mean by temporal prompting: { "duration": "10s", "sequence": [ {"time": "0-3s", "action": "camera zooms in on subject"}, {"time": "3-7s", "action": "subject turns head slowly"}, {"time": "7-10s", "action": "fade to black"} ] } you're literally
this shift from spatial to temporal thinking is HUGE images = "what's in the frame" videos = "what happens WHEN in the frame" once you internalize this... your video quality jumps dramatically because you're finally speaking the model's language instead of fighting against how
let me break down the 5 components every photorealistic Sora 2 prompt needs: 1. scene description (spatial) 2. camera parameters (perspective) 3. motion/action (temporal) 4. lighting/atmosphere (mood) 5. temporal structure (pacing) miss any of these and you get that "AI video"
here's a scene description done right: { "subject": "elderly craftsman in workshop", "environment": "cluttered wooden workbench with tools", "objects": ["vintage hand saw", "wood shavings", "half-finished chair"], "composition": "medium shot, rule of thirds" } specific
amera parameters (this is where cinematography knowledge pays off): { "camera": { "angle": "eye level, slight dutch tilt", "movement": "slow dolly left to right", "lens": "35mm equivalent, shallow depth of field", "focus": "subject sharp, background soft bokeh"
motion and action: { "motion": { "primary": "hands carefully sanding wood grain", "secondary": "dust particles floating through light beam", "tertiary": "workshop fan oscillating in background", "pace": "calm, meditative" } } layers of motion at different
lighting creates emotion (and believability): { "lighting": { "source": "single window, late afternoon", "direction": "45 degrees camera left", "quality": "soft directional with visible god rays", "color_temp": "warm 3200K", "mood": "nostalgic,
temporal structure ties everything together: { "timeline": { "0-2s": "establish wide shot of workshop", "2-6s": "push in to medium shot, focus on hands working", "6-8s": "rack focus to craftsman's concentrated face", "8-10s": "pull back revealing finished
now compare JSON to natural language for the same prompt... "create a video of an elderly craftsman in a cluttered workshop with vintage tools and wood shavings, late afternoon window light from the left creating soft god rays, camera slowly dollying left to right at eye level
JSON keeps complex prompts organized: { "scene": {...}, "camera": {...}, "motion": {...}, "lighting": {...}, "timeline": {...} } everything nested logically nothing ambiguous infinitely more maintainable and here's the real power move... you can save these as
template-based workflow: { "scene": { "subject": "{{SUBJECT}}", "environment": "{{ENVIRONMENT}}", "objects": ["{{OBJ1}}", "{{OBJ2}}", "{{OBJ3}}"] }, "camera": {{CAMERA_PRESET_CINEMATIC}}, "lighting": {{LIGHTING_PRESET_NATURAL}} } systematic video generation
Sora 2-specific advantages you need to leverage: - better physics understanding (fabric, water, smoke all behave realistically) - superior multi-subject consistency (characters maintain visual identity across cuts) - accurate reflections and shadows (environmental lighting
the physics object for realistic motion: { "physics": { "gravity": "earth standard", "wind": "gentle 5mph breeze from left", "materials": { "fabric": "silk, flowing naturally", "liquid": "water with realistic surface tension", "smoke": "cigarette
multi-subject consistency: { "subjects": [ { "id": "character_01", "appearance": "woman, 30s, auburn hair in bun, green sweater", "maintain_across_shots": true }, { "id": "character_02", "appearance": "man, 40s, salt-pepper beard,
multi-shot sequences with transitions: { "sequence": [ { "shot": "01", "setup": {...}, "duration": "5s" }, { "transition": "match cut on movement", "shot": "02", "setup": {...}, "duration": "4s" }, {
token efficiency matters MORE as videos get longer... a 30-second sequence in natural language might consume 500+ tokens just describing the setup same sequence in JSON? 200 tokens that's 300+ tokens you can spend on MORE creative direction, MORE detail, MORE control
5 practical rules for JSON video prompts: 1. start minimal, layer complexity systematically 2. test one new parameter at a time to learn its impact 3. build a template library of proven structures 4. use descriptive key names (never abbreviate for "efficiency") 5. nest related
mistakes that make videos look AI-generated: - over-describing static background elements (Sora fills these naturally) - under-describing motion and timing (this is where precision matters) - ignoring camera movement (static = fake) - vague lighting (unmotivated light = uncanny
if natural language prompting is your comfort zone... JSON feels clunky at first like switching from mouse to keyboard shortcuts slower initially, then 10x faster once the pattern clicks but here's the thing... you're not abandoning creativity for structure, you're channeling
the AI-First Brain approach to mastering this: don't just copy templates... understand the LOGIC behind each parameter scene -> spatial information (what + where) camera -> POV and framing (how we see it) motion -> temporal dynamics (what changes + when) lighting -> mood and
because when you understand the underlying structure... something shifts you stop thinking "what prompt do I need for this video?" you start thinking "what intelligence framework creates this CLASS of videos?" you're engineering systematic video generation instead of hoping
so here's your action plan: 1. take your best natural language Sora prompt 2. convert it to JSON using the structures I shared 3. compare the outputs side by side 4. notice the difference in consistency, realism, and control 5. start building your template library
that's it for this thread... follow @EXM7777 more free prompts + content in my telegram (link in bio) weekly newsletter (no ads/spam): http://aifirstbrain.com
@EXM7777 do you think this json syntax is needed for the sora 2 pro model too?
@david_attisaas it's never "needed", it's just a better format (i'm actually using it as a system, as explained in the thread) for anything ai/video gen
@EXM7777 we’re so fucking back
@tyler_agg like we never left
@EXM7777 This is fire
@vasumanmoza my guy

