@nodaro/prompts 1.33.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -23155,6 +23155,16 @@ function applyTemplate(template, vars) {
23155
23155
  template
23156
23156
  );
23157
23157
  }
23158
+
23159
+ // src/unbound-reference-tokens.ts
23160
+ function unboundReferenceTokenText(label) {
23161
+ return label ?? "";
23162
+ }
23163
+ function tidyReferenceTokenGaps(prompt) {
23164
+ return prompt.replace(/[^\S\r\n]{2,}/g, " ").trim();
23165
+ }
23166
+
23167
+ // src/prompt-builder.ts
23158
23168
  function composeIdentityDescPart(subject, canonicalDesc, elementInjection) {
23159
23169
  const parts = [];
23160
23170
  const c = canonicalDesc?.trim();
@@ -24294,7 +24304,11 @@ ${directives}`;
24294
24304
  finalPrompt = reordered.prompt;
24295
24305
  }
24296
24306
  const refsToSend2 = supportsRefs2 && finalUrls.length > 0 ? finalUrls : void 0;
24297
- return { prompt: finalPrompt, nativeNegativePrompt: nativeNegativePrompt2, referenceImageUrls: refsToSend2 };
24307
+ const assembledPrompt = dropUnwiredImageTokens(
24308
+ finalPrompt,
24309
+ (n) => Boolean(tokenFinalSlot(n, nonCharacterRefs, finalIndexByUrl))
24310
+ );
24311
+ return { prompt: assembledPrompt, nativeNegativePrompt: nativeNegativePrompt2, referenceImageUrls: refsToSend2 };
24298
24312
  }
24299
24313
  const charDescs = characterDefs.filter((c) => c.type === "description" && c.description).map((c) => {
24300
24314
  let templateKey;
@@ -24362,6 +24376,7 @@ ${directives}`;
24362
24376
  const supportsRefs = shared.MODELS_WITH_REFERENCE_IMAGE_SUPPORT.has(provider);
24363
24377
  const refsToSend = supportsRefs && allRefs.length > 0 ? allRefs : void 0;
24364
24378
  prompt = expandImagePositionRefs(prompt, allRefs.length);
24379
+ prompt = dropUnwiredImageTokens(prompt, (n) => hasImageAt(n, allRefs.length));
24365
24380
  return { prompt, nativeNegativePrompt, referenceImageUrls: refsToSend };
24366
24381
  }
24367
24382
  function buildImagePromptSegments(config2, bodySegments) {
@@ -24386,6 +24401,22 @@ var STRICT_DEFAULT_SOURCES = /* @__PURE__ */ new Set([
24386
24401
  "wired-location"
24387
24402
  ]);
24388
24403
  var IMAGE_TOKEN_PATTERN = /\{image:(\d+)(?::([^}\n]+))?\}/gi;
