@sogni-ai/sogni-client 5.58.2 → 5.60.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/AGENTS.md +29 -5
- package/CHANGELOG.md +19 -0
- package/README.md +26 -1
- package/dist/Chat/ChatTools.js +22 -8
- package/dist/Chat/ChatTools.js.map +1 -1
- package/dist/Chat/_hostedToolsManifest.generated.js +7 -7
- package/dist/Chat/_hostedToolsManifest.generated.js.map +1 -1
- package/dist/Chat/modelRouting.d.ts +8 -1
- package/dist/Chat/modelRouting.js +17 -2
- package/dist/Chat/modelRouting.js.map +1 -1
- package/dist/Projects/createJobRequestMessage.js +9 -0
- package/dist/Projects/createJobRequestMessage.js.map +1 -1
- package/dist/Projects/types/ControlNetParams.d.ts +18 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist-esm/Chat/ChatTools.js +23 -9
- package/dist-esm/Chat/ChatTools.js.map +1 -1
- package/dist-esm/Chat/_hostedToolsManifest.generated.js +7 -7
- package/dist-esm/Chat/_hostedToolsManifest.generated.js.map +1 -1
- package/dist-esm/Chat/modelRouting.js +16 -1
- package/dist-esm/Chat/modelRouting.js.map +1 -1
- package/dist-esm/Projects/createJobRequestMessage.js +9 -0
- package/dist-esm/Projects/createJobRequestMessage.js.map +1 -1
- package/dist-esm/version.js +1 -1
- package/llms-full.txt +46 -10
- package/llms.txt +36 -8
- package/package.json +2 -1
- package/src/Chat/ChatTools.ts +25 -8
- package/src/Chat/_hostedToolsManifest.generated.ts +7 -7
- package/src/Chat/modelRouting.ts +18 -1
- package/src/Projects/createJobRequestMessage.ts +9 -0
- package/src/Projects/types/ControlNetParams.ts +18 -0
- package/src/version.ts +1 -1
|
@@ -341,19 +341,19 @@ export const SOGNI_HOSTED_TOOLS_MANIFEST: unknown = {
|
|
|
341
341
|
},
|
|
342
342
|
"duration": {
|
|
343
343
|
"type": "number",
|
|
344
|
-
"description": "Duration in seconds.
|
|
344
|
+
"description": "Duration in seconds. music3 (the default model): 10-300, default 60, and a ceiling — the song may end earlier at a musical resolution. ACE-Step turbo/sft: 10-600, default 30. Short clips: 10-30s. Standard songs: 120-300s.",
|
|
345
345
|
"minimum": 10,
|
|
346
346
|
"maximum": 600
|
|
347
347
|
},
|
|
348
348
|
"bpm": {
|
|
349
349
|
"type": "number",
|
|
350
|
-
"description": "Beats per minute / tempo. Default: 120. Range: 30-300. Slow ballad: 60-80. Mid-tempo: 90-120. Upbeat: 120-140. Fast dance: 140-180. Very fast: 180+.",
|
|
350
|
+
"description": "ACE-Step (turbo, sft) only — music3 does not use it; for music3 put the tempo in the prompt instead. Beats per minute / tempo. Default: 120. Range: 30-300. Slow ballad: 60-80. Mid-tempo: 90-120. Upbeat: 120-140. Fast dance: 140-180. Very fast: 180+.",
|
|
351
351
|
"minimum": 30,
|
|
352
352
|
"maximum": 300
|
|
353
353
|
},
|
|
354
354
|
"keyscale": {
|
|
355
355
|
"type": "string",
|
|
356
|
-
"description": "Musical key and scale. E.g., \"C major\", \"A minor\", \"F# minor\", \"Bb major\". Default: \"C major\". Only set when the user specifies a key or when a particular mood calls for it (minor keys for sad/dark, major for happy/bright)."
|
|
356
|
+
"description": "ACE-Step (turbo, sft) only — music3 does not use it; for music3 put the key in the prompt instead. Musical key and scale. E.g., \"C major\", \"A minor\", \"F# minor\", \"Bb major\". Default: \"C major\". Only set when the user specifies a key or when a particular mood calls for it (minor keys for sad/dark, major for happy/bright)."
|
|
357
357
|
},
|
|
358
358
|
"lyrics": {
|
|
359
359
|
"type": "string",
|
|
@@ -362,13 +362,13 @@ export const SOGNI_HOSTED_TOOLS_MANIFEST: unknown = {
|
|
|
362
362
|
"model": {
|
|
363
363
|
"type": "string",
|
|
364
364
|
"enum": [
|
|
365
|
+
"minimax_music3",
|
|
365
366
|
"ace_step_1.5_xl_turbo",
|
|
366
367
|
"ace_step_1.5_xl_sft",
|
|
367
368
|
"ace_step_1.5_turbo",
|
|
368
|
-
"ace_step_1.5_sft"
|
|
369
|
-
"minimax_music3"
|
|
369
|
+
"ace_step_1.5_sft"
|
|
370
370
|
],
|
|
371
|
-
"description": "Canonical music model ID. Default:
|
|
371
|
+
"description": "Canonical music model ID. Default: minimax_music3 (MiniMax Music 3, premium autoregressive composer with the best vocals, lyric adherence and song structure; 10-300 s, and duration is a ceiling, so the song may end earlier at a musical resolution). Music 3 takes tempo and key in the prompt text; bpm, keyscale and timesig apply to ACE-Step only. Use ace_step_1.5_xl_turbo only when the user asks for a quick, cheap or draft track, names ACE-Step, or wants a track longer than 300 s (with no model named, a duration over 300 s uses ACE-Step XL Turbo). Use ace_step_1.5_xl_sft only when the user explicitly requests XL SFT. Use legacy ace_step_1.5_turbo or ace_step_1.5_sft only when the user explicitly requests a legacy model."
|
|
372
372
|
},
|
|
373
373
|
"timesig": {
|
|
374
374
|
"type": "number",
|
|
@@ -378,7 +378,7 @@ export const SOGNI_HOSTED_TOOLS_MANIFEST: unknown = {
|
|
|
378
378
|
4,
|
|
379
379
|
6
|
|
380
380
|
],
|
|
381
|
-
"description": "Time signature (beats per measure). 4 = 4/4 time (default, most common). 3 = 3/4 time (waltz). 2 = 2/4 time (march). 6 = 6/8 time (compound). Default: 4."
|
|
381
|
+
"description": "ACE-Step (turbo, sft) only — music3 does not use it; for music3 put the time signature in the prompt instead. Time signature (beats per measure). 4 = 4/4 time (default, most common). 3 = 3/4 time (waltz). 2 = 2/4 time (march). 6 = 6/8 time (compound). Default: 4."
|
|
382
382
|
},
|
|
383
383
|
"numberOfVariations": {
|
|
384
384
|
"type": "number",
|
package/src/Chat/modelRouting.ts
CHANGED
|
@@ -165,11 +165,13 @@ export const PREFERRED_MODEL_IDS = {
|
|
|
165
165
|
animateReplace: 'wan_v2.2-14b-fp8_animate-replace_lightx2v'
|
|
166
166
|
},
|
|
167
167
|
audio: {
|
|
168
|
+
// Music, in preference order: MiniMax Music 3 is the default music model;
|
|
169
|
+
// ACE-Step is the explicit draft or legacy choice.
|
|
170
|
+
minimaxMusic3: 'minimax_music3',
|
|
168
171
|
aceStepXlTurbo: 'ace_step_1.5_xl_turbo',
|
|
169
172
|
aceStepXlSft: 'ace_step_1.5_xl_sft',
|
|
170
173
|
aceStepTurbo: 'ace_step_1.5_turbo',
|
|
171
174
|
aceStepSft: 'ace_step_1.5_sft',
|
|
172
|
-
minimaxMusic3: 'minimax_music3',
|
|
173
175
|
// Speech, not music: the same audio media type, a different job entirely.
|
|
174
176
|
qwen3TtsCustomVoice: 'qwen3_tts_1.7b_custom_voice_bf16',
|
|
175
177
|
qwen3TtsVoiceClone: 'qwen3_tts_1.7b_voice_clone_bf16',
|
|
@@ -177,6 +179,21 @@ export const PREFERRED_MODEL_IDS = {
|
|
|
177
179
|
}
|
|
178
180
|
} as const;
|
|
179
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Music models in preference order for a model-less generate_music call:
|
|
184
|
+
* MiniMax Music 3 first, then ACE-Step. Speech models are deliberately absent.
|
|
185
|
+
*/
|
|
186
|
+
export const MUSIC_MODEL_IDS: string[] = [
|
|
187
|
+
PREFERRED_MODEL_IDS.audio.minimaxMusic3,
|
|
188
|
+
PREFERRED_MODEL_IDS.audio.aceStepXlTurbo,
|
|
189
|
+
PREFERRED_MODEL_IDS.audio.aceStepXlSft,
|
|
190
|
+
PREFERRED_MODEL_IDS.audio.aceStepTurbo,
|
|
191
|
+
PREFERRED_MODEL_IDS.audio.aceStepSft
|
|
192
|
+
];
|
|
193
|
+
|
|
194
|
+
/** MiniMax Music 3's longest track, in seconds (ACE-Step renders up to 600). */
|
|
195
|
+
export const MINIMAX_MUSIC3_MAX_DURATION_SECONDS = 300;
|
|
196
|
+
|
|
180
197
|
const GPT_IMAGE_MODEL_ALIASES = [
|
|
181
198
|
'chatgpt',
|
|
182
199
|
'chatgpt-image',
|
|
@@ -1187,6 +1187,15 @@ function getControlNet(params: ControlNetParams): ControlNetParamsRaw[] {
|
|
|
1187
1187
|
propertyName: 'guidanceEnd'
|
|
1188
1188
|
});
|
|
1189
1189
|
}
|
|
1190
|
+
if (params.preprocess !== undefined) {
|
|
1191
|
+
if (typeof params.preprocess !== 'boolean') {
|
|
1192
|
+
throw new Error('controlNet.preprocess must be a boolean');
|
|
1193
|
+
}
|
|
1194
|
+
// Sent only when true, so requests without it stay identical to before.
|
|
1195
|
+
if (params.preprocess) {
|
|
1196
|
+
cn.preprocess = true;
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1190
1199
|
return [cn];
|
|
1191
1200
|
}
|
|
1192
1201
|
|
|
@@ -42,6 +42,11 @@ export interface ControlNetParamsRaw {
|
|
|
42
42
|
controlMode?: 0 | 1 | 2;
|
|
43
43
|
controlGuidanceStart?: number;
|
|
44
44
|
controlGuidanceEnd?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Sent only as `true`: the worker makes the control map from the uploaded image.
|
|
47
|
+
* Omitted: the uploaded image is the control map.
|
|
48
|
+
*/
|
|
49
|
+
preprocess?: true;
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
/**
|
|
@@ -88,6 +93,19 @@ export interface ControlNetParams {
|
|
|
88
93
|
* Must be greater than guidanceStart
|
|
89
94
|
*/
|
|
90
95
|
guidanceEnd?: number;
|
|
96
|
+
/**
|
|
97
|
+
* Make the control map from `image` on the worker. Default `false`.
|
|
98
|
+
*
|
|
99
|
+
* - `true`: `image` is an ordinary photo. The worker generates the control map that matches `name`
|
|
100
|
+
* from it (edges for `canny`, a depth map for `depth`, a pose skeleton for `openpose`, and so on).
|
|
101
|
+
* Use this for ordinary photos.
|
|
102
|
+
* - `false` or omitted: `image` is used as the control map as-is, exactly as before this option existed.
|
|
103
|
+
* Use this for ready-made depth maps, pose skeletons, edge maps and scribbles.
|
|
104
|
+
*
|
|
105
|
+
* Only affects the Stable Diffusion ControlNet types. InstantID always uses the face photo as given,
|
|
106
|
+
* and `inpaint` / `instrp2p` always use the image as given.
|
|
107
|
+
*/
|
|
108
|
+
preprocess?: boolean;
|
|
91
109
|
}
|
|
92
110
|
|
|
93
111
|
/**
|
package/src/version.ts
CHANGED