@nodaro/prompts 1.35.0 → 1.37.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",
@@ -42008,6 +42008,8 @@ var NODE_PROMPT_FIELDS = {
42008
42008
  "cinematic-avatar": { prompt: "prompt", media: "video", inline: true },
42009
42009
  "video-sfx": { prompt: "prompt", negative: "negativePrompt", promptLabel: "Sound prompt", media: "audio", inline: true },
42010
42010
  "video-retake": { prompt: "prompt", promptLabel: "Retake prompt", media: "video", inline: true },
42011
+ // Video Mask (SAM 3) — the subject to track, like Generate Mask's "what to mask".
42012
+ "video-mask": { prompt: "prompt", promptLabel: "What to mask", media: "video", inline: true },
42011
42013
  // ── Audio / music ──
42012
42014
  "generate-music": { prompt: "prompt", media: "audio", inline: true },
42013
42015
  "suno-generate": { prompt: "prompt", media: "audio", inline: true },
@@ -42083,6 +42085,19 @@ var PROMPT_AFFIX_NODE_TYPES = new Set(
42083
42085
  Object.entries(NODE_PROMPT_FIELDS).filter(([, s]) => s.affixes !== false).map(([t]) => t)
42084
42086
  );
42085
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
+
42086
42101
  // src/factory-presets/shared-image.ts
42087
42102
  var STYLIZED_SUBJECT = [
42088
42103
  {
@@ -42215,6 +42230,47 @@ var IMAGE_EDITS = [
42215
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.",
42216
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"
42217
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
+ }
42218
42274
  }
42219
42275
  ];
42220
42276
  function editsFor(nodeType) {
@@ -42228,6 +42284,9 @@ function editsFor(nodeType) {
42228
42284
  }
42229
42285
 
42230
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" };
42231
42290
  var GENERATE_IMAGE_PRESETS = [
42232
42291
  // ── Reference Sheet ──────────────────────────────────────────────────────
42233
42292
  {
@@ -42384,6 +42443,22 @@ var GENERATE_IMAGE_PRESETS = [
42384
42443
  negativePrompt: "illustration, cartoon, 3d render, garbled text, misspelled labels, watermark, deformed anatomy, inconsistent markings between panels, wrong breed, blurry, low resolution"
42385
42444
  }
42386
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
+ },
42387
42462
  // ── Cast & Consistency (clean grids per the multi-character workflow:
42388
42463
  // sterile neutral-background reference grids built to be FED BACK as identity
42389
42464
  // anchors — unlike the editorial boards above, decoration here is noise.
@@ -43740,10 +43815,106 @@ var GENERATE_IMAGE_PRESETS = [
43740
43815
  // (GPT Image 2.5 Flare edits it while preserving untouched regions). The
43741
43816
  // instruction lives in the prompt, not `style`.
43742
43817
  ...stylizedSubjectFor("generate-image"),
43743
- ...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
+ }
43744
43908
  ];
43745
43909
 
43746
43910
  // src/factory-presets/generate-video.ts
43911
+ var UGC_TAIL = "Keep it subtitle-free, do not generate a watermark.";
43912
+ var UGC_PAUSE = "A short natural pause before the first word and after the last.";
43913
+ var ugcSpeech = (line) => `The person says, in a natural American accent, lively and conversational, quicker on connecting words and slower on numbers: "{line || ${line}}"`;
43914
+ var UGC_VIDEO = { provider: "seedance-2-5", aspectRatio: "9:16", duration: 8, resolution: "720p", generateAudio: true };
43915
+ var UGC_SHORT_VIDEO = { ...UGC_VIDEO, duration: 5 };
43916
+ var ugcPrompt = (...parts) => [...parts, UGC_TAIL].join(" ");
43917
+ var TALKING_AT_HOME = "{image:1:person} talks straight to the viewer at eye level at home, face and shoulders close, the framing a little crooked, deep focus, plain colour, a faint natural sway;";
43747
43918
  var GENERATE_VIDEO_PRESETS = [
43748
43919
  // ── Camera Moves (composable cinematography fragments) ───────────────────
43749
43920
  {
@@ -44842,6 +45013,63 @@ var GENERATE_VIDEO_PRESETS = [
44842
45013
  promptPrefix: "edit {video:1} as follows:\n",
44843
45014
  promptSuffix: "Keep everything else in the clip unchanged: the same people, motion, framing and timing. Keep it subtitle-free, do not generate a watermark."
44844
45015
  }
45016
+ },
45017
+ // ── UGC & Creator (everyday talking-to-camera clips) ──────────────────────
45018
+ {
45019
+ id: "generate-video/ugc-talking-head",
45020
+ name: "UGC Talking Head",
45021
+ description: "Talks to the viewer at home \u2014 type the line to be spoken; write numbers as words.",
45022
+ group: "UGC & Creator",
45023
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(`${TALKING_AT_HOME} hands move naturally while talking and hold nothing.`, ugcSpeech("I cut my weekly reporting from three hours to twenty minutes."), UGC_PAUSE) }
45024
+ },
45025
+ {
45026
+ id: "generate-video/ugc-product-closer",
45027
+ name: "UGC Product Closer",
45028
+ description: "Holds your product up while talking \u2014 wire a face photo and a product photo; type the line, numbers as words.",
45029
+ group: "UGC & Creator",
45030
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(`${TALKING_AT_HOME} hands move naturally while talking and hold nothing until the first word.`, "As they say the first word, one hand lifts {image:2:product} into view and holds it up beside their face, its front turned to the viewer, while they talk; the other hand keeps moving naturally.", ugcSpeech("Honestly, this is the one I keep coming back to."), UGC_PAUSE, "After the last word, they lower the product with a small smile.") }
45031
+ },
45032
+ {
45033
+ id: "generate-video/handheld-unboxing",
45034
+ name: "Handheld Unboxing",
45035
+ description: "Opens a box with their own hands and reveals your product \u2014 wire a face photo and a product photo.",
45036
+ group: "UGC & Creator",
45037
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(
45038
+ "Close on a table at home, seen the whole time through the eyes of {image:1:person} as they look down at it.",
45039
+ "From the first moment their own two hands are on the lid of a plain box, both forearms coming up from the bottom of the frame.",
45040
+ "One adult's left and right hand, no one else's; only their hands and forearms are seen.",
45041
+ "They open the box at once and lift out {image:2:product} with both hands, clear of the box by the middle of the clip.",
45042
+ "Until the end they hold it up in front of them, the whole of it in frame, tilting it slowly in the light with the same side toward them.",
45043
+ "Daylight, deep focus from their hands to the background, plain colour, the framing a little crooked, a faint natural sway."
45044
+ ) }
45045
+ },
45046
+ {
45047
+ id: "generate-video/get-ready-with-me",
45048
+ name: "Get Ready With Me",
45049
+ description: "Gets ready at a mirror while chatting \u2014 type the line, numbers as words.",
45050
+ group: "UGC & Creator",
45051
+ data: { ...UGC_VIDEO, prompt: ugcPrompt("{image:1:person} at a bathroom mirror applies a little makeup while chatting to the viewer, everyday light, deep focus, plain colour.", ugcSpeech("Two minutes and I'm ready to go."), UGC_PAUSE) }
45052
+ },
45053
+ {
45054
+ id: "generate-video/street-qa",
45055
+ name: "Street-Style Q&A",
45056
+ description: "A staged street-interview look \u2014 cast it yourself; type a short answer, numbers as words.",
45057
+ group: "UGC & Creator",
45058
+ data: { ...UGC_SHORT_VIDEO, prompt: ugcPrompt("A staged street-interview look: {image:1:person} stands on a sidewalk answering an interviewer who stays out of frame, beside the viewer; only the interviewer's hand is seen, holding a plain microphone out toward them from a lower corner of the frame, passers-by soft in the background.", "Their eyes stay on the interviewer the whole time, off to the side the microphone comes from.", "The answer starts at once, with no wait before the first word.", ugcSpeech("I'd say about twenty minutes a day, tops."), "After the last word, a small laugh and a shrug, eyes still on the interviewer.") }
45059
+ },
45060
+ {
45061
+ id: "generate-video/reaction-shot",
45062
+ name: "Reaction Shot",
45063
+ description: "A quick reaction to something out of frame.",
45064
+ group: "UGC & Creator",
45065
+ data: { ...UGC_SHORT_VIDEO, prompt: ugcPrompt("{image:1:person} sits on a couch at home, a cushion and a lamp behind them, looking off to one side at something just out of frame; at eye level, the framing a little crooked, deep focus, plain colour, a faint natural sway.", "Almost at once, what they see catches them by surprise: their eyes go wide, a hand flies to their mouth and they break into a laugh, their shoulders shaking.", "Still laughing, they glance briefly at the viewer, then look back off to the side, shaking their head.", "A short exclamation at most.") }
45066
+ },
45067
+ {
45068
+ id: "generate-video/acts-on-phone",
45069
+ name: "Acts on Phone, Screen Hidden",
45070
+ description: "Taps a phone whose screen faces away \u2014 type the line, numbers as words.",
45071
+ group: "UGC & Creator",
45072
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(`${TALKING_AT_HOME} hands move naturally while talking and hold nothing until the last seconds.`, ugcSpeech("That's the whole setup, and it took me five minutes."), UGC_PAUSE, "In the last seconds the person picks up a phone and looks down into its screen while typing on it for a moment, then looks back up at the viewer; the screen faces away from the camera.") }
44845
45073
  }
