@nodaro/prompts 1.35.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.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, SOCIAL_POST_NODE_TYPES, FURNITURE, WEAPONS, VEHICLES, ANIMALS, getAnimalPromptHint, PASSTHROUGH_TYPES, registerCatalogSidecars, resetCatalogSidecars, pickIds, getAnimalTerm, getVehicle, getWeapon, getFurniture, DEFAULT_USAGE_MODE, usageModeDirective, DEFAULT_LOCATION_USAGE_MODE, imageReferenceLimit, knownImageSlugsFromRefs, findImageMentionTokens, knownEntitySlugsFromRefs, findEntityMentionTokens, findCharacterMentionTokens, findLocationMentionTokens, NATIVE_NEGATIVE_PROMPT_MODELS, getMaxNegativePromptChars, getMaxImagePromptChars, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, roleToPhrase, resolveDefaultRole, SEEDANCE_2_REF_LIMITS, NON_EN_LOCALE_IDS, readPromptAffixes, resolveFrameDelivery, VIDEO_REF_LIMITS_BY_PROVIDER, resolveNodeRefs, setRegisteredPersonPackFields, PLACEHOLDER_CHARACTER_NAME, REFERENCE_ROLE_PRESETS, imageMentionSlugForRef, entityMentionSlugForRef, defaultRoleForSource, locationReferencePhotoKindLabel, normalizeRoleSlug } from '@nodaro/shared';
1
+ import { ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, SOCIAL_POST_NODE_TYPES, FURNITURE, WEAPONS, VEHICLES, ANIMALS, T2I_TO_I2I_VARIANT, getAnimalPromptHint, PASSTHROUGH_TYPES, registerCatalogSidecars, resetCatalogSidecars, pickIds, getAnimalTerm, getVehicle, getWeapon, getFurniture, DEFAULT_USAGE_MODE, usageModeDirective, DEFAULT_LOCATION_USAGE_MODE, imageReferenceLimit, knownImageSlugsFromRefs, findImageMentionTokens, knownEntitySlugsFromRefs, findEntityMentionTokens, findCharacterMentionTokens, findLocationMentionTokens, NATIVE_NEGATIVE_PROMPT_MODELS, getMaxNegativePromptChars, getMaxImagePromptChars, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, roleToPhrase, resolveDefaultRole, SEEDANCE_2_REF_LIMITS, NON_EN_LOCALE_IDS, readPromptAffixes, resolveFrameDelivery, VIDEO_REF_LIMITS_BY_PROVIDER, resolveNodeRefs, setRegisteredPersonPackFields, PLACEHOLDER_CHARACTER_NAME, REFERENCE_ROLE_PRESETS, imageMentionSlugForRef, entityMentionSlugForRef, defaultRoleForSource, locationReferencePhotoKindLabel, normalizeRoleSlug } from '@nodaro/shared';
2
2
 
3
3
  var __defProp = Object.defineProperty;
