Action: Expression
Laughing Eyes Closed
Uncontrollable laughter with eyes squeezed shut in pure joy. Best for: Comedy content, joyful moments, infectious laughter, happy scenes.
laughterjoyhappinessinfectious
- Pick your model's tab — the JSON re-shapes itself to that model's block order and limits.
- Click any green value to edit it in place — swap the subject, setting, or style for your own.
- Copy and paste the JSON as your prompt in the tool — links below.
{
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
}
} {
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
}
} {
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"production_notes": {
"prompt_level": "advanced",
"operator_checklist": "Confirm reference inputs, brand/logo handling, duration, audio support, and aspect ratio inside the target model before rendering."
}
} - Veo 3.1 follows structured prompts unusually well: lock camera, lighting and audio as separate JSON fields.
- Native audio: describe dialogue, ambient sound and music directly in the audio field.
{
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
}
} {
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
}
} {
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"production_notes": {
"prompt_level": "advanced",
"operator_checklist": "Confirm reference inputs, brand/logo handling, duration, audio support, and aspect ratio inside the target model before rendering."
}
} - Kling prompt guidance emphasizes Subject, Movement, Scene, Camera Language and Lighting.
- Write the action field as a shot note, not a keyword list.
{
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy"
} {
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy"
} {
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"production_notes": {
"prompt_level": "advanced",
"operator_checklist": "Confirm reference inputs, brand/logo handling, duration, audio support, and aspect ratio inside the target model before rendering."
}
} - Use a strict block order: CAMERA -> SUBJECT -> ACTION -> ENVIRONMENT -> LIGHTING -> STYLE.
- Keep the camera block to a shot type plus one movement; stacking moves degrades output.
{
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
}
} {
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
}
} {
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"production_notes": {
"prompt_level": "advanced",
"operator_checklist": "Confirm reference inputs, brand/logo handling, duration, audio support, and aspect ratio inside the target model before rendering."
}
} - Wan 2.2 is the latest version with genuinely open, downloadable weights.
- Open-weights Wan 2.2 has no native audio track in the base text/image-to-video pipeline.
{
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy"
} {
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy"
} {
"action": {
"description": "laughing uncontrollably",
"dialogue": "I can't stop laughing! This is too funny!"
},
"camera": {
"angle": "close-up on joyful expression",
"distance": "medium close shot",
"movement": "shaking with laughter"
},
"scene": "Person doubled over with laughter, eyes squeezed shut in pure joy",
"production_notes": {
"prompt_level": "advanced",
"operator_checklist": "Confirm reference inputs, brand/logo handling, duration, audio support, and aspect ratio inside the target model before rendering."
}
} - Runway recommends clear, direct language; text-to-video should describe both visual elements and motion.
- Image-to-video prompts should focus on describing the motion of the scene.
Run this prompt
Copy the JSON above, then paste it as your prompt in any of these tools. Veo 3.1 is free to try inside Gemini (daily limit applies).
What each block does
| Block | Purpose |
|---|---|
| scene | Where it happens: location, time of day, weather, mood of the space. |
| action | What visibly happens during the clip. Describe motion the camera can see, not internal states. |
| camera | Shot framing and movement. One movement per clip reads best on every current model. |