44846
45074
  ];
44847
45075
 
@@ -45994,6 +46222,34 @@ var LLM_CHAT_PRESETS = [
45994
46222
  temperature: 0.9
45995
46223
  }
45996
46224
  },
46225
+ {
46226
+ id: "llm-chat/ugc-monologue-writer",
46227
+ name: "UGC Monologue Writer",
46228
+ description: "A talking-to-camera script as JSON: hook, beats, closer.",
46229
+ group: "Writing & Marketing",
46230
+ data: {
46231
+ systemPrompt: `You write the script of a short vertical video in which one person talks straight to the camera about a product, a site or an idea. Return it as JSON with three parts.
46232
+
46233
+ hook \u2014 the first line: one short spoken clause of at most 8 words. It leads with the payload the viewer can check (a number, a price, a time saved, a before and after, a named result) and opens on the claim itself \u2014 no greeting, no filler, no introduction first.
46234
+
46235
+ beats \u2014 one beat per point the video makes, in order. When the user lists screenshots, write one beat per screenshot, in the same order. The first beat names the product. Every beat is one short spoken sentence a person says in one easy breath; nothing is crammed in.
46236
+
46237
+ closer \u2014 the last line. It ends on one simple physical action the speaker can do on camera.
46238
+
46239
+ Leave room for a short pause at the start and the end of each clip. Sound said, not written: contractions, one connecting word, sentences of mixed length, and one live, imperfect moment such as a small self-correction or an aside. Carry emphasis with word choice and repetition, never with capitals or stage directions. Write only what is spoken: no speaker names, brackets, emoji or sound effects.
46240
+
46241
+ Spell the brand exactly as the user gives it, every time. Write numbers as digits, except inside the brand's own name. Use only figures the user supplies. Write in the language the user writes in.
46242
+
46243
+ When the script is in Hebrew: write spoken Israeli Hebrew, the way a person talks to their phone, not ad copy. Every first-person verb and adjective agrees with the speaker's gender, and never switches. Speak to the viewer in the plural ("\u05EA\u05E0\u05E1\u05D5"), so the viewer is not given a gender. Keep sentences short. Write numbers and prices as digits ("3", "\u20AA49", "20%"). Keep the brand exactly as given, usually in Latin letters; when a Hebrew prefix joins it, use a hyphen ("\u05D1-Planwell"). Leave out vowel points. The hook is at most 8 words, as in English, a word with a joined prefix counting as one word, and opens on the result, the number or the contrast \u2014 never on a greeting or a filler word.
46244
+
46245
+ Return only this JSON, no code fences, no commentary:
46246
+ {"hook": "\u2026", "beats": ["\u2026", "\u2026"], "closer": "\u2026"}`,
46247
+ llmModel: "claude-opus-5.5",
46248
+ reasoningEffort: "high",
46249
+ temperature: 0.8,
46250
+ maxTokens: 2048
46251
+ }
46252
+ },
45997
46253
  // ── Utility ──────────────────────────────────────────────────────────────
