@nodaro/prompts 1.21.0 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +132 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +94 -1
- package/dist/index.d.ts +94 -1
- package/dist/index.js +126 -14
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/catalog-packs.test.ts +13 -0
- package/src/__tests__/factory-presets.test.ts +28 -3
- package/src/__tests__/fixtures/parameter-hint-golden.json +19 -3
- package/src/__tests__/node-prompt-fields.test.ts +2 -2
- package/src/__tests__/transitions-instant.test.ts +112 -0
- package/src/ad-creative-analysis.ts +99 -0
- package/src/catalog-packs.ts +13 -2
- package/src/factory-presets/generate-video.ts +22 -0
- package/src/index.ts +3 -0
- package/src/node-prompt-fields.ts +4 -0
- package/src/picker-catalogs.ts +13 -0
- package/src/ref-binding.ts +19 -0
- package/src/transitions.ts +47 -10
- package/src/video-reference-resolver.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -164,8 +164,11 @@ function applyExtend(c, pack) {
|
|
|
164
164
|
}
|
|
165
165
|
function applyDeny(c, denyIds) {
|
|
166
166
|
const deny = new Set(denyIds);
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
return {
|
|
168
|
+
...c,
|
|
169
|
+
options: c.options?.filter((o) => !deny.has(o.id)),
|
|
170
|
+
dimensions: c.dimensions?.map((d) => ({ ...d, options: d.options.filter((o) => !deny.has(o.id)) }))
|
|
171
|
+
};
|
|
169
172
|
}
|
|
170
173
|
function composePickerCatalogs(base, activePacks) {
|
|
171
174
|
const known = new Set(base.map((c) => c.catalogId));
|
|
@@ -180,6 +183,12 @@ function composePickerCatalogs(base, activePacks) {
|
|
|
180
183
|
else if (pack.mode === "extend") out = applyExtend(out, pack);
|
|
181
184
|
else if (pack.mode === "deny") out = applyDeny(out, pack.denyIds ?? []);
|
|
182
185
|
}
|
|
186
|
+
if (activePacks.some((p) => p.catalogId === c.catalogId) && out.defaultValue) {
|
|
187
|
+
const options = [...out.options ?? [], ...(out.dimensions ?? []).flatMap((d) => d.options)];
|
|
188
|
+
if (!options.some((o) => o.id === out.defaultValue)) {
|
|
189
|
+
out = { ...out, defaultValue: out.options?.[0]?.id };
|
|
190
|
+
}
|
|
191
|
+
}
|
|
183
192
|
return out;
|
|
184
193
|
});
|
|
185
194
|
}
|
|
@@ -4862,7 +4871,8 @@ var TRANSITIONS = [
|
|
|
4862
4871
|
category: "standard",
|
|
4863
4872
|
description: "Instantaneous switch, no transition",
|
|
4864
4873
|
promptHint: "no transition, hard cut, instantaneous switch from first shot to second shot",
|
|
4865
|
-
term: "hard cut"
|
|
4874
|
+
term: "hard cut",
|
|
4875
|
+
instant: true
|
|
4866
4876
|
},
|
|
4867
4877
|
{
|
|
4868
4878
|
id: "cross-dissolve",
|
|
@@ -4891,21 +4901,24 @@ var TRANSITIONS = [
|
|
|
4891
4901
|
category: "standard",
|
|
4892
4902
|
description: "Instant cut to full black for a beat, then the next shot",
|
|
4893
4903
|
promptHint: "snap to black: the first shot cuts instantly to full black with no fade, the frame holds pure black for a single beat, then the second shot cuts in at full brightness",
|
|
4894
|
-
term: "snap to black"
|
|
4904
|
+
term: "snap to black",
|
|
4905
|
+
instant: true
|
|
4895
4906
|
},
|
|
4896
4907
|
{
|
|
4897
4908
|
id: "match-cut",
|
|
4898
4909
|
label: "Match Cut",
|
|
4899
4910
|
category: "standard",
|
|
4900
4911
|
description: "Shape or motion match across shots",
|
|
4901
|
-
promptHint: "match cut: the final composition of the first shot matches the opening composition of the second shot in shape, color, and motion, so the cut feels like a visual rhyme"
|
|
4912
|
+
promptHint: "match cut: the final composition of the first shot matches the opening composition of the second shot in shape, color, and motion, so the cut feels like a visual rhyme",
|
|
4913
|
+
instant: true
|
|
4902
4914
|
},
|
|
4903
4915
|
{
|
|
4904
4916
|
id: "smash-cut",
|
|
4905
4917
|
label: "Smash Cut",
|
|
4906
4918
|
category: "standard",
|
|
4907
4919
|
description: "Jarring abrupt cut between contrasting shots",
|
|
4908
|
-
promptHint: "smash cut: an abrupt jarring transition between two visually or tonally contrasting shots with no fade, on a beat"
|
|
4920
|
+
promptHint: "smash cut: an abrupt jarring transition between two visually or tonally contrasting shots with no fade, on a beat",
|
|
4921
|
+
instant: true
|
|
4909
4922
|
},
|
|
4910
4923
|
{
|
|
4911
4924
|
id: "iris",
|
|
@@ -4937,7 +4950,8 @@ var TRANSITIONS = [
|
|
|
4937
4950
|
category: "standard",
|
|
4938
4951
|
description: "Hidden cut disguised by matched motion and color",
|
|
4939
4952
|
promptHint: "hidden seamless transition: the camera motion, color palette, and on-screen motion at the end of the first shot continue exactly across the cut into the second shot, so the boundary is invisible and the two shots feel like one unbroken take",
|
|
4940
|
-
term: "invisible cut"
|
|
4953
|
+
term: "invisible cut",
|
|
4954
|
+
instant: true
|
|
4941
4955
|
},
|
|
4942
4956
|
{
|
|
4943
4957
|
id: "whip-pan",
|
|
@@ -4953,7 +4967,8 @@ var TRANSITIONS = [
|
|
|
4953
4967
|
category: "standard",
|
|
4954
4968
|
description: "Same framing, time skips forward",
|
|
4955
4969
|
promptHint: "jump cut: the framing, lens, and camera position stay identical across the cut while time skips abruptly forward, so the subject snaps to a new position inside what still reads as one continuous shot",
|
|
4956
|
-
term: "jump cut"
|
|
4970
|
+
term: "jump cut",
|
|
4971
|
+
instant: true
|
|
4957
4972
|
},
|
|
4958
4973
|
// ============================================================================
|
|
4959
4974
|
// TIME — 8 entries — temporal shifts (same or related scene, different time, or memory)
|
|
@@ -5342,7 +5357,8 @@ var TRANSITIONS = [
|
|
|
5342
5357
|
category: "physics",
|
|
5343
5358
|
description: "Subject jumps, landing matches into new scene",
|
|
5344
5359
|
promptHint: "the subject jumps upward and out of frame at the end of the first shot, with matched velocity the camera follows the arc, and on landing the subject is in a new location seamlessly continuing the same jump",
|
|
5345
|
-
term: "match cut on a jump"
|
|
5360
|
+
term: "match cut on a jump",
|
|
5361
|
+
instant: true
|
|
5346
5362
|
},
|
|
5347
5363
|
{
|
|
5348
5364
|
id: "hand-swipe",
|
|
@@ -5357,7 +5373,8 @@ var TRANSITIONS = [
|
|
|
5357
5373
|
category: "physics",
|
|
5358
5374
|
description: "Subject exits on an action and lands in the new scene mid-move",
|
|
5359
5375
|
promptHint: "match cut on action: the subject exits the frame on a committed action \u2014 a stride, a throw, a turn \u2014 and enters the new scene on the same beat continuing that movement at matched speed and direction, so the action carries unbroken across the cut",
|
|
5360
|
-
term: "match cut on action"
|
|
5376
|
+
term: "match cut on action",
|
|
5377
|
+
instant: true
|
|
5361
5378
|
},
|
|
5362
5379
|
// ============================================================================
|
|
5363
5380
|
// LIGHT — 8 entries — flash and lens FX
|
|
@@ -5513,6 +5530,11 @@ function getTransitionTerm(id) {
|
|
|
5513
5530
|
return resolveTerm(getTransition(id));
|
|
5514
5531
|
}
|
|
5515
5532
|
var TRANSITION_IDS = TRANSITIONS.map((t) => t.id);
|
|
5533
|
+
function isInstantTransition(id) {
|
|
5534
|
+
const ids = typeof id === "string" ? [id] : id ? [...id] : [];
|
|
5535
|
+
if (ids.length === 0) return false;
|
|
5536
|
+
return ids.every((one) => getTransition(one)?.instant === true);
|
|
5537
|
+
}
|
|
5516
5538
|
var TRANSITION_POSITIONS = [
|
|
5517
5539
|
{ id: "auto", label: "Auto", description: "Let the model place it", promptHint: "", term: "" },
|
|
5518
5540
|
{ id: "start", label: "Start", description: "At the opening of the clip", promptHint: "the transition occurs at the opening of the clip", term: "at the opening of the clip" },
|
|
@@ -5545,14 +5567,15 @@ var INTENSITY_CLAUSES = clausesOf(TRANSITION_INTENSITIES);
|
|
|
5545
5567
|
function composeTransitionHintFromConnections(transitionId, startHints, endHints, timing, mode = "full") {
|
|
5546
5568
|
const ids = Array.isArray(transitionId) ? Array.from(new Set(transitionId)).slice(0, 2) : transitionId ? [transitionId] : [];
|
|
5547
5569
|
const resolveBase = mode === "compact" ? getTransitionTerm : getTransitionPromptHint;
|
|
5548
|
-
const
|
|
5570
|
+
const picked = ids.filter((id) => resolveBase(id).length > 0);
|
|
5571
|
+
const baseHints = picked.map(resolveBase);
|
|
5549
5572
|
if (baseHints.length === 0) return "";
|
|
5550
5573
|
const combinedBase = baseHints.join(", and ");
|
|
5551
5574
|
const parts = [combinedBase];
|
|
5552
5575
|
if (timing?.position && timing.position !== "auto") {
|
|
5553
5576
|
parts.push(POSITION_CLAUSES[timing.position]);
|
|
5554
5577
|
}
|
|
5555
|
-
if (timing?.duration && timing.duration !== "auto") {
|
|
5578
|
+
if (timing?.duration && timing.duration !== "auto" && !isInstantTransition(picked)) {
|
|
5556
5579
|
parts.push(DURATION_CLAUSES[timing.duration]);
|
|
5557
5580
|
}
|
|
5558
5581
|
if (timing?.intensity && timing.intensity !== "auto") {
|
|
@@ -18605,6 +18628,7 @@ function toOptions(arr, categoryField) {
|
|
|
18605
18628
|
if (e.description) opt.description = e.description;
|
|
18606
18629
|
if (categoryField) opt.category = e[categoryField];
|
|
18607
18630
|
if (e.adultOnly) opt.adultOnly = true;
|
|
18631
|
+
if (e.instant) opt.instant = true;
|
|
18608
18632
|
return opt;
|
|
18609
18633
|
});
|
|
18610
18634
|
}
|
|
@@ -21879,6 +21903,12 @@ var REF_BINDING = {
|
|
|
21879
21903
|
ordinal: (n) => `@image_${n}`,
|
|
21880
21904
|
frame: (n, role) => `Use @image_${n} as the ${role} (${role === "opening" ? "first" : "last"}) frame of the video.`
|
|
21881
21905
|
};
|
|
21906
|
+
var SEEDANCE_VIDEO_EDIT_PREFIX = "edit {video:1} as follows:\n";
|
|
21907
|
+
function buildSeedanceVideoEditPrompt(prompt) {
|
|
21908
|
+
const body = (prompt ?? "").trim();
|
|
21909
|
+
if (/^edit\s+(?:\{video:1(?::[^}]*)?\}|@video_1(?!\w))/i.test(body)) return body;
|
|
21910
|
+
return `${SEEDANCE_VIDEO_EDIT_PREFIX}${body}`;
|
|
21911
|
+
}
|
|
21882
21912
|
|
|
21883
21913
|
// src/ref-id-tokens.ts
|
|
21884
21914
|
var REF_TOKEN_LABEL_RE = /^[a-zA-Z0-9_ -]+$/;
|
|
@@ -38909,7 +38939,11 @@ var NODE_PROMPT_FIELDS = {
|
|
|
38909
38939
|
"forced-alignment": { prompt: "transcript", promptLabel: "Transcript", media: "audio", inline: false },
|
|
38910
38940
|
// Video Analysis — its focus hint is the editable prompt (renders a JSON scene
|
|
38911
38941
|
// table, not a media preview → no inline editor).
|
|
38912
|
-
"video-analysis": { prompt: "analysisFocus", promptLabel: "Analysis focus", media: "video", inline: false }
|
|
38942
|
+
"video-analysis": { prompt: "analysisFocus", promptLabel: "Analysis focus", media: "video", inline: false },
|
|
38943
|
+
// Edit Plan (podcast editing) — its free-text editing instructions are the
|
|
38944
|
+
// editable prompt; the affixes wrap them. Emits an EDL (JSON), not a media
|
|
38945
|
+
// preview, so no inline editor.
|
|
38946
|
+
"edit-plan": { prompt: "instructions", promptLabel: "Editing instructions", media: "video", inline: false }
|
|
38913
38947
|
};
|
|
38914
38948
|
function getPromptFields(nodeType) {
|
|
38915
38949
|
return nodeType ? NODE_PROMPT_FIELDS[nodeType] : void 0;
|
|
@@ -41689,6 +41723,27 @@ var GENERATE_VIDEO_PRESETS = [
|
|
|
41689
41723
|
generateAudio: true,
|
|
41690
41724
|
prompt: "{creature || A monstrous yeti with the physique and bone structure of a giant silverback gorilla}, {texture || thick matted white fur with snow crusted on the shoulders}, charges forward and smashes both fists into the ground. Low-angle ground shot looking up to emphasize its scale, heavy camera shake on impact, snow and debris bursting toward the lens. Overcast mountain light, volumetric breath mist around its muzzle. <deep guttural roar, the crunch of impact, debris scattering>\uFF08low ominous brass drone\uFF09Biologically accurate anatomy, epic cinematic scale. HD, sharp micro-details, stable picture, keep it subtitle-free, do not generate a watermark."
|
|
41691
41725
|
}
|
|
41726
|
+
},
|
|
41727
|
+
// ── Video Editing ─────────────────────────────────────────────────────────
|
|
41728
|
+
// Seedance 2.5 EDITS a wired reference clip when the prompt reads as an edit
|
|
41729
|
+
// instruction. Edit mode takes the source clip's own ratio and length, so the
|
|
41730
|
+
// preset ships the exact shape the provider requires — Adaptive + Auto
|
|
41731
|
+
// (duration -1) — and the run goes through on the first submit. The user's
|
|
41732
|
+
// own sentence is the whole prompt: the preset only supplies the pre & post
|
|
41733
|
+
// text, with the clip bound as {video:1} (wire it into Video Refs).
|
|
41734
|
+
{
|
|
41735
|
+
id: "generate-video/edit-video",
|
|
41736
|
+
name: "Edit Video",
|
|
41737
|
+
description: "Change a wired clip by instruction \u2014 keeps its length, ratio and everything you don't mention.",
|
|
41738
|
+
group: "Video Editing",
|
|
41739
|
+
data: {
|
|
41740
|
+
provider: "seedance-2-5",
|
|
41741
|
+
aspectRatio: "adaptive",
|
|
41742
|
+
duration: -1,
|
|
41743
|
+
generateAudio: true,
|
|
41744
|
+
promptPrefix: "edit {video:1} as follows:\n",
|
|
41745
|
+
promptSuffix: "Keep everything else in the clip unchanged: the same people, motion, framing and timing. Keep it subtitle-free, do not generate a watermark."
|
|
41746
|
+
}
|
|
41692
41747
|
}
|
|
41693
41748
|
];
|
|
41694
41749
|
|
|
@@ -44255,6 +44310,63 @@ function getCharacterMotionDiagnostics(value, timing, bindings = {}) {
|
|
|
44255
44310
|
return result;
|
|
44256
44311
|
}
|
|
44257
44312
|
|
|
44258
|
-
export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, 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, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, 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, 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, DEFAULT_IDENTITY_LOCK, 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, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, 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, 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, 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_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, 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, 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, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, 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_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_POSITIONS, 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, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, 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, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, 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, 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, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
|
|
44313
|
+
// src/ad-creative-analysis.ts
|
|
44314
|
+
var AD_CREATIVE_ANALYSIS_FIELDS = [
|
|
44315
|
+
"assetType",
|
|
44316
|
+
"format",
|
|
44317
|
+
"visualHooks",
|
|
44318
|
+
"audiences",
|
|
44319
|
+
"graphicIdentity",
|
|
44320
|
+
"copywritingHooks",
|
|
44321
|
+
"usps",
|
|
44322
|
+
"cta",
|
|
44323
|
+
"summary"
|
|
44324
|
+
];
|
|
44325
|
+
var AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT = `You are an expert competitor ad analyst. You look at a competitor's ad \u2014 its creative (image or video poster frame) and its copy \u2014 and extract the relevant ad information into a structured summary a marketing team can act on.
|
|
44326
|
+
|
|
44327
|
+
Judge from what is actually in the creative and copy; never invent claims that are not visible or written. Be concrete and specific (name the objects, colors, people, layouts, words), not generic ("eye-catching visuals"). Write in the language of the ad copy when it is not English, otherwise in English.
|
|
44328
|
+
|
|
44329
|
+
Fill every field:
|
|
44330
|
+
- assetType: "static" (a still image), "motion" (a video \u2014 you see its poster frame), "carousel" (several creatives in one ad), or "unknown".
|
|
44331
|
+
- format: the placement the creative is built for \u2014 e.g. "in-feed", "story / reel (9:16)", "square feed", "banner / web", judged from its shape and framing.
|
|
44332
|
+
- visualHooks: the key visuals and visual angles used to stop the scroll (product close-up, before/after, face + eye contact, big number, screenshot, meme style, UGC selfie, text-on-image\u2026). 2\u20136 short items.
|
|
44333
|
+
- audiences: who the ad represents or addresses (age band, gender, life situation, profession, interest, geography, pain point). 1\u20135 short items.
|
|
44334
|
+
- graphicIdentity: the graphic components \u2014 color palette, typography style, logo placement, layout system, illustration vs photo, brand consistency cues. One or two sentences.
|
|
44335
|
+
- copywritingHooks: the copywriting angles used in the visual text and in the body (curiosity, urgency, social proof, question, offer, fear of missing out, authority, humor\u2026). 1\u20136 short items, each naming the angle and quoting or paraphrasing the line that carries it.
|
|
44336
|
+
- usps: the unique selling points the ad claims (price, speed, exclusivity, guarantee, results, features). 1\u20135 short items.
|
|
44337
|
+
- cta: the call to action \u2014 the button label and/or the closing line that tells the viewer what to do.
|
|
44338
|
+
- summary: two to four sentences: what the ad sells, to whom, with what hook, and why it likely works (or does not).`;
|
|
44339
|
+
var POST_CONTENT_ANALYSIS_SYSTEM_PROMPT = `You are an expert social-media content analyst. You look at a single organic post \u2014 its creative (image or video cover frame) and its caption \u2014 and extract what a marketing team can learn from it into a structured summary.
|
|
44340
|
+
|
|
44341
|
+
Judge from what is actually in the creative and caption; never invent claims that are not visible or written. Be concrete and specific (name the objects, colors, people, layouts, words), not generic ("engaging content"). Write in the language of the caption when it is not English, otherwise in English.
|
|
44342
|
+
|
|
44343
|
+
Fill every field:
|
|
44344
|
+
- assetType: "static" (a still image), "motion" (a video / reel \u2014 you see its cover frame), "carousel" (a multi-image post), or "unknown".
|
|
44345
|
+
- format: the format the post is built for \u2014 e.g. "reel (9:16)", "square feed photo", "carousel", "portrait (4:5)", judged from its shape and framing.
|
|
44346
|
+
- visualHooks: the key visuals and visual angles used to stop the scroll (product close-up, before/after, face + eye contact, big text overlay, meme style, UGC selfie, trend/format\u2026). 2\u20136 short items.
|
|
44347
|
+
- audiences: who the post represents or speaks to (age band, gender, life situation, profession, interest, geography, community). 1\u20135 short items.
|
|
44348
|
+
- graphicIdentity: the graphic components \u2014 color palette, typography style, logo / handle placement, layout, illustration vs photo, brand consistency cues. One or two sentences.
|
|
44349
|
+
- copywritingHooks: the caption / content angles (curiosity, storytelling, question, trend, humor, social proof, education, behind-the-scenes\u2026). 1\u20136 short items, each naming the angle and quoting or paraphrasing the line that carries it.
|
|
44350
|
+
- usps: the value or benefit the post conveys to the viewer (entertainment, education, inspiration, a product benefit, a deal). 1\u20135 short items.
|
|
44351
|
+
- cta: the ask \u2014 the caption's call to action ("link in bio", "shop now", "follow", "comment below"), or "none" if the post makes none.
|
|
44352
|
+
- summary: two to four sentences: what the post is about, who it speaks to, with what hook, and why it likely performs (or does not).`;
|
|
44353
|
+
function buildAdCreativeAnalysisUserText(input) {
|
|
44354
|
+
const lines = [];
|
|
44355
|
+
if (input.advertiser) lines.push(`Account / advertiser: ${input.advertiser}`);
|
|
44356
|
+
if (input.headline) lines.push(`Headline: ${input.headline}`);
|
|
44357
|
+
if (input.body) lines.push(`Body copy:
|
|
44358
|
+
${input.body}`);
|
|
44359
|
+
if (input.ctaLabel) lines.push(`CTA button: ${input.ctaLabel}`);
|
|
44360
|
+
if (input.landing) lines.push(`Landing: ${input.landing}`);
|
|
44361
|
+
if (input.platforms && input.platforms.length > 0) lines.push(`Placements: ${input.platforms.join(", ")}`);
|
|
44362
|
+
if (input.creativeFormat) lines.push(`Creative shape: ${input.creativeFormat}`);
|
|
44363
|
+
if (input.mediaSummary) lines.push(`Media: ${input.mediaSummary}`);
|
|
44364
|
+
lines.push("The attached image is the ad's creative (for a video, its poster frame).");
|
|
44365
|
+
if (input.focus) lines.push(`
|
|
44366
|
+
Analyst focus from the user: ${input.focus}`);
|
|
44367
|
+
return lines.join("\n");
|
|
44368
|
+
}
|
|
44369
|
+
|
|
44370
|
+
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, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, 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, 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, DEFAULT_IDENTITY_LOCK, 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, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, 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, 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, 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_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, 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, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, 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_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_POSITIONS, 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, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, 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, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, 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, 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, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
|
|
44259
44371
|
//# sourceMappingURL=index.js.map
|
|
44260
44372
|
//# sourceMappingURL=index.js.map
|