<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Promptclay]]></title><description><![CDATA[Promptclay]]></description><link>https://promptclay.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 10 Nov 2026 12:19:19 GMT</lastBuildDate><atom:link href="https://promptclay.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Treat image prompts like functions: slots, locks and defaults]]></title><description><![CDATA[A small template system for Gemini and ChatGPT image prompts, built from five real ones]]></description><link>https://promptclay.hashnode.dev/treat-image-prompts-like-functions-slots-locks-and-defaults</link><guid isPermaLink="true">https://promptclay.hashnode.dev/treat-image-prompts-like-functions-slots-locks-and-defaults</guid><category><![CDATA[generative ai]]></category><category><![CDATA[Design]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[AI]]></category><category><![CDATA[Prompt Engineering]]></category><dc:creator><![CDATA[Promptclay]]></dc:creator><pubDate>Mon, 02 Nov 2026 10:39:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae81824ee579ee2d5429e6b/95ef3d45-0fec-4330-be30-9068b8cacf84.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>If you write code, you already know how to write a reusable image prompt.</strong> It has parameters, a body that stays fixed and a few sensible defaults. Write it that way and you stop rewriting prompts from scratch every time.</p>
<h2>Three kinds of words</h2>
<p>Read any prompt and every phrase falls into one of three buckets.</p>
<ol>
<li><strong>Slots.</strong> Change per use: the subject, the product, the headline, a palette.</li>
<li><strong>Locks.</strong> Define the look. Usually the light, the medium, the camera and the layout. Change one and you have written a different prompt.</li>
<li><strong>Defaults.</strong> Could change, rarely need to: ratio, background, small finishing touches.</li>
</ol>
<p>The classic mistake when you templatise a prompt is turning locks into slots. Make the lighting a variable and you no longer have a style. You have a form.</p>
<p>The five prompts below come from Promptclay, where AI creators share prompts, remix them with credit, and organise them into collections. I build it, so weigh my opinion accordingly. These five were collected and credited by the site's library accounts. In each, the {curly brace} parts are the slots the page highlights.</p>
<h2>Prompt 1: the camera rig (JSON)</h2>
<p><strong>Prompt page:</strong> <a href="https://promptclay.com/prompts/nano-banana-pro-camera-control-template-and-example-prompt-222g3f">https://promptclay.com/prompts/nano-banana-pro-camera-control-template-and-example-prompt-222g3f</a> | Made with Nano Banana Pro in Gemini | Credited to @library.ui.design</p>
<pre><code class="language-json">{
  "scene": "AI engineer working at futuristic desk with multiple holographic displays",
  "camera": {
    "angle": "{camera_angle}",
    "focal_length": "{focal_length}",
    "depth_of_field": "{depth_of_field}"
  },
  "lighting": {
    "type": "{lighting_type}",
    "time_of_day": "{time_of_day}",
    "mood": "{mood}",
    "shadows": "deep but not harsh"
  },
  "color_grade": "{color_grade}"
}
</code></pre>
<img src="https://cdn.promptclay.com/media/v/01M69J4HNV5VQBHECEY0DMEAX2/w1200.webp" alt="Nano Banana Pro Camera Control Template and Example Prompt" style="display:block;margin:0 auto" />