4
4
  var __export = (target, all) => {
@@ -23097,9 +23097,9 @@ function renderDescribedReferenceLines(refs) {
23097
23097
  }
23098
23098
  function renderReferenceCaptionLines(videoCaptions, audioCaptions, counts) {
23099
23099
  const lines = [];
23100
- const render = (captions, kind, cap) => {
23100
+ const render = (captions, kind, cap2) => {
23101
23101
  if (!captions) return;
23102
- for (let i = 0; i < captions.length && i < cap; i++) {
23102
+ for (let i = 0; i < captions.length && i < cap2; i++) {
23103
23103
  const text = captions[i]?.trim();
23104
23104
  if (!text) continue;
23105
23105
  lines.push(`@${kind}_${i + 1}: ${text}.`);
@@ -25667,17 +25667,17 @@ function composeVideoPromptText(userPrompt, direction, structured, opts) {
25667
25667
  ].filter((c) => c.text.length > 0);
25668
25668
  const structuredFragment = structured ? renderStructuredFields(structured) : "";
25669
25669
  const composeWith = (kept2) => composeSectionedPrompt(userPrompt, hintClauses.slice(0, kept2), structuredFragment);
25670
- const cap = opts?.cap;
25671
- if (cap === void 0) return composeWith(hintClauses.length);
25670
+ const cap2 = opts?.cap;
25671
+ if (cap2 === void 0) return composeWith(hintClauses.length);
25672
25672
  const frame = opts?.frame ?? ((body2) => body2);
25673
25673
  let kept = hintClauses.length;
25674
25674
  let body = composeWith(kept);
25675
25675
  let framedLength = frame(body)?.length ?? 0;
25676
- if (framedLength <= cap) return body;
25676
+ if (framedLength <= cap2) return body;
25677
25677
  const costs = sectionedClauseCosts(userPrompt, hintClauses, structuredFragment);
25678
25678
  const texts = hintClauses.map((c) => c.text);
25679
- while (framedLength > cap && kept > 0) {
25680
- kept = keepableDirectionHints(texts, kept, framedLength - cap, costs);
25679
+ while (framedLength > cap2 && kept > 0) {
25680
+ kept = keepableDirectionHints(texts, kept, framedLength - cap2, costs);
25681
25681
  body = composeWith(kept);
25682
25682
  framedLength = frame(body)?.length ?? 0;
25683
25683
  }
@@ -40858,8 +40858,8 @@ ${buildPickerLegend(spec)}`);
40858
40858
  function buildPickerLegend(spec) {
40859
40859
  const lines = [];
40860
40860
  for (const d of spec.dimensions) {
40861
- const cap = d.limit > 1 ? `up to ${d.limit}` : "one";
40862
- lines.push(`## ${d.label} (key: "${d.dimension}", choose ${cap})`);
40861
+ const cap2 = d.limit > 1 ? `up to ${d.limit}` : "one";
40862
+ lines.push(`## ${d.label} (key: "${d.dimension}", choose ${cap2})`);
40863
40863
  for (const e of d.legend) {
40864
40864
  lines.push(`- ${e.id}: ${e.label}${e.description ? ` \u2014 ${e.description}` : ""}`);
40865
40865
  }
@@ -41179,7 +41179,7 @@ var KLING_AUDIO_DOCTRINE = {
41179
41179
  };
41180
41180
  var MINIMAX_H3_DOCTRINE = {
41181
41181
  providers: ["minimax-h3"],
41182
- heading: "MiniMax Hailuo 3 (minimax-h3)",
41182
+ heading: "MiniMax H3 (minimax-h3)",
41183
41183
  tips: [
41184
41184
  "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.",
41185
41185
  "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).",
@@ -41570,11 +41570,11 @@ function buildScene3DUnreferencedFiguresWarning(check2) {
41570
41570
  const figureWord = figures === 1 ? "figure" : "figures";
41571
41571
  const refWord = refs === 1 ? "character reference is" : "character references are";
41572
41572
  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)`;
41573
- const cap = check2.imageReferenceCap;
41574
- if (typeof cap === "number" && Number.isFinite(cap) && cap > 0) {
41573
+ const cap2 = check2.imageReferenceCap;
41574
+ if (typeof cap2 === "number" && Number.isFinite(cap2) && cap2 > 0) {
41575
41575
  const seats = Math.max(0, Math.floor(check2.layoutReferenceImageSeats ?? 0));
41576
- const spare = cap - seats - figures;
41577
- message += spare >= SCENE3D_FREE_PLATE_SLOTS ? `; this model takes ${cap} image references, which leaves ${spare} for a location or style plate.` : `; this model takes ${cap} 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.`;
41576
+ const spare = cap2 - seats - figures;
41577
+ 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.`;
41578
41578
  } else {
41579
41579
  message += ".";
41580
41580
  }
@@ -41765,7 +41765,7 @@ var PROVIDER_CAPABILITIES = {
41765
41765
  "seedance-2-fast": "Seedance 2.0 Fast \u2014 same multimodal + audio capabilities, cheaper and quicker",
41766
41766
  "seedance-2-mini": "Seedance 2.0 Mini \u2014 same multimodal + audio capabilities, budget tier, 480p/720p, 4-15s",
41767
41767
  "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",
41768
- "minimax-h3": "MiniMax Hailuo 3 \u2014 premium multimodal refs (9 images / 3 videos / 3 audio), always-on audio, 2K or 768P, 4-15s per-second pricing",
41768
+ "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",
41769
41769
  "wan": "Versatile, good for animations and transformations",
41770
41770
  "wan-turbo": "Faster Wan generation",
41771
41771
  "hailuo-standard": "Standard quality, cost-effective",
@@ -41796,7 +41796,7 @@ var PROVIDER_CAPABILITIES = {
41796
41796
  "seedance-2-fast": "Seedance 2.0 Fast \u2014 same capabilities, cheaper and quicker",
41797
41797
  "seedance-2-mini": "Seedance 2.0 Mini \u2014 same capabilities, budget tier, 480p/720p",
41798
41798
  "seedance-2-5": "Seedance 2.5 \u2014 start/end frame + wide multimodal refs, native audio, up to 30s, 480p/720p/1080p",
41799
- "minimax-h3": "MiniMax Hailuo 3 \u2014 first/last frame + multimodal refs, always-on audio, 2K or 768P, 4-15s",
41799
+ "minimax-h3": "MiniMax H3 \u2014 first/last frame + multimodal refs, always-on audio, 2K or 768P, 4-15s",
41800
41800
  "hailuo-2.3-pro": "Premium Hailuo animation",
41801
41801
  "hailuo-2.3": "Standard Hailuo animation",
41802
41802
  "hailuo-standard": "Cost-effective animation",
@@ -42083,6 +42083,19 @@ var PROMPT_AFFIX_NODE_TYPES = new Set(
42083
42083
  Object.entries(NODE_PROMPT_FIELDS).filter(([, s]) => s.affixes !== false).map(([t]) => t)
42084
42084
  );
42085
42085
 
42086
+ // src/realism-wording.ts
42087
+ var NEUTRAL_PERSON = { subject: "the person", possessive: "their" };
42088
+ var cap = (s) => s.length === 0 ? s : `${s[0].toUpperCase()}${s.slice(1)}`;
42089
+ 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.";
42090
+ 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.";
42091
+ 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.";
42092
+ function realismViewpoint(p) {
42093
+ 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.`;
42094
+ }
42095
+ function realismEmptyHands(p) {
42096
+ return `${cap(p.possessive)} hands are empty; ${p.subject} is holding nothing.`;
42097
+ }
42098
+
42086
42099
  // src/factory-presets/shared-image.ts
42087
42100
  var STYLIZED_SUBJECT = [
42088
42101
  {
@@ -42215,6 +42228,47 @@ var IMAGE_EDITS = [
42215
42228
  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.",
42216
42229
  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"
42217
42230
  }
42231
+ },
42232
+ {
42233
+ slug: "add-skin-realism",
42234
+ name: "Add Skin Realism",
42235
+ description: "Brings back visible skin texture \u2014 same person, same photo.",
42236
+ data: { provider: "nano-banana-2-1", aspectRatio: "auto", resolution: "2K", promptPrefix: REALISM_PASS_INSTRUCTION }
42237
+ },
42238
+ {
42239
+ slug: "natural-photo-finish",
42240
+ name: "Natural Photo Finish",
42241
+ description: "Takes out a rendered-looking finish, keeps the photo.",
42242
+ data: {
42243
+ provider: "nano-banana-2-1",
42244
+ aspectRatio: "auto",
42245
+ resolution: "2K",
42246
+ 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.`
42247
+ }
42248
+ },
42249
+ {
42250
+ slug: "phone-camera-look",
42251
+ name: "Phone Camera Look",
42252
+ description: "Re-finishes a photo as an everyday snapshot.",
42253
+ data: {
42254
+ provider: "nano-banana-2-1",
42255
+ aspectRatio: "auto",
42256
+ resolution: "2K",
42257
+ promptPrefix: `Re-finish this photo, changing nothing in it: ${REALISM_FINISH} Same people, framing, pose and background.`
42258
+ }
42259
+ },
42260
+ {
42261
+ slug: "undo-beauty-filter",
42262
+ name: "Undo Beauty Filter",
42263
+ description: "Reverses smoothing and reshaping on a real photo.",
42264
+ data: {
42265
+ provider: "seedream-5-pro",
42266
+ // "auto" keeps the photo's shape: this model lists no native "auto", so on either node the
42267
+ // run takes its listed ratio nearest the connected photo.
42268
+ aspectRatio: "auto",
42269
+ quality: "high",
42270
+ 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."
42271
+ }
42218
42272
  }
42219
42273
  ];
42220
42274
  function editsFor(nodeType) {
@@ -42228,6 +42282,9 @@ function editsFor(nodeType) {
42228
42282
  }
42229
42283
 
42230
42284
  // src/factory-presets/generate-image.ts
42285
+ var sentences = (...parts) => parts.join(" ");
42286
+ var REALISM_MODEL = { provider: "gpt-image-2", resolution: "2K" };
42287
+ var SKIN_STUDY_MODEL = { provider: "seedream-5-pro", quality: "high" };
42231
42288
  var GENERATE_IMAGE_PRESETS = [
42232
42289
  // ── Reference Sheet ──────────────────────────────────────────────────────
42233
42290
  {
@@ -42384,6 +42441,22 @@ var GENERATE_IMAGE_PRESETS = [
42384
42441
  negativePrompt: "illustration, cartoon, 3d render, garbled text, misspelled labels, watermark, deformed anatomy, inconsistent markings between panels, wrong breed, blurry, low resolution"
42385
42442
  }
42386
42443
  },
42444
+ {
42445
+ id: "generate-image/skin-detail-sheet",
42446
+ name: "Skin Detail Sheet",
42447
+ description: "Connect a sharp face photo \u2192 a six-panel skin reference.",
42448
+ group: "Reference Sheet",
42449
+ data: {
42450
+ ...SKIN_STUDY_MODEL,
42451
+ aspectRatio: "3:2",
42452
+ promptPrefix: sentences(
42453
+ '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:',
42454
+ REALISM_SKIN,
42455
+ "Flat, even daylight, neutral colour, everything sharp."
42456
+ ),
42457
+ 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."
42458
+ }
42459
+ },
42387
42460
  // ── Cast & Consistency (clean grids per the multi-character workflow:
42388
42461
  // sterile neutral-background reference grids built to be FED BACK as identity
42389
42462
  // anchors — unlike the editorial boards above, decoration here is noise.
@@ -43740,7 +43813,96 @@ var GENERATE_IMAGE_PRESETS = [
43740
43813
  // (GPT Image 2.5 Flare edits it while preserving untouched regions). The
43741
43814
  // instruction lives in the prompt, not `style`.
43742
43815
  ...stylizedSubjectFor("generate-image"),
43743
- ...editsFor("generate-image")
43816
+ ...editsFor("generate-image"),
43817
+ // ── Realism & Authentic ──────────────────────────────────────────────────
43818
+ {
43819
+ id: "generate-image/unretouched-portrait",
43820
+ name: "Unretouched Portrait",
43821
+ description: "Straight-on head-and-shoulders portrait, real skin, everyday finish.",
43822
+ group: "Realism & Authentic",
43823
+ data: {
43824
+ ...REALISM_MODEL,
43825
+ aspectRatio: "3:4",
43826
+ 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)
43827
+ }
43828
+ },
43829
+ {
43830
+ id: "generate-image/phone-selfie",
43831
+ name: "Phone Selfie",
43832
+ description: "Eye-level, arm's-length self-portrait look.",
43833
+ group: "Realism & Authentic",
43834
+ data: {
43835
+ ...REALISM_MODEL,
43836
+ aspectRatio: "3:4",
43837
+ 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)
43838
+ }
43839
+ },
43840
+ {
43841
+ id: "generate-image/candid-snapshot",
43842
+ name: "Candid Phone Snapshot",
43843
+ description: "Caught mid-moment, an everyday snapshot.",
43844
+ group: "Realism & Authentic",
43845
+ data: {
43846
+ ...REALISM_MODEL,
43847
+ aspectRatio: "3:4",
43848
+ 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)
43849
+ }
43850
+ },
43851
+ {
43852
+ id: "generate-image/mirror-selfie",
43853
+ name: "Mirror Selfie",
43854
+ description: "Mirror self-portrait, phone in hand.",
43855
+ group: "Realism & Authentic",
43856
+ data: {
43857
+ ...REALISM_MODEL,
43858
+ aspectRatio: "9:16",
43859
+ 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)
43860
+ }
43861
+ },
43862
+ {
43863
+ id: "generate-image/creator-at-home",
43864
+ name: "Creator at Home \xB7 Waist-Up",
43865
+ description: "A waist-up reference of the same person \u2014 wire a face photo into the references.",
43866
+ group: "Realism & Authentic",
43867
+ data: {
43868
+ ...REALISM_MODEL,
43869
+ aspectRatio: "9:16",
43870
+ 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)
43871
+ }
43872
+ },
43873
+ {
43874
+ id: "generate-image/video-call-frame",
43875
+ name: "Webcam / Video-Call Frame",
43876
+ description: "Chest-up video-call framing.",
43877
+ group: "Realism & Authentic",
43878
+ data: {
43879
+ ...REALISM_MODEL,
43880
+ aspectRatio: "16:9",
43881
+ 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)
43882
+ }
43883
+ },
43884
+ {
43885
+ id: "generate-image/macro-skin-study",
43886
+ name: "Macro Skin Study",
43887
+ description: "A close study of one area of skin.",
43888
+ group: "Realism & Authentic",
43889
+ data: {
43890
+ ...SKIN_STUDY_MODEL,
43891
+ aspectRatio: "1:1",
43892
+ 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)
43893
+ }
43894
+ },
43895
+ {
43896
+ id: "generate-image/product-in-hand",
43897
+ name: "Product in Hand \u2014 phone photo",
43898
+ description: "Wire a photo of the product into the references.",
43899
+ group: "Realism & Authentic",
43900
+ data: {
43901
+ ...REALISM_MODEL,
43902
+ aspectRatio: "3:4",
43903
+ 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)
43904
+ }
43905
+ }
43744
43906
  ];
43745
43907
 
43746
43908
  // src/factory-presets/generate-video.ts
@@ -46199,6 +46361,16 @@ var IMAGE_TO_TEXT_PRESETS = [
46199
46361
  description: "Image \u2192 text-to-image prompt.",
46200
46362
  group: "Creative",
46201
46363
  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." }
46364
+ },
46365
+ {
46366
+ id: "image-to-text/realism-audit",
46367
+ name: "Realism Audit",
46368
+ description: "Lists the signs an image was generated, with a count.",
46369
+ group: "Creative",
46370
+ data: {
46371
+ detailLevel: "structured",
46372
+ 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".'
46373
+ }
46202
46374
  }
46203
46375
  ];
46204
46376
 
@@ -46844,12 +47016,17 @@ function groupFactoryPresets(presets) {
46844
47016
  }
46845
47017
 
46846
47018
  // src/factory-presets/index.ts
47019
+ function forModifyImage(p) {
47020
+ const provider = p.data.provider;
47021
+ const imageToImage = typeof provider === "string" ? T2I_TO_I2I_VARIANT[provider] : void 0;
47022
+ return imageToImage ? { ...p, data: { ...p.data, provider: imageToImage } } : p;
47023
+ }
46847
47024
  var FACTORY_PRESETS = {
46848
47025
  "generate-image": GENERATE_IMAGE_PRESETS,
46849
47026
  // modify-image shares the Stylized Subject + Edits catalogs with generate-image
46850
47027
  // (single source of truth in STYLIZED_SUBJECT / IMAGE_EDITS). modify-image is
46851
47028
  // slated for deprecation in favor of generate-image — when removed, drop this key.
46852
- "modify-image": [...stylizedSubjectFor("modify-image"), ...editsFor("modify-image")],
47029
+ "modify-image": [...stylizedSubjectFor("modify-image"), ...editsFor("modify-image")].map(forModifyImage),
46853
47030
  "generate-video": GENERATE_VIDEO_PRESETS,
46854
47031
  "text-to-speech": TEXT_TO_SPEECH_PRESETS,
46855
47032
  "text-to-audio": TEXT_TO_AUDIO_PRESETS,
@@ -47499,23 +47676,23 @@ function planFrameDelivery(args) {
47499
47676
  ...requested === "reference" && !args.supportsReferenceImages ? { refusedReason: "no-reference-support" } : {}
47500
47677
  };
47501
47678
  }
47502
- const cap = VIDEO_REF_LIMITS_BY_PROVIDER[args.provider ?? ""]?.images;
47503
- if (cap !== void 0 && userRefs.length + frames.length > cap) {
47679
+ const cap2 = VIDEO_REF_LIMITS_BY_PROVIDER[args.provider ?? ""]?.images;
47680
+ if (cap2 !== void 0 && userRefs.length + frames.length > cap2) {
47504
47681
  return { delivery: "frame", referenceImageUrls: userRefs, promptSuffix: "", refusedReason: "image-cap" };
47505
47682
  }
47506
47683
  const referenceImageUrls = [...userRefs];
47507
- const sentences = [];
47684
+ const sentences2 = [];
47508
47685
  if (args.startFrameUrl) {
47509
47686
  referenceImageUrls.push(args.startFrameUrl);
47510
47687
  if (!promptBindsFirstFrame(args.prompt)) {
47511
- sentences.push(REF_BINDING.frame(referenceImageUrls.length, "opening"));
47688
+ sentences2.push(REF_BINDING.frame(referenceImageUrls.length, "opening"));
47512
47689
  }
47513
47690
  }
47514
47691
  if (args.endFrameUrl) {
47515
47692
  referenceImageUrls.push(args.endFrameUrl);
47516
- sentences.push(REF_BINDING.frame(referenceImageUrls.length, "closing"));
47693
+ sentences2.push(REF_BINDING.frame(referenceImageUrls.length, "closing"));
47517
47694
  }
47518
- return { delivery: "reference", referenceImageUrls, promptSuffix: sentences.join(" ") };
47695
+ return { delivery: "reference", referenceImageUrls, promptSuffix: sentences2.join(" ") };
47519
47696
  }
47520
47697
 
47521
47698
  // src/character-motion-diagnostics.ts
@@ -47659,6 +47836,6 @@ function computeNodeSendText(nodeType, data, args) {
47659
47836
  }
47660
47837
  }
