@nodaro/shared 3.8.0 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +325 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +806 -41
- package/dist/index.d.ts +806 -41
- package/dist/index.js +295 -64
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/credit-identifiers.test.ts +51 -1
- package/src/__tests__/gvp-supported-providers.test.ts +20 -3
- package/src/__tests__/model-catalog-sections.test.ts +59 -0
- package/src/__tests__/model-tree.test.ts +5 -2
- package/src/__tests__/parameter-node-value.test.ts +35 -0
- package/src/__tests__/pricing-default-duration.test.ts +45 -0
- package/src/__tests__/prompt-length-limits.test.ts +4 -0
- package/src/__tests__/scene3d-delivery-review.test.ts +512 -0
- package/src/__tests__/suno-credit-type.test.ts +46 -0
- package/src/__tests__/template-categories.test.ts +45 -0
- package/src/__tests__/video-ref-limits.test.ts +11 -2
- package/src/credit-identifiers.ts +64 -14
- package/src/i18n/camera-motions.ar.ts +5 -5
- package/src/i18n/camera-motions.de.ts +5 -5
- package/src/i18n/camera-motions.es.ts +5 -5
- package/src/i18n/camera-motions.fr.ts +5 -5
- package/src/i18n/camera-motions.he.ts +5 -5
- package/src/i18n/camera-motions.hi.ts +5 -5
- package/src/i18n/camera-motions.ja.ts +5 -5
- package/src/i18n/camera-motions.ko.ts +5 -5
- package/src/i18n/camera-motions.pt-BR.ts +5 -5
- package/src/i18n/camera-motions.ru.ts +5 -5
- package/src/i18n/camera-motions.zh-CN.ts +5 -5
- package/src/i18n/character-motion.ar.ts +1031 -0
- package/src/i18n/character-motion.de.ts +1031 -0
- package/src/i18n/character-motion.es.ts +1031 -0
- package/src/i18n/character-motion.fr.ts +1031 -0
- package/src/i18n/character-motion.he.ts +1031 -0
- package/src/i18n/character-motion.hi.ts +1031 -0
- package/src/i18n/character-motion.ja.ts +1031 -0
- package/src/i18n/character-motion.ko.ts +1031 -0
- package/src/i18n/character-motion.pt-BR.ts +1031 -0
- package/src/i18n/character-motion.ru.ts +1031 -0
- package/src/i18n/character-motion.zh-CN.ts +1031 -0
- package/src/i18n/types.ts +1 -0
- package/src/index.ts +28 -0
- package/src/model-catalog.ts +88 -35
- package/src/model-constants.ts +118 -24
- package/src/node-execution-state.ts +95 -0
- package/src/parameter-node-value.ts +33 -0
- package/src/presentation-utils.ts +1 -0
- package/src/pro-3d-render.ts +159 -0
- package/src/scene3d-delivery-notes.ts +490 -0
- package/src/scene3d-v2-plan.ts +8 -2
- package/src/smart-cut-windows.ts +15 -10
- package/src/template-categories.ts +67 -0
package/dist/index.cjs
CHANGED
|
@@ -61,7 +61,7 @@ var MODEL_RECOMMENDATIONS = [
|
|
|
61
61
|
{ intent: "best cinematic video", modelIds: ["veo3", "kling-3.0", "seedance-2"], note: "VEO 3.1 Quality for premium narrative; Kling 3.0 for music-synced motion; Seedance 2 for reference-driven consistency." },
|
|
62
62
|
{ intent: "cheap batch video clips", modelIds: ["veo3.1", "wan-turbo", "bytedance-lite"], note: "VEO 3.1 Fast is the best price/quality balance with native audio." },
|
|
63
63
|
{ intent: "video with start + end frame", modelIds: ["veo3", "veo3.1", "kling-turbo", "minimax", "hailuo-standard", "seedance-2"], note: "All listed support an end frame; VEO uses imageUrls[start, end]." },
|
|
64
|
-
{ intent: "music / song generation", modelIds: ["suno-
|
|
64
|
+
{ intent: "music / song generation", modelIds: ["suno-v6", "suno-v6_wild", "suno-v6_mini", "suno-v5_5"], note: "V6 is the default flagship; V6 Wild for bolder, less predictable results; V6 Mini when speed matters; v5.5 / v5 / v4 keep their own character. Same price." },
|
|
65
65
|
{ intent: "voice over / narration", modelIds: ["elevenlabs-v3", "elevenlabs-turbo"], note: "v3 supports [audio tags] for emotion; Turbo is cheaper for plain narration." },
|
|
66
66
|
{ intent: "lip-sync a portrait to audio", modelIds: ["kling-avatar-pro", "kling-avatar", "infinitalk"], note: "Pro for best mouth shape; InfiniTalk for resolution control." },
|
|
67
67
|
{ intent: "transcription / captions", modelIds: ["elevenlabs-stt"], note: "Word-level timestamps available." },
|
|
@@ -601,23 +601,8 @@ var IMAGE_MODELS = {
|
|
|
601
601
|
{ identifier: "ideogram-remix:QUALITY", credits: 60, note: "best quality" }
|
|
602
602
|
]
|
|
603
603
|
},
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
kind: "image",
|
|
607
|
-
modes: ["edit"],
|
|
608
|
-
family: "Ideogram",
|
|
609
|
-
label: "Ideogram Reframe",
|
|
610
|
-
series: "Ideogram",
|
|
611
|
-
description: "Outpaint / reframe to a new aspect ratio while preserving subject.",
|
|
612
|
-
useCases: ["outpaint", "reframe"],
|
|
613
|
-
features: ["reference-image"],
|
|
614
|
-
aspectRatios: IDEOGRAM_RATIOS,
|
|
615
|
-
pricing: [
|
|
616
|
-
{ identifier: "ideogram-reframe", credits: 18, note: "BALANCED default" },
|
|
617
|
-
{ identifier: "ideogram-reframe:TURBO", credits: 18, note: "fastest" },
|
|
618
|
-
{ identifier: "ideogram-reframe:QUALITY", credits: 18, note: "best quality" }
|
|
619
|
-
]
|
|
620
|
-
},
|
|
604
|
+
// `ideogram-reframe` was retired 2026-09-15 — KIE's `ideogram/v3-reframe`
|
|
605
|
+
// fails every task upstream (#1331); see IDEOGRAM_PROVIDERS in model-constants.
|
|
621
606
|
// ── Google Imagen ──
|
|
622
607
|
"imagen4": {
|
|
623
608
|
id: "imagen4",
|
|
@@ -1069,9 +1054,17 @@ var VIDEO_MODELS = {
|
|
|
1069
1054
|
family: "Google",
|
|
1070
1055
|
label: "VEO 3.1 Quality",
|
|
1071
1056
|
series: "VEO",
|
|
1072
|
-
description: "Google VEO 3.1 Quality \u2014 premium cinematic video. 4/6/8s clips, optional end frame, native audio. Flat per-generation pricing across durations.",
|
|
1057
|
+
description: "Google VEO 3.1 Quality \u2014 premium cinematic video. 4/6/8s clips, optional end frame, native audio. No reference-to-video mode (Fast/Lite only). Flat per-generation pricing across durations.",
|
|
1073
1058
|
useCases: ["cinematic", "premium", "narrative"],
|
|
1074
|
-
|
|
1059
|
+
// NO "reference-image": KIE serves REFERENCE_2_VIDEO on the Fast and Lite
|
|
1060
|
+
// SKUs only. Its own words, on a production job (2026-09-04, app-reports
|
|
1061
|
+
// lane G): "Reference to video only supports the Veo Fast model and Veo
|
|
1062
|
+
// Lite model." Until 2026-09-15 this entry claimed the feature, so the
|
|
1063
|
+
// editor offered the reference handles, the adapter sent
|
|
1064
|
+
// generationType: "REFERENCE_2_VIDEO", and the call came back 422 every
|
|
1065
|
+
// time — after credits were reserved. `veo3.1` (KIE `veo3_fast`) and
|
|
1066
|
+
// `veo3_lite` DO serve it and keep the flag.
|
|
1067
|
+
features: ["end-frame", "audio"],
|
|
1075
1068
|
durations: [4, 6, 8],
|
|
1076
1069
|
aspectRatios: VIDEO_RATIOS_HV,
|
|
1077
1070
|
// 720p (default) + 1080p inline. 4K generates the base at 1080p then chains
|
|
@@ -2028,7 +2021,7 @@ var VIDEO_MODELS = {
|
|
|
2028
2021
|
id: "omnihuman-1-5",
|
|
2029
2022
|
kind: "video",
|
|
2030
2023
|
modes: ["lip-sync"],
|
|
2031
|
-
family: "
|
|
2024
|
+
family: "Bytedance",
|
|
2032
2025
|
label: "OmniHuman 1.5",
|
|
2033
2026
|
series: "OmniHuman",
|
|
2034
2027
|
description: "Premium prompt-directed talking avatar from a still image + audio. 720p / 1080p, up to 60s. People, pets, anime.",
|
|
@@ -2287,17 +2280,8 @@ var AUDIO_MODELS = {
|
|
|
2287
2280
|
pricing: [{ identifier: "elevenlabs-dialogue", credits: 25, note: "per 1K chars" }]
|
|
2288
2281
|
},
|
|
2289
2282
|
// ── ElevenLabs voice utilities ──
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
kind: "audio",
|
|
2293
|
-
modes: ["voice-clone"],
|
|
2294
|
-
family: "ElevenLabs",
|
|
2295
|
-
label: "Voice Clone (Instant)",
|
|
2296
|
-
series: "ElevenLabs",
|
|
2297
|
-
description: "Clone a voice from a short reference clip. Instant clone via direct ElevenLabs API.",
|
|
2298
|
-
useCases: ["voice-clone", "personalization"],
|
|
2299
|
-
pricing: [{ identifier: "voice-clone", credits: 50 }]
|
|
2300
|
-
},
|
|
2283
|
+
// (voice cloning was retired platform-wide on 2026-09-15 — no catalog entry,
|
|
2284
|
+
// no price, no MCP tool; existing clones still resolve as TTS voice ids.)
|
|
2301
2285
|
"elevenlabs-voice-design": {
|
|
2302
2286
|
id: "elevenlabs-voice-design",
|
|
2303
2287
|
kind: "audio",
|
|
@@ -2353,6 +2337,17 @@ var AUDIO_MODELS = {
|
|
|
2353
2337
|
useCases: ["dubbing", "multilingual"],
|
|
2354
2338
|
pricing: [{ identifier: "elevenlabs-dubbing", credits: 40, note: "per minute of the dubbed span (min 1)" }]
|
|
2355
2339
|
},
|
|
2340
|
+
"elevenlabs-dubbing-v2": {
|
|
2341
|
+
id: "elevenlabs-dubbing-v2",
|
|
2342
|
+
kind: "audio",
|
|
2343
|
+
modes: ["dubbing"],
|
|
2344
|
+
family: "ElevenLabs",
|
|
2345
|
+
label: "ElevenLabs Dubbing v2",
|
|
2346
|
+
series: "ElevenLabs",
|
|
2347
|
+
description: "Translate + dub audio or a whole video into a new language \u2014 video in, dubbed video out. Async.",
|
|
2348
|
+
useCases: ["dubbing", "multilingual"],
|
|
2349
|
+
pricing: [{ identifier: "elevenlabs-dubbing-v2", credits: 1100, note: "per minute of the dubbed span (min 1)" }]
|
|
2350
|
+
},
|
|
2356
2351
|
"elevenlabs-forced-alignment": {
|
|
2357
2352
|
id: "elevenlabs-forced-alignment",
|
|
2358
2353
|
kind: "audio",
|
|
@@ -2397,7 +2392,7 @@ var AUDIO_MODELS = {
|
|
|
2397
2392
|
label: "Suno v5",
|
|
2398
2393
|
series: "Suno",
|
|
2399
2394
|
dataValue: "V5",
|
|
2400
|
-
description: "
|
|
2395
|
+
description: "Suno v5 \u2014 better vocal quality than v4, more genres. Same price.",
|
|
2401
2396
|
useCases: ["music", "song", "vocals", "premium"],
|
|
2402
2397
|
pricing: [{ identifier: "suno-v5", credits: 30, note: "per generation" }]
|
|
2403
2398
|
},
|
|
@@ -2409,10 +2404,46 @@ var AUDIO_MODELS = {
|
|
|
2409
2404
|
label: "Suno v5.5",
|
|
2410
2405
|
series: "Suno",
|
|
2411
2406
|
dataValue: "V5_5",
|
|
2412
|
-
description: "Suno v5.5 \u2014
|
|
2407
|
+
description: "Suno v5.5 \u2014 improved audio quality and expressiveness over v5.",
|
|
2408
|
+
useCases: ["music", "song", "vocals", "premium"],
|
|
2409
|
+
pricing: [{ identifier: "suno-v5_5", credits: 30, note: "per generation" }]
|
|
2410
|
+
},
|
|
2411
|
+
"suno-v6": {
|
|
2412
|
+
id: "suno-v6",
|
|
2413
|
+
kind: "audio",
|
|
2414
|
+
modes: ["music"],
|
|
2415
|
+
family: "Suno",
|
|
2416
|
+
label: "Suno V6",
|
|
2417
|
+
series: "Suno",
|
|
2418
|
+
dataValue: "V6",
|
|
2419
|
+
description: "Suno V6 \u2014 greater musical expression with more natural vocals and richer details. The flagship and the default.",
|
|
2413
2420
|
useCases: ["music", "song", "vocals", "premium"],
|
|
2414
|
-
pricing: [{ identifier: "suno-
|
|
2421
|
+
pricing: [{ identifier: "suno-v6", credits: 30, note: "per generation" }],
|
|
2415
2422
|
featured: true
|
|
2423
|
+
},
|
|
2424
|
+
"suno-v6_wild": {
|
|
2425
|
+
id: "suno-v6_wild",
|
|
2426
|
+
kind: "audio",
|
|
2427
|
+
modes: ["music"],
|
|
2428
|
+
family: "Suno",
|
|
2429
|
+
label: "Suno V6 Wild",
|
|
2430
|
+
series: "Suno",
|
|
2431
|
+
dataValue: "V6_WILD",
|
|
2432
|
+
description: "Suno V6 Wild \u2014 pushes creative boundaries for bolder, more distinctive musical expression; more varied, less predictable results.",
|
|
2433
|
+
useCases: ["music", "song", "vocals", "experimental"],
|
|
2434
|
+
pricing: [{ identifier: "suno-v6_wild", credits: 30, note: "per generation" }]
|
|
2435
|
+
},
|
|
2436
|
+
"suno-v6_mini": {
|
|
2437
|
+
id: "suno-v6_mini",
|
|
2438
|
+
kind: "audio",
|
|
2439
|
+
modes: ["music"],
|
|
2440
|
+
family: "Suno",
|
|
2441
|
+
label: "Suno V6 Mini",
|
|
2442
|
+
series: "Suno",
|
|
2443
|
+
dataValue: "V6_MINI",
|
|
2444
|
+
description: "Suno V6 Mini \u2014 lightweight and fast, balancing quality and speed for effortless creation.",
|
|
2445
|
+
useCases: ["music", "song", "vocals", "fast"],
|
|
2446
|
+
pricing: [{ identifier: "suno-v6_mini", credits: 30, note: "per generation" }]
|
|
2416
2447
|
}
|
|
2417
2448
|
};
|
|
2418
2449
|
var MODEL_CATALOG = {
|
|
@@ -2439,6 +2470,10 @@ function groupByFamily(entries) {
|
|
|
2439
2470
|
}
|
|
2440
2471
|
return Array.from(groups.entries()).map(([family, models]) => ({ family, models }));
|
|
2441
2472
|
}
|
|
2473
|
+
var MODEL_KINDS = ["image", "video", "audio"];
|
|
2474
|
+
function groupByKindAndFamily(entries) {
|
|
2475
|
+
return MODEL_KINDS.map((kind) => ({ kind, families: groupByFamily(entries.filter((m) => m.kind === kind)) })).filter((section) => section.families.length > 0);
|
|
2476
|
+
}
|
|
2442
2477
|
function getModel(id) {
|
|
2443
2478
|
return MODEL_CATALOG[id];
|
|
2444
2479
|
}
|
|
@@ -2879,16 +2914,23 @@ var MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER = {
|
|
|
2879
2914
|
// docs.kie.ai/market/seedream-5-lite-image-to-image (NB: t2i sibling is 1000)
|
|
2880
2915
|
"qwen": 3e3,
|
|
2881
2916
|
// docs.kie.ai/market/qwen/text-to-image
|
|
2882
|
-
"qwen-edit": 2e3
|
|
2917
|
+
"qwen-edit": 2e3,
|
|
2883
2918
|
// docs.kie.ai/market/qwen/image-edit
|
|
2919
|
+
// Z-Image is the SHORTEST of the family — "maxLength: 1000" in its schema
|
|
2920
|
+
// (docs.kie.ai/market/z-image/z-image, re-fetched 2026-09-15). It was listed
|
|
2921
|
+
// below as "verified == 5000", which is how three production runs on
|
|
2922
|
+
// 2026-09-07 sent a workflow-assembled prompt straight into KIE's
|
|
2923
|
+
// `{"code":500,"msg":"The text length cannot exceed the maximum limit"}`.
|
|
2924
|
+
"z-image": 1e3
|
|
2925
|
+
// docs.kie.ai/market/z-image/z-image
|
|
2884
2926
|
// verified == 5000 default (no entry needed): imagen4(-fast/-ultra), nano-banana,
|
|
2885
2927
|
// nano-banana-edit, flux, flux-flex, gpt-image-2, ideogram-v3/-edit/-remix,
|
|
2886
|
-
//
|
|
2928
|
+
// grok, qwen-i2i, seedream-5-pro, seedream-5-pro-i2i
|
|
2887
2929
|
// (docs.kie.ai/market/seedream/5-pro-text-to-image + 5-pro-image-to-image).
|
|
2888
2930
|
// grok-i2i: doc states 390000 (78× its t2i sibling) — treated as a KIE schema
|
|
2889
2931
|
// typo and left at the 5000 default per the sanity-cap decision.
|
|
2890
2932
|
// UNVERIFIED (no limit stated in schema) → 5000 default: flux-kontext(-max)
|
|
2891
|
-
// gpt-image, gpt-image-i2i, flux-i2i, flux-pro-i2i
|
|
2933
|
+
// gpt-image, gpt-image-i2i, flux-i2i, flux-pro-i2i.
|
|
2892
2934
|
};
|
|
2893
2935
|
function getMaxImagePromptChars(provider) {
|
|
2894
2936
|
return provider && MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER[provider] || IMAGE_PROMPT_MAX;
|
|
@@ -3082,7 +3124,6 @@ var MODELS_WITH_REFERENCE_IMAGE_SUPPORT = /* @__PURE__ */ new Set([
|
|
|
3082
3124
|
"flux-kontext-max",
|
|
3083
3125
|
"ideogram-edit",
|
|
3084
3126
|
"ideogram-remix",
|
|
3085
|
-
"ideogram-reframe",
|
|
3086
3127
|
"qwen-i2i",
|
|
3087
3128
|
"qwen-edit",
|
|
3088
3129
|
"seedream-edit",
|
|
@@ -3143,7 +3184,6 @@ var REF_IMAGE_MAX_LIMITS = {
|
|
|
3143
3184
|
"flux-kontext-max": 1,
|
|
3144
3185
|
"ideogram-edit": 1,
|
|
3145
3186
|
"ideogram-remix": 1,
|
|
3146
|
-
"ideogram-reframe": 1,
|
|
3147
3187
|
"qwen-i2i": 1,
|
|
3148
3188
|
"qwen-edit": 1,
|
|
3149
3189
|
"grok-i2i": 1,
|
|
@@ -3188,7 +3228,6 @@ var VARIABLE_PRICING_MODELS = {
|
|
|
3188
3228
|
"topaz-image-upscale": "resolution",
|
|
3189
3229
|
"ideogram-edit": "rendering-speed",
|
|
3190
3230
|
"ideogram-remix": "rendering-speed",
|
|
3191
|
-
"ideogram-reframe": "rendering-speed",
|
|
3192
3231
|
"ideogram-v3": "rendering-speed",
|
|
3193
3232
|
"wan-2.7": "resolution",
|
|
3194
3233
|
"wan-2.7-pro": "resolution"
|
|
@@ -3206,7 +3245,7 @@ var RESOLUTION_2K_4K_TIERED_PROVIDERS = /* @__PURE__ */ new Set([
|
|
|
3206
3245
|
"wan-2.7",
|
|
3207
3246
|
"wan-2.7-pro"
|
|
3208
3247
|
]);
|
|
3209
|
-
var IDEOGRAM_PROVIDERS = /* @__PURE__ */ new Set(["ideogram-edit", "ideogram-remix", "ideogram-
|
|
3248
|
+
var IDEOGRAM_PROVIDERS = /* @__PURE__ */ new Set(["ideogram-edit", "ideogram-remix", "ideogram-v3"]);
|
|
3210
3249
|
var IMAGE_GEN_PROVIDERS = [
|
|
3211
3250
|
"nano-banana",
|
|
3212
3251
|
"flux",
|
|
@@ -3253,7 +3292,6 @@ var IMAGE_I2I_PROVIDERS = [
|
|
|
3253
3292
|
"grok-2-i2i",
|
|
3254
3293
|
"ideogram-edit",
|
|
3255
3294
|
"ideogram-remix",
|
|
3256
|
-
"ideogram-reframe",
|
|
3257
3295
|
"qwen-i2i",
|
|
3258
3296
|
"qwen-edit",
|
|
3259
3297
|
"seedream-edit",
|
|
@@ -3586,15 +3624,25 @@ var QA_CHECK_PROVIDERS = [
|
|
|
3586
3624
|
"claude",
|
|
3587
3625
|
"gpt"
|
|
3588
3626
|
];
|
|
3589
|
-
var
|
|
3590
|
-
|
|
3591
|
-
"
|
|
3627
|
+
var SUNO_ACTIVE_MODELS = ["V6", "V6_WILD", "V6_MINI"];
|
|
3628
|
+
var SUNO_LEGACY_MODELS = [
|
|
3629
|
+
"V5_5",
|
|
3630
|
+
"V5",
|
|
3592
3631
|
"V4_5PLUS",
|
|
3593
3632
|
"V4_5ALL",
|
|
3594
|
-
"
|
|
3595
|
-
"
|
|
3633
|
+
"V4_5",
|
|
3634
|
+
"V4"
|
|
3596
3635
|
];
|
|
3597
|
-
var
|
|
3636
|
+
var SUNO_MODELS = [...SUNO_ACTIVE_MODELS, ...SUNO_LEGACY_MODELS];
|
|
3637
|
+
var DEFAULT_SUNO_MODEL = "V6";
|
|
3638
|
+
function isLegacySunoModel(model) {
|
|
3639
|
+
return SUNO_LEGACY_MODELS.includes(model ?? "");
|
|
3640
|
+
}
|
|
3641
|
+
var SUNO_DURATION_MODELS = new Set(SUNO_ACTIVE_MODELS);
|
|
3642
|
+
function sunoModelHonoursDuration(model) {
|
|
3643
|
+
return SUNO_DURATION_MODELS.has(model ?? "");
|
|
3644
|
+
}
|
|
3645
|
+
var SUNO_ADD_TRACK_MODELS = [...SUNO_ACTIVE_MODELS, "V4_5PLUS", "V5", "V5_5"];
|
|
3598
3646
|
var VOICE_DESIGN_MODELS = [
|
|
3599
3647
|
"eleven_ttv_v3",
|
|
3600
3648
|
"eleven_multilingual_ttv_v2"
|
|
@@ -3637,7 +3685,6 @@ var I2I_STRENGTH_SUPPORT = {
|
|
|
3637
3685
|
};
|
|
3638
3686
|
var SEED_SUPPORT = /* @__PURE__ */ new Set([
|
|
3639
3687
|
"ideogram-remix",
|
|
3640
|
-
"ideogram-reframe",
|
|
3641
3688
|
"ideogram-v3",
|
|
3642
3689
|
"qwen",
|
|
3643
3690
|
"qwen-i2i",
|
|
@@ -3653,7 +3700,6 @@ var SEED_SUPPORT = /* @__PURE__ */ new Set([
|
|
|
3653
3700
|
]);
|
|
3654
3701
|
var RENDERING_SPEED_SUPPORT = /* @__PURE__ */ new Set([
|
|
3655
3702
|
"ideogram-remix",
|
|
3656
|
-
"ideogram-reframe",
|
|
3657
3703
|
"ideogram-v3"
|
|
3658
3704
|
]);
|
|
3659
3705
|
var GUIDANCE_SCALE_SUPPORT = {
|
|
@@ -3914,8 +3960,13 @@ var VIDEO_REF_LIMITS_BY_PROVIDER = {
|
|
|
3914
3960
|
// backend kie/models.ts maxRefImages: 7
|
|
3915
3961
|
"happyhorse-ref2v": { images: 9 },
|
|
3916
3962
|
// backend kie/models.ts maxRefImages: 9
|
|
3917
|
-
// VEO 3.x — REFERENCE_2_VIDEO path caps refs at 3 (kie/video.ts
|
|
3918
|
-
|
|
3963
|
+
// VEO 3.x — REFERENCE_2_VIDEO path caps refs at 3 (kie/video.ts slices to
|
|
3964
|
+
// this number). `veo3` (VEO 3.1 QUALITY) is deliberately ABSENT: KIE serves
|
|
3965
|
+
// reference-to-video on the Fast and Lite SKUs only and rejects it on
|
|
3966
|
+
// Quality with "Reference to video only supports the Veo Fast model and Veo
|
|
3967
|
+
// Lite model." (production, 2026-09-04). Absent ⇒ 0 ⇒ the handle dims, the
|
|
3968
|
+
// `connectedReferences` assembly strips image tokens, and kie/video.ts never
|
|
3969
|
+
// flips a Quality call to REFERENCE_2_VIDEO.
|
|
3919
3970
|
"veo3.1": { images: 3 },
|
|
3920
3971
|
"veo3_lite": { images: 3 }
|
|
3921
3972
|
// NOTE: wan-i2v / hailuo-2.3[-pro] / bytedance-pro[-fast] / grok-imagine-video-1.5
|
|
@@ -4143,8 +4194,23 @@ var VIDEO_VARIABLE_PRICING = {
|
|
|
4143
4194
|
"wan-3-prime": "duration+resolution"
|
|
4144
4195
|
};
|
|
4145
4196
|
var PRICING_DEFAULT_DURATION_SEC = {
|
|
4146
|
-
"minimax-h3": 6
|
|
4197
|
+
"minimax-h3": 6,
|
|
4198
|
+
// KIE renders 8s when `duration` is omitted (kie/models.ts extraParams), and
|
|
4199
|
+
// Seedance 2.5 prices one tier per second across 4–30s, so the 5s fallback
|
|
4200
|
+
// billed a 5s tier against an 8s render — and under-reserved every
|
|
4201
|
+
// reference-video run's output seconds by three (#1397).
|
|
4202
|
+
"seedance-2-5": 8,
|
|
4203
|
+
// Same shape: KIE renders 8s by default and the ladder is priced per second,
|
|
4204
|
+
// so the 5s fallback billed a 5s tier against an 8s render (caught by the
|
|
4205
|
+
// render-default ↔ priced-tier invariant in
|
|
4206
|
+
// backend/src/providers/__tests__/pricing-default-duration-sync.test.ts).
|
|
4207
|
+
"grok-imagine-video-1.5": 8
|
|
4147
4208
|
};
|
|
4209
|
+
function pricedOutputDurationSec(provider, requested) {
|
|
4210
|
+
const fallback = PRICING_DEFAULT_DURATION_SEC[provider] ?? 5;
|
|
4211
|
+
const parsed = typeof requested === "string" ? parseInt(requested, 10) : requested;
|
|
4212
|
+
return parsed === void 0 || Number.isNaN(parsed) ? fallback : parsed;
|
|
4213
|
+
}
|
|
4148
4214
|
var PRICING_DEFAULT_RESOLUTION = {
|
|
4149
4215
|
// KIE renders 720p when `resolution` is omitted (kie/models.ts extraParams).
|
|
4150
4216
|
"seedance-2-5": "720p",
|
|
@@ -4836,10 +4902,16 @@ function expandExtraRefsToConnectedReferences(extras, lookupCharacterContext) {
|
|
|
4836
4902
|
}
|
|
4837
4903
|
|
|
4838
4904
|
// src/credit-identifiers.ts
|
|
4905
|
+
function flux2MegapixelTier(model, resolution) {
|
|
4906
|
+
const bare = (v) => v.replace(/\s*MP$/i, "").trim();
|
|
4907
|
+
const raw = typeof resolution === "string" ? bare(resolution) : "";
|
|
4908
|
+
if (raw === "") return "1";
|
|
4909
|
+
const tier = FLUX2_RES_MP.find((t2) => Number(t2) === Number(raw));
|
|
4910
|
+
return tier ?? bare(defaultResolutionFor(model) ?? "1 MP");
|
|
4911
|
+
}
|
|
4839
4912
|
function buildCreditModelIdentifier(provider, quality, resolution, renderingSpeed, targetResolution, referenceImageCount) {
|
|
4840
4913
|
if (isFlux2Model(provider)) {
|
|
4841
|
-
|
|
4842
|
-
return `${provider}:${mp}MP:${Math.min(referenceImageCount ?? 0, 8)}ref`;
|
|
4914
|
+
return `${provider}:${flux2MegapixelTier(provider, resolution)}MP:${Math.min(referenceImageCount ?? 0, 8)}ref`;
|
|
4843
4915
|
}
|
|
4844
4916
|
if (HIGH_QUALITY_PROVIDERS.has(provider) && quality === "high") {
|
|
4845
4917
|
return `${provider}:high`;
|
|
@@ -4945,9 +5017,7 @@ function buildVideoCreditModelIdentifier(provider, duration, sound, nodeType, mo
|
|
|
4945
5017
|
if (!DURATION_PRICED_PROVIDERS.has(effectiveProvider)) {
|
|
4946
5018
|
return effectiveProvider;
|
|
4947
5019
|
}
|
|
4948
|
-
const
|
|
4949
|
-
const parsed = typeof duration === "string" ? parseInt(duration, 10) : duration ?? durationFallback;
|
|
4950
|
-
const durationSec = Number.isNaN(parsed) ? durationFallback : parsed;
|
|
5020
|
+
const durationSec = pricedOutputDurationSec(effectiveProvider, duration);
|
|
4951
5021
|
const tiers = VIDEO_DURATION_TIERS[effectiveProvider];
|
|
4952
5022
|
if (!tiers) return effectiveProvider;
|
|
4953
5023
|
const tier = tiers.find((t2) => durationSec <= t2.maxSeconds) ?? tiers[tiers.length - 1];
|
|
@@ -5028,10 +5098,15 @@ function sunoCreditType(model, operation) {
|
|
|
5028
5098
|
if (!SUNO_VERSION_PRICED_OPERATIONS.includes(operation)) {
|
|
5029
5099
|
return operation;
|
|
5030
5100
|
}
|
|
5031
|
-
|
|
5032
|
-
if (model === "V5") return "suno-v5";
|
|
5033
|
-
return operation;
|
|
5101
|
+
return model && SUNO_VERSION_CREDIT_KEYS[model] || operation;
|
|
5034
5102
|
}
|
|
5103
|
+
var SUNO_VERSION_CREDIT_KEYS = {
|
|
5104
|
+
V6: "suno-v6",
|
|
5105
|
+
V6_WILD: "suno-v6_wild",
|
|
5106
|
+
V6_MINI: "suno-v6_mini",
|
|
5107
|
+
V5_5: "suno-v5_5",
|
|
5108
|
+
V5: "suno-v5"
|
|
5109
|
+
};
|
|
5035
5110
|
|
|
5036
5111
|
// src/credit-estimators/video-utils.ts
|
|
5037
5112
|
var VIDEO_UTIL_PRICING = {
|
|
@@ -5662,6 +5737,7 @@ var INPUT_FIELD_MAP = {
|
|
|
5662
5737
|
"post-process-effects": { key: "postProcess", type: "select" },
|
|
5663
5738
|
"action-fx": { key: "actionFx", type: "select" },
|
|
5664
5739
|
"character-fx": { key: "characterFx", type: "select" },
|
|
5740
|
+
"character-motion": { key: "characterMotion", type: "select" },
|
|
5665
5741
|
"transition": { key: "transition", type: "select" },
|
|
5666
5742
|
"loop-subject": { key: "loopSubject", type: "select" },
|
|
5667
5743
|
// --- Multi-dimension pickers: representative (first) field. Overriding only
|
|
@@ -8140,6 +8216,7 @@ var PARAMETER_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
|
8140
8216
|
"post-process-effects",
|
|
8141
8217
|
"action-fx",
|
|
8142
8218
|
"character-fx",
|
|
8219
|
+
"character-motion",
|
|
8143
8220
|
"transition",
|
|
8144
8221
|
"loop-subject",
|
|
8145
8222
|
"scene-count",
|
|
@@ -8157,6 +8234,17 @@ var HINT_EXEMPT_PARAMETER_TYPES = /* @__PURE__ */ new Set([
|
|
|
8157
8234
|
"duration",
|
|
8158
8235
|
"aspect-ratio"
|
|
8159
8236
|
]);
|
|
8237
|
+
var VIDEO_ONLY_PARAMETER_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
8238
|
+
"camera-motion",
|
|
8239
|
+
"temporal",
|
|
8240
|
+
"transition",
|
|
8241
|
+
"character-fx",
|
|
8242
|
+
"character-motion"
|
|
8243
|
+
]);
|
|
8244
|
+
var EXECUTION_GRAPH_COMPOSED_PARAMETER_TYPES = /* @__PURE__ */ new Set([
|
|
8245
|
+
"camera-motion",
|
|
8246
|
+
"character-motion"
|
|
8247
|
+
]);
|
|
8160
8248
|
var registeredPersonPackFields = [];
|
|
8161
8249
|
function setRegisteredPersonPackFields(fields) {
|
|
8162
8250
|
registeredPersonPackFields = [...fields];
|
|
@@ -8199,6 +8287,8 @@ function getParameterValue(data, nodeType) {
|
|
|
8199
8287
|
return trim(data.actionFx);
|
|
8200
8288
|
case "character-fx":
|
|
8201
8289
|
return trim(data.characterFx);
|
|
8290
|
+
case "character-motion":
|
|
8291
|
+
return trim(data.characterMotion);
|
|
8202
8292
|
case "transition":
|
|
8203
8293
|
return trim(data.transition);
|
|
8204
8294
|
case "style":
|
|
@@ -13336,6 +13426,12 @@ var VOICE_CHANGER_MODEL_IDS = VOICE_CHANGER_MODELS.map(
|
|
|
13336
13426
|
);
|
|
13337
13427
|
var DEFAULT_VOICE_CHANGER_MODEL = "eleven_multilingual_sts_v2";
|
|
13338
13428
|
|
|
13429
|
+
// src/node-execution-state.ts
|
|
13430
|
+
var OUTPUT_BEARING_NODE_STATUSES = /* @__PURE__ */ new Set(["completed", "failed"]);
|
|
13431
|
+
function nodeStateMayCarryOutput(status) {
|
|
13432
|
+
return status !== void 0 && OUTPUT_BEARING_NODE_STATUSES.has(status);
|
|
13433
|
+
}
|
|
13434
|
+
|
|
13339
13435
|
// src/normalize-node-params.ts
|
|
13340
13436
|
var MODEL_PARAM_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
13341
13437
|
"generate-image",
|
|
@@ -13983,6 +14079,45 @@ function buildBoardPrompt(templateId, ctx) {
|
|
|
13983
14079
|
return tpl.build(ctx);
|
|
13984
14080
|
}
|
|
13985
14081
|
|
|
14082
|
+
// src/template-categories.ts
|
|
14083
|
+
var TEMPLATE_CATEGORIES = [
|
|
14084
|
+
"product-imagery",
|
|
14085
|
+
"static-ads",
|
|
14086
|
+
"user-generated-content",
|
|
14087
|
+
"video-ads",
|
|
14088
|
+
"brand-assets",
|
|
14089
|
+
"automations",
|
|
14090
|
+
"campaign-concepts",
|
|
14091
|
+
"social-creatives"
|
|
14092
|
+
];
|
|
14093
|
+
var DEFAULT_TEMPLATE_CATEGORY = "automations";
|
|
14094
|
+
var LEGACY_TEMPLATE_CATEGORIES = {
|
|
14095
|
+
"image-generation": "product-imagery",
|
|
14096
|
+
"video-production": "video-ads",
|
|
14097
|
+
"audio-music": "social-creatives",
|
|
14098
|
+
"content-writing": "campaign-concepts",
|
|
14099
|
+
"social-media": "social-creatives",
|
|
14100
|
+
"data-processing": "automations",
|
|
14101
|
+
"multi-step": "automations",
|
|
14102
|
+
other: "automations"
|
|
14103
|
+
};
|
|
14104
|
+
var CURRENT = new Set(TEMPLATE_CATEGORIES);
|
|
14105
|
+
function isTemplateCategory(value) {
|
|
14106
|
+
return typeof value === "string" && CURRENT.has(value);
|
|
14107
|
+
}
|
|
14108
|
+
function resolveTemplateCategory(value) {
|
|
14109
|
+
if (value == null) return void 0;
|
|
14110
|
+
if (isTemplateCategory(value)) return value;
|
|
14111
|
+
return LEGACY_TEMPLATE_CATEGORIES[value];
|
|
14112
|
+
}
|
|
14113
|
+
function normalizeTemplateCategory(value) {
|
|
14114
|
+
return resolveTemplateCategory(value) ?? DEFAULT_TEMPLATE_CATEGORY;
|
|
14115
|
+
}
|
|
14116
|
+
function templateCategoryStoredValues(category) {
|
|
14117
|
+
const legacy = Object.keys(LEGACY_TEMPLATE_CATEGORIES).filter((value) => LEGACY_TEMPLATE_CATEGORIES[value] === category);
|
|
14118
|
+
return [category, ...legacy];
|
|
14119
|
+
}
|
|
14120
|
+
|
|
13986
14121
|
// src/model-tree.ts
|
|
13987
14122
|
var ENUM_TARGETS = [
|
|
13988
14123
|
[IMAGE_GEN_PROVIDERS, "generate-image"],
|
|
@@ -16786,6 +16921,56 @@ function parseScene3DCameraTrackJson(text) {
|
|
|
16786
16921
|
}
|
|
16787
16922
|
return { ok: true, value: parsed.data };
|
|
16788
16923
|
}
|
|
16924
|
+
|
|
16925
|
+
// src/scene3d-delivery-notes.ts
|
|
16926
|
+
var SCENE3D_AUTHORING_ASSUMPTION_CODE = "SCENE_AUTHORING_ASSUMPTION";
|
|
16927
|
+
var SCENE3D_REVIEW_REFUSED_CODE = "SCENE_REVIEW_REFUSED";
|
|
16928
|
+
var SCENE3D_REVIEW_UNAVAILABLE_CODE = "SCENE_REVIEW_UNAVAILABLE";
|
|
16929
|
+
var SCENE3D_REMEDY_AUTO_APPLIED_CODE = "REMEDY_AUTO_APPLIED";
|
|
16930
|
+
var SCENE3D_ASSERTION_RESTORED_CODE = "ASSERTION_RESTORED";
|
|
16931
|
+
var SCENE3D_REVIEW_UNAVAILABLE_REASONS = ["provider", "unusable"];
|
|
16932
|
+
function isScene3DReviewUnavailableReason(value) {
|
|
16933
|
+
return SCENE3D_REVIEW_UNAVAILABLE_REASONS.includes(value);
|
|
16934
|
+
}
|
|
16935
|
+
function scene3DReviewVerdictOf(output) {
|
|
16936
|
+
const review = output?.metadata?.review;
|
|
16937
|
+
if (typeof review !== "object" || review === null) return void 0;
|
|
16938
|
+
const candidate = review;
|
|
16939
|
+
if (candidate.verdict !== "refused" && candidate.verdict !== "unavailable") return void 0;
|
|
16940
|
+
const objections = (Array.isArray(candidate.objections) ? candidate.objections : []).flatMap((entry) => {
|
|
16941
|
+
if (typeof entry !== "object" || entry === null) return [];
|
|
16942
|
+
const objection = entry;
|
|
16943
|
+
if (typeof objection.what !== "string" || !objection.what) return [];
|
|
16944
|
+
const frames = (Array.isArray(objection.frames) ? objection.frames : []).filter((frame) => Number.isSafeInteger(frame) && frame >= 0);
|
|
16945
|
+
return [{
|
|
16946
|
+
category: typeof objection.category === "string" && objection.category ? objection.category : "unsupported",
|
|
16947
|
+
what: objection.what,
|
|
16948
|
+
...typeof objection.correction === "string" && objection.correction ? { correction: objection.correction } : {},
|
|
16949
|
+
frames
|
|
16950
|
+
}];
|
|
16951
|
+
});
|
|
16952
|
+
const findings = {
|
|
16953
|
+
objections,
|
|
16954
|
+
...typeof candidate.observed === "string" && candidate.observed ? { observed: candidate.observed } : {}
|
|
16955
|
+
};
|
|
16956
|
+
if (candidate.verdict === "refused") return { verdict: "refused", ...findings };
|
|
16957
|
+
const attempts = typeof candidate.attempts === "number" && Number.isSafeInteger(candidate.attempts) && candidate.attempts > 0 ? candidate.attempts : 1;
|
|
16958
|
+
const reason = isScene3DReviewUnavailableReason(candidate.reason) ? candidate.reason : "provider";
|
|
16959
|
+
return { verdict: "unavailable", reason, attempts, ...findings };
|
|
16960
|
+
}
|
|
16961
|
+
function scene3DReviewNote(verdict) {
|
|
16962
|
+
if (verdict.verdict === "unavailable") {
|
|
16963
|
+
const asked = verdict.attempts === 1 ? "one attempt" : `${verdict.attempts} attempts`;
|
|
16964
|
+
const partial = verdict.objections.length ? ` Part of the review did answer first, and its ${verdict.objections.length === 1 ? "one finding is" : `${verdict.objections.length} findings are`} listed \u2014 but they are not the whole verdict.` : "";
|
|
16965
|
+
const missing = verdict.reason === "unusable" ? `returned no usable verdict in ${asked}` : `did not reach its provider in ${asked}`;
|
|
16966
|
+
return `The scene built and every mandatory assertion passed, but the visual review ${missing}; it was delivered unreviewed.${partial}`;
|
|
16967
|
+
}
|
|
16968
|
+
const count = verdict.objections.length;
|
|
16969
|
+
if (!count) {
|
|
16970
|
+
return "The visual review refused this scene without naming anything to change; it was delivered anyway because every mandatory assertion passed.";
|
|
16971
|
+
}
|
|
16972
|
+
return `The visual review refused this scene on ${count === 1 ? "one finding" : `${count} findings`}; it was delivered anyway because every mandatory assertion passed.`;
|
|
16973
|
+
}
|
|
16789
16974
|
var scene3DInputAssetSchema = zod.z.object({
|
|
16790
16975
|
id: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$/),
|
|
16791
16976
|
revisionId: zod.z.uuid(),
|
|
@@ -16856,6 +17041,26 @@ var pro3DRenderQuoteSchema = zod.z.object({
|
|
|
16856
17041
|
function isPro3DRenderQuote(value) {
|
|
16857
17042
|
return pro3DRenderQuoteSchema.safeParse(value).success;
|
|
16858
17043
|
}
|
|
17044
|
+
var pro3DRenderReviewFindingsShape = {
|
|
17045
|
+
objections: zod.z.array(
|
|
17046
|
+
zod.z.object({
|
|
17047
|
+
category: zod.z.string(),
|
|
17048
|
+
what: zod.z.string(),
|
|
17049
|
+
correction: zod.z.string().optional(),
|
|
17050
|
+
frames: zod.z.array(zod.z.number().int().min(0)).default([])
|
|
17051
|
+
}).passthrough()
|
|
17052
|
+
),
|
|
17053
|
+
observed: zod.z.string().optional()
|
|
17054
|
+
};
|
|
17055
|
+
var pro3DRenderReviewVerdictSchema = zod.z.union([
|
|
17056
|
+
zod.z.object({ verdict: zod.z.literal("refused"), ...pro3DRenderReviewFindingsShape }).passthrough(),
|
|
17057
|
+
zod.z.object({
|
|
17058
|
+
verdict: zod.z.literal("unavailable"),
|
|
17059
|
+
reason: zod.z.enum(SCENE3D_REVIEW_UNAVAILABLE_REASONS).catch("provider"),
|
|
17060
|
+
attempts: zod.z.number().int().min(1).catch(1),
|
|
17061
|
+
...pro3DRenderReviewFindingsShape
|
|
17062
|
+
}).passthrough()
|
|
17063
|
+
]);
|
|
16859
17064
|
var pro3DRenderShotStillSchema = zod.z.object({
|
|
16860
17065
|
shotIndex: zod.z.number().int().min(0),
|
|
16861
17066
|
frame: zod.z.number().int().min(0),
|
|
@@ -16886,8 +17091,34 @@ var pro3DRenderJobOutputSchema = zod.z.object({
|
|
|
16886
17091
|
height: zod.z.number().int().positive(),
|
|
16887
17092
|
fps: zod.z.number().positive(),
|
|
16888
17093
|
frames: zod.z.number().int().positive(),
|
|
16889
|
-
duration: zod.z.number().positive()
|
|
17094
|
+
duration: zod.z.number().positive(),
|
|
17095
|
+
summary: zod.z.string().optional(),
|
|
17096
|
+
/**
|
|
17097
|
+
* Degrades to absent rather than refusing the RESULT, which is the whole lesson of the
|
|
17098
|
+
* verdict this round added. A narrow `verdict` here did not merely mis-read an unreviewed
|
|
17099
|
+
* delivery — it failed `isPro3DRenderJobOutput` for the entire job, blanking a real,
|
|
17100
|
+
* paid, playable MP4 over an advisory field. A verdict a future engine invents must cost
|
|
17101
|
+
* at most itself; the `SCENE_REVIEW_*` entry in `validation.warnings[]` still arrives
|
|
17102
|
+
* either way, because that array has no code enum.
|
|
17103
|
+
*/
|
|
17104
|
+
review: pro3DRenderReviewVerdictSchema.optional().catch(void 0)
|
|
16890
17105
|
}).passthrough(),
|
|
17106
|
+
repairPasses: zod.z.number().int().min(0).optional(),
|
|
17107
|
+
admissionRetries: zod.z.number().int().min(0).optional(),
|
|
17108
|
+
mechanicalPasses: zod.z.number().int().min(0).optional(),
|
|
17109
|
+
// Tolerant like the review verdict above, and for the same reason: this rides a result that
|
|
17110
|
+
// already has a real MP4, so a malformed entry must never blank a video the platform rendered
|
|
17111
|
+
// and charged for. The identity fields are required because an entry without them names
|
|
17112
|
+
// nothing; `value` is unknown because a restored assertion holds whatever it holds.
|
|
17113
|
+
restoredAssertions: zod.z.array(
|
|
17114
|
+
zod.z.object({
|
|
17115
|
+
op: zod.z.string(),
|
|
17116
|
+
path: zod.z.string(),
|
|
17117
|
+
value: zod.z.unknown().optional(),
|
|
17118
|
+
assertionId: zod.z.string(),
|
|
17119
|
+
reason: zod.z.string()
|
|
17120
|
+
}).passthrough()
|
|
17121
|
+
).optional(),
|
|
16891
17122
|
changeSummary: zod.z.string().optional()
|
|
16892
17123
|
}).passthrough();
|
|
16893
17124
|
function isPro3DRenderJobOutput(value) {
|
|
@@ -17359,6 +17590,8 @@ exports.DEFAULT_OVERLAY_TEXT = DEFAULT_OVERLAY_TEXT;
|
|
|
17359
17590
|
exports.DEFAULT_PANEL_COUNT = DEFAULT_PANEL_COUNT;
|
|
17360
17591
|
exports.DEFAULT_REF_IMAGE_MAX = DEFAULT_REF_IMAGE_MAX;
|
|
17361
17592
|
exports.DEFAULT_SECTIONS = DEFAULT_SECTIONS;
|
|
17593
|
+
exports.DEFAULT_SUNO_MODEL = DEFAULT_SUNO_MODEL;
|
|
17594
|
+
exports.DEFAULT_TEMPLATE_CATEGORY = DEFAULT_TEMPLATE_CATEGORY;
|
|
17362
17595
|
exports.DEFAULT_USAGE_MODE = DEFAULT_USAGE_MODE;
|
|
17363
17596
|
exports.DEFAULT_VIDEO_ANALYSIS_MODEL = DEFAULT_VIDEO_ANALYSIS_MODEL;
|
|
17364
17597
|
exports.DEFAULT_VIDEO_ANALYSIS_TIER = DEFAULT_VIDEO_ANALYSIS_TIER;
|
|
@@ -17387,6 +17620,7 @@ exports.ENTITY_TABLE = ENTITY_TABLE;
|
|
|
17387
17620
|
exports.ENTITY_TOOL_RETRY_CAP = ENTITY_TOOL_RETRY_CAP;
|
|
17388
17621
|
exports.ENTITY_TYPES = ENTITY_TYPES;
|
|
17389
17622
|
exports.EXECUTION_DATA_KEYS = EXECUTION_DATA_KEYS;
|
|
17623
|
+
exports.EXECUTION_GRAPH_COMPOSED_PARAMETER_TYPES = EXECUTION_GRAPH_COMPOSED_PARAMETER_TYPES;
|
|
17390
17624
|
exports.EXTEND_VIDEO_PROVIDERS = EXTEND_VIDEO_PROVIDERS;
|
|
17391
17625
|
exports.EntityMetadataSchema = EntityMetadataSchema;
|
|
17392
17626
|
exports.EntityRejectInputSchema = EntityRejectInputSchema;
|
|
@@ -17461,6 +17695,7 @@ exports.KEYFRAME_CREDITS_PER_SHOT = KEYFRAME_CREDITS_PER_SHOT;
|
|
|
17461
17695
|
exports.KINETIC_CAPTION_STYLES = KINETIC_CAPTION_STYLES;
|
|
17462
17696
|
exports.LANGUAGES = LANGUAGES;
|
|
17463
17697
|
exports.LEGACY_LOTTIE_HOST_REMAP = LEGACY_LOTTIE_HOST_REMAP;
|
|
17698
|
+
exports.LEGACY_TEMPLATE_CATEGORIES = LEGACY_TEMPLATE_CATEGORIES;
|
|
17464
17699
|
exports.LIP_SYNC_DURATION_BUCKETS = LIP_SYNC_DURATION_BUCKETS;
|
|
17465
17700
|
exports.LIP_SYNC_MAX_AUDIO_SECONDS = LIP_SYNC_MAX_AUDIO_SECONDS;
|
|
17466
17701
|
exports.LIP_SYNC_PROVIDERS = LIP_SYNC_PROVIDERS;
|
|
@@ -17500,6 +17735,7 @@ exports.MINIMAX_H3_DEFAULT_RESOLUTION = MINIMAX_H3_DEFAULT_RESOLUTION;
|
|
|
17500
17735
|
exports.MINIMAX_H3_PROVIDERS = MINIMAX_H3_PROVIDERS;
|
|
17501
17736
|
exports.MODELS_WITH_REFERENCE_IMAGE_SUPPORT = MODELS_WITH_REFERENCE_IMAGE_SUPPORT;
|
|
17502
17737
|
exports.MODEL_CATALOG = MODEL_CATALOG;
|
|
17738
|
+
exports.MODEL_KINDS = MODEL_KINDS;
|
|
17503
17739
|
exports.MODEL_PARAM_NODE_TYPES = MODEL_PARAM_NODE_TYPES;
|
|
17504
17740
|
exports.MODEL_RECOMMENDATIONS = MODEL_RECOMMENDATIONS;
|
|
17505
17741
|
exports.MODIFY_IMAGE_PROVIDERS = MODIFY_IMAGE_PROVIDERS;
|
|
@@ -17532,6 +17768,7 @@ exports.ORG_ERROR_CODES = ORG_ERROR_CODES;
|
|
|
17532
17768
|
exports.ORG_KINDS = ORG_KINDS;
|
|
17533
17769
|
exports.ORG_ROLES = ORG_ROLES;
|
|
17534
17770
|
exports.ORG_STATUSES = ORG_STATUSES;
|
|
17771
|
+
exports.OUTPUT_BEARING_NODE_STATUSES = OUTPUT_BEARING_NODE_STATUSES;
|
|
17535
17772
|
exports.OUTPUT_FIELD_MAP = OUTPUT_FIELD_MAP;
|
|
17536
17773
|
exports.OUTPUT_FORMATS = OUTPUT_FORMATS;
|
|
17537
17774
|
exports.OVERLAY_ANCHORS = OVERLAY_ANCHORS;
|
|
@@ -17624,9 +17861,11 @@ exports.REPEATABLE_NODE_TYPES = REPEATABLE_NODE_TYPES;
|
|
|
17624
17861
|
exports.REPEAT_PLACEHOLDER = REPEAT_PLACEHOLDER;
|
|
17625
17862
|
exports.REPLICATE_LIP_SYNC_PROVIDERS = REPLICATE_LIP_SYNC_PROVIDERS;
|
|
17626
17863
|
exports.RESERVED_TEMPLATE_VARS = RESERVED_TEMPLATE_VARS;
|
|
17864
|
+
exports.SCENE3D_ASSERTION_RESTORED_CODE = SCENE3D_ASSERTION_RESTORED_CODE;
|
|
17627
17865
|
exports.SCENE3D_ASSET_KINDS = SCENE3D_ASSET_KINDS;
|
|
17628
17866
|
exports.SCENE3D_ASSET_ROLES = SCENE3D_ASSET_ROLES;
|
|
17629
17867
|
exports.SCENE3D_ASSET_ROLE_KINDS = SCENE3D_ASSET_ROLE_KINDS;
|
|
17868
|
+
exports.SCENE3D_AUTHORING_ASSUMPTION_CODE = SCENE3D_AUTHORING_ASSUMPTION_CODE;
|
|
17630
17869
|
exports.SCENE3D_AUTHORING_ENGINES = SCENE3D_AUTHORING_ENGINES;
|
|
17631
17870
|
exports.SCENE3D_BASIC_ENGINE = SCENE3D_BASIC_ENGINE;
|
|
17632
17871
|
exports.SCENE3D_BASIC_SCHEMA_VERSION = SCENE3D_BASIC_SCHEMA_VERSION;
|
|
@@ -17651,11 +17890,15 @@ exports.SCENE3D_PLAN_FIELD = SCENE3D_PLAN_FIELD;
|
|
|
17651
17890
|
exports.SCENE3D_PLAN_TYPE = SCENE3D_PLAN_TYPE;
|
|
17652
17891
|
exports.SCENE3D_PRIMITIVES = SCENE3D_PRIMITIVES;
|
|
17653
17892
|
exports.SCENE3D_PRIMITIVE_MATERIAL_ROLE = SCENE3D_PRIMITIVE_MATERIAL_ROLE;
|
|
17893
|
+
exports.SCENE3D_REMEDY_AUTO_APPLIED_CODE = SCENE3D_REMEDY_AUTO_APPLIED_CODE;
|
|
17654
17894
|
exports.SCENE3D_RENDERER_ASSET_KINDS = SCENE3D_RENDERER_ASSET_KINDS;
|
|
17655
17895
|
exports.SCENE3D_RENDER_BASE_MAX_PX = SCENE3D_RENDER_BASE_MAX_PX;
|
|
17656
17896
|
exports.SCENE3D_RENDER_TIERS = SCENE3D_RENDER_TIERS;
|
|
17657
17897
|
exports.SCENE3D_RENDER_TIER_MULTIPLIERS = SCENE3D_RENDER_TIER_MULTIPLIERS;
|
|
17658
17898
|
exports.SCENE3D_RENDER_XLARGE_MIN_AREA_PX = SCENE3D_RENDER_XLARGE_MIN_AREA_PX;
|
|
17899
|
+
exports.SCENE3D_REVIEW_REFUSED_CODE = SCENE3D_REVIEW_REFUSED_CODE;
|
|
17900
|
+
exports.SCENE3D_REVIEW_UNAVAILABLE_CODE = SCENE3D_REVIEW_UNAVAILABLE_CODE;
|
|
17901
|
+
exports.SCENE3D_REVIEW_UNAVAILABLE_REASONS = SCENE3D_REVIEW_UNAVAILABLE_REASONS;
|
|
17659
17902
|
exports.SCENE3D_SCHEMA_VERSION = SCENE3D_SCHEMA_VERSION;
|
|
17660
17903
|
exports.SCENE3D_SCHEMA_VERSION_V2 = SCENE3D_SCHEMA_VERSION_V2;
|
|
17661
17904
|
exports.SCENE3D_SUPPORTED_SCHEMA_VERSIONS = SCENE3D_SUPPORTED_SCHEMA_VERSIONS;
|
|
@@ -17704,14 +17947,18 @@ exports.STUDIO_DEPENDENT_FRAMES_CAPABILITY = STUDIO_DEPENDENT_FRAMES_CAPABILITY;
|
|
|
17704
17947
|
exports.STUDIO_SHOT_TRANSIENT_KEYS = STUDIO_SHOT_TRANSIENT_KEYS;
|
|
17705
17948
|
exports.STUDIO_TRANSIENT_KEYS = STUDIO_TRANSIENT_KEYS;
|
|
17706
17949
|
exports.SUBMISSION_STATUSES = SUBMISSION_STATUSES;
|
|
17950
|
+
exports.SUNO_ACTIVE_MODELS = SUNO_ACTIVE_MODELS;
|
|
17707
17951
|
exports.SUNO_ADD_TRACK_MODELS = SUNO_ADD_TRACK_MODELS;
|
|
17952
|
+
exports.SUNO_DURATION_MODELS = SUNO_DURATION_MODELS;
|
|
17708
17953
|
exports.SUNO_FIELD_HANDLE_FIELDS = SUNO_FIELD_HANDLE_FIELDS;
|
|
17709
17954
|
exports.SUNO_HARD_CEILING = SUNO_HARD_CEILING;
|
|
17955
|
+
exports.SUNO_LEGACY_MODELS = SUNO_LEGACY_MODELS;
|
|
17710
17956
|
exports.SUNO_MODELS = SUNO_MODELS;
|
|
17711
17957
|
exports.SUNO_SELECT_OPERATIONS = SUNO_SELECT_OPERATIONS;
|
|
17712
17958
|
exports.SUNO_TEXT_MAX = SUNO_TEXT_MAX;
|
|
17713
17959
|
exports.SUNO_TITLE_MAX = SUNO_TITLE_MAX;
|
|
17714
17960
|
exports.SUNO_TRACK_SOURCE_TYPES = SUNO_TRACK_SOURCE_TYPES;
|
|
17961
|
+
exports.SUNO_VERSION_CREDIT_KEYS = SUNO_VERSION_CREDIT_KEYS;
|
|
17715
17962
|
exports.SUNO_VERSION_PRICED_OPERATIONS = SUNO_VERSION_PRICED_OPERATIONS;
|
|
17716
17963
|
exports.SUPPORTED_FONT_NAMES = SUPPORTED_FONT_NAMES;
|
|
17717
17964
|
exports.SURROUND_DIRECTIONS = SURROUND_DIRECTIONS;
|
|
@@ -17732,6 +17979,7 @@ exports.StyleDirectivesSchema = StyleDirectivesSchema;
|
|
|
17732
17979
|
exports.SubGateNameSchema = SubGateNameSchema;
|
|
17733
17980
|
exports.T2I_TO_I2I_VARIANT = T2I_TO_I2I_VARIANT;
|
|
17734
17981
|
exports.TASK_CHAINED_EDIT_PROVIDERS = TASK_CHAINED_EDIT_PROVIDERS;
|
|
17982
|
+
exports.TEMPLATE_CATEGORIES = TEMPLATE_CATEGORIES;
|
|
17735
17983
|
exports.TEXT_TO_AUDIO_PROVIDERS = TEXT_TO_AUDIO_PROVIDERS;
|
|
17736
17984
|
exports.TEXT_TO_VIDEO_PROVIDERS = TEXT_TO_VIDEO_PROVIDERS;
|
|
17737
17985
|
exports.TIER_MAX_PIPELINE_COST_CREDITS = TIER_MAX_PIPELINE_COST_CREDITS;
|
|
@@ -17794,6 +18042,7 @@ exports.VIDEO_GEN_PROVIDERS = VIDEO_GEN_PROVIDERS;
|
|
|
17794
18042
|
exports.VIDEO_INPUT_LIP_SYNC_PROVIDERS = VIDEO_INPUT_LIP_SYNC_PROVIDERS;
|
|
17795
18043
|
exports.VIDEO_MODEL_CAPS = VIDEO_MODEL_CAPS;
|
|
17796
18044
|
exports.VIDEO_MODE_ALIASES = VIDEO_MODE_ALIASES;
|
|
18045
|
+
exports.VIDEO_ONLY_PARAMETER_NODE_TYPES = VIDEO_ONLY_PARAMETER_NODE_TYPES;
|
|
17797
18046
|
exports.VIDEO_PRODUCER_TYPES = VIDEO_PRODUCER_TYPES;
|
|
17798
18047
|
exports.VIDEO_PROMPT_MAX = VIDEO_PROMPT_MAX;
|
|
17799
18048
|
exports.VIDEO_PROVIDERS_REQUIRING_IMAGE = VIDEO_PROVIDERS_REQUIRING_IMAGE;
|
|
@@ -17987,6 +18236,7 @@ exports.getVideoAudioCapability = getVideoAudioCapability;
|
|
|
17987
18236
|
exports.getWeapon = getWeapon;
|
|
17988
18237
|
exports.getWeaponLabel = getWeaponLabel;
|
|
17989
18238
|
exports.groupByFamily = groupByFamily;
|
|
18239
|
+
exports.groupByKindAndFamily = groupByKindAndFamily;
|
|
17990
18240
|
exports.groupHandleId = groupHandleId;
|
|
17991
18241
|
exports.groupLlmModelsByVendor = groupLlmModelsByVendor;
|
|
17992
18242
|
exports.hasContiguousSegmentDurations = hasContiguousSegmentDurations;
|
|
@@ -18010,6 +18260,7 @@ exports.isGvpSupportedProvider = isGvpSupportedProvider;
|
|
|
18010
18260
|
exports.isHandleInputWired = isHandleInputWired;
|
|
18011
18261
|
exports.isKineticCaptionStyle = isKineticCaptionStyle;
|
|
18012
18262
|
exports.isKnownScene3DEngine = isKnownScene3DEngine;
|
|
18263
|
+
exports.isLegacySunoModel = isLegacySunoModel;
|
|
18013
18264
|
exports.isLocationUsageMode = isLocationUsageMode;
|
|
18014
18265
|
exports.isMinimaxH3Provider = isMinimaxH3Provider;
|
|
18015
18266
|
exports.isObjectAspectRatio = isObjectAspectRatio;
|
|
@@ -18026,9 +18277,11 @@ exports.isScene3DHttpUrl = isScene3DHttpUrl;
|
|
|
18026
18277
|
exports.isScene3DPlan = isScene3DPlan;
|
|
18027
18278
|
exports.isScene3DPlanV1 = isScene3DPlanV1;
|
|
18028
18279
|
exports.isScene3DPlanV2 = isScene3DPlanV2;
|
|
18280
|
+
exports.isScene3DReviewUnavailableReason = isScene3DReviewUnavailableReason;
|
|
18029
18281
|
exports.isScene3DSchemaVersionSupported = isScene3DSchemaVersionSupported;
|
|
18030
18282
|
exports.isScraperActor = isScraperActor;
|
|
18031
18283
|
exports.isSeedance2Provider = isSeedance2Provider;
|
|
18284
|
+
exports.isTemplateCategory = isTemplateCategory;
|
|
18032
18285
|
exports.isTiltDirection = isTiltDirection;
|
|
18033
18286
|
exports.isUsageMode = isUsageMode;
|
|
18034
18287
|
exports.isVeoProvider = isVeoProvider;
|
|
@@ -18062,12 +18315,14 @@ exports.modelsForInputMode = modelsForInputMode;
|
|
|
18062
18315
|
exports.modelsWithFeature = modelsWithFeature;
|
|
18063
18316
|
exports.motionGraphicsFeature = motionGraphicsFeature;
|
|
18064
18317
|
exports.newScene3DRevisionId = newScene3DRevisionId;
|
|
18318
|
+
exports.nodeStateMayCarryOutput = nodeStateMayCarryOutput;
|
|
18065
18319
|
exports.normalizeLottieLayers = normalizeLottieLayers;
|
|
18066
18320
|
exports.normalizeMinimaxH3Resolution = normalizeMinimaxH3Resolution;
|
|
18067
18321
|
exports.normalizeModelInput = normalizeModelInput;
|
|
18068
18322
|
exports.normalizeNodeModelParams = normalizeNodeModelParams;
|
|
18069
18323
|
exports.normalizePinterestUrl = normalizePinterestUrl;
|
|
18070
18324
|
exports.normalizeRoleSlug = normalizeRoleSlug;
|
|
18325
|
+
exports.normalizeTemplateCategory = normalizeTemplateCategory;
|
|
18071
18326
|
exports.normalizeVideoRequestParams = normalizeVideoRequestParams;
|
|
18072
18327
|
exports.normalizeWan3Resolution = normalizeWan3Resolution;
|
|
18073
18328
|
exports.orderedLlmModels = orderedLlmModels;
|
|
@@ -18105,12 +18360,14 @@ exports.presentTypes = presentTypes;
|
|
|
18105
18360
|
exports.presetApplyClearKeys = presetApplyClearKeys;
|
|
18106
18361
|
exports.presetDataMatches = presetDataMatches;
|
|
18107
18362
|
exports.presetEntries = presetEntries;
|
|
18363
|
+
exports.pricedOutputDurationSec = pricedOutputDurationSec;
|
|
18108
18364
|
exports.pricedVideoSelection = pricedVideoSelection;
|
|
18109
18365
|
exports.pro3DRenderCoreOutputSchema = pro3DRenderCoreOutputSchema;
|
|
18110
18366
|
exports.pro3DRenderFrameUnit = pro3DRenderFrameUnit;
|
|
18111
18367
|
exports.pro3DRenderJobOutputSchema = pro3DRenderJobOutputSchema;
|
|
18112
18368
|
exports.pro3DRenderProducedSchemaVersion = pro3DRenderProducedSchemaVersion;
|
|
18113
18369
|
exports.pro3DRenderQuoteSchema = pro3DRenderQuoteSchema;
|
|
18370
|
+
exports.pro3DRenderReviewVerdictSchema = pro3DRenderReviewVerdictSchema;
|
|
18114
18371
|
exports.pro3DRenderShotStillSchema = pro3DRenderShotStillSchema;
|
|
18115
18372
|
exports.pro3DRenderShotStills = pro3DRenderShotStills;
|
|
18116
18373
|
exports.pro3DRenderTimingOverrides = pro3DRenderTimingOverrides;
|
|
@@ -18161,6 +18418,7 @@ exports.resolveSlideshowTransition = resolveSlideshowTransition;
|
|
|
18161
18418
|
exports.resolveSourceThroughConnectedList = resolveSourceThroughConnectedList;
|
|
18162
18419
|
exports.resolveStoredTier = resolveStoredTier;
|
|
18163
18420
|
exports.resolveSwitchXCreditId = resolveSwitchXCreditId;
|
|
18421
|
+
exports.resolveTemplateCategory = resolveTemplateCategory;
|
|
18164
18422
|
exports.resolveTopazUpscale = resolveTopazUpscale;
|
|
18165
18423
|
exports.resolveVideoAnalysisModel = resolveVideoAnalysisModel;
|
|
18166
18424
|
exports.resolveVideoModeForInputs = resolveVideoModeForInputs;
|
|
@@ -18233,6 +18491,8 @@ exports.scene3DProvenanceSchema = scene3DProvenanceSchema;
|
|
|
18233
18491
|
exports.scene3DReferenceSchema = scene3DReferenceSchema;
|
|
18234
18492
|
exports.scene3DRenderTier = scene3DRenderTier;
|
|
18235
18493
|
exports.scene3DRenderTierCredits = scene3DRenderTierCredits;
|
|
18494
|
+
exports.scene3DReviewNote = scene3DReviewNote;
|
|
18495
|
+
exports.scene3DReviewVerdictOf = scene3DReviewVerdictOf;
|
|
18236
18496
|
exports.scene3DSampleForFrame = scene3DSampleForFrame;
|
|
18237
18497
|
exports.scene3DSha256Schema = scene3DSha256Schema;
|
|
18238
18498
|
exports.scene3DShotForFrame = scene3DShotForFrame;
|
|
@@ -18275,10 +18535,12 @@ exports.stripStudioTransientSettings = stripStudioTransientSettings;
|
|
|
18275
18535
|
exports.stripTransientRuntimeData = stripTransientRuntimeData;
|
|
18276
18536
|
exports.summarizeScene3DOperations = summarizeScene3DOperations;
|
|
18277
18537
|
exports.sunoCreditType = sunoCreditType;
|
|
18538
|
+
exports.sunoModelHonoursDuration = sunoModelHonoursDuration;
|
|
18278
18539
|
exports.supportedDefaultDimensions = supportedDefaultDimensions;
|
|
18279
18540
|
exports.supportsAdvancedMode = supportsAdvancedMode;
|
|
18280
18541
|
exports.supportsEndAnchor = supportsEndAnchor;
|
|
18281
18542
|
exports.supportsExtendRender = supportsExtendRender;
|
|
18543
|
+
exports.templateCategoryStoredValues = templateCategoryStoredValues;
|
|
18282
18544
|
exports.toConnectedReference = toConnectedReference;
|
|
18283
18545
|
exports.toConnectedReferences = toConnectedReferences;
|
|
18284
18546
|
exports.togglePick = togglePick;
|