home/roleplay/system-prompt-64

SYSTEM PROMPT

GPTClaudeGemini··1,013 copies·updated 2026-07-14
system-prompt-64.prompt
# The System Prompt — Design Rationale

The system prompt lives at `src/realism_prompt/system_prompt.py`. This doc
explains *why* each section exists and which failure modes it defends
against.

## Section: "What photo-realistic means here"

I2V diffusion models trained on captioned video clips learn that words like
"cinematic", "stunning", "8k", "masterpiece" co-occur with low-quality
upscaled stock footage and AI-tagged Stable Diffusion samples. Banning
these words and *replacing* them with concrete optical and lighting
vocabulary (focal length, T-stop, color temperature, dolly speed) is the
single biggest realism unlock. The prompt enumerates the bans explicitly
so the model doesn't sneak them back in.

## Section: "Length scaling rules"

Most LLMs default to a familiar shape — three short paragraphs — regardless
of input length. This destroys long briefs. The rules force:

- Short brief (≤ 25 words): expand modestly (80–140 words).
- Medium brief (≤ 100 words): expand to a single dense scene (180–320).
- Long brief (≤ 400 words): roughly 1.0–1.5x growth.
- Very long brief (> 400 words): preserve length within 0.9–1.4x, and
  *preserve every named subject, location, action, prop, and emotional beat*.

The matching code lives in `realism_prompt.scaling.expected_word_range` so
tests can assert the model actually obeyed.

## Section: "Presets provided by the caller"

The caller's choice of lens / lighting / grain / tone / motion is injected
into the user message as labeled lines. The prompt instructs the model to
honor preset fragments **literally** — paste them in, do not paraphrase.
This is what makes preset choice deterministic enough for series work
(every shot of a music video looking like the same DP shot it).

## Section: "Output format (strict)"

We force `response_format: {"type": "json_object"}` on the API call AND
restate the JSON schema in the system prompt. Redundant, but combined
they eliminate fence-wrapped output, leading prose ("Here is the JSON:"),
and trailing commentary — all of which I've observed in the wild.

The engine has a `_salvage_json` recovery for the rare case the model
still wraps the JSON in ` ``` ` fences. If even that fails, the engine
falls back to the local synthesiser rather than returning garbage.

## Section: "Negative prompt guidance"

The default negative is in `realism_prompt.negative._BASE_NEGATIVES`. The
prompt instructs the model to *extend* this with scene-specific negatives
(e.g. for a night scene: "daylight, blue sky, sun"), not replace it.

## Section: "Hard rules"

- Strict JSON, no leading/trailing text.
- Do not invent characters.
- Refuse rather than censor illegal content.
- Always third-person, descriptive, present-tense.

The present-tense rule matters for I2V: many models bias toward
photographing a *moment* when given present-tense prompts, and toward
montage / summary when given past-tense.

fill the variables

This prompt has 1 variable. Pro fills them into a ready-to-paste prompt for you — no manual find-and-replace.

{"type": "json_object"}
Unlock with Pro →

when to use it

Community prompt sourced from the open-source GitHub repo SiddharthFulia/realism-prompt-engine (MIT). A "SYSTEM PROMPT" style prompt — adapt the placeholders and specifics to your task. Imported as-is and not independently retested here, so check the output before relying on it.

tags

roleplaycommunitygeneral

source

SiddharthFulia/realism-prompt-engine · MIT