24404
+ function tokenFinalSlot(n, refs, finalIndexByUrl) {
24405
+ const ref = refs[n - 1];
24406
+ return ref?.url ? finalIndexByUrl.get(ref.url) : void 0;
24407
+ }
24408
+ function hasImageAt(n, count) {
24409
+ return n >= 1 && n <= count;
24410
+ }
24411
+ function dropUnwiredImageTokens(prompt, isWired) {
24412
+ let dropped = false;
24413
+ const out = prompt.replace(IMAGE_TOKEN_PATTERN, (match, num, label) => {
24414
+ if (isWired(parseInt(num, 10))) return match;
24415
+ dropped = true;
24416
+ return unboundReferenceTokenText(label);
24417
+ });
24418
+ return dropped ? tidyReferenceTokenGaps(out) : prompt;
24419
+ }
24389
24420
  function defaultFidelityForSource(source) {
24390
24421
  if (!source) return "balanced";
24391
24422
  return STRICT_DEFAULT_SOURCES.has(source) ? "strict" : "balanced";
@@ -24543,9 +24574,7 @@ function expandImageRefTokens(prompt, imageCount) {
24543
24574
  }
24544
24575
  function expandImageRefTokensForRefs(prompt, refs, finalIndexByUrl) {
24545
24576
  return prompt.replace(IMAGE_TOKEN_PATTERN, (match, num, label) => {
24546
- const n = parseInt(num, 10);
24547
- const ref = refs[n - 1];
24548
- const finalIdx = ref?.url ? finalIndexByUrl.get(ref.url) : void 0;
24577
+ const finalIdx = tokenFinalSlot(parseInt(num, 10), refs, finalIndexByUrl);
24549
24578
  if (!finalIdx) return match;
24550
24579
  return label ? `Image ${finalIdx} (${label})` : `Image ${finalIdx}`;
24551
24580
  });
@@ -24560,9 +24589,7 @@ function hybridRolePhrase(label, letter) {
24560
24589
  function expandImageRefTokensHybrid(prompt, refs, finalIndexByUrl) {
24561
24590
  const splices = [];
24562
24591
  for (const m of prompt.matchAll(IMAGE_TOKEN_PATTERN)) {
24563
- const n = parseInt(m[1], 10);
24564
- const ref = refs[n - 1];
24565
- const finalIdx = ref?.url ? finalIndexByUrl.get(ref.url) : void 0;
24592
+ const finalIdx = tokenFinalSlot(parseInt(m[1], 10), refs, finalIndexByUrl);
24566
24593
  if (!finalIdx) continue;
24567
24594
  splices.push({
24568
24595
  offset: m.index ?? 0,
@@ -24594,7 +24621,7 @@ function buildIdentityDirectives(prompt, refs, meta3 = [], suppressedCanonicalLo
24594
24621
  function expandImagePositionRefs(prompt, imageCount, names) {
24595
24622
  return prompt.replace(IMAGE_TOKEN_PATTERN, (match, num, label) => {
24596
24623
  const n = parseInt(num, 10);
24597
- if (n < 1 || n > imageCount) return match;
24624
+ if (!hasImageAt(n, imageCount)) return match;
24598
24625
  if (label) return `Image ${n} (${label})`;
24599
24626
  if (names && names[n - 1]) return names[n - 1];
24600
24627
  return `Image ${n}`;
@@ -24994,13 +25021,15 @@ function resolveRefIdTokens(prompt, ctx) {
24994
25021
  var REFERENCE_TOKEN_RE = /\{(image|video|audio):(\d+)(?::([a-zA-Z0-9_ -]+))?\}/gi;
24995
25022
  function resolveReferenceTokens(prompt, counts) {
24996
25023
  if (!prompt) return prompt;
24997
- return prompt.replace(REFERENCE_TOKEN_RE, (_match, rawKind, nStr, label) => {
24998
- const kind = rawKind.toLowerCase();
24999
- const n = parseInt(nStr, 10);
25000
- if (n < 1 || n > counts[kind]) return label ?? "";
25001
- if (label) return REF_BINDING[kind](label, n);
25002
- return `@${kind}_${n}`;
25003
- }).replace(/[^\S\r\n]{2,}/g, " ").trim() || void 0;
25024
+ return tidyReferenceTokenGaps(
25025
+ prompt.replace(REFERENCE_TOKEN_RE, (_match, rawKind, nStr, label) => {
25026
+ const kind = rawKind.toLowerCase();
25027
+ const n = parseInt(nStr, 10);
25028
+ if (n < 1 || n > counts[kind]) return unboundReferenceTokenText(label);
25029
+ if (label) return REF_BINDING[kind](label, n);
25030
+ return `@${kind}_${n}`;
25031
+ })
25032
+ ) || void 0;
25004
25033
  }
25005
25034
  function resolveVideoCharacterMentionsHybrid(prompt, tokens, refs, offset) {
25006
25035
  const bySlug = /* @__PURE__ */ new Map();
@@ -41437,7 +41466,7 @@ var IMAGE_REFERENCE_PROMPT_DOCTRINE = {
41437
41466
 
41438
41467
  - \`{image:N:label}\` \u2192 expands server-side to \`Image N (label)\`, aligned with the numbered reference list sent to the provider.
41439
41468
  - \`{image:N}\` \u2192 \`Image N\` (no role named).
41440
- - A token whose N has no wired reference is left as literal text in the final prompt \u2014 visible on purpose, so fix the numbering instead of ignoring it.
41469
+ - A token whose N has no wired reference falls back to its label (\`{image:3:dog}\` \u2192 \`dog\`); a bare \`{image:N}\` is dropped. The prompt still runs but binds nothing at N, so check the numbering against what is wired.
41441
41470
 
41442
41471
  **How to compose**
41443
41472
  - The prompt should be little more than tokens plus glue words: \`{image:1:person} with {image:2:face}\`. The label tells the model what to TAKE from that image \u2014 \`person\`, \`face\`, \`background\`, \`settings\`, or a concrete garment/prop name (\`jacket\`).
@@ -41648,6 +41677,7 @@ var PROVIDER_CAPABILITIES = {
41648
41677
  "nano-banana": "Fast generation, style flexibility, reference image support",
41649
41678
  "nano-banana-pro": "Higher quality Nano Banana with better detail",
41650
41679
  "nano-banana-2": "Latest Nano Banana with resolution options (1K/2K/4K)",
41680
+ "nano-banana-2-1": "Nano Banana 2.1 \u2014 sharper quality, prompt adherence, character consistency and text rendering, 1K/2K/4K",
41651
41681
  "nano-banana-2-lite": "Fast, low-cost 1K generation for drafts and iteration",
41652
41682
  "gpt-image": "Creative concepts, illustration, variable quality tiers",
41653
41683
  "gpt-image-2": "Latest GPT Image \u2014 sharp text, photorealism, 1K/2K/4K resolution",
@@ -41663,6 +41693,7 @@ var PROVIDER_CAPABILITIES = {
41663
41693
  "seedream": "Artistic, painterly styles, creative interpretation",
41664
41694
  "seedream-5-lite": "Lighter Seedream, faster artistic generation",
41665
41695
  "seedream-5-pro": "Flagship Seedream \u2014 strongest instruction following, 2K via high quality",
41696
+ "seedream-5-flash": "Fast, low-cost Seedream 5 \u2014 quick drafts and iteration at 1K or 2K",
41666
41697
  "z-image": "Experimental, novel generation approaches",
41667
41698
  "wan-2.7": "Wan 2.7 T2I \u2014 1K/2K/4K, up to 9 ref images",
41668
41699
  "wan-2.7-pro": "Wan 2.7 Pro T2I \u2014 higher quality, 1K/2K/4K",
@@ -41687,6 +41718,7 @@ var PROVIDER_CAPABILITIES = {
41687
41718
  "seedream-edit": "Artistic style editing",
41688
41719
  "seedream-5-lite-i2i": "Light artistic transformation",
41689
41720
  "seedream-5-pro-i2i": "Pro-grade instruction-based edits, multi-reference",
41721
+ "seedream-5-flash-i2i": "Fast, low-cost Seedream edits \u2014 up to 10 input images",
41690
41722
  "flux-kontext": "Character-consistent edits with reference awareness",
41691
41723
  "flux-kontext-max": "Premium character-consistent editing",
41692
41724
  "kontext-multi": "Multi-image Kontext via Replicate \u2014 up to 4 refs, no safety filter",
@@ -41711,6 +41743,7 @@ var PROVIDER_CAPABILITIES = {
41711
41743
  "seedream-edit": "Artistic style editing",
41712
41744
  "seedream-5-lite-i2i": "Light artistic transformation",
41713
41745
  "seedream-5-pro-i2i": "Pro-grade instruction-based edits, multi-reference",
41746
+ "seedream-5-flash-i2i": "Fast, low-cost Seedream edits \u2014 up to 10 input images",
41714
41747
  "flux-kontext": "Character-consistent edits with reference awareness",
41715
41748
  "flux-kontext-max": "Premium character-consistent editing",
41716
41749
  "kontext-multi": "Multi-image Kontext via Replicate \u2014 up to 4 refs, no safety filter",
@@ -42059,7 +42092,6 @@ var STYLIZED_SUBJECT = [
42059
42092
  name: "Cartoon Person, Real World",
42060
42093
  description: "Subject \u2192 3D cartoon, rest stays photoreal.",
42061
42094
  data: {
42062
- provider: "nano-banana-pro",
42063
42095
  promptPrefix: "Restyle ONLY the person in the reference image into a polished 3D animated character \u2014 Pixar/Disney sensibility: soft subsurface skin shading, expressive oversized eyes, smoothly stylized hair, clean rounded forms. Preserve their identity, exact pose, expression, and framing. Everything else stays untouched and fully photorealistic: keep the original background, props, clothing fabric and texture, and the scene's real lighting, shadows, and color grade. Composite the stylized figure into the real plate so it sits naturally \u2014 matched light direction, contact shadows, and depth.",
42064
42096
  negativePrompt: "changing the background, altering the unstylized parts, restyling clothing fabric or props, relighting the scene, distorting the subject, changing identity or pose, flat 2D look, extra limbs, deformed hands, warped face"
42065
42097
  }
@@ -42069,7 +42101,6 @@ var STYLIZED_SUBJECT = [
42069
42101
  name: "Caricature, Real Photo",
42070
42102
  description: "Exaggerated cartoon head on a real scene.",
42071
42103
  data: {
42072
- provider: "nano-banana-pro",
42073
42104
  promptPrefix: "Turn ONLY the person into a playful hand-illustrated caricature: enlarge the head, exaggerate their most recognizable features, and amplify expression with bold, confident linework and clean cel-style shading \u2014 while keeping them clearly identifiable. Leave everything else exactly as shot and photorealistic: the body proportions below the neck, the clothing, the background, props, and the scene's real lighting and shadows remain unchanged. Blend the caricature head onto the real photo seamlessly with matched lighting and a believable neckline.",
42074
42105
  negativePrompt: "changing the background, altering the unstylized parts, restyling the body or clothing, relighting the scene, distorting the subject beyond intent, losing likeness, photorealistic head, harsh seam at the neck, deformed features"
42075
42106
  }
@@ -42079,7 +42110,6 @@ var STYLIZED_SUBJECT = [
42079
42110
  name: "Anime Person, Real Background",
42080
42111
  description: "Subject \u2192 2D anime, real environment.",
42081
42112
  data: {
42082
- provider: "nano-banana-pro",
42083
42113
  promptPrefix: "Restyle ONLY the person as a crisp 2D anime character \u2014 clean ink outlines, flat cel shading with sharp shadow shapes, glossy stylized hair, and expressive anime eyes \u2014 while preserving their identity, pose, expression, and framing. Keep the real-world background, environment, props, and the original photographic lighting, shadows, and color completely untouched and photorealistic. Integrate the 2D figure into the live-action plate so the light direction and contact shadows read naturally.",
42084
42114
  negativePrompt: "changing the background, altering the unstylized parts, restyling the environment or props, relighting the scene, distorting the subject, 3D render look, photorealistic skin on the subject, extra fingers, warped anatomy, broken outlines"
42085
42115
  }
@@ -42089,7 +42119,6 @@ var STYLIZED_SUBJECT = [
42089
42119
  name: "Real Person, Cartoon World",
42090
42120
  description: "Inverse \u2014 real subject, stylized world.",
42091
42121
  data: {
42092
- provider: "nano-banana-pro",
42093
42122
  promptPrefix: "Inverse stylization: keep the PERSON completely photorealistic and unchanged \u2014 real skin, hair, clothing, identity, pose, and framing all preserved exactly. Restyle ONLY the surrounding world into a vibrant, hand-crafted cartoon environment: simplified painterly shapes, bold saturated colors, soft graphic shading, and whimsical stylized props and scenery. Light the real person to match the cartoon world's color and direction so they sit convincingly inside it, with believable contact shadows.",
42094
42123
  negativePrompt: "stylizing or cartoonifying the person, altering the subject's skin, face, hair or clothing, distorting the subject, changing the subject's pose, photorealistic background, flat lifeless scene, harsh cut-out edges around the person"
42095
42124
  }
@@ -42099,19 +42128,21 @@ var STYLIZED_SUBJECT = [
42099
42128
  name: "Claymation Figure, Real Set",
42100
42129
  description: "Subject \u2192 clay figure, real surroundings.",
42101
42130
  data: {
42102
- provider: "nano-banana-pro",
42103
42131
  promptPrefix: "Restyle ONLY the person into a tactile stop-motion claymation figure \u2014 molded plasticine surface with visible fingerprints, tool marks, subtle seams, and a soft matte sheen, in the handmade spirit of Aardman puppets \u2014 while keeping their identity, pose, expression, and framing. Everything else stays exactly as shot and photorealistic: the real background, set, props, and the scene's natural lighting and shadows are unchanged. Seat the clay figure into the real plate with matched light direction and grounded contact shadows.",
42104
42132
  negativePrompt: "changing the background or set, altering the unstylized parts, restyling props, relighting the scene, distorting the subject, smooth plastic toy look, glossy CGI surface, melted or deformed figure, missing fingerprints, extra limbs"
42105
42133
  }
42106
42134
  }
42107
42135
  ];
42136
+ function editProviderFor(nodeType) {
42137
+ return nodeType === "modify-image" ? "gpt-image-2-5-flare-i2i" : "gpt-image-2-5-flare";
42138
+ }
42108
42139
  function stylizedSubjectFor(nodeType) {
42109
42140
  return STYLIZED_SUBJECT.map((p) => ({
42110
42141
  id: `${nodeType}/${p.slug}`,
42111
42142
  name: p.name,
42112
42143
  description: p.description,
42113
42144
  group: "Stylized Subject",
42114
- data: p.data
42145
+ data: { provider: editProviderFor(nodeType), ...p.data }
42115
42146
  }));
42116
42147
  }
42117
42148
  var IMAGE_EDITS = [
@@ -42120,7 +42151,6 @@ var IMAGE_EDITS = [
42120
42151
  name: "Remove Background",
42121
42152
  description: "Cut out the subject on white.",
42122
42153
  data: {
42123
- provider: "nano-banana-pro",
42124
42154
  promptPrefix: "Cleanly cut the main subject out of the reference image and place it on a pure, solid white background. Trace a crisp, accurate edge \u2014 preserve fine detail like hair strands, fur, and translucent or wispy edges \u2014 with no leftover background pixels and no color fringing. Keep the subject itself completely unchanged: same pose, lighting, color, and full silhouette, nothing cropped.",
42125
42155
  negativePrompt: "fringing, color halo, cut-off subject, leftover background, jagged or rough edges, missing hair detail, semi-transparent matte, drop shadow, gray or off-white background, altering the subject"
42126
42156
  }
@@ -42130,7 +42160,6 @@ var IMAGE_EDITS = [
42130
42160
  name: "Replace Background",
42131
42161
  description: "Swap in a new scene.",
42132
42162
  data: {
42133
- provider: "nano-banana-pro",
42134
42163
  prompt: "Replace the background behind the subject with {scene || a sunlit Mediterranean terrace}. Keep the subject perfectly unchanged \u2014 identity, pose, edges, and proportions intact \u2014 and composite it into the new scene so it looks truly photographed there: relight the subject's rim and ambient tones to match the new environment, cast believable contact shadows, and match perspective, depth of field, and color grade.",
42135
42164
  negativePrompt: "altering the subject, changing the subject's pose or proportions, fringing, halo, floating subject, missing or wrong-direction shadows, mismatched lighting, flat composite, harsh cut-out edges, perspective mismatch"
42136
42165
  }
@@ -42140,7 +42169,6 @@ var IMAGE_EDITS = [
42140
42169
  name: "Colorize B&W Photo",
42141
42170
  description: "Natural color from grayscale.",
42142
42171
  data: {
42143
- provider: "nano-banana-pro",
42144
42172
  promptPrefix: "Colorize this black-and-white photograph with natural, historically plausible color. Give skin realistic, even tones, and assign believable hues to clothing, foliage, sky, and materials. Preserve every original detail, grain, contrast, and the exact composition \u2014 add color only, never invent or remove content.",
42145
42173
  negativePrompt: "oversaturated, anachronistic colors, neon or cartoon tones, color bleeding outside edges, blotchy or uneven skin, lost detail, altered composition, added or hallucinated objects, washed-out contrast"
42146
42174
  }
@@ -42150,7 +42178,6 @@ var IMAGE_EDITS = [
42150
42178
  name: "Restore Old Photo",
42151
42179
  description: "Repair scratches, denoise, sharpen.",
42152
42180
  data: {
42153
- provider: "nano-banana-pro",
42154
42181
  promptPrefix: "Restore this old, damaged photograph: remove scratches, dust, creases, stains, and noise, repair torn or missing areas by reconstructing what is plainly there, and gently recover sharpness and tonal detail. Keep the result authentic and true to the original \u2014 preserve identity, era, natural film grain, and composition. Repair only; do not beautify, restyle, or invent new features.",
42155
42182
  negativePrompt: "over-smoothed, plastic skin, waxy or airbrushed look, hallucinated details, invented faces or objects, changing identity or age, removing authentic grain, modern restyling, oversharpening halos, altered composition"
42156
42183
  }
@@ -42160,7 +42187,6 @@ var IMAGE_EDITS = [
42160
42187
  name: "Relight Scene",
42161
42188
  description: "New lighting, same subject.",
42162
42189
  data: {
42163
- provider: "nano-banana-pro",
42164
42190
  prompt: "Relight the image with {lighting style || soft golden-hour key light from the left}. Re-derive highlights, shadows, ambient fill, and color temperature consistently across the whole frame for a believable, physically plausible result. Keep the subject, pose, expression, materials, and composition completely unchanged \u2014 only the lighting changes.",
42165
42191
  negativePrompt: "changing the subject, pose, expression, or composition, altering materials or clothing, flat or inconsistent lighting, blown-out highlights, crushed shadows, color casts on skin, double or contradictory light directions, repositioning anything"
42166
42192
  }
@@ -42170,7 +42196,6 @@ var IMAGE_EDITS = [
42170
42196
  name: "Restyle (whole image)",
42171
42197
  description: "Apply an art style to everything.",
42172
42198
  data: {
42173
- provider: "nano-banana-pro",
42174
42199
  prompt: "Restyle the entire image in a {art style || soft watercolor illustration} look, applying the style consistently to the subject, background, and every element. Keep the composition, subject placement, and the subject clearly recognizable \u2014 reinterpret texture, color, and rendering, not the underlying content or layout.",
42175
42200
  negativePrompt: "changing the composition or layout, moving or removing the subject, losing recognizability, applying the style to only part of the image, photorealistic patches, added or hallucinated objects, distorted anatomy, inconsistent style across the frame"
42176
42201
  }
@@ -42180,7 +42205,6 @@ var IMAGE_EDITS = [
42180
42205
  name: "Doodle Overlay",
42181
42206
  description: "Hand-drawn marker doodles on top \u2014 photo stays untouched.",
42182
42207
  data: {
42183
- provider: "nano-banana-pro",
42184
42208
  promptPrefix: "Layer playful hand-drawn doodles ON TOP of the reference photo while keeping every pixel of the underlying photograph completely unchanged \u2014 same people, same colors, same lighting, same crop. Doodle style: wobbly hand-drawn felt-tip marker lines in white with a few yellow accents, like quick sketches on a printed photo. Add: loose outline traces hugging one or two key shapes, small sparkles and stars, a hand-drawn thought cloud or speech bubble with a short witty handwritten phrase that reacts to what is actually happening in the photo, and simple arrows or underlines pointing at fun details. Outlines only \u2014 never fill shapes with color. Never cover faces or the main focal point; place doodles in empty areas like sky, walls or margins. Keep it balanced: four to seven doodle elements total, charming and confident, not cluttered. The photo is the hero \u2014 the doodles are the seasoning.",
42185
42209
  negativePrompt: "altered photo, restyled or recolored scene, redrawn subject, covered faces, filled color shapes, digital sticker or emoji look, vector clipart, cluttered doodles, garbled or misspelled handwriting, watermark, blurry"
42186
42210
  }
@@ -42190,7 +42214,6 @@ var IMAGE_EDITS = [
42190
42214
  name: "Doodle Overlay \xB7 Expressive",
42191
42215
  description: "Looser free-form doodles \u2014 the model improvises.",
42192
42216
  data: {
42193
- provider: "nano-banana-pro",
42194
42217
  promptPrefix: "Decorate the reference photo with expressive hand-drawn doodles layered on top, keeping the underlying photograph itself completely unchanged. Free, confident hand-drawn marker linework \u2014 wobbly outlines, sparkles, squiggles, little flames or hearts where they fit the mood, and a short handwritten phrase that responds cleverly to the content of the photo (never a generic clich\xE9). Mix of white and one or two bright accent colors. Outline style only, no filled shapes. Compose the doodles around the subject \u2014 never on top of faces or the focal point \u2014 using empty areas and edges. Loose, playful, zine-like energy: it should feel like a bored genius doodled on a printed photo. Keep the original image pixels intact beneath the doodle layer.",
42195
42218
  negativePrompt: "altered photo, restyled or recolored scene, covered faces, filled color blocks, sticker or clipart look, clich\xE9 phrases, garbled or misspelled handwriting, cluttered composition, watermark, blurry"
42196
42219
  }
@@ -42202,7 +42225,7 @@ function editsFor(nodeType) {
42202
42225
  name: p.name,
42203
42226
  description: p.description,
42204
42227
  group: "Edits",
42205
- data: p.data
42228
+ data: { provider: editProviderFor(nodeType), ...p.data }
42206
42229
  }));
42207
42230
  }
42208
42231
 
@@ -42215,7 +42238,7 @@ var GENERATE_IMAGE_PRESETS = [
42215
42238
  description: "Connect a sharp, well-lit photo \u2192 dense character sheet; reuse it as a reference for consistent shots.",
42216
42239
  group: "Reference Sheet",
42217
42240
  data: {
42218
- provider: "nano-banana-pro",
42241
+ provider: "gpt-image-2",
42219
42242
  aspectRatio: "16:9",
42220
42243
  resolution: "2K",
42221
42244
  promptPrefix: `Create a single high-resolution, densely packed character reference sheet titled "CHARACTER BOARD" using the attached photo of the person as the single source of truth for face, hair, beard, eyes, skin tone and body proportions. The same person must appear in every panel \u2014 same age, same features. Outfit identical to the attached photo across all panels. All on-image labels in ENGLISH. Editorial reference-board layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade character-design UI. The composition should feel organized but not rigidly locked: allow the main portrait, metadata, and supporting panels to shift position naturally within the board. The panel arrangement can vary from generation to generation while remaining readable, balanced, and premium. Design the board so it works cleanly in different aspect ratios without depending on a fixed left-column structure. Include: A large hero portrait or 3/4-length character image, accompanied by a detailed metadata block: NAME \xB7 AGE \xB7 HEIGHT \xB7 BUILD \xB7 HAIR \xB7 EYES \xB7 FEATURES \xB7 OUTFIT (describe the exact clothing from the attached photo) \xB7 CHARACTER \xB7 MOOD. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 full-body shots, neutral pose, identical outfit and lighting, neutral tan backdrop): FRONT \xB7 3/4 LEFT \xB7 SIDE LEFT \xB7 BACK \xB7 3/4 RIGHT. PANEL 02 \u2014 EXPRESSIONS (5 tight headshots, same lighting): CALM \xB7 LAUGHING \xB7 INTENSE \xB7 CONTEMPLATIVE \xB7 CONFIDENT. PANEL 03 \u2014 DETAILS (3 macros): face/eyes close-up \xB7 hand close-up (showing ring, watch or cuff) \xB7 distinctive outfit detail. PANEL 04 \u2014 OUTFIT FLAT-LAYS (5 isolated product shots on dark background): outerwear \xB7 top \xB7 bottom \xB7 footwear \xB7 main accessory. PANEL 05 \u2014 LIGHTING / MOOD (4 same-pose portraits under different lighting): SOFT WINDOW LIGHT \xB7 GOLDEN HOUR \xB7 COOL BLUE NIGHT \xB7 DRAMATIC RIM-LIGHT. PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes derived from the outfit and skin tones. Bottom caption: "Use this character board as a visual reference for consistent depiction of the character across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42229,7 +42252,7 @@ var GENERATE_IMAGE_PRESETS = [
42229
42252
  description: "Connect a sharp photo \u2192 animation-ready pose & expression sheet; reuse it as a reference for consistent action.",
42230
42253
  group: "Reference Sheet",
42231
42254
  data: {
42232
- provider: "nano-banana-pro",
42255
+ provider: "gpt-image-2",
42233
42256
  aspectRatio: "16:9",
42234
42257
  resolution: "2K",
42235
42258
  promptPrefix: `Create a single high-resolution, densely packed pose reference sheet titled "POSE BOARD" using the attached photo of the person as the single source of truth for face, hair, eyes, skin tone, body proportions and outfit. The same person must appear in every panel \u2014 same age, same features, outfit identical to the attached photo across all panels. All on-image labels in ENGLISH. Editorial reference-board layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade animation-planning UI. The composition should feel organized but not rigidly locked: allow the hero figure, metadata, and supporting panels to shift position naturally within the board while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large full-body hero shot in a relaxed standing pose with a metadata block: NAME \xB7 AGE \xB7 BUILD \xB7 HEIGHT \xB7 OUTFIT \xB7 POSE LANGUAGE \xB7 CENTER OF GRAVITY \xB7 DOMINANT HAND \xB7 PURPOSE. Also include five content groupings \u2014 render ALL five panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 BASIC POSES (5 full-body shots, identical outfit and lighting, neutral tan backdrop): STANDING \xB7 SITTING \xB7 WALKING \xB7 RUNNING \xB7 JUMPING. PANEL 02 \u2014 ACTION POSES (5 dynamic full-body shots with clear silhouettes): FIGHT STANCE \xB7 THROW \xB7 DODGE \xB7 CLIMB \xB7 LAND. PANEL 03 \u2014 EXPRESSIONS (5 tight headshots, same lighting): NEUTRAL \xB7 LAUGHING \xB7 ANGRY \xB7 SAD \xB7 SURPRISED. PANEL 04 \u2014 ANGLE COVERAGE (4 chest-up portraits): FRONT \xB7 3/4 \xB7 SIDE \xB7 BACK. PANEL 05 \u2014 COLOR PALETTE: 6 swatches with HEX codes derived from the outfit and skin tones. Bottom caption: "Use this pose board as a visual reference for consistent posing of the character across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42243,7 +42266,7 @@ var GENERATE_IMAGE_PRESETS = [
42243
42266
  description: "Connect a photo \u2192 dense location sheet; reuse it as a reference for consistent scenes.",
42244
42267
  group: "Reference Sheet",
42245
42268
  data: {
42246
- provider: "nano-banana-pro",
42269
+ provider: "gpt-image-2",
42247
42270
  aspectRatio: "16:9",
42248
42271
  resolution: "2K",
42249
42272
  promptPrefix: `Create a single high-resolution, densely packed location reference sheet titled "LOCATION BOARD" using the attached photo of the location as the single source of truth for its architecture, atmosphere, lighting, materials and color palette. The space must be identical across every panel \u2014 same place, same materials, same era. All on-image labels in ENGLISH. Editorial location-reference board layout with a dark near-black background, thin yellow neon accent light on the far left, faint film-grain overlay, subtle cinematic interface elements, and production-grade location-scout UI. The composition should feel structured but not rigidly fixed: allow the hero location view, metadata, environmental studies, and supporting panels to shift position naturally within the board. The arrangement may vary from generation to generation while remaining readable, balanced, and premium. Design the board so it adapts cleanly to different aspect ratios without depending on a fixed left-column layout. Include a prominent hero shot of the location, ideally a wide establishing or defining view, accompanied by a detailed metadata block: NAME \xB7 TYPE (street / interior / exterior / forest) \xB7 ERA \xB7 SCALE (intimate / vast) ARCHITECTURE: (key features) MATERIALS: (stone, brick, wood, glass, etc.) ATMOSPHERE: (busy / quiet / eerie / romantic) DEFAULT TIME \xB7 DEFAULT WEATHER \xB7 PURPOSE (e.g. chase sequence, dialogue scene). Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 same-location shots, identical lighting): WIDE \xB7 MID \xB7 TIGHT \xB7 ALT ANGLE \xB7 OVERHEAD. PANEL 02 \u2014 TIME OF DAY (4 same-angle shots): DAWN \xB7 NOON \xB7 DUSK \xB7 NIGHT. PANEL 03 \u2014 DETAILS (2 macros): material/texture close-up \xB7 distinctive architectural detail. PANEL 04 \u2014 SET DRESSING / PROPS (5 isolated prop or signage studies on dark background): 5 key props or signage elements from the location. PANEL 05 \u2014 WEATHER / MOOD (4 same-angle shots): CLEAR SUNNY \xB7 OVERCAST \xB7 RAIN-SOAKED \xB7 MISTY FOG. PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the location's dominant tones. Bottom caption: "Use this location board as a visual reference for consistent depiction of the environment across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42257,7 +42280,7 @@ var GENERATE_IMAGE_PRESETS = [
42257
42280
  description: "Connect a photo \u2192 dense product sheet; reuse it as a reference for consistent shots.",
42258
42281
  group: "Reference Sheet",
42259
42282
  data: {
42260
- provider: "nano-banana-pro",
42283
+ provider: "gpt-image-2",
42261
42284
  aspectRatio: "16:9",
42262
42285
  resolution: "2K",
42263
42286
  promptPrefix: `Create a single high-resolution, densely packed product reference sheet titled "PRODUCT BOARD" using the attached photo of the product as the single source of truth for its shape, materials, colorway, proportions, branding and finish. The same product must appear in every panel \u2014 identical model, identical colorway and markings. All on-image labels in ENGLISH. Editorial product-reference layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade industrial-design UI. The composition should feel organized but not rigidly locked: allow the hero shot, metadata, and supporting panels to shift position naturally within the board while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large hero product shot with a metadata block: NAME \xB7 CATEGORY \xB7 BRAND \xB7 DIMENSIONS \xB7 WEIGHT \xB7 MATERIALS \xB7 FINISH \xB7 KEY FEATURES \xB7 COLORWAY. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 studio shots on a seamless background, identical lighting): FRONT \xB7 3/4 \xB7 SIDE \xB7 BACK \xB7 TOP. PANEL 02 \u2014 DETAILS (3 macros): material/texture close-up \xB7 seam/joint or mechanism \xB7 logo/branding detail. PANEL 03 \u2014 COLORWAYS (4 isolated shots of the same product in alternate finishes). PANEL 04 \u2014 SCALE (the product beside a common reference object, with a dimension callout). PANEL 05 \u2014 IN USE / CONTEXT (3 lifestyle shots in a real setting). PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the product's materials and finish. Bottom caption: "Use this product board as a visual reference for consistent depiction of the product across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Studio.`,
@@ -42271,7 +42294,7 @@ var GENERATE_IMAGE_PRESETS = [
42271
42294
  description: "Connect a photo \u2192 dense wardrobe sheet; reuse it as a reference for consistent looks.",
42272
42295
  group: "Reference Sheet",
42273
42296
  data: {
42274
- provider: "nano-banana-pro",
42297
+ provider: "gpt-image-2",
42275
42298
  aspectRatio: "16:9",
42276
42299
  resolution: "2K",
42277
42300
  promptPrefix: `Create a single high-resolution, densely packed wardrobe reference sheet titled "OUTFIT BOARD" using the attached photo of the outfit as the single source of truth for its garments, fabrics, colorway, silhouette and styling. The same outfit must appear in every panel \u2014 identical garments, identical colors and trims. All on-image labels in ENGLISH. Editorial fashion-reference layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade stylist UI. The composition should feel organized but not rigidly locked: allow the hero look, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a hero full-look shot with a metadata block: LOOK NAME \xB7 STYLE \xB7 SEASON \xB7 FABRICS \xB7 PALETTE \xB7 FIT \xB7 OCCASION. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 ON-BODY VIEWS (5 full-length shots, identical lighting): FRONT \xB7 3/4 LEFT \xB7 SIDE \xB7 BACK \xB7 3/4 RIGHT. PANEL 02 \u2014 FLAT-LAYS (5 isolated garment shots on a dark surface): top \xB7 bottom \xB7 outerwear \xB7 footwear \xB7 headwear. PANEL 03 \u2014 FABRIC & DETAIL (3 macros): weave/texture close-up \xB7 stitching or hardware \xB7 print or trim detail. PANEL 04 \u2014 ACCESSORIES (4 isolated accessory studies: bag \xB7 jewelry \xB7 belt \xB7 eyewear). PANEL 05 \u2014 COLORWAYS (3 alternate colorways of the same look). PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the garments. Bottom caption: "Use this outfit board as a visual reference for consistent depiction of the wardrobe across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Editorial \xB7 Fashion.`,
@@ -42285,7 +42308,7 @@ var GENERATE_IMAGE_PRESETS = [
42285
42308
  description: "Connect a photo \u2192 set-dressing & props study; reuse it as a reference for consistent sets.",
42286
42309
  group: "Reference Sheet",
42287
42310
  data: {
42288
- provider: "nano-banana-pro",
42311
+ provider: "gpt-image-2",
42289
42312
  aspectRatio: "16:9",
42290
42313
  resolution: "2K",
42291
42314
  promptPrefix: `Create a single high-resolution, densely packed set-dressing reference sheet titled "SCENE BOARD" using the attached photo of the scene as the single source of truth for its props, set dressing, materials, signage and mood. The space and its contents must be consistent across every panel \u2014 same props, same materials, same era. All on-image labels in ENGLISH. Editorial set-decoration layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade art-department UI. The composition should feel organized but not rigidly locked: allow the hero shot, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a hero establishing shot with a metadata block: SCENE NAME \xB7 TYPE \xB7 ERA \xB7 MOOD \xB7 KEY MATERIALS \xB7 PURPOSE. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 KEY PROPS (5 isolated prop studies on a dark background). PANEL 02 \u2014 SIGNAGE / GRAPHICS (3 readable signage or printed-graphic elements from the scene). PANEL 03 \u2014 MATERIALS & TEXTURES (3 macros: surface \xB7 fabric/wood/metal \xB7 wear/patina). PANEL 04 \u2014 LAYOUT / BLOCKING (a simple top-down or wide diagram of where key elements sit). PANEL 05 \u2014 LIGHTING STATES (3 same-angle shots: day \xB7 practical-lit night \xB7 dramatic). PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the scene's dominant tones. Bottom caption: "Use this scene board as a visual reference for consistent set dressing across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42299,7 +42322,7 @@ var GENERATE_IMAGE_PRESETS = [
42299
42322
  description: "Connect a sharp photo \u2192 dense creature sheet; reuse it as a reference for consistent shots.",
42300
42323
  group: "Reference Sheet",
42301
42324
  data: {
42302
- provider: "nano-banana-pro",
42325
+ provider: "gpt-image-2",
42303
42326
  aspectRatio: "16:9",
42304
42327
  resolution: "2K",
42305
42328
  promptPrefix: `Create a single high-resolution, densely packed creature reference sheet titled "CREATURE BOARD" using the attached photo of the creature as the single source of truth for its anatomy, silhouette, coloration, textures and features. The same creature must appear in every panel \u2014 identical species, identical markings and proportions. All on-image labels in ENGLISH. Editorial creature-design layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade concept-design UI. The composition should feel organized but not rigidly locked: allow the hero render, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large hero full-body render with a metadata block: NAME \xB7 SPECIES \xB7 SIZE \xB7 BUILD \xB7 COLORATION \xB7 TEXTURES \xB7 TEMPERAMENT \xB7 FEATURES \xB7 MOVEMENT \xB7 VOCALIZATION. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 full-body angles, neutral pose, identical lighting): FRONT \xB7 3/4 \xB7 SIDE \xB7 BACK \xB7 TOP-DOWN. PANEL 02 \u2014 POSES (4 dynamic full-body poses: idle \xB7 moving \xB7 alert \xB7 aggressive). PANEL 03 \u2014 DETAILS (3 macros): head/face close-up \xB7 hide/scale/fur texture \xB7 distinctive feature (claw, horn, fin). PANEL 04 \u2014 EXPRESSIONS (4 head studies showing temperament range). PANEL 05 \u2014 SCALE (the creature beside a human silhouette for size reference). PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the creature's coloration. Bottom caption: "Use this creature board as a visual reference for consistent depiction of the creature across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42313,7 +42336,7 @@ var GENERATE_IMAGE_PRESETS = [
42313
42336
  description: "Connect a photo \u2192 dense vehicle sheet; reuse it as a reference for consistent shots.",
42314
42337
  group: "Reference Sheet",
42315
42338
  data: {
42316
- provider: "nano-banana-pro",
42339
+ provider: "gpt-image-2",
42317
42340
  aspectRatio: "16:9",
42318
42341
  resolution: "2K",
42319
42342
  promptPrefix: `Create a single high-resolution, densely packed vehicle reference sheet titled "VEHICLE BOARD" using the attached photo of the vehicle as the single source of truth for its body shape, proportions, paintwork, trim, wheels and condition. The same vehicle must appear in every panel \u2014 identical model, identical colorway, markings and wear. All on-image labels in ENGLISH. Editorial vehicle-reference layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade transportation-design UI. The composition should feel organized but not rigidly locked: allow the hero shot, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large three-quarter hero shot with a metadata block: NAME \xB7 TYPE \xB7 ERA \xB7 SCALE \xB7 BODY & MATERIALS \xB7 FINISH \xB7 SEATS \xB7 TOP SPEED \xB7 SIGNATURE FEATURE \xB7 ROLE. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 studio shots, identical lighting): FRONT \xB7 3/4 \xB7 SIDE \xB7 BACK \xB7 TOP-DOWN. PANEL 02 \u2014 INTERIOR / CABIN (4 close shots): cockpit through the window \xB7 dashboard detail \xB7 seats or cargo area \xB7 driver POV. PANEL 03 \u2014 DETAIL MACROS (4): headlight or light cluster \xB7 wheel and tire \xB7 badge or panel line \xB7 paint and wear close-up. PANEL 04 \u2014 IN MOTION (4 staged frames): driving straight \xB7 cornering \xB7 parked on an incline \xB7 night with headlights on. PANEL 05 \u2014 LIGHTING / MOOD (4 same-angle hero shots): DESERT MIDDAY \xB7 GOLDEN HOUR \xB7 STORMY OVERCAST \xB7 NIGHT NEON. PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the paintwork and trim. Bottom caption: "Use this vehicle board as a visual reference for consistent depiction of the vehicle across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42327,7 +42350,7 @@ var GENERATE_IMAGE_PRESETS = [
42327
42350
  description: "Connect a photo \u2192 dense dish sheet; reuse it as a reference for consistent food shots.",
42328
42351
  group: "Reference Sheet",
42329
42352
  data: {
42330
- provider: "nano-banana-pro",
42353
+ provider: "gpt-image-2",
42331
42354
  aspectRatio: "16:9",
42332
42355
  resolution: "2K",
42333
42356
  promptPrefix: `Create a single high-resolution, densely packed dish reference sheet titled "FOOD BOARD" using the attached photo of the dish as the single source of truth for its ingredients, plating, colors, textures and garnish. The same dish must appear in every panel \u2014 identical recipe, identical plating, bowl or plate, and props. All on-image labels in ENGLISH. Editorial culinary-reference layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade food-styling UI. The composition should feel organized but not rigidly locked: allow the hero shot, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large appetizing hero shot with a metadata block: DISH NAME \xB7 CUISINE \xB7 CATEGORY \xB7 KEY INGREDIENTS \xB7 TEXTURES \xB7 GARNISH \xB7 SERVED \xB7 AUDIENCE. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 PLATING ANGLES (5 beauty shots, identical styling): TOP-DOWN \xB7 3/4 HERO \xB7 SIDE \xB7 EXTREME CLOSE-UP \xB7 IN HAND OR WITH UTENSIL. PANEL 02 \u2014 INGREDIENT BREAKDOWN (5 isolated ingredient studies on a dark background). PANEL 03 \u2014 DETAIL MACROS (4): surface texture \xB7 glaze or sauce sheen \xB7 steam or freshness cue \xB7 garnish detail. PANEL 04 \u2014 IN CONTEXT (4 staged frames): steam rising \xB7 utensil lifting a bite \xB7 sauce pour frozen mid-action \xB7 hands holding the dish. PANEL 05 \u2014 LIGHTING / MOOD (4 same-angle hero shots): WARM APPETIZING \xB7 COOL EDITORIAL \xB7 HARD COMMERCIAL \xB7 MOODY DRAMATIC. PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the dish and plating. Bottom caption: "Use this food board as a visual reference for consistent depiction of the dish across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Commercial.`,
@@ -42341,7 +42364,7 @@ var GENERATE_IMAGE_PRESETS = [
42341
42364
  description: "Connect a mascot image \u2192 brand-character sheet with brand applications; reuse it for a consistent mascot.",
42342
42365
  group: "Reference Sheet",
42343
42366
  data: {
42344
- provider: "nano-banana-pro",
42367
+ provider: "gpt-image-2",
42345
42368
  aspectRatio: "16:9",
42346
42369
  resolution: "2K",
42347
42370
  promptPrefix: `Create a single high-resolution, densely packed mascot reference sheet titled "MASCOT BOARD" using the attached image of the mascot as the single source of truth for its design, proportions, colors, materials and personality. The same mascot must appear in every panel \u2014 identical design, identical colors and details \u2014 rendered in the mascot's native art style read from the attached image (illustrated, plush, costumed or 3D), never drifting between styles. All on-image labels in ENGLISH. Editorial brand-character layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade brand-design UI. The composition should feel organized but not rigidly locked: allow the hero pose, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large hero pose with a metadata block: MASCOT NAME \xB7 BRAND \xB7 CATEGORY \xB7 MATERIAL / STYLE \xB7 PERSONALITY \xB7 CATCHPHRASE \xB7 SIZE \xB7 USE CASES. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 full-body angles, identical lighting): FRONT \xB7 3/4 LEFT \xB7 SIDE \xB7 BACK \xB7 3/4 RIGHT. PANEL 02 \u2014 EXPRESSIONS (6 head studies): HAPPY \xB7 WAVING \xB7 SHOCKED \xB7 WINKING \xB7 SLEEPY \xB7 CURIOUS. PANEL 03 \u2014 DETAIL MACROS (3): face detail \xB7 material or texture close-up \xB7 signature accessory. PANEL 04 \u2014 BRAND APPLICATIONS (4 mockups): on product packaging \xB7 on a storefront sign \xB7 in a print ad \xB7 on merch. PANEL 05 \u2014 POSES (4 action poses): GREETING \xB7 CELEBRATING \xB7 PRESENTING \xB7 THUMBS-UP. PANEL 06 \u2014 BRAND COLOR PALETTE: 6 swatches with HEX codes from the mascot's colors. Bottom caption: "Use this mascot board as a visual reference for consistent depiction of the mascot across all generations." Bottom-right tags: STYLE \xB7 Brand \xB7 Character \xB7 Consistent.`,
@@ -42355,7 +42378,7 @@ var GENERATE_IMAGE_PRESETS = [
42355
42378
  description: "Connect a sharp photo \u2192 dense pet sheet; reuse it as a reference for consistent shots.",
42356
42379
  group: "Reference Sheet",
42357
42380
  data: {
42358
- provider: "nano-banana-pro",
42381
+ provider: "gpt-image-2",
42359
42382
  aspectRatio: "16:9",
42360
42383
  resolution: "2K",
42361
42384
  promptPrefix: `Create a single high-resolution, densely packed pet reference sheet titled "PET BOARD" using the attached photo of the pet as the single source of truth for its species, breed, coat colors, markings, eyes and build. The same animal must appear in every panel \u2014 identical markings, identical proportions, identical collar or accessories. All on-image labels in ENGLISH. Editorial reference-board layout with a dark near-black background, thin yellow neon accent light, faint film-grain overlay, and production-grade character-design UI. The composition should feel organized but not rigidly locked: allow the hero portrait, metadata, and supporting panels to shift position naturally while remaining readable, balanced, and premium. Design the board to adapt cleanly to different aspect ratios without depending on a fixed left-column layout. Include a large hero portrait with a metadata block: NAME \xB7 SPECIES \xB7 BREED \xB7 AGE \xB7 SIZE \xB7 COAT & MARKINGS \xB7 EYES \xB7 COLLAR / ACCESSORIES \xB7 TEMPERAMENT \xB7 SIGNATURE BEHAVIOR. Also include six content groupings \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 VIEWS (5 full-body angles, neutral stance, identical lighting): FRONT \xB7 3/4 \xB7 SIDE \xB7 BACK \xB7 TOP-DOWN. PANEL 02 \u2014 EXPRESSIONS & MOODS (6 head studies): ALERT \xB7 CURIOUS \xB7 PLAYFUL \xB7 SLEEPY \xB7 GRUMPY \xB7 HAPPY. PANEL 03 \u2014 DETAIL MACROS (4): eye close-up \xB7 coat or fur texture \xB7 paw detail \xB7 collar tag or accessory. PANEL 04 \u2014 POSES (5 natural poses): SITTING \xB7 LYING DOWN \xB7 WALKING \xB7 PLAYING \xB7 CURLED ASLEEP. PANEL 05 \u2014 LIGHTING / MOOD (4 same-pose portraits): SOFT WINDOW LIGHT \xB7 GOLDEN HOUR \xB7 COOL BLUE NIGHT \xB7 DRAMATIC RIM-LIGHT. PANEL 06 \u2014 COLOR PALETTE: 6 swatches with HEX codes from the coat and accessories. Bottom caption: "Use this pet board as a visual reference for consistent depiction of the pet across all generations." Bottom-right tags: STYLE \xB7 Modern \xB7 Realistic \xB7 Cinematic.`,
@@ -42366,15 +42389,16 @@ var GENERATE_IMAGE_PRESETS = [
42366
42389
  // ── Cast & Consistency (clean grids per the multi-character workflow:
42367
42390
  // sterile neutral-background reference grids built to be FED BACK as identity
42368
42391
  // anchors — unlike the editorial boards above, decoration here is noise.
42369
- // nano-banana-2 per the source guide: cheaper/faster per attempt with strong
42370
- // practical consistency; 4K so panel faces stay sharp when reused as refs.) ──
42392
+ // GPT Image 2 (decided 2026-10-08 from the image model bake-off: it built the
42393
+ // best reference grid and kept both identities on the cast sheet); 4K so
42394
+ // panel faces stay sharp when reused as refs.) ──
42371
42395
  {
42372
42396
  id: "generate-image/character-reference-grid",
42373
42397
  name: "Character Reference Grid",
42374
42398
  description: "Connect a photo \u2192 clean 4-angle identity grid (no decorations) \u2014 the strongest consistency anchor.",
42375
42399
  group: "Cast & Consistency",
42376
42400
  data: {
42377
- provider: "nano-banana-2",
42401
+ provider: "gpt-image-2",
42378
42402
  aspectRatio: "3:4",
42379
42403
  resolution: "4K",
42380
42404
  promptPrefix: `Create a clean character reference grid using the attached photo of the person as the single source of truth for face, hair, eyes, skin tone, build and outfit. Four equal panels arranged in a tidy two-by-two grid on a single seamless neutral light-grey studio background: a tight front-facing portrait close-up, a 3/4-view portrait, a full-body shot from the front in a relaxed neutral stance, and a full-body shot from the back. The SAME person in every panel \u2014 identical age, features, hairstyle and outfit from the attached photo. Identical soft, even studio lighting in all four panels with no dramatic shadows. No decorations, no background props, no text, no UI elements \u2014 a sterile, production-neutral reference sheet built to be reused as an identity reference in later generations.`,
@@ -42388,7 +42412,7 @@ var GENERATE_IMAGE_PRESETS = [
42388
42412
  description: "Connect 2\u20134 character refs \u2192 one labeled cast sheet; then reference cast members by name in scenes.",
42389
42413
  group: "Cast & Consistency",
42390
42414
  data: {
42391
- provider: "nano-banana-2",
42415
+ provider: "gpt-image-2",
42392
42416
  aspectRatio: "3:4",
42393
42417
  resolution: "4K",
42394
42418
  prompt: `Create a clean multi-character cast reference sheet composed as horizontal strips stacked vertically in one image \u2014 one strip per character from the attached reference images, in the order they are attached, using exactly as many strips as there are attached characters. Each strip shows that character in four aligned studio panels: tight front portrait close-up \xB7 3/4 portrait \xB7 full body front \xB7 full body back, all in a relaxed neutral stance. Label each strip on the left edge with the character's name in clean bold lettering: {character names || ALEX \xB7 MAYA \xB7 SAM}. Every character must match their attached reference exactly \u2014 same face, hair, skin tone, build and outfit \u2014 with no identity blending between rows. Single seamless neutral light-grey studio background across the whole sheet, identical soft even lighting in every panel, consistent panel sizing and alignment. No decorations, no props, no UI elements beyond the row name labels. A sterile production casting sheet built to be reused as the single identity reference for this cast in later generations. Photorealistic, sharp focus, natural skin texture, true-to-life color.`,
@@ -42401,7 +42425,7 @@ var GENERATE_IMAGE_PRESETS = [
42401
42425
  description: "Connect a cast grid \u2192 stage a scene naming the characters; never re-describe their looks.",
42402
42426
  group: "Cast & Consistency",
42403
42427
  data: {
42404
- provider: "nano-banana-2",
42428
+ provider: "gpt-image-2",
42405
42429
  aspectRatio: "16:9",
42406
42430
  resolution: "2K",
42407
42431
  prompt: `Using the attached character reference sheet as the single source of truth for every named character's face, hair, build and outfit, generate one photorealistic scene: {scene || ALEX and MAYA share a quiet laugh at the counter of a sunlit ramen bar while SAM studies the menu}. Refer to the characters ONLY by the names labeled on the reference sheet and keep each one perfectly consistent with their reference row \u2014 do not invent new physical traits, do not blend identities, and do not alter outfits unless the scene says so. Stage them naturally in the environment with believable eye-lines, interactions and spacing. Cinematic photography, 35mm lens look with gentle depth of field, soft motivated lighting that matches the location, cohesive filmic color grade, natural skin texture, sharp detail on every character.`,
@@ -42485,7 +42509,7 @@ var GENERATE_IMAGE_PRESETS = [
42485
42509
  description: "Moody, shallow-depth portrait look.",
42486
42510
  group: "Photography & Cinematic",
42487
42511
  data: {
42488
- provider: "nano-banana-pro",
42512
+ provider: "gpt-image-2",
42489
42513
  aspectRatio: "9:16",
42490
42514
  prompt: "cinematic portrait of {subject || a pensive young man with stubble}, 85mm lens at f/1.8, shallow depth of field with creamy bokeh, soft key with warm rim separation against a moody low-key background, gentle film grain, filmic teal-and-amber grade, natural skin texture, tack-sharp eyes",
42491
42515
  negativePrompt: "flat lighting, deep focus, plastic skin, blown highlights, extra fingers, lowres, deformed, watermark, text"
@@ -42497,7 +42521,7 @@ var GENERATE_IMAGE_PRESETS = [
42497
42521
  description: "Film-grade scene, dramatic lighting.",
42498
42522
  group: "Photography & Cinematic",
42499
42523
  data: {
42500
- provider: "nano-banana-pro",
42524
+ provider: "gpt-image-2",
42501
42525
  aspectRatio: "16:9",
42502
42526
  prompt: "cinematic film still of {subject || a lone detective in a rain-slicked alley at night}, anamorphic lens at 40mm and f/2, shallow depth of field with oval bokeh and subtle horizontal flares, dramatic motivated key light with deep falloff, off-center framing with negative space, tense noir mood in a moody teal-and-amber grade, fine film grain, photoreal detail",
42503
42527
  negativePrompt: "flat lighting, deep focus, oversaturated, washed out, video-game render, lowres, deformed, watermark, text"
@@ -42521,7 +42545,7 @@ var GENERATE_IMAGE_PRESETS = [
42521
42545
  description: "Soft-lit 85mm studio headshot.",
42522
42546
  group: "Photography & Cinematic",
42523
42547
  data: {
42524
- provider: "nano-banana-pro",
42548
+ provider: "nano-banana-2-1",
42525
42549
  aspectRatio: "4:5",
42526
42550
  prompt: "studio portrait of {subject || a confident woman with sleek dark hair}, 85mm lens at f/2.8, shallow depth of field, soft octabox key with gentle fill and a subtle hair light, clean seamless gray backdrop, tight head-and-shoulders framing, polished editorial mood with a neutral true-to-life palette, natural skin texture, catchlights and tack-sharp eyes",
42527
42551
  negativePrompt: "harsh shadows, plastic skin, over-retouched, blown highlights, busy background, extra fingers, lowres, deformed, watermark, text"
@@ -42533,7 +42557,7 @@ var GENERATE_IMAGE_PRESETS = [
42533
42557
  description: "Clean professional headshot.",
42534
42558
  group: "Photography & Cinematic",
42535
42559
  data: {
42536
- provider: "nano-banana-pro",
42560
+ provider: "gpt-image-2",
42537
42561
  aspectRatio: "1:1",
42538
42562
  prompt: "professional corporate headshot of {subject || a friendly executive in a tailored navy blazer}, 85mm lens at f/4, soft even three-point lighting with a broad key and clean fill, smooth neutral gray-blue background, centered head-and-shoulders framing, approachable confident expression, crisp business mood with a clean neutral palette, sharp focus and natural skin texture",
42539
42563
  negativePrompt: "harsh shadows, busy background, casual snapshot, over-retouched, plastic skin, extra fingers, lowres, deformed, watermark, text"
@@ -42557,7 +42581,7 @@ var GENERATE_IMAGE_PRESETS = [
42557
42581
  description: "High-contrast editorial mono.",
42558
42582
  group: "Photography & Cinematic",
42559
42583
  data: {
42560
- provider: "nano-banana-pro",
42584
+ provider: "nano-banana-2-1",
42561
42585
  aspectRatio: "4:5",
42562
42586
  prompt: "black and white editorial portrait of {subject || a weathered old fisherman with a lined face}, 85mm lens at f/2, shallow depth of field, dramatic single-source chiaroscuro with deep falloff, tight off-center framing, timeless brooding mood with a rich high-contrast monochrome tonal range, deep blacks and luminous highlights, fine silver grain, sharp eyes and natural skin texture",
42563
42587
  negativePrompt: "color, muddy gray tones, flat lighting, low contrast, plastic skin, extra fingers, lowres, deformed, watermark, text"
@@ -42581,7 +42605,7 @@ var GENERATE_IMAGE_PRESETS = [
42581
42605
  description: "Appetizing 45\xB0 hero shot.",
42582
42606
  group: "Photography & Cinematic",
42583
42607
  data: {
42584
- provider: "nano-banana-pro",
42608
+ provider: "nano-banana-2-1",
42585
42609
  aspectRatio: "4:5",
42586
42610
  prompt: "appetizing hero food photograph of {dish || a rustic bowl of ramen with a soft-boiled egg}, 50mm lens at f/2.8, shallow depth of field, soft diffused window light from the side with a gentle fill, 45-degree angle on a weathered rustic surface, props and steam fading into a clean background, warm mouth-watering mood with natural color, fresh garnish, glistening textures and crisp focus on the hero",
42587
42611
  negativePrompt: "unappetizing, plastic look, fake glossy food, messy spills, dull colors, harsh flash, lowres, deformed, watermark, text"
@@ -42593,7 +42617,7 @@ var GENERATE_IMAGE_PRESETS = [
42593
42617
  description: "Overhead styled food spread.",
42594
42618
  group: "Photography & Cinematic",
42595
42619
  data: {
42596
- provider: "nano-banana-pro",
42620
+ provider: "gpt-image-2",
42597
42621
  aspectRatio: "1:1",
42598
42622
  prompt: "overhead flat-lay food photograph of {dish || a colorful brunch spread with coffee and pastries}, 35mm lens at f/5.6 with even focus, perfect top-down ninety-degree angle, soft diffused daylight casting gentle natural shadows, balanced styled arrangement with breathing room and scattered ingredients, fresh vibrant editorial mood with a clean color palette on a textured surface, crisp appetizing detail",
42599
42623
  negativePrompt: "cluttered, overcrowded, tilted angle, harsh shadows, plastic look, dull colors, lowres, deformed, watermark, text"
@@ -42630,7 +42654,7 @@ var GENERATE_IMAGE_PRESETS = [
42630
42654
  description: "Front / side / back, T-pose.",
42631
42655
  group: "Characters",
42632
42656
  data: {
42633
- provider: "nano-banana-pro",
42657
+ provider: "gpt-image-2",
42634
42658
  aspectRatio: "16:9",
42635
42659
  prompt: "full-body character turnaround model sheet of {character description || a rugged space mercenary with a scarred jaw and worn leather armor}, three matching views in a row \u2014 front, side profile, and back \u2014 held in a clean T-pose with a neutral expression, identical proportions and costume details across all three views, flat even studio lighting with no harsh shadows so every view reads the same, evenly spaced on a plain light-grey backdrop, crisp concept-art model-sheet style, clean line work and consistent color palette across panels",
42636
42660
  negativePrompt: "inconsistent design between views, mismatched proportions, extra limbs, deformed anatomy, dynamic pose, dramatic shadows, busy background, watermark, text"
@@ -42642,7 +42666,7 @@ var GENERATE_IMAGE_PRESETS = [
42642
42666
  description: "Four dynamic full-body poses.",
42643
42667
  group: "Characters",
42644
42668
  data: {
42645
- provider: "nano-banana-pro",
42669
+ provider: "gpt-image-2",
42646
42670
  aspectRatio: "16:9",
42647
42671
  prompt: "character action model sheet of {character description || a nimble rogue archer in a hooded green cloak}, four distinct full-body dynamic action poses in a row \u2014 running, leaping, attacking, landing \u2014 strictly consistent face, character design, and outfit across every pose, full-figure framing with confident gesture and clear silhouettes, even studio lighting that stays identical across all four poses, plain neutral backdrop, energetic concept-art model sheet, clean linework and matching color palette",
42648
42672
  negativePrompt: "inconsistent design between poses, changed outfit, deformed anatomy, extra limbs, fused figures, static stiff posture, busy background, watermark, text"
@@ -42654,7 +42678,7 @@ var GENERATE_IMAGE_PRESETS = [
42654
42678
  description: "6 emotions, 2 rows of 3.",
42655
42679
  group: "Characters",
42656
42680
  data: {
42657
- provider: "nano-banana-pro",
42681
+ provider: "nano-banana-2-1",
42658
42682
  aspectRatio: "4:3",
42659
42683
  prompt: "character expression model sheet of {character description || a cheerful freckled teen with messy red hair}, six head-and-shoulders portraits arranged in two even rows of three, labeled emotions in order \u2014 neutral, happy, angry, surprised, sad, determined \u2014 strictly consistent face, hairstyle, and features across every panel with only the expression changing, flat even portrait lighting identical in all six panels, evenly spaced on a plain neutral backdrop, clean concept-art model sheet, natural facial detail and matching color palette",
42660
42684
  negativePrompt: "inconsistent face, drifting features, changed hairstyle, deformed, asymmetrical eyes, uneven lighting, busy background, watermark, garbled text"
@@ -42666,7 +42690,7 @@ var GENERATE_IMAGE_PRESETS = [
42666
42690
  description: "4\xD74 emotion grid, one face.",
42667
42691
  group: "Characters",
42668
42692
  data: {
42669
- provider: "nano-banana-pro",
42693
+ provider: "nano-banana-2-1",
42670
42694
  aspectRatio: "1:1",
42671
42695
  prompt: "16-panel character expression grid of {character description || a stoic silver-haired knight with a faint scar}, evenly spaced 4x4 layout of head-and-shoulders portraits, sixteen distinct facial emotions ranging from calm to intense, strictly consistent face, hairstyle, and design across every cell with only the expression changing, flat even portrait lighting identical in all panels, plain neutral backdrop, clean concept-art model sheet, natural facial detail and matching color palette",
42672
42696
  negativePrompt: "inconsistent face, drifting features, changed hairstyle, deformed, asymmetrical eyes, uneven panels, uneven lighting, busy background, watermark, text"
@@ -42678,7 +42702,7 @@ var GENERATE_IMAGE_PRESETS = [
42678
42702
  description: "Same character, 4 outfits.",
42679
42703
  group: "Characters",
42680
42704
  data: {
42681
- provider: "nano-banana-pro",
42705
+ provider: "gpt-image-2",
42682
42706
  aspectRatio: "16:9",
42683
42707
  prompt: "outfit variation model sheet of {character description || a confident young woman with a sleek dark bob}, the same character shown full-body in four different complete outfits side by side \u2014 casual, formal, athletic, seasonal \u2014 strictly consistent face, body, and hairstyle across all four with only the wardrobe changing, full-figure framing in a relaxed standing pose, flat even studio lighting identical across every panel, evenly spaced on a plain neutral backdrop, clean concept-art model sheet, matching color palette and crisp fabric detail",
42684
42708
  negativePrompt: "inconsistent face, changed body or hairstyle, deformed, mismatched proportions, repeated identical outfit, busy background, watermark, text"
@@ -42702,7 +42726,7 @@ var GENERATE_IMAGE_PRESETS = [
42702
42726
  description: "Cute super-deformed poses.",
42703
42727
  group: "Characters",
42704
42728
  data: {
42705
- provider: "nano-banana-pro",
42729
+ provider: "nano-banana-2-1",
42706
42730
  aspectRatio: "1:1",
42707
42731
  prompt: "chibi character model sheet of {character description || a tiny brave knight with oversized armor}, adorable super-deformed proportions with a big head and small body, several cute mini full-body poses arranged across the sheet, strictly consistent design and color palette across every pose, soft even flat lighting identical across all poses, evenly spaced on a plain pastel backdrop, clean bold outlines and flat cel shading, charming concept-art model sheet",
42708
42732
  negativePrompt: "realistic proportions, inconsistent design, deformed, off-model, gritty shading, busy background, watermark, text"
@@ -42726,7 +42750,7 @@ var GENERATE_IMAGE_PRESETS = [
42726
42750
  description: "Dynamic full-body hero shot.",
42727
42751
  group: "Characters",
42728
42752
  data: {
42729
- provider: "nano-banana-pro",
42753
+ provider: "gpt-image-2-5-sunburst",
42730
42754
  aspectRatio: "2:3",
42731
42755
  prompt: "full-body hero shot of {character description || a heroic armored warrior with a flowing crimson cape}, cinematic character key art, confident dynamic power pose, dramatic rim lighting with a warm key and cool back-light carving the silhouette, low camera angle for an imposing heroic stance, softly blurred atmospheric background, bold dramatic color grade, intricately detailed costume and crisp material textures",
42732
42756
  negativePrompt: "flat lighting, static stiff pose, lowres, deformed, extra limbs, cropped feet, cluttered background, blurry, watermark, text"
@@ -42738,7 +42762,7 @@ var GENERATE_IMAGE_PRESETS = [
42738
42762
  description: "Concept creature, multi-angle.",
42739
42763
  group: "Characters",
42740
42764
  data: {
42741
- provider: "nano-banana-pro",
42765
+ provider: "gpt-image-2",
42742
42766
  aspectRatio: "16:9",
42743
42767
  prompt: "creature design model sheet of {creature description || a six-legged bioluminescent forest beast with mossy scales}, several full-body views from multiple angles plus inset anatomy and texture close-ups, strictly consistent species, markings, and proportions across every view, professional creature-concept art, flat even studio lighting identical across all views so the design reads clearly, neatly arranged on a plain neutral backdrop, detailed believable anatomy and crisp surface textures, cohesive color palette",
42744
42768
  negativePrompt: "inconsistent design between views, mismatched proportions, deformed anatomy, extra or missing limbs, dramatic shadows, busy background, watermark, text"
@@ -42750,7 +42774,7 @@ var GENERATE_IMAGE_PRESETS = [
42750
42774
  description: "Centered, bold, clean bg.",
42751
42775
  group: "Characters",
42752
42776
  data: {
42753
- provider: "nano-banana-pro",
42777
+ provider: "gpt-image-2",
42754
42778
  aspectRatio: "1:1",
42755
42779
  prompt: "stylized avatar profile picture of {character or subject || a friendly fox with bright amber eyes}, clean modern character illustration, bold thick outlines with smooth flat shading, soft even front lighting with a gentle glow, perfectly centered head-and-shoulders composition with comfortable margins, vibrant punchy color palette on a clean solid-color background, crisp friendly and instantly readable as a small icon",
42756
42780
  negativePrompt: "off-center, cropped face, busy background, lowres, deformed, muddy colors, harsh shadows, watermark, text"
@@ -42763,7 +42787,7 @@ var GENERATE_IMAGE_PRESETS = [
42763
42787
  description: "Clean e-commerce product photo on white.",
42764
42788
  group: "Product & Commerce",
42765
42789
  data: {
42766
- provider: "nano-banana-pro",
42790
+ provider: "gpt-image-2",
42767
42791
  aspectRatio: "1:1",
42768
42792
  prompt: "e-commerce studio product photograph of {product || a matte-black wireless headphone}, on a seamless pure-white background, 100mm lens at f/8 with deep focus, soft even high-key lighting from a large diffused softbox with gentle fill, perfectly centered with generous margins, clean catalog-ready mood with true-to-life color, crisp edges and accurate material texture",
42769
42793
  negativePrompt: "clutter, props, harsh shadows, blown highlights, color cast, reflections, tilted angle, lowres, deformed, watermark, text"
@@ -42787,7 +42811,7 @@ var GENERATE_IMAGE_PRESETS = [
42787
42811
  description: "Overhead styled arrangement.",
42788
42812
  group: "Product & Commerce",
42789
42813
  data: {
42790
- provider: "nano-banana-pro",
42814
+ provider: "gpt-image-2",
42791
42815
  aspectRatio: "1:1",
42792
42816
  prompt: "overhead flat-lay product photograph of {product || a leather travel wallet} surrounded by complementary props, 35mm lens at f/5.6 with even focus, perfect top-down ninety-degree angle, soft diffused daylight casting gentle natural shadows, balanced styled arrangement with breathing room around the hero, clean modern editorial mood with a cohesive palette on a textured surface, crisp material detail",
42793
42817
  negativePrompt: "cluttered, overcrowded, tilted angle, harsh shadows, dull colors, plastic look, lowres, deformed, watermark, text"
@@ -42799,7 +42823,7 @@ var GENERATE_IMAGE_PRESETS = [
42799
42823
  description: "Box / bottle / pouch render.",
42800
42824
  group: "Product & Commerce",
42801
42825
  data: {
42802
- provider: "nano-banana-pro",
42826
+ provider: "gpt-image-2",
42803
42827
  aspectRatio: "1:1",
42804
42828
  prompt: "photorealistic product packaging mockup of {product || an artisanal coffee brand}, presented as {format || a standing kraft pouch}, with a crisp accurately-printed label wrapping the form, 85mm lens at f/8 with deep focus, soft studio lighting with a subtle highlight and grounded contact shadow, centered hero composition on a clean seamless background, premium retail mood with true-to-life color, sharp legible label artwork and realistic material finish",
42805
42829
  negativePrompt: "distorted label, warped text, misspelled words, floating object, harsh shadows, clutter, lowres, deformed, watermark"
@@ -42823,7 +42847,7 @@ var GENERATE_IMAGE_PRESETS = [
42823
42847
  description: "Premium cosmetic hero shot.",
42824
42848
  group: "Product & Commerce",
42825
42849
  data: {
42826
- provider: "nano-banana-pro",
42850
+ provider: "nano-banana-2-1",
42827
42851
  aspectRatio: "4:5",
42828
42852
  prompt: "luxury beauty product hero shot of {product || a frosted-glass serum bottle with a gold dropper}, 100mm macro lens at f/8 with crisp focus, dramatic single-source key light with a soft gradient falloff and a bright specular edge, fresh water droplets beading on the surface, centered low hero angle on a premium glossy reflective surface, elegant high-end mood with a refined jewel-toned palette, immaculate detail and luminous reflections",
42829
42853
  negativePrompt: "cheap plastic look, fingerprints, dust, busy background, flat lighting, dull colors, lowres, deformed, watermark, text"
@@ -42970,7 +42994,7 @@ var GENERATE_IMAGE_PRESETS = [
42970
42994
  description: "Cinematic key art, title + tagline.",
42971
42995
  group: "Print & Posters",
42972
42996
  data: {
42973
- provider: "nano-banana-pro",
42997
+ provider: "gpt-image-2-5-sunburst",
42974
42998
  aspectRatio: "2:3",
42975
42999
  prompt: "theatrical movie poster for '{TITLE}', cinematic key art in a {genre || gritty sci-fi thriller} mood, dramatic vertical hero composition with a commanding central figure, moody atmospheric lighting with strong rim light and volumetric haze, rich filmic teal-and-amber color grade, bold title treatment along the bottom with a short tagline above it and a small billing-block strip, premium high-detail finish, legible correctly-spelled text",
42976
43000
  negativePrompt: "flat lighting, cluttered composition, amateurish layout, misspelled text, garbled letters, extra limbs, deformed faces, lowres, blurry, watermark"
@@ -42994,7 +43018,7 @@ var GENERATE_IMAGE_PRESETS = [
42994
43018
  description: "Genre cover, title + author.",
42995
43019
  group: "Print & Posters",
42996
43020
  data: {
42997
- provider: "nano-banana-pro",
43021
+ provider: "gpt-image-2-5-sunburst",
42998
43022
  aspectRatio: "2:3",
42999
43023
  prompt: "professional book cover for '{TITLE}' by {AUTHOR}, evocative {genre || literary thriller} mood and symbolic central imagery, vertical composition with a strong focal point, bold title typography across the top and the author name along the bottom with clear hierarchy, atmospheric lighting and a cohesive genre-appropriate color palette, refined bookstore-quality finish, legible correctly-spelled text",
43000
43024
  negativePrompt: "cluttered layout, clashing fonts, generic stock look, misspelled text, garbled letters, deformed faces, lowres, blurry, watermark"
@@ -43043,7 +43067,7 @@ var GENERATE_IMAGE_PRESETS = [
43043
43067
  description: "Cel-shaded anime look.",
43044
43068
  group: "Illustration & Art Styles",
43045
43069
  data: {
43046
- provider: "nano-banana-pro",
43070
+ provider: "gpt-image-2",
43047
43071
  aspectRatio: "16:9",
43048
43072
  style: "anime",
43049
43073
  prompt: "{scene or subject || a girl watching fireworks over a summer festival}, cel-shaded with crisp linework, expressive eyes, soft gradient sky, gentle bloom",
@@ -43056,7 +43080,7 @@ var GENERATE_IMAGE_PRESETS = [
43056
43080
  description: "Inked panel with action.",
43057
43081
  group: "Illustration & Art Styles",
43058
43082
  data: {
43059
- provider: "nano-banana-pro",
43083
+ provider: "gpt-image-2",
43060
43084
  aspectRatio: "4:3",
43061
43085
  style: "comic-book",
43062
43086
  prompt: "{scene || a caped hero landing on a rooftop at dusk}, dynamic comic panel composition, bold ink outlines, motion lines, clear space for a speech bubble",
@@ -43069,7 +43093,7 @@ var GENERATE_IMAGE_PRESETS = [
43069
43093
  description: "Screentone black-and-white.",
43070
43094
  group: "Illustration & Art Styles",
43071
43095
  data: {
43072
- provider: "nano-banana-pro",
43096
+ provider: "gpt-image-2",
43073
43097
  aspectRatio: "3:4",
43074
43098
  style: "manga",
43075
43099
  prompt: "{scene || a swordsman bracing against the wind}, black-and-white manga panel, crisp inking, screentone shading, dramatic low angle, speed lines",
@@ -43121,7 +43145,7 @@ var GENERATE_IMAGE_PRESETS = [
43121
43145
  description: "3/4 axonometric scene.",
43122
43146
  group: "Illustration & Art Styles",
43123
43147
  data: {
43124
- provider: "nano-banana-pro",
43148
+ provider: "gpt-image-2",
43125
43149
  aspectRatio: "1:1",
43126
43150
  style: "isometric",
43127
43151
  prompt: "isometric {building or scene || a cozy corner coffee shop}, true 3/4 axonometric angle, clean miniature game-art forms, soft even lighting, tidy modular detail",
@@ -43134,7 +43158,7 @@ var GENERATE_IMAGE_PRESETS = [
43134
43158
  description: "Retro low-res pixel grid.",
43135
43159
  group: "Illustration & Art Styles",
43136
43160
  data: {
43137
- provider: "nano-banana-pro",
43161
+ provider: "gpt-image-2",
43138
43162
  aspectRatio: "1:1",
43139
43163
  style: "pixel-art",
43140
43164
  prompt: "{subject || a hero exploring a torch-lit dungeon}, retro 16-bit pixel art, crisp pixel grid, limited dithered palette, hard-edged sprite detail",
@@ -43147,7 +43171,7 @@ var GENERATE_IMAGE_PRESETS = [
43147
43171
  description: "Polished CG character look.",
43148
43172
  group: "Illustration & Art Styles",
43149
43173
  data: {
43150
- provider: "nano-banana-pro",
43174
+ provider: "gpt-image-2",
43151
43175
  aspectRatio: "1:1",
43152
43176
  style: "pixar-3d",
43153
43177
  prompt: "{character or subject || a curious round-cheeked kid with big expressive eyes}, polished 3D animated render, soft subsurface skin, warm key light with gentle bounce, charming appeal",
@@ -43172,7 +43196,7 @@ var GENERATE_IMAGE_PRESETS = [
43172
43196
  description: "Bold linework, isolated.",
43173
43197
  group: "Illustration & Art Styles",
43174
43198
  data: {
43175
- provider: "nano-banana-pro",
43199
+ provider: "gpt-image-2-5-sunburst",
43176
43200
  aspectRatio: "2:3",
43177
43201
  prompt: "tattoo flash design of {subject || a roaring tiger with peony flowers} in {tattoo style || bold American traditional} style, confident clean linework with strong outlines, limited tattoo-ink palette, solid black fills and tasteful negative space, single centered motif isolated on a plain white sheet",
43178
43202
  negativePrompt: "photographic background, scene, soft gradients, photorealistic, fine grayscale shading, blurry, lowres, watermark, text"
@@ -43184,7 +43208,7 @@ var GENERATE_IMAGE_PRESETS = [
43184
43208
  description: "Painterly pre-production art.",
43185
43209
  group: "Illustration & Art Styles",
43186
43210
  data: {
43187
- provider: "nano-banana-pro",
43211
+ provider: "gpt-image-2",
43188
43212
  aspectRatio: "16:9",
43189
43213
  style: "concept-art",
43190
43214
  prompt: "concept art of {environment or subject || ancient ruins reclaimed by a glowing jungle}, sweeping sense of scale, atmospheric depth and haze, dramatic god-ray light",
@@ -43200,7 +43224,7 @@ var GENERATE_IMAGE_PRESETS = [
43200
43224
  description: "Plasticine stop-motion look, thumbprints included.",
43201
43225
  group: "Handmade & Stop-Motion",
43202
43226
  data: {
43203
- provider: "nano-banana-pro",
43227
+ provider: "gpt-image-2",
43204
43228
  aspectRatio: "16:9",
43205
43229
  prompt: "{scene || a tiny clay fisherman rowing across a stormy plasticine sea}, tactile stop-motion claymation scene \u2014 real plasticine clay characters and set with visible thumbprints, tool marks, seam lines and a soft matte sheen, miniature studio photography with shallow depth of field and warm practical lighting, handmade Aardman-quality charm. NOT digital CG, NOT a 3D render, NOT 2D illustration \u2014 a physically sculpted miniature scene photographed on a real stop-motion stage",
43206
43230
  negativePrompt: "smooth plastic CGI surface, digital 3d render, 2d illustration, cartoon shading, perfect seamless surfaces, real human actors, lowres, deformed, watermark, text"
@@ -43212,7 +43236,7 @@ var GENERATE_IMAGE_PRESETS = [
43212
43236
  description: "Fuzzy felted-wool miniature.",
43213
43237
  group: "Handmade & Stop-Motion",
43214
43238
  data: {
43215
- provider: "nano-banana-pro",
43239
+ provider: "gpt-image-2",
43216
43240
  aspectRatio: "1:1",
43217
43241
  prompt: "{subject || a round little fox curled in a mossy nest}, needle-felted wool sculpture \u2014 soft wool roving with visible fluffy fibers and a halo of stray strands, glass-bead eyes with a tiny sheen, embroidered nose and stitched details, handcrafted miniature photographed in a cozy diorama with soft window light, Laika-quality handmade charm. NOT digital CG, NOT a 3D render, NOT 2D illustration \u2014 real felted wool photographed up close",
43218
43242
  negativePrompt: "smooth plastic surface, digital 3d render, 2d illustration, real animal fur, photorealistic animal, hard CGI edges, lowres, deformed, watermark, text"
@@ -43224,7 +43248,7 @@ var GENERATE_IMAGE_PRESETS = [
43224
43248
  description: "Stitched-sock character on stage.",
43225
43249
  group: "Handmade & Stop-Motion",
43226
43250
  data: {
43227
- provider: "nano-banana-pro",
43251
+ provider: "gpt-image-2",
43228
43252
  aspectRatio: "4:3",
43229
43253
  prompt: "{character || a cheerful sock-puppet chef holding a tiny wooden spoon}, handmade sock puppet \u2014 thick cotton knit texture, stitched felt mouth, ping-pong-ball eyes with painted pupils, yarn hair, visible seams and hot-glue details, puppet-studio photography with soft even lighting and a simple stage backdrop, Henson-style handmade charm. NOT digital CG, NOT a 3D render, NOT 2D illustration \u2014 a real fabric puppet photographed on a puppet stage",
43230
43254
  negativePrompt: "smooth CGI fabric, digital 3d render, 2d illustration, human face, realistic skin, plastic toy look, lowres, deformed, watermark, text"
@@ -43236,7 +43260,7 @@ var GENERATE_IMAGE_PRESETS = [
43236
43260
  description: "Cut-cardboard craft set, tape & paint.",
43237
43261
  group: "Handmade & Stop-Motion",
43238
43262
  data: {
43239
- provider: "nano-banana-pro",
43263
+ provider: "gpt-image-2",
43240
43264
  aspectRatio: "16:9",
43241
43265
  prompt: "{scene || a rocket launching over a tiny cardboard city}, handmade cardboard-craft diorama \u2014 corrugated cardboard structures with visible cut edges, masking tape, hot-glue joints and hand-painted acrylic surfaces, hand-lettered signs, miniature set photography with warm practical lighting and gentle depth of field, Michel Gondry handmade-prop charm. NOT digital CG, NOT a 3D render, NOT 2D illustration \u2014 a real cardboard miniature set photographed in studio",
43242
43266
  negativePrompt: "clean vector shapes, digital 3d render, 2d illustration, smooth plastic surfaces, real buildings, photoreal city, lowres, deformed, watermark, garbled text"
@@ -43248,7 +43272,7 @@ var GENERATE_IMAGE_PRESETS = [
43248
43272
  description: "Hand-stitched thread on hooped linen.",
43249
43273
  group: "Handmade & Stop-Motion",
43250
43274
  data: {
43251
- provider: "nano-banana-pro",
43275
+ provider: "gpt-image-2",
43252
43276
  aspectRatio: "1:1",
43253
43277
  prompt: "{subject || a songbird on a blossoming branch} rendered as fine hand embroidery \u2014 visible individual thread stitches, satin-stitch fills and chain-stitch outlines, subtle thread sheen, slight fabric pucker around dense stitching, hooped natural linen background with a few loose thread tails, soft daylight craft photography, artisan needlework quality. NOT digital CG, NOT a 3D render, NOT 2D illustration, NOT a print \u2014 real stitched thread on real fabric",
43254
43278
  negativePrompt: "printed fabric, flat digital illustration, 3d render, smooth painted texture, photorealistic subject, lowres, deformed, watermark, text"
@@ -43260,7 +43284,7 @@ var GENERATE_IMAGE_PRESETS = [
43260
43284
  description: "Plasticine dish styled as a commercial.",
43261
43285
  group: "Handmade & Stop-Motion",
43262
43286
  data: {
43263
- provider: "nano-banana-pro",
43287
+ provider: "nano-banana-2-1",
43264
43288
  aspectRatio: "4:5",
43265
43289
  prompt: "{dish || a steaming bowl of ramen with a soft egg and curled noodles} sculpted entirely from plasticine modeling clay and styled as a glossy food commercial \u2014 visible sculpting tool marks, clear gloss varnish standing in for broth sheen, wool-tuft steam, clay ingredients with charming hand-modeled imperfection, miniature studio food-commercial lighting with a warm appetizing key, Aardman-quality handmade charm. NOT real food photography, NOT digital CG, NOT a 3D render, NOT 2D illustration \u2014 a physically sculpted clay dish photographed like a commercial",
43266
43290
  negativePrompt: "real food, photorealistic food, digital 3d render, 2d illustration, smooth plastic CGI, melted shapeless clay, unappetizing, lowres, watermark, text"
@@ -43309,7 +43333,7 @@ var GENERATE_IMAGE_PRESETS = [
43309
43333
  description: "Single cohesive aesthetic tile.",
43310
43334
  group: "Film & Storyboard",
43311
43335
  data: {
43312
- provider: "nano-banana-pro",
43336
+ provider: "gpt-image-2",
43313
43337
  aspectRatio: "1:1",
43314
43338
  prompt: "single cohesive mood-board tile capturing {aesthetic or theme || warm Scandinavian minimalism}, one unified evocative image \u2014 not a collage or grid, soft natural lighting with gentle texture and tactile materials, balanced editorial composition, restrained {color palette || muted oat, sage and terracotta} grade, calm atmospheric mood, crisp tasteful detail",
43315
43339
  negativePrompt: "collage, grid, split panels, multiple frames, text, labels, busy clutter, watermark, lowres"
@@ -43358,7 +43382,7 @@ var GENERATE_IMAGE_PRESETS = [
43358
43382
  description: "Bright, inviting listing shot.",
43359
43383
  group: "Architecture & Interiors",
43360
43384
  data: {
43361
- provider: "nano-banana-pro",
43385
+ provider: "gpt-image-2",
43362
43386
  aspectRatio: "16:9",
43363
43387
  prompt: "professional real estate photograph of {property || a bright open-concept living room with patio doors}, wide-angle architectural lens with straight true verticals and corrected perspective, bright airy natural daylight balanced with warm interior fill for a high-dynamic-range look, clean tasteful staging with uncluttered surfaces, welcoming aspirational mood with a fresh neutral palette, accurate geometry and crisp listing-ready detail",
43364
43388
  negativePrompt: "distorted geometry, warped perspective, bent verticals, fisheye bulge, dark, dingy, cluttered, lowres, watermark, text"
@@ -43383,7 +43407,7 @@ var GENERATE_IMAGE_PRESETS = [
43383
43407
  description: "Glossy RPG inventory icon.",
43384
43408
  group: "Icons, Game Assets & Textures",
43385
43409
  data: {
43386
- provider: "nano-banana-pro",
43410
+ provider: "gpt-image-2",
43387
43411
  aspectRatio: "1:1",
43388
43412
  prompt: "polished RPG inventory game icon of {item || a glowing enchanted health potion in a crystal vial}, rounded glossy 3D style with smooth beveled edges and a subtle inner glow, soft studio key light with a bright specular highlight and a faint magical rim, single object perfectly centered with generous margins, isolated on a clean dark gradient background, vibrant saturated game-art palette, crisp readable silhouette at small sizes",
43389
43413
  negativePrompt: "flat, 2d, lowres, cluttered background, multiple objects, busy scene, harsh shadows, watermark, text"
@@ -43395,7 +43419,7 @@ var GENERATE_IMAGE_PRESETS = [
43395
43419
  description: "Tileable PBR-style material.",
43396
43420
  group: "Icons, Game Assets & Textures",
43397
43421
  data: {
43398
- provider: "nano-banana-pro",
43422
+ provider: "gpt-image-2",
43399
43423
  aspectRatio: "1:1",
43400
43424
  prompt: "seamless tileable PBR-style surface texture of {material || weathered mossy cobblestone}, perfectly repeating with no visible seams, dead-flat top-down orthographic view, even diffuse flat lighting across the whole frame with no shadows or hotspots, edges that wrap cleanly when tiled, fine high-resolution material detail, true-to-life color, crisp uniform grain",
43401
43425
  negativePrompt: "visible seams, perspective, lighting gradient, shadows, vignette, hotspots, single object, foreground subject, lowres, watermark, text"
@@ -43419,7 +43443,7 @@ var GENERATE_IMAGE_PRESETS = [
43419
43443
  description: "Glossy 3D emoji variations.",
43420
43444
  group: "Icons, Game Assets & Textures",
43421
43445
  data: {
43422
- provider: "nano-banana-pro",
43446
+ provider: "gpt-image-2",
43423
43447
  aspectRatio: "1:1",
43424
43448
  prompt: "a set of glossy 3D emoji-style reaction icons of {subject || a round smiling yellow face}, several distinct expressions arranged in an even grid \u2014 happy, laughing, surprised, sad, angry, love \u2014 strictly consistent style, shading, and proportions across every icon with only the expression changing, smooth rounded inflatable forms with a candy-gloss finish, soft even studio lighting identical on each icon with a bright specular highlight, evenly spaced on a clean plain background, vibrant saturated palette, crisp and instantly readable at small sizes",
43425
43449
  negativePrompt: "inconsistent style, mismatched shading, off-model, realistic photo, flat 2d, muddy colors, cluttered background, lowres, watermark, text"
@@ -43431,7 +43455,7 @@ var GENERATE_IMAGE_PRESETS = [
43431
43455
  description: "Game-ready pixel sprite.",
43432
43456
  group: "Icons, Game Assets & Textures",
43433
43457
  data: {
43434
- provider: "nano-banana-pro",
43458
+ provider: "gpt-image-2",
43435
43459
  aspectRatio: "1:1",
43436
43460
  style: "pixel-art",
43437
43461
  prompt: "game-ready sprite of {character or item || a plucky knight with a tiny sword}, crisp clean pixels, bold readable silhouette, limited palette, centered on a plain background",
@@ -43445,7 +43469,7 @@ var GENERATE_IMAGE_PRESETS = [
43445
43469
  description: "Backlit subject, dramatic sky.",
43446
43470
  group: "Photography & Cinematic",
43447
43471
  data: {
43448
- provider: "nano-banana-pro",
43472
+ provider: "gpt-image-2",
43449
43473
  aspectRatio: "16:9",
43450
43474
  prompt: "dramatic silhouette of {subject || a lone figure on a hilltop with arms outstretched}, 50mm lens at f/8 with crisp deep focus, subject fully backlit against a vivid sunset sky and rendered as a clean dark shape with a glowing rim, low-angle composition with the figure off-center on the horizon, bold high-contrast mood in a fiery orange-to-purple gradient, smooth graded sky, minimal interior detail and clean recognizable outline",
43451
43475
  negativePrompt: "flat lighting, front lighting, visible face detail, washed-out sky, muddy tones, lowres, deformed, watermark, text"
@@ -43469,7 +43493,7 @@ var GENERATE_IMAGE_PRESETS = [
43469
43493
  description: "Fake-miniature selective blur.",
43470
43494
  group: "Photography & Cinematic",
43471
43495
  data: {
43472
- provider: "nano-banana-pro",
43496
+ provider: "gpt-image-2",
43473
43497
  aspectRatio: "16:9",
43474
43498
  prompt: "tilt-shift miniature photograph of {scene || a bustling city intersection with tiny cars and crowds}, tilt-shift lens with a narrow band of sharp focus and strong blur above and below, high elevated bird's-eye angle, tiny people and vehicles reading like toys, centered subject band, playful diorama mood with punchy high saturation and crisp clean detail in the focus zone",
43475
43499
  negativePrompt: "uniform sharp focus, eye-level angle, flat colors, dull lighting, realistic scale, lowres, deformed, watermark, text"
@@ -43482,7 +43506,7 @@ var GENERATE_IMAGE_PRESETS = [
43482
43506
  description: "Objects arranged at 90\xB0.",
43483
43507
  group: "Product & Commerce",
43484
43508
  data: {
43485
- provider: "nano-banana-pro",
43509
+ provider: "gpt-image-2",
43486
43510
  aspectRatio: "1:1",
43487
43511
  prompt: "knolling flat-lay photograph of {items || an everyday-carry kit \u2014 knife, pen, watch, wallet and keys}, every object precisely aligned at ninety-degree right angles and evenly spaced in a tidy grid, 35mm lens at f/8 with even edge-to-edge focus, perfect top-down ninety-degree angle, soft diffused overhead light with gentle even shadows, organized symmetrical composition with consistent gaps, satisfying orderly editorial mood with a clean palette on a smooth neutral surface, crisp product detail",
43488
43512
  negativePrompt: "cluttered, messy, overlapping objects, diagonal placement, uneven spacing, tilted angle, harsh shadows, lowres, deformed, watermark, text"
@@ -43494,7 +43518,7 @@ var GENERATE_IMAGE_PRESETS = [
43494
43518
  description: "Invisible-mannequin clothing shot.",
43495
43519
  group: "Product & Commerce",
43496
43520
  data: {
43497
- provider: "nano-banana-pro",
43521
+ provider: "nano-banana-2-1",
43498
43522
  aspectRatio: "4:5",
43499
43523
  prompt: "ghost-mannequin apparel photograph of {garment || a tailored wool blazer}, invisible-mannequin hollow three-dimensional effect with the garment holding its worn shape and a visible hollow neckline and cuffs, 85mm lens at f/8 with deep focus, soft even studio lighting from large diffusers with a subtle grounding shadow, centered front-facing composition on a clean pure-white background, crisp commercial e-commerce mood with true-to-life color, accurate fabric texture and sharp seams",
43500
43524
  negativePrompt: "visible mannequin, body, person, neck, hands, flat lifeless shape, wrinkles, color cast, lowres, deformed, watermark, text"
@@ -43513,14 +43537,14 @@ var GENERATE_IMAGE_PRESETS = [
43513
43537
  name: "Vaporwave",
43514
43538
  description: "80s neon pastel aesthetic.",
43515
43539
  group: "Illustration & Art Styles",
43516
- data: { provider: "nano-banana-pro", aspectRatio: "16:9", style: "vaporwave", prompt: "{subject || a marble bust beside a glowing palm tree}, neon pink-and-cyan glow, retro grid horizon, dreamy gradient sunset, subtle VHS haze", negativePrompt: "muted colors, photorealistic, dull, lowres, watermark, text" }
43540
+ data: { provider: "gpt-image-2", aspectRatio: "16:9", style: "vaporwave", prompt: "{subject || a marble bust beside a glowing palm tree}, neon pink-and-cyan glow, retro grid horizon, dreamy gradient sunset, subtle VHS haze", negativePrompt: "muted colors, photorealistic, dull, lowres, watermark, text" }
43517
43541
  },
43518
43542
  {
43519
43543
  id: "generate-image/cyberpunk-scene",
43520
43544
  name: "Cyberpunk Scene",
43521
43545
  description: "Neon-lit dystopian night.",
43522
43546
  group: "Illustration & Art Styles",
43523
- data: { provider: "nano-banana-pro", aspectRatio: "16:9", style: "cyberpunk", prompt: "{scene || a crowded neon market street}, rain-slicked night with glowing reflections, holographic signage, dense atmospheric haze, moody teal-and-magenta glow", negativePrompt: "daylight, flat lighting, washed out, lowres, deformed, watermark, text" }
43547
+ data: { provider: "gpt-image-2", aspectRatio: "16:9", style: "cyberpunk", prompt: "{scene || a crowded neon market street}, rain-slicked night with glowing reflections, holographic signage, dense atmospheric haze, moody teal-and-magenta glow", negativePrompt: "daylight, flat lighting, washed out, lowres, deformed, watermark, text" }
43524
43548
  },
43525
43549
  {
43526
43550
  id: "generate-image/pop-art",
@@ -43534,21 +43558,21 @@ var GENERATE_IMAGE_PRESETS = [
43534
43558
  name: "Low Poly",
43535
43559
  description: "Faceted geometric 3D.",
43536
43560
  group: "Illustration & Art Styles",
43537
- data: { provider: "nano-banana-pro", aspectRatio: "1:1", style: "low-poly", prompt: "{subject || a stylized mountain fox}, faceted triangular geometry, crisp flat-shaded polygons, clean gradient color blocking, soft studio light", negativePrompt: "smooth surfaces, rounded organic detail, photorealistic, lowres, watermark, text" }
43561
+ data: { provider: "gpt-image-2", aspectRatio: "1:1", style: "low-poly", prompt: "{subject || a stylized mountain fox}, faceted triangular geometry, crisp flat-shaded polygons, clean gradient color blocking, soft studio light", negativePrompt: "smooth surfaces, rounded organic detail, photorealistic, lowres, watermark, text" }
43538
43562
  },
43539
43563
  {
43540
43564
  id: "generate-image/paper-cut",
43541
43565
  name: "Paper Cut",
43542
43566
  description: "Layered cut-paper craft.",
43543
43567
  group: "Illustration & Art Styles",
43544
- data: { provider: "nano-banana-pro", aspectRatio: "1:1", style: "paper-cutout", prompt: "{subject || a fox in a layered forest}, layered cut-paper craft, stacked depth with soft drop shadows between layers, clean torn-and-cut edges, warm tactile palette", negativePrompt: "photorealistic, flat single-layer, smooth gradients, lowres, watermark, text" }
43568
+ data: { provider: "gpt-image-2", aspectRatio: "1:1", style: "paper-cutout", prompt: "{subject || a fox in a layered forest}, layered cut-paper craft, stacked depth with soft drop shadows between layers, clean torn-and-cut edges, warm tactile palette", negativePrompt: "photorealistic, flat single-layer, smooth gradients, lowres, watermark, text" }
43545
43569
  },
43546
43570
  {
43547
43571
  id: "generate-image/stained-glass",
43548
43572
  name: "Stained Glass",
43549
43573
  description: "Leaded colored-glass mosaic.",
43550
43574
  group: "Illustration & Art Styles",
43551
- data: { provider: "nano-banana-pro", aspectRatio: "2:3", style: "stained-glass", prompt: "{subject || a phoenix rising in flames}, bold black leading lines between glowing colored glass panes, luminous backlit jewel tones, symmetrical mosaic composition", negativePrompt: "photorealistic, flat, muddy colors, broken composition, lowres, watermark, text" }
43575
+ data: { provider: "gpt-image-2-5-sunburst", aspectRatio: "2:3", style: "stained-glass", prompt: "{subject || a phoenix rising in flames}, bold black leading lines between glowing colored glass panes, luminous backlit jewel tones, symmetrical mosaic composition", negativePrompt: "photorealistic, flat, muddy colors, broken composition, lowres, watermark, text" }
43552
43576
  },
43553
43577
  // ── Diagrams & Infographics ──────────────────────────────────────────────
43554
43578
  {
@@ -43598,7 +43622,7 @@ var GENERATE_IMAGE_PRESETS = [
43598
43622
  name: "X-Ray / See-Through",
43599
43623
  description: "Internal-structure radiograph look.",
43600
43624
  group: "Illustration & Art Styles",
43601
- data: { provider: "nano-banana-pro", aspectRatio: "4:3", prompt: "x-ray see-through render of {subject || a blooming flower}, translucent body revealing the internal structure and skeleton beneath, glowing luminous white-and-cyan lines on a deep black background, crisp radiograph aesthetic, centered specimen composition", negativePrompt: "opaque solid surface, full color, photorealistic skin, cluttered background, lowres, watermark, text" }
43625
+ data: { provider: "gpt-image-2", aspectRatio: "4:3", prompt: "x-ray see-through render of {subject || a blooming flower}, translucent body revealing the internal structure and skeleton beneath, glowing luminous white-and-cyan lines on a deep black background, crisp radiograph aesthetic, centered specimen composition", negativePrompt: "opaque solid surface, full color, photorealistic skin, cluttered background, lowres, watermark, text" }
43602
43626
  },
43603
43627
  // ── More Icons, Game Assets & Textures ───────────────────────────────────
43604
43628
  {
@@ -43606,7 +43630,7 @@ var GENERATE_IMAGE_PRESETS = [
43606
43630
  name: "3D Icon",
43607
43631
  description: "Glossy single 3D-rendered icon.",
43608
43632
  group: "Icons, Game Assets & Textures",
43609
- data: { provider: "nano-banana-pro", aspectRatio: "1:1", prompt: "a single glossy 3D rendered icon of {subject || a friendly chat bubble}, smooth rounded clay-like form with soft beveled edges, soft studio key light with a gentle gradient falloff, a bright specular highlight and a soft contact shadow, perfectly centered with generous padding, isolated on a clean plain background, vibrant cohesive palette, crisp and readable at small sizes", negativePrompt: "flat, 2d, multiple objects, cluttered background, harsh shadows, photographic scene, lowres, watermark, text" }
43633
+ data: { provider: "gpt-image-2", aspectRatio: "1:1", prompt: "a single glossy 3D rendered icon of {subject || a friendly chat bubble}, smooth rounded clay-like form with soft beveled edges, soft studio key light with a gentle gradient falloff, a bright specular highlight and a soft contact shadow, perfectly centered with generous padding, isolated on a clean plain background, vibrant cohesive palette, crisp and readable at small sizes", negativePrompt: "flat, 2d, multiple objects, cluttered background, harsh shadows, photographic scene, lowres, watermark, text" }
43610
43634
  },
43611
43635
  // ── More Architecture & Interiors ────────────────────────────────────────
43612
43636
  {
@@ -43625,7 +43649,7 @@ var GENERATE_IMAGE_PRESETS = [
43625
43649
  },
43626
43650
  // ── Portrait Transformations (identity-locked, from a connected reference photo) ──
43627
43651
  // Like Stylized Subject, these are TRANSFORM presets: connect a clean front-facing
43628
- // reference portrait and nano-banana-pro rebuilds it. The "Timeless Soul" age
43652
+ // reference portrait and GPT Image 2 rebuilds it. The "Timeless Soul" age
43629
43653
  // progression renders ONE person at several ages in a single studio composite — the
43630
43654
  // whole effect rides on the identity-lock clause (same eyes/brow/nose/ears/bone
43631
43655
  // structure), so it stays one person aging rather than several different people.
@@ -43635,7 +43659,7 @@ var GENERATE_IMAGE_PRESETS = [
43635
43659
  description: "One person at 5 ages, studio line-up. Needs a reference photo.",
43636
43660
  group: "Portrait Transformations",
43637
43661
  data: {
43638
- provider: "nano-banana-pro",
43662
+ provider: "gpt-image-2",
43639
43663
  aspectRatio: "3:4",
43640
43664
  promptPrefix: "Single photorealistic studio composite of the SAME person from the reference image at five stages of life, shoulder-to-shoulder left to right in a smooth age progression: a child around 7, a teen around 15, a young adult around 27, a mature adult around 45, and an elder around 70. Editorial portrait photography, 85mm lens at f/2.8, each figure framed chest-up, all facing camera with the same calm expression. CRITICAL identity lock \u2014 same eyes, eye color, brow, nose, ears, jawline and facial bone structure across every figure, unmistakably the same person; age ONLY via skin texture, fine lines and wrinkles, hairline, hair color (darker in youth, greying with age), and a slight shift in facial fullness. Age-appropriate wardrobe per stage. Even soft cinematic studio key with gentle rim separation, clean dark-grey gradient seamless backdrop, refined neutral grade, natural skin tones, tack-sharp facial detail; the five figures fill the frame.",
43641
43665
  negativePrompt: "different person, inconsistent face between figures, distorted features, identity drift across ages, wrong eye color, plastic skin, deformed, extra fingers, blurry, lowres, watermark, text"
@@ -43647,7 +43671,7 @@ var GENERATE_IMAGE_PRESETS = [
43647
43671
  description: "Same person at 3 ages (~10 / 40 / 75). Needs a reference photo.",
43648
43672
  group: "Portrait Transformations",
43649
43673
  data: {
43650
- provider: "nano-banana-pro",
43674
+ provider: "gpt-image-2",
43651
43675
  aspectRatio: "3:4",
43652
43676
  promptPrefix: "Single photorealistic studio composite of the SAME person from the reference image as a three-age triptych, shoulder-to-shoulder left to right: around age 10, around age 40, and around age 75. Editorial portrait photography, 85mm lens at f/2.8, each figure framed chest-up, facing camera with the same calm expression. CRITICAL identity lock \u2014 same eyes, eye color, brow, nose, ears, jawline and facial bone structure across all three, unmistakably the same person; age ONLY via skin texture, fine lines, hairline, hair color (darker in youth, greying with age), and a slight shift in facial fullness. Age-appropriate clothing per stage. Even soft cinematic studio key light with gentle rim separation, clean dark-grey gradient seamless backdrop, refined neutral grade, natural skin tones, tack-sharp facial detail; the three figures fill the frame.",
43653
43677
  negativePrompt: "different person, inconsistent face between figures, distorted features, identity drift across ages, wrong eye color, plastic skin, deformed, blurry, lowres, watermark, text"
@@ -43659,7 +43683,7 @@ var GENERATE_IMAGE_PRESETS = [
43659
43683
  description: "Monochrome age line-up. Needs a reference photo.",
43660
43684
  group: "Portrait Transformations",
43661
43685
  data: {
43662
- provider: "nano-banana-pro",
43686
+ provider: "gpt-image-2",
43663
43687
  aspectRatio: "3:4",
43664
43688
  promptPrefix: "Single black-and-white photorealistic studio composite of the SAME person from the reference image rendered at five stages of life, shoulder-to-shoulder left to right in a smooth age progression: around 7, 15, 27, 45, and 70. Fine-art monochrome portraiture, 85mm lens at f/2.8, chest-up framing, all facing camera with the same calm expression. CRITICAL identity lock \u2014 same eyes, brow, nose, ears, jawline and facial bone structure across every figure, unmistakably the same person; age ONLY via skin texture, fine lines, hairline, greying hair, and a slight shift in facial fullness. Age-appropriate clothing per stage. Even soft studio key light with gentle rim separation, clean dark-grey gradient backdrop. Deep tonal range from rich blacks to clean highlights, fine silver-gelatin film grain, tack-sharp facial detail; the five figures fill the frame.",
43665
43689
  negativePrompt: "color, color tint, different person, inconsistent face between figures, distorted features, identity drift across ages, plastic skin, deformed, blurry, lowres, watermark, text"
@@ -43671,7 +43695,7 @@ var GENERATE_IMAGE_PRESETS = [
43671
43695
  description: "Same person across the '80s\u20132020s. Needs a reference photo.",
43672
43696
  group: "Portrait Transformations",
43673
43697
  data: {
43674
- provider: "nano-banana-pro",
43698
+ provider: "gpt-image-2",
43675
43699
  aspectRatio: "3:4",
43676
43700
  promptPrefix: "Single photorealistic studio composite of the SAME person from the reference image across five decades, shoulder-to-shoulder left to right with a smooth age progression and period-accurate styling: a 1980s child, a 1990s teen, a 2000s young adult, a 2010s adult, and a 2020s mature adult. Editorial portrait photography, 85mm lens at f/2.8, chest-up framing, all facing camera with the same calm expression. CRITICAL identity lock \u2014 same eyes, eye color, brow, nose, ears, jawline and facial bone structure across every figure, unmistakably the same person; age ONLY via skin texture, fine lines, hairline, hair color, and a slight shift in facial fullness. Style each to its decade in hair and wardrobe with a subtle period-accurate film treatment per decade: 1980s bold colors and big hair, 1990s casual grunge, 2000s frosted tips, 2010s clean modern, 2020s contemporary. Even soft studio key with gentle rim separation, clean dark-grey gradient seamless backdrop, natural skin tones, tack-sharp facial detail; the five figures fill the frame.",
43677
43701
  negativePrompt: "different person, inconsistent face between figures, distorted features, identity drift across decades, anachronistic styling, plastic skin, deformed, blurry, lowres, watermark, text"
@@ -43683,7 +43707,7 @@ var GENERATE_IMAGE_PRESETS = [
43683
43707
  description: "Same person in spring / summer / autumn / winter. Needs a reference photo.",
43684
43708
  group: "Portrait Transformations",
43685
43709
  data: {
43686
- provider: "nano-banana-pro",
43710
+ provider: "gpt-image-2",
43687
43711
  aspectRatio: "3:4",
43688
43712
  promptPrefix: "Single photorealistic studio composite of the SAME person from the reference image in four seasonal looks, shoulder-to-shoulder left to right: spring, summer, autumn, and winter. Editorial portrait photography, 85mm lens at f/2.8, chest-up framing, all facing camera with the same calm expression, all at the SAME age as the reference \u2014 this is seasons, not aging. CRITICAL identity lock \u2014 same eyes, eye color, brow, nose, ears, jawline and facial bone structure across all four figures, unmistakably the same person; ONLY wardrobe, hair styling and a subtle seasonal color grade change. Spring: light pastel layers, fresh airy tone. Summer: light tee, warm sunny tone. Autumn: knit sweater, golden amber tone. Winter: coat and scarf, cool crisp tone. Even soft studio key light with a gentle seasonal color cast and rim separation per figure, clean dark-grey gradient seamless backdrop, natural skin tones, tack-sharp facial detail; the four figures fill the frame.",
43689
43713
  negativePrompt: "different person, inconsistent face between figures, distorted features, aging, age differences between figures, plastic skin, deformed, blurry, lowres, watermark, text"
@@ -43695,7 +43719,7 @@ var GENERATE_IMAGE_PRESETS = [
43695
43719
  description: "Same person at dawn / midday / golden hour / night. Needs a reference photo.",
43696
43720
  group: "Portrait Transformations",
43697
43721
  data: {
43698
- provider: "nano-banana-pro",
43722
+ provider: "gpt-image-2",
43699
43723
  aspectRatio: "3:4",
43700
43724
  promptPrefix: "Single photorealistic composite of the SAME person from the reference image across four times of day, shoulder-to-shoulder left to right: dawn, midday, golden hour, and night. Editorial portrait photography, 85mm lens at f/2.8, chest-up framing, all facing camera with the same calm expression, all at the SAME age as the reference. CRITICAL identity lock \u2014 same eyes, eye color, brow, nose, ears, jawline and facial bone structure across all four figures, unmistakably the same person; ONLY the lighting and color temperature change between figures. Dawn: soft cool blue light. Midday: bright neutral daylight. Golden hour: warm amber backlight with a gentle glow. Night: moody low light with a cool rim. Consistent chest-up framing and a clean dark-grey gradient seamless backdrop, natural skin tones, tack-sharp facial detail; the four figures fill the frame.",
43701
43725
  negativePrompt: "different person, inconsistent face between figures, distorted features, aging, age differences between figures, blown highlights, plastic skin, deformed, blurry, lowres, watermark, text"
@@ -43707,7 +43731,7 @@ var GENERATE_IMAGE_PRESETS = [
43707
43731
  description: "You in an oversized team jersey, studio editorial. Needs a reference photo.",
43708
43732
  group: "Portrait Transformations",
43709
43733
  data: {
43710
- provider: "nano-banana-pro",
43734
+ provider: "nano-banana-2-1",
43711
43735
  aspectRatio: "4:5",
43712
43736
  prompt: "Premium studio editorial portrait of the SAME person from the reference image wearing an oversized modern football jersey in the colors of {team || deep crimson and gold}. Sports-fashion editorial photography, 85mm lens at f/2, shallow depth of field with the subject tack-sharp against a softly blurred background. CRITICAL identity lock \u2014 same eyes, brow, nose, ears, jawline and facial bone structure, unmistakably the same person, exact skin tone preserved. Soft directional stadium-spotlight key with natural shadow depth and a subtle rim; gradient backdrop in the jersey colors with a faint geometric pattern and soft pitch markings; gentle atmospheric haze and light film grain. Confident, relaxed three-quarter pose, rich saturated grade. Crisp fabric weave and clean jersey graphics.",
43713
43737
  negativePrompt: "different person, inconsistent face, distorted features, altered skin tone, distorted or garbled logo, misspelled team name, deformed, extra fingers, blurry, lowres, watermark, text artifacts"
@@ -43715,7 +43739,7 @@ var GENERATE_IMAGE_PRESETS = [
43715
43739
  },
43716
43740
  // ── Stylized Subject + Edits (shared with the deprecating modify-image) ──
43717
43741
  // Transform patterns — work here when a reference image is connected
43718
- // (nano-banana-pro edits it while preserving untouched regions). The
43742
+ // (GPT Image 2.5 Flare edits it while preserving untouched regions). The
43719
43743
  // instruction lives in the prompt, not `style`.
43720
43744
  ...stylizedSubjectFor("generate-image"),
43721
43745
  ...editsFor("generate-image")