@nodaro/prompts 1.53.1 → 1.54.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/{chunk-GRSKB3P7.cjs → chunk-56HWABF5.cjs} +52 -2
- package/dist/chunk-56HWABF5.cjs.map +1 -0
- package/dist/{chunk-EKRO42T3.cjs → chunk-CDNW7O7H.cjs} +77 -5
- package/dist/chunk-CDNW7O7H.cjs.map +1 -0
- package/dist/{chunk-WQ7FWGZ2.js → chunk-IVRSNUYX.js} +50 -3
- package/dist/chunk-IVRSNUYX.js.map +1 -0
- package/dist/{chunk-TYRIHUID.cjs → chunk-NUC5RV4P.cjs} +5 -2
- package/dist/chunk-NUC5RV4P.cjs.map +1 -0
- package/dist/{chunk-RBRCJTDJ.js → chunk-OMRFKG4M.js} +5 -2
- package/dist/chunk-OMRFKG4M.js.map +1 -0
- package/dist/{chunk-XRCK3BCF.cjs → chunk-XUMEDRML.cjs} +52 -10
- package/dist/chunk-XUMEDRML.cjs.map +1 -0
- package/dist/{chunk-PHCYQWJP.js → chunk-YDG3KMCN.js} +52 -10
- package/dist/chunk-YDG3KMCN.js.map +1 -0
- package/dist/{chunk-XR7RAHZI.js → chunk-Z4KWM6DV.js} +77 -5
- package/dist/chunk-Z4KWM6DV.js.map +1 -0
- package/dist/entries/assembly.cjs +24 -24
- package/dist/entries/assembly.d.cts +9 -0
- package/dist/entries/assembly.d.ts +9 -0
- package/dist/entries/assembly.js +1 -1
- package/dist/entries/doctrine.cjs +46 -46
- package/dist/entries/doctrine.js +1 -1
- package/dist/entries/picker-art.cjs +3 -3
- package/dist/entries/picker-art.js +1 -1
- package/dist/entries/presets.cjs +47 -35
- package/dist/entries/presets.d.cts +17 -1
- package/dist/entries/presets.d.ts +17 -1
- package/dist/entries/presets.js +1 -1
- package/dist/index.cjs +120 -108
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/package.json +2 -2
- package/src/__tests__/factory-preset-shelves.test.ts +30 -0
- package/src/__tests__/seedance-extend.test.ts +24 -25
- package/src/__tests__/video-reference-features.test.ts +7 -5
- package/src/__tests__/video-reference-seatless-assets.test.ts +132 -0
- package/src/factory-presets/index.ts +2 -0
- package/src/factory-presets/shelves.ts +50 -0
- package/src/picker-art/restyle-previews.ts +3 -0
- package/src/prompt-wizard-categories.ts +12 -3
- package/src/provider-prompt-doctrine.ts +44 -5
- package/src/seatless-assets.ts +141 -0
- package/src/video-reference-resolver.ts +31 -4
- package/dist/chunk-EKRO42T3.cjs.map +0 -1
- package/dist/chunk-GRSKB3P7.cjs.map +0 -1
- package/dist/chunk-PHCYQWJP.js.map +0 -1
- package/dist/chunk-RBRCJTDJ.js.map +0 -1
- package/dist/chunk-TYRIHUID.cjs.map +0 -1
- package/dist/chunk-WQ7FWGZ2.js.map +0 -1
- package/dist/chunk-XR7RAHZI.js.map +0 -1
- package/dist/chunk-XRCK3BCF.cjs.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -9,7 +9,7 @@ export { CHARACTER_ART_FAMILIES, CHARACTER_ART_FILES, CHARACTER_ART_PATH, Charac
|
|
|
9
9
|
export { P as PickerImageOptions, a as PickerOptionImage, R as RENDER_WIDTH_LADDER, l as lookPreviewStillUrl, p as pickerOptionImage, b as pickerOptionImageUrl, c as pickerSectionImageUrl } from './images-ChAOLY5V.cjs';
|
|
10
10
|
export { ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, AdultOnlyEntry, FLOORED_PICKER_KEYS, ForeignCatalogId, GAPS_SCHEMA, MINOR_IMPLYING_TYPE_IDS, MULTI_PICKER_WIRING, MultiDimPickerWiring, MultiPickerAnalyzerSpec, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_TYPES, ParameterHintOptions, PickerAnalyzer, PickerAnalyzerDescriptor, PickerAnalyzerSpec, PickerApplyMode, PickerDimensionSpec, PickerGaps, PickerType, PickerWiring, PickerWiringEntry, RETIRED_ADULT_ONLY_HINT_STRINGS, SINGLE_PICKER_WIRING, SingleDimPickerWiring, __resetCatalogIdGuardForTests, applyMinorAgeFloorToPickerValues, applyPickerJson, buildMultiPickerAnalyzerSpec, buildNeedleAlternationSource, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, catalogGuardActive, composedHas, composedOption, composedOptionIndex, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getCharacterMotionBindings, getMinorAgeHintStrings, getParameterPromptHint, getPickerAnalyzer, getPickerWiring, isAnalyzablePicker, isMinorAge, overlayEntry, pickerFanoutTargets, setComposedCatalogResolver } from './entries/picker-catalogs.cjs';
|
|
11
11
|
export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ATMOSPHERES, ATMOSPHERE_IDS, AURORA_SWEEP_STYLE, ActionFx, ActionFxCategory, Aesthetic, AestheticCategory, Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, Backdrop, BackdropCategory, 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, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, CameraFormat, CameraMotion, CameraMotionCategory, CategorizedInstrument, CharacterFx, CharacterFxCategory, CharacterFxDuration, CharacterFxIntensity, CharacterFxPosition, CharacterFxTiming, CharacterFxTimingOption, CharacterMotion, CharacterMotionBindings, CharacterMotionCategory, CharacterMotionDiagnostic, CharacterMotionFloor, CharacterMotionPace, CharacterMotionPosition, CharacterMotionTiming, CharacterMotionTimingOption, ColorLook, ColorLookCategory, CompositionEffect, DEBRIS_SHOWER_STYLE, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, Era, EraCategory, ExposureCategory, ExposureSettings, ExposureValue, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, Framing, FramingCategory, FramingValue, GARDEN_BLOOM_STYLE, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, HeldProp, HeldPropCategory, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, InstrumentCategory, InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, Lens, Lighting, LightingCategory, LightingValue, LoopSubject, LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, 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, Material, MaterialCategory, Mood, MoodCategory, MoodValue, MusicEra, MusicGenre, MusicGenreCategory, MusicMoodData, MusicMoodEntry, MusicSubgenre, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PhotoGenre, PhotoGenreCategory, Photographer, PhotographerCategory, Pose, PoseCategory, PoseValue, PostProcessEffect, RENDER_QUALITIES, RENDER_QUALITY_IDS, RenderQuality, SAKURA_PETALS_STYLE, SAND_STORM_STYLE, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SINGING_STYLES, SMOKE_PUFF_STYLE, STYLES, STYLE_IDS, STYLE_MEDIA, STYLE_MEDIUMS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, Setting, SettingCategory, Style, StyleMedia, StyleMedium, StyleTones, Styling, StylingDimension, StylingDimensionSection, StylingValue, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_OPTION_FIELDS, TRANSITION_POSITIONS, TRANSITION_STYLE_FIELD, Temporal, TemporalCategory, TemporalValue, Transition, TransitionCategory, TransitionDuration, TransitionHintOptions, TransitionHintScope, TransitionIntensity, TransitionOption, TransitionOptionChoice, TransitionOptionValues, TransitionPosition, TransitionTiming, TransitionTimingOption, 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, VoiceCharacterEntry, VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, WHITE_FLASH_STYLE, WIPE_DIRECTION, WardrobeDimension, WardrobeEntry, WardrobeValue, blendedCutClause, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAtmosphereHints, buildAtmosphereTerms, buildExposureHints, buildExposureTerms, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildPhotographerHints, buildPhotographerTerms, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildStylingHints, buildStylingTerms, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeTransitionHintFromConnections, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getStyle, getStyleLabel, getStyleMedium, getStylePromptHint, getStyleTerm, getStyleTones, getStyleVideoPromptHint, 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, isBlendableTransition, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isVantageFraming, readTransitionOptionValues, renderTransitionBases, styleOffersMedia, styleOffersRestyle, stylesForMedia, stylesForRestyle } from './entries/pickers.cjs';
|
|
12
|
-
export { BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, BrandCasing, BrandFonts, BrandLogo, BrandPalette, BrandPresetId, BrandPresetMeta, BrandTokens, BrandTypeSpec, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, CaptionLanguageLevers, CaptionSegmentRole, FACTORY_PRESETS, FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_SNIPPETS, FactoryPreset, FactoryPresetGroup, HOOK_PLATE_PRESET_ID, HookPlateSegmentsOptions, HookPlateSegmentsResult, MAX_PRESET_REFERENCES, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, ObjectPresetAssetType, PRESET_PREVIEW_LARGE_WIDTH, PRESET_PREVIEW_PATH, PRESET_PREVIEW_WIDTH, PresetPreviewLargeFile, STYLE_PRESETS, StylePreset, factoryPresetPreviewSrcSet, factoryPresetPreviewUrl, getFactoryPresets, getFactorySnippets, getStylePreset, groupFactoryPresets, hookPlateCaptionSegments, presetMinReferences, resolveBrandInput } from './entries/presets.cjs';
|
|
12
|
+
export { BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, BrandCasing, BrandFonts, BrandLogo, BrandPalette, BrandPresetId, BrandPresetMeta, BrandTokens, BrandTypeSpec, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, CaptionLanguageLevers, CaptionSegmentRole, FACTORY_PRESETS, FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_SNIPPETS, FactoryPreset, FactoryPresetGroup, HOOK_PLATE_PRESET_ID, HookPlateSegmentsOptions, HookPlateSegmentsResult, MAX_PRESET_REFERENCES, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, ObjectPresetAssetType, PRESET_PREVIEW_LARGE_WIDTH, PRESET_PREVIEW_PATH, PRESET_PREVIEW_WIDTH, PRESET_SHELF_ORDER, PresetPreviewLargeFile, PresetShelf, STYLE_PRESETS, StylePreset, factoryPresetPreviewSrcSet, factoryPresetPreviewUrl, getFactoryPresets, getFactorySnippets, getStylePreset, groupFactoryPresets, hookPlateCaptionSegments, presetMinReferences, presetShelf, presetShelfRank, resolveBrandInput } from './entries/presets.cjs';
|
|
13
13
|
export { PromptClauseSlot, ReferenceLineFormat, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, SlottedPromptClause, appendReferenceLines, asBodyClauses, composeSectionedPrompt, endsInsideStyleSection, insertBeforeStyleSection, nearestColorName, partitionStyleClauses, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, renderDescribedReferenceLines, renderReferenceCaptionLines, renderStyleSection, sectionedClauseCosts, splitStyleSection, styleSectionFromClauses, styleSlotFor } from './entries/prompt-builder.cjs';
|
|
14
14
|
export { A as ANGLE_LABELS, a as ASPECT_RATIO_LABELS, B as BuildImagePromptConfig, b as BuildImagePromptOverflowResult, c as BuildImagePromptResult, d as BuildImagePromptSegmentsResult, D as DIRECTION_ARRAY_CEILING, e as DIRECTION_FIELDS, f as DIRECTION_ID_MAX_CHARS, g as DIRECTION_KEYS, h as DirectionFamily, i as DirectionFieldRow, j as DirectionFieldSpec, k as DirectionFields, l as DirectionHintClause, m as DirectionHintMode, n as DirectionKey, o as DirectionRenderOptions, p as DirectionStyleGroup, q as DirectionSurface, F as FILM_STYLE_KEYS, I as IMAGE_HINT_MODE_DEFAULT, r as ImageDirectionKey, M as MAX_SUBJECT_KEYS, s as MOVEMENT_LABELS, P as PromptSegment, t as PromptSegmentOrigin, R as ResolveCharacterMentionsResult, u as ResolveLocationMentionsResult, S as SCENE_PROMPT_MAX_LENGTH, v as SHOT_LABELS, w as SUBJECT_ARRAY_CEILING, x as SUBJECT_CUSTOM_AGE_KEY, y as SUBJECT_FIELDS, z as SUBJECT_FOLD_KEYS, C as SUBJECT_ID_MAX_CHARS, E as SUBJECT_IMAGE_HINT_MODE_DEFAULT, G as SUBJECT_KEYS, H as SUBJECT_KEY_MAX_CHARS, J as SUBJECT_VIDEO_HINT_MODE_DEFAULT, K as StructuredPromptFields, L as StyleReferenceInput, N as SubjectFieldRow, O as SubjectFieldSpec, Q as SubjectFields, T as SubjectGroupFieldSpec, U as SubjectHintMode, V as SubjectIdsFieldSpec, W as SubjectSurface, X as USER_DIRECTION_REF_KINDS, Y as UserDirectionRef, Z as UserDirectionRefKind, _ as VIDEO_HINT_MODE_DEFAULT, $ as VideoDirectionKey, a0 as applyReferenceOrderToVideo, a1 as buildIdentityDirectives, a2 as buildImagePrompt, a3 as buildImagePromptSegments, a4 as buildImagePromptWithOverflow, a5 as buildReferenceBlocks, a6 as buildScenePrompt, a7 as directionFieldsForSurface, a8 as directionKeyForUserRef, a9 as expandImagePositionRefs, aa as expandImageRefTokens, ab as getRegisteredSubjectKeys, ac as modeForFamily, ad as normalizeSubjectFields, ae as parseUserDirectionRef, af as renderDirectionHintClauses, ag as renderDirectionHints, ah as renderMoodboardClause, ai as renderPaletteClause, aj as renderStructuredFields, ak as renderSubjectHints, al as resolveCharacterMentions, am as resolveLocationMentions, an as styleReferenceDescription, ao as subjectFieldsForSurface, ap as truncateText, aq as userDirectionRefValue, ar as userRefKindOfDirectionKey } from './subject-registry-D2uMBVpP.cjs';
|
|
15
15
|
export { ComputeNodePromptArgs, LlmChatFieldArgs, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, NodeSendTextArgs, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PromptFieldSpec, PromptIconKind, ResolvePromptArgs, TEXT_REQUIRED_NODE_TYPES, WIRED_OUTPUT_NODE_TYPES, appendPromptHints, applyPromptAffixes, composeNegative, computeAiWriterInput, computeLlmChatFields, computeNodePrompt, computeNodeSendText, computeScriptTopic, getPromptFields, getSnippetMedia, joinHintFragments, joinPromptHints, joinPromptParts, joinSentences, keepableDirectionHints, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, promptAffixCoreField, promptFieldCarriesAffixes, promptPartSeparator, resolvePrompt, stripAudioTags } from './entries/prompt-fields.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { CHARACTER_ART_FAMILIES, CHARACTER_ART_FILES, CHARACTER_ART_PATH, Charac
|
|
|
9
9
|
export { P as PickerImageOptions, a as PickerOptionImage, R as RENDER_WIDTH_LADDER, l as lookPreviewStillUrl, p as pickerOptionImage, b as pickerOptionImageUrl, c as pickerSectionImageUrl } from './images-ChAOLY5V.js';
|
|
10
10
|
export { ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, AdultOnlyEntry, FLOORED_PICKER_KEYS, ForeignCatalogId, GAPS_SCHEMA, MINOR_IMPLYING_TYPE_IDS, MULTI_PICKER_WIRING, MultiDimPickerWiring, MultiPickerAnalyzerSpec, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_TYPES, ParameterHintOptions, PickerAnalyzer, PickerAnalyzerDescriptor, PickerAnalyzerSpec, PickerApplyMode, PickerDimensionSpec, PickerGaps, PickerType, PickerWiring, PickerWiringEntry, RETIRED_ADULT_ONLY_HINT_STRINGS, SINGLE_PICKER_WIRING, SingleDimPickerWiring, __resetCatalogIdGuardForTests, applyMinorAgeFloorToPickerValues, applyPickerJson, buildMultiPickerAnalyzerSpec, buildNeedleAlternationSource, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, catalogGuardActive, composedHas, composedOption, composedOptionIndex, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getCharacterMotionBindings, getMinorAgeHintStrings, getParameterPromptHint, getPickerAnalyzer, getPickerWiring, isAnalyzablePicker, isMinorAge, overlayEntry, pickerFanoutTargets, setComposedCatalogResolver } from './entries/picker-catalogs.js';
|
|
11
11
|
export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ATMOSPHERES, ATMOSPHERE_IDS, AURORA_SWEEP_STYLE, ActionFx, ActionFxCategory, Aesthetic, AestheticCategory, Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, Backdrop, BackdropCategory, 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, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, CameraFormat, CameraMotion, CameraMotionCategory, CategorizedInstrument, CharacterFx, CharacterFxCategory, CharacterFxDuration, CharacterFxIntensity, CharacterFxPosition, CharacterFxTiming, CharacterFxTimingOption, CharacterMotion, CharacterMotionBindings, CharacterMotionCategory, CharacterMotionDiagnostic, CharacterMotionFloor, CharacterMotionPace, CharacterMotionPosition, CharacterMotionTiming, CharacterMotionTimingOption, ColorLook, ColorLookCategory, CompositionEffect, DEBRIS_SHOWER_STYLE, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, Era, EraCategory, ExposureCategory, ExposureSettings, ExposureValue, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, Framing, FramingCategory, FramingValue, GARDEN_BLOOM_STYLE, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, HeldProp, HeldPropCategory, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, InstrumentCategory, InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, Lens, Lighting, LightingCategory, LightingValue, LoopSubject, LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, 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, Material, MaterialCategory, Mood, MoodCategory, MoodValue, MusicEra, MusicGenre, MusicGenreCategory, MusicMoodData, MusicMoodEntry, MusicSubgenre, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PhotoGenre, PhotoGenreCategory, Photographer, PhotographerCategory, Pose, PoseCategory, PoseValue, PostProcessEffect, RENDER_QUALITIES, RENDER_QUALITY_IDS, RenderQuality, SAKURA_PETALS_STYLE, SAND_STORM_STYLE, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SINGING_STYLES, SMOKE_PUFF_STYLE, STYLES, STYLE_IDS, STYLE_MEDIA, STYLE_MEDIUMS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, Setting, SettingCategory, Style, StyleMedia, StyleMedium, StyleTones, Styling, StylingDimension, StylingDimensionSection, StylingValue, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_OPTION_FIELDS, TRANSITION_POSITIONS, TRANSITION_STYLE_FIELD, Temporal, TemporalCategory, TemporalValue, Transition, TransitionCategory, TransitionDuration, TransitionHintOptions, TransitionHintScope, TransitionIntensity, TransitionOption, TransitionOptionChoice, TransitionOptionValues, TransitionPosition, TransitionTiming, TransitionTimingOption, 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, VoiceCharacterEntry, VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, WHITE_FLASH_STYLE, WIPE_DIRECTION, WardrobeDimension, WardrobeEntry, WardrobeValue, blendedCutClause, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAtmosphereHints, buildAtmosphereTerms, buildExposureHints, buildExposureTerms, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildPhotographerHints, buildPhotographerTerms, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildStylingHints, buildStylingTerms, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeTransitionHintFromConnections, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getStyle, getStyleLabel, getStyleMedium, getStylePromptHint, getStyleTerm, getStyleTones, getStyleVideoPromptHint, 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, isBlendableTransition, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isVantageFraming, readTransitionOptionValues, renderTransitionBases, styleOffersMedia, styleOffersRestyle, stylesForMedia, stylesForRestyle } from './entries/pickers.js';
|
|
12
|
-
export { BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, BrandCasing, BrandFonts, BrandLogo, BrandPalette, BrandPresetId, BrandPresetMeta, BrandTokens, BrandTypeSpec, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, CaptionLanguageLevers, CaptionSegmentRole, FACTORY_PRESETS, FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_SNIPPETS, FactoryPreset, FactoryPresetGroup, HOOK_PLATE_PRESET_ID, HookPlateSegmentsOptions, HookPlateSegmentsResult, MAX_PRESET_REFERENCES, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, ObjectPresetAssetType, PRESET_PREVIEW_LARGE_WIDTH, PRESET_PREVIEW_PATH, PRESET_PREVIEW_WIDTH, PresetPreviewLargeFile, STYLE_PRESETS, StylePreset, factoryPresetPreviewSrcSet, factoryPresetPreviewUrl, getFactoryPresets, getFactorySnippets, getStylePreset, groupFactoryPresets, hookPlateCaptionSegments, presetMinReferences, resolveBrandInput } from './entries/presets.js';
|
|
12
|
+
export { BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, BrandCasing, BrandFonts, BrandLogo, BrandPalette, BrandPresetId, BrandPresetMeta, BrandTokens, BrandTypeSpec, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, CaptionLanguageLevers, CaptionSegmentRole, FACTORY_PRESETS, FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_SNIPPETS, FactoryPreset, FactoryPresetGroup, HOOK_PLATE_PRESET_ID, HookPlateSegmentsOptions, HookPlateSegmentsResult, MAX_PRESET_REFERENCES, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, ObjectPresetAssetType, PRESET_PREVIEW_LARGE_WIDTH, PRESET_PREVIEW_PATH, PRESET_PREVIEW_WIDTH, PRESET_SHELF_ORDER, PresetPreviewLargeFile, PresetShelf, STYLE_PRESETS, StylePreset, factoryPresetPreviewSrcSet, factoryPresetPreviewUrl, getFactoryPresets, getFactorySnippets, getStylePreset, groupFactoryPresets, hookPlateCaptionSegments, presetMinReferences, presetShelf, presetShelfRank, resolveBrandInput } from './entries/presets.js';
|
|
13
13
|
export { PromptClauseSlot, ReferenceLineFormat, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, SlottedPromptClause, appendReferenceLines, asBodyClauses, composeSectionedPrompt, endsInsideStyleSection, insertBeforeStyleSection, nearestColorName, partitionStyleClauses, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, renderDescribedReferenceLines, renderReferenceCaptionLines, renderStyleSection, sectionedClauseCosts, splitStyleSection, styleSectionFromClauses, styleSlotFor } from './entries/prompt-builder.js';
|
|
14
14
|
export { A as ANGLE_LABELS, a as ASPECT_RATIO_LABELS, B as BuildImagePromptConfig, b as BuildImagePromptOverflowResult, c as BuildImagePromptResult, d as BuildImagePromptSegmentsResult, D as DIRECTION_ARRAY_CEILING, e as DIRECTION_FIELDS, f as DIRECTION_ID_MAX_CHARS, g as DIRECTION_KEYS, h as DirectionFamily, i as DirectionFieldRow, j as DirectionFieldSpec, k as DirectionFields, l as DirectionHintClause, m as DirectionHintMode, n as DirectionKey, o as DirectionRenderOptions, p as DirectionStyleGroup, q as DirectionSurface, F as FILM_STYLE_KEYS, I as IMAGE_HINT_MODE_DEFAULT, r as ImageDirectionKey, M as MAX_SUBJECT_KEYS, s as MOVEMENT_LABELS, P as PromptSegment, t as PromptSegmentOrigin, R as ResolveCharacterMentionsResult, u as ResolveLocationMentionsResult, S as SCENE_PROMPT_MAX_LENGTH, v as SHOT_LABELS, w as SUBJECT_ARRAY_CEILING, x as SUBJECT_CUSTOM_AGE_KEY, y as SUBJECT_FIELDS, z as SUBJECT_FOLD_KEYS, C as SUBJECT_ID_MAX_CHARS, E as SUBJECT_IMAGE_HINT_MODE_DEFAULT, G as SUBJECT_KEYS, H as SUBJECT_KEY_MAX_CHARS, J as SUBJECT_VIDEO_HINT_MODE_DEFAULT, K as StructuredPromptFields, L as StyleReferenceInput, N as SubjectFieldRow, O as SubjectFieldSpec, Q as SubjectFields, T as SubjectGroupFieldSpec, U as SubjectHintMode, V as SubjectIdsFieldSpec, W as SubjectSurface, X as USER_DIRECTION_REF_KINDS, Y as UserDirectionRef, Z as UserDirectionRefKind, _ as VIDEO_HINT_MODE_DEFAULT, $ as VideoDirectionKey, a0 as applyReferenceOrderToVideo, a1 as buildIdentityDirectives, a2 as buildImagePrompt, a3 as buildImagePromptSegments, a4 as buildImagePromptWithOverflow, a5 as buildReferenceBlocks, a6 as buildScenePrompt, a7 as directionFieldsForSurface, a8 as directionKeyForUserRef, a9 as expandImagePositionRefs, aa as expandImageRefTokens, ab as getRegisteredSubjectKeys, ac as modeForFamily, ad as normalizeSubjectFields, ae as parseUserDirectionRef, af as renderDirectionHintClauses, ag as renderDirectionHints, ah as renderMoodboardClause, ai as renderPaletteClause, aj as renderStructuredFields, ak as renderSubjectHints, al as resolveCharacterMentions, am as resolveLocationMentions, an as styleReferenceDescription, ao as subjectFieldsForSurface, ap as truncateText, aq as userDirectionRefValue, ar as userRefKindOfDirectionKey } from './subject-registry-Cf802LQ5.js';
|
|
15
15
|
export { ComputeNodePromptArgs, LlmChatFieldArgs, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, NodeSendTextArgs, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PromptFieldSpec, PromptIconKind, ResolvePromptArgs, TEXT_REQUIRED_NODE_TYPES, WIRED_OUTPUT_NODE_TYPES, appendPromptHints, applyPromptAffixes, composeNegative, computeAiWriterInput, computeLlmChatFields, computeNodePrompt, computeNodeSendText, computeScriptTopic, getPromptFields, getSnippetMedia, joinHintFragments, joinPromptHints, joinPromptParts, joinSentences, keepableDirectionHints, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, promptAffixCoreField, promptFieldCarriesAffixes, promptPartSeparator, resolvePrompt, stripAudioTags } from './entries/prompt-fields.js';
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export { BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, FACTORY_PRESETS, FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_SNIPPETS, HOOK_PLATE_PRESET_ID, MAX_PRESET_REFERENCES, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, PRESET_PREVIEW_LARGE_WIDTH, PRESET_PREVIEW_PATH, PRESET_PREVIEW_WIDTH, SNIPPET_MEDIA_VALUES, STYLE_PRESETS, factoryPresetPreviewSrcSet, factoryPresetPreviewUrl, getFactoryPresets, getFactorySnippets, getStylePreset, groupFactoryPresets, hookPlateCaptionSegments, presetMinReferences, resolveBrandInput } from './chunk-
|
|
1
|
+
export { BODY_CAPTIONS_PRESET_ID, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, CAPTION_LEVERS_BY_LANGUAGE, CAPTION_SEGMENT_LEVER_KEYS, FACTORY_PRESETS, FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_SNIPPETS, HOOK_PLATE_PRESET_ID, MAX_PRESET_REFERENCES, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, PRESET_PREVIEW_LARGE_WIDTH, PRESET_PREVIEW_PATH, PRESET_PREVIEW_WIDTH, PRESET_SHELF_ORDER, SNIPPET_MEDIA_VALUES, STYLE_PRESETS, factoryPresetPreviewSrcSet, factoryPresetPreviewUrl, getFactoryPresets, getFactorySnippets, getStylePreset, groupFactoryPresets, hookPlateCaptionSegments, presetMinReferences, presetShelf, presetShelfRank, resolveBrandInput } from './chunk-IVRSNUYX.js';
|
|
2
2
|
export { readDirectionFields, readStructuredFields, readSubjectFields } from './chunk-ZRORO6OM.js';
|
|
3
3
|
export { TEXT_REQUIRED_NODE_TYPES, WIRED_OUTPUT_NODE_TYPES, computeAiWriterInput, computeNodeSendText, stripAudioTags } from './chunk-YS6HOWMW.js';
|
|
4
4
|
export { NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, applyPromptAffixes, composeNegative, computeLlmChatFields, computeNodePrompt, computeScriptTopic, getPromptFields, getSnippetMedia, joinPromptParts, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, promptAffixCoreField, promptFieldCarriesAffixes, promptPartSeparator, resolvePrompt } from './chunk-N6VMPG5S.js';
|
|
5
|
-
export { REF_BINDING, SEEDANCE_VIDEO_EDIT_PREFIX, appendField, appendMusicMeta, assembleImageInput, assembleSunoInput, buildSeedanceVideoEditPrompt, buildSurroundFillPrompt, composeSoundHintFromConnections, composeVideoPromptText, getEffectiveSunoCustomMode, identityRefsSentence, imageBindingFor, placeFramesAfterReferences, planFrameDelivery, promptBindsFirstFrame, resolveGeminiOmniI2vInputs, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveVeoI2vInputs, resolveVideoReferenceCore, truncateForField } from './chunk-
|
|
5
|
+
export { REF_BINDING, SEEDANCE_VIDEO_EDIT_PREFIX, appendField, appendMusicMeta, assembleImageInput, assembleSunoInput, buildSeedanceVideoEditPrompt, buildSurroundFillPrompt, composeSoundHintFromConnections, composeVideoPromptText, getEffectiveSunoCustomMode, identityRefsSentence, imageBindingFor, placeFramesAfterReferences, planFrameDelivery, promptBindsFirstFrame, resolveGeminiOmniI2vInputs, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveVeoI2vInputs, resolveVideoReferenceCore, truncateForField } from './chunk-Z4KWM6DV.js';
|
|
6
6
|
export { ANGLE_LABELS, ASPECT_RATIO_LABELS, MAX_SUBJECT_KEYS, MOVEMENT_LABELS, SCENE_PROMPT_MAX_LENGTH, SHOT_LABELS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, 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, appendReferenceLines, applyReferenceOrderToVideo, asBodyClauses, buildIdentityDirectives, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildReferenceBlocks, buildScenePrompt, composeSectionedPrompt, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, getRegisteredSubjectKeys, insertBeforeStyleSection, normalizeSubjectFields, partitionStyleClauses, referenceDescriptionLine, renderDescribedReferenceLines, renderReferenceCaptionLines, renderStructuredFields, renderStyleSection, renderSubjectHints, resolveCharacterMentions, resolveLocationMentions, sectionedClauseCosts, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, truncateText } from './chunk-YAIPYPMM.js';
|
|
7
7
|
import './chunk-GILUVQQJ.js';
|
|
8
8
|
export { keepableDirectionHints } from './chunk-JZOPMVGY.js';
|
|
9
9
|
export { PROMPT_HINT_SEPARATOR, joinPromptHints } from './chunk-35UHMDGS.js';
|
|
10
10
|
export { computePackSidecarCoverage } from './chunk-FDOG7BNB.js';
|
|
11
|
-
export { AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AUDIO_WIZARD_CATEGORIES, DEFAULT_OWN_MOTION, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, LLM_CHAT_WIZARD_CATEGORIES, MUSIC_WIZARD_CATEGORIES, OWN_MOTION_NODE_TYPES, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, 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, TEXT_WIZARD_CATEGORIES, VIDEO_WIZARD_CATEGORIES, appendScene3DStillScopingLines, buildAdCreativeAnalysisUserText, buildCharacterPrompt, buildCreaturePrompt, buildFaceTemplateInputs, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMotionPrompt, buildObjectMotionPrompt, buildObjectPrompt, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, getCategoriesForNodeType, getPromptDoctrine, getPromptTips, hasScene3DLayoutScopingLine, isWizardSupported, ownMotionHint, renderScene3DLayoutScopingLine, scene3DLayoutVideoCaptions } from './chunk-
|
|
11
|
+
export { AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AUDIO_WIZARD_CATEGORIES, DEFAULT_OWN_MOTION, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, LLM_CHAT_WIZARD_CATEGORIES, MUSIC_WIZARD_CATEGORIES, OWN_MOTION_NODE_TYPES, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, 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, TEXT_WIZARD_CATEGORIES, VIDEO_WIZARD_CATEGORIES, appendScene3DStillScopingLines, buildAdCreativeAnalysisUserText, buildCharacterPrompt, buildCreaturePrompt, buildFaceTemplateInputs, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMotionPrompt, buildObjectMotionPrompt, buildObjectPrompt, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, getCategoriesForNodeType, getPromptDoctrine, getPromptTips, hasScene3DLayoutScopingLine, isWizardSupported, ownMotionHint, renderScene3DLayoutScopingLine, scene3DLayoutVideoCaptions } from './chunk-YDG3KMCN.js';
|
|
12
12
|
export { CINEMATIC_LOOK_TAIL, FILM_STILL_PREFIX, NEUTRAL_PERSON, REALISM_FINISH, REALISM_PASS_INSTRUCTION, REALISM_SKIN, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, SCENE_FRAME_RULE, filmStillPrefix, realismEmptyHands, realismViewpoint, referenceRulesBlock } from './chunk-T64D26P4.js';
|
|
13
13
|
export { DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, applyTemplate, buildIdentityLockLine, characterLockToRefLock, collectIdentityLockClause, getIdentityLockClause, hasUpstreamCharacter, resolveTemplate, toIdentityLockMode, withForcedIdentityLock } from './chunk-BQWIPLLR.js';
|
|
14
14
|
import './chunk-ADMHDFHB.js';
|
|
15
|
-
export { RESTYLE_PREVIEWS, restylePreviewStillUrl } from './chunk-
|
|
15
|
+
export { RESTYLE_PREVIEWS, restylePreviewStillUrl } from './chunk-OMRFKG4M.js';
|
|
16
16
|
export { ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, GAPS_SCHEMA, MULTI_PICKER_WIRING, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_TYPES, SINGLE_PICKER_WIRING, __resetCatalogIdGuardForTests, applyPickerJson, buildMultiPickerAnalyzerSpec, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, catalogGuardActive, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getPickerAnalyzer, getPickerWiring, isAnalyzablePicker, pickerFanoutTargets } from './chunk-HOZPYHRA.js';
|
|
17
17
|
export { ADULT_SWEPT_CATALOG_IDS, FLOORED_PICKER_KEYS, RETIRED_ADULT_ONLY_HINT_STRINGS, applyMinorAgeFloorToPickerValues, buildNeedleAlternationSource, containsMinorAgeHint, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getCharacterMotionBindings, getMinorAgeHintStrings, getParameterPromptHint } from './chunk-EUU5W7XR.js';
|
|
18
18
|
export { DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, FILM_STYLE_KEYS, IMAGE_HINT_MODE_DEFAULT, USER_DIRECTION_REF_KINDS, VIDEO_HINT_MODE_DEFAULT, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, directionFieldsForSurface, directionKeyForUserRef, modeForFamily, nearestColorName, parseUserDirectionRef, renderDirectionHintClauses, renderDirectionHints, renderMoodboardClause, renderPaletteClause, styleReferenceDescription, userDirectionRefValue, userRefKindOfDirectionKey } from './chunk-VBCVQPQ4.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodaro/prompts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.0",
|
|
4
4
|
"description": "Nodaro's prompt-engineering layer — person/picker catalogs with prompt hints, identity-lock clauses, entity prompt builders, brand presets, and prompt/reference assembly shared by the Nodaro platform and SDK.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"test": "vitest run"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@nodaro/shared": "^3.
|
|
73
|
+
"@nodaro/shared": "^3.62.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"tsup": "^8.5.0",
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest"
|
|
2
|
+
import { PRESET_SHELF_ORDER, getFactoryPresets, presetShelf, presetShelfRank } from "../factory-presets.js"
|
|
3
|
+
|
|
4
|
+
describe("the image catalog's shelves", () => {
|
|
5
|
+
it("files every group of the generate-image catalog on a shelf a picker shows", () => {
|
|
6
|
+
const groups = [...new Set(getFactoryPresets("generate-image").map((preset) => preset.group ?? ""))]
|
|
7
|
+
expect(groups.length).toBeGreaterThan(0)
|
|
8
|
+
for (const group of groups) expect(PRESET_SHELF_ORDER).toContain(presetShelf(group))
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
it("puts the named groups on their shelves and the pro catalog's on Studio · Pro", () => {
|
|
12
|
+
expect(presetShelf("YouTube")).toBe("video")
|
|
13
|
+
expect(presetShelf("Social & Ads")).toBe("marketing")
|
|
14
|
+
expect(presetShelf("Personal Photos")).toBe("photos")
|
|
15
|
+
expect(presetShelf("Text")).toBe("creative")
|
|
16
|
+
expect(presetShelf("Family & Events")).toBe("life")
|
|
17
|
+
expect(presetShelf("Reference Sheet")).toBe("pro")
|
|
18
|
+
expect(presetShelf("Edits")).toBe("pro")
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it("puts a group no shelf names on More, so a new group still shows", () => {
|
|
22
|
+
expect(presetShelf("A Group Added Later")).toBe("more")
|
|
23
|
+
expect(presetShelfRank("A Group Added Later")).toBe(-1)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it("ranks the named groups in the design's order", () => {
|
|
27
|
+
expect(presetShelfRank("YouTube")).toBeLessThan(presetShelfRank("Social & Ads"))
|
|
28
|
+
expect(presetShelfRank("Life & Events")).toBeLessThan(presetShelfRank("Family & Events"))
|
|
29
|
+
})
|
|
30
|
+
})
|
|
@@ -2,25 +2,30 @@ import { describe, it, expect } from "vitest"
|
|
|
2
2
|
import { PROVIDER_CAPABILITIES } from "../index.js"
|
|
3
3
|
import { EXTEND_VIDEO_PROVIDERS, SEEDANCE_2_EXTEND_STITCH } from "@nodaro/shared/models"
|
|
4
4
|
import { MODEL_CATALOG } from "@nodaro/shared/model-catalog"
|
|
5
|
-
import { buildVideoCreditModelIdentifier } from "@nodaro/shared/credits"
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
9
|
-
* generation + trim-stitch (spike-validated).
|
|
7
|
+
* Seedance Extend Video: extend ANY video by URL — bare-template continuation
|
|
8
|
+
* generation + trim-stitch (spike-validated). One provider per model:
|
|
9
|
+
* `seedance-2-5-extend` (Seedance 2.5) and `seedance-2-0-extend` (Seedance 2.0).
|
|
10
10
|
*/
|
|
11
|
-
describe("
|
|
12
|
-
it("
|
|
13
|
-
expect(EXTEND_VIDEO_PROVIDERS).toContain("seedance-2-extend")
|
|
11
|
+
describe("Seedance extend shared wiring", () => {
|
|
12
|
+
it("both Seedance models are registered extend providers", () => {
|
|
13
|
+
expect(EXTEND_VIDEO_PROVIDERS).toContain("seedance-2-5-extend")
|
|
14
|
+
expect(EXTEND_VIDEO_PROVIDERS).toContain("seedance-2-0-extend")
|
|
14
15
|
})
|
|
15
16
|
|
|
16
|
-
it("catalog
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
it("catalog entries drive the levers (extend mode, each model's window, three resolutions)", () => {
|
|
18
|
+
const windows: Record<string, number[]> = {
|
|
19
|
+
"seedance-2-5-extend": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
|
|
20
|
+
"seedance-2-0-extend": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
21
|
+
}
|
|
22
|
+
for (const [id, durations] of Object.entries(windows)) {
|
|
23
|
+
const m = MODEL_CATALOG[id]!
|
|
24
|
+
expect(m.modes).toEqual(["extend"])
|
|
25
|
+
expect(m.family).toBe("Bytedance")
|
|
26
|
+
expect(m.durations).toEqual(durations)
|
|
27
|
+
expect(m.resolutions).toEqual(["480p", "720p", "1080p"])
|
|
28
|
+
}
|
|
24
29
|
})
|
|
25
30
|
|
|
26
31
|
it("stitch constants match the spike-validated recipe (4 tail / 3 head / 0.15s fades / 2s ref tail)", () => {
|
|
@@ -32,16 +37,10 @@ describe("seedance-2-extend shared wiring", () => {
|
|
|
32
37
|
})
|
|
33
38
|
})
|
|
34
39
|
|
|
35
|
-
it("is advertised to the wizard's extend-video capabilities", () => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
expect(buildVideoCreditModelIdentifier("seedance-2-extend", 6, undefined, undefined, undefined, "480p"))
|
|
41
|
-
.toBe("seedance-2-extend:8s:480p") // 6s snaps into the 8s tier
|
|
42
|
-
expect(buildVideoCreditModelIdentifier("seedance-2-extend", 4, undefined, undefined, undefined, "720p"))
|
|
43
|
-
.toBe("seedance-2-extend:4s:720p")
|
|
44
|
-
expect(buildVideoCreditModelIdentifier("seedance-2-extend", 15, undefined, undefined, undefined, "1080p"))
|
|
45
|
-
.toBe("seedance-2-extend:15s:1080p")
|
|
40
|
+
it("is advertised to the wizard's extend-video capabilities, once per model", () => {
|
|
41
|
+
const extend = PROVIDER_CAPABILITIES["extend-video"]!
|
|
42
|
+
expect(extend["seedance-2-5-extend"]).toMatch(/ANY video.*Seedance 2\.5/i)
|
|
43
|
+
expect(extend["seedance-2-0-extend"]).toMatch(/ANY video.*Seedance 2\.0/i)
|
|
44
|
+
expect(extend["seedance-2-extend"]).toBeUndefined()
|
|
46
45
|
})
|
|
47
46
|
})
|
|
@@ -9,11 +9,13 @@ import { modelsWithFeature } from "@nodaro/shared/model-catalog"
|
|
|
9
9
|
describe("video reference-image capability (catalog)", () => {
|
|
10
10
|
const refModels = modelsWithFeature("reference-image")
|
|
11
11
|
|
|
12
|
-
// grok-imagine-video-1.5
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
// grok-imagine-video-1.5 advertised the feature with no transport behind it
|
|
13
|
+
// (the 2026-06-28 audit). It carries its Image References now, as in-between
|
|
14
|
+
// FRAMES (KIE `keyframes`, backend kie/grok-video-15.ts), so it declares
|
|
15
|
+
// `reference-image` together with `keyframes` — and never as loose references.
|
|
16
|
+
it("grok-imagine-video-1.5 advertises its Image References as in-between frames", () => {
|
|
17
|
+
expect(refModels).toContain("grok-imagine-video-1.5")
|
|
18
|
+
expect(modelsWithFeature("keyframes")).toContain("grok-imagine-video-1.5")
|
|
17
19
|
})
|
|
18
20
|
|
|
19
21
|
// The video models that genuinely forward references — verified against the
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `assetsTakeNoSeat` — the reference walk for a model whose image references
|
|
3
|
+
* are its FRAMES (a `keyframes` video model, decided 2026-11-11). No asset is
|
|
4
|
+
* seated: nothing attaches a URL or numbers an `@image_N`. A wired character
|
|
5
|
+
* gives its name and description in BOTH reference formats (production renders
|
|
6
|
+
* hybrid), its mentions and `{ref:<id>}` read as its name, and a non-character
|
|
7
|
+
* extra adds nothing.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from "vitest"
|
|
10
|
+
import type { ConnectedReference } from "@nodaro/shared/types"
|
|
11
|
+
import { resolveVideoReferenceCore } from "../video-reference-resolver.js"
|
|
12
|
+
|
|
13
|
+
const F1 = "https://cdn/frame-1.png"
|
|
14
|
+
const F2 = "https://cdn/frame-2.png"
|
|
15
|
+
const MAYA = "https://cdn/maya.png"
|
|
16
|
+
const MAYA_SMILE = "https://cdn/maya-smile.png"
|
|
17
|
+
const CAR = "https://cdn/car.png"
|
|
18
|
+
|
|
19
|
+
const maya: ConnectedReference = {
|
|
20
|
+
id: "maya-ref",
|
|
21
|
+
defaultName: "Maya",
|
|
22
|
+
source: "wired-character",
|
|
23
|
+
url: MAYA,
|
|
24
|
+
characterSlug: "maya",
|
|
25
|
+
characterCanonicalDescription: "Short silver hair, green coat",
|
|
26
|
+
}
|
|
27
|
+
const mayaSmile: ConnectedReference = { ...maya, id: "maya-smile", url: MAYA_SMILE, variantSlug: "smile" }
|
|
28
|
+
|
|
29
|
+
for (const hybridRoles of [false, true]) {
|
|
30
|
+
const format = hybridRoles ? "hybrid" : "legacy"
|
|
31
|
+
describe(`resolveVideoReferenceCore — assetsTakeNoSeat (${format})`, () => {
|
|
32
|
+
it("a wired character gives its name and description; only the frames go out", () => {
|
|
33
|
+
const r = resolveVideoReferenceCore({
|
|
34
|
+
prompt: "she walks to the window",
|
|
35
|
+
wiredCharRefs: [maya],
|
|
36
|
+
ordinalOffset: 2,
|
|
37
|
+
hybridRoles,
|
|
38
|
+
assetsTakeNoSeat: true,
|
|
39
|
+
})
|
|
40
|
+
expect(r.additionalUrls).toEqual([])
|
|
41
|
+
expect(r.prompt).toContain("Maya — Short silver hair, green coat.")
|
|
42
|
+
expect(r.prompt).toContain("she walks to the window")
|
|
43
|
+
expect(r.prompt).not.toMatch(/@image|from @/)
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it("leading frames come back untouched and nothing joins them", () => {
|
|
47
|
+
const r = resolveVideoReferenceCore({
|
|
48
|
+
prompt: "she walks",
|
|
49
|
+
wiredCharRefs: [maya, mayaSmile],
|
|
50
|
+
leadingRefUrls: [F1, F2],
|
|
51
|
+
extraRefs: [{ id: "car", url: CAR, description: "a red car" }],
|
|
52
|
+
hybridRoles,
|
|
53
|
+
assetsTakeNoSeat: true,
|
|
54
|
+
})
|
|
55
|
+
expect(r.additionalUrls).toEqual([F1, F2])
|
|
56
|
+
expect(r.prompt).not.toContain("a red car")
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
it("mentions, variant mentions and {ref:<id>} of the character read as its name", () => {
|
|
60
|
+
const r = resolveVideoReferenceCore({
|
|
61
|
+
prompt: "@maya:1 smiles at {ref:maya-ref}, then @maya:2:smile waves",
|
|
62
|
+
wiredCharRefs: [maya, mayaSmile],
|
|
63
|
+
ordinalOffset: 2,
|
|
64
|
+
hybridRoles,
|
|
65
|
+
assetsTakeNoSeat: true,
|
|
66
|
+
})
|
|
67
|
+
expect(r.prompt).toContain("Maya smiles at Maya, then Maya waves")
|
|
68
|
+
expect(r.prompt).toContain("Maya — Short silver hair, green coat.")
|
|
69
|
+
expect(r.prompt).not.toMatch(/@maya|@image|\{ref:/)
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
it("a character extra speaks for its character once, and its {ref:<id>} reads as the character", () => {
|
|
73
|
+
const r = resolveVideoReferenceCore({
|
|
74
|
+
prompt: "look at {ref:x1}",
|
|
75
|
+
wiredCharRefs: [maya],
|
|
76
|
+
extraRefs: [{ id: "x1", url: MAYA_SMILE, characterSlug: "maya", variantSlug: "smile", description: "smiling" }],
|
|
77
|
+
lookupCharacterBySlug: () => ({ characterName: "Maya", canonicalDescription: "Short silver hair, green coat" }),
|
|
78
|
+
ordinalOffset: 2,
|
|
79
|
+
hybridRoles,
|
|
80
|
+
assetsTakeNoSeat: true,
|
|
81
|
+
})
|
|
82
|
+
expect(r.prompt).toContain("look at Maya")
|
|
83
|
+
expect(r.prompt?.match(/Maya — /g)).toHaveLength(1)
|
|
84
|
+
expect(r.additionalUrls).toEqual([])
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
it("a hidden canonical fallback stays hidden unless the prompt mentions the character", () => {
|
|
88
|
+
const hidden = resolveVideoReferenceCore({
|
|
89
|
+
prompt: "an empty room",
|
|
90
|
+
wiredCharRefs: [maya],
|
|
91
|
+
suppressedCanonicalCharacterIds: ["maya"],
|
|
92
|
+
ordinalOffset: 1,
|
|
93
|
+
hybridRoles,
|
|
94
|
+
assetsTakeNoSeat: true,
|
|
95
|
+
})
|
|
96
|
+
expect(hidden.prompt).toBe("an empty room")
|
|
97
|
+
const mentioned = resolveVideoReferenceCore({
|
|
98
|
+
prompt: "@maya:1 in an empty room",
|
|
99
|
+
wiredCharRefs: [maya],
|
|
100
|
+
suppressedCanonicalCharacterIds: ["maya"],
|
|
101
|
+
ordinalOffset: 1,
|
|
102
|
+
hybridRoles,
|
|
103
|
+
assetsTakeNoSeat: true,
|
|
104
|
+
})
|
|
105
|
+
expect(mentioned.prompt).toContain("Maya in an empty room")
|
|
106
|
+
expect(mentioned.prompt).toContain("Maya — Short silver hair, green coat.")
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
it("an {image:N} past the frames keeps only its label", () => {
|
|
110
|
+
const r = resolveVideoReferenceCore({
|
|
111
|
+
prompt: "between {image:1:the door} and {image:3:Maya}",
|
|
112
|
+
wiredCharRefs: [maya],
|
|
113
|
+
ordinalOffset: 2,
|
|
114
|
+
hybridRoles,
|
|
115
|
+
assetsTakeNoSeat: true,
|
|
116
|
+
})
|
|
117
|
+
expect(r.prompt).toContain("the door from @image_1")
|
|
118
|
+
expect(r.prompt).not.toContain("@image_3")
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
it("without assetsTakeNoSeat the hybrid walk still seats the character after the frames", () => {
|
|
124
|
+
const r = resolveVideoReferenceCore({
|
|
125
|
+
prompt: "she walks",
|
|
126
|
+
wiredCharRefs: [maya],
|
|
127
|
+
leadingRefUrls: [F1, F2],
|
|
128
|
+
hybridRoles: true,
|
|
129
|
+
})
|
|
130
|
+
expect(r.additionalUrls).toEqual([F1, F2, MAYA])
|
|
131
|
+
expect(r.prompt).toMatch(/from @image_3/)
|
|
132
|
+
})
|
|
@@ -15,6 +15,8 @@ import { LOTTIE_OVERLAY_PRESETS } from "./lottie-overlay.js"
|
|
|
15
15
|
|
|
16
16
|
export type { FactoryPreset, FactoryPresetGroup } from "./types.js"
|
|
17
17
|
export { groupFactoryPresets } from "./types.js"
|
|
18
|
+
export type { PresetShelf } from "./shelves.js"
|
|
19
|
+
export { PRESET_SHELF_ORDER, presetShelf, presetShelfRank } from "./shelves.js"
|
|
18
20
|
export { MAX_PRESET_REFERENCES, presetMinReferences } from "./references.js"
|
|
19
21
|
export {
|
|
20
22
|
FACTORY_PRESET_PREVIEW_FILES,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shelves an image-preset picker files the catalog's groups under: Video,
|
|
3
|
+
* Marketing, Photos & products, Creative, Life, then the pro catalog's groups
|
|
4
|
+
* (Studio · Pro). A group no shelf names goes on "more", so a group added to
|
|
5
|
+
* the catalog still shows. One mapping for every picker that shelves the
|
|
6
|
+
* catalog (a client's preset window, a menu that lists the categories, the
|
|
7
|
+
* catalog's group summary `GET /v1/node-presets/factory/groups`).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export type PresetShelf = "video" | "marketing" | "photos" | "creative" | "life" | "more" | "pro"
|
|
11
|
+
|
|
12
|
+
/** The shelves in the order a picker shows them. */
|
|
13
|
+
export const PRESET_SHELF_ORDER: readonly PresetShelf[] = ["video", "marketing", "photos", "creative", "life", "more", "pro"]
|
|
14
|
+
|
|
15
|
+
/** The generate-image catalog's groups on the five named shelves, in the order they are shown. */
|
|
16
|
+
const NAMED_SHELVES: ReadonlyArray<readonly [string, PresetShelf]> = [
|
|
17
|
+
["YouTube", "video"],
|
|
18
|
+
["Shorts · TikTok", "video"],
|
|
19
|
+
["Social & Ads", "marketing"],
|
|
20
|
+
["Business", "marketing"],
|
|
21
|
+
["Business & Marketing", "marketing"],
|
|
22
|
+
["Personal Photos", "photos"],
|
|
23
|
+
["Products & Fashion", "photos"],
|
|
24
|
+
["Home & Spaces", "photos"],
|
|
25
|
+
["Text", "creative"],
|
|
26
|
+
["Content & Creative", "creative"],
|
|
27
|
+
["Layout", "creative"],
|
|
28
|
+
["Life & Events", "life"],
|
|
29
|
+
["Family & Events", "life"],
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
/** The pro catalog's groups (the canvas's and Studio's presets), on the Studio · Pro shelf. */
|
|
33
|
+
const PRO_GROUPS: ReadonlySet<string> = new Set([
|
|
34
|
+
"Reference Sheet", "Cast & Consistency", "Edit by Name", "Face Privacy", "Photography & Cinematic", "Characters", "Product & Commerce",
|
|
35
|
+
"Branding & Logos", "Marketing & Social", "Print & Posters", "Illustration & Art Styles", "Handmade & Stop-Motion", "Film & Storyboard",
|
|
36
|
+
"Architecture & Interiors", "Icons, Game Assets & Textures", "Diagrams & Infographics", "Portrait Transformations", "Stylized Subject", "Edits",
|
|
37
|
+
"Realism & Authentic",
|
|
38
|
+
])
|
|
39
|
+
|
|
40
|
+
const SHELF_OF: ReadonlyMap<string, PresetShelf> = new Map(NAMED_SHELVES)
|
|
41
|
+
|
|
42
|
+
/** The shelf a group goes on. */
|
|
43
|
+
export function presetShelf(group: string): PresetShelf {
|
|
44
|
+
return SHELF_OF.get(group) ?? (PRO_GROUPS.has(group) ? "pro" : "more")
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Where a group stands among the named shelves' groups (the design's order), or -1 for one no named shelf lists. */
|
|
48
|
+
export function presetShelfRank(group: string): number {
|
|
49
|
+
return NAMED_SHELVES.findIndex(([name]) => name === group)
|
|
50
|
+
}
|
|
@@ -36,6 +36,9 @@ export const RESTYLE_PREVIEWS: Readonly<Record<string, RestylePreview>> = {
|
|
|
36
36
|
// Source shot: https://cdn.nodaro.ai/picker-renders/4a70c22d-04f0-4b5a-90d4-e9dd7ddb01c4.mp4
|
|
37
37
|
// Generated, no wipe: https://cdn.nodaro.ai/picker-renders/5ab33529-ef2a-42bc-a625-d6b1abfeef1c.mp4
|
|
38
38
|
"felt-puppet": { url: "https://cdn.nodaro.ai/picker-renders/3aa3c81b-ba19-4776-becc-e0c47c700699.mp4" },
|
|
39
|
+
// Source shot: https://cdn.nodaro.ai/picker-renders/acf379d4-704b-40e5-a5d2-657341f1278a.mp4
|
|
40
|
+
// Generated, no wipe: https://cdn.nodaro.ai/picker-renders/d3da4317-461f-4a10-a1e6-3d141fbb7802.mp4
|
|
41
|
+
"low-poly": { url: "https://cdn.nodaro.ai/picker-renders/4a5b1b1a-c3a4-46d4-9623-f57e80fcbb68.mp4", stillAtSeconds: 7 },
|
|
39
42
|
// Source shot: https://cdn.nodaro.ai/picker-renders/b1e77bdc-7c58-4cd8-a2d6-fd49379fee9e.mp4
|
|
40
43
|
// Generated, no wipe: https://cdn.nodaro.ai/picker-renders/a9aeca2d-bcd6-477b-80d7-5e6454ee2c25.mp4
|
|
41
44
|
"oil-painting": { url: "https://cdn.nodaro.ai/picker-renders/73c98260-9444-45e7-bccb-040b5d33fb53.mp4" },
|
|
@@ -182,6 +182,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
182
182
|
"seedream-5-lite": "Lighter Seedream, faster artistic generation",
|
|
183
183
|
"seedream-5-pro": "Flagship Seedream — strongest instruction following, 2K via high quality",
|
|
184
184
|
"seedream-5-flash": "Fast, low-cost Seedream 5 — quick drafts and iteration at 1K or 2K",
|
|
185
|
+
"minimax-h3-image": "MiniMax H3 — readable text in the picture, up to about 16 MP at 4K, same price at 1K and 2K",
|
|
186
|
+
"seedream-5-5": "Seedream 5.5 — natural light, materials and skin, dense small text, transparent backgrounds; 1K / 1.5K / 2K",
|
|
185
187
|
"z-image": "Experimental, novel generation approaches",
|
|
186
188
|
"wan-2.7": "Wan 2.7 T2I — 1K/2K/4K, up to 9 ref images",
|
|
187
189
|
"wan-2.7-pro": "Wan 2.7 Pro T2I — higher quality, 1K/2K/4K",
|
|
@@ -210,6 +212,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
210
212
|
"seedream-5-lite-i2i": "Light artistic transformation",
|
|
211
213
|
"seedream-5-pro-i2i": "Pro-grade instruction-based edits, multi-reference",
|
|
212
214
|
"seedream-5-flash-i2i": "Fast, low-cost Seedream edits — up to 10 input images",
|
|
215
|
+
"minimax-h3-image-i2i": "MiniMax H3 edits — up to 16 reference images in one edit, readable text, up to 4K",
|
|
216
|
+
"seedream-5-5-i2i": "Seedream 5.5 edits — round after round, the rest of the picture untouched; up to 10 input images",
|
|
213
217
|
"flux-kontext": "Character-consistent edits with reference awareness",
|
|
214
218
|
"flux-kontext-max": "Premium character-consistent editing",
|
|
215
219
|
"kontext-multi": "Multi-image Kontext via Replicate — up to 4 refs",
|
|
@@ -238,6 +242,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
238
242
|
"seedream-5-lite-i2i": "Light artistic transformation",
|
|
239
243
|
"seedream-5-pro-i2i": "Pro-grade instruction-based edits, multi-reference",
|
|
240
244
|
"seedream-5-flash-i2i": "Fast, low-cost Seedream edits — up to 10 input images",
|
|
245
|
+
"minimax-h3-image-i2i": "MiniMax H3 edits — up to 16 reference images in one edit, readable text, up to 4K",
|
|
246
|
+
"seedream-5-5-i2i": "Seedream 5.5 edits — round after round, the rest of the picture untouched; up to 10 input images",
|
|
241
247
|
"flux-kontext": "Character-consistent edits with reference awareness",
|
|
242
248
|
"flux-kontext-max": "Premium character-consistent editing",
|
|
243
249
|
"kontext-multi": "Multi-image Kontext via Replicate — up to 4 refs",
|
|
@@ -279,7 +285,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
279
285
|
"vidu-q4": "Vidu Q4 — start frame or up to 15 reference images + 3 MP3 audio refs, native audio, 3–16s, 540p–4K (image required)",
|
|
280
286
|
"kling-4": "Kling 4.0 — text, or up to 10 reference images / 5 videos / 7 characters / 3 voices; native audio, 3–30s, 720p/1080p",
|
|
281
287
|
"kling-4-keyframes": "Kling 4.0 Keyframes — start frame, up to 8 in-between frames and an end frame; native audio, 3–30s, 720p/1080p",
|
|
282
|
-
"
|
|
288
|
+
"kling-4-flash": "Kling 4.0 Flash — text, or up to 10 reference images / 5 videos / 7 characters (a voice clip per character); native audio, 3–20s, 720p",
|
|
289
|
+
"grok-imagine-video-1.5": "Grok Imagine 1.5 — image-to-video only; exact start and end frame (the same image loops), up to 4 in-between frames; requires an input image",
|
|
283
290
|
},
|
|
284
291
|
"image-to-video": {
|
|
285
292
|
"minimax": "Versatile animation from still images",
|
|
@@ -318,7 +325,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
318
325
|
"vidu-q4": "Vidu Q4 — animate a start frame, or direct up to 15 reference images + 3 MP3 audio refs; native audio, 3–16s, 540p–4K",
|
|
319
326
|
"kling-4": "Kling 4.0 — a start frame joins up to 10 reference images, 5 videos, 7 characters and 3 voices; native audio, 3–30s, 720p/1080p",
|
|
320
327
|
"kling-4-keyframes": "Kling 4.0 Keyframes — start frame, up to 8 in-between frames and an end frame; native audio, 3–30s, 720p/1080p",
|
|
321
|
-
"
|
|
328
|
+
"kling-4-flash": "Kling 4.0 Flash — a start frame alone is the exact opening frame; beside up to 10 reference images, 5 videos and 7 characters it joins them; native audio, 3–20s, 720p",
|
|
329
|
+
"grok-imagine-video-1.5": "Grok Imagine 1.5 — stylized animation, 1–15s, 480p/720p/1080p, start + up to 4 in-between + end frames (image required)",
|
|
322
330
|
},
|
|
323
331
|
"video-to-video": {
|
|
324
332
|
"wan": "Style transfer and video transformation",
|
|
@@ -335,7 +343,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
335
343
|
"extend-video": {
|
|
336
344
|
"veo-extend": "Extend VEO-generated videos",
|
|
337
345
|
"runway-extend": "Extend Runway-generated videos",
|
|
338
|
-
"seedance-2-extend": "Extend ANY video by URL — seamless trim-stitched continuation with audio (Seedance 2.
|
|
346
|
+
"seedance-2-5-extend": "Extend ANY video by URL — seamless trim-stitched continuation with audio, 4–30s added (Seedance 2.5)",
|
|
347
|
+
"seedance-2-0-extend": "Extend ANY video by URL — seamless trim-stitched continuation with audio, 4–15s added (Seedance 2.0)",
|
|
339
348
|
},
|
|
340
349
|
"speech-to-video": {
|
|
341
350
|
"wan-speech": "Wan 2.2 speech-driven video generation",
|