
Cinematic photographer source proof
- The camera and face share crisp priority
- Low-key light still preserves warm skin detail
- The background stays minimal and cinematic
- Film grain supports the editorial finish
Wiggly / Format Lab /
Create a moody editorial portrait of a photographer with tactile film detail.
One exact concept in. 1 inspected image out.
Judge cinematic realism, camera anatomy, lighting, shallow focus, and film texture against the gathered source example.

Exact gathered prompt
Ultra-realistic cinematic portrait of a young man holding a vintage rangefinder camera close to his face, slightly tilted pose, intense calm expression, curly wet hair falling on forehead, wearing a black coat over a white inner shirt. Moody low-key lighting with soft shadows, warm skin tones, dark minimal background, shallow depth of field, 50mm lens look, sharp focus on face and camera, film grain texture, aesthetic editorial photography, high detail, 4K quality.
Source: @skaigenerated · model shown: GPT Image 2
Prepare -> Validate -> Generate -> Inspect
A run pinned to the exact gathered prompt and chosen model route.
Prompt, output contract, and provider route checked locally.
One portrait from the selected Replicate model.
Explicit approval required
Automatic file checks plus an actual visual review.
Explicit approval required
SKILL.md--- name: wiggly-cinematic-photographer description: Create one moody editorial photographer portrait from the exact gathered SKAI prompt. --- # Cinematic Photographer Use the packaged runner and prompt. Do not call Replicate separately or create another render path. Ask one short question first: > Should I use the exact packaged photographer concept, or do you want to change the subject while keeping the cinematic recipe? Use Nano Banana 2 by default, Nano Banana 2 Lite for economy, or GPT Image 2 when the user asks for the source model. The exact source prompt is the validated default. ```bash npm run format:skai-image -- check --format=cinematic-photographer npm run format:skai-image -- init --format=cinematic-photographer --run=<id> npm run format:skai-image -- validate --format=cinematic-photographer --run=<id> npm run format:skai-image -- estimate --format=cinematic-photographer --run=<id> npm run format:skai-image -- render --format=cinematic-photographer --run=<id> --approve-paid npm run format:skai-image -- inspect --format=cinematic-photographer --run=<id> npm run format:skai-image -- inspect --format=cinematic-photographer --run=<id> --visual-pass --review-notes="<specific observations>" npm run format:skai-image -- finalize --format=cinematic-photographer --run=<id> --approve-final ``` Hard rules: - Keep the packaged prompt exact unless the user explicitly asks to change the subject. - Validate before spending. - Never generate without `--approve-paid`. - Persist and resume the same prediction ID. - Never exceed three attempts. - View the actual output and record notes before `--approve-final`. - Never print, store, or commit `REPLICATE_API_TOKEN`.
requirements.json{
"runtime": {
"node": ">=22",
"commands": [
"npm"
]
},
"providers": [
{
"name": "Replicate",
"models": [
"google/nano-banana-2-lite",
"google/nano-banana-2",
"openai/gpt-image-2"
]
}
],
"environment": [
{
"name": "REPLICATE_API_TOKEN",
"secret": true,
"requiredFor": [
"render",
"resume"
]
}
],
"notes": [
"All smoke and validation commands are local.",
"No proof generation was purchased for this package.",
"The gathered source example is the visual proof.",
"Paid generation requires explicit approval and is capped at three attempts."
]
}
inputs.json{
"required": [],
"question": "Should I use the exact packaged photographer concept, or do you want to change the subject while keeping the cinematic recipe?",
"defaults": {
"concept": "exact packaged prompt",
"model": "nano-banana-2",
"aspectRatio": "4:5",
"outputCount": 1
},
"modelRoutes": {
"economy": "google/nano-banana-2-lite",
"default": "google/nano-banana-2",
"sourceModel": "openai/gpt-image-2"
}
}
pipeline.json{
"progress": "Prepare -> Validate -> Generate -> Inspect",
"attemptCap": 3,
"stages": [
{
"id": "prepare",
"output": "A run pinned to the exact gathered prompt and chosen model route.",
"paid": false,
"approvalRequired": false
},
{
"id": "validate",
"output": "Prompt, output contract, and provider route checked locally.",
"paid": false,
"approvalRequired": false
},
{
"id": "generate",
"output": "One portrait from the selected Replicate model.",
"paid": true,
"approvalRequired": true
},
{
"id": "inspect",
"output": "Automatic file checks plus an actual visual review.",
"paid": false,
"approvalRequired": true
}
]
}
prompts/transform.txtUltra-realistic cinematic portrait of a young man holding a vintage rangefinder camera close to his face, slightly tilted pose, intense calm expression, curly wet hair falling on forehead, wearing a black coat over a white inner shirt. Moody low-key lighting with soft shadows, warm skin tones, dark minimal background, shallow depth of field, 50mm lens look, sharp focus on face and camera, film grain texture, aesthetic editorial photography, high detail, 4K quality.
quality.json{
"automatic": [
"Exactly one decodable image",
"At least 640x800",
"At least 50 KB",
"Aspect ratio matches the chosen model route",
"SHA-256 provenance is recorded"
],
"manualReview": [
"Face, eyes, fingers, and camera geometry are coherent",
"The portrait reads as a real editorial photograph",
"Lighting is moody and low-key without losing the face",
"The subject and camera stay sharply prioritized",
"Film grain adds texture without destroying detail"
],
"finalizationGate": [
"Automatic checks pass",
"The actual image is viewed",
"Specific visual notes are recorded",
"--approve-final is present"
]
}