@picsart/ai-sdk 6.9.0 → 6.10.1
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/_vendor/workflows-types/index.d.ts +110 -5
- package/index.d.ts +56 -3
- package/index.js +195 -16
- package/package.json +1 -1
|
@@ -111,7 +111,7 @@ interface SpeakerVoiceConfig$2 {
|
|
|
111
111
|
speaker: string;
|
|
112
112
|
voiceConfig: VoiceConfig$2;
|
|
113
113
|
}
|
|
114
|
-
type GeminiModel$1 = "gemini-2.5-pro" | "gemini-2.5-flash" | "gemini-embedding-exp" | "gemini-3-pro" | "gemini-3-pro-preview" | "gemini-3.1-pro-preview" | "gemini-3.1-flash-lite" | "gemini-3.5-flash-lite" | "gemini-3.6-flash" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-3.1-flash-lite-preview";
|
|
114
|
+
type GeminiModel$1 = "gemini-2.5-pro" | "gemini-2.5-flash" | "gemini-embedding-exp" | "gemini-2.5-flash-image" | "gemini-3-pro-image" | "gemini-3-pro-image-preview" | "gemini-3.1-flash-image" | "gemini-3.1-flash-image-preview" | "gemini-3-pro" | "gemini-3-pro-preview" | "gemini-3.1-pro-preview" | "gemini-3.1-flash-lite" | "gemini-3.5-flash-lite" | "gemini-3.6-flash" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-3.1-flash-lite-preview";
|
|
115
115
|
interface GeminiResult$1 {
|
|
116
116
|
id: string;
|
|
117
117
|
status: "ACCEPTED" | "IN_PROGRESS" | "COMPLETED" | "FAILED";
|
|
@@ -476,7 +476,7 @@ interface SpeakerVoiceConfig$1 {
|
|
|
476
476
|
speaker: string;
|
|
477
477
|
voiceConfig: VoiceConfig$1;
|
|
478
478
|
}
|
|
479
|
-
type GeminiModel = "gemini-2.5-pro" | "gemini-2.5-flash" | "gemini-embedding-exp" | "gemini-3-pro" | "gemini-3-pro-preview" | "gemini-3.1-pro-preview" | "gemini-3.1-flash-lite" | "gemini-3.5-flash-lite" | "gemini-3.6-flash" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-3.1-flash-lite-preview";
|
|
479
|
+
type GeminiModel = "gemini-2.5-pro" | "gemini-2.5-flash" | "gemini-embedding-exp" | "gemini-2.5-flash-image" | "gemini-3-pro-image" | "gemini-3-pro-image-preview" | "gemini-3.1-flash-image" | "gemini-3.1-flash-image-preview" | "gemini-3-pro" | "gemini-3-pro-preview" | "gemini-3.1-pro-preview" | "gemini-3.1-flash-lite" | "gemini-3.5-flash-lite" | "gemini-3.6-flash" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-3.1-flash-lite-preview";
|
|
480
480
|
interface GeminiResult {
|
|
481
481
|
id: string;
|
|
482
482
|
status: "ACCEPTED" | "IN_PROGRESS" | "COMPLETED" | "FAILED";
|
|
@@ -776,7 +776,7 @@ interface ClaudeV1MessagesCommand {
|
|
|
776
776
|
context_management?: ClaudeContextManagement;
|
|
777
777
|
options?: GenAIOptions$2A;
|
|
778
778
|
}
|
|
779
|
-
type ClaudeV1Models = "claude-opus-4-8" | "claude-opus-5" | "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-sonnet-5" | "claude-
|
|
779
|
+
type ClaudeV1Models = "claude-opus-4-8" | "claude-opus-5" | "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-sonnet-5" | "claude-haiku-4-5" | "claude-fable-5" | "claude-fable-5-1";
|
|
780
780
|
interface ClaudeMessageParam {
|
|
781
781
|
role: string;
|
|
782
782
|
content: ClaudeContentBlock[];
|
|
@@ -5568,6 +5568,7 @@ interface GeneratedImageResult$4 {
|
|
|
5568
5568
|
interface SeedanceCommand {
|
|
5569
5569
|
model?: SeedanceModelAlias;
|
|
5570
5570
|
content?: ContentItem[];
|
|
5571
|
+
draft?: boolean;
|
|
5571
5572
|
resolution?: Resolution;
|
|
5572
5573
|
ratio?: Ratio;
|
|
5573
5574
|
output_format?: OutputFormat;
|
|
@@ -5585,9 +5586,10 @@ interface ContentItem {
|
|
|
5585
5586
|
image_url?: ImageUrl;
|
|
5586
5587
|
video_url?: VideoUrl;
|
|
5587
5588
|
audio_url?: AudioUrl;
|
|
5589
|
+
draft_task?: DraftTask;
|
|
5588
5590
|
role?: FrameRole;
|
|
5589
5591
|
}
|
|
5590
|
-
type ContentType = "text" | "image_url" | "video_url" | "audio_url";
|
|
5592
|
+
type ContentType = "text" | "image_url" | "video_url" | "audio_url" | "draft_task";
|
|
5591
5593
|
interface ImageUrl {
|
|
5592
5594
|
url: string;
|
|
5593
5595
|
}
|
|
@@ -5597,6 +5599,11 @@ interface VideoUrl {
|
|
|
5597
5599
|
interface AudioUrl {
|
|
5598
5600
|
url: string;
|
|
5599
5601
|
}
|
|
5602
|
+
interface DraftTask {
|
|
5603
|
+
id: string;
|
|
5604
|
+
video_input: boolean;
|
|
5605
|
+
signature: string;
|
|
5606
|
+
}
|
|
5600
5607
|
type FrameRole = "first_frame" | "last_frame" | "reference_image" | "reference_video" | "reference_audio";
|
|
5601
5608
|
type Resolution = "480p" | "720p" | "1080p" | "4k";
|
|
5602
5609
|
type Ratio = "16:9" | "4:3" | "1:1" | "3:4" | "9:16" | "21:9" | "adaptive";
|
|
@@ -5628,6 +5635,7 @@ interface GeneratedVideoResult$3 {
|
|
|
5628
5635
|
video_url: string;
|
|
5629
5636
|
last_frame_url?: string;
|
|
5630
5637
|
output_format?: string;
|
|
5638
|
+
draft_task?: Record<string, unknown>;
|
|
5631
5639
|
mimeType?: string;
|
|
5632
5640
|
driveFile?: Record<string, unknown>;
|
|
5633
5641
|
}
|
|
@@ -8904,7 +8912,6 @@ interface SegmentAnythingSam3Command {
|
|
|
8904
8912
|
prompt: string;
|
|
8905
8913
|
score_threshold?: number;
|
|
8906
8914
|
mask_threshold?: number;
|
|
8907
|
-
model?: string;
|
|
8908
8915
|
}
|
|
8909
8916
|
interface SegmentAnythingSam3Response {
|
|
8910
8917
|
id: string;
|
|
@@ -12118,6 +12125,96 @@ interface LTXV23ImageToVideoFastResponse {
|
|
|
12118
12125
|
};
|
|
12119
12126
|
}
|
|
12120
12127
|
|
|
12128
|
+
interface LTXV23ReframeVideoRequest {
|
|
12129
|
+
resolution?: "720p" | "1080p";
|
|
12130
|
+
aspect_ratio?: "1:1" | "4:5" | "5:4" | "9:16" | "16:9";
|
|
12131
|
+
video_url: string;
|
|
12132
|
+
options?: {
|
|
12133
|
+
safety_checks?: {
|
|
12134
|
+
enabled?: boolean;
|
|
12135
|
+
};
|
|
12136
|
+
drive?: {
|
|
12137
|
+
name: string;
|
|
12138
|
+
attributes?: Record<string, string>;
|
|
12139
|
+
folder?: {
|
|
12140
|
+
path?: string;
|
|
12141
|
+
id?: string;
|
|
12142
|
+
};
|
|
12143
|
+
};
|
|
12144
|
+
};
|
|
12145
|
+
}
|
|
12146
|
+
interface Ltx23ReframeResponse {
|
|
12147
|
+
id: string;
|
|
12148
|
+
status: "ACCEPTED" | "IN_PROGRESS" | "COMPLETED" | "FAILED";
|
|
12149
|
+
result: LTXV23ReframeVideoResponse;
|
|
12150
|
+
}
|
|
12151
|
+
interface LTXV23ReframeVideoResponse {
|
|
12152
|
+
video: {
|
|
12153
|
+
content_type?: string | unknown;
|
|
12154
|
+
fps?: number | unknown;
|
|
12155
|
+
width?: number | unknown;
|
|
12156
|
+
num_frames?: number | unknown;
|
|
12157
|
+
file_size?: number | unknown;
|
|
12158
|
+
file_name?: string | unknown;
|
|
12159
|
+
duration?: number | unknown;
|
|
12160
|
+
height?: number | unknown;
|
|
12161
|
+
url: string;
|
|
12162
|
+
};
|
|
12163
|
+
}
|
|
12164
|
+
|
|
12165
|
+
interface LTX23QualityOutpaintInput {
|
|
12166
|
+
guidance_scale?: number;
|
|
12167
|
+
enable_prompt_expansion?: boolean;
|
|
12168
|
+
num_inference_steps?: number;
|
|
12169
|
+
prompt: string;
|
|
12170
|
+
generate_audio?: boolean;
|
|
12171
|
+
enable_safety_checker?: boolean;
|
|
12172
|
+
frames_per_second?: number;
|
|
12173
|
+
seed?: number | unknown;
|
|
12174
|
+
video_url: string;
|
|
12175
|
+
num_frames?: number;
|
|
12176
|
+
resolution?: {
|
|
12177
|
+
height?: number;
|
|
12178
|
+
width?: number;
|
|
12179
|
+
} | "auto" | "square_hd" | "square" | "portrait_4_3" | "portrait_16_9" | "landscape_4_3" | "landscape_16_9";
|
|
12180
|
+
output_resolution?: "480p" | "720p" | "1080p";
|
|
12181
|
+
negative_prompt?: string;
|
|
12182
|
+
video_strength?: number;
|
|
12183
|
+
aspect_ratio?: "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16" | "9:21";
|
|
12184
|
+
sync_mode?: boolean;
|
|
12185
|
+
video_write_mode?: "fast" | "balanced" | "small";
|
|
12186
|
+
video_quality?: "low" | "medium" | "high" | "maximum";
|
|
12187
|
+
source_scale?: number;
|
|
12188
|
+
options?: {
|
|
12189
|
+
safety_checks?: {
|
|
12190
|
+
enabled?: boolean;
|
|
12191
|
+
};
|
|
12192
|
+
drive?: {
|
|
12193
|
+
name: string;
|
|
12194
|
+
attributes?: Record<string, string>;
|
|
12195
|
+
folder?: {
|
|
12196
|
+
path?: string;
|
|
12197
|
+
id?: string;
|
|
12198
|
+
};
|
|
12199
|
+
};
|
|
12200
|
+
};
|
|
12201
|
+
}
|
|
12202
|
+
interface Ltx23QualityOutpaintResponse {
|
|
12203
|
+
id: string;
|
|
12204
|
+
status: "ACCEPTED" | "IN_PROGRESS" | "COMPLETED" | "FAILED";
|
|
12205
|
+
result: LTX23QualityOutput;
|
|
12206
|
+
}
|
|
12207
|
+
interface LTX23QualityOutput {
|
|
12208
|
+
prompt: string;
|
|
12209
|
+
seed: number;
|
|
12210
|
+
video: {
|
|
12211
|
+
url: string;
|
|
12212
|
+
content_type?: string | unknown;
|
|
12213
|
+
file_size?: number | unknown;
|
|
12214
|
+
file_name?: string | unknown;
|
|
12215
|
+
};
|
|
12216
|
+
}
|
|
12217
|
+
|
|
12121
12218
|
interface WorkflowTypes {
|
|
12122
12219
|
'check-text': {
|
|
12123
12220
|
params: CheckTextCommand;
|
|
@@ -13227,6 +13324,14 @@ interface WorkflowTypes {
|
|
|
13227
13324
|
params: LTXV25ImageToVideoFastRequest;
|
|
13228
13325
|
result: LightricksLtx25ImageToVideoFastResponse;
|
|
13229
13326
|
};
|
|
13327
|
+
'ltx-2.3/reframe': {
|
|
13328
|
+
params: LTXV23ReframeVideoRequest;
|
|
13329
|
+
result: Ltx23ReframeResponse;
|
|
13330
|
+
};
|
|
13331
|
+
'ltx-2.3-quality/outpaint': {
|
|
13332
|
+
params: LTX23QualityOutpaintInput;
|
|
13333
|
+
result: Ltx23QualityOutpaintResponse;
|
|
13334
|
+
};
|
|
13230
13335
|
}
|
|
13231
13336
|
|
|
13232
13337
|
export type { WorkflowTypes };
|
package/index.d.ts
CHANGED
|
@@ -862,6 +862,25 @@ type ModelInputById = {
|
|
|
862
862
|
imageUrls?: string[];
|
|
863
863
|
endFrame?: string;
|
|
864
864
|
};
|
|
865
|
+
"ltx-v2.3-outpaint": {
|
|
866
|
+
prompt: string;
|
|
867
|
+
videoUrl: string;
|
|
868
|
+
negativePrompt?: string;
|
|
869
|
+
aspectRatio?: "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16" | "9:21";
|
|
870
|
+
resolution?: "480p" | "720p" | "1080p";
|
|
871
|
+
numFrames?: number;
|
|
872
|
+
fps?: number;
|
|
873
|
+
sourceScale?: number;
|
|
874
|
+
videoStrength?: number;
|
|
875
|
+
cfgScale?: number;
|
|
876
|
+
numInferenceSteps?: number;
|
|
877
|
+
videoQuality?: "low" | "medium" | "high" | "maximum";
|
|
878
|
+
videoWriteMode?: "fast" | "balanced" | "small";
|
|
879
|
+
enhancePrompt?: boolean;
|
|
880
|
+
generateAudio?: boolean;
|
|
881
|
+
enableSafetyChecker?: boolean;
|
|
882
|
+
seed?: number;
|
|
883
|
+
};
|
|
865
884
|
"ltx-v2.3-pro": {
|
|
866
885
|
prompt: string;
|
|
867
886
|
duration?: 6 | 8 | 10;
|
|
@@ -872,6 +891,11 @@ type ModelInputById = {
|
|
|
872
891
|
imageUrls?: string[];
|
|
873
892
|
endFrame?: string;
|
|
874
893
|
};
|
|
894
|
+
"ltx-v2.3-reframe": {
|
|
895
|
+
videoUrl: string;
|
|
896
|
+
resolution?: "720p" | "1080p";
|
|
897
|
+
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | "5:4";
|
|
898
|
+
};
|
|
875
899
|
"ltx-v2.3-retake": {
|
|
876
900
|
prompt: string;
|
|
877
901
|
duration?: number;
|
|
@@ -1583,7 +1607,7 @@ type ModelInputById = {
|
|
|
1583
1607
|
videoUrls: [string, ...string[]];
|
|
1584
1608
|
};
|
|
1585
1609
|
"seedance-2.5": {
|
|
1586
|
-
prompt
|
|
1610
|
+
prompt?: string;
|
|
1587
1611
|
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "21:9" | "adaptive";
|
|
1588
1612
|
resolution?: "480p" | "720p" | "1080p";
|
|
1589
1613
|
duration?: number;
|
|
@@ -1591,6 +1615,12 @@ type ModelInputById = {
|
|
|
1591
1615
|
returnLastFrame?: boolean;
|
|
1592
1616
|
outputFormat?: "mp4" | "mov";
|
|
1593
1617
|
colorDepth?: "10bit" | "8bit";
|
|
1618
|
+
draft?: boolean;
|
|
1619
|
+
draftTask?: {
|
|
1620
|
+
id: string;
|
|
1621
|
+
video_input: boolean;
|
|
1622
|
+
signature: string;
|
|
1623
|
+
};
|
|
1594
1624
|
imageUrls?: string[];
|
|
1595
1625
|
videoUrls?: string[];
|
|
1596
1626
|
audioUrls?: string[];
|
|
@@ -1605,6 +1635,7 @@ type ModelInputById = {
|
|
|
1605
1635
|
returnLastFrame?: boolean;
|
|
1606
1636
|
outputFormat?: "mp4" | "mov";
|
|
1607
1637
|
colorDepth?: "10bit" | "8bit";
|
|
1638
|
+
draft?: boolean;
|
|
1608
1639
|
videoUrl: string;
|
|
1609
1640
|
imageUrls?: string[];
|
|
1610
1641
|
};
|
|
@@ -1616,10 +1647,11 @@ type ModelInputById = {
|
|
|
1616
1647
|
generateAudio?: boolean;
|
|
1617
1648
|
outputFormat?: "mp4" | "mov";
|
|
1618
1649
|
colorDepth?: "10bit" | "8bit";
|
|
1650
|
+
draft?: boolean;
|
|
1619
1651
|
videoUrls: [string, ...string[]];
|
|
1620
1652
|
};
|
|
1621
1653
|
"seedance-2.5-without-moderation": {
|
|
1622
|
-
prompt
|
|
1654
|
+
prompt?: string;
|
|
1623
1655
|
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "21:9" | "adaptive";
|
|
1624
1656
|
resolution?: "480p" | "720p" | "1080p";
|
|
1625
1657
|
duration?: number;
|
|
@@ -1627,6 +1659,12 @@ type ModelInputById = {
|
|
|
1627
1659
|
returnLastFrame?: boolean;
|
|
1628
1660
|
outputFormat?: "mp4" | "mov";
|
|
1629
1661
|
colorDepth?: "10bit" | "8bit";
|
|
1662
|
+
draft?: boolean;
|
|
1663
|
+
draftTask?: {
|
|
1664
|
+
id: string;
|
|
1665
|
+
video_input: boolean;
|
|
1666
|
+
signature: string;
|
|
1667
|
+
};
|
|
1630
1668
|
imageUrls?: string[];
|
|
1631
1669
|
videoUrls?: string[];
|
|
1632
1670
|
audioUrls?: string[];
|
|
@@ -1641,6 +1679,7 @@ type ModelInputById = {
|
|
|
1641
1679
|
returnLastFrame?: boolean;
|
|
1642
1680
|
outputFormat?: "mp4" | "mov";
|
|
1643
1681
|
colorDepth?: "10bit" | "8bit";
|
|
1682
|
+
draft?: boolean;
|
|
1644
1683
|
videoUrl: string;
|
|
1645
1684
|
imageUrls?: string[];
|
|
1646
1685
|
};
|
|
@@ -1652,6 +1691,7 @@ type ModelInputById = {
|
|
|
1652
1691
|
generateAudio?: boolean;
|
|
1653
1692
|
outputFormat?: "mp4" | "mov";
|
|
1654
1693
|
colorDepth?: "10bit" | "8bit";
|
|
1694
|
+
draft?: boolean;
|
|
1655
1695
|
videoUrls: [string, ...string[]];
|
|
1656
1696
|
};
|
|
1657
1697
|
"seedance-i2v": {
|
|
@@ -2683,6 +2723,17 @@ interface GenerateResultItemMetadata {
|
|
|
2683
2723
|
/** URL of the generated video's last frame, when the model was asked for it
|
|
2684
2724
|
* (`returnLastFrame`, seedance) — the seed for frame-chaining flows. */
|
|
2685
2725
|
lastFrameUrl?: string;
|
|
2726
|
+
/** The draft a Seedance 2.5 Draft generation produced — pass it back
|
|
2727
|
+
* unchanged as `draftTask` to the matching `-draft-final` model to render
|
|
2728
|
+
* the final 1080p video (valid 7 days). Wire field names on purpose: the
|
|
2729
|
+
* worker signs it, so any change is rejected. */
|
|
2730
|
+
draftTask?: SeedanceDraftTask;
|
|
2731
|
+
}
|
|
2732
|
+
/** A Seedance 2.5 draft reference, as the worker issues it. */
|
|
2733
|
+
interface SeedanceDraftTask {
|
|
2734
|
+
id: string;
|
|
2735
|
+
video_input: boolean;
|
|
2736
|
+
signature: string;
|
|
2686
2737
|
}
|
|
2687
2738
|
|
|
2688
2739
|
/**
|
|
@@ -3121,7 +3172,9 @@ declare const Models: {
|
|
|
3121
3172
|
readonly LtxV2Retake: "ltx-v2-retake";
|
|
3122
3173
|
readonly LtxV23Extend: "ltx-v2.3-extend";
|
|
3123
3174
|
readonly LtxV23Fast: "ltx-v2.3-fast";
|
|
3175
|
+
readonly LtxV23Outpaint: "ltx-v2.3-outpaint";
|
|
3124
3176
|
readonly LtxV23Pro: "ltx-v2.3-pro";
|
|
3177
|
+
readonly LtxV23Reframe: "ltx-v2.3-reframe";
|
|
3125
3178
|
readonly LtxV23Retake: "ltx-v2.3-retake";
|
|
3126
3179
|
readonly LtxV25Fast: "ltx-v2.5-fast";
|
|
3127
3180
|
readonly LtxV25Pro: "ltx-v2.5-pro";
|
|
@@ -3390,4 +3443,4 @@ declare const getModel: (id: string) => ModelDefinition | undefined;
|
|
|
3390
3443
|
*/
|
|
3391
3444
|
declare const findModel: (ref: string) => ModelDefinition | undefined;
|
|
3392
3445
|
|
|
3393
|
-
export { ALL_MODELS, type AiClient, ApiError, type ApiErrorCode, type ApiErrorInit, type ApiResponse, type ApiRunOptions, type ApiSchemas, type ApisClient, type AppIdentity, type AppType, type AuthenticatedFetch, type AvatarOption, type BooleanDescriptor, type BooleanEntry, type CatalogDescriptor, type CatalogEntry, type CatalogItem, type CatalogPage, type CatalogPageOptions, type CatalogPreview, type CatalogQuery, type CatalogResult, type CatalogSource, type CatalogsClient, type CatalogsOptions, type ClientConfig, type CreditRange, type CreditRangeContext, type CreditTier, type CreditUsage, DEFAULT_VISIBLE_RELEASES, type DeepLinkResult, type DriveAttributes, type DriveClient, type DriveConfig, type DriveFile, type DriveFileDetails, type DriveFolder, type DriveMediaItem, type DriveSaveResult, type EntryMeta, type EnumDescriptor, type EnumEntry, type EnumOption, type FileDescriptor, type FileEntry, type FlatParamEntry, type GenerateOptions, type GenerateResult, type GenerateResultItem, type GenerateResultItemMetadata, type GenerateTextResult, type GenerationContext, type GenerationEvent, GenerationEventType, type GenerationFile, type GenerationMode, type GenerationOptions, type GenerationProgress, type ListOptions, type MediaModelId, type MediaTypeFilter, Model, type ModelDefinition, type ModelDescriptor, type ModelFilter, type ModelInput, type ModelInputById, type ModelMeta, type ModelParams, type ModelParamsAccessor, Models, type ObjectDescriptor, type ObjectEntry, type ParamDescriptor, type ParamEntry, type ParamOption, type PayloadDriveFolderOptions, type PayloadDriveOptions, type PayloadInputsTransformationOptions, type PricingOptions, type ProviderInfo, type RangeDescriptor, type RangeEntry, type ReleaseTag, type SaveParams, type SdkPayload, type SdkTransport, type TextDescriptor, type TextEntry, type TextModelId, type TextModelInputById, type ToolUsage, type TransportPollOptions, type TransportResult, type TypedModelId, type UserReaction, type ValidationResult, type VoiceOption, type WorkflowJobHandle, type WorkflowSubmitRequest, buildFilename, buildGenerationAttributes, catalog, createClient, decodeDeepLinkPayload, encodeDeepLinkPayload, findModel, getModel, getModelsByMode, getVoiceById, inferResourceType, isVisibleForReleases, parseGeneration, releaseOf, toAvatarOption, toVoiceOption };
|
|
3446
|
+
export { ALL_MODELS, type AiClient, ApiError, type ApiErrorCode, type ApiErrorInit, type ApiResponse, type ApiRunOptions, type ApiSchemas, type ApisClient, type AppIdentity, type AppType, type AuthenticatedFetch, type AvatarOption, type BooleanDescriptor, type BooleanEntry, type CatalogDescriptor, type CatalogEntry, type CatalogItem, type CatalogPage, type CatalogPageOptions, type CatalogPreview, type CatalogQuery, type CatalogResult, type CatalogSource, type CatalogsClient, type CatalogsOptions, type ClientConfig, type CreditRange, type CreditRangeContext, type CreditTier, type CreditUsage, DEFAULT_VISIBLE_RELEASES, type DeepLinkResult, type DriveAttributes, type DriveClient, type DriveConfig, type DriveFile, type DriveFileDetails, type DriveFolder, type DriveMediaItem, type DriveSaveResult, type EntryMeta, type EnumDescriptor, type EnumEntry, type EnumOption, type FileDescriptor, type FileEntry, type FlatParamEntry, type GenerateOptions, type GenerateResult, type GenerateResultItem, type GenerateResultItemMetadata, type GenerateTextResult, type GenerationContext, type GenerationEvent, GenerationEventType, type GenerationFile, type GenerationMode, type GenerationOptions, type GenerationProgress, type ListOptions, type MediaModelId, type MediaTypeFilter, Model, type ModelDefinition, type ModelDescriptor, type ModelFilter, type ModelInput, type ModelInputById, type ModelMeta, type ModelParams, type ModelParamsAccessor, Models, type ObjectDescriptor, type ObjectEntry, type ParamDescriptor, type ParamEntry, type ParamOption, type PayloadDriveFolderOptions, type PayloadDriveOptions, type PayloadInputsTransformationOptions, type PricingOptions, type ProviderInfo, type RangeDescriptor, type RangeEntry, type ReleaseTag, type SaveParams, type SdkPayload, type SdkTransport, type SeedanceDraftTask, type TextDescriptor, type TextEntry, type TextModelId, type TextModelInputById, type ToolUsage, type TransportPollOptions, type TransportResult, type TypedModelId, type UserReaction, type ValidationResult, type VoiceOption, type WorkflowJobHandle, type WorkflowSubmitRequest, buildFilename, buildGenerationAttributes, catalog, createClient, decodeDeepLinkPayload, encodeDeepLinkPayload, findModel, getModel, getModelsByMode, getVoiceById, inferResourceType, isVisibleForReleases, parseGeneration, releaseOf, toAvatarOption, toVoiceOption };
|
package/index.js
CHANGED
|
@@ -2111,6 +2111,10 @@ var LTX_RESOLUTIONS = ["1080p", "1440p", "2160p"];
|
|
|
2111
2111
|
var LTX_23_AR = ["16:9", "9:16"];
|
|
2112
2112
|
var LTX_23_FPS = [24, 25, 48, 50];
|
|
2113
2113
|
var LTX_PROMPT_MAX = 5e3;
|
|
2114
|
+
var LTX_23_REFRAME_RESOLUTIONS = ["720p", "1080p"];
|
|
2115
|
+
var LTX_23_REFRAME_AR = ["16:9", "9:16", "1:1", "4:5", "5:4"];
|
|
2116
|
+
var LTX_23_OUTPAINT_RESOLUTIONS = ["480p", "720p", "1080p"];
|
|
2117
|
+
var LTX_23_OUTPAINT_AR = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "9:21"];
|
|
2114
2118
|
var LTX_25_AR = ["16:9", "9:16"];
|
|
2115
2119
|
var LTX_25_PRO_RESOLUTIONS = ["720p", "1080p"];
|
|
2116
2120
|
var LTX_25_FAST_RESOLUTIONS = ["720p", "1080p", "1440p", "2160p"];
|
|
@@ -2412,6 +2416,60 @@ var { MODELS: MODELS2 } = defineModels("ltx", [
|
|
|
2412
2416
|
...params.videoInput("Source Video")
|
|
2413
2417
|
}
|
|
2414
2418
|
},
|
|
2419
|
+
{
|
|
2420
|
+
id: "ltx-v2.3-reframe",
|
|
2421
|
+
name: "LTX 2.3 Reframe",
|
|
2422
|
+
modelId: "fal-ai-ltx-2.3-reframe",
|
|
2423
|
+
addedAt: "2026-09-23",
|
|
2424
|
+
workflow: "ltx-2.3/reframe",
|
|
2425
|
+
estimatedTime: 45,
|
|
2426
|
+
mode: "video",
|
|
2427
|
+
inputType: "v2v",
|
|
2428
|
+
description: "Reframe a video into a new aspect ratio \u2014 the source is re-cropped and the newly exposed edges are generated to match. Takes no prompt.",
|
|
2429
|
+
features: [feat("Video Input", "input"), feat("Aspect Ratio", "characteristic"), feat("Up to 1080p", "resolution")],
|
|
2430
|
+
paramConfig: {
|
|
2431
|
+
...params.videoInput("Source Video", "asset", true),
|
|
2432
|
+
...params.resolution(LTX_23_REFRAME_RESOLUTIONS, "1080p"),
|
|
2433
|
+
...params.aspectRatio(LTX_23_REFRAME_AR)
|
|
2434
|
+
}
|
|
2435
|
+
},
|
|
2436
|
+
{
|
|
2437
|
+
// fal serves this one from the `ltx-2.3-quality` model id, hence the
|
|
2438
|
+
// workflow path; `modelId` mirrors it so the pricing key reads the same.
|
|
2439
|
+
id: "ltx-v2.3-outpaint",
|
|
2440
|
+
name: "LTX 2.3 Outpaint",
|
|
2441
|
+
modelId: "fal-ai-ltx-2.3-quality-outpaint",
|
|
2442
|
+
addedAt: "2026-09-23",
|
|
2443
|
+
workflow: "ltx-2.3-quality/outpaint",
|
|
2444
|
+
estimatedTime: 180,
|
|
2445
|
+
mode: "video",
|
|
2446
|
+
inputType: "v2v",
|
|
2447
|
+
description: "Expand a video past its original frame \u2014 the source stays put inside a wider canvas and the surrounding region is generated to match.",
|
|
2448
|
+
features: [feat("Video Input", "input"), feat("Outpaint", "characteristic"), feat("Audio", "audio"), feat("Up to 1080p", "resolution")],
|
|
2449
|
+
paramConfig: {
|
|
2450
|
+
...params.prompt({ maxLength: LTX_PROMPT_MAX }),
|
|
2451
|
+
...params.videoInput("Source Video", "asset", true),
|
|
2452
|
+
...params.negativePrompt(),
|
|
2453
|
+
...params.aspectRatio(LTX_23_OUTPAINT_AR),
|
|
2454
|
+
...params.resolution(LTX_23_OUTPAINT_RESOLUTIONS, "720p"),
|
|
2455
|
+
...p.range("numFrames", 9, 481, 121, { label: "Frames" }),
|
|
2456
|
+
...p.range("fps", 1, 60, 24, { label: "FPS" }),
|
|
2457
|
+
// 1.0 fits the source as large as the canvas allows; lower values zoom it
|
|
2458
|
+
// out and leave a wider generated border, which the vendor calls less stable.
|
|
2459
|
+
...p.range("sourceScale", 0.25, 1, 1, { step: 0.05, label: "Source Scale" }),
|
|
2460
|
+
// How strongly the original content is preserved inside the new canvas.
|
|
2461
|
+
...p.range("videoStrength", 0, 1, 1, { step: 0.05, label: "Source Strength" }),
|
|
2462
|
+
...params.cfgScale(1, 20, 1),
|
|
2463
|
+
...p.range("numInferenceSteps", 8, 30, 15, { label: "Inference Steps" }),
|
|
2464
|
+
...p.enum("videoQuality", ["low", "medium", "high", "maximum"], "high", { label: "Video Quality" }),
|
|
2465
|
+
...p.enum("videoWriteMode", ["fast", "balanced", "small"], "balanced", { label: "Write Mode" }),
|
|
2466
|
+
...params.enhancePrompt(),
|
|
2467
|
+
...params.generateAudio(),
|
|
2468
|
+
...p.boolean("enableSafetyChecker", true, "Safety Checker"),
|
|
2469
|
+
// Default-less on purpose: unset means the vendor picks a random seed.
|
|
2470
|
+
...params.seed()
|
|
2471
|
+
}
|
|
2472
|
+
},
|
|
2415
2473
|
// ── LTX 2.5 ──────────────────────────────────────────────────────
|
|
2416
2474
|
// One entry per tier: text-to-video on `workflow`, image-to-video on
|
|
2417
2475
|
// `editWorkflow`. A start or end frame is what routes a call to the image
|
|
@@ -3993,7 +4051,61 @@ var seedance25OutputFormat = (ctx) => {
|
|
|
3993
4051
|
if (ctx.outputFormat === "mov") return "mov";
|
|
3994
4052
|
return ctx.colorDepth === "8bit" ? "mp4_8bit" : "mp4";
|
|
3995
4053
|
};
|
|
3996
|
-
var
|
|
4054
|
+
var SEEDANCE_25_DRAFT_RESOLUTION = "480p";
|
|
4055
|
+
var SEEDANCE_25_DRAFT_FINAL_RESOLUTION = "1080p";
|
|
4056
|
+
var withSeedance25DraftMode = (modelAlias, build) => (ctx) => {
|
|
4057
|
+
const { draft, draftTask } = ctx;
|
|
4058
|
+
if (draftTask) {
|
|
4059
|
+
const sentContent = build(ctx).content ?? [];
|
|
4060
|
+
return {
|
|
4061
|
+
model: modelAlias,
|
|
4062
|
+
content: [{ type: "draft_task", draft_task: draftTask }, ...sentContent],
|
|
4063
|
+
resolution: ctx.resolution ?? SEEDANCE_25_DRAFT_FINAL_RESOLUTION,
|
|
4064
|
+
output_format: seedance25OutputFormat(ctx),
|
|
4065
|
+
...ctx.returnLastFrame ? { return_last_frame: true } : {},
|
|
4066
|
+
...ctx.aspectRatio !== void 0 ? { ratio: ctx.aspectRatio } : {},
|
|
4067
|
+
...ctx.duration !== void 0 ? { duration: ctx.duration } : {},
|
|
4068
|
+
...ctx.generateAudio !== void 0 ? { generate_audio: ctx.generateAudio } : {},
|
|
4069
|
+
...draft !== void 0 ? { draft } : {}
|
|
4070
|
+
};
|
|
4071
|
+
}
|
|
4072
|
+
const payload = build(ctx);
|
|
4073
|
+
return draft ? { ...payload, draft: true, resolution: ctx.resolution ?? SEEDANCE_25_DRAFT_RESOLUTION } : payload;
|
|
4074
|
+
};
|
|
4075
|
+
var SEEDANCE_25_DRAFT_RESOLUTION_REASON = "Draft previews render at 480p only.";
|
|
4076
|
+
var SEEDANCE_25_DRAFT_FINAL_RESOLUTION_REASON = "The final video from a draft renders at 1080p only.";
|
|
4077
|
+
var SEEDANCE_25_DRAFT_REUSED_REASON = "A final from a draft reuses the draft's settings.";
|
|
4078
|
+
var seedance25DraftConstraints = [
|
|
4079
|
+
{
|
|
4080
|
+
when: { draft: { is: true } },
|
|
4081
|
+
then: { resolution: { allowed: [SEEDANCE_25_DRAFT_RESOLUTION], reason: SEEDANCE_25_DRAFT_RESOLUTION_REASON } }
|
|
4082
|
+
}
|
|
4083
|
+
];
|
|
4084
|
+
var seedance25DraftFinalConstraints = [
|
|
4085
|
+
...seedance25DraftConstraints,
|
|
4086
|
+
{
|
|
4087
|
+
when: { draftTask: { exists: true } },
|
|
4088
|
+
then: {
|
|
4089
|
+
resolution: { allowed: [SEEDANCE_25_DRAFT_FINAL_RESOLUTION], reason: SEEDANCE_25_DRAFT_FINAL_RESOLUTION_REASON },
|
|
4090
|
+
draft: { disabled: true, reason: "A final video is rendered from a draft, not as one." },
|
|
4091
|
+
...Object.fromEntries([
|
|
4092
|
+
"prompt",
|
|
4093
|
+
"imageUrls",
|
|
4094
|
+
"videoUrls",
|
|
4095
|
+
"audioUrls",
|
|
4096
|
+
"startFrame",
|
|
4097
|
+
"endFrame",
|
|
4098
|
+
"aspectRatio",
|
|
4099
|
+
"duration",
|
|
4100
|
+
"generateAudio"
|
|
4101
|
+
].map((key) => [
|
|
4102
|
+
key,
|
|
4103
|
+
{ disabled: true, reason: SEEDANCE_25_DRAFT_REUSED_REASON }
|
|
4104
|
+
]))
|
|
4105
|
+
}
|
|
4106
|
+
}
|
|
4107
|
+
];
|
|
4108
|
+
var buildSeedance25PayloadFor = (modelAlias) => withSeedance25DraftMode(modelAlias, (ctx) => {
|
|
3997
4109
|
const refImages = ctx.imageUrls ?? [];
|
|
3998
4110
|
const refVideos = ctx.videoUrls ?? [];
|
|
3999
4111
|
const refAudios = ctx.audioUrls ?? [];
|
|
@@ -4018,7 +4130,9 @@ var buildSeedance25PayloadFor = (modelAlias) => (ctx) => {
|
|
|
4018
4130
|
role: "reference_audio"
|
|
4019
4131
|
})),
|
|
4020
4132
|
...ctx.endFrame ? [{ type: "image_url", image_url: { url: ctx.endFrame }, role: "last_frame" }] : [],
|
|
4021
|
-
|
|
4133
|
+
// The prompt is optional on 2.5 (media-only input is valid); an empty
|
|
4134
|
+
// text item is not sent.
|
|
4135
|
+
...ctx.prompt?.trim() ? [{ type: "text", text: ctx.prompt }] : []
|
|
4022
4136
|
],
|
|
4023
4137
|
ratio: usesFrame ? "adaptive" : ctx.aspectRatio ?? "16:9",
|
|
4024
4138
|
duration: ctx.duration ?? 5,
|
|
@@ -4027,8 +4141,8 @@ var buildSeedance25PayloadFor = (modelAlias) => (ctx) => {
|
|
|
4027
4141
|
output_format: seedance25OutputFormat(ctx),
|
|
4028
4142
|
...ctx.returnLastFrame ? { return_last_frame: true } : {}
|
|
4029
4143
|
};
|
|
4030
|
-
};
|
|
4031
|
-
var buildSeedance25VideoEditPayloadFor = (modelAlias) => (ctx) => ({
|
|
4144
|
+
});
|
|
4145
|
+
var buildSeedance25VideoEditPayloadFor = (modelAlias) => withSeedance25DraftMode(modelAlias, (ctx) => ({
|
|
4032
4146
|
model: modelAlias,
|
|
4033
4147
|
content: [
|
|
4034
4148
|
{ type: "text", text: ctx.prompt },
|
|
@@ -4045,8 +4159,8 @@ var buildSeedance25VideoEditPayloadFor = (modelAlias) => (ctx) => ({
|
|
|
4045
4159
|
generate_audio: ctx.generateAudio ?? true,
|
|
4046
4160
|
output_format: seedance25OutputFormat(ctx),
|
|
4047
4161
|
...ctx.returnLastFrame ? { return_last_frame: true } : {}
|
|
4048
|
-
});
|
|
4049
|
-
var buildSeedance25VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
|
|
4162
|
+
}));
|
|
4163
|
+
var buildSeedance25VideoExtendPayloadFor = (modelAlias) => withSeedance25DraftMode(modelAlias, (ctx) => ({
|
|
4050
4164
|
model: modelAlias,
|
|
4051
4165
|
content: [
|
|
4052
4166
|
{ type: "text", text: ctx.prompt },
|
|
@@ -4061,12 +4175,27 @@ var buildSeedance25VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
|
|
|
4061
4175
|
resolution: ctx.resolution ?? "1080p",
|
|
4062
4176
|
generate_audio: ctx.generateAudio ?? true,
|
|
4063
4177
|
output_format: seedance25OutputFormat(ctx)
|
|
4064
|
-
});
|
|
4178
|
+
}));
|
|
4065
4179
|
var SEEDANCE_AR = ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive"];
|
|
4066
4180
|
var SEEDANCE_25_FORMATS = ["mp4", "mov"];
|
|
4067
4181
|
var SEEDANCE_25_COLOR_DEPTHS = ["10bit", "8bit"];
|
|
4068
4182
|
var SEEDANCE_V2_DURATIONS = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
|
|
4069
4183
|
var SEEDANCE_25_DURATION = { min: 4, max: 30 };
|
|
4184
|
+
var seedance25DraftParam = p.boolean("draft", false, "Draft");
|
|
4185
|
+
var seedance25DraftTaskParam = {
|
|
4186
|
+
draftTask: {
|
|
4187
|
+
label: "Draft",
|
|
4188
|
+
required: false,
|
|
4189
|
+
descriptor: {
|
|
4190
|
+
kind: "object",
|
|
4191
|
+
fields: {
|
|
4192
|
+
id: { kind: "text" },
|
|
4193
|
+
video_input: { kind: "boolean", default: false },
|
|
4194
|
+
signature: { kind: "text" }
|
|
4195
|
+
}
|
|
4196
|
+
}
|
|
4197
|
+
}
|
|
4198
|
+
};
|
|
4070
4199
|
var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
4071
4200
|
{
|
|
4072
4201
|
id: "seedance-2.5",
|
|
@@ -4075,7 +4204,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4075
4204
|
addedAt: "2026-08-06",
|
|
4076
4205
|
workflow: "seedance",
|
|
4077
4206
|
buildPayload: buildSeedance25PayloadFor("seedance_2_5"),
|
|
4078
|
-
constraints: seedance25Constraints,
|
|
4207
|
+
constraints: [...seedance25Constraints, ...seedance25DraftFinalConstraints],
|
|
4079
4208
|
estimatedTime: 20,
|
|
4080
4209
|
mode: "video",
|
|
4081
4210
|
inputType: "t2v",
|
|
@@ -4083,7 +4212,9 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4083
4212
|
description: "Latest cinematic video with audio, multi-reference input, and mp4/mov output in 10- or 8-bit. Up to 30s.",
|
|
4084
4213
|
features: [feat("Reference Image", "frame"), feat("Start/End Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("4-30 sec", "duration")],
|
|
4085
4214
|
paramConfig: {
|
|
4086
|
-
|
|
4215
|
+
// Optional on 2.5 (media-only input is valid) — and a final from a
|
|
4216
|
+
// draft must not carry one (the vendor refuses it).
|
|
4217
|
+
...params.prompt({ required: false }),
|
|
4087
4218
|
...params.aspectRatio(SEEDANCE_AR),
|
|
4088
4219
|
...params.resolution(["480p", "720p", "1080p"], "1080p"),
|
|
4089
4220
|
...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 5),
|
|
@@ -4091,6 +4222,8 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4091
4222
|
...params.returnLastFrame(),
|
|
4092
4223
|
...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
|
|
4093
4224
|
...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
|
|
4225
|
+
...seedance25DraftParam,
|
|
4226
|
+
...seedance25DraftTaskParam,
|
|
4094
4227
|
// 2.5 lifts the reference caps to 30 images / 10 videos / 10 audios.
|
|
4095
4228
|
...params.imageInput(30, "Reference Images", false, "reference", SEEDANCE_IMAGE_BOUNDS),
|
|
4096
4229
|
...params.videoInputs(10, "Reference Videos", false, SEEDANCE_25_VIDEO_BOUNDS),
|
|
@@ -4110,7 +4243,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4110
4243
|
release: "preview",
|
|
4111
4244
|
workflow: "seedance",
|
|
4112
4245
|
buildPayload: buildSeedance25PayloadFor("seedance_2_5_without_moderation"),
|
|
4113
|
-
constraints: seedance25Constraints,
|
|
4246
|
+
constraints: [...seedance25Constraints, ...seedance25DraftFinalConstraints],
|
|
4114
4247
|
estimatedTime: 20,
|
|
4115
4248
|
mode: "video",
|
|
4116
4249
|
inputType: "t2v",
|
|
@@ -4118,7 +4251,9 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4118
4251
|
description: "Seedance 2.5 with vendor moderation disabled \u2014 cinematic video with audio, multi-reference input, and mp4/mov output in 10- or 8-bit. Up to 30s.",
|
|
4119
4252
|
features: [feat("Reference Image", "frame"), feat("Start/End Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("4-30 sec", "duration")],
|
|
4120
4253
|
paramConfig: {
|
|
4121
|
-
|
|
4254
|
+
// Optional on 2.5 (media-only input is valid) — and a final from a
|
|
4255
|
+
// draft must not carry one (the vendor refuses it).
|
|
4256
|
+
...params.prompt({ required: false }),
|
|
4122
4257
|
...params.aspectRatio(SEEDANCE_AR),
|
|
4123
4258
|
...params.resolution(["480p", "720p", "1080p"], "1080p"),
|
|
4124
4259
|
...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 5),
|
|
@@ -4126,6 +4261,8 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4126
4261
|
...params.returnLastFrame(),
|
|
4127
4262
|
...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
|
|
4128
4263
|
...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
|
|
4264
|
+
...seedance25DraftParam,
|
|
4265
|
+
...seedance25DraftTaskParam,
|
|
4129
4266
|
// 2.5 lifts the reference caps to 30 images / 10 videos / 10 audios.
|
|
4130
4267
|
...params.imageInput(30, "Reference Images", false, "reference", SEEDANCE_IMAGE_BOUNDS),
|
|
4131
4268
|
...params.videoInputs(10, "Reference Videos", false, SEEDANCE_25_VIDEO_BOUNDS),
|
|
@@ -4141,7 +4278,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4141
4278
|
addedAt: "2026-08-06",
|
|
4142
4279
|
workflow: "seedance",
|
|
4143
4280
|
buildPayload: buildSeedance25VideoEditPayloadFor("seedance_2_5"),
|
|
4144
|
-
constraints: seedance25ColorDepthConstraints,
|
|
4281
|
+
constraints: [...seedance25ColorDepthConstraints, ...seedance25DraftConstraints],
|
|
4145
4282
|
estimatedTime: 60,
|
|
4146
4283
|
mode: "video",
|
|
4147
4284
|
inputType: "v2v",
|
|
@@ -4158,6 +4295,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4158
4295
|
...params.returnLastFrame(),
|
|
4159
4296
|
...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
|
|
4160
4297
|
...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
|
|
4298
|
+
...seedance25DraftParam,
|
|
4161
4299
|
// Every limit rides in `bounds`; the positional maxDuration / maxShortSide
|
|
4162
4300
|
// / maxBytes args predate it and are skipped rather than duplicated.
|
|
4163
4301
|
...params.videoInput("Source Video", "reference", true, void 0, void 0, void 0, SEEDANCE_25_VIDEO_BOUNDS),
|
|
@@ -4172,7 +4310,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4172
4310
|
release: "preview",
|
|
4173
4311
|
workflow: "seedance",
|
|
4174
4312
|
buildPayload: buildSeedance25VideoEditPayloadFor("seedance_2_5_without_moderation"),
|
|
4175
|
-
constraints: seedance25ColorDepthConstraints,
|
|
4313
|
+
constraints: [...seedance25ColorDepthConstraints, ...seedance25DraftConstraints],
|
|
4176
4314
|
estimatedTime: 60,
|
|
4177
4315
|
mode: "video",
|
|
4178
4316
|
inputType: "v2v",
|
|
@@ -4189,6 +4327,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4189
4327
|
...params.returnLastFrame(),
|
|
4190
4328
|
...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
|
|
4191
4329
|
...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
|
|
4330
|
+
...seedance25DraftParam,
|
|
4192
4331
|
// Every limit rides in `bounds`; the positional maxDuration / maxShortSide
|
|
4193
4332
|
// / maxBytes args predate it and are skipped rather than duplicated.
|
|
4194
4333
|
...params.videoInput("Source Video", "reference", true, void 0, void 0, void 0, SEEDANCE_25_VIDEO_BOUNDS),
|
|
@@ -4202,7 +4341,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4202
4341
|
addedAt: "2026-08-06",
|
|
4203
4342
|
workflow: "seedance",
|
|
4204
4343
|
buildPayload: buildSeedance25VideoExtendPayloadFor("seedance_2_5"),
|
|
4205
|
-
constraints: seedance25ColorDepthConstraints,
|
|
4344
|
+
constraints: [...seedance25ColorDepthConstraints, ...seedance25DraftConstraints],
|
|
4206
4345
|
estimatedTime: 200,
|
|
4207
4346
|
mode: "video",
|
|
4208
4347
|
inputType: "v2v",
|
|
@@ -4219,6 +4358,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4219
4358
|
...params.generateAudio(),
|
|
4220
4359
|
...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
|
|
4221
4360
|
...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
|
|
4361
|
+
...seedance25DraftParam,
|
|
4222
4362
|
...params.videoInputs(10, "Source Videos", true, SEEDANCE_25_VIDEO_BOUNDS)
|
|
4223
4363
|
}
|
|
4224
4364
|
},
|
|
@@ -4230,7 +4370,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4230
4370
|
release: "preview",
|
|
4231
4371
|
workflow: "seedance",
|
|
4232
4372
|
buildPayload: buildSeedance25VideoExtendPayloadFor("seedance_2_5_without_moderation"),
|
|
4233
|
-
constraints: seedance25ColorDepthConstraints,
|
|
4373
|
+
constraints: [...seedance25ColorDepthConstraints, ...seedance25DraftConstraints],
|
|
4234
4374
|
estimatedTime: 200,
|
|
4235
4375
|
mode: "video",
|
|
4236
4376
|
inputType: "v2v",
|
|
@@ -4247,6 +4387,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
|
|
|
4247
4387
|
...params.generateAudio(),
|
|
4248
4388
|
...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
|
|
4249
4389
|
...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
|
|
4390
|
+
...seedance25DraftParam,
|
|
4250
4391
|
...params.videoInputs(10, "Source Videos", true, SEEDANCE_25_VIDEO_BOUNDS)
|
|
4251
4392
|
}
|
|
4252
4393
|
},
|
|
@@ -9800,9 +9941,35 @@ var buildLtx25FastI2VPayload = (input) => ({
|
|
|
9800
9941
|
...input.cameraMotion && input.cameraMotion !== "none" ? { camera_motion: input.cameraMotion } : {},
|
|
9801
9942
|
generate_audio: input.generateAudio ?? true
|
|
9802
9943
|
});
|
|
9944
|
+
var buildLtx23ReframePayload = (input) => ({
|
|
9945
|
+
video_url: input.videoUrl,
|
|
9946
|
+
...input.resolution ? { resolution: input.resolution } : {},
|
|
9947
|
+
...input.aspectRatio ? { aspect_ratio: input.aspectRatio } : {}
|
|
9948
|
+
});
|
|
9949
|
+
var buildLtx23OutpaintPayload = (input) => ({
|
|
9950
|
+
prompt: input.prompt,
|
|
9951
|
+
video_url: input.videoUrl,
|
|
9952
|
+
...input.negativePrompt ? { negative_prompt: input.negativePrompt } : {},
|
|
9953
|
+
...input.aspectRatio ? { aspect_ratio: input.aspectRatio } : {},
|
|
9954
|
+
...input.resolution ? { output_resolution: input.resolution } : {},
|
|
9955
|
+
...input.numFrames != null ? { num_frames: input.numFrames } : {},
|
|
9956
|
+
...input.fps != null ? { frames_per_second: input.fps } : {},
|
|
9957
|
+
...input.sourceScale != null ? { source_scale: input.sourceScale } : {},
|
|
9958
|
+
...input.videoStrength != null ? { video_strength: input.videoStrength } : {},
|
|
9959
|
+
...input.cfgScale != null ? { guidance_scale: input.cfgScale } : {},
|
|
9960
|
+
...input.numInferenceSteps != null ? { num_inference_steps: input.numInferenceSteps } : {},
|
|
9961
|
+
...input.videoQuality ? { video_quality: input.videoQuality } : {},
|
|
9962
|
+
...input.videoWriteMode ? { video_write_mode: input.videoWriteMode } : {},
|
|
9963
|
+
...input.seed != null ? { seed: input.seed } : {},
|
|
9964
|
+
enable_prompt_expansion: input.enhancePrompt ?? true,
|
|
9965
|
+
generate_audio: input.generateAudio ?? true,
|
|
9966
|
+
enable_safety_checker: input.enableSafetyChecker ?? true
|
|
9967
|
+
});
|
|
9803
9968
|
registerPayloads(MODELS2, {
|
|
9804
9969
|
"ltx-v2.5-pro": buildLtx25ProT2VPayload,
|
|
9805
|
-
"ltx-v2.5-fast": buildLtx25FastT2VPayload
|
|
9970
|
+
"ltx-v2.5-fast": buildLtx25FastT2VPayload,
|
|
9971
|
+
"ltx-v2.3-reframe": buildLtx23ReframePayload,
|
|
9972
|
+
"ltx-v2.3-outpaint": buildLtx23OutpaintPayload
|
|
9806
9973
|
});
|
|
9807
9974
|
registerEditPayloads(MODELS2, {
|
|
9808
9975
|
"ltx-v2.5-pro": buildLtx25ProI2VPayload,
|
|
@@ -10084,6 +10251,10 @@ var extractAllResults = (result) => {
|
|
|
10084
10251
|
}
|
|
10085
10252
|
return items.length > 0 ? items : void 0;
|
|
10086
10253
|
};
|
|
10254
|
+
var isSeedanceDraftTask = (value) => {
|
|
10255
|
+
const v = value;
|
|
10256
|
+
return !!v && typeof v === "object" && typeof v.id === "string" && typeof v.video_input === "boolean" && typeof v.signature === "string";
|
|
10257
|
+
};
|
|
10087
10258
|
function buildItemMetadata(parsed, item, _index, provider) {
|
|
10088
10259
|
const meta = {};
|
|
10089
10260
|
const top = parsed && typeof parsed === "object" ? parsed : void 0;
|
|
@@ -10092,6 +10263,10 @@ function buildItemMetadata(parsed, item, _index, provider) {
|
|
|
10092
10263
|
if (provider === "elevenlabs" && typeof it?.generated_voice_id === "string") meta.generatedVoiceId = it.generated_voice_id;
|
|
10093
10264
|
const lastFrame = it?.last_frame_url ?? top?.last_frame_url;
|
|
10094
10265
|
if (typeof lastFrame === "string") meta.lastFrameUrl = lastFrame;
|
|
10266
|
+
const draftTask = top?.draft_task;
|
|
10267
|
+
if (provider === "seedance" && isSeedanceDraftTask(draftTask)) {
|
|
10268
|
+
meta.draftTask = { id: draftTask.id, video_input: draftTask.video_input, signature: draftTask.signature };
|
|
10269
|
+
}
|
|
10095
10270
|
return Object.keys(meta).length > 0 ? meta : void 0;
|
|
10096
10271
|
}
|
|
10097
10272
|
function toCompletedStatus(handle, result, raw, usage) {
|
|
@@ -12472,7 +12647,9 @@ var LtxV2Fast = "ltx-v2-fast";
|
|
|
12472
12647
|
var LtxV2Retake = "ltx-v2-retake";
|
|
12473
12648
|
var LtxV23Extend = "ltx-v2.3-extend";
|
|
12474
12649
|
var LtxV23Fast = "ltx-v2.3-fast";
|
|
12650
|
+
var LtxV23Outpaint = "ltx-v2.3-outpaint";
|
|
12475
12651
|
var LtxV23Pro = "ltx-v2.3-pro";
|
|
12652
|
+
var LtxV23Reframe = "ltx-v2.3-reframe";
|
|
12476
12653
|
var LtxV23Retake = "ltx-v2.3-retake";
|
|
12477
12654
|
var LtxV25Fast = "ltx-v2.5-fast";
|
|
12478
12655
|
var LtxV25Pro = "ltx-v2.5-pro";
|
|
@@ -12715,7 +12892,9 @@ var Models = {
|
|
|
12715
12892
|
LtxV2Retake,
|
|
12716
12893
|
LtxV23Extend,
|
|
12717
12894
|
LtxV23Fast,
|
|
12895
|
+
LtxV23Outpaint,
|
|
12718
12896
|
LtxV23Pro,
|
|
12897
|
+
LtxV23Reframe,
|
|
12719
12898
|
LtxV23Retake,
|
|
12720
12899
|
LtxV25Fast,
|
|
12721
12900
|
LtxV25Pro,
|