I Built a Structured Prompt Composer for AI Video—And I'm Giving It Away for Free
AI Design7 min read

I Built a Structured Prompt Composer for AI Video—And I'm Giving It Away for Free

A new tool to help you write better prompts for Veo, Runway, Pika and other AI video generators. It supports JSON, YAML, XML, and Markdown, and it's open source.

"Wait, JSON helps make better AI videos?"

Lately, JSON seems to be having a bit of a moment, especially in the AI video space. People are treating it like it’s some kind of cheat code to unlock next-level results from generators like Google's Veo 3. I'm still skeptical that format alone is the magic ingredient here. But it did get me thinking.

What actually does seem to matter? Structure. Intention. Clarity. In short: structured prompts work.

So I built a tool.

Introducing: Structured Prompt Composer

The Structured Prompt Composer is a browser-based tool that helps you write highly structured, flexible prompts for AI video tools. It’s dead simple to use, and it generates output in four formats:

  • JSON (default)
  • YAML
  • XML
  • Markdown

Why these formats? Because they force clarity. And because a lot of AI tools, especially experimental ones like Veo 3, seem to perform better when you give them more structured, declarative input.

What Makes This Tool Different

This isn’t just a text formatter. It also teaches you while you use it. The tool includes a built-in library of:

  • Lighting types
  • Camera movements
  • Scene types
  • Lens types
  • Cinematographic styles

Each one comes with a short, clear explanation. That means you don’t have to Google “what’s a Snorricam shot” or “what’s the difference between chiaroscuro and noir lighting.” It’s all there.

And the real power? You can mix and match these elements while building your prompt and see the final result instantly in the format of your choice.

Example Output

Here’s a sample JSON export from the tool:

{
  "shot": {
    "composition": "medium-shot",
    "camera_motion": "locked-off",
    "lens": "standard-lens-50mm",
    "depth_of_field": "deep",
    "film_grain": "light grain"
  },
  "subject": {
    "entities": [
      {
        "role": "main character",
        "screen_side": "center",
        "appearance": "",
        "movement": "natural standing pose"
      }
    ]
  },
  "scene": {
    "location": "A well-lit room",
    "time_of_day": "controlled lighting",
    "environment_details": "The room is initally empty but then fills with everything you'd expect in a hoarder house."
  },
  "visual_details": {
    "primary_action": "A box in a well-lit room empty opens up and fills the entire room with junk, like a hoarders room."
  },
  "cinematography": {
    "lighting": "key-light",
    "style": "naturalistic-realism",
    "tone": "uplifting"
  },
  "audio": {
    "ambience": "room tone",
    "sound_design": [
      "box opening",
      "items landing on the floor"
    ],
    "music": "none"
  },
  "dialogue": {
    "spoken_lines": [],
    "subtitles": false
  },
  "color_palette": {
    "description": "natural colors"
  },
  "visual_rules": {
    "prohibited_elements": [
      "camera shake",
      "on-screen text",
      "brand logos",
      "minors or nudity"
    ]
  }
}

This same schema can be output as:

  • YAML
  • XML
  • Markdown

Just pick what you need and copy it over to your favorite AI video generator.

Why I’m Open Sourcing It

Honestly? Because I wanted to give something back. The AI community has helped me level up massively as a designer and creator over the last few years. This tool started as a weekend experiment and quickly turned into something I use every day. So now, I’m giving it away.

You can:

  • Use the live version
  • Fork the repo
  • Add to it
  • Embed it in your own tooling
  • Or just learn from it

Where to Try It

Who This Is For

  • Prompt engineers who want more precision
  • Video creators using tools like Veo, Runway, Pika, or Luma
  • Designers experimenting with AI
  • Developers building creative apps
  • Anyone tired of guessing what to type into a prompt field

Final Thought

This isn't about JSON being magic. It's about putting more intention into how we talk to machines. If this tool helps even a few people build better stuff, it's done its job.

Go play with it. Break it. Remix it. And if you find it useful, let me know.

— Marco

M

Marco van Hylckama Vlieg

AI & Design Expert, Creator of innovative AI-powered solutions and educational content.

Back to Articles
Share this post: