@nodaro/shared 3.9.0 → 3.11.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 +448 -51
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +959 -30
- package/dist/index.d.ts +959 -30
- package/dist/index.js +410 -52
- 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 +2 -2
- package/src/__tests__/parameter-node-value.test.ts +47 -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__/template-categories.test.ts +45 -0
- package/src/__tests__/video-analysis.test.ts +15 -0
- package/src/__tests__/video-frame-fit.test.ts +189 -0
- package/src/__tests__/video-ref-limits.test.ts +11 -2
- package/src/catalog-projection.ts +3 -0
- package/src/character-motion-metadata.ts +19 -0
- package/src/credit-identifiers.ts +44 -9
- package/src/i18n/character-motion.ar.ts +1082 -0
- package/src/i18n/character-motion.de.ts +1082 -0
- package/src/i18n/character-motion.es.ts +1082 -0
- package/src/i18n/character-motion.fr.ts +1082 -0
- package/src/i18n/character-motion.he.ts +1082 -0
- package/src/i18n/character-motion.hi.ts +1082 -0
- package/src/i18n/character-motion.ja.ts +1082 -0
- package/src/i18n/character-motion.ko.ts +1082 -0
- package/src/i18n/character-motion.pt-BR.ts +1082 -0
- package/src/i18n/character-motion.ru.ts +1082 -0
- package/src/i18n/character-motion.zh-CN.ts +1082 -0
- package/src/i18n/types.ts +1 -0
- package/src/index.ts +26 -0
- package/src/model-catalog.ts +49 -32
- package/src/model-constants.ts +50 -11
- package/src/node-execution-state.ts +95 -0
- package/src/parameter-node-value.ts +59 -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/src/video-analysis.ts +15 -0
- package/src/video-frame-fit.ts +228 -0
- package/src/video-output-canvas.ts +119 -0
package/dist/index.cjs
CHANGED
|
@@ -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",
|
|
@@ -2475,6 +2470,10 @@ function groupByFamily(entries) {
|
|
|
2475
2470
|
}
|
|
2476
2471
|
return Array.from(groups.entries()).map(([family, models]) => ({ family, models }));
|
|
2477
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
|
+
}
|
|
2478
2477
|
function getModel(id) {
|
|
2479
2478
|
return MODEL_CATALOG[id];
|
|
2480
2479
|
}
|
|
@@ -2915,16 +2914,23 @@ var MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER = {
|
|
|
2915
2914
|
// docs.kie.ai/market/seedream-5-lite-image-to-image (NB: t2i sibling is 1000)
|
|
2916
2915
|
"qwen": 3e3,
|
|
2917
2916
|
// docs.kie.ai/market/qwen/text-to-image
|
|
2918
|
-
"qwen-edit": 2e3
|
|
2917
|
+
"qwen-edit": 2e3,
|
|
2919
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
|
|
2920
2926
|
// verified == 5000 default (no entry needed): imagen4(-fast/-ultra), nano-banana,
|
|
2921
2927
|
// nano-banana-edit, flux, flux-flex, gpt-image-2, ideogram-v3/-edit/-remix,
|
|
2922
|
-
//
|
|
2928
|
+
// grok, qwen-i2i, seedream-5-pro, seedream-5-pro-i2i
|
|
2923
2929
|
// (docs.kie.ai/market/seedream/5-pro-text-to-image + 5-pro-image-to-image).
|
|
2924
2930
|
// grok-i2i: doc states 390000 (78× its t2i sibling) — treated as a KIE schema
|
|
2925
2931
|
// typo and left at the 5000 default per the sanity-cap decision.
|
|
2926
2932
|
// UNVERIFIED (no limit stated in schema) → 5000 default: flux-kontext(-max)
|
|
2927
|
-
// gpt-image, gpt-image-i2i, flux-i2i, flux-pro-i2i
|
|
2933
|
+
// gpt-image, gpt-image-i2i, flux-i2i, flux-pro-i2i.
|
|
2928
2934
|
};
|
|
2929
2935
|
function getMaxImagePromptChars(provider) {
|
|
2930
2936
|
return provider && MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER[provider] || IMAGE_PROMPT_MAX;
|
|
@@ -3118,7 +3124,6 @@ var MODELS_WITH_REFERENCE_IMAGE_SUPPORT = /* @__PURE__ */ new Set([
|
|
|
3118
3124
|
"flux-kontext-max",
|
|
3119
3125
|
"ideogram-edit",
|
|
3120
3126
|
"ideogram-remix",
|
|
3121
|
-
"ideogram-reframe",
|
|
3122
3127
|
"qwen-i2i",
|
|
3123
3128
|
"qwen-edit",
|
|
3124
3129
|
"seedream-edit",
|
|
@@ -3179,7 +3184,6 @@ var REF_IMAGE_MAX_LIMITS = {
|
|
|
3179
3184
|
"flux-kontext-max": 1,
|
|
3180
3185
|
"ideogram-edit": 1,
|
|
3181
3186
|
"ideogram-remix": 1,
|
|
3182
|
-
"ideogram-reframe": 1,
|
|
3183
3187
|
"qwen-i2i": 1,
|
|
3184
3188
|
"qwen-edit": 1,
|
|
3185
3189
|
"grok-i2i": 1,
|
|
@@ -3224,7 +3228,6 @@ var VARIABLE_PRICING_MODELS = {
|
|
|
3224
3228
|
"topaz-image-upscale": "resolution",
|
|
3225
3229
|
"ideogram-edit": "rendering-speed",
|
|
3226
3230
|
"ideogram-remix": "rendering-speed",
|
|
3227
|
-
"ideogram-reframe": "rendering-speed",
|
|
3228
3231
|
"ideogram-v3": "rendering-speed",
|
|
3229
3232
|
"wan-2.7": "resolution",
|
|
3230
3233
|
"wan-2.7-pro": "resolution"
|
|
@@ -3242,7 +3245,7 @@ var RESOLUTION_2K_4K_TIERED_PROVIDERS = /* @__PURE__ */ new Set([
|
|
|
3242
3245
|
"wan-2.7",
|
|
3243
3246
|
"wan-2.7-pro"
|
|
3244
3247
|
]);
|
|
3245
|
-
var IDEOGRAM_PROVIDERS = /* @__PURE__ */ new Set(["ideogram-edit", "ideogram-remix", "ideogram-
|
|
3248
|
+
var IDEOGRAM_PROVIDERS = /* @__PURE__ */ new Set(["ideogram-edit", "ideogram-remix", "ideogram-v3"]);
|
|
3246
3249
|
var IMAGE_GEN_PROVIDERS = [
|
|
3247
3250
|
"nano-banana",
|
|
3248
3251
|
"flux",
|
|
@@ -3289,7 +3292,6 @@ var IMAGE_I2I_PROVIDERS = [
|
|
|
3289
3292
|
"grok-2-i2i",
|
|
3290
3293
|
"ideogram-edit",
|
|
3291
3294
|
"ideogram-remix",
|
|
3292
|
-
"ideogram-reframe",
|
|
3293
3295
|
"qwen-i2i",
|
|
3294
3296
|
"qwen-edit",
|
|
3295
3297
|
"seedream-edit",
|
|
@@ -3683,7 +3685,6 @@ var I2I_STRENGTH_SUPPORT = {
|
|
|
3683
3685
|
};
|
|
3684
3686
|
var SEED_SUPPORT = /* @__PURE__ */ new Set([
|
|
3685
3687
|
"ideogram-remix",
|
|
3686
|
-
"ideogram-reframe",
|
|
3687
3688
|
"ideogram-v3",
|
|
3688
3689
|
"qwen",
|
|
3689
3690
|
"qwen-i2i",
|
|
@@ -3699,7 +3700,6 @@ var SEED_SUPPORT = /* @__PURE__ */ new Set([
|
|
|
3699
3700
|
]);
|
|
3700
3701
|
var RENDERING_SPEED_SUPPORT = /* @__PURE__ */ new Set([
|
|
3701
3702
|
"ideogram-remix",
|
|
3702
|
-
"ideogram-reframe",
|
|
3703
3703
|
"ideogram-v3"
|
|
3704
3704
|
]);
|
|
3705
3705
|
var GUIDANCE_SCALE_SUPPORT = {
|
|
@@ -3960,8 +3960,13 @@ var VIDEO_REF_LIMITS_BY_PROVIDER = {
|
|
|
3960
3960
|
// backend kie/models.ts maxRefImages: 7
|
|
3961
3961
|
"happyhorse-ref2v": { images: 9 },
|
|
3962
3962
|
// backend kie/models.ts maxRefImages: 9
|
|
3963
|
-
// VEO 3.x — REFERENCE_2_VIDEO path caps refs at 3 (kie/video.ts
|
|
3964
|
-
|
|
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.
|
|
3965
3970
|
"veo3.1": { images: 3 },
|
|
3966
3971
|
"veo3_lite": { images: 3 }
|
|
3967
3972
|
// NOTE: wan-i2v / hailuo-2.3[-pro] / bytedance-pro[-fast] / grok-imagine-video-1.5
|
|
@@ -4189,8 +4194,23 @@ var VIDEO_VARIABLE_PRICING = {
|
|
|
4189
4194
|
"wan-3-prime": "duration+resolution"
|
|
4190
4195
|
};
|
|
4191
4196
|
var PRICING_DEFAULT_DURATION_SEC = {
|
|
4192
|
-
"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
|
|
4193
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
|
+
}
|
|
4194
4214
|
var PRICING_DEFAULT_RESOLUTION = {
|
|
4195
4215
|
// KIE renders 720p when `resolution` is omitted (kie/models.ts extraParams).
|
|
4196
4216
|
"seedance-2-5": "720p",
|
|
@@ -4882,10 +4902,16 @@ function expandExtraRefsToConnectedReferences(extras, lookupCharacterContext) {
|
|
|
4882
4902
|
}
|
|
4883
4903
|
|
|
4884
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
|
+
}
|
|
4885
4912
|
function buildCreditModelIdentifier(provider, quality, resolution, renderingSpeed, targetResolution, referenceImageCount) {
|
|
4886
4913
|
if (isFlux2Model(provider)) {
|
|
4887
|
-
|
|
4888
|
-
return `${provider}:${mp}MP:${Math.min(referenceImageCount ?? 0, 8)}ref`;
|
|
4914
|
+
return `${provider}:${flux2MegapixelTier(provider, resolution)}MP:${Math.min(referenceImageCount ?? 0, 8)}ref`;
|
|
4889
4915
|
}
|
|
4890
4916
|
if (HIGH_QUALITY_PROVIDERS.has(provider) && quality === "high") {
|
|
4891
4917
|
return `${provider}:high`;
|
|
@@ -4991,9 +5017,7 @@ function buildVideoCreditModelIdentifier(provider, duration, sound, nodeType, mo
|
|
|
4991
5017
|
if (!DURATION_PRICED_PROVIDERS.has(effectiveProvider)) {
|
|
4992
5018
|
return effectiveProvider;
|
|
4993
5019
|
}
|
|
4994
|
-
const
|
|
4995
|
-
const parsed = typeof duration === "string" ? parseInt(duration, 10) : duration ?? durationFallback;
|
|
4996
|
-
const durationSec = Number.isNaN(parsed) ? durationFallback : parsed;
|
|
5020
|
+
const durationSec = pricedOutputDurationSec(effectiveProvider, duration);
|
|
4997
5021
|
const tiers = VIDEO_DURATION_TIERS[effectiveProvider];
|
|
4998
5022
|
if (!tiers) return effectiveProvider;
|
|
4999
5023
|
const tier = tiers.find((t2) => durationSec <= t2.maxSeconds) ?? tiers[tiers.length - 1];
|
|
@@ -5713,6 +5737,7 @@ var INPUT_FIELD_MAP = {
|
|
|
5713
5737
|
"post-process-effects": { key: "postProcess", type: "select" },
|
|
5714
5738
|
"action-fx": { key: "actionFx", type: "select" },
|
|
5715
5739
|
"character-fx": { key: "characterFx", type: "select" },
|
|
5740
|
+
"character-motion": { key: "characterMotion", type: "select" },
|
|
5716
5741
|
"transition": { key: "transition", type: "select" },
|
|
5717
5742
|
"loop-subject": { key: "loopSubject", type: "select" },
|
|
5718
5743
|
// --- Multi-dimension pickers: representative (first) field. Overriding only
|
|
@@ -8191,6 +8216,7 @@ var PARAMETER_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
|
8191
8216
|
"post-process-effects",
|
|
8192
8217
|
"action-fx",
|
|
8193
8218
|
"character-fx",
|
|
8219
|
+
"character-motion",
|
|
8194
8220
|
"transition",
|
|
8195
8221
|
"loop-subject",
|
|
8196
8222
|
"scene-count",
|
|
@@ -8208,6 +8234,19 @@ var HINT_EXEMPT_PARAMETER_TYPES = /* @__PURE__ */ new Set([
|
|
|
8208
8234
|
"duration",
|
|
8209
8235
|
"aspect-ratio"
|
|
8210
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
|
+
"transition",
|
|
8248
|
+
"character-fx"
|
|
8249
|
+
]);
|
|
8211
8250
|
var registeredPersonPackFields = [];
|
|
8212
8251
|
function setRegisteredPersonPackFields(fields) {
|
|
8213
8252
|
registeredPersonPackFields = [...fields];
|
|
@@ -8250,6 +8289,8 @@ function getParameterValue(data, nodeType) {
|
|
|
8250
8289
|
return trim(data.actionFx);
|
|
8251
8290
|
case "character-fx":
|
|
8252
8291
|
return trim(data.characterFx);
|
|
8292
|
+
case "character-motion":
|
|
8293
|
+
return trim(data.characterMotion);
|
|
8253
8294
|
case "transition":
|
|
8254
8295
|
return trim(data.transition);
|
|
8255
8296
|
case "style":
|
|
@@ -13387,6 +13428,12 @@ var VOICE_CHANGER_MODEL_IDS = VOICE_CHANGER_MODELS.map(
|
|
|
13387
13428
|
);
|
|
13388
13429
|
var DEFAULT_VOICE_CHANGER_MODEL = "eleven_multilingual_sts_v2";
|
|
13389
13430
|
|
|
13431
|
+
// src/node-execution-state.ts
|
|
13432
|
+
var OUTPUT_BEARING_NODE_STATUSES = /* @__PURE__ */ new Set(["completed", "failed"]);
|
|
13433
|
+
function nodeStateMayCarryOutput(status) {
|
|
13434
|
+
return status !== void 0 && OUTPUT_BEARING_NODE_STATUSES.has(status);
|
|
13435
|
+
}
|
|
13436
|
+
|
|
13390
13437
|
// src/normalize-node-params.ts
|
|
13391
13438
|
var MODEL_PARAM_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
13392
13439
|
"generate-image",
|
|
@@ -14034,6 +14081,45 @@ function buildBoardPrompt(templateId, ctx) {
|
|
|
14034
14081
|
return tpl.build(ctx);
|
|
14035
14082
|
}
|
|
14036
14083
|
|
|
14084
|
+
// src/template-categories.ts
|
|
14085
|
+
var TEMPLATE_CATEGORIES = [
|
|
14086
|
+
"product-imagery",
|
|
14087
|
+
"static-ads",
|
|
14088
|
+
"user-generated-content",
|
|
14089
|
+
"video-ads",
|
|
14090
|
+
"brand-assets",
|
|
14091
|
+
"automations",
|
|
14092
|
+
"campaign-concepts",
|
|
14093
|
+
"social-creatives"
|
|
14094
|
+
];
|
|
14095
|
+
var DEFAULT_TEMPLATE_CATEGORY = "automations";
|
|
14096
|
+
var LEGACY_TEMPLATE_CATEGORIES = {
|
|
14097
|
+
"image-generation": "product-imagery",
|
|
14098
|
+
"video-production": "video-ads",
|
|
14099
|
+
"audio-music": "social-creatives",
|
|
14100
|
+
"content-writing": "campaign-concepts",
|
|
14101
|
+
"social-media": "social-creatives",
|
|
14102
|
+
"data-processing": "automations",
|
|
14103
|
+
"multi-step": "automations",
|
|
14104
|
+
other: "automations"
|
|
14105
|
+
};
|
|
14106
|
+
var CURRENT = new Set(TEMPLATE_CATEGORIES);
|
|
14107
|
+
function isTemplateCategory(value) {
|
|
14108
|
+
return typeof value === "string" && CURRENT.has(value);
|
|
14109
|
+
}
|
|
14110
|
+
function resolveTemplateCategory(value) {
|
|
14111
|
+
if (value == null) return void 0;
|
|
14112
|
+
if (isTemplateCategory(value)) return value;
|
|
14113
|
+
return LEGACY_TEMPLATE_CATEGORIES[value];
|
|
14114
|
+
}
|
|
14115
|
+
function normalizeTemplateCategory(value) {
|
|
14116
|
+
return resolveTemplateCategory(value) ?? DEFAULT_TEMPLATE_CATEGORY;
|
|
14117
|
+
}
|
|
14118
|
+
function templateCategoryStoredValues(category) {
|
|
14119
|
+
const legacy = Object.keys(LEGACY_TEMPLATE_CATEGORIES).filter((value) => LEGACY_TEMPLATE_CATEGORIES[value] === category);
|
|
14120
|
+
return [category, ...legacy];
|
|
14121
|
+
}
|
|
14122
|
+
|
|
14037
14123
|
// src/model-tree.ts
|
|
14038
14124
|
var ENUM_TARGETS = [
|
|
14039
14125
|
[IMAGE_GEN_PROVIDERS, "generate-image"],
|
|
@@ -14605,7 +14691,21 @@ var entitySlotSchema = zod.z.object({
|
|
|
14605
14691
|
*/
|
|
14606
14692
|
refRejectedReason: zod.z.string().optional(),
|
|
14607
14693
|
/** NON-default looks only; present only when at least one exists. */
|
|
14608
|
-
variations: zod.z.array(slotVariationSchema).max(VIDEO_ANALYSIS_MAX_VARIATIONS).optional()
|
|
14694
|
+
variations: zod.z.array(slotVariationSchema).max(VIDEO_ANALYSIS_MAX_VARIATIONS).optional(),
|
|
14695
|
+
/**
|
|
14696
|
+
* WHOSE THIS OBJECT IS (2026-09-17). An object slot that is worn, held,
|
|
14697
|
+
* carried, driven or ridden by a cast person or creature names that slot
|
|
14698
|
+
* here, with the relation as a short passive phrase ending in "by" ("worn
|
|
14699
|
+
* by", "held by", "driven by"). The link says the object slot IS the one on
|
|
14700
|
+
* that person — not a second one: a recast that saw "Man in Blue Silk
|
|
14701
|
+
* Shirt" AND "Blue Silk Shirt" as unrelated slots rendered two shirts.
|
|
14702
|
+
* Object slots only; a free-standing prop, the product on a table, a place
|
|
14703
|
+
* or a person never carries it. Optional/additive: producers may omit it.
|
|
14704
|
+
*/
|
|
14705
|
+
owner: zod.z.object({
|
|
14706
|
+
slotId: zod.z.string().min(1).regex(/^[a-z0-9-]+$/),
|
|
14707
|
+
relation: zod.z.string().min(1)
|
|
14708
|
+
}).optional()
|
|
14609
14709
|
});
|
|
14610
14710
|
var VIDEO_ANALYSIS_AUDIO_MODES = ["speech", "music", "sfx", "ambience"];
|
|
14611
14711
|
var audioLayerSchema = zod.z.object({
|
|
@@ -16837,6 +16937,56 @@ function parseScene3DCameraTrackJson(text) {
|
|
|
16837
16937
|
}
|
|
16838
16938
|
return { ok: true, value: parsed.data };
|
|
16839
16939
|
}
|
|
16940
|
+
|
|
16941
|
+
// src/scene3d-delivery-notes.ts
|
|
16942
|
+
var SCENE3D_AUTHORING_ASSUMPTION_CODE = "SCENE_AUTHORING_ASSUMPTION";
|
|
16943
|
+
var SCENE3D_REVIEW_REFUSED_CODE = "SCENE_REVIEW_REFUSED";
|
|
16944
|
+
var SCENE3D_REVIEW_UNAVAILABLE_CODE = "SCENE_REVIEW_UNAVAILABLE";
|
|
16945
|
+
var SCENE3D_REMEDY_AUTO_APPLIED_CODE = "REMEDY_AUTO_APPLIED";
|
|
16946
|
+
var SCENE3D_ASSERTION_RESTORED_CODE = "ASSERTION_RESTORED";
|
|
16947
|
+
var SCENE3D_REVIEW_UNAVAILABLE_REASONS = ["provider", "unusable"];
|
|
16948
|
+
function isScene3DReviewUnavailableReason(value) {
|
|
16949
|
+
return SCENE3D_REVIEW_UNAVAILABLE_REASONS.includes(value);
|
|
16950
|
+
}
|
|
16951
|
+
function scene3DReviewVerdictOf(output) {
|
|
16952
|
+
const review = output?.metadata?.review;
|
|
16953
|
+
if (typeof review !== "object" || review === null) return void 0;
|
|
16954
|
+
const candidate = review;
|
|
16955
|
+
if (candidate.verdict !== "refused" && candidate.verdict !== "unavailable") return void 0;
|
|
16956
|
+
const objections = (Array.isArray(candidate.objections) ? candidate.objections : []).flatMap((entry) => {
|
|
16957
|
+
if (typeof entry !== "object" || entry === null) return [];
|
|
16958
|
+
const objection = entry;
|
|
16959
|
+
if (typeof objection.what !== "string" || !objection.what) return [];
|
|
16960
|
+
const frames = (Array.isArray(objection.frames) ? objection.frames : []).filter((frame) => Number.isSafeInteger(frame) && frame >= 0);
|
|
16961
|
+
return [{
|
|
16962
|
+
category: typeof objection.category === "string" && objection.category ? objection.category : "unsupported",
|
|
16963
|
+
what: objection.what,
|
|
16964
|
+
...typeof objection.correction === "string" && objection.correction ? { correction: objection.correction } : {},
|
|
16965
|
+
frames
|
|
16966
|
+
}];
|
|
16967
|
+
});
|
|
16968
|
+
const findings = {
|
|
16969
|
+
objections,
|
|
16970
|
+
...typeof candidate.observed === "string" && candidate.observed ? { observed: candidate.observed } : {}
|
|
16971
|
+
};
|
|
16972
|
+
if (candidate.verdict === "refused") return { verdict: "refused", ...findings };
|
|
16973
|
+
const attempts = typeof candidate.attempts === "number" && Number.isSafeInteger(candidate.attempts) && candidate.attempts > 0 ? candidate.attempts : 1;
|
|
16974
|
+
const reason = isScene3DReviewUnavailableReason(candidate.reason) ? candidate.reason : "provider";
|
|
16975
|
+
return { verdict: "unavailable", reason, attempts, ...findings };
|
|
16976
|
+
}
|
|
16977
|
+
function scene3DReviewNote(verdict) {
|
|
16978
|
+
if (verdict.verdict === "unavailable") {
|
|
16979
|
+
const asked = verdict.attempts === 1 ? "one attempt" : `${verdict.attempts} attempts`;
|
|
16980
|
+
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.` : "";
|
|
16981
|
+
const missing = verdict.reason === "unusable" ? `returned no usable verdict in ${asked}` : `did not reach its provider in ${asked}`;
|
|
16982
|
+
return `The scene built and every mandatory assertion passed, but the visual review ${missing}; it was delivered unreviewed.${partial}`;
|
|
16983
|
+
}
|
|
16984
|
+
const count = verdict.objections.length;
|
|
16985
|
+
if (!count) {
|
|
16986
|
+
return "The visual review refused this scene without naming anything to change; it was delivered anyway because every mandatory assertion passed.";
|
|
16987
|
+
}
|
|
16988
|
+
return `The visual review refused this scene on ${count === 1 ? "one finding" : `${count} findings`}; it was delivered anyway because every mandatory assertion passed.`;
|
|
16989
|
+
}
|
|
16840
16990
|
var scene3DInputAssetSchema = zod.z.object({
|
|
16841
16991
|
id: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$/),
|
|
16842
16992
|
revisionId: zod.z.uuid(),
|
|
@@ -16907,6 +17057,26 @@ var pro3DRenderQuoteSchema = zod.z.object({
|
|
|
16907
17057
|
function isPro3DRenderQuote(value) {
|
|
16908
17058
|
return pro3DRenderQuoteSchema.safeParse(value).success;
|
|
16909
17059
|
}
|
|
17060
|
+
var pro3DRenderReviewFindingsShape = {
|
|
17061
|
+
objections: zod.z.array(
|
|
17062
|
+
zod.z.object({
|
|
17063
|
+
category: zod.z.string(),
|
|
17064
|
+
what: zod.z.string(),
|
|
17065
|
+
correction: zod.z.string().optional(),
|
|
17066
|
+
frames: zod.z.array(zod.z.number().int().min(0)).default([])
|
|
17067
|
+
}).passthrough()
|
|
17068
|
+
),
|
|
17069
|
+
observed: zod.z.string().optional()
|
|
17070
|
+
};
|
|
17071
|
+
var pro3DRenderReviewVerdictSchema = zod.z.union([
|
|
17072
|
+
zod.z.object({ verdict: zod.z.literal("refused"), ...pro3DRenderReviewFindingsShape }).passthrough(),
|
|
17073
|
+
zod.z.object({
|
|
17074
|
+
verdict: zod.z.literal("unavailable"),
|
|
17075
|
+
reason: zod.z.enum(SCENE3D_REVIEW_UNAVAILABLE_REASONS).catch("provider"),
|
|
17076
|
+
attempts: zod.z.number().int().min(1).catch(1),
|
|
17077
|
+
...pro3DRenderReviewFindingsShape
|
|
17078
|
+
}).passthrough()
|
|
17079
|
+
]);
|
|
16910
17080
|
var pro3DRenderShotStillSchema = zod.z.object({
|
|
16911
17081
|
shotIndex: zod.z.number().int().min(0),
|
|
16912
17082
|
frame: zod.z.number().int().min(0),
|
|
@@ -16937,8 +17107,34 @@ var pro3DRenderJobOutputSchema = zod.z.object({
|
|
|
16937
17107
|
height: zod.z.number().int().positive(),
|
|
16938
17108
|
fps: zod.z.number().positive(),
|
|
16939
17109
|
frames: zod.z.number().int().positive(),
|
|
16940
|
-
duration: zod.z.number().positive()
|
|
17110
|
+
duration: zod.z.number().positive(),
|
|
17111
|
+
summary: zod.z.string().optional(),
|
|
17112
|
+
/**
|
|
17113
|
+
* Degrades to absent rather than refusing the RESULT, which is the whole lesson of the
|
|
17114
|
+
* verdict this round added. A narrow `verdict` here did not merely mis-read an unreviewed
|
|
17115
|
+
* delivery — it failed `isPro3DRenderJobOutput` for the entire job, blanking a real,
|
|
17116
|
+
* paid, playable MP4 over an advisory field. A verdict a future engine invents must cost
|
|
17117
|
+
* at most itself; the `SCENE_REVIEW_*` entry in `validation.warnings[]` still arrives
|
|
17118
|
+
* either way, because that array has no code enum.
|
|
17119
|
+
*/
|
|
17120
|
+
review: pro3DRenderReviewVerdictSchema.optional().catch(void 0)
|
|
16941
17121
|
}).passthrough(),
|
|
17122
|
+
repairPasses: zod.z.number().int().min(0).optional(),
|
|
17123
|
+
admissionRetries: zod.z.number().int().min(0).optional(),
|
|
17124
|
+
mechanicalPasses: zod.z.number().int().min(0).optional(),
|
|
17125
|
+
// Tolerant like the review verdict above, and for the same reason: this rides a result that
|
|
17126
|
+
// already has a real MP4, so a malformed entry must never blank a video the platform rendered
|
|
17127
|
+
// and charged for. The identity fields are required because an entry without them names
|
|
17128
|
+
// nothing; `value` is unknown because a restored assertion holds whatever it holds.
|
|
17129
|
+
restoredAssertions: zod.z.array(
|
|
17130
|
+
zod.z.object({
|
|
17131
|
+
op: zod.z.string(),
|
|
17132
|
+
path: zod.z.string(),
|
|
17133
|
+
value: zod.z.unknown().optional(),
|
|
17134
|
+
assertionId: zod.z.string(),
|
|
17135
|
+
reason: zod.z.string()
|
|
17136
|
+
}).passthrough()
|
|
17137
|
+
).optional(),
|
|
16942
17138
|
changeSummary: zod.z.string().optional()
|
|
16943
17139
|
}).passthrough();
|
|
16944
17140
|
function isPro3DRenderJobOutput(value) {
|
|
@@ -17315,6 +17511,168 @@ function unavailable(engine) {
|
|
|
17315
17511
|
}
|
|
17316
17512
|
var SCENE3D_BASIC_SCHEMA_VERSION = SCENE3D_SCHEMA_VERSION;
|
|
17317
17513
|
|
|
17514
|
+
// src/video-output-canvas.ts
|
|
17515
|
+
var VIDEO_OUTPUT_CANVAS = {
|
|
17516
|
+
"seedance-2-5": {
|
|
17517
|
+
"480p": { "16:9": [854, 480], "9:16": [480, 854] },
|
|
17518
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280], "1:1": [960, 960] },
|
|
17519
|
+
"1080p": { "16:9": [1920, 1080] }
|
|
17520
|
+
},
|
|
17521
|
+
// The 2.0 family is NOT the same as 2.5 at 480p — 864x496 vs 854x480.
|
|
17522
|
+
"seedance-2": {
|
|
17523
|
+
"480p": { "16:9": [864, 496], "9:16": [496, 864] },
|
|
17524
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280] }
|
|
17525
|
+
},
|
|
17526
|
+
"seedance-2-fast": {
|
|
17527
|
+
"480p": { "16:9": [864, 496], "9:16": [496, 864] },
|
|
17528
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280] }
|
|
17529
|
+
},
|
|
17530
|
+
"seedance-2-mini": {
|
|
17531
|
+
"480p": { "16:9": [864, 496], "9:16": [496, 864] },
|
|
17532
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280] }
|
|
17533
|
+
},
|
|
17534
|
+
"gemini-omni-video": {
|
|
17535
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280] },
|
|
17536
|
+
"1080p": { "16:9": [1920, 1080] }
|
|
17537
|
+
},
|
|
17538
|
+
"gemini-omni-flash": {
|
|
17539
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280] }
|
|
17540
|
+
},
|
|
17541
|
+
"veo3.1": {
|
|
17542
|
+
"720p": { "9:16": [720, 1280] },
|
|
17543
|
+
"1080p": { "16:9": [1920, 1080] }
|
|
17544
|
+
},
|
|
17545
|
+
"wan-3": {
|
|
17546
|
+
"480p": { "16:9": [832, 480] },
|
|
17547
|
+
"720p": { "16:9": [1280, 720], "9:16": [720, 1280] }
|
|
17548
|
+
},
|
|
17549
|
+
"wan-3-prime": {
|
|
17550
|
+
"720p": { "16:9": [1280, 720] }
|
|
17551
|
+
},
|
|
17552
|
+
// 768P's "9:16" is 0.5714, not 0.5625 — the single clearest reason this table
|
|
17553
|
+
// exists.
|
|
17554
|
+
"minimax-h3": {
|
|
17555
|
+
"768p": { "9:16": [768, 1344] },
|
|
17556
|
+
"2k": { "16:9": [2560, 1440], "9:16": [1440, 2560] }
|
|
17557
|
+
},
|
|
17558
|
+
seedance: {
|
|
17559
|
+
"1080p": {
|
|
17560
|
+
"16:9": [1920, 1080],
|
|
17561
|
+
"9:16": [1080, 1920],
|
|
17562
|
+
"1:1": [1440, 1440],
|
|
17563
|
+
"3:4": [1248, 1664]
|
|
17564
|
+
}
|
|
17565
|
+
}
|
|
17566
|
+
};
|
|
17567
|
+
function resolveOutputCanvas(provider, resolution, aspect) {
|
|
17568
|
+
if (!provider || !resolution || !aspect) return void 0;
|
|
17569
|
+
return VIDEO_OUTPUT_CANVAS[provider]?.[resolution.toLowerCase()]?.[aspect];
|
|
17570
|
+
}
|
|
17571
|
+
function measuredCanvasCombinations() {
|
|
17572
|
+
const out = [];
|
|
17573
|
+
for (const [provider, byResolution] of Object.entries(VIDEO_OUTPUT_CANVAS)) {
|
|
17574
|
+
for (const [resolution, byAspect] of Object.entries(byResolution)) {
|
|
17575
|
+
for (const [aspect, canvas] of Object.entries(byAspect)) {
|
|
17576
|
+
out.push({ provider, resolution, aspect, canvas });
|
|
17577
|
+
}
|
|
17578
|
+
}
|
|
17579
|
+
}
|
|
17580
|
+
return out;
|
|
17581
|
+
}
|
|
17582
|
+
|
|
17583
|
+
// src/video-frame-fit.ts
|
|
17584
|
+
var FRAME_FITS = ["original", "ratio", "resolution"];
|
|
17585
|
+
var DEFAULT_FRAME_FIT = "resolution";
|
|
17586
|
+
var FRAME_DELIVERIES = ["auto", "frame", "reference"];
|
|
17587
|
+
var DEFAULT_FRAME_DELIVERY = "auto";
|
|
17588
|
+
var FRAME_FIT_STRETCH_TOLERANCE = 0.05;
|
|
17589
|
+
var FRAME_DELIVERY_BY_PROVIDER = {
|
|
17590
|
+
"seedance-2": "reference",
|
|
17591
|
+
"seedance-2-fast": "reference",
|
|
17592
|
+
"seedance-2-mini": "reference"
|
|
17593
|
+
};
|
|
17594
|
+
var OPEN_ASPECT_TOKENS = /* @__PURE__ */ new Set(["adaptive", "auto"]);
|
|
17595
|
+
function parseAspectToken(token) {
|
|
17596
|
+
if (!token) return void 0;
|
|
17597
|
+
const m = /^(\d+(?:\.\d+)?)\s*[:x/]\s*(\d+(?:\.\d+)?)$/.exec(token.trim());
|
|
17598
|
+
if (!m) return void 0;
|
|
17599
|
+
const w = Number(m[1]);
|
|
17600
|
+
const h = Number(m[2]);
|
|
17601
|
+
if (!(w > 0) || !(h > 0)) return void 0;
|
|
17602
|
+
return w / h;
|
|
17603
|
+
}
|
|
17604
|
+
function resolveFrameFitAspect(args) {
|
|
17605
|
+
const requested = args.requestedAspect?.trim();
|
|
17606
|
+
if (requested && !OPEN_ASPECT_TOKENS.has(requested.toLowerCase())) return requested;
|
|
17607
|
+
const ratios = args.provider ? getModel(args.provider)?.aspectRatios : void 0;
|
|
17608
|
+
if (!ratios?.length || !(args.sourceWidth > 0) || !(args.sourceHeight > 0)) return void 0;
|
|
17609
|
+
const source = args.sourceWidth / args.sourceHeight;
|
|
17610
|
+
let best;
|
|
17611
|
+
for (const token of ratios) {
|
|
17612
|
+
const value = parseAspectToken(token);
|
|
17613
|
+
if (value === void 0) continue;
|
|
17614
|
+
const gap = Math.abs(Math.log(value / source));
|
|
17615
|
+
if (!best || gap < best.gap) best = { token, gap };
|
|
17616
|
+
}
|
|
17617
|
+
return best?.token;
|
|
17618
|
+
}
|
|
17619
|
+
function even(value) {
|
|
17620
|
+
return Math.max(2, Math.round(value / 2) * 2);
|
|
17621
|
+
}
|
|
17622
|
+
function minimalRatioDimensions(width, height, aspect) {
|
|
17623
|
+
const current = width / height;
|
|
17624
|
+
if (current > aspect) {
|
|
17625
|
+
return { width: even(width), height: even(width / aspect) };
|
|
17626
|
+
}
|
|
17627
|
+
return { width: even(height * aspect), height: even(height) };
|
|
17628
|
+
}
|
|
17629
|
+
function centreCropToAspect(width, height, aspect) {
|
|
17630
|
+
const current = width / height;
|
|
17631
|
+
if (current > aspect) {
|
|
17632
|
+
const w = even(height * aspect);
|
|
17633
|
+
return { left: Math.max(0, Math.round((width - w) / 2)), top: 0, width: Math.min(width, w), height };
|
|
17634
|
+
}
|
|
17635
|
+
const h = even(width / aspect);
|
|
17636
|
+
return { left: 0, top: Math.max(0, Math.round((height - h) / 2)), width, height: Math.min(height, h) };
|
|
17637
|
+
}
|
|
17638
|
+
function computeFrameFitPlan(args) {
|
|
17639
|
+
const { fit, sourceWidth, sourceHeight } = args;
|
|
17640
|
+
if (fit === "original") return null;
|
|
17641
|
+
if (!(sourceWidth > 0) || !(sourceHeight > 0)) return null;
|
|
17642
|
+
const aspectToken = resolveFrameFitAspect({
|
|
17643
|
+
provider: args.provider,
|
|
17644
|
+
requestedAspect: args.aspect,
|
|
17645
|
+
sourceWidth,
|
|
17646
|
+
sourceHeight
|
|
17647
|
+
});
|
|
17648
|
+
const canvas = fit === "resolution" ? args.canvas ?? resolveOutputCanvas(args.provider, args.resolution, aspectToken) : void 0;
|
|
17649
|
+
const targetAspect = canvas ? canvas[0] / canvas[1] : parseAspectToken(aspectToken);
|
|
17650
|
+
if (targetAspect === void 0 || !(targetAspect > 0)) return null;
|
|
17651
|
+
const sourceAspect = sourceWidth / sourceHeight;
|
|
17652
|
+
const gap = Math.abs(sourceAspect - targetAspect) / targetAspect;
|
|
17653
|
+
const tolerance = args.tolerance ?? FRAME_FIT_STRETCH_TOLERANCE;
|
|
17654
|
+
const crop = gap > tolerance ? centreCropToAspect(sourceWidth, sourceHeight, targetAspect) : void 0;
|
|
17655
|
+
const target = canvas ? { width: canvas[0], height: canvas[1] } : minimalRatioDimensions(
|
|
17656
|
+
crop ? crop.width : sourceWidth,
|
|
17657
|
+
crop ? crop.height : sourceHeight,
|
|
17658
|
+
targetAspect
|
|
17659
|
+
);
|
|
17660
|
+
const unchanged = target.width === sourceWidth && target.height === sourceHeight && !crop;
|
|
17661
|
+
if (unchanged) return null;
|
|
17662
|
+
return {
|
|
17663
|
+
width: target.width,
|
|
17664
|
+
height: target.height,
|
|
17665
|
+
...crop ? { crop } : {},
|
|
17666
|
+
reason: canvas ? "resolution" : "ratio"
|
|
17667
|
+
};
|
|
17668
|
+
}
|
|
17669
|
+
function resolveFrameDelivery(args) {
|
|
17670
|
+
const requested = args.requested ?? DEFAULT_FRAME_DELIVERY;
|
|
17671
|
+
const wanted = requested === "auto" ? args.provider ? FRAME_DELIVERY_BY_PROVIDER[args.provider] ?? "frame" : "frame" : requested;
|
|
17672
|
+
if (wanted === "reference" && !args.supportsReferenceImages) return "frame";
|
|
17673
|
+
return wanted;
|
|
17674
|
+
}
|
|
17675
|
+
|
|
17318
17676
|
exports.ACCESS_LEVELS = ACCESS_LEVELS;
|
|
17319
17677
|
exports.ACTIVE_SCENE_HELPERS = ACTIVE_SCENE_HELPERS;
|
|
17320
17678
|
exports.ADVANCED_MODE_UNAVAILABLE_REASON = ADVANCED_MODE_UNAVAILABLE_REASON;
|
|
@@ -17402,6 +17760,8 @@ exports.DEFAULT_CARRIED_FRACTION = DEFAULT_CARRIED_FRACTION;
|
|
|
17402
17760
|
exports.DEFAULT_CHARACTER_ANGLE_COUNT = DEFAULT_CHARACTER_ANGLE_COUNT;
|
|
17403
17761
|
exports.DEFAULT_CHARACTER_EXPRESSION_COUNT = DEFAULT_CHARACTER_EXPRESSION_COUNT;
|
|
17404
17762
|
exports.DEFAULT_CHARACTER_FACET = DEFAULT_CHARACTER_FACET;
|
|
17763
|
+
exports.DEFAULT_FRAME_DELIVERY = DEFAULT_FRAME_DELIVERY;
|
|
17764
|
+
exports.DEFAULT_FRAME_FIT = DEFAULT_FRAME_FIT;
|
|
17405
17765
|
exports.DEFAULT_LABEL_BY_SOURCE = DEFAULT_LABEL_BY_SOURCE;
|
|
17406
17766
|
exports.DEFAULT_LOCATION_USAGE_MODE = DEFAULT_LOCATION_USAGE_MODE;
|
|
17407
17767
|
exports.DEFAULT_OVERLAY_QR = DEFAULT_OVERLAY_QR;
|
|
@@ -17411,6 +17771,7 @@ exports.DEFAULT_PANEL_COUNT = DEFAULT_PANEL_COUNT;
|
|
|
17411
17771
|
exports.DEFAULT_REF_IMAGE_MAX = DEFAULT_REF_IMAGE_MAX;
|
|
17412
17772
|
exports.DEFAULT_SECTIONS = DEFAULT_SECTIONS;
|
|
17413
17773
|
exports.DEFAULT_SUNO_MODEL = DEFAULT_SUNO_MODEL;
|
|
17774
|
+
exports.DEFAULT_TEMPLATE_CATEGORY = DEFAULT_TEMPLATE_CATEGORY;
|
|
17414
17775
|
exports.DEFAULT_USAGE_MODE = DEFAULT_USAGE_MODE;
|
|
17415
17776
|
exports.DEFAULT_VIDEO_ANALYSIS_MODEL = DEFAULT_VIDEO_ANALYSIS_MODEL;
|
|
17416
17777
|
exports.DEFAULT_VIDEO_ANALYSIS_TIER = DEFAULT_VIDEO_ANALYSIS_TIER;
|
|
@@ -17439,6 +17800,7 @@ exports.ENTITY_TABLE = ENTITY_TABLE;
|
|
|
17439
17800
|
exports.ENTITY_TOOL_RETRY_CAP = ENTITY_TOOL_RETRY_CAP;
|
|
17440
17801
|
exports.ENTITY_TYPES = ENTITY_TYPES;
|
|
17441
17802
|
exports.EXECUTION_DATA_KEYS = EXECUTION_DATA_KEYS;
|
|
17803
|
+
exports.EXECUTION_GRAPH_COMPOSED_PARAMETER_TYPES = EXECUTION_GRAPH_COMPOSED_PARAMETER_TYPES;
|
|
17442
17804
|
exports.EXTEND_VIDEO_PROVIDERS = EXTEND_VIDEO_PROVIDERS;
|
|
17443
17805
|
exports.EntityMetadataSchema = EntityMetadataSchema;
|
|
17444
17806
|
exports.EntityRejectInputSchema = EntityRejectInputSchema;
|
|
@@ -17452,6 +17814,10 @@ exports.FILM_BASE_CREDITS = FILM_BASE_CREDITS;
|
|
|
17452
17814
|
exports.FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS = FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS;
|
|
17453
17815
|
exports.FLUX2_RES_MP = FLUX2_RES_MP;
|
|
17454
17816
|
exports.FLUX_LORA_CHARACTER_MODEL_ID = FLUX_LORA_CHARACTER_MODEL_ID;
|
|
17817
|
+
exports.FRAME_DELIVERIES = FRAME_DELIVERIES;
|
|
17818
|
+
exports.FRAME_DELIVERY_BY_PROVIDER = FRAME_DELIVERY_BY_PROVIDER;
|
|
17819
|
+
exports.FRAME_FITS = FRAME_FITS;
|
|
17820
|
+
exports.FRAME_FIT_STRETCH_TOLERANCE = FRAME_FIT_STRETCH_TOLERANCE;
|
|
17455
17821
|
exports.FRAME_MODE_ADAPTIVE_ONLY_ASPECT = FRAME_MODE_ADAPTIVE_ONLY_ASPECT;
|
|
17456
17822
|
exports.FRAME_TARGET_HANDLES = FRAME_TARGET_HANDLES;
|
|
17457
17823
|
exports.FREECUT_EXPORT_COMPLETE = FREECUT_EXPORT_COMPLETE;
|
|
@@ -17513,6 +17879,7 @@ exports.KEYFRAME_CREDITS_PER_SHOT = KEYFRAME_CREDITS_PER_SHOT;
|
|
|
17513
17879
|
exports.KINETIC_CAPTION_STYLES = KINETIC_CAPTION_STYLES;
|
|
17514
17880
|
exports.LANGUAGES = LANGUAGES;
|
|
17515
17881
|
exports.LEGACY_LOTTIE_HOST_REMAP = LEGACY_LOTTIE_HOST_REMAP;
|
|
17882
|
+
exports.LEGACY_TEMPLATE_CATEGORIES = LEGACY_TEMPLATE_CATEGORIES;
|
|
17516
17883
|
exports.LIP_SYNC_DURATION_BUCKETS = LIP_SYNC_DURATION_BUCKETS;
|
|
17517
17884
|
exports.LIP_SYNC_MAX_AUDIO_SECONDS = LIP_SYNC_MAX_AUDIO_SECONDS;
|
|
17518
17885
|
exports.LIP_SYNC_PROVIDERS = LIP_SYNC_PROVIDERS;
|
|
@@ -17552,6 +17919,7 @@ exports.MINIMAX_H3_DEFAULT_RESOLUTION = MINIMAX_H3_DEFAULT_RESOLUTION;
|
|
|
17552
17919
|
exports.MINIMAX_H3_PROVIDERS = MINIMAX_H3_PROVIDERS;
|
|
17553
17920
|
exports.MODELS_WITH_REFERENCE_IMAGE_SUPPORT = MODELS_WITH_REFERENCE_IMAGE_SUPPORT;
|
|
17554
17921
|
exports.MODEL_CATALOG = MODEL_CATALOG;
|
|
17922
|
+
exports.MODEL_KINDS = MODEL_KINDS;
|
|
17555
17923
|
exports.MODEL_PARAM_NODE_TYPES = MODEL_PARAM_NODE_TYPES;
|
|
17556
17924
|
exports.MODEL_RECOMMENDATIONS = MODEL_RECOMMENDATIONS;
|
|
17557
17925
|
exports.MODIFY_IMAGE_PROVIDERS = MODIFY_IMAGE_PROVIDERS;
|
|
@@ -17584,6 +17952,7 @@ exports.ORG_ERROR_CODES = ORG_ERROR_CODES;
|
|
|
17584
17952
|
exports.ORG_KINDS = ORG_KINDS;
|
|
17585
17953
|
exports.ORG_ROLES = ORG_ROLES;
|
|
17586
17954
|
exports.ORG_STATUSES = ORG_STATUSES;
|
|
17955
|
+
exports.OUTPUT_BEARING_NODE_STATUSES = OUTPUT_BEARING_NODE_STATUSES;
|
|
17587
17956
|
exports.OUTPUT_FIELD_MAP = OUTPUT_FIELD_MAP;
|
|
17588
17957
|
exports.OUTPUT_FORMATS = OUTPUT_FORMATS;
|
|
17589
17958
|
exports.OVERLAY_ANCHORS = OVERLAY_ANCHORS;
|
|
@@ -17676,9 +18045,11 @@ exports.REPEATABLE_NODE_TYPES = REPEATABLE_NODE_TYPES;
|
|
|
17676
18045
|
exports.REPEAT_PLACEHOLDER = REPEAT_PLACEHOLDER;
|
|
17677
18046
|
exports.REPLICATE_LIP_SYNC_PROVIDERS = REPLICATE_LIP_SYNC_PROVIDERS;
|
|
17678
18047
|
exports.RESERVED_TEMPLATE_VARS = RESERVED_TEMPLATE_VARS;
|
|
18048
|
+
exports.SCENE3D_ASSERTION_RESTORED_CODE = SCENE3D_ASSERTION_RESTORED_CODE;
|
|
17679
18049
|
exports.SCENE3D_ASSET_KINDS = SCENE3D_ASSET_KINDS;
|
|
17680
18050
|
exports.SCENE3D_ASSET_ROLES = SCENE3D_ASSET_ROLES;
|
|
17681
18051
|
exports.SCENE3D_ASSET_ROLE_KINDS = SCENE3D_ASSET_ROLE_KINDS;
|
|
18052
|
+
exports.SCENE3D_AUTHORING_ASSUMPTION_CODE = SCENE3D_AUTHORING_ASSUMPTION_CODE;
|
|
17682
18053
|
exports.SCENE3D_AUTHORING_ENGINES = SCENE3D_AUTHORING_ENGINES;
|
|
17683
18054
|
exports.SCENE3D_BASIC_ENGINE = SCENE3D_BASIC_ENGINE;
|
|
17684
18055
|
exports.SCENE3D_BASIC_SCHEMA_VERSION = SCENE3D_BASIC_SCHEMA_VERSION;
|
|
@@ -17703,11 +18074,15 @@ exports.SCENE3D_PLAN_FIELD = SCENE3D_PLAN_FIELD;
|
|
|
17703
18074
|
exports.SCENE3D_PLAN_TYPE = SCENE3D_PLAN_TYPE;
|
|
17704
18075
|
exports.SCENE3D_PRIMITIVES = SCENE3D_PRIMITIVES;
|
|
17705
18076
|
exports.SCENE3D_PRIMITIVE_MATERIAL_ROLE = SCENE3D_PRIMITIVE_MATERIAL_ROLE;
|
|
18077
|
+
exports.SCENE3D_REMEDY_AUTO_APPLIED_CODE = SCENE3D_REMEDY_AUTO_APPLIED_CODE;
|
|
17706
18078
|
exports.SCENE3D_RENDERER_ASSET_KINDS = SCENE3D_RENDERER_ASSET_KINDS;
|
|
17707
18079
|
exports.SCENE3D_RENDER_BASE_MAX_PX = SCENE3D_RENDER_BASE_MAX_PX;
|
|
17708
18080
|
exports.SCENE3D_RENDER_TIERS = SCENE3D_RENDER_TIERS;
|
|
17709
18081
|
exports.SCENE3D_RENDER_TIER_MULTIPLIERS = SCENE3D_RENDER_TIER_MULTIPLIERS;
|
|
17710
18082
|
exports.SCENE3D_RENDER_XLARGE_MIN_AREA_PX = SCENE3D_RENDER_XLARGE_MIN_AREA_PX;
|
|
18083
|
+
exports.SCENE3D_REVIEW_REFUSED_CODE = SCENE3D_REVIEW_REFUSED_CODE;
|
|
18084
|
+
exports.SCENE3D_REVIEW_UNAVAILABLE_CODE = SCENE3D_REVIEW_UNAVAILABLE_CODE;
|
|
18085
|
+
exports.SCENE3D_REVIEW_UNAVAILABLE_REASONS = SCENE3D_REVIEW_UNAVAILABLE_REASONS;
|
|
17711
18086
|
exports.SCENE3D_SCHEMA_VERSION = SCENE3D_SCHEMA_VERSION;
|
|
17712
18087
|
exports.SCENE3D_SCHEMA_VERSION_V2 = SCENE3D_SCHEMA_VERSION_V2;
|
|
17713
18088
|
exports.SCENE3D_SUPPORTED_SCHEMA_VERSIONS = SCENE3D_SUPPORTED_SCHEMA_VERSIONS;
|
|
@@ -17788,6 +18163,7 @@ exports.StyleDirectivesSchema = StyleDirectivesSchema;
|
|
|
17788
18163
|
exports.SubGateNameSchema = SubGateNameSchema;
|
|
17789
18164
|
exports.T2I_TO_I2I_VARIANT = T2I_TO_I2I_VARIANT;
|
|
17790
18165
|
exports.TASK_CHAINED_EDIT_PROVIDERS = TASK_CHAINED_EDIT_PROVIDERS;
|
|
18166
|
+
exports.TEMPLATE_CATEGORIES = TEMPLATE_CATEGORIES;
|
|
17791
18167
|
exports.TEXT_TO_AUDIO_PROVIDERS = TEXT_TO_AUDIO_PROVIDERS;
|
|
17792
18168
|
exports.TEXT_TO_VIDEO_PROVIDERS = TEXT_TO_VIDEO_PROVIDERS;
|
|
17793
18169
|
exports.TIER_MAX_PIPELINE_COST_CREDITS = TIER_MAX_PIPELINE_COST_CREDITS;
|
|
@@ -17850,6 +18226,8 @@ exports.VIDEO_GEN_PROVIDERS = VIDEO_GEN_PROVIDERS;
|
|
|
17850
18226
|
exports.VIDEO_INPUT_LIP_SYNC_PROVIDERS = VIDEO_INPUT_LIP_SYNC_PROVIDERS;
|
|
17851
18227
|
exports.VIDEO_MODEL_CAPS = VIDEO_MODEL_CAPS;
|
|
17852
18228
|
exports.VIDEO_MODE_ALIASES = VIDEO_MODE_ALIASES;
|
|
18229
|
+
exports.VIDEO_ONLY_PARAMETER_NODE_TYPES = VIDEO_ONLY_PARAMETER_NODE_TYPES;
|
|
18230
|
+
exports.VIDEO_OUTPUT_CANVAS = VIDEO_OUTPUT_CANVAS;
|
|
17853
18231
|
exports.VIDEO_PRODUCER_TYPES = VIDEO_PRODUCER_TYPES;
|
|
17854
18232
|
exports.VIDEO_PROMPT_MAX = VIDEO_PROMPT_MAX;
|
|
17855
18233
|
exports.VIDEO_PROVIDERS_REQUIRING_IMAGE = VIDEO_PROVIDERS_REQUIRING_IMAGE;
|
|
@@ -17923,6 +18301,7 @@ exports.calculateMonetizedCost = calculateMonetizedCost;
|
|
|
17923
18301
|
exports.calculateProgress = calculateProgress;
|
|
17924
18302
|
exports.canonicalScene3DPlanV2Json = canonicalScene3DPlanV2Json;
|
|
17925
18303
|
exports.canonicalVarName = canonicalVarName;
|
|
18304
|
+
exports.centreCropToAspect = centreCropToAspect;
|
|
17926
18305
|
exports.characterBoardItems = characterBoardItems;
|
|
17927
18306
|
exports.characterBucketDisplayRank = characterBucketDisplayRank;
|
|
17928
18307
|
exports.characterMentionSlug = characterMentionSlug;
|
|
@@ -17941,6 +18320,7 @@ exports.clipLookSchema = clipLookSchema;
|
|
|
17941
18320
|
exports.collectAncestorRefs = collectAncestorRefs;
|
|
17942
18321
|
exports.combineSameLabelRefs = combineSameLabelRefs;
|
|
17943
18322
|
exports.computeAggregateLanes = computeAggregateLanes;
|
|
18323
|
+
exports.computeFrameFitPlan = computeFrameFitPlan;
|
|
17944
18324
|
exports.computeScene3DPlanV2ContentHash = computeScene3DPlanV2ContentHash;
|
|
17945
18325
|
exports.countRefModalityEdges = countRefModalityEdges;
|
|
17946
18326
|
exports.creditRangesAll = creditRangesAll;
|
|
@@ -18043,6 +18423,7 @@ exports.getVideoAudioCapability = getVideoAudioCapability;
|
|
|
18043
18423
|
exports.getWeapon = getWeapon;
|
|
18044
18424
|
exports.getWeaponLabel = getWeaponLabel;
|
|
18045
18425
|
exports.groupByFamily = groupByFamily;
|
|
18426
|
+
exports.groupByKindAndFamily = groupByKindAndFamily;
|
|
18046
18427
|
exports.groupHandleId = groupHandleId;
|
|
18047
18428
|
exports.groupLlmModelsByVendor = groupLlmModelsByVendor;
|
|
18048
18429
|
exports.hasContiguousSegmentDurations = hasContiguousSegmentDurations;
|
|
@@ -18083,9 +18464,11 @@ exports.isScene3DHttpUrl = isScene3DHttpUrl;
|
|
|
18083
18464
|
exports.isScene3DPlan = isScene3DPlan;
|
|
18084
18465
|
exports.isScene3DPlanV1 = isScene3DPlanV1;
|
|
18085
18466
|
exports.isScene3DPlanV2 = isScene3DPlanV2;
|
|
18467
|
+
exports.isScene3DReviewUnavailableReason = isScene3DReviewUnavailableReason;
|
|
18086
18468
|
exports.isScene3DSchemaVersionSupported = isScene3DSchemaVersionSupported;
|
|
18087
18469
|
exports.isScraperActor = isScraperActor;
|
|
18088
18470
|
exports.isSeedance2Provider = isSeedance2Provider;
|
|
18471
|
+
exports.isTemplateCategory = isTemplateCategory;
|
|
18089
18472
|
exports.isTiltDirection = isTiltDirection;
|
|
18090
18473
|
exports.isUsageMode = isUsageMode;
|
|
18091
18474
|
exports.isVeoProvider = isVeoProvider;
|
|
@@ -18108,23 +18491,27 @@ exports.mapShotIntentToProviderDirectives = mapShotIntentToProviderDirectives;
|
|
|
18108
18491
|
exports.matchVariant = matchVariant;
|
|
18109
18492
|
exports.maxSegmentSecFor = maxSegmentSecFor;
|
|
18110
18493
|
exports.maxSegmentsFor = maxSegmentsFor;
|
|
18494
|
+
exports.measuredCanvasCombinations = measuredCanvasCombinations;
|
|
18111
18495
|
exports.mergeClipLook = mergeClipLook;
|
|
18112
18496
|
exports.mergeExposedSettings = mergeExposedSettings;
|
|
18113
18497
|
exports.migrateEdgeOutputMode = migrateEdgeOutputMode;
|
|
18114
18498
|
exports.migrateToItems = migrateToItems;
|
|
18115
18499
|
exports.minSegmentSecFor = minSegmentSecFor;
|
|
18500
|
+
exports.minimalRatioDimensions = minimalRatioDimensions;
|
|
18116
18501
|
exports.modelIdsByKindMode = modelIdsByKindMode;
|
|
18117
18502
|
exports.modelToNodeTarget = modelToNodeTarget;
|
|
18118
18503
|
exports.modelsForInputMode = modelsForInputMode;
|
|
18119
18504
|
exports.modelsWithFeature = modelsWithFeature;
|
|
18120
18505
|
exports.motionGraphicsFeature = motionGraphicsFeature;
|
|
18121
18506
|
exports.newScene3DRevisionId = newScene3DRevisionId;
|
|
18507
|
+
exports.nodeStateMayCarryOutput = nodeStateMayCarryOutput;
|
|
18122
18508
|
exports.normalizeLottieLayers = normalizeLottieLayers;
|
|
18123
18509
|
exports.normalizeMinimaxH3Resolution = normalizeMinimaxH3Resolution;
|
|
18124
18510
|
exports.normalizeModelInput = normalizeModelInput;
|
|
18125
18511
|
exports.normalizeNodeModelParams = normalizeNodeModelParams;
|
|
18126
18512
|
exports.normalizePinterestUrl = normalizePinterestUrl;
|
|
18127
18513
|
exports.normalizeRoleSlug = normalizeRoleSlug;
|
|
18514
|
+
exports.normalizeTemplateCategory = normalizeTemplateCategory;
|
|
18128
18515
|
exports.normalizeVideoRequestParams = normalizeVideoRequestParams;
|
|
18129
18516
|
exports.normalizeWan3Resolution = normalizeWan3Resolution;
|
|
18130
18517
|
exports.orderedLlmModels = orderedLlmModels;
|
|
@@ -18138,6 +18525,7 @@ exports.overlayStrokeSchema = overlayStrokeSchema;
|
|
|
18138
18525
|
exports.overlayTextStyleSchema = overlayTextStyleSchema;
|
|
18139
18526
|
exports.overlayVariantHandle = overlayVariantHandle;
|
|
18140
18527
|
exports.overlayVariantIdFromHandle = overlayVariantIdFromHandle;
|
|
18528
|
+
exports.parseAspectToken = parseAspectToken;
|
|
18141
18529
|
exports.parseAttributedDialogue = parseAttributedDialogue;
|
|
18142
18530
|
exports.parseCharacterMentionToken = parseCharacterMentionToken;
|
|
18143
18531
|
exports.parseEntityMentionToken = parseEntityMentionToken;
|
|
@@ -18162,12 +18550,14 @@ exports.presentTypes = presentTypes;
|
|
|
18162
18550
|
exports.presetApplyClearKeys = presetApplyClearKeys;
|
|
18163
18551
|
exports.presetDataMatches = presetDataMatches;
|
|
18164
18552
|
exports.presetEntries = presetEntries;
|
|
18553
|
+
exports.pricedOutputDurationSec = pricedOutputDurationSec;
|
|
18165
18554
|
exports.pricedVideoSelection = pricedVideoSelection;
|
|
18166
18555
|
exports.pro3DRenderCoreOutputSchema = pro3DRenderCoreOutputSchema;
|
|
18167
18556
|
exports.pro3DRenderFrameUnit = pro3DRenderFrameUnit;
|
|
18168
18557
|
exports.pro3DRenderJobOutputSchema = pro3DRenderJobOutputSchema;
|
|
18169
18558
|
exports.pro3DRenderProducedSchemaVersion = pro3DRenderProducedSchemaVersion;
|
|
18170
18559
|
exports.pro3DRenderQuoteSchema = pro3DRenderQuoteSchema;
|
|
18560
|
+
exports.pro3DRenderReviewVerdictSchema = pro3DRenderReviewVerdictSchema;
|
|
18171
18561
|
exports.pro3DRenderShotStillSchema = pro3DRenderShotStillSchema;
|
|
18172
18562
|
exports.pro3DRenderShotStills = pro3DRenderShotStills;
|
|
18173
18563
|
exports.pro3DRenderTimingOverrides = pro3DRenderTimingOverrides;
|
|
@@ -18195,6 +18585,8 @@ exports.resolveEffectiveSourceType = resolveEffectiveSourceType;
|
|
|
18195
18585
|
exports.resolveEffectiveTier = resolveEffectiveTier;
|
|
18196
18586
|
exports.resolveEntityAspect = resolveEntityAspect;
|
|
18197
18587
|
exports.resolveFieldMappings = resolveFieldMappings;
|
|
18588
|
+
exports.resolveFrameDelivery = resolveFrameDelivery;
|
|
18589
|
+
exports.resolveFrameFitAspect = resolveFrameFitAspect;
|
|
18198
18590
|
exports.resolveGvpAnchorWire = resolveGvpAnchorWire;
|
|
18199
18591
|
exports.resolveImageGenCreditIdentifier = resolveImageGenCreditIdentifier;
|
|
18200
18592
|
exports.resolveIndex = resolveIndex;
|
|
@@ -18207,6 +18599,7 @@ exports.resolveLottieOverlaySrc = resolveLottieOverlaySrc;
|
|
|
18207
18599
|
exports.resolveNodeRefs = resolveNodeRefs;
|
|
18208
18600
|
exports.resolveNormalizedImageGen = resolveNormalizedImageGen;
|
|
18209
18601
|
exports.resolveObjectAspectRatio = resolveObjectAspectRatio;
|
|
18602
|
+
exports.resolveOutputCanvas = resolveOutputCanvas;
|
|
18210
18603
|
exports.resolvePipelineModel = resolvePipelineModel;
|
|
18211
18604
|
exports.resolveRelativeWindowToken = resolveRelativeWindowToken;
|
|
18212
18605
|
exports.resolveScene3DAuthoringEngine = resolveScene3DAuthoringEngine;
|
|
@@ -18218,6 +18611,7 @@ exports.resolveSlideshowTransition = resolveSlideshowTransition;
|
|
|
18218
18611
|
exports.resolveSourceThroughConnectedList = resolveSourceThroughConnectedList;
|
|
18219
18612
|
exports.resolveStoredTier = resolveStoredTier;
|
|
18220
18613
|
exports.resolveSwitchXCreditId = resolveSwitchXCreditId;
|
|
18614
|
+
exports.resolveTemplateCategory = resolveTemplateCategory;
|
|
18221
18615
|
exports.resolveTopazUpscale = resolveTopazUpscale;
|
|
18222
18616
|
exports.resolveVideoAnalysisModel = resolveVideoAnalysisModel;
|
|
18223
18617
|
exports.resolveVideoModeForInputs = resolveVideoModeForInputs;
|
|
@@ -18290,6 +18684,8 @@ exports.scene3DProvenanceSchema = scene3DProvenanceSchema;
|
|
|
18290
18684
|
exports.scene3DReferenceSchema = scene3DReferenceSchema;
|
|
18291
18685
|
exports.scene3DRenderTier = scene3DRenderTier;
|
|
18292
18686
|
exports.scene3DRenderTierCredits = scene3DRenderTierCredits;
|
|
18687
|
+
exports.scene3DReviewNote = scene3DReviewNote;
|
|
18688
|
+
exports.scene3DReviewVerdictOf = scene3DReviewVerdictOf;
|
|
18293
18689
|
exports.scene3DSampleForFrame = scene3DSampleForFrame;
|
|
18294
18690
|
exports.scene3DSha256Schema = scene3DSha256Schema;
|
|
18295
18691
|
exports.scene3DShotForFrame = scene3DShotForFrame;
|
|
@@ -18337,6 +18733,7 @@ exports.supportedDefaultDimensions = supportedDefaultDimensions;
|
|
|
18337
18733
|
exports.supportsAdvancedMode = supportsAdvancedMode;
|
|
18338
18734
|
exports.supportsEndAnchor = supportsEndAnchor;
|
|
18339
18735
|
exports.supportsExtendRender = supportsExtendRender;
|
|
18736
|
+
exports.templateCategoryStoredValues = templateCategoryStoredValues;
|
|
18340
18737
|
exports.toConnectedReference = toConnectedReference;
|
|
18341
18738
|
exports.toConnectedReferences = toConnectedReferences;
|
|
18342
18739
|
exports.togglePick = togglePick;
|