@nodaro/prompts 1.7.0 → 1.7.3
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 +83 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +128 -4
- package/dist/index.d.ts +128 -4
- package/dist/index.js +81 -11
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/gemini-omni-inputs.test.ts +68 -0
- package/src/__tests__/seedance-2-inputs.test.ts +48 -0
- package/src/__tests__/veo-i2v-inputs.test.ts +58 -0
- package/src/gemini-omni-inputs.ts +73 -0
- package/src/index.ts +3 -0
- package/src/picker-wiring.ts +1 -1
- package/src/prompt-wizard-categories.ts +3 -2
- package/src/provider-prompt-doctrine.ts +2 -3
- package/src/resolve-prompt.ts +12 -1
- package/src/seedance-2-inputs.ts +10 -3
- package/src/style-presets.ts +1 -1
- package/src/surround-fill.ts +67 -0
- package/src/veo-i2v-inputs.ts +68 -0
- package/src/video-reference-resolver.ts +12 -0
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, PASSTHROUGH_TYPES, pickIds, getFurniture, getWeapon, getVehicle, getAnimal, DEFAULT_USAGE_MODE, usageModeDirective, DEFAULT_LOCATION_USAGE_MODE, imageReferenceLimit, findCharacterMentionTokens, findLocationMentionTokens, NATIVE_NEGATIVE_PROMPT_MODELS, getMaxNegativePromptChars, getMaxImagePromptChars, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, roleToPhrase, resolveDefaultRole, SEEDANCE_2_REF_LIMITS, PLACEHOLDER_CHARACTER_NAME, REFERENCE_ROLE_PRESETS, normalizeRoleSlug, defaultRoleForSource, locationReferencePhotoKindLabel, resolveNodeRefs } from '@nodaro/shared';
|
|
1
|
+
import { VIDEO_REF_LIMITS_BY_PROVIDER, 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, PASSTHROUGH_TYPES, pickIds, getFurniture, getWeapon, getVehicle, getAnimal, DEFAULT_USAGE_MODE, usageModeDirective, DEFAULT_LOCATION_USAGE_MODE, imageReferenceLimit, findCharacterMentionTokens, findLocationMentionTokens, NATIVE_NEGATIVE_PROMPT_MODELS, getMaxNegativePromptChars, getMaxImagePromptChars, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, roleToPhrase, resolveDefaultRole, SEEDANCE_2_REF_LIMITS, PLACEHOLDER_CHARACTER_NAME, REFERENCE_ROLE_PRESETS, normalizeRoleSlug, defaultRoleForSource, locationReferencePhotoKindLabel, resolveNodeRefs } from '@nodaro/shared';
|
|
2
2
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __export = (target, all) => {
|
|
@@ -10015,6 +10015,9 @@ function renderLens(l) {
|
|
|
10015
10015
|
if (l.aperture) bits.push(`f/${l.aperture}`);
|
|
10016
10016
|
return bits.length > 0 ? `Lens: ${bits.join(", ")}.` : "";
|
|
10017
10017
|
}
|
|
10018
|
+
function identityRefsSentence(firstOrdinal, lastOrdinal) {
|
|
10019
|
+
return firstOrdinal === lastOrdinal ? `${REF_BINDING.ordinal(firstOrdinal)} is an identity reference for this shot's subjects \u2014 match its subject's exact appearance; it is not a frame.` : `${REF_BINDING.ordinal(firstOrdinal)} through ${REF_BINDING.ordinal(lastOrdinal)} are identity references for this shot's subjects \u2014 match each subject's exact appearance; they are not frames.`;
|
|
10020
|
+
}
|
|
10018
10021
|
var REF_BINDING = {
|
|
10019
10022
|
image: (label, n) => `the ${label} from @image_${n}`,
|
|
10020
10023
|
video: (label, n) => `the ${label} from @video_${n}`,
|
|
@@ -10593,11 +10596,12 @@ function promptBindsFirstFrame(prompt) {
|
|
|
10593
10596
|
return /@image_\d+\s+as\s+the\s+(first|opening)\s*(\(first\))?\s*frame/i.test(prompt);
|
|
10594
10597
|
}
|
|
10595
10598
|
function resolveSeedance2Inputs(args) {
|
|
10599
|
+
const limits = args.limits ?? SEEDANCE_2_REF_LIMITS;
|
|
10596
10600
|
const firstFrameUrl = clean(args.firstFrameUrl);
|
|
10597
10601
|
const lastFrameUrl = clean(args.lastFrameUrl);
|
|
10598
10602
|
const refImages = cleanList(args.refImageUrls);
|
|
10599
|
-
const refVideos = cleanList(args.refVideoUrls).slice(0,
|
|
10600
|
-
const refAudios = cleanList(args.refAudioUrls).slice(0,
|
|
10603
|
+
const refVideos = cleanList(args.refVideoUrls).slice(0, limits.videos);
|
|
10604
|
+
const refAudios = cleanList(args.refAudioUrls).slice(0, limits.audio);
|
|
10601
10605
|
const hasAnyReference = refImages.length > 0 || refVideos.length > 0 || refAudios.length > 0;
|
|
10602
10606
|
const canUseStrictMode = !hasAnyReference && (Boolean(firstFrameUrl) || !lastFrameUrl);
|
|
10603
10607
|
if (canUseStrictMode) {
|
|
@@ -10607,7 +10611,7 @@ function resolveSeedance2Inputs(args) {
|
|
|
10607
10611
|
return { mode: "first-frame", firstFrameUrl, lastFrameUrl: void 0, referenceImageUrls: [], referenceVideoUrls: [], referenceAudioUrls: [], promptSuffix: "", droppedRefImages: 0 };
|
|
10608
10612
|
}
|
|
10609
10613
|
const frameCount = (firstFrameUrl ? 1 : 0) + (lastFrameUrl ? 1 : 0);
|
|
10610
|
-
const userImageSlots = Math.max(0,
|
|
10614
|
+
const userImageSlots = Math.max(0, limits.images - frameCount);
|
|
10611
10615
|
const keptUserImages = refImages.slice(0, userImageSlots);
|
|
10612
10616
|
const droppedRefImages = refImages.length - keptUserImages.length;
|
|
10613
10617
|
const referenceImageUrls = [...keptUserImages];
|
|
@@ -10641,6 +10645,43 @@ function resolveSeedance2Inputs(args) {
|
|
|
10641
10645
|
droppedRefImages
|
|
10642
10646
|
};
|
|
10643
10647
|
}
|
|
10648
|
+
var GEMINI_OMNI_INPUT_SLOTS = VIDEO_REF_LIMITS_BY_PROVIDER["gemini-omni-video"]?.images ?? 7;
|
|
10649
|
+
function resolveGeminiOmniI2vInputs(args) {
|
|
10650
|
+
const refs = (args.refImageUrls ?? []).filter((u) => typeof u === "string" && u.length > 0);
|
|
10651
|
+
const slots = GEMINI_OMNI_INPUT_SLOTS - (args.videoConnected ? 2 : 0);
|
|
10652
|
+
const refSlots = Math.max(0, slots - 1);
|
|
10653
|
+
const kept = refs.slice(0, refSlots);
|
|
10654
|
+
const droppedRefImages = refs.length - kept.length;
|
|
10655
|
+
const imageUrls = [args.firstFrameUrl, ...kept];
|
|
10656
|
+
if (kept.length === 0) return { imageUrls, promptSuffix: "", droppedRefImages };
|
|
10657
|
+
const frameSentence = promptBindsFirstFrame(args.prompt) ? "" : REF_BINDING.frame(1, "opening");
|
|
10658
|
+
const promptSuffix = [frameSentence, identityRefsSentence(2, kept.length + 1)].filter(Boolean).join(" ");
|
|
10659
|
+
return { imageUrls, promptSuffix, droppedRefImages };
|
|
10660
|
+
}
|
|
10661
|
+
|
|
10662
|
+
// src/veo-i2v-inputs.ts
|
|
10663
|
+
var VEO_INGREDIENT_SLOTS = 3;
|
|
10664
|
+
function resolveVeoI2vInputs(args) {
|
|
10665
|
+
const refs = (args.refImageUrls ?? []).filter((u) => typeof u === "string" && u.length > 0);
|
|
10666
|
+
if (refs.length === 0) {
|
|
10667
|
+
return {
|
|
10668
|
+
imageUrls: args.endFrameUrl ? [args.firstFrameUrl, args.endFrameUrl] : [args.firstFrameUrl],
|
|
10669
|
+
promptSuffix: "",
|
|
10670
|
+
droppedRefImages: 0,
|
|
10671
|
+
droppedEndFrame: false
|
|
10672
|
+
};
|
|
10673
|
+
}
|
|
10674
|
+
const kept = refs.slice(0, VEO_INGREDIENT_SLOTS - 1);
|
|
10675
|
+
const droppedRefImages = refs.length - kept.length;
|
|
10676
|
+
const frameSentence = promptBindsFirstFrame(args.prompt) ? "" : REF_BINDING.frame(1, "opening");
|
|
10677
|
+
return {
|
|
10678
|
+
imageUrls: [args.firstFrameUrl, ...kept],
|
|
10679
|
+
generationType: "REFERENCE_2_VIDEO",
|
|
10680
|
+
promptSuffix: [frameSentence, identityRefsSentence(2, kept.length + 1)].filter(Boolean).join(" "),
|
|
10681
|
+
droppedRefImages,
|
|
10682
|
+
droppedEndFrame: Boolean(args.endFrameUrl)
|
|
10683
|
+
};
|
|
10684
|
+
}
|
|
10644
10685
|
function toOptions(arr, categoryField) {
|
|
10645
10686
|
return arr.map((e) => {
|
|
10646
10687
|
const opt = {
|
|
@@ -26222,7 +26263,7 @@ precise subject \u2192 action details \u2192 scene/environment \u2192 lighting &
|
|
|
26222
26263
|
**Generation differences (seedance-2-5 vs the 2.0 SKUs)**
|
|
26223
26264
|
- A single 2.5 shot runs to 30s, where every 2.0 SKU stops at 15s. Plan a complete 4-6 shot beat inside ONE generation instead of splitting it into two clips and stitching \u2014 no seam to hide, and continuity holds because it never leaves the model.
|
|
26224
26265
|
- 2.5 also takes far more reference material (30 images / 10 videos / 10 audio vs 9/3/3). Treat that as room for COVERAGE \u2014 more distinct characters, locations and props in one shot \u2014 not as licence to pile refs onto one identity. The "ONE headshot + ONE full-body, 4-5 assets total" rule above still produces the best likeness on 2.5.
|
|
26225
|
-
- 2.5 renders at 480p/720p
|
|
26266
|
+
- 2.5 renders at 480p/720p/1080p (1080p since 2026-08-17): there is no 4K tier, so route a job that needs 4K to seedance-2 (which has it) or upscale afterwards.
|
|
26226
26267
|
- With a start frame, 2.5 always derives the output aspect from that frame \u2014 an explicit aspect ratio is rejected outright, so compose the frame at the ratio you want.
|
|
26227
26268
|
|
|
26228
26269
|
**References (when reference media is attached)**
|
|
@@ -26247,8 +26288,7 @@ precise subject \u2192 action details \u2192 scene/environment \u2192 lighting &
|
|
|
26247
26288
|
- More than 4 referenced people gets unstable: group people into composite images of \u22644 first (image generation), then reference those composites.
|
|
26248
26289
|
- Repeated extension degrades quality: prefer high-definition reference assets and avoid stacking many continuations.
|
|
26249
26290
|
|
|
26250
|
-
**Auto-path formula (community-sourced enrichment
|
|
26251
|
-
higgsfield.ai 4K breakdown; captured 2026-08-09)**
|
|
26291
|
+
**Auto-path formula (community-sourced enrichment; captured 2026-08-09)**
|
|
26252
26292
|
- Six steps IN ORDER, 60-100 words total (longer measurably degrades): Subject \u2192 Action \u2192 Environment \u2192 Camera \u2192 Style \u2192 Constraints.
|
|
26253
26293
|
- ONE primary camera instruction per shot. Compound moves chain with "then": "camera slow tracking then subtle rise" \u2014 never two competing verbs. The 8 reliable camera types: push-in, pull-out, pan, tracking, orbit/arc, aerial, handheld, locked-off.
|
|
26254
26294
|
- SEPARATE camera movement from subject movement \u2014 the single biggest quality lever: "The dancer spins slowly. Camera holds fixed framing." \u2014 never "spinning camera around a dancing person".
|
|
@@ -26641,6 +26681,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
26641
26681
|
"gpt-image": "Creative concepts, illustration, variable quality tiers",
|
|
26642
26682
|
"gpt-image-2": "Latest GPT Image \u2014 sharp text, photorealism, 1K/2K/4K resolution",
|
|
26643
26683
|
"grok": "General purpose, good text understanding",
|
|
26684
|
+
"grok-2": "Grok Imagine 2 \u2014 expressive, high-contrast, stylized output",
|
|
26644
26685
|
"imagen4": "Google's latest, strong photorealism and text rendering",
|
|
26645
26686
|
"imagen4-fast": "Faster Imagen 4 variant",
|
|
26646
26687
|
"imagen4-ultra": "Highest quality Imagen 4",
|
|
@@ -26717,7 +26758,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
26717
26758
|
"seedance-2": "Seedance 2.0 \u2014 multimodal refs (9 images / 3 videos / 3 audio), native multi-track audio, multi-shot storytelling, 4-15s",
|
|
26718
26759
|
"seedance-2-fast": "Seedance 2.0 Fast \u2014 same multimodal + audio capabilities, cheaper and quicker",
|
|
26719
26760
|
"seedance-2-mini": "Seedance 2.0 Mini \u2014 same multimodal + audio capabilities, budget tier, 480p/720p, 4-15s",
|
|
26720
|
-
"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",
|
|
26761
|
+
"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",
|
|
26721
26762
|
"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",
|
|
26722
26763
|
"wan": "Versatile, good for animations and transformations",
|
|
26723
26764
|
"wan-turbo": "Faster Wan generation",
|
|
@@ -26745,7 +26786,7 @@ var PROVIDER_CAPABILITIES = {
|
|
|
26745
26786
|
"seedance-2": "Seedance 2.0 \u2014 start/end frame + multimodal refs, native audio, 4-15s",
|
|
26746
26787
|
"seedance-2-fast": "Seedance 2.0 Fast \u2014 same capabilities, cheaper and quicker",
|
|
26747
26788
|
"seedance-2-mini": "Seedance 2.0 Mini \u2014 same capabilities, budget tier, 480p/720p",
|
|
26748
|
-
"seedance-2-5": "Seedance 2.5 \u2014 start/end frame + wide multimodal refs, native audio, up to 30s, 480p/720p",
|
|
26789
|
+
"seedance-2-5": "Seedance 2.5 \u2014 start/end frame + wide multimodal refs, native audio, up to 30s, 480p/720p/1080p",
|
|
26749
26790
|
"minimax-h3": "MiniMax Hailuo 3 \u2014 first/last frame + multimodal refs, always-on audio, 2K or 768P, 4-15s",
|
|
26750
26791
|
"hailuo-2.3-pro": "Premium Hailuo animation",
|
|
26751
26792
|
"hailuo-2.3": "Standard Hailuo animation",
|
|
@@ -26858,7 +26899,7 @@ var NODE_PROMPT_CANDIDATE_FIELDS = {
|
|
|
26858
26899
|
function computeNodePrompt(nodeType, data, { override, wired, refMap, appendWired }) {
|
|
26859
26900
|
let typed;
|
|
26860
26901
|
if (nodeType === "text-to-speech") {
|
|
26861
|
-
typed = data.textSource === "direct" ? [data.directText] : [];
|
|
26902
|
+
typed = data.textSource === "direct" || !present(wired) ? [data.directText] : [];
|
|
26862
26903
|
} else {
|
|
26863
26904
|
const fields = NODE_PROMPT_CANDIDATE_FIELDS[nodeType] ?? ["prompt"];
|
|
26864
26905
|
typed = fields.map((f) => data[f]);
|
|
@@ -32073,6 +32114,35 @@ function getPickerWiring(nodeType) {
|
|
|
32073
32114
|
return WIRING_MAP.get(nodeType);
|
|
32074
32115
|
}
|
|
32075
32116
|
|
|
32076
|
-
|
|
32117
|
+
// src/surround-fill.ts
|
|
32118
|
+
var EDGE = {
|
|
32119
|
+
right: { carried: "left", painted: "right" },
|
|
32120
|
+
left: { carried: "right", painted: "left" },
|
|
32121
|
+
up: { carried: "bottom", painted: "top" },
|
|
32122
|
+
down: { carried: "top", painted: "bottom" }
|
|
32123
|
+
};
|
|
32124
|
+
var TILT_SUBJECT = {
|
|
32125
|
+
up: {
|
|
32126
|
+
word: "up",
|
|
32127
|
+
subject: "the open sky directly overhead \u2014 sky, clouds, or (for an interior) the canopy or ceiling",
|
|
32128
|
+
where: "overhead"
|
|
32129
|
+
},
|
|
32130
|
+
down: {
|
|
32131
|
+
word: "down",
|
|
32132
|
+
subject: "the ground directly below \u2014 terrain, floor, or water surface",
|
|
32133
|
+
where: "below"
|
|
32134
|
+
}
|
|
32135
|
+
};
|
|
32136
|
+
function buildSurroundFillPrompt(direction, userPrompt) {
|
|
32137
|
+
const scene = userPrompt && userPrompt.trim() ? `${userPrompt.trim()}. ` : "";
|
|
32138
|
+
const { carried, painted } = EDGE[direction];
|
|
32139
|
+
if (direction === "up" || direction === "down") {
|
|
32140
|
+
const t = TILT_SUBJECT[direction];
|
|
32141
|
+
return `${scene}This is a camera tilted straight ${t.word} from the same scene. The ${carried} strip holds real, finished pixels from the edge of the horizon view; the ${painted} region is flat gray and MUST be painted as ${t.subject}. Render what is genuinely ${t.where} \u2014 do NOT repeat, mirror, or continue the landscape, and do NOT draw a horizon line or distant scenery in the painted region. CRITICAL: keep the ${carried} strip unchanged and match the scene's EXACT lighting, time of day, white balance, and color grade \u2014 the same light as the ${carried} strip; no golden hour, no sunset, no warm relight, no cinematic regrade. Blend smoothly into the ${carried} strip with no visible seam. No people, no text, no labels, no watermarks.`;
|
|
32142
|
+
}
|
|
32143
|
+
return `${scene}This is a partial frame: the ${carried} portion contains real, finished pixels and the ${painted} portion is flat gray that MUST be painted in. Paint ONLY the ${painted} gray region as a natural, seamless continuation of the ${carried} portion \u2014 same scene, same perspective, continuing the horizon, geometry, and content across the boundary with no break. Keep the ${carried} portion completely unchanged. CRITICAL: do NOT change the lighting, exposure, white balance, or time of day. Match the ${carried} portion's EXACT light, color temperature, and contrast across the whole frame \u2014 if it is flat overcast daylight, keep flat overcast daylight. No golden hour, no sunset, no warm relight, no cinematic regrade. The seam between the ${carried} and ${painted} portions must be invisible. No people, no text, no labels, no watermarks.`;
|
|
32144
|
+
}
|
|
32145
|
+
|
|
32146
|
+
export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_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_IDS, 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, 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, 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_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, 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, 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, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, 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, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_IDS, 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, appendField, appendMusicMeta, applyPickerJson, applyReferenceOrderToVideo, applyTemplate, assembleImageInput, assembleSunoInput, buildActionFxHints, buildAestheticHints, buildAgeHint, buildAtmosphereHints, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildFaceTemplateInputs, buildFramingHints, buildHeldPropHints, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildInstrumentationHints, buildLightingHints, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMoodHints, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicMoodHints, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPhotographerHints, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPostProcessHints, buildReferenceBlocks, buildScenePrompt, buildStylingHints, buildSurroundFillPrompt, buildTemporalHints, buildVoiceCharacterHints, buildVoiceDeliveryHints, buildWardrobeHints, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCharacterFxHintFromConnections, composeNegative, composeSoundHintFromConnections, composeTransitionHintFromConnections, computeLlmChatFields, computeNodePrompt, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, getActionFx, getActionFxLabel, getActionFxPromptHint, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getBackdrop, getBackdropLabel, getBackdropPromptHint, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getColorLook, getColorLookLabel, getColorLookPromptHint, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getExposure, getExposureLabel, getExposurePromptHint, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getIdentityLockClause, getInstrument, getLens, getLensLabel, getLensPromptHint, getLighting, getLightingLabel, getLightingPromptHint, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getMaterial, getMaterialLabel, getMaterialPromptHint, getMood, getMoodLabel, getMoodPromptHint, getMusicEmotion, getMusicEnergy, getMusicEra, getMusicGenre, getMusicGenreLabel, getMusicSubgenre, getMusicVibe, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getProductionStyle, getPromptDoctrine, getPromptTips, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getSetting, getSettingLabel, getSettingPromptHint, getSingingStyle, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getTemporal, getTemporalLabel, getTemporalPromptHint, getTransition, getTransitionLabel, getTransitionPromptHint, getVocalPresence, getVoiceAccent, getVoiceAge, getVoiceArchetype, getVoiceEmotion, getVoiceGender, getVoiceLanguage, getVoicePace, getVoiceTimbre, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasUpstreamCharacter, identityRefsSentence, isAnalyzablePicker, isInstrumentalVocal, isVantageFraming, isWizardSupported, listPickerCatalogs, migratePersonValue, pickerFanoutTargets, projectPickerCatalog, promptBindsFirstFrame, referenceRulesBlock, renderStructuredFields, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveVeoI2vInputs, resolveVideoReferenceCore, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
|
|
32077
32147
|
//# sourceMappingURL=index.js.map
|
|
32078
32148
|
//# sourceMappingURL=index.js.map
|