47661
47838
 
47662
- export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, AURORA_SWEEP_STYLE, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, CHARACTER_ART_FAMILIES, CHARACTER_ART_FILES, CHARACTER_ART_PATH, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_POSITIONS, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, DEBRIS_SHOWER_STYLE, DEFAULT_IDENTITY_LOCK, DEFAULT_OWN_MOTION, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FILM_STYLE_KEYS, FLOORED_PICKER_KEYS, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, GAPS_SCHEMA, GARDEN_BLOOM_STYLE, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, HOOK_PLATE_PRESET_ID, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOK_PREVIEW_SETS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MAX_SUBJECT_KEYS, MINOR_IMPLYING_TYPE_IDS, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, OWN_MOTION_NODE_TYPES, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_ART_PATH, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, RETIRED_ADULT_ONLY_HINT_STRINGS, SAKURA_PETALS_STYLE, SAND_STORM_STYLE, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SEEDANCE_VIDEO_EDIT_PREFIX, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SMOKE_PUFF_STYLE, SNIPPET_MEDIA_VALUES, SOUND_ART, SOUND_ART_FILES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, SUBJECT_ARRAY_CEILING, SUBJECT_CUSTOM_AGE_KEY, SUBJECT_FIELDS, SUBJECT_FOLD_KEYS, SUBJECT_ID_MAX_CHARS, SUBJECT_IMAGE_HINT_MODE_DEFAULT, SUBJECT_KEYS, SUBJECT_KEY_MAX_CHARS, SUBJECT_VIDEO_HINT_MODE_DEFAULT, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_REQUIRED_NODE_TYPES, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_OPTION_FIELDS, TRANSITION_POSITIONS, TRANSITION_STYLE_FIELD, VIDEO_HINT_MODE_DEFAULT, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, WHITE_FLASH_STYLE, WIPE_DIRECTION, WIRED_OUTPUT_NODE_TYPES, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendPromptHints, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, blendedCutClause, buildActionFxHints, buildActionFxTerms, buildAdCreativeAnalysisUserText, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildNeedleAlternationSource, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, buildScenePrompt, buildSeedanceVideoEditPrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterArtPath, characterLockToRefLock, characterSectionArtPath, characterSectionSlug, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeAiWriterInput, computeLlmChatFields, computeNodePrompt, computeNodeSendText, computePackSidecarCoverage, computeScriptTopic, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionBindings, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMinorAgeHintStrings, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRegisteredSubjectKeys, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionOptions, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasCatalogPacksFor, hasScene3DLayoutScopingLine, hasUpstreamCharacter, hookPlateCaptionSegments, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isBlendableTransition, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, joinSentences, keepableDirectionHints, listPickerCatalogs, lookPreviewStillUrl, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, ownMotionHint, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, pickerOptionImageUrl, pickerSectionImageUrl, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, readTransitionOptionValues, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, renderTransitionBases, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, soundArtFilePath, soundArtPath, splitStyleSection, stripAudioTags, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
47839
+ export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, AURORA_SWEEP_STYLE, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, CHARACTER_ART_FAMILIES, CHARACTER_ART_FILES, CHARACTER_ART_PATH, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_POSITIONS, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, DEBRIS_SHOWER_STYLE, DEFAULT_IDENTITY_LOCK, DEFAULT_OWN_MOTION, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FILM_STYLE_KEYS, FLOORED_PICKER_KEYS, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, GAPS_SCHEMA, GARDEN_BLOOM_STYLE, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, HOOK_PLATE_PRESET_ID, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOK_PREVIEW_SETS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MAX_SUBJECT_KEYS, MINOR_IMPLYING_TYPE_IDS, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, NEUTRAL_PERSON, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, OWN_MOTION_NODE_TYPES, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_ART_PATH, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REALISM_FINISH, REALISM_PASS_INSTRUCTION, REALISM_SKIN, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, RETIRED_ADULT_ONLY_HINT_STRINGS, SAKURA_PETALS_STYLE, SAND_STORM_STYLE, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SEEDANCE_VIDEO_EDIT_PREFIX, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SMOKE_PUFF_STYLE, SNIPPET_MEDIA_VALUES, SOUND_ART, SOUND_ART_FILES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, SUBJECT_ARRAY_CEILING, SUBJECT_CUSTOM_AGE_KEY, SUBJECT_FIELDS, SUBJECT_FOLD_KEYS, SUBJECT_ID_MAX_CHARS, SUBJECT_IMAGE_HINT_MODE_DEFAULT, SUBJECT_KEYS, SUBJECT_KEY_MAX_CHARS, SUBJECT_VIDEO_HINT_MODE_DEFAULT, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_REQUIRED_NODE_TYPES, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_OPTION_FIELDS, TRANSITION_POSITIONS, TRANSITION_STYLE_FIELD, VIDEO_HINT_MODE_DEFAULT, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, WHITE_FLASH_STYLE, WIPE_DIRECTION, WIRED_OUTPUT_NODE_TYPES, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendPromptHints, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, blendedCutClause, buildActionFxHints, buildActionFxTerms, buildAdCreativeAnalysisUserText, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildNeedleAlternationSource, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, buildScenePrompt, buildSeedanceVideoEditPrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterArtPath, characterLockToRefLock, characterSectionArtPath, characterSectionSlug, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeAiWriterInput, computeLlmChatFields, computeNodePrompt, computeNodeSendText, computePackSidecarCoverage, computeScriptTopic, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionBindings, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMinorAgeHintStrings, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRegisteredSubjectKeys, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionOptions, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasCatalogPacksFor, hasScene3DLayoutScopingLine, hasUpstreamCharacter, hookPlateCaptionSegments, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isBlendableTransition, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, joinSentences, keepableDirectionHints, listPickerCatalogs, lookPreviewStillUrl, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, ownMotionHint, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, pickerOptionImageUrl, pickerSectionImageUrl, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, readTransitionOptionValues, realismEmptyHands, realismViewpoint, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, renderTransitionBases, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, soundArtFilePath, soundArtPath, splitStyleSection, stripAudioTags, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
47663
47840
  //# sourceMappingURL=index.js.map
47664
47841
  //# sourceMappingURL=index.js.map