<p><em>Result from the prompt page:</em> <a href="https://promptclay.com/prompts/nano-banana-pro-camera-control-template-and-example-prompt-222g3f"><em>Nano Banana Pro Camera Control Template and Example Prompt on Promptclay</em></a> <em>(credit @library.ui.design)</em></p>
<p>This is the function idea taken literally. The scene is fixed, and nearly everything photographic is a parameter. It is a camera rig you can drop any scene into.</p>
<p>One lighting value is locked ("deep but not harsh") while the rest are open. That is a default hiding among slots, and it keeps a "dramatic" input from going full noir.</p>
<p>The keys are grouped the way a photographer thinks: camera, lighting, grade. Gemini reads it as plain text, so the structure is mostly for the human editing it.</p>
<h2>Prompt 2: the one-liner</h2>
<p><strong>Prompt page:</strong> <a href="https://promptclay.com/prompts/candid-subway-smartphone-photography-a93w35">https://promptclay.com/prompts/candid-subway-smartphone-photography-a93w35</a> | Made with GPT Image 2 in ChatGPT | Credited to @library.lifestyle</p>
<pre><code class="language-plaintext">A stunning {subject} glancing down at her {device} while riding the {location}, shot in a candid street photography style.
</code></pre>
<img src="https://cdn.promptclay.com/media/v/01M6BNKWJ48FD82PFZMD2JWHPE/w1200.webp" alt="Candid Subway Smartphone Photography" style="display:block;margin:0 auto" />

<p><em>Result from the prompt page:</em> <a href="https://promptclay.com/prompts/candid-subway-smartphone-photography-a93w35"><em>Candid Subway Smartphone Photography on Promptclay</em></a> <em>(credit @library.lifestyle)</em></p>
<p>Three slots and one lock: "candid street photography style". That lock implies available light, a slightly off-centre frame and an unposed moment without spelling any of it out.</p>
<p>Watch for leaks. "Her" is hardcoded, so if {subject} becomes a man or a kid, edit the pronoun too.</p>
<h2>Prompt 3: text as a slot, layout as a lock</h2>
<p><strong>Prompt page:</strong> <a href="https://promptclay.com/prompts/magazine-cover-generation-prompt-8gd2t3">https://promptclay.com/prompts/magazine-cover-generation-prompt-8gd2t3</a> | Made with Nano Banana Pro in Gemini | Credited to @library.social</p>
<pre><code class="language-plaintext">A photo of a glossy magazine cover, the cover has the large bold words "{magazine_title}". The text is in a serif font, black on white, and fills the view. No other text.

In front of the text there is a dynamic portrait of a person in green and banana yellow colored high-end fashion.

Put the issue number and today's date in the corner along with a barcode and a price. The magazine is on a white shelf against a wall.
</code></pre>
<img src="https://cdn.promptclay.com/media/v/01M6BKZW298QJDJ2WX59ZHA0XJ/w1200.webp" alt="Magazine Cover Generation Prompt" style="display:block;margin:0 auto" />

<p><em>Result from the prompt page:</em> <a href="https://promptclay.com/prompts/magazine-cover-generation-prompt-8gd2t3"><em>Magazine Cover Generation Prompt on Promptclay</em></a> <em>(credit @library.social)</em></p>
<p>The only slot is the title, and it sits inside quotes. Quoted words are far more likely to come out spelled the way you typed them.</p>
<p>Everything else is a layout rule. Serif, black on white, fills the view. "No other text" is the most important line, because models love to invent cover lines.</p>
<h2>Prompt 4: a typed parameter</h2>
<p><strong>Prompt page:</strong> <a href="https://promptclay.com/prompts/neon-bug-text-logo-w7pces">https://promptclay.com/prompts/neon-bug-text-logo-w7pces</a> | Made with GPT Image 2 in ChatGPT | Credited to @library.lifestyle</p>
<pre><code class="language-plaintext">Create a square 1:1 digital graphic on a pure black background featuring the lowercase word {main_word} as the central subject. Use exactly 3 large rounded lowercase letters, thick and glossy, with a beveled 3D glass/plastic look: the left letter in electric cyan-blue, the middle letter blending deep blue to violet, and the right letter in hot magenta-pink. Add bright neon outlines, inner glow, reflective highlights, and subtle transparent depth inside each letter. Behind the word, place exactly 1 circular energy ring, incomplete and hand-drawn in feel, wrapping around the text with a blue arc on the left/top and a purple-magenta arc on the right/bottom. Add small glowing particles scattered around the ring and text, plus exactly 4 prominent starburst lens flares: one at the upper left of the first letter, one at the lower left edge, one near the top of the middle letter, and one bright pink flare on the upper right of the last letter. The overall style should be high-contrast cyber neon, luminous, crisp, centered, with no extra text, no border, and no watermark.
</code></pre>
<img src="https://cdn.promptclay.com/media/v/01M69J48W60ATMH96SHR6CQH24/w1200.webp" alt="Neon Bug Text Logo" style="display:block;margin:0 auto" />