45998
46254
  {
45999
46255
  id: "llm-chat/prompt-enhancer",
@@ -46104,7 +46360,9 @@ var GENERATE_SCRIPT_PRESETS = [
46104
46360
  sceneCount: 4,
46105
46361
  targetLength: 30,
46106
46362
  structure: "freeform",
46107
- styleGuide: "Selfie-style UGC testimonial for {product}. Structure: Hook (stop the scroll) \u2192 Show (the product in real use) \u2192 Proof (a concrete result or detail) \u2192 Opinion (a genuine personal take). A real person sharing a real opinion \u2014 first-person, natural, unpolished. Short spoken sentences for clean lip-sync; no salesy voiceover."
46363
+ llmModel: "claude-opus-5.5",
46364
+ reasoningEffort: "high",
46365
+ styleGuide: "Selfie-style UGC testimonial for {product}. Open on the payload: the first spoken line is a short claim the viewer can check \u2014 a number, a price, a time saved, a before and after \u2014 never a greeting or an introduction. Then Show (the product in real use) \u2192 Proof (a concrete result or detail) \u2192 Opinion (a genuine personal take). Sound said, not written: contractions, sentences of mixed length, one small aside; carry emphasis with word choice, never capitals or stage directions. Spell the brand exactly as given and write numbers as digits. Use only figures the user supplies, in what is said and what is shown, and take the Proof from the topic. Short spoken sentences for clean lip-sync; no salesy voiceover."
46108
46366
  }
46109
46367
  },
