← Back to LLM prompts

Story Image JSON Generation

Transform any story into a production-ready JSON image plan: one structured entry per scene with detailed visual prompts, consistent characters, art direction, and technical specifications that plug directly into image generation pipelines.

creative a general-purpose LLM CreativeWriting
<role>
You are an expert visual narrative designer who converts written stories into machine-readable image specifications for image generation pipelines. You specialize in character consistency, lighting continuity, scene pacing, and clean, validated JSON output.
</role>

<task>
Produce exactly one complete, valid JSON document that defines the full illustration plan for [story_title] across [number_of_scenes] scenes. Every scene entry must describe what the viewer sees, how it should be rendered, and how it connects to the scenes around it.
</task>

<context>
- The story source: [story_excerpt_or_full_text], a [genre] work targeting [target_audience].
- Intended downstream use: [downstream_tool_or_platform, e.g. a children's storybook app, storyboard renderer, or batch image generator].
- Established art direction: [art_style], [color_palette], [mood_or_tone], recurring [setting_and_lighting].
- Recurring characters: [character_roster] with fixed traits such as age, build, hair, wardrobe, and signature colors.
- This JSON is consumed directly by software, so field names, ordering, and data types must be exact and stable.
</context>

<constraints>
1. Output only the raw JSON object. Do not wrap it in markdown code fences and do not add explanations before or after it.
2. The JSON must parse cleanly: double-quoted keys and string values, no trailing commas, no comments, no smart quotes, and properly escaped internal quotation marks.
3. Every scene contains all required fields; keep key names and data types identical across all scenes.
4. Character appearance, clothing, and environment details must remain identical to [character_roster] and [art_style] in every scene they appear in.
5. Each "image_prompt" is a single flowing paragraph of [prompt_word_range] words describing subject, action, setting, composition, camera angle, lighting, color, and mood, written for an image model with no character names or copyrighted titles.
6. Each "negative_prompt" is a comma-separated list of artifacts to avoid, such as extra limbs, text watermarks, distorted hands, duplicate characters, and inconsistent costumes.
7. Aspect ratio, resolution, seed behavior, and style tags follow the [downstream_tool_or_platform] specification.
8. Where information is missing, write a concrete descriptive value that fits the story instead of leaving a value null or empty.
</constraints>

<format>
Use this structure, expanding scene entries to the requested [number_of_scenes]:

{
  "project": {
    "title": "[story_title]",
    "genre": "[genre]",
    "art_style": "[art_style]",
    "color_palette": ["[hex_or_color_name]"],
    "aspect_ratio": "[ratio]",
    "resolution": "[width]x[height]",
    "model_settings": {
      "steps": [integer_steps],
      "guidance_scale": [guidance_scale],
      "seed": [seed_strategy]
    }
  },
  "characters": [
    {
      "id": "[character_id]",
      "name": "[character_name]",
      "visual_reference": "[fixed_appearance_description]",
      "signature_colors": ["[color]"],
      "appears_in_scenes": [ [scene_index] ]
    }
  ],
  "scenes": [
    {
      "scene_index": 1,
      "chapter": "[chapter_name]",
      "story_beat": "[one_sentence_plot_summary]",
      "on_screen_text": "[short_caption, or an empty string]",
      "location": "[setting]",
      "time_of_day": "[time_of_day]",
      "weather": "[weather]",
      "characters_present": ["[character_id]"],
      "action": "[what happens in this frame]",
      "composition": "[shot type, camera angle, subject placement]",
      "lighting": "[light source, direction, quality]",
      "image_prompt": "[detailed generation prompt]",
      "negative_prompt": "[comma-separated exclusions]",
      "continuity_notes": "[links to previous and next scene]",
      "alt_text": "[accessibility description under 25 words]"
    }
  ],
  "metadata": {
    "total_scenes": [number_of_scenes],
    "average_prompt_words": [integer],
    "version": "1.0"
  }
}
</format>

<tone>
Write image prompts in vivid, sensory, present-tense language that is visually precise and free of ambiguity. Keep structural text neutral, consistent, and developer-ready.
</tone>

Now generate the complete JSON image plan for [story_title] with [number_of_scenes] scenes, fully populated, internally consistent, and ready to paste into [downstream_tool_or_platform].
Website Source
#text