<p><em>Result from the prompt page:</em> <a href="https://promptclay.com/prompts/neon-bug-text-logo-w7pces"><em>Neon Bug Text Logo on Promptclay</em></a> <em>(credit @library.lifestyle)</em></p>
<p>"Use exactly 3 large rounded lowercase letters" means {main_word} must be a three-letter word. The page example is "bug". Pass "hello" and the left, middle, right colour plan breaks.</p>
<p>That is a function with a typed argument. Write the type down next to any template you save.</p>
<h2>Prompt 5: a tight style lock</h2>
<p><strong>Prompt page:</strong> <a href="https://promptclay.com/prompts/modern-fashion-line-art-3s78sj">https://promptclay.com/prompts/modern-fashion-line-art-3s78sj</a> | Made with Nano Banana Pro in Gemini | Credited to @library.posters</p>
<pre><code class="language-plaintext">Modern fashion line art illustration, {subject}, single-weight black linework, flat color blocks in ochre and sage green, {trousers}, {blouse}, negative space composition, soft cream background, walking pose, 3:4
</code></pre>
<img src="https://cdn.promptclay.com/media/v/01M69J5842TN10F6HJ7CXQMJRX/w1200.webp" alt="Modern Fashion Line Art" style="display:block;margin:0 auto" />

<p><em>Result from the prompt page:</em> <a href="https://promptclay.com/prompts/modern-fashion-line-art-3s78sj"><em>Modern Fashion Line Art on Promptclay</em></a> <em>(credit @library.posters)</em></p>
<p>No full sentences, and it still holds because the style is locked hard: single-weight linework, two named colours, a cream background, negative space. All three slots are subject and wardrobe, so a whole lookbook series will look like one artist drew it.</p>
<h2>What changes between Gemini and ChatGPT</h2>
<ul>
<li><strong>Text in the image:</strong> both do better with quoted text. Promptclay's ChatGPT notes say quoted text is spelled as written.</li>
<li><strong>Reference photos:</strong> Gemini notes say upload first, then paste, and say what to keep.</li>
<li><strong>Ratio:</strong> both model pages say to ask for it in words.</li>
<li><strong>Edits:</strong> one change per message beats a rewritten prompt.</li>
</ul>
<h2>Save the signature, not just the body</h2>
<p>When you keep a prompt, keep four things with it:</p>
<ol>
<li>The prompt text.</li>
<li>Its slots and what each accepts ("main_word: three letters").</li>
<li>The model it was written for.</li>
<li>Where it came from, so you can credit it.</li>
</ol>
<p>Promptclay prompt pages carry all four: highlighted slots, the model, and a ready-made credit line. Remixes keep a link to the prompt they came from, a bit like a fork that can't drop its upstream.</p>
<h2>TL;DR</h2>
<ul>
<li>Slots change, locks define the look, defaults fill gaps.</li>
<li>Never turn a lock into a slot.</li>
<li>Document hidden constraints on slots.</li>
<li>Keep model and source with every saved prompt.</li>
</ul>
<h2>Fork one</h2>
<p>Pick one of the five, rename the slots for your own use case, and see whether the locks hold. If they do, post your version on <a href="https://promptclay.com">Promptclay</a> as a remix so the original stays credited, and file it in a collection you can come back to.</p>
<p>Prompts are better shared, the same way code is: with the source attached.</p>
]]></content:encoded></item></channel></rss>