@nodaro/prompts 1.34.0 → 1.36.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 +339 -134
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +39 -12
- package/dist/index.d.ts +39 -12
- package/dist/index.js +335 -136
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/__snapshots__/image-bound-reference-tokens-golden.test.ts.snap +1273 -0
- package/src/__tests__/creator-presets.test.ts +214 -1
- package/src/__tests__/factory-presets.test.ts +38 -12
- package/src/__tests__/image-bound-reference-tokens-golden.test.ts +90 -0
- package/src/__tests__/image-unwired-reference-tokens.test.ts +283 -0
- package/src/__tests__/mention-splice-spacing.test.ts +3 -3
- package/src/__tests__/prompt-builder.test.ts +5 -2
- package/src/__tests__/realism-wording.test.ts +41 -0
- package/src/__tests__/unbound-reference-tokens.test.ts +32 -0
- package/src/factory-presets/generate-image.ts +193 -79
- package/src/factory-presets/index.ts +15 -1
- package/src/factory-presets/shared-image.ts +56 -17
- package/src/factory-presets/text.ts +11 -0
- package/src/image-reference-doctrine.ts +7 -3
- package/src/index.ts +1 -0
- package/src/prompt-builder.ts +80 -13
- package/src/prompt-wizard-categories.ts +5 -2
- package/src/provider-prompt-doctrine.ts +2 -2
- package/src/realism-wording.ts +39 -0
- package/src/unbound-reference-tokens.ts +32 -0
- package/src/video-reference-resolver.ts +20 -20
package/dist/index.cjs
CHANGED
|
@@ -23099,9 +23099,9 @@ function renderDescribedReferenceLines(refs) {
|
|
|
23099
23099
|
}
|
|
23100
23100
|
function renderReferenceCaptionLines(videoCaptions, audioCaptions, counts) {
|
|
23101
23101
|
const lines = [];
|
|
23102
|
-
const render = (captions, kind,
|
|
23102
|
+
const render = (captions, kind, cap2) => {
|
|
23103
23103
|
if (!captions) return;
|
|
23104
|
-
for (let i = 0; i < captions.length && i <
|
|
23104
|
+
for (let i = 0; i < captions.length && i < cap2; i++) {
|
|
23105
23105
|
const text = captions[i]?.trim();
|
|
23106
23106
|
if (!text) continue;
|
|
23107
23107
|
lines.push(`@${kind}_${i + 1}: ${text}.`);
|
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
24998
|
-
|
|
24999
|
-
|
|
25000
|
-
|
|
25001
|
-
|
|
25002
|
-
|
|
25003
|
-
|
|
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();
|
|
@@ -25640,17 +25669,17 @@ function composeVideoPromptText(userPrompt, direction, structured, opts) {
|
|
|
25640
25669
|
].filter((c) => c.text.length > 0);
|
|
25641
25670
|
const structuredFragment = structured ? renderStructuredFields(structured) : "";
|
|
25642
25671
|
const composeWith = (kept2) => composeSectionedPrompt(userPrompt, hintClauses.slice(0, kept2), structuredFragment);
|
|
25643
|
-
const
|
|
25644
|
-
if (
|
|
25672
|
+
const cap2 = opts?.cap;
|
|
25673
|
+
if (cap2 === void 0) return composeWith(hintClauses.length);
|
|
25645
25674
|
const frame = opts?.frame ?? ((body2) => body2);
|
|
25646
25675
|
let kept = hintClauses.length;
|
|
25647
25676
|
let body = composeWith(kept);
|
|
25648
25677
|
let framedLength = frame(body)?.length ?? 0;
|
|
25649
|
-
if (framedLength <=
|
|
25678
|
+
if (framedLength <= cap2) return body;
|
|
25650
25679
|
const costs = sectionedClauseCosts(userPrompt, hintClauses, structuredFragment);
|
|
25651
25680
|
const texts = hintClauses.map((c) => c.text);
|
|
25652
|
-
while (framedLength >
|
|
25653
|
-
kept = keepableDirectionHints(texts, kept, framedLength -
|
|
25681
|
+
while (framedLength > cap2 && kept > 0) {
|
|
25682
|
+
kept = keepableDirectionHints(texts, kept, framedLength - cap2, costs);
|
|
25654
25683
|
body = composeWith(kept);
|
|
25655
25684
|
framedLength = frame(body)?.length ?? 0;
|
|
25656
25685
|
}
|
|
@@ -40831,8 +40860,8 @@ ${buildPickerLegend(spec)}`);
|
|
|
40831
40860
|
function buildPickerLegend(spec) {
|
|
40832
40861
|
const lines = [];
|
|
40833
40862
|
for (const d of spec.dimensions) {
|
|
40834
|
-
const
|
|
40835
|
-
lines.push(`## ${d.label} (key: "${d.dimension}", choose ${
|
|
40863
|
+
const cap2 = d.limit > 1 ? `up to ${d.limit}` : "one";
|
|
40864
|
+
lines.push(`## ${d.label} (key: "${d.dimension}", choose ${cap2})`);
|
|
40836
40865
|
for (const e of d.legend) {
|
|
40837
40866
|
lines.push(`- ${e.id}: ${e.label}${e.description ? ` \u2014 ${e.description}` : ""}`);
|
|
40838
40867
|
}
|
|
@@ -41152,7 +41181,7 @@ var KLING_AUDIO_DOCTRINE = {
|
|
|
41152
41181
|
};
|
|
41153
41182
|
var MINIMAX_H3_DOCTRINE = {
|
|
41154
41183
|
providers: ["minimax-h3"],
|
|
41155
|
-
heading: "MiniMax
|
|
41184
|
+
heading: "MiniMax H3 (minimax-h3)",
|
|
41156
41185
|
tips: [
|
|
41157
41186
|
"Natural-language prompts up to 7000 chars. Front-load what matters: subject \u2192 action \u2192 scene/environment \u2192 lighting \u2192 camera move \u2192 style. One camera movement per shot.",
|
|
41158
41187
|
"Output 2K (default) or 768P (cheaper tier). Aspect: pure text-to-video needs a concrete ratio (21:9/16:9/4:3/1:1/3:4/9:16); reference runs default to adaptive (match the input).",
|
|
@@ -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
|
|
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\`).
|
|
@@ -41543,11 +41572,11 @@ function buildScene3DUnreferencedFiguresWarning(check2) {
|
|
|
41543
41572
|
const figureWord = figures === 1 ? "figure" : "figures";
|
|
41544
41573
|
const refWord = refs === 1 ? "character reference is" : "character references are";
|
|
41545
41574
|
let message = `The layout reference shows ${figures} ${figureWord} but ${refs} ${refWord} attached. A figure without its own character reference takes the clay look of the layout reference. Attach one character reference per figure (${missing} more)`;
|
|
41546
|
-
const
|
|
41547
|
-
if (typeof
|
|
41575
|
+
const cap2 = check2.imageReferenceCap;
|
|
41576
|
+
if (typeof cap2 === "number" && Number.isFinite(cap2) && cap2 > 0) {
|
|
41548
41577
|
const seats = Math.max(0, Math.floor(check2.layoutReferenceImageSeats ?? 0));
|
|
41549
|
-
const spare =
|
|
41550
|
-
message += spare >= SCENE3D_FREE_PLATE_SLOTS ? `; this model takes ${
|
|
41578
|
+
const spare = cap2 - seats - figures;
|
|
41579
|
+
message += spare >= SCENE3D_FREE_PLATE_SLOTS ? `; this model takes ${cap2} image references, which leaves ${spare} for a location or style plate.` : `; this model takes ${cap2} image references, so one per figure plus ${SCENE3D_FREE_PLATE_SLOTS} free slots for a location or style plate does not fit \u2014 reference the figures that matter most first.`;
|
|
41551
41580
|
} else {
|
|
41552
41581
|
message += ".";
|
|
41553
41582
|
}
|
|
@@ -41664,6 +41693,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
41664
41693
|
"seedream": "Artistic, painterly styles, creative interpretation",
|
|
41665
41694
|
"seedream-5-lite": "Lighter Seedream, faster artistic generation",
|
|
41666
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",
|
|
41667
41697
|
"z-image": "Experimental, novel generation approaches",
|
|
41668
41698
|
"wan-2.7": "Wan 2.7 T2I \u2014 1K/2K/4K, up to 9 ref images",
|
|
41669
41699
|
"wan-2.7-pro": "Wan 2.7 Pro T2I \u2014 higher quality, 1K/2K/4K",
|
|
@@ -41688,6 +41718,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
41688
41718
|
"seedream-edit": "Artistic style editing",
|
|
41689
41719
|
"seedream-5-lite-i2i": "Light artistic transformation",
|
|
41690
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",
|
|
41691
41722
|
"flux-kontext": "Character-consistent edits with reference awareness",
|
|
41692
41723
|
"flux-kontext-max": "Premium character-consistent editing",
|
|
41693
41724
|
"kontext-multi": "Multi-image Kontext via Replicate \u2014 up to 4 refs, no safety filter",
|
|
@@ -41712,6 +41743,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
41712
41743
|
"seedream-edit": "Artistic style editing",
|
|
41713
41744
|
"seedream-5-lite-i2i": "Light artistic transformation",
|
|
41714
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",
|
|
41715
41747
|
"flux-kontext": "Character-consistent edits with reference awareness",
|
|
41716
41748
|
"flux-kontext-max": "Premium character-consistent editing",
|
|
41717
41749
|
"kontext-multi": "Multi-image Kontext via Replicate \u2014 up to 4 refs, no safety filter",
|
|
@@ -41735,7 +41767,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
41735
41767
|
"seedance-2-fast": "Seedance 2.0 Fast \u2014 same multimodal + audio capabilities, cheaper and quicker",
|
|
41736
41768
|
"seedance-2-mini": "Seedance 2.0 Mini \u2014 same multimodal + audio capabilities, budget tier, 480p/720p, 4-15s",
|
|
41737
41769
|
"seedance-2-5": "Seedance 2.5 \u2014 up to 30s in ONE shot (no stitching), wider multimodal refs (30 images / 10 videos / 10 audio), native audio, 480p/720p/1080p",
|
|
41738
|
-
"minimax-h3": "MiniMax
|
|
41770
|
+
"minimax-h3": "MiniMax H3 \u2014 premium multimodal refs (9 images / 3 videos / 3 audio), always-on audio, 2K or 768P, 4-15s per-second pricing",
|
|
41739
41771
|
"wan": "Versatile, good for animations and transformations",
|
|
41740
41772
|
"wan-turbo": "Faster Wan generation",
|
|
41741
41773
|
"hailuo-standard": "Standard quality, cost-effective",
|
|
@@ -41766,7 +41798,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
41766
41798
|
"seedance-2-fast": "Seedance 2.0 Fast \u2014 same capabilities, cheaper and quicker",
|
|
41767
41799
|
"seedance-2-mini": "Seedance 2.0 Mini \u2014 same capabilities, budget tier, 480p/720p",
|
|
41768
41800
|
"seedance-2-5": "Seedance 2.5 \u2014 start/end frame + wide multimodal refs, native audio, up to 30s, 480p/720p/1080p",
|
|
41769
|
-
"minimax-h3": "MiniMax
|
|
41801
|
+
"minimax-h3": "MiniMax H3 \u2014 first/last frame + multimodal refs, always-on audio, 2K or 768P, 4-15s",
|
|
41770
41802
|
"hailuo-2.3-pro": "Premium Hailuo animation",
|
|
41771
41803
|
"hailuo-2.3": "Standard Hailuo animation",
|
|
41772
41804
|
"hailuo-standard": "Cost-effective animation",
|
|
@@ -42053,6 +42085,19 @@ var PROMPT_AFFIX_NODE_TYPES = new Set(
|
|
|
42053
42085
|
Object.entries(NODE_PROMPT_FIELDS).filter(([, s]) => s.affixes !== false).map(([t]) => t)
|
|
42054
42086
|
);
|
|
42055
42087
|
|
|
42088
|
+
// src/realism-wording.ts
|
|
42089
|
+
var NEUTRAL_PERSON = { subject: "the person", possessive: "their" };
|
|
42090
|
+
var cap = (s) => s.length === 0 ? s : `${s[0].toUpperCase()}${s.slice(1)}`;
|
|
42091
|
+
var REALISM_SKIN = "Skin shows its real structure: visible pores that vary in size across the nose and cheeks, fine vellus hair catching the light, faint uneven pigmentation, a little redness around the nostrils, natural oil on the forehead.";
|
|
42092
|
+
var REALISM_FINISH = "The plain look of an everyday small-sensor snapshot: colour left as it was recorded, deep focus from the nearest shoulder to the background, a fine grain in the darker areas, bright areas that fade rather than clip.";
|
|
42093
|
+
var REALISM_PASS_INSTRUCTION = "Make this photo look like an unretouched everyday snapshot: skin that shows its pores, its fine hairs and the small changes in tone real skin has, colour left as it was recorded, everything sharp from the shoulders to the background, a little grain in the shadows. Take out anything that makes it look rendered \u2014 smoothed, waxy or airbrushed skin, a glow, over-sharpened edges \u2014 and add no text or icons. Otherwise it stays the same person in the same frame: the face and its proportions, hair, clothing, pose and background as they are.";
|
|
42094
|
+
function realismViewpoint(p) {
|
|
42095
|
+
return `${cap(p.subject)} is looking straight at the viewer from eye level, mid-sentence: ${p.possessive} face and shoulders close up, the framing loose and a little crooked, both arms relaxed and down out of the frame. The whole image is the photograph itself, edge to edge, with no text or icons anywhere.`;
|
|
42096
|
+
}
|
|
42097
|
+
function realismEmptyHands(p) {
|
|
42098
|
+
return `${cap(p.possessive)} hands are empty; ${p.subject} is holding nothing.`;
|
|
42099
|
+
}
|
|
42100
|
+
|
|
42056
42101
|
// src/factory-presets/shared-image.ts
|
|
42057
42102
|
var STYLIZED_SUBJECT = [
|
|
42058
42103
|
{
|
|
@@ -42060,7 +42105,6 @@ var STYLIZED_SUBJECT = [
|
|
|
42060
42105
|
name: "Cartoon Person, Real World",
|
|
42061
42106
|
description: "Subject \u2192 3D cartoon, rest stays photoreal.",
|
|
42062
42107
|
data: {
|
|
42063
|
-
provider: "nano-banana-pro",
|
|
42064
42108
|
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.",
|
|
42065
42109
|
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"
|
|
42066
42110
|
}
|
|
@@ -42070,7 +42114,6 @@ var STYLIZED_SUBJECT = [
|
|
|
42070
42114
|
name: "Caricature, Real Photo",
|
|
42071
42115
|
description: "Exaggerated cartoon head on a real scene.",
|
|
42072
42116
|
data: {
|
|
42073
|
-
provider: "nano-banana-pro",
|
|
42074
42117
|
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.",
|
|
42075
42118
|
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"
|
|
42076
42119
|
}
|
|
@@ -42080,7 +42123,6 @@ var STYLIZED_SUBJECT = [
|
|
|
42080
42123
|
name: "Anime Person, Real Background",
|
|
42081
42124
|
description: "Subject \u2192 2D anime, real environment.",
|
|
42082
42125
|
data: {
|
|
42083
|
-
provider: "nano-banana-pro",
|
|
42084
42126
|
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.",
|
|
42085
42127
|
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"
|
|
42086
42128
|
}
|
|
@@ -42090,7 +42132,6 @@ var STYLIZED_SUBJECT = [
|
|
|
42090
42132
|
name: "Real Person, Cartoon World",
|
|
42091
42133
|
description: "Inverse \u2014 real subject, stylized world.",
|
|
42092
42134
|
data: {
|
|
42093
|
-
provider: "nano-banana-pro",
|
|
42094
42135
|
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.",
|
|
42095
42136
|
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"
|
|
42096
42137
|
}
|
|
@@ -42100,19 +42141,21 @@ var STYLIZED_SUBJECT = [
|
|
|
42100
42141
|
name: "Claymation Figure, Real Set",
|
|
42101
42142
|
description: "Subject \u2192 clay figure, real surroundings.",
|
|
42102
42143
|
data: {
|
|
42103
|
-
provider: "nano-banana-pro",
|
|
42104
42144
|
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.",
|
|
42105
42145
|
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"
|
|
42106
42146
|
}
|
|
42107
42147
|
}
|
|
42108
42148
|
];
|
|
42149
|
+
function editProviderFor(nodeType) {
|
|
42150
|
+
return nodeType === "modify-image" ? "gpt-image-2-5-flare-i2i" : "gpt-image-2-5-flare";
|
|
42151
|
+
}
|
|
42109
42152
|
function stylizedSubjectFor(nodeType) {
|
|
42110
42153
|
return STYLIZED_SUBJECT.map((p) => ({
|
|
42111
42154
|
id: `${nodeType}/${p.slug}`,
|
|
42112
42155
|
name: p.name,
|
|
42113
42156
|
description: p.description,
|
|
42114
42157
|
group: "Stylized Subject",
|
|
42115
|
-
data: p.data
|
|
42158
|
+
data: { provider: editProviderFor(nodeType), ...p.data }
|
|
42116
42159
|
}));
|
|
42117
42160
|
}
|
|
42118
42161
|
var IMAGE_EDITS = [
|
|
@@ -42121,7 +42164,6 @@ var IMAGE_EDITS = [
|
|
|
42121
42164
|
name: "Remove Background",
|
|
42122
42165
|
description: "Cut out the subject on white.",
|
|
42123
42166
|
data: {
|
|
42124
|
-
provider: "nano-banana-pro",
|
|
42125
42167
|
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.",
|
|
42126
42168
|
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"
|
|
42127
42169
|
}
|
|
@@ -42131,7 +42173,6 @@ var IMAGE_EDITS = [
|
|
|
42131
42173
|
name: "Replace Background",
|
|
42132
42174
|
description: "Swap in a new scene.",
|
|
42133
42175
|
data: {
|
|
42134
|
-
provider: "nano-banana-pro",
|
|
42135
42176
|
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.",
|
|
42136
42177
|
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"
|
|
42137
42178
|
}
|
|
@@ -42141,7 +42182,6 @@ var IMAGE_EDITS = [
|
|
|
42141
42182
|
name: "Colorize B&W Photo",
|
|
42142
42183
|
description: "Natural color from grayscale.",
|
|
42143
42184
|
data: {
|
|
42144
|
-
provider: "nano-banana-pro",
|
|
42145
42185
|
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.",
|
|
42146
42186
|
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"
|
|
42147
42187
|
}
|
|
@@ -42151,7 +42191,6 @@ var IMAGE_EDITS = [
|
|
|
42151
42191
|
name: "Restore Old Photo",
|
|
42152
42192
|
description: "Repair scratches, denoise, sharpen.",
|
|
42153
42193
|
data: {
|
|
42154
|
-
provider: "nano-banana-pro",
|
|
42155
42194
|
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.",
|
|
42156
42195
|
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"
|
|
42157
42196
|
}
|
|
@@ -42161,7 +42200,6 @@ var IMAGE_EDITS = [
|
|
|
42161
42200
|
name: "Relight Scene",
|
|
42162
42201
|
description: "New lighting, same subject.",
|
|
42163
42202
|
data: {
|
|
42164
|
-
provider: "nano-banana-pro",
|
|
42165
42203
|
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.",
|
|
42166
42204
|
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"
|
|
42167
42205
|
}
|
|
@@ -42171,7 +42209,6 @@ var IMAGE_EDITS = [
|
|
|
42171
42209
|
name: "Restyle (whole image)",
|
|
42172
42210
|
description: "Apply an art style to everything.",
|
|
42173
42211
|
data: {
|
|
42174
|
-
provider: "nano-banana-pro",
|
|
42175
42212
|
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.",
|
|
42176
42213
|
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"
|
|
42177
42214
|
}
|
|
@@ -42181,7 +42218,6 @@ var IMAGE_EDITS = [
|
|
|
42181
42218
|
name: "Doodle Overlay",
|
|
42182
42219
|
description: "Hand-drawn marker doodles on top \u2014 photo stays untouched.",
|
|
42183
42220
|
data: {
|
|
42184
|
-
provider: "nano-banana-pro",
|
|
42185
42221
|
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.",
|
|
42186
42222
|
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"
|
|
42187
42223
|
}
|
|
@@ -42191,10 +42227,50 @@ var IMAGE_EDITS = [
|
|
|
42191
42227
|
name: "Doodle Overlay \xB7 Expressive",
|
|
42192
42228
|
description: "Looser free-form doodles \u2014 the model improvises.",
|
|
42193
42229
|
data: {
|
|
42194
|
-
provider: "nano-banana-pro",
|
|
42195
42230
|
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.",
|
|
42196
42231
|
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"
|
|
42197
42232
|
}
|
|
42233
|
+
},
|
|
42234
|
+
{
|
|
42235
|
+
slug: "add-skin-realism",
|
|
42236
|
+
name: "Add Skin Realism",
|
|
42237
|
+
description: "Brings back visible skin texture \u2014 same person, same photo.",
|
|
42238
|
+
data: { provider: "nano-banana-2-1", aspectRatio: "auto", resolution: "2K", promptPrefix: REALISM_PASS_INSTRUCTION }
|
|
42239
|
+
},
|
|
42240
|
+
{
|
|
42241
|
+
slug: "natural-photo-finish",
|
|
42242
|
+
name: "Natural Photo Finish",
|
|
42243
|
+
description: "Takes out a rendered-looking finish, keeps the photo.",
|
|
42244
|
+
data: {
|
|
42245
|
+
provider: "nano-banana-2-1",
|
|
42246
|
+
aspectRatio: "auto",
|
|
42247
|
+
resolution: "2K",
|
|
42248
|
+
promptPrefix: `Keep this photo as it is and take out only what makes it look rendered: smoothed, waxy or airbrushed skin, a glow, over-sharpened edges, hair too perfect to be real. ${REALISM_FINISH} Otherwise the same people, framing, pose and background.`
|
|
42249
|
+
}
|
|
42250
|
+
},
|
|
42251
|
+
{
|
|
42252
|
+
slug: "phone-camera-look",
|
|
42253
|
+
name: "Phone Camera Look",
|
|
42254
|
+
description: "Re-finishes a photo as an everyday snapshot.",
|
|
42255
|
+
data: {
|
|
42256
|
+
provider: "nano-banana-2-1",
|
|
42257
|
+
aspectRatio: "auto",
|
|
42258
|
+
resolution: "2K",
|
|
42259
|
+
promptPrefix: `Re-finish this photo, changing nothing in it: ${REALISM_FINISH} Same people, framing, pose and background.`
|
|
42260
|
+
}
|
|
42261
|
+
},
|
|
42262
|
+
{
|
|
42263
|
+
slug: "undo-beauty-filter",
|
|
42264
|
+
name: "Undo Beauty Filter",
|
|
42265
|
+
description: "Reverses smoothing and reshaping on a real photo.",
|
|
42266
|
+
data: {
|
|
42267
|
+
provider: "seedream-5-pro",
|
|
42268
|
+
// "auto" keeps the photo's shape: this model lists no native "auto", so on either node the
|
|
42269
|
+
// run takes its listed ratio nearest the connected photo.
|
|
42270
|
+
aspectRatio: "auto",
|
|
42271
|
+
quality: "high",
|
|
42272
|
+
promptPrefix: "Undo the beauty filter on this photo: bring back the person's real skin texture, the natural shape of the face, jaw, nose and eyes, and the real colour of skin and lips. Change nothing else: the same person, expression, hair, clothing, framing and background."
|
|
42273
|
+
}
|
|
42198
42274
|
}
|
|
42199
42275
|
];
|
|
42200
42276
|
function editsFor(nodeType) {
|
|
@@ -42203,11 +42279,14 @@ function editsFor(nodeType) {
|
|
|
42203
42279
|
name: p.name,
|
|
42204
42280
|
description: p.description,
|
|
42205
42281
|
group: "Edits",
|
|
42206
|
-
data: p.data
|
|
42282
|
+
data: { provider: editProviderFor(nodeType), ...p.data }
|
|
42207
42283
|
}));
|
|
42208
42284
|
}
|
|
42209
42285
|
|
|
42210
42286
|
// src/factory-presets/generate-image.ts
|
|
42287
|
+
var sentences = (...parts) => parts.join(" ");
|
|
42288
|
+
var REALISM_MODEL = { provider: "gpt-image-2", resolution: "2K" };
|
|
42289
|
+
var SKIN_STUDY_MODEL = { provider: "seedream-5-pro", quality: "high" };
|
|
42211
42290
|
var GENERATE_IMAGE_PRESETS = [
|
|
42212
42291
|
// ── Reference Sheet ──────────────────────────────────────────────────────
|
|
42213
42292
|
{
|
|
@@ -42216,7 +42295,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42216
42295
|
description: "Connect a sharp, well-lit photo \u2192 dense character sheet; reuse it as a reference for consistent shots.",
|
|
42217
42296
|
group: "Reference Sheet",
|
|
42218
42297
|
data: {
|
|
42219
|
-
provider: "
|
|
42298
|
+
provider: "gpt-image-2",
|
|
42220
42299
|
aspectRatio: "16:9",
|
|
42221
42300
|
resolution: "2K",
|
|
42222
42301
|
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.`,
|
|
@@ -42230,7 +42309,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42230
42309
|
description: "Connect a sharp photo \u2192 animation-ready pose & expression sheet; reuse it as a reference for consistent action.",
|
|
42231
42310
|
group: "Reference Sheet",
|
|
42232
42311
|
data: {
|
|
42233
|
-
provider: "
|
|
42312
|
+
provider: "gpt-image-2",
|
|
42234
42313
|
aspectRatio: "16:9",
|
|
42235
42314
|
resolution: "2K",
|
|
42236
42315
|
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.`,
|
|
@@ -42244,7 +42323,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42244
42323
|
description: "Connect a photo \u2192 dense location sheet; reuse it as a reference for consistent scenes.",
|
|
42245
42324
|
group: "Reference Sheet",
|
|
42246
42325
|
data: {
|
|
42247
|
-
provider: "
|
|
42326
|
+
provider: "gpt-image-2",
|
|
42248
42327
|
aspectRatio: "16:9",
|
|
42249
42328
|
resolution: "2K",
|
|
42250
42329
|
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.`,
|
|
@@ -42258,7 +42337,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42258
42337
|
description: "Connect a photo \u2192 dense product sheet; reuse it as a reference for consistent shots.",
|
|
42259
42338
|
group: "Reference Sheet",
|
|
42260
42339
|
data: {
|
|
42261
|
-
provider: "
|
|
42340
|
+
provider: "gpt-image-2",
|
|
42262
42341
|
aspectRatio: "16:9",
|
|
42263
42342
|
resolution: "2K",
|
|
42264
42343
|
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.`,
|
|
@@ -42272,7 +42351,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42272
42351
|
description: "Connect a photo \u2192 dense wardrobe sheet; reuse it as a reference for consistent looks.",
|
|
42273
42352
|
group: "Reference Sheet",
|
|
42274
42353
|
data: {
|
|
42275
|
-
provider: "
|
|
42354
|
+
provider: "gpt-image-2",
|
|
42276
42355
|
aspectRatio: "16:9",
|
|
42277
42356
|
resolution: "2K",
|
|
42278
42357
|
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.`,
|
|
@@ -42286,7 +42365,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42286
42365
|
description: "Connect a photo \u2192 set-dressing & props study; reuse it as a reference for consistent sets.",
|
|
42287
42366
|
group: "Reference Sheet",
|
|
42288
42367
|
data: {
|
|
42289
|
-
provider: "
|
|
42368
|
+
provider: "gpt-image-2",
|
|
42290
42369
|
aspectRatio: "16:9",
|
|
42291
42370
|
resolution: "2K",
|
|
42292
42371
|
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.`,
|
|
@@ -42300,7 +42379,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42300
42379
|
description: "Connect a sharp photo \u2192 dense creature sheet; reuse it as a reference for consistent shots.",
|
|
42301
42380
|
group: "Reference Sheet",
|
|
42302
42381
|
data: {
|
|
42303
|
-
provider: "
|
|
42382
|
+
provider: "gpt-image-2",
|
|
42304
42383
|
aspectRatio: "16:9",
|
|
42305
42384
|
resolution: "2K",
|
|
42306
42385
|
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.`,
|
|
@@ -42314,7 +42393,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42314
42393
|
description: "Connect a photo \u2192 dense vehicle sheet; reuse it as a reference for consistent shots.",
|
|
42315
42394
|
group: "Reference Sheet",
|
|
42316
42395
|
data: {
|
|
42317
|
-
provider: "
|
|
42396
|
+
provider: "gpt-image-2",
|
|
42318
42397
|
aspectRatio: "16:9",
|
|
42319
42398
|
resolution: "2K",
|
|
42320
42399
|
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.`,
|
|
@@ -42328,7 +42407,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42328
42407
|
description: "Connect a photo \u2192 dense dish sheet; reuse it as a reference for consistent food shots.",
|
|
42329
42408
|
group: "Reference Sheet",
|
|
42330
42409
|
data: {
|
|
42331
|
-
provider: "
|
|
42410
|
+
provider: "gpt-image-2",
|
|
42332
42411
|
aspectRatio: "16:9",
|
|
42333
42412
|
resolution: "2K",
|
|
42334
42413
|
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.`,
|
|
@@ -42342,7 +42421,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42342
42421
|
description: "Connect a mascot image \u2192 brand-character sheet with brand applications; reuse it for a consistent mascot.",
|
|
42343
42422
|
group: "Reference Sheet",
|
|
42344
42423
|
data: {
|
|
42345
|
-
provider: "
|
|
42424
|
+
provider: "gpt-image-2",
|
|
42346
42425
|
aspectRatio: "16:9",
|
|
42347
42426
|
resolution: "2K",
|
|
42348
42427
|
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.`,
|
|
@@ -42356,7 +42435,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42356
42435
|
description: "Connect a sharp photo \u2192 dense pet sheet; reuse it as a reference for consistent shots.",
|
|
42357
42436
|
group: "Reference Sheet",
|
|
42358
42437
|
data: {
|
|
42359
|
-
provider: "
|
|
42438
|
+
provider: "gpt-image-2",
|
|
42360
42439
|
aspectRatio: "16:9",
|
|
42361
42440
|
resolution: "2K",
|
|
42362
42441
|
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.`,
|
|
@@ -42364,19 +42443,35 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42364
42443
|
negativePrompt: "illustration, cartoon, 3d render, garbled text, misspelled labels, watermark, deformed anatomy, inconsistent markings between panels, wrong breed, blurry, low resolution"
|
|
42365
42444
|
}
|
|
42366
42445
|
},
|
|
42446
|
+
{
|
|
42447
|
+
id: "generate-image/skin-detail-sheet",
|
|
42448
|
+
name: "Skin Detail Sheet",
|
|
42449
|
+
description: "Connect a sharp face photo \u2192 a six-panel skin reference.",
|
|
42450
|
+
group: "Reference Sheet",
|
|
42451
|
+
data: {
|
|
42452
|
+
...SKIN_STUDY_MODEL,
|
|
42453
|
+
aspectRatio: "3:2",
|
|
42454
|
+
promptPrefix: sentences(
|
|
42455
|
+
'Create a single skin detail reference sheet titled "SKIN DETAIL SHEET" from the attached photo of the person, the single source of truth for identity, skin tone and features. The same person, the same light and the same unretouched skin in every panel. Six panels \u2014 render ALL six panel headings exactly as written, never merging or omitting a panel: PANEL 01 \u2014 FULL FACE (front, eye level) \xB7 PANEL 02 \u2014 LEFT CHEEK & NOSE \xB7 PANEL 03 \u2014 RIGHT CHEEK & JAW \xB7 PANEL 04 \u2014 FOREHEAD & HAIRLINE \xB7 PANEL 05 \u2014 EYES & BROWS \xB7 PANEL 06 \u2014 LIPS & CHIN. In every panel:',
|
|
42456
|
+
REALISM_SKIN,
|
|
42457
|
+
"Flat, even daylight, neutral colour, everything sharp."
|
|
42458
|
+
),
|
|
42459
|
+
promptSuffix: "Plain neutral grey background, thin white panel labels in English. Use this sheet as a visual reference for consistent skin detail of this person across generations."
|
|
42460
|
+
}
|
|
42461
|
+
},
|
|
42367
42462
|
// ── Cast & Consistency (clean grids per the multi-character workflow:
|
|
42368
42463
|
// sterile neutral-background reference grids built to be FED BACK as identity
|
|
42369
42464
|
// anchors — unlike the editorial boards above, decoration here is noise.
|
|
42370
|
-
//
|
|
42371
|
-
//
|
|
42372
|
-
//
|
|
42465
|
+
// GPT Image 2 (decided 2026-10-08 from the image model bake-off: it built the
|
|
42466
|
+
// best reference grid and kept both identities on the cast sheet); 4K so
|
|
42467
|
+
// panel faces stay sharp when reused as refs.) ──
|
|
42373
42468
|
{
|
|
42374
42469
|
id: "generate-image/character-reference-grid",
|
|
42375
42470
|
name: "Character Reference Grid",
|
|
42376
42471
|
description: "Connect a photo \u2192 clean 4-angle identity grid (no decorations) \u2014 the strongest consistency anchor.",
|
|
42377
42472
|
group: "Cast & Consistency",
|
|
42378
42473
|
data: {
|
|
42379
|
-
provider: "
|
|
42474
|
+
provider: "gpt-image-2",
|
|
42380
42475
|
aspectRatio: "3:4",
|
|
42381
42476
|
resolution: "4K",
|
|
42382
42477
|
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.`,
|
|
@@ -42390,7 +42485,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42390
42485
|
description: "Connect 2\u20134 character refs \u2192 one labeled cast sheet; then reference cast members by name in scenes.",
|
|
42391
42486
|
group: "Cast & Consistency",
|
|
42392
42487
|
data: {
|
|
42393
|
-
provider: "
|
|
42488
|
+
provider: "gpt-image-2",
|
|
42394
42489
|
aspectRatio: "3:4",
|
|
42395
42490
|
resolution: "4K",
|
|
42396
42491
|
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.`,
|
|
@@ -42403,7 +42498,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42403
42498
|
description: "Connect a cast grid \u2192 stage a scene naming the characters; never re-describe their looks.",
|
|
42404
42499
|
group: "Cast & Consistency",
|
|
42405
42500
|
data: {
|
|
42406
|
-
provider: "
|
|
42501
|
+
provider: "gpt-image-2",
|
|
42407
42502
|
aspectRatio: "16:9",
|
|
42408
42503
|
resolution: "2K",
|
|
42409
42504
|
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.`,
|
|
@@ -42487,7 +42582,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42487
42582
|
description: "Moody, shallow-depth portrait look.",
|
|
42488
42583
|
group: "Photography & Cinematic",
|
|
42489
42584
|
data: {
|
|
42490
|
-
provider: "
|
|
42585
|
+
provider: "gpt-image-2",
|
|
42491
42586
|
aspectRatio: "9:16",
|
|
42492
42587
|
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",
|
|
42493
42588
|
negativePrompt: "flat lighting, deep focus, plastic skin, blown highlights, extra fingers, lowres, deformed, watermark, text"
|
|
@@ -42499,7 +42594,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42499
42594
|
description: "Film-grade scene, dramatic lighting.",
|
|
42500
42595
|
group: "Photography & Cinematic",
|
|
42501
42596
|
data: {
|
|
42502
|
-
provider: "
|
|
42597
|
+
provider: "gpt-image-2",
|
|
42503
42598
|
aspectRatio: "16:9",
|
|
42504
42599
|
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",
|
|
42505
42600
|
negativePrompt: "flat lighting, deep focus, oversaturated, washed out, video-game render, lowres, deformed, watermark, text"
|
|
@@ -42523,7 +42618,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42523
42618
|
description: "Soft-lit 85mm studio headshot.",
|
|
42524
42619
|
group: "Photography & Cinematic",
|
|
42525
42620
|
data: {
|
|
42526
|
-
provider: "nano-banana-
|
|
42621
|
+
provider: "nano-banana-2-1",
|
|
42527
42622
|
aspectRatio: "4:5",
|
|
42528
42623
|
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",
|
|
42529
42624
|
negativePrompt: "harsh shadows, plastic skin, over-retouched, blown highlights, busy background, extra fingers, lowres, deformed, watermark, text"
|
|
@@ -42535,7 +42630,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42535
42630
|
description: "Clean professional headshot.",
|
|
42536
42631
|
group: "Photography & Cinematic",
|
|
42537
42632
|
data: {
|
|
42538
|
-
provider: "
|
|
42633
|
+
provider: "gpt-image-2",
|
|
42539
42634
|
aspectRatio: "1:1",
|
|
42540
42635
|
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",
|
|
42541
42636
|
negativePrompt: "harsh shadows, busy background, casual snapshot, over-retouched, plastic skin, extra fingers, lowres, deformed, watermark, text"
|
|
@@ -42559,7 +42654,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42559
42654
|
description: "High-contrast editorial mono.",
|
|
42560
42655
|
group: "Photography & Cinematic",
|
|
42561
42656
|
data: {
|
|
42562
|
-
provider: "nano-banana-
|
|
42657
|
+
provider: "nano-banana-2-1",
|
|
42563
42658
|
aspectRatio: "4:5",
|
|
42564
42659
|
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",
|
|
42565
42660
|
negativePrompt: "color, muddy gray tones, flat lighting, low contrast, plastic skin, extra fingers, lowres, deformed, watermark, text"
|
|
@@ -42583,7 +42678,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42583
42678
|
description: "Appetizing 45\xB0 hero shot.",
|
|
42584
42679
|
group: "Photography & Cinematic",
|
|
42585
42680
|
data: {
|
|
42586
|
-
provider: "nano-banana-
|
|
42681
|
+
provider: "nano-banana-2-1",
|
|
42587
42682
|
aspectRatio: "4:5",
|
|
42588
42683
|
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",
|
|
42589
42684
|
negativePrompt: "unappetizing, plastic look, fake glossy food, messy spills, dull colors, harsh flash, lowres, deformed, watermark, text"
|
|
@@ -42595,7 +42690,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42595
42690
|
description: "Overhead styled food spread.",
|
|
42596
42691
|
group: "Photography & Cinematic",
|
|
42597
42692
|
data: {
|
|
42598
|
-
provider: "
|
|
42693
|
+
provider: "gpt-image-2",
|
|
42599
42694
|
aspectRatio: "1:1",
|
|
42600
42695
|
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",
|
|
42601
42696
|
negativePrompt: "cluttered, overcrowded, tilted angle, harsh shadows, plastic look, dull colors, lowres, deformed, watermark, text"
|
|
@@ -42632,7 +42727,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42632
42727
|
description: "Front / side / back, T-pose.",
|
|
42633
42728
|
group: "Characters",
|
|
42634
42729
|
data: {
|
|
42635
|
-
provider: "
|
|
42730
|
+
provider: "gpt-image-2",
|
|
42636
42731
|
aspectRatio: "16:9",
|
|
42637
42732
|
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",
|
|
42638
42733
|
negativePrompt: "inconsistent design between views, mismatched proportions, extra limbs, deformed anatomy, dynamic pose, dramatic shadows, busy background, watermark, text"
|
|
@@ -42644,7 +42739,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42644
42739
|
description: "Four dynamic full-body poses.",
|
|
42645
42740
|
group: "Characters",
|
|
42646
42741
|
data: {
|
|
42647
|
-
provider: "
|
|
42742
|
+
provider: "gpt-image-2",
|
|
42648
42743
|
aspectRatio: "16:9",
|
|
42649
42744
|
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",
|
|
42650
42745
|
negativePrompt: "inconsistent design between poses, changed outfit, deformed anatomy, extra limbs, fused figures, static stiff posture, busy background, watermark, text"
|
|
@@ -42656,7 +42751,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42656
42751
|
description: "6 emotions, 2 rows of 3.",
|
|
42657
42752
|
group: "Characters",
|
|
42658
42753
|
data: {
|
|
42659
|
-
provider: "nano-banana-
|
|
42754
|
+
provider: "nano-banana-2-1",
|
|
42660
42755
|
aspectRatio: "4:3",
|
|
42661
42756
|
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",
|
|
42662
42757
|
negativePrompt: "inconsistent face, drifting features, changed hairstyle, deformed, asymmetrical eyes, uneven lighting, busy background, watermark, garbled text"
|
|
@@ -42668,7 +42763,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42668
42763
|
description: "4\xD74 emotion grid, one face.",
|
|
42669
42764
|
group: "Characters",
|
|
42670
42765
|
data: {
|
|
42671
|
-
provider: "nano-banana-
|
|
42766
|
+
provider: "nano-banana-2-1",
|
|
42672
42767
|
aspectRatio: "1:1",
|
|
42673
42768
|
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",
|
|
42674
42769
|
negativePrompt: "inconsistent face, drifting features, changed hairstyle, deformed, asymmetrical eyes, uneven panels, uneven lighting, busy background, watermark, text"
|
|
@@ -42680,7 +42775,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42680
42775
|
description: "Same character, 4 outfits.",
|
|
42681
42776
|
group: "Characters",
|
|
42682
42777
|
data: {
|
|
42683
|
-
provider: "
|
|
42778
|
+
provider: "gpt-image-2",
|
|
42684
42779
|
aspectRatio: "16:9",
|
|
42685
42780
|
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",
|
|
42686
42781
|
negativePrompt: "inconsistent face, changed body or hairstyle, deformed, mismatched proportions, repeated identical outfit, busy background, watermark, text"
|
|
@@ -42704,7 +42799,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42704
42799
|
description: "Cute super-deformed poses.",
|
|
42705
42800
|
group: "Characters",
|
|
42706
42801
|
data: {
|
|
42707
|
-
provider: "nano-banana-
|
|
42802
|
+
provider: "nano-banana-2-1",
|
|
42708
42803
|
aspectRatio: "1:1",
|
|
42709
42804
|
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",
|
|
42710
42805
|
negativePrompt: "realistic proportions, inconsistent design, deformed, off-model, gritty shading, busy background, watermark, text"
|
|
@@ -42728,7 +42823,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42728
42823
|
description: "Dynamic full-body hero shot.",
|
|
42729
42824
|
group: "Characters",
|
|
42730
42825
|
data: {
|
|
42731
|
-
provider: "
|
|
42826
|
+
provider: "gpt-image-2-5-sunburst",
|
|
42732
42827
|
aspectRatio: "2:3",
|
|
42733
42828
|
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",
|
|
42734
42829
|
negativePrompt: "flat lighting, static stiff pose, lowres, deformed, extra limbs, cropped feet, cluttered background, blurry, watermark, text"
|
|
@@ -42740,7 +42835,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42740
42835
|
description: "Concept creature, multi-angle.",
|
|
42741
42836
|
group: "Characters",
|
|
42742
42837
|
data: {
|
|
42743
|
-
provider: "
|
|
42838
|
+
provider: "gpt-image-2",
|
|
42744
42839
|
aspectRatio: "16:9",
|
|
42745
42840
|
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",
|
|
42746
42841
|
negativePrompt: "inconsistent design between views, mismatched proportions, deformed anatomy, extra or missing limbs, dramatic shadows, busy background, watermark, text"
|
|
@@ -42752,7 +42847,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42752
42847
|
description: "Centered, bold, clean bg.",
|
|
42753
42848
|
group: "Characters",
|
|
42754
42849
|
data: {
|
|
42755
|
-
provider: "
|
|
42850
|
+
provider: "gpt-image-2",
|
|
42756
42851
|
aspectRatio: "1:1",
|
|
42757
42852
|
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",
|
|
42758
42853
|
negativePrompt: "off-center, cropped face, busy background, lowres, deformed, muddy colors, harsh shadows, watermark, text"
|
|
@@ -42765,7 +42860,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42765
42860
|
description: "Clean e-commerce product photo on white.",
|
|
42766
42861
|
group: "Product & Commerce",
|
|
42767
42862
|
data: {
|
|
42768
|
-
provider: "
|
|
42863
|
+
provider: "gpt-image-2",
|
|
42769
42864
|
aspectRatio: "1:1",
|
|
42770
42865
|
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",
|
|
42771
42866
|
negativePrompt: "clutter, props, harsh shadows, blown highlights, color cast, reflections, tilted angle, lowres, deformed, watermark, text"
|
|
@@ -42789,7 +42884,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42789
42884
|
description: "Overhead styled arrangement.",
|
|
42790
42885
|
group: "Product & Commerce",
|
|
42791
42886
|
data: {
|
|
42792
|
-
provider: "
|
|
42887
|
+
provider: "gpt-image-2",
|
|
42793
42888
|
aspectRatio: "1:1",
|
|
42794
42889
|
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",
|
|
42795
42890
|
negativePrompt: "cluttered, overcrowded, tilted angle, harsh shadows, dull colors, plastic look, lowres, deformed, watermark, text"
|
|
@@ -42801,7 +42896,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42801
42896
|
description: "Box / bottle / pouch render.",
|
|
42802
42897
|
group: "Product & Commerce",
|
|
42803
42898
|
data: {
|
|
42804
|
-
provider: "
|
|
42899
|
+
provider: "gpt-image-2",
|
|
42805
42900
|
aspectRatio: "1:1",
|
|
42806
42901
|
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",
|
|
42807
42902
|
negativePrompt: "distorted label, warped text, misspelled words, floating object, harsh shadows, clutter, lowres, deformed, watermark"
|
|
@@ -42825,7 +42920,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42825
42920
|
description: "Premium cosmetic hero shot.",
|
|
42826
42921
|
group: "Product & Commerce",
|
|
42827
42922
|
data: {
|
|
42828
|
-
provider: "nano-banana-
|
|
42923
|
+
provider: "nano-banana-2-1",
|
|
42829
42924
|
aspectRatio: "4:5",
|
|
42830
42925
|
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",
|
|
42831
42926
|
negativePrompt: "cheap plastic look, fingerprints, dust, busy background, flat lighting, dull colors, lowres, deformed, watermark, text"
|
|
@@ -42972,7 +43067,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42972
43067
|
description: "Cinematic key art, title + tagline.",
|
|
42973
43068
|
group: "Print & Posters",
|
|
42974
43069
|
data: {
|
|
42975
|
-
provider: "
|
|
43070
|
+
provider: "gpt-image-2-5-sunburst",
|
|
42976
43071
|
aspectRatio: "2:3",
|
|
42977
43072
|
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",
|
|
42978
43073
|
negativePrompt: "flat lighting, cluttered composition, amateurish layout, misspelled text, garbled letters, extra limbs, deformed faces, lowres, blurry, watermark"
|
|
@@ -42996,7 +43091,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
42996
43091
|
description: "Genre cover, title + author.",
|
|
42997
43092
|
group: "Print & Posters",
|
|
42998
43093
|
data: {
|
|
42999
|
-
provider: "
|
|
43094
|
+
provider: "gpt-image-2-5-sunburst",
|
|
43000
43095
|
aspectRatio: "2:3",
|
|
43001
43096
|
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",
|
|
43002
43097
|
negativePrompt: "cluttered layout, clashing fonts, generic stock look, misspelled text, garbled letters, deformed faces, lowres, blurry, watermark"
|
|
@@ -43045,7 +43140,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43045
43140
|
description: "Cel-shaded anime look.",
|
|
43046
43141
|
group: "Illustration & Art Styles",
|
|
43047
43142
|
data: {
|
|
43048
|
-
provider: "
|
|
43143
|
+
provider: "gpt-image-2",
|
|
43049
43144
|
aspectRatio: "16:9",
|
|
43050
43145
|
style: "anime",
|
|
43051
43146
|
prompt: "{scene or subject || a girl watching fireworks over a summer festival}, cel-shaded with crisp linework, expressive eyes, soft gradient sky, gentle bloom",
|
|
@@ -43058,7 +43153,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43058
43153
|
description: "Inked panel with action.",
|
|
43059
43154
|
group: "Illustration & Art Styles",
|
|
43060
43155
|
data: {
|
|
43061
|
-
provider: "
|
|
43156
|
+
provider: "gpt-image-2",
|
|
43062
43157
|
aspectRatio: "4:3",
|
|
43063
43158
|
style: "comic-book",
|
|
43064
43159
|
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",
|
|
@@ -43071,7 +43166,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43071
43166
|
description: "Screentone black-and-white.",
|
|
43072
43167
|
group: "Illustration & Art Styles",
|
|
43073
43168
|
data: {
|
|
43074
|
-
provider: "
|
|
43169
|
+
provider: "gpt-image-2",
|
|
43075
43170
|
aspectRatio: "3:4",
|
|
43076
43171
|
style: "manga",
|
|
43077
43172
|
prompt: "{scene || a swordsman bracing against the wind}, black-and-white manga panel, crisp inking, screentone shading, dramatic low angle, speed lines",
|
|
@@ -43123,7 +43218,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43123
43218
|
description: "3/4 axonometric scene.",
|
|
43124
43219
|
group: "Illustration & Art Styles",
|
|
43125
43220
|
data: {
|
|
43126
|
-
provider: "
|
|
43221
|
+
provider: "gpt-image-2",
|
|
43127
43222
|
aspectRatio: "1:1",
|
|
43128
43223
|
style: "isometric",
|
|
43129
43224
|
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",
|
|
@@ -43136,7 +43231,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43136
43231
|
description: "Retro low-res pixel grid.",
|
|
43137
43232
|
group: "Illustration & Art Styles",
|
|
43138
43233
|
data: {
|
|
43139
|
-
provider: "
|
|
43234
|
+
provider: "gpt-image-2",
|
|
43140
43235
|
aspectRatio: "1:1",
|
|
43141
43236
|
style: "pixel-art",
|
|
43142
43237
|
prompt: "{subject || a hero exploring a torch-lit dungeon}, retro 16-bit pixel art, crisp pixel grid, limited dithered palette, hard-edged sprite detail",
|
|
@@ -43149,7 +43244,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43149
43244
|
description: "Polished CG character look.",
|
|
43150
43245
|
group: "Illustration & Art Styles",
|
|
43151
43246
|
data: {
|
|
43152
|
-
provider: "
|
|
43247
|
+
provider: "gpt-image-2",
|
|
43153
43248
|
aspectRatio: "1:1",
|
|
43154
43249
|
style: "pixar-3d",
|
|
43155
43250
|
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",
|
|
@@ -43174,7 +43269,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43174
43269
|
description: "Bold linework, isolated.",
|
|
43175
43270
|
group: "Illustration & Art Styles",
|
|
43176
43271
|
data: {
|
|
43177
|
-
provider: "
|
|
43272
|
+
provider: "gpt-image-2-5-sunburst",
|
|
43178
43273
|
aspectRatio: "2:3",
|
|
43179
43274
|
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",
|
|
43180
43275
|
negativePrompt: "photographic background, scene, soft gradients, photorealistic, fine grayscale shading, blurry, lowres, watermark, text"
|
|
@@ -43186,7 +43281,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43186
43281
|
description: "Painterly pre-production art.",
|
|
43187
43282
|
group: "Illustration & Art Styles",
|
|
43188
43283
|
data: {
|
|
43189
|
-
provider: "
|
|
43284
|
+
provider: "gpt-image-2",
|
|
43190
43285
|
aspectRatio: "16:9",
|
|
43191
43286
|
style: "concept-art",
|
|
43192
43287
|
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",
|
|
@@ -43202,7 +43297,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43202
43297
|
description: "Plasticine stop-motion look, thumbprints included.",
|
|
43203
43298
|
group: "Handmade & Stop-Motion",
|
|
43204
43299
|
data: {
|
|
43205
|
-
provider: "
|
|
43300
|
+
provider: "gpt-image-2",
|
|
43206
43301
|
aspectRatio: "16:9",
|
|
43207
43302
|
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",
|
|
43208
43303
|
negativePrompt: "smooth plastic CGI surface, digital 3d render, 2d illustration, cartoon shading, perfect seamless surfaces, real human actors, lowres, deformed, watermark, text"
|
|
@@ -43214,7 +43309,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43214
43309
|
description: "Fuzzy felted-wool miniature.",
|
|
43215
43310
|
group: "Handmade & Stop-Motion",
|
|
43216
43311
|
data: {
|
|
43217
|
-
provider: "
|
|
43312
|
+
provider: "gpt-image-2",
|
|
43218
43313
|
aspectRatio: "1:1",
|
|
43219
43314
|
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",
|
|
43220
43315
|
negativePrompt: "smooth plastic surface, digital 3d render, 2d illustration, real animal fur, photorealistic animal, hard CGI edges, lowres, deformed, watermark, text"
|
|
@@ -43226,7 +43321,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43226
43321
|
description: "Stitched-sock character on stage.",
|
|
43227
43322
|
group: "Handmade & Stop-Motion",
|
|
43228
43323
|
data: {
|
|
43229
|
-
provider: "
|
|
43324
|
+
provider: "gpt-image-2",
|
|
43230
43325
|
aspectRatio: "4:3",
|
|
43231
43326
|
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",
|
|
43232
43327
|
negativePrompt: "smooth CGI fabric, digital 3d render, 2d illustration, human face, realistic skin, plastic toy look, lowres, deformed, watermark, text"
|
|
@@ -43238,7 +43333,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43238
43333
|
description: "Cut-cardboard craft set, tape & paint.",
|
|
43239
43334
|
group: "Handmade & Stop-Motion",
|
|
43240
43335
|
data: {
|
|
43241
|
-
provider: "
|
|
43336
|
+
provider: "gpt-image-2",
|
|
43242
43337
|
aspectRatio: "16:9",
|
|
43243
43338
|
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",
|
|
43244
43339
|
negativePrompt: "clean vector shapes, digital 3d render, 2d illustration, smooth plastic surfaces, real buildings, photoreal city, lowres, deformed, watermark, garbled text"
|
|
@@ -43250,7 +43345,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43250
43345
|
description: "Hand-stitched thread on hooped linen.",
|
|
43251
43346
|
group: "Handmade & Stop-Motion",
|
|
43252
43347
|
data: {
|
|
43253
|
-
provider: "
|
|
43348
|
+
provider: "gpt-image-2",
|
|
43254
43349
|
aspectRatio: "1:1",
|
|
43255
43350
|
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",
|
|
43256
43351
|
negativePrompt: "printed fabric, flat digital illustration, 3d render, smooth painted texture, photorealistic subject, lowres, deformed, watermark, text"
|
|
@@ -43262,7 +43357,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43262
43357
|
description: "Plasticine dish styled as a commercial.",
|
|
43263
43358
|
group: "Handmade & Stop-Motion",
|
|
43264
43359
|
data: {
|
|
43265
|
-
provider: "nano-banana-
|
|
43360
|
+
provider: "nano-banana-2-1",
|
|
43266
43361
|
aspectRatio: "4:5",
|
|
43267
43362
|
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",
|
|
43268
43363
|
negativePrompt: "real food, photorealistic food, digital 3d render, 2d illustration, smooth plastic CGI, melted shapeless clay, unappetizing, lowres, watermark, text"
|
|
@@ -43311,7 +43406,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43311
43406
|
description: "Single cohesive aesthetic tile.",
|
|
43312
43407
|
group: "Film & Storyboard",
|
|
43313
43408
|
data: {
|
|
43314
|
-
provider: "
|
|
43409
|
+
provider: "gpt-image-2",
|
|
43315
43410
|
aspectRatio: "1:1",
|
|
43316
43411
|
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",
|
|
43317
43412
|
negativePrompt: "collage, grid, split panels, multiple frames, text, labels, busy clutter, watermark, lowres"
|
|
@@ -43360,7 +43455,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43360
43455
|
description: "Bright, inviting listing shot.",
|
|
43361
43456
|
group: "Architecture & Interiors",
|
|
43362
43457
|
data: {
|
|
43363
|
-
provider: "
|
|
43458
|
+
provider: "gpt-image-2",
|
|
43364
43459
|
aspectRatio: "16:9",
|
|
43365
43460
|
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",
|
|
43366
43461
|
negativePrompt: "distorted geometry, warped perspective, bent verticals, fisheye bulge, dark, dingy, cluttered, lowres, watermark, text"
|
|
@@ -43385,7 +43480,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43385
43480
|
description: "Glossy RPG inventory icon.",
|
|
43386
43481
|
group: "Icons, Game Assets & Textures",
|
|
43387
43482
|
data: {
|
|
43388
|
-
provider: "
|
|
43483
|
+
provider: "gpt-image-2",
|
|
43389
43484
|
aspectRatio: "1:1",
|
|
43390
43485
|
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",
|
|
43391
43486
|
negativePrompt: "flat, 2d, lowres, cluttered background, multiple objects, busy scene, harsh shadows, watermark, text"
|
|
@@ -43397,7 +43492,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43397
43492
|
description: "Tileable PBR-style material.",
|
|
43398
43493
|
group: "Icons, Game Assets & Textures",
|
|
43399
43494
|
data: {
|
|
43400
|
-
provider: "
|
|
43495
|
+
provider: "gpt-image-2",
|
|
43401
43496
|
aspectRatio: "1:1",
|
|
43402
43497
|
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",
|
|
43403
43498
|
negativePrompt: "visible seams, perspective, lighting gradient, shadows, vignette, hotspots, single object, foreground subject, lowres, watermark, text"
|
|
@@ -43421,7 +43516,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43421
43516
|
description: "Glossy 3D emoji variations.",
|
|
43422
43517
|
group: "Icons, Game Assets & Textures",
|
|
43423
43518
|
data: {
|
|
43424
|
-
provider: "
|
|
43519
|
+
provider: "gpt-image-2",
|
|
43425
43520
|
aspectRatio: "1:1",
|
|
43426
43521
|
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",
|
|
43427
43522
|
negativePrompt: "inconsistent style, mismatched shading, off-model, realistic photo, flat 2d, muddy colors, cluttered background, lowres, watermark, text"
|
|
@@ -43433,7 +43528,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43433
43528
|
description: "Game-ready pixel sprite.",
|
|
43434
43529
|
group: "Icons, Game Assets & Textures",
|
|
43435
43530
|
data: {
|
|
43436
|
-
provider: "
|
|
43531
|
+
provider: "gpt-image-2",
|
|
43437
43532
|
aspectRatio: "1:1",
|
|
43438
43533
|
style: "pixel-art",
|
|
43439
43534
|
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",
|
|
@@ -43447,7 +43542,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43447
43542
|
description: "Backlit subject, dramatic sky.",
|
|
43448
43543
|
group: "Photography & Cinematic",
|
|
43449
43544
|
data: {
|
|
43450
|
-
provider: "
|
|
43545
|
+
provider: "gpt-image-2",
|
|
43451
43546
|
aspectRatio: "16:9",
|
|
43452
43547
|
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",
|
|
43453
43548
|
negativePrompt: "flat lighting, front lighting, visible face detail, washed-out sky, muddy tones, lowres, deformed, watermark, text"
|
|
@@ -43471,7 +43566,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43471
43566
|
description: "Fake-miniature selective blur.",
|
|
43472
43567
|
group: "Photography & Cinematic",
|
|
43473
43568
|
data: {
|
|
43474
|
-
provider: "
|
|
43569
|
+
provider: "gpt-image-2",
|
|
43475
43570
|
aspectRatio: "16:9",
|
|
43476
43571
|
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",
|
|
43477
43572
|
negativePrompt: "uniform sharp focus, eye-level angle, flat colors, dull lighting, realistic scale, lowres, deformed, watermark, text"
|
|
@@ -43484,7 +43579,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43484
43579
|
description: "Objects arranged at 90\xB0.",
|
|
43485
43580
|
group: "Product & Commerce",
|
|
43486
43581
|
data: {
|
|
43487
|
-
provider: "
|
|
43582
|
+
provider: "gpt-image-2",
|
|
43488
43583
|
aspectRatio: "1:1",
|
|
43489
43584
|
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",
|
|
43490
43585
|
negativePrompt: "cluttered, messy, overlapping objects, diagonal placement, uneven spacing, tilted angle, harsh shadows, lowres, deformed, watermark, text"
|
|
@@ -43496,7 +43591,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43496
43591
|
description: "Invisible-mannequin clothing shot.",
|
|
43497
43592
|
group: "Product & Commerce",
|
|
43498
43593
|
data: {
|
|
43499
|
-
provider: "nano-banana-
|
|
43594
|
+
provider: "nano-banana-2-1",
|
|
43500
43595
|
aspectRatio: "4:5",
|
|
43501
43596
|
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",
|
|
43502
43597
|
negativePrompt: "visible mannequin, body, person, neck, hands, flat lifeless shape, wrinkles, color cast, lowres, deformed, watermark, text"
|
|
@@ -43515,14 +43610,14 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43515
43610
|
name: "Vaporwave",
|
|
43516
43611
|
description: "80s neon pastel aesthetic.",
|
|
43517
43612
|
group: "Illustration & Art Styles",
|
|
43518
|
-
data: { provider: "
|
|
43613
|
+
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" }
|
|
43519
43614
|
},
|
|
43520
43615
|
{
|
|
43521
43616
|
id: "generate-image/cyberpunk-scene",
|
|
43522
43617
|
name: "Cyberpunk Scene",
|
|
43523
43618
|
description: "Neon-lit dystopian night.",
|
|
43524
43619
|
group: "Illustration & Art Styles",
|
|
43525
|
-
data: { provider: "
|
|
43620
|
+
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" }
|
|
43526
43621
|
},
|
|
43527
43622
|
{
|
|
43528
43623
|
id: "generate-image/pop-art",
|
|
@@ -43536,21 +43631,21 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43536
43631
|
name: "Low Poly",
|
|
43537
43632
|
description: "Faceted geometric 3D.",
|
|
43538
43633
|
group: "Illustration & Art Styles",
|
|
43539
|
-
data: { provider: "
|
|
43634
|
+
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" }
|
|
43540
43635
|
},
|
|
43541
43636
|
{
|
|
43542
43637
|
id: "generate-image/paper-cut",
|
|
43543
43638
|
name: "Paper Cut",
|
|
43544
43639
|
description: "Layered cut-paper craft.",
|
|
43545
43640
|
group: "Illustration & Art Styles",
|
|
43546
|
-
data: { provider: "
|
|
43641
|
+
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" }
|
|
43547
43642
|
},
|
|
43548
43643
|
{
|
|
43549
43644
|
id: "generate-image/stained-glass",
|
|
43550
43645
|
name: "Stained Glass",
|
|
43551
43646
|
description: "Leaded colored-glass mosaic.",
|
|
43552
43647
|
group: "Illustration & Art Styles",
|
|
43553
|
-
data: { provider: "
|
|
43648
|
+
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" }
|
|
43554
43649
|
},
|
|
43555
43650
|
// ── Diagrams & Infographics ──────────────────────────────────────────────
|
|
43556
43651
|
{
|
|
@@ -43600,7 +43695,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43600
43695
|
name: "X-Ray / See-Through",
|
|
43601
43696
|
description: "Internal-structure radiograph look.",
|
|
43602
43697
|
group: "Illustration & Art Styles",
|
|
43603
|
-
data: { provider: "
|
|
43698
|
+
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" }
|
|
43604
43699
|
},
|
|
43605
43700
|
// ── More Icons, Game Assets & Textures ───────────────────────────────────
|
|
43606
43701
|
{
|
|
@@ -43608,7 +43703,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43608
43703
|
name: "3D Icon",
|
|
43609
43704
|
description: "Glossy single 3D-rendered icon.",
|
|
43610
43705
|
group: "Icons, Game Assets & Textures",
|
|
43611
|
-
data: { provider: "
|
|
43706
|
+
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" }
|
|
43612
43707
|
},
|
|
43613
43708
|
// ── More Architecture & Interiors ────────────────────────────────────────
|
|
43614
43709
|
{
|
|
@@ -43627,7 +43722,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43627
43722
|
},
|
|
43628
43723
|
// ── Portrait Transformations (identity-locked, from a connected reference photo) ──
|
|
43629
43724
|
// Like Stylized Subject, these are TRANSFORM presets: connect a clean front-facing
|
|
43630
|
-
// reference portrait and
|
|
43725
|
+
// reference portrait and GPT Image 2 rebuilds it. The "Timeless Soul" age
|
|
43631
43726
|
// progression renders ONE person at several ages in a single studio composite — the
|
|
43632
43727
|
// whole effect rides on the identity-lock clause (same eyes/brow/nose/ears/bone
|
|
43633
43728
|
// structure), so it stays one person aging rather than several different people.
|
|
@@ -43637,7 +43732,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43637
43732
|
description: "One person at 5 ages, studio line-up. Needs a reference photo.",
|
|
43638
43733
|
group: "Portrait Transformations",
|
|
43639
43734
|
data: {
|
|
43640
|
-
provider: "
|
|
43735
|
+
provider: "gpt-image-2",
|
|
43641
43736
|
aspectRatio: "3:4",
|
|
43642
43737
|
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.",
|
|
43643
43738
|
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"
|
|
@@ -43649,7 +43744,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43649
43744
|
description: "Same person at 3 ages (~10 / 40 / 75). Needs a reference photo.",
|
|
43650
43745
|
group: "Portrait Transformations",
|
|
43651
43746
|
data: {
|
|
43652
|
-
provider: "
|
|
43747
|
+
provider: "gpt-image-2",
|
|
43653
43748
|
aspectRatio: "3:4",
|
|
43654
43749
|
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.",
|
|
43655
43750
|
negativePrompt: "different person, inconsistent face between figures, distorted features, identity drift across ages, wrong eye color, plastic skin, deformed, blurry, lowres, watermark, text"
|
|
@@ -43661,7 +43756,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43661
43756
|
description: "Monochrome age line-up. Needs a reference photo.",
|
|
43662
43757
|
group: "Portrait Transformations",
|
|
43663
43758
|
data: {
|
|
43664
|
-
provider: "
|
|
43759
|
+
provider: "gpt-image-2",
|
|
43665
43760
|
aspectRatio: "3:4",
|
|
43666
43761
|
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.",
|
|
43667
43762
|
negativePrompt: "color, color tint, different person, inconsistent face between figures, distorted features, identity drift across ages, plastic skin, deformed, blurry, lowres, watermark, text"
|
|
@@ -43673,7 +43768,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43673
43768
|
description: "Same person across the '80s\u20132020s. Needs a reference photo.",
|
|
43674
43769
|
group: "Portrait Transformations",
|
|
43675
43770
|
data: {
|
|
43676
|
-
provider: "
|
|
43771
|
+
provider: "gpt-image-2",
|
|
43677
43772
|
aspectRatio: "3:4",
|
|
43678
43773
|
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.",
|
|
43679
43774
|
negativePrompt: "different person, inconsistent face between figures, distorted features, identity drift across decades, anachronistic styling, plastic skin, deformed, blurry, lowres, watermark, text"
|
|
@@ -43685,7 +43780,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43685
43780
|
description: "Same person in spring / summer / autumn / winter. Needs a reference photo.",
|
|
43686
43781
|
group: "Portrait Transformations",
|
|
43687
43782
|
data: {
|
|
43688
|
-
provider: "
|
|
43783
|
+
provider: "gpt-image-2",
|
|
43689
43784
|
aspectRatio: "3:4",
|
|
43690
43785
|
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.",
|
|
43691
43786
|
negativePrompt: "different person, inconsistent face between figures, distorted features, aging, age differences between figures, plastic skin, deformed, blurry, lowres, watermark, text"
|
|
@@ -43697,7 +43792,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43697
43792
|
description: "Same person at dawn / midday / golden hour / night. Needs a reference photo.",
|
|
43698
43793
|
group: "Portrait Transformations",
|
|
43699
43794
|
data: {
|
|
43700
|
-
provider: "
|
|
43795
|
+
provider: "gpt-image-2",
|
|
43701
43796
|
aspectRatio: "3:4",
|
|
43702
43797
|
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.",
|
|
43703
43798
|
negativePrompt: "different person, inconsistent face between figures, distorted features, aging, age differences between figures, blown highlights, plastic skin, deformed, blurry, lowres, watermark, text"
|
|
@@ -43709,7 +43804,7 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43709
43804
|
description: "You in an oversized team jersey, studio editorial. Needs a reference photo.",
|
|
43710
43805
|
group: "Portrait Transformations",
|
|
43711
43806
|
data: {
|
|
43712
|
-
provider: "nano-banana-
|
|
43807
|
+
provider: "nano-banana-2-1",
|
|
43713
43808
|
aspectRatio: "4:5",
|
|
43714
43809
|
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.",
|
|
43715
43810
|
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"
|
|
@@ -43717,10 +43812,99 @@ var GENERATE_IMAGE_PRESETS = [
|
|
|
43717
43812
|
},
|
|
43718
43813
|
// ── Stylized Subject + Edits (shared with the deprecating modify-image) ──
|
|
43719
43814
|
// Transform patterns — work here when a reference image is connected
|
|
43720
|
-
// (
|
|
43815
|
+
// (GPT Image 2.5 Flare edits it while preserving untouched regions). The
|
|
43721
43816
|
// instruction lives in the prompt, not `style`.
|
|
43722
43817
|
...stylizedSubjectFor("generate-image"),
|
|
43723
|
-
...editsFor("generate-image")
|
|
43818
|
+
...editsFor("generate-image"),
|
|
43819
|
+
// ── Realism & Authentic ──────────────────────────────────────────────────
|
|
43820
|
+
{
|
|
43821
|
+
id: "generate-image/unretouched-portrait",
|
|
43822
|
+
name: "Unretouched Portrait",
|
|
43823
|
+
description: "Straight-on head-and-shoulders portrait, real skin, everyday finish.",
|
|
43824
|
+
group: "Realism & Authentic",
|
|
43825
|
+
data: {
|
|
43826
|
+
...REALISM_MODEL,
|
|
43827
|
+
aspectRatio: "3:4",
|
|
43828
|
+
prompt: sentences("{subject || An adult woman in her thirties with dark shoulder-length hair}, a straight-on head-and-shoulders portrait at eye level against a plain pale wall, soft daylight from one side.", REALISM_SKIN, REALISM_FINISH)
|
|
43829
|
+
}
|
|
43830
|
+
},
|
|
43831
|
+
{
|
|
43832
|
+
id: "generate-image/phone-selfie",
|
|
43833
|
+
name: "Phone Selfie",
|
|
43834
|
+
description: "Eye-level, arm's-length self-portrait look.",
|
|
43835
|
+
group: "Realism & Authentic",
|
|
43836
|
+
data: {
|
|
43837
|
+
...REALISM_MODEL,
|
|
43838
|
+
aspectRatio: "3:4",
|
|
43839
|
+
prompt: sentences("{subject || An adult woman in her late twenties with her hair tied back}, {setting || on a couch at home, a cushion and a lamp behind}.", realismViewpoint(NEUTRAL_PERSON), realismEmptyHands(NEUTRAL_PERSON), REALISM_SKIN, REALISM_FINISH)
|
|
43840
|
+
}
|
|
43841
|
+
},
|
|
43842
|
+
{
|
|
43843
|
+
id: "generate-image/candid-snapshot",
|
|
43844
|
+
name: "Candid Phone Snapshot",
|
|
43845
|
+
description: "Caught mid-moment, an everyday snapshot.",
|
|
43846
|
+
group: "Realism & Authentic",
|
|
43847
|
+
data: {
|
|
43848
|
+
...REALISM_MODEL,
|
|
43849
|
+
aspectRatio: "3:4",
|
|
43850
|
+
prompt: sentences("{subject || An adult man in his thirties} caught mid-moment, not posing, glancing away, the framing a little crooked, part of the scene cut by the edge, {setting || at a kitchen table at home}.", REALISM_SKIN, REALISM_FINISH)
|
|
43851
|
+
}
|
|
43852
|
+
},
|
|
43853
|
+
{
|
|
43854
|
+
id: "generate-image/mirror-selfie",
|
|
43855
|
+
name: "Mirror Selfie",
|
|
43856
|
+
description: "Mirror self-portrait, phone in hand.",
|
|
43857
|
+
group: "Realism & Authentic",
|
|
43858
|
+
data: {
|
|
43859
|
+
...REALISM_MODEL,
|
|
43860
|
+
aspectRatio: "9:16",
|
|
43861
|
+
prompt: sentences("{subject || An adult woman in her twenties} photographs their reflection in a full-length mirror {setting || in a hallway at home}, a phone held at chest height with its back toward the mirror.", REALISM_SKIN, REALISM_FINISH)
|
|
43862
|
+
}
|
|
43863
|
+
},
|
|
43864
|
+
{
|
|
43865
|
+
id: "generate-image/creator-at-home",
|
|
43866
|
+
name: "Creator at Home \xB7 Waist-Up",
|
|
43867
|
+
description: "A waist-up reference of the same person \u2014 wire a face photo into the references.",
|
|
43868
|
+
group: "Realism & Authentic",
|
|
43869
|
+
data: {
|
|
43870
|
+
...REALISM_MODEL,
|
|
43871
|
+
aspectRatio: "9:16",
|
|
43872
|
+
prompt: sentences("Waist-up photo of {image:1:person}, an adult, standing at home in front of a plain wall, arms relaxed, empty hands.", REALISM_SKIN, REALISM_FINISH)
|
|
43873
|
+
}
|
|
43874
|
+
},
|
|
43875
|
+
{
|
|
43876
|
+
id: "generate-image/video-call-frame",
|
|
43877
|
+
name: "Webcam / Video-Call Frame",
|
|
43878
|
+
description: "Chest-up video-call framing.",
|
|
43879
|
+
group: "Realism & Authentic",
|
|
43880
|
+
data: {
|
|
43881
|
+
...REALISM_MODEL,
|
|
43882
|
+
aspectRatio: "16:9",
|
|
43883
|
+
prompt: sentences("{subject || An adult man in his forties}, chest-up, a little off-centre, slightly wide, seen from a fixed point just above eye level about an arm's length away, a softly lit room behind, flat even light from the front.", REALISM_FINISH)
|
|
43884
|
+
}
|
|
43885
|
+
},
|
|
43886
|
+
{
|
|
43887
|
+
id: "generate-image/macro-skin-study",
|
|
43888
|
+
name: "Macro Skin Study",
|
|
43889
|
+
description: "A close study of one area of skin.",
|
|
43890
|
+
group: "Realism & Authentic",
|
|
43891
|
+
data: {
|
|
43892
|
+
...SKIN_STUDY_MODEL,
|
|
43893
|
+
aspectRatio: "1:1",
|
|
43894
|
+
prompt: sentences("{feature || the left cheek and the side of the nose} of {subject || an adult woman in her thirties}, filling the frame, everything sharp front to back, flat cool daylight, neutral colour, a plain study of the skin, not a glamour shot.", REALISM_SKIN)
|
|
43895
|
+
}
|
|
43896
|
+
},
|
|
43897
|
+
{
|
|
43898
|
+
id: "generate-image/product-in-hand",
|
|
43899
|
+
name: "Product in Hand \u2014 phone photo",
|
|
43900
|
+
description: "Wire a photo of the product into the references.",
|
|
43901
|
+
group: "Realism & Authentic",
|
|
43902
|
+
data: {
|
|
43903
|
+
...REALISM_MODEL,
|
|
43904
|
+
aspectRatio: "3:4",
|
|
43905
|
+
prompt: sentences("{subject || An adult woman in her thirties} holds {image:1:product} at chest height toward the viewer, label facing out, {setting || in a bright room at home}.", REALISM_FINISH)
|
|
43906
|
+
}
|
|
43907
|
+
}
|
|
43724
43908
|
];
|
|
43725
43909
|
|
|
43726
43910
|
// src/factory-presets/generate-video.ts
|
|
@@ -46179,6 +46363,16 @@ var IMAGE_TO_TEXT_PRESETS = [
|
|
|
46179
46363
|
description: "Image \u2192 text-to-image prompt.",
|
|
46180
46364
|
group: "Creative",
|
|
46181
46365
|
data: { detailLevel: "detailed", customPrompt: "Describe this image as a detailed text-to-image generation prompt: subject, style, lighting, composition and lens. Return only the prompt." }
|
|
46366
|
+
},
|
|
46367
|
+
{
|
|
46368
|
+
id: "image-to-text/realism-audit",
|
|
46369
|
+
name: "Realism Audit",
|
|
46370
|
+
description: "Lists the signs an image was generated, with a count.",
|
|
46371
|
+
group: "Creative",
|
|
46372
|
+
data: {
|
|
46373
|
+
detailLevel: "structured",
|
|
46374
|
+
customPrompt: 'Check this image for signs that it was generated rather than photographed. Answer each question yes or no, with a few words why. 1. Is the skin smooth, waxy or airbrushed, with no visible pores? 2. Is the face unusually symmetrical, or are the teeth unnaturally even and white? 3. Are any hands or fingers malformed, merged or the wrong count? 4. Is any text, logo or sign garbled? 5. Is the background blurred far more than an everyday snapshot would be? 6. Are the catchlights in the eyes perfect rings, or identical in both eyes? 7. Is the hair uniformly perfect, with no flyaways? 8. Do edges look over-sharpened or haloed? 9. Is there a glow or bloom on the skin? 10. Do shadows or reflections disagree with the light? Finish with one line: "Tells found: N of 10".'
|
|
46375
|
+
}
|
|
46182
46376
|
}
|
|
46183
46377
|
];
|
|
46184
46378
|
|
|
@@ -46824,12 +47018,17 @@ function groupFactoryPresets(presets) {
|
|
|
46824
47018
|
}
|
|
46825
47019
|
|
|
46826
47020
|
// src/factory-presets/index.ts
|
|
47021
|
+
function forModifyImage(p) {
|
|
47022
|
+
const provider = p.data.provider;
|
|
47023
|
+
const imageToImage = typeof provider === "string" ? shared.T2I_TO_I2I_VARIANT[provider] : void 0;
|
|
47024
|
+
return imageToImage ? { ...p, data: { ...p.data, provider: imageToImage } } : p;
|
|
47025
|
+
}
|
|
46827
47026
|
var FACTORY_PRESETS = {
|
|
46828
47027
|
"generate-image": GENERATE_IMAGE_PRESETS,
|
|
46829
47028
|
// modify-image shares the Stylized Subject + Edits catalogs with generate-image
|
|
46830
47029
|
// (single source of truth in STYLIZED_SUBJECT / IMAGE_EDITS). modify-image is
|
|
46831
47030
|
// slated for deprecation in favor of generate-image — when removed, drop this key.
|
|
46832
|
-
"modify-image": [...stylizedSubjectFor("modify-image"), ...editsFor("modify-image")],
|
|
47031
|
+
"modify-image": [...stylizedSubjectFor("modify-image"), ...editsFor("modify-image")].map(forModifyImage),
|
|
46833
47032
|
"generate-video": GENERATE_VIDEO_PRESETS,
|
|
46834
47033
|
"text-to-speech": TEXT_TO_SPEECH_PRESETS,
|
|
46835
47034
|
"text-to-audio": TEXT_TO_AUDIO_PRESETS,
|
|
@@ -47479,23 +47678,23 @@ function planFrameDelivery(args) {
|
|
|
47479
47678
|
...requested === "reference" && !args.supportsReferenceImages ? { refusedReason: "no-reference-support" } : {}
|
|
47480
47679
|
};
|
|
47481
47680
|
}
|
|
47482
|
-
const
|
|
47483
|
-
if (
|
|
47681
|
+
const cap2 = shared.VIDEO_REF_LIMITS_BY_PROVIDER[args.provider ?? ""]?.images;
|
|
47682
|
+
if (cap2 !== void 0 && userRefs.length + frames.length > cap2) {
|
|
47484
47683
|
return { delivery: "frame", referenceImageUrls: userRefs, promptSuffix: "", refusedReason: "image-cap" };
|
|
47485
47684
|
}
|
|
47486
47685
|
const referenceImageUrls = [...userRefs];
|
|
47487
|
-
const
|
|
47686
|
+
const sentences2 = [];
|
|
47488
47687
|
if (args.startFrameUrl) {
|
|
47489
47688
|
referenceImageUrls.push(args.startFrameUrl);
|
|
47490
47689
|
if (!promptBindsFirstFrame(args.prompt)) {
|
|
47491
|
-
|
|
47690
|
+
sentences2.push(REF_BINDING.frame(referenceImageUrls.length, "opening"));
|
|
47492
47691
|
}
|
|
47493
47692
|
}
|
|
47494
47693
|
if (args.endFrameUrl) {
|
|
47495
47694
|
referenceImageUrls.push(args.endFrameUrl);
|
|
47496
|
-
|
|
47695
|
+
sentences2.push(REF_BINDING.frame(referenceImageUrls.length, "closing"));
|
|
47497
47696
|
}
|
|
47498
|
-
return { delivery: "reference", referenceImageUrls, promptSuffix:
|
|
47697
|
+
return { delivery: "reference", referenceImageUrls, promptSuffix: sentences2.join(" ") };
|
|
47499
47698
|
}
|
|
47500
47699
|
|
|
47501
47700
|
// src/character-motion-diagnostics.ts
|
|
@@ -47779,6 +47978,7 @@ exports.MUSIC_GENRE_DEFAULT_DATA = MUSIC_GENRE_DEFAULT_DATA;
|
|
|
47779
47978
|
exports.MUSIC_MOOD_DEFAULT_DATA = MUSIC_MOOD_DEFAULT_DATA;
|
|
47780
47979
|
exports.MUSIC_VIBES = MUSIC_VIBES;
|
|
47781
47980
|
exports.MUSIC_WIZARD_CATEGORIES = MUSIC_WIZARD_CATEGORIES;
|
|
47981
|
+
exports.NEUTRAL_PERSON = NEUTRAL_PERSON;
|
|
47782
47982
|
exports.NODE_PROMPT_CANDIDATE_FIELDS = NODE_PROMPT_CANDIDATE_FIELDS;
|
|
47783
47983
|
exports.NODE_PROMPT_FIELDS = NODE_PROMPT_FIELDS;
|
|
47784
47984
|
exports.OBJECT_ANGLE_PRESETS = OBJECT_ANGLE_PRESETS;
|
|
@@ -47822,6 +48022,9 @@ exports.PROMPT_AFFIX_NODE_TYPES = PROMPT_AFFIX_NODE_TYPES;
|
|
|
47822
48022
|
exports.PROMPT_HINT_SEPARATOR = PROMPT_HINT_SEPARATOR;
|
|
47823
48023
|
exports.PROVIDER_CAPABILITIES = PROVIDER_CAPABILITIES;
|
|
47824
48024
|
exports.PROVIDER_PROMPT_DOCTRINES = PROVIDER_PROMPT_DOCTRINES;
|
|
48025
|
+
exports.REALISM_FINISH = REALISM_FINISH;
|
|
48026
|
+
exports.REALISM_PASS_INSTRUCTION = REALISM_PASS_INSTRUCTION;
|
|
48027
|
+
exports.REALISM_SKIN = REALISM_SKIN;
|
|
47825
48028
|
exports.REFERENCE_IMAGE_ROLES = REFERENCE_IMAGE_ROLES;
|
|
47826
48029
|
exports.REFERENCE_RULES = REFERENCE_RULES;
|
|
47827
48030
|
exports.REFERENCE_RULES_MULTI_PERSON = REFERENCE_RULES_MULTI_PERSON;
|
|
@@ -48274,6 +48477,8 @@ exports.readDirectionFields = readDirectionFields;
|
|
|
48274
48477
|
exports.readStructuredFields = readStructuredFields;
|
|
48275
48478
|
exports.readSubjectFields = readSubjectFields;
|
|
48276
48479
|
exports.readTransitionOptionValues = readTransitionOptionValues;
|
|
48480
|
+
exports.realismEmptyHands = realismEmptyHands;
|
|
48481
|
+
exports.realismViewpoint = realismViewpoint;
|
|
48277
48482
|
exports.referenceDescriptionLine = referenceDescriptionLine;
|
|
48278
48483
|
exports.referenceRulesBlock = referenceRulesBlock;
|
|
48279
48484
|
exports.registerCatalogPack = registerCatalogPack;
|