46110
46368
  // ── Long-Form & Narrative ────────────────────────────────────────────────
@@ -46199,6 +46457,16 @@ var IMAGE_TO_TEXT_PRESETS = [
46199
46457
  description: "Image \u2192 text-to-image prompt.",
46200
46458
  group: "Creative",
46201
46459
  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." }
46460
+ },
46461
+ {
46462
+ id: "image-to-text/realism-audit",
46463
+ name: "Realism Audit",
46464
+ description: "Lists the signs an image was generated, with a count.",
46465
+ group: "Creative",
46466
+ data: {
46467
+ detailLevel: "structured",
46468
+ 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".'
46469
+ }
46202
46470
  }
46203
46471
  ];
46204
46472
 
@@ -46245,6 +46513,21 @@ var VIDEO_TO_VIDEO_PRESETS = [
46245
46513
  description: "Flowing washes on paper.",
46246
46514
  group: "Restyle Looks",
46247
46515
  data: { provider: "wan", promptPrefix: "Restyle as a flowing watercolor animation with soft washes, bleeding edges, and visible paper texture. Keep the original motion and composition.", negativePrompt: "photorealistic, harsh edges, blurry, flickering" }
46516
+ },
46517
+ {
46518
+ id: "video-to-video/phone-footage-look",
46519
+ name: "Phone Footage Look",
46520
+ description: "Everyday handheld look for b-roll \u2014 it re-renders faces, so not for talking clips.",
46521
+ group: "Restyle Looks",
46522
+ data: {
46523
+ provider: "wan-videoedit",
46524
+ v2vResolution: "720p",
46525
+ videoEditDuration: "0",
46526
+ audioSetting: "origin",
46527
+ promptExtend: false,
46528
+ promptPrefix: `Keep everything in this clip as it is \u2014 the same people, objects, colours and light \u2014 and only make it look like everyday handheld digital video, left unedited. ${REALISM_FINISH} The edges of the frame keep the light they have in the clip, and each moment keeps the brightness it has in the clip, from the first frame to the last. Preserve the original motion, composition and timing.`,
46529
+ negativePrompt: "cinematic grade, shallow depth of field, glow, skin smoothing, flickering, light leaks, flare, coloured bands at the edges of the frame, colour cast, shifted colours, oversaturated colours, vintage film look, overexposure, pulsing brightness, heavy grain"
46530
+ }
46248
46531
  }
