@sogni-ai/sogni-intelligence-client 4.10.2 → 4.12.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/client/SogniClientWrapper.d.ts.map +1 -1
- package/dist/client/SogniClientWrapper.js +23 -5
- package/dist/client/SogniClientWrapper.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +4 -2
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/toolPromptMarkers.d.ts +2 -0
- package/dist/contracts/toolPromptMarkers.d.ts.map +1 -1
- package/dist/contracts/toolPromptMarkers.js +3 -1
- package/dist/contracts/toolPromptMarkers.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +2 -0
- package/dist/media/index.js.map +1 -1
- package/dist/media/modelConsentRequired.d.ts +22 -0
- package/dist/media/modelConsentRequired.d.ts.map +1 -0
- package/dist/media/modelConsentRequired.js +106 -0
- package/dist/media/modelConsentRequired.js.map +1 -0
- package/dist/media/modelNotYetAvailable.d.ts +15 -0
- package/dist/media/modelNotYetAvailable.d.ts.map +1 -0
- package/dist/media/modelNotYetAvailable.js +98 -0
- package/dist/media/modelNotYetAvailable.js.map +1 -0
- package/dist/media/videoSettings.d.ts +1 -1
- package/dist/media/videoSettings.d.ts.map +1 -1
- package/dist/media/videoSettings.js +16 -0
- package/dist/media/videoSettings.js.map +1 -1
- package/dist/openai-tools/_manifests.generated.d.ts.map +1 -1
- package/dist/openai-tools/_manifests.generated.js +24 -14
- package/dist/openai-tools/_manifests.generated.js.map +1 -1
- package/dist/openai-tools/generation-tools.json +24 -14
- package/dist/public-skill-runtime/index.d.ts +17 -1
- package/dist/public-skill-runtime/index.d.ts.map +1 -1
- package/dist/public-skill-runtime/index.js +59 -7
- package/dist/public-skill-runtime/index.js.map +1 -1
- package/dist/schemas/tools/animate_photo.schema.json +1 -1
- package/dist/schemas/tools/edit_image.schema.json +1 -1
- package/dist/schemas/tools/extend_video.schema.json +4 -2
- package/dist/schemas/tools/generate_image.schema.json +1 -1
- package/dist/schemas/tools/generate_video.schema.json +5 -3
- package/dist/schemas/tools/replace_video_segment.schema.json +4 -2
- package/dist/schemas/tools/sound_to_video.schema.json +4 -2
- package/dist/schemas/tools/video_to_video.schema.json +6 -4
- package/dist/tools/definitions/animate-photo/definition.js +1 -1
- package/dist/tools/definitions/animate-photo/definition.js.map +1 -1
- package/dist/tools/definitions/extend-video/definition.js +3 -3
- package/dist/tools/definitions/extend-video/definition.js.map +1 -1
- package/dist/tools/definitions/generate-video/definition.d.ts.map +1 -1
- package/dist/tools/definitions/generate-video/definition.js +8 -3
- package/dist/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist/tools/definitions/replace-video-segment/definition.js +2 -2
- package/dist/tools/definitions/replace-video-segment/definition.js.map +1 -1
- package/dist/tools/definitions/sound-to-video/definition.d.ts.map +1 -1
- package/dist/tools/definitions/sound-to-video/definition.js +6 -2
- package/dist/tools/definitions/sound-to-video/definition.js.map +1 -1
- package/dist/tools/definitions/video-to-video/definition.d.ts.map +1 -1
- package/dist/tools/definitions/video-to-video/definition.js +7 -4
- package/dist/tools/definitions/video-to-video/definition.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +21 -18
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared/_catalogs.generated.d.ts.map +1 -1
- package/dist/tools/shared/_catalogs.generated.js +12 -0
- package/dist/tools/shared/_catalogs.generated.js.map +1 -1
- package/dist/tools/shared/errorClassification.d.ts.map +1 -1
- package/dist/tools/shared/errorClassification.js +2 -1
- package/dist/tools/shared/errorClassification.js.map +1 -1
- package/dist/tools/shared/modelRegistry.d.ts.map +1 -1
- package/dist/tools/shared/modelRegistry.js +6 -0
- package/dist/tools/shared/modelRegistry.js.map +1 -1
- package/dist/tools/shared/seedancePolicyErrors.d.ts +4 -3
- package/dist/tools/shared/seedancePolicyErrors.d.ts.map +1 -1
- package/dist/tools/shared/seedancePolicyErrors.js +23 -2
- package/dist/tools/shared/seedancePolicyErrors.js.map +1 -1
- package/dist/utils/errors.d.ts +12 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +40 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/seedanceModelIds.d.ts +5 -0
- package/dist/utils/seedanceModelIds.d.ts.map +1 -1
- package/dist/utils/seedanceModelIds.js +27 -1
- package/dist/utils/seedanceModelIds.js.map +1 -1
- package/dist/workflows/executor.d.ts.map +1 -1
- package/dist/workflows/executor.js +5 -4
- package/dist/workflows/executor.js.map +1 -1
- package/dist-esm/client/SogniClientWrapper.js +24 -6
- package/dist-esm/client/SogniClientWrapper.js.map +1 -1
- package/dist-esm/contracts/index.js +1 -1
- package/dist-esm/contracts/index.js.map +1 -1
- package/dist-esm/contracts/toolPromptMarkers.js +2 -0
- package/dist-esm/contracts/toolPromptMarkers.js.map +1 -1
- package/dist-esm/index.js +4 -2
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/media/index.js +2 -0
- package/dist-esm/media/index.js.map +1 -1
- package/dist-esm/media/modelConsentRequired.js +100 -0
- package/dist-esm/media/modelConsentRequired.js.map +1 -0
- package/dist-esm/media/modelNotYetAvailable.js +92 -0
- package/dist-esm/media/modelNotYetAvailable.js.map +1 -0
- package/dist-esm/media/videoSettings.js +16 -0
- package/dist-esm/media/videoSettings.js.map +1 -1
- package/dist-esm/openai-tools/_manifests.generated.js +24 -14
- package/dist-esm/openai-tools/_manifests.generated.js.map +1 -1
- package/dist-esm/openai-tools/generation-tools.json +24 -14
- package/dist-esm/public-skill-runtime/index.js +60 -8
- package/dist-esm/public-skill-runtime/index.js.map +1 -1
- package/dist-esm/schemas/tools/animate_photo.schema.json +1 -1
- package/dist-esm/schemas/tools/edit_image.schema.json +1 -1
- package/dist-esm/schemas/tools/extend_video.schema.json +4 -2
- package/dist-esm/schemas/tools/generate_image.schema.json +1 -1
- package/dist-esm/schemas/tools/generate_video.schema.json +5 -3
- package/dist-esm/schemas/tools/replace_video_segment.schema.json +4 -2
- package/dist-esm/schemas/tools/sound_to_video.schema.json +4 -2
- package/dist-esm/schemas/tools/video_to_video.schema.json +6 -4
- package/dist-esm/tools/definitions/animate-photo/definition.js +1 -1
- package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -1
- package/dist-esm/tools/definitions/extend-video/definition.js +3 -3
- package/dist-esm/tools/definitions/extend-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-video/definition.js +9 -4
- package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/replace-video-segment/definition.js +2 -2
- package/dist-esm/tools/definitions/replace-video-segment/definition.js.map +1 -1
- package/dist-esm/tools/definitions/sound-to-video/definition.js +7 -3
- package/dist-esm/tools/definitions/sound-to-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/video-to-video/definition.js +8 -5
- package/dist-esm/tools/definitions/video-to-video/definition.js.map +1 -1
- package/dist-esm/tools/index.js +1 -0
- package/dist-esm/tools/index.js.map +1 -1
- package/dist-esm/tools/shared/_catalogs.generated.js +12 -0
- package/dist-esm/tools/shared/_catalogs.generated.js.map +1 -1
- package/dist-esm/tools/shared/errorClassification.js +2 -1
- package/dist-esm/tools/shared/errorClassification.js.map +1 -1
- package/dist-esm/tools/shared/modelRegistry.js +6 -0
- package/dist-esm/tools/shared/modelRegistry.js.map +1 -1
- package/dist-esm/tools/shared/seedancePolicyErrors.js +23 -3
- package/dist-esm/tools/shared/seedancePolicyErrors.js.map +1 -1
- package/dist-esm/utils/errors.js +35 -1
- package/dist-esm/utils/errors.js.map +1 -1
- package/dist-esm/utils/helpers.js +2 -2
- package/dist-esm/utils/helpers.js.map +1 -1
- package/dist-esm/utils/seedanceModelIds.js +24 -1
- package/dist-esm/utils/seedanceModelIds.js.map +1 -1
- package/dist-esm/workflows/executor.js +5 -4
- package/dist-esm/workflows/executor.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { GATING_POLICIES, REPAIR_RECIPES, PROMPT_CONTRACTS, } from '../contracts/data/index.js';
|
|
2
2
|
import { normalizeSignalSource } from '../contracts/turnPolicy.js';
|
|
3
|
-
import { isSeedanceVideoModelId, SEEDANCE_VIDEO_MODEL_IDS, } from '../utils/seedanceModelIds.js';
|
|
3
|
+
import { isSeedance25VideoModelId, isSeedanceMiniVideoModelId, isSeedanceVideoModelId, SEEDANCE_VIDEO_MODEL_IDS, } from '../utils/seedanceModelIds.js';
|
|
4
4
|
import { resolveRegisteredVideoModelFamily } from '../utils/videoModelIds.js';
|
|
5
5
|
import { resolveRegisteredImageReferenceModelId } from '../utils/imageReferenceModelIds.js';
|
|
6
6
|
import { isGptImageModel, normalizeGptImageModelAlias } from '../media/gptImage.js';
|
|
7
7
|
import { WAN22_MAX_VIDEO_PIXELS } from '../media/videoSettings.js';
|
|
8
|
+
import { modelConsentRequiredPayloadFromError } from '../media/modelConsentRequired.js';
|
|
9
|
+
import { modelNotYetAvailablePayloadFromError } from '../media/modelNotYetAvailable.js';
|
|
8
10
|
import { MINIMAX_H3_KEYFRAMES_GUIDANCE } from '../contracts/toolPromptMarkers.js';
|
|
9
11
|
function isLtxWorkflow(workflow) {
|
|
10
12
|
return workflow === 't2v' || workflow === 'i2v' || workflow === 'ia2v' || workflow === 'a2v' || workflow === 'v2v';
|
|
@@ -267,6 +269,24 @@ function codeEquals(code, expected) {
|
|
|
267
269
|
return String(code).toLowerCase() === String(expected).toLowerCase();
|
|
268
270
|
}
|
|
269
271
|
export function classifySkillError(error) {
|
|
272
|
+
const consentPayload = modelConsentRequiredPayloadFromError(error);
|
|
273
|
+
if (consentPayload) {
|
|
274
|
+
return {
|
|
275
|
+
error_type: 'PERMISSION_REQUIRED',
|
|
276
|
+
category: 'permission_required',
|
|
277
|
+
message: consentPayload.message,
|
|
278
|
+
retryable: false,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
const notYetAvailablePayload = modelNotYetAvailablePayloadFromError(error);
|
|
282
|
+
if (notYetAvailablePayload) {
|
|
283
|
+
return {
|
|
284
|
+
error_type: 'MODEL_UNAVAILABLE',
|
|
285
|
+
category: 'model_unavailable',
|
|
286
|
+
message: notYetAvailablePayload.message,
|
|
287
|
+
retryable: false,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
270
290
|
const message = skillErrorMessage(error);
|
|
271
291
|
const lower = message.toLowerCase();
|
|
272
292
|
const code = skillErrorCode(error);
|
|
@@ -661,10 +681,12 @@ export const IMAGE_EDITING_SKILL = {
|
|
|
661
681
|
export const VIDEO_GENERATION_SKILL = {
|
|
662
682
|
id: 'video_generation',
|
|
663
683
|
name: 'Video generation',
|
|
664
|
-
description: 'Text-to-video synthesis with LTX, Wan, Seedance, HappyHorse, and MiniMax H3, including Wan 3.0 Enhanced through MuleRouter. Use when the user wants a new video clip generated from a prompt or loose reference set.',
|
|
684
|
+
description: 'Text-to-video synthesis with LTX, Wan, Seedance, HappyHorse, and MiniMax H3, including Seedance 2.5 Uncensored, Seedance 2.0 Mini Uncensored and Wan 3.0 Enhanced through MuleRouter. Use when the user wants a new video clip generated from a prompt or loose reference set.',
|
|
665
685
|
toolNames: ['generate_video'],
|
|
666
686
|
constraints: [
|
|
667
687
|
'For My Personas video requests, default to image_editing first to produce a conditioned scene image before animation. Use direct video only when the user explicitly asks to animate an existing persona image/reference or no source image is available for a voice-only request.',
|
|
688
|
+
'Seedance 2.5 Uncensored uses selector seedance2-5-uncensored (Sogni model id seedance-2-5-uncensored): the same modes, 480p/720p/1080p, 4-30 seconds at 24 fps, reference limits, MOV and last-frame options as seedance2-5. Use it only when the user asks for Seedance 2.5 Uncensored, Seedance Uncensored, or Seedance Spicy, and never swap it for seedance2-5. Each account must accept a one-time likeness and consent agreement in the Sogni app first; error 4103 means it has not, so tell the user to accept it there and do not retry.',
|
|
689
|
+
'Seedance 2.0 Mini Uncensored uses selector seedance2-mini-uncensored (Sogni model id seedance-2-0-mini-uncensored): the same modes, 480p/720p, 4-15 seconds at 24 fps and reference limits as seedance2-mini. Use it only when the user asks for Seedance 2.0 Mini Uncensored, Seedance Mini Uncensored, or Seedance Mini Spicy, and never swap it for seedance2-mini or seedance2-5-uncensored. It shares the Seedance 2.5 Uncensored likeness and consent agreement, so error 4103 means the account has not accepted it: tell the user to accept it in the Sogni app and do not retry.',
|
|
668
690
|
'Wan 3.0 Enhanced uses exact Sogni model id wan3.0-spicy-video (MuleRouter provider id w3.0-video): 2-30 seconds at 30 fps, 480p/720p/1080p, native audio, prompt expansion, adaptive/fixed ratios, and up to 10 image/5 video/5 audio references. First/last-frame mode and loose-reference mode are mutually exclusive. It has no document/web context, watermark, negative prompt, source-video edit, or extend mode.',
|
|
669
691
|
'MiniMax H3 two-stage: 1080p and 2K H3 delivery is its own selector, not an option. minimax-h3-fasth3-t2v-turbo-2stage on generate_video (animate_photo carries minimax-h3-fasth3-i2v-turbo-2stage and minimax-h3-fasth3-flf2v-turbo-2stage) renders the FastH3 canvas, then the worker enlarges it 2x and refines it, so the clip is delivered at twice the canvas with the same length and audio. targetResolution names the delivered class: 1080 renders a 544px short-edge canvas (960x544 becomes 1920x1088) for 10 Spark per second, 1440 or omitted renders the 768p canvas for 2K (1344x768 becomes 2688x1536) for 16 Spark per second, and 720 renders a 384px canvas (672x384 becomes 1344x768) for the regular FastH3 price of 4 Spark per second. Choose it when the user asks for 1080p, 1440p or 2K H3 output, for two-stage output, or for the sharpest/best H3 quality, and send the same prompt contract, durations and LoRAs as the matching FastH3 selector; keep ordinary 768p FastH3 output on the regular FastH3 selector at targetResolution 768. Reference-to-video has its own two-stage selectors on generate_video: minimax-h3-r2v-2stage (Standard, 20 steps) and minimax-h3-r2v-balanced-2stage (Balanced, 8 steps) take exactly the references, prompt contract, durations and LoRAs of minimax-h3-r2v and minimax-h3-r2v-balanced, deliver twice the canvas, and read targetResolution the same way; each bills its tier\'s rate plus the two-stage surcharge of the delivered class. Keep the one-stage R2V selectors for ordinary 768p output.',
|
|
670
692
|
`${MINIMAX_H3_KEYFRAMES_GUIDANCE} On generate_video only the MiniMax H3 reference-to-video selectors take keyframes, never text-to-video; the keyframe images are not references and do not go in referenceImageIndices.`,
|
|
@@ -907,8 +929,12 @@ function publicSeedanceVideoModelFromInput(input) {
|
|
|
907
929
|
const resolved = resolveVideoModelAlias(requestedModelId, 't2v');
|
|
908
930
|
if (resolved === SEEDANCE_WORKFLOW_MODELS.t2v25)
|
|
909
931
|
return 'seedance2-5';
|
|
932
|
+
if (resolved === SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored)
|
|
933
|
+
return 'seedance2-5-uncensored';
|
|
910
934
|
if (resolved === SEEDANCE_WORKFLOW_MODELS.t2vMini)
|
|
911
935
|
return 'seedance2-mini';
|
|
936
|
+
if (resolved === SEEDANCE_WORKFLOW_MODELS.t2vMiniUncensored)
|
|
937
|
+
return 'seedance2-mini-uncensored';
|
|
912
938
|
if (resolved === SEEDANCE_WORKFLOW_MODELS.t2v)
|
|
913
939
|
return 'seedance2';
|
|
914
940
|
throw new Error(`No Seedance storyboard execution contract is registered for model "${requestedModelId}".`);
|
|
@@ -925,7 +951,7 @@ const PUBLIC_SEEDANCE_ADAPTER = {
|
|
|
925
951
|
prompt: compileStoryboardImagePromptFromProject(storyboard),
|
|
926
952
|
args: {
|
|
927
953
|
videoModel,
|
|
928
|
-
...(videoModel
|
|
954
|
+
...(isSeedance25VideoModelId(videoModel) ? { targetResolution: 1080 } : {}),
|
|
929
955
|
aspectRatio: storyboard.targetVideoAspectRatio,
|
|
930
956
|
skipPromptProcessing: true,
|
|
931
957
|
expandPrompt: false,
|
|
@@ -935,14 +961,14 @@ const PUBLIC_SEEDANCE_ADAPTER = {
|
|
|
935
961
|
if (input.stage === 'scene_clip') {
|
|
936
962
|
const scene = requireStoryboardScene('SEEDANCE_ADAPTER', input);
|
|
937
963
|
const referenceTag = input.primaryReferenceTag ?? formatModelRef('seedance', 1, 'image');
|
|
938
|
-
const maxDuration = videoModel
|
|
964
|
+
const maxDuration = isSeedance25VideoModelId(videoModel) ? 30 : 15;
|
|
939
965
|
const duration = Math.max(4, Math.min(maxDuration, Math.round(scene.durationSec ?? 5)));
|
|
940
966
|
return {
|
|
941
967
|
stage: 'scene_clip',
|
|
942
968
|
prompt: compileSeedanceSceneClipPromptFromProject(storyboard, scene, referenceTag),
|
|
943
969
|
args: {
|
|
944
970
|
videoModel,
|
|
945
|
-
...(videoModel
|
|
971
|
+
...(isSeedance25VideoModelId(videoModel) ? { targetResolution: 1080 } : {}),
|
|
946
972
|
duration,
|
|
947
973
|
aspectRatio: storyboard.targetVideoAspectRatio,
|
|
948
974
|
skipPromptProcessing: true,
|
|
@@ -1267,9 +1293,11 @@ export function resolveLtx23WorkflowModelForQuality(workflow, qualityTier) {
|
|
|
1267
1293
|
export const SEEDANCE_WORKFLOW_MODELS = Object.freeze({
|
|
1268
1294
|
t2v: SEEDANCE_VIDEO_MODEL_IDS.standard,
|
|
1269
1295
|
t2vMini: SEEDANCE_VIDEO_MODEL_IDS.mini,
|
|
1296
|
+
t2vMiniUncensored: SEEDANCE_VIDEO_MODEL_IDS.miniUncensored,
|
|
1270
1297
|
ia2v: SEEDANCE_VIDEO_MODEL_IDS.standard,
|
|
1271
1298
|
v2v: SEEDANCE_VIDEO_MODEL_IDS.standard,
|
|
1272
|
-
t2v25: SEEDANCE_VIDEO_MODEL_IDS.v25
|
|
1299
|
+
t2v25: SEEDANCE_VIDEO_MODEL_IDS.v25,
|
|
1300
|
+
t2v25Uncensored: SEEDANCE_VIDEO_MODEL_IDS.v25Uncensored
|
|
1273
1301
|
});
|
|
1274
1302
|
export const HAPPYHORSE_WORKFLOW_MODELS = Object.freeze({
|
|
1275
1303
|
t2v: 'happyhorse-1.1-t2v',
|
|
@@ -1514,6 +1542,20 @@ export const VIDEO_MODEL_REGISTRY = Object.freeze({
|
|
|
1514
1542
|
maxFrames: 721,
|
|
1515
1543
|
supportsNativeAudio: true
|
|
1516
1544
|
},
|
|
1545
|
+
[SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored]: {
|
|
1546
|
+
workflow: 't2v',
|
|
1547
|
+
family: 'seedance2',
|
|
1548
|
+
defaultWidth: 1280,
|
|
1549
|
+
defaultHeight: 720,
|
|
1550
|
+
minDimension: 1,
|
|
1551
|
+
maxDimension: 2206,
|
|
1552
|
+
dimensionMultiple: 1,
|
|
1553
|
+
fps: 24,
|
|
1554
|
+
frameStep: 1,
|
|
1555
|
+
minFrames: 97,
|
|
1556
|
+
maxFrames: 721,
|
|
1557
|
+
supportsNativeAudio: true
|
|
1558
|
+
},
|
|
1517
1559
|
[WAN3_WORKFLOW_MODEL]: {
|
|
1518
1560
|
workflow: 't2v',
|
|
1519
1561
|
family: 'wan3',
|
|
@@ -1644,6 +1686,10 @@ export const VIDEO_MODEL_ALIASES = Object.freeze({
|
|
|
1644
1686
|
'seedance2-t2v': SEEDANCE_WORKFLOW_MODELS.t2v,
|
|
1645
1687
|
'seedance2-mini': SEEDANCE_WORKFLOW_MODELS.t2vMini,
|
|
1646
1688
|
'seedance2-mini-t2v': SEEDANCE_WORKFLOW_MODELS.t2vMini,
|
|
1689
|
+
'seedance2-mini-uncensored': SEEDANCE_WORKFLOW_MODELS.t2vMiniUncensored,
|
|
1690
|
+
'seedance2-mini-uncensored-t2v': SEEDANCE_WORKFLOW_MODELS.t2vMiniUncensored,
|
|
1691
|
+
'seedance-mini-uncensored': SEEDANCE_WORKFLOW_MODELS.t2vMiniUncensored,
|
|
1692
|
+
'seedance-mini-spicy': SEEDANCE_WORKFLOW_MODELS.t2vMiniUncensored,
|
|
1647
1693
|
'seedance2-fast': SEEDANCE_WORKFLOW_MODELS.t2vMini,
|
|
1648
1694
|
'seedance2-fast-t2v': SEEDANCE_WORKFLOW_MODELS.t2vMini,
|
|
1649
1695
|
'seedance-2-0-fast': SEEDANCE_WORKFLOW_MODELS.t2vMini,
|
|
@@ -1653,6 +1699,12 @@ export const VIDEO_MODEL_ALIASES = Object.freeze({
|
|
|
1653
1699
|
'seedance2-5-t2v': SEEDANCE_WORKFLOW_MODELS.t2v25,
|
|
1654
1700
|
'seedance2-5-ia2v': SEEDANCE_WORKFLOW_MODELS.t2v25,
|
|
1655
1701
|
'seedance2-5-v2v': SEEDANCE_WORKFLOW_MODELS.t2v25,
|
|
1702
|
+
'seedance2-5-uncensored': SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored,
|
|
1703
|
+
'seedance2-5-uncensored-t2v': SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored,
|
|
1704
|
+
'seedance2-5-uncensored-ia2v': SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored,
|
|
1705
|
+
'seedance2-5-uncensored-v2v': SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored,
|
|
1706
|
+
'seedance-uncensored': SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored,
|
|
1707
|
+
'seedance-spicy': SEEDANCE_WORKFLOW_MODELS.t2v25Uncensored,
|
|
1656
1708
|
wan3: WAN3_WORKFLOW_MODEL,
|
|
1657
1709
|
'wan3.0': WAN3_WORKFLOW_MODEL,
|
|
1658
1710
|
'wan3-video': WAN3_WORKFLOW_MODEL,
|
|
@@ -7278,10 +7330,10 @@ export function buildStoryboardVideoHostedToolSequenceInput(options) {
|
|
|
7278
7330
|
const imageQuality = options.imageQuality ?? 'high';
|
|
7279
7331
|
const imageOutputFormat = options.imageOutputFormat ?? 'png';
|
|
7280
7332
|
const videoModel = options.videoModel ?? 'seedance2-5';
|
|
7281
|
-
const videoMaximumDuration = videoModel
|
|
7333
|
+
const videoMaximumDuration = isSeedance25VideoModelId(videoModel) ? 30 : 15;
|
|
7282
7334
|
const requestedVideoDuration = options.videoDurationSec ?? project.durationSec ?? 5;
|
|
7283
7335
|
const videoDuration = Math.max(4, Math.min(videoMaximumDuration, Math.round(requestedVideoDuration)));
|
|
7284
|
-
const videoTargetResolution = options.videoTargetResolution ?? (videoModel
|
|
7336
|
+
const videoTargetResolution = options.videoTargetResolution ?? (isSeedanceMiniVideoModelId(videoModel) ? 720 : 1080);
|
|
7285
7337
|
const videoDimensions = dimensionsForShortSideAspectRatio(project.targetVideoAspectRatio, videoTargetResolution);
|
|
7286
7338
|
const storyboardImagePrompt = compileVideoStoryboardImagePrompt(compileOptions);
|
|
7287
7339
|
const seedanceVideoPrompt = compileSeedanceStoryboardPromptFromProject(project, {
|