Free Tool

JSON Prompt Generator

A free JSON prompt generator for Veo, Sora, and Kling. Build a validated JSON prompt object from a form, then lint pasted JSON against the bundled schema — all in your browser.

Runs in your browser — nothing uploaded

Veo reads this object well and generates synced audio.

{
  "camera": "slow push-in",
  "lens": "portrait 85mm lens",
  "lighting": "golden hour light",
  "grade": "teal and orange grade",
  "mood": "cinematic",
  "duration": 8,
  "aspectRatio": "16:9"
}

Add the required fields: subject, action.

Honest labeling: this is a deterministic object builder and validator from a fixed bundled schema — not a live model. It writes the JSON; it does not render the video. Paste the output into Playcut or any Veo, Sora, or Kling surface to generate. Your draft saves to your own browser only.

Bundled JSON prompt schema

Schema version 2026-05
FieldTypeRequiredNotes
subjectstringyesWho or what the camera is on. Concrete nouns beat abstractions.
actionstringyesWhat the subject is doing, with a clear arc the model can render.
environmentstringnoWhere the action happens — time, place, grounding details.
cameraenumnoThe camera move (e.g. slow push-in, tracking shot).
lensenumnoFocal length and depth-of-field cue.
lightingenumnoLighting setup that drives shadow and direction.
gradeenumnoColor grade / post-production look.
moodenumnoOverall mood that colors pacing and grade.
audiostringnoSpoken line, ambient bed, or SFX (Veo and Sora generate audio).
durationnumber (1–60)yesClip length in seconds (1–60).
aspectRatioenumyesOutput frame ratio.

Both Build and Lint use this exact schema. Data as of .

What this JSON prompt generator does

This JSON prompt generator turns a few fields into a structured JSON prompt object and validates JSON you paste in. In Build mode you fill subject, action, camera, lens, lighting, grade, audio, duration, and aspect ratio. The tool serializes them into clean, copyable JSON.

In Lint mode you paste any JSON prompt and the tool checks it against the same bundled schema. It is a deterministic object builder and validator — not a live model and not a connection to any generator. Everything runs in your browser, and your draft saves to your own device only.

Why JSON prompting beats one long sentence

A plain-text prompt forces the model to infer structure. Where does the camera note end and the lighting begin? JSON prompting removes that guesswork by giving every element its own named key, so the subject is the subject and the grade is the grade.

Named keys make a prompt easy to template and version. You can change one field — say the action — and keep the rest of the look locked, shot after shot. That is the same discipline behind a reusable shot list, but expressed in a format a pipeline can read.

The fields this schema uses

The bundled schema covers nine prompt elements plus two delivery settings. Subject and action are the spine of the shot. Environment, camera, lens, lighting, grade, and mood shape how it looks. Audio carries a spoken line or ambient bed for models that generate sound.

Duration and aspect ratio close the object. Duration is a number from 1 to 60 seconds; aspect ratio is an enum so the frame stays valid for where the clip will run. Subject, action, duration, and aspect ratio are the four required fields — everything else is optional detail.

How the linter validates pasted JSON

Paste a JSON prompt and the linter runs four passes. First it parses the text, catching a stray comma or an unclosed brace and reporting the exact syntax error. A prompt that will not parse will not render, so this catch happens before anything else.

Next it checks required fields, then field types and ranges, then unknown keys. Missing a required field or putting a string where a number belongs is an error. An out-of-schema key is a warning, because most generators ignore extra fields rather than rejecting the whole object.

The result panel shows a clear pass-or-fail badge with error and warning counts, then lists every issue with its field name and a plain explanation. When the JSON parses, you can also copy a re-formatted version with consistent indentation to keep your prompts tidy.

One object, three models: Veo, Sora, and Kling

The same JSON shape works across Veo, Sora 2, and Kling, which is the point of a shared schema. Subject, action, camera, lens, lighting, grade, mood, duration, and aspect ratio map cleanly to all three. You move a prompt between models without rewriting it from scratch.

The one model-specific field is audio. Veo and Sora 2 generate sound, so the audio key drives ambient beds and lip-synced lines. Kling renders silent video and simply ignores it. Picking the model that fits the shot is its own skill — see how Playcut routes across them on the Playcut AI models page.

Building the same scene in more than one model is the fastest way to learn each model's strengths. The Sora 2 prompt builder and the Veo prompt builder write prose prompts for those models, while this tool gives you the machine-readable JSON version of the same idea.

Cost reality: rendering a JSON prompt

Writing and validating the JSON here is free. The render costs credits wherever you run it, so a clean, validated object is the cheapest way to cut re-rolls. Every off-brief take is a job you pay for and discard, and a malformed prompt is the most avoidable cause.

Playcut plans start at $9/mo (Hobby, 500 credits) and run through Pro at $29/mo (2,000 credits), Studio at $79/mo (6,000 credits, 4 seats), and Agency at $149/seat/mo (10,000 credits per seat). Credit packs that never expire add 600 credits for $9 up to 5,000 for $65. Pricing is current as of May 2026.

Frequently asked questions

What is a JSON prompt generator and does it make the video?

A JSON prompt generator turns a few fields into a structured JSON prompt object — keys like subject, action, camera, lens, lighting, grade, audio, duration, and aspectRatio — that you paste into a model such as Veo, Sora, or Kling. This one builds and validates the JSON; it does not generate the video and does not call any model. It is a deterministic object builder and linter from a fixed schema, not a live language model.

Why use JSON prompting instead of a plain text prompt?

JSON prompting makes each part addressable. Instead of one sentence where the model infers where the camera note ends, every element sits under a named key. That makes prompts easy to template, diff, version, and reuse — change only the action key and the look stays locked. It is also machine-readable, so you can store, batch, or pipeline prompts without re-parsing prose.

What does the JSON linter check?

Four things. It flags syntax errors so you find a missing comma or brace, missing required fields (subject, action, duration, aspectRatio), unknown keys that are not in the schema, and out-of-range or wrong-type values such as a duration above 60. Errors block validity; unknown keys are warnings because most generators ignore extra fields rather than failing.

Will Veo, Sora, and Kling all accept the same JSON object?

They accept the same shape, with one caveat. Subject, action, environment, camera, lens, lighting, grade, mood, duration, and aspect ratio map across all three. The audio field only matters for models that generate sound — Sora 2 and Veo use it, while Kling ignores it. The builder keeps one shared shape so you can move a prompt between models.

Can I save my JSON prompts?

Your current build draft saves automatically to your own browser's local storage, so it survives a refresh, and nothing is uploaded. For shared, brand-locked prompt presets and team folders, the Playcut studio keeps a prompt library tied to your workspace and brand kits — the upgrade path once a JSON prompt becomes part of a repeatable workflow.

Run your JSON prompt across the best model

Playcut routes your prompt to the right video model and manages credits for you. See the lineup on the Playcut AI models page or generate this scene now in the studio.