46249
46532
  ];
46250
46533
  var ADD_CAPTIONS_PRESETS = [
@@ -46844,12 +47127,17 @@ function groupFactoryPresets(presets) {
46844
47127
  }
46845
47128
 
46846
47129
  // src/factory-presets/index.ts
47130
+ function forModifyImage(p) {
47131
+ const provider = p.data.provider;
47132
+ const imageToImage = typeof provider === "string" ? T2I_TO_I2I_VARIANT[provider] : void 0;
47133
+ return imageToImage ? { ...p, data: { ...p.data, provider: imageToImage } } : p;
47134
+ }
46847
47135
  var FACTORY_PRESETS = {
46848
47136
  "generate-image": GENERATE_IMAGE_PRESETS,
46849
47137
  // modify-image shares the Stylized Subject + Edits catalogs with generate-image
46850
47138
  // (single source of truth in STYLIZED_SUBJECT / IMAGE_EDITS). modify-image is
46851
47139
  // slated for deprecation in favor of generate-image — when removed, drop this key.
46852
- "modify-image": [...stylizedSubjectFor("modify-image"), ...editsFor("modify-image")],
47140
+ "modify-image": [...stylizedSubjectFor("modify-image"), ...editsFor("modify-image")].map(forModifyImage),
46853
47141
  "generate-video": GENERATE_VIDEO_PRESETS,
46854
47142
  "text-to-speech": TEXT_TO_SPEECH_PRESETS,
46855
47143
  "text-to-audio": TEXT_TO_AUDIO_PRESETS,
@@ -47499,23 +47787,23 @@ function planFrameDelivery(args) {
47499
47787
  ...requested === "reference" && !args.supportsReferenceImages ? { refusedReason: "no-reference-support" } : {}
47500
47788
  };
47501
47789
  }
47502
- const cap = VIDEO_REF_LIMITS_BY_PROVIDER[args.provider ?? ""]?.images;
47503
- if (cap !== void 0 && userRefs.length + frames.length > cap) {
47790
+ const cap2 = VIDEO_REF_LIMITS_BY_PROVIDER[args.provider ?? ""]?.images;
47791
+ if (cap2 !== void 0 && userRefs.length + frames.length > cap2) {
47504
47792
  return { delivery: "frame", referenceImageUrls: userRefs, promptSuffix: "", refusedReason: "image-cap" };
47505
47793
  }
47506
47794
  const referenceImageUrls = [...userRefs];
47507
- const sentences = [];
47795
+ const sentences2 = [];
47508
47796
  if (args.startFrameUrl) {
47509
47797
  referenceImageUrls.push(args.startFrameUrl);
47510
47798
  if (!promptBindsFirstFrame(args.prompt)) {
47511
- sentences.push(REF_BINDING.frame(referenceImageUrls.length, "opening"));
47799
+ sentences2.push(REF_BINDING.frame(referenceImageUrls.length, "opening"));
47512
47800
  }
47513
47801
  }
47514
47802
  if (args.endFrameUrl) {
47515
47803
  referenceImageUrls.push(args.endFrameUrl);
47516
- sentences.push(REF_BINDING.frame(referenceImageUrls.length, "closing"));
47804
+ sentences2.push(REF_BINDING.frame(referenceImageUrls.length, "closing"));
47517
47805
  }
47518
- return { delivery: "reference", referenceImageUrls, promptSuffix: sentences.join(" ") };
47806
+ return { delivery: "reference", referenceImageUrls, promptSuffix: sentences2.join(" ") };
47519
47807
  }
47520
47808
 
47521
47809
  // src/character-motion-diagnostics.ts
@@ -47659,6 +47947,6 @@ function computeNodeSendText(nodeType, data, args) {
47659
47947
  }
47660
47948
  }
47661
47949
 
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 };
47950
+ 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
47951
  //# sourceMappingURL=index.js.map
47664
47952
  //# sourceMappingURL=index.js.map