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"
}
} - Veo 3.1 follows structured prompts unusually well — lock camera, lighting and audio as separate JSON fields and it respects each one.
- 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"
}
} - Kling 3.0 reasons about the scene like a director — write the action field as a shot note, not a keyword list.
- Multi-shot is the signature feature: split the action into "Shot 1: … Shot 2: …" inside the action field for cuts within one generation.
{
"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"
} - Seedance responds best to a strict block order: CAMERA → SUBJECT → ACTION → ENVIRONMENT → LIGHTING → STYLE. The JSON below is ordered to match.
- Keep the camera block to a shot type plus one movement — stacking movements 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"
}
} - Wan 2.2 is the latest version with genuinely open, downloadable weights. "Wan 2.5/2.6/2.7" are hosted API-only versions on commercial platforms.
- Open-weights Wan 2.2 has no audio track — drop the audio field or move sound design to post.
{
"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"
} - Runway exposes camera controls in the UI — use the camera block here as your settings checklist rather than prompt text.
- Gen-4.5 excels with reference images: the subject field doubles as your reference-tagging description.
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. |