@sogni-ai/sogni-client 4.0.0-alpha.3 → 4.0.0-alpha.4

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ # [4.0.0-alpha.4](https://github.com/Sogni-AI/sogni-client/compare/v4.0.0-alpha.3...v4.0.0-alpha.4) (2025-10-17)
2
+
3
+
4
+ ### Features
5
+
6
+ * Update schedulers and samplers options. ([7971cdc](https://github.com/Sogni-AI/sogni-client/commit/7971cdc7b1114840196fdada5adbf22cf867053e))
7
+
8
+
9
+ ### BREAKING CHANGES
10
+
11
+ * `scheduler` and `timeStepSpacing` options renamed
12
+
13
+ - `scheduler` option renamed to `sampler`
14
+ - `timeStepSpacing` is now `scheduler`
15
+ - Options are now referenced by short aliases
16
+
1
17
  # [4.0.0-alpha.3](https://github.com/Sogni-AI/sogni-client/compare/v4.0.0-alpha.2...v4.0.0-alpha.3) (2025-10-02)
2
18
 
3
19
 
package/README.md CHANGED
@@ -182,8 +182,8 @@ Turbo and LCM models are designed for quality output in as little as 1 step. ([M
182
182
  - `disableNSFWFilter` - disable NSFW filter for this project. NSFW filter is enabled by default and workers won't upload resulting images if they are detected as NSFW.
183
183
  - `seed` - uint32 number to use as seed. If not provided, random seed will be used. If `numberOfImages` is greater than 1, provided seed will be user only for one of them. ([More info](https://docs.sogni.ai/learn/basics/generation-seed)).
184
184
  - `numberOfPreviews` - number of preview images to generate. If not provided, no preview images will be generated.
185
- - `scheduler` - scheduler to use ([More info](https://docs.sogni.ai/learn/advanced/schedulers)). For available options see type definition.
186
- - `timeStepSpacing` - time step spacing algorithm ([More info](https://docs.sogni.ai/learn/advanced/schedulers)). For available options see type definition.
185
+ - `sampler` - time step spacing algorithm ([More info](https://docs.sogni.ai/sogni-studio/advanced/samplers-and-schedulers)). For available options, see the **"Samplers"** section below.
186
+ - `scheduler` - scheduler to use ([More info](https://docs.sogni.ai/sogni-studio/advanced/samplers-and-schedulers)). For available options, see the **"Schedulers"** section below.
187
187
  - `startingImage` - guide image in PNG format. Can be [File](https://developer.mozilla.org/en-US/docs/Web/API/File), [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) or [Buffer](https://nodejs.org/api/buffer.html)
188
188
  - `startingImageStrength` - strong effect of starting image should be. From 0 to 1, default 0.5.
189
189
  - `controlNet` - Stable Diffusion ControlNet parameters. See **ControlNets** section below for more info.
@@ -282,6 +282,45 @@ Sample response:
282
282
  }
283
283
  ]
284
284
  ```
285
+
286
+ ### Samplers
287
+ Samplers control the denoising process — the sequence of steps that transforms random noise into your final image.
288
+
289
+ Available sampler options:
290
+
291
+ | Option | Description |
292
+ |-----------------|-------------------------------------|
293
+ | `dfs_sd3` | Discrete Flow Scheduler (SD3) |
294
+ | `dpm_pp` | DPM Solver Multistep (DPM-Solver++) |
295
+ | `dpm_pp_sde` | DPM++ SDE |
296
+ | `dpm_pp_2m` | DPM++ 2M |
297
+ | `dpm_pp_2m_sde` | DPM++ 2M SDE |
298
+ | `euler` | Euler |
299
+ | `euler_a` | Euler a |
300
+ | `heun` | Heun |
301
+ | `lcm` | LCM (Latent Consistency Model) |
302
+ | `pndm_plms` | PNDM (Pseudo-linear multi-step) |
303
+ | `uni_pc` | UniPC |
304
+
305
+ **IMPORTANT:** Sampler compatibility depends on model and network. See [Samplers and Schedulers](https://docs.sogni.ai/sogni-studio/advanced/samplers-and-schedulers) docs for more info.
306
+
307
+ ### Schedulers
308
+ Control how steps are distributed. For more info see [Schedulers and Samplers](https://docs.sogni.ai/sogni-studio/advanced/samplers-and-schedulers#schedulers) docs.
309
+
310
+ Available scheduler options:
311
+
312
+ | Option | Description |
313
+ |---------------|-------------|
314
+ | `beta` | Beta |
315
+ | `ddim` | DDIM |
316
+ | `karras` | Karras |
317
+ | `kl_optimal` | KL Optimal |
318
+ | `leading` | Automatic |
319
+ | `linear` | Automatic |
320
+ | `normal` | Normal |
321
+ | `sgm_uniform` | SGM Uniform |
322
+ | `simple` | Simple |
323
+
285
324
  ### ControlNets
286
325
  **EXPERIMENTAL FEATURE:** This feature is still in development and may not work as expected. Use at your own risk.
287
326
 
@@ -114,7 +114,7 @@ function createJobRequestMessage(id, params) {
114
114
  var _a, _b;
115
115
  const template = getTemplate();
116
116
  const jobRequest = Object.assign(Object.assign({}, template), { keyFrames: [
117
- Object.assign(Object.assign({}, template.keyFrames[0]), { scheduler: params.scheduler || null, timeStepSpacing: params.timeStepSpacing || null, steps: params.steps, guidanceScale: params.guidance, modelID: params.modelId, negativePrompt: params.negativePrompt, seed: params.seed, positivePrompt: params.positivePrompt, stylePrompt: params.stylePrompt, hasStartingImage: !!params.startingImage, hasContextImage1: !!((_a = params.contextImages) === null || _a === void 0 ? void 0 : _a[0]), hasContextImage2: !!((_b = params.contextImages) === null || _b === void 0 ? void 0 : _b[1]), strengthIsEnabled: !!params.startingImage, strength: !!params.startingImage
117
+ Object.assign(Object.assign({}, template.keyFrames[0]), { scheduler: (0, validation_1.validateScheduler)(params.sampler), timeStepSpacing: (0, validation_1.validateTimeStepSpacing)(params.scheduler), steps: params.steps, guidanceScale: params.guidance, modelID: params.modelId, negativePrompt: params.negativePrompt, seed: params.seed, positivePrompt: params.positivePrompt, stylePrompt: params.stylePrompt, hasStartingImage: !!params.startingImage, hasContextImage1: !!((_a = params.contextImages) === null || _a === void 0 ? void 0 : _a[0]), hasContextImage2: !!((_b = params.contextImages) === null || _b === void 0 ? void 0 : _b[1]), strengthIsEnabled: !!params.startingImage, strength: !!params.startingImage
118
118
  ? 1 - (Number(params.startingImageStrength) || 0.5)
119
119
  : undefined, sizePreset: params.sizePreset })
120
120
  ], previews: params.numberOfPreviews || 0, numberOfImages: params.numberOfImages, jobID: id, disableSafety: !!params.disableNSFWFilter, tokenType: params.tokenType, outputFormat: params.outputFormat || 'png' });
@@ -1 +1 @@
1
- {"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare const SamplerMap: {
2
+ dfs_sd3: string;
3
+ dpm_pp: string;
4
+ dpm_pp_sde: string;
5
+ dpm_pp_2m: string;
6
+ dpm_pp_2m_sde: string;
7
+ euler: string;
8
+ euler_a: string;
9
+ heun: string;
10
+ lcm: string;
11
+ pndm_plms: string;
12
+ uni_pc: string;
13
+ };
14
+ export declare function isSampler(sampler: string): sampler is Sampler;
15
+ export type Sampler = keyof typeof SamplerMap;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SamplerMap = void 0;
4
+ exports.isSampler = isSampler;
5
+ exports.SamplerMap = {
6
+ dfs_sd3: 'Discrete Flow Scheduler (SD3)',
7
+ dpm_pp: 'DPM Solver Multistep (DPM-Solver++)',
8
+ dpm_pp_sde: 'DPM++ SDE',
9
+ dpm_pp_2m: 'DPM++ 2M',
10
+ dpm_pp_2m_sde: 'DPM++ 2M SDE',
11
+ euler: 'Euler',
12
+ euler_a: 'Euler a',
13
+ heun: 'Heun',
14
+ lcm: 'LCM (Latent Consistency Model)',
15
+ pndm_plms: 'PNDM (Pseudo-linear multi-step)',
16
+ uni_pc: 'UniPC'
17
+ };
18
+ function isSampler(sampler) {
19
+ return sampler in exports.SamplerMap;
20
+ }
21
+ //# sourceMappingURL=SamplerParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SamplerParams.js","sourceRoot":"","sources":["../../../src/Projects/types/SamplerParams.ts"],"names":[],"mappings":";;;AAcA,8BAEC;AAhBY,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,+BAA+B;IACxC,MAAM,EAAE,qCAAqC;IAC7C,UAAU,EAAE,WAAW;IACvB,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,cAAc;IAC7B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,gCAAgC;IACrC,SAAS,EAAE,iCAAiC;IAC5C,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,OAAO,IAAI,kBAAU,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const SchedulerMap: {
2
+ beta: string;
3
+ ddim: string;
4
+ karras: string;
5
+ kl_optimal: string;
6
+ leading: string;
7
+ linear: string;
8
+ normal: string;
9
+ sgm_uniform: string;
10
+ simple: string;
11
+ };
12
+ export declare function isScheduler(timeStepSpacing: string): timeStepSpacing is Scheduler;
13
+ export type Scheduler = keyof typeof SchedulerMap;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchedulerMap = void 0;
4
+ exports.isScheduler = isScheduler;
5
+ exports.SchedulerMap = {
6
+ beta: 'Beta',
7
+ ddim: 'DDIM',
8
+ karras: 'Karras',
9
+ kl_optimal: 'KL Optimal',
10
+ leading: 'Automatic',
11
+ linear: 'Automatic',
12
+ normal: 'Normal',
13
+ sgm_uniform: 'SGM Uniform',
14
+ simple: 'Simple'
15
+ };
16
+ function isScheduler(timeStepSpacing) {
17
+ return timeStepSpacing in exports.SchedulerMap;
18
+ }
19
+ //# sourceMappingURL=SchedulerParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchedulerParams.js","sourceRoot":"","sources":["../../../src/Projects/types/SchedulerParams.ts"],"names":[],"mappings":";;;AAYA,kCAEC;AAdY,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,SAAgB,WAAW,CAAC,eAAuB;IACjD,OAAO,eAAe,IAAI,oBAAY,CAAC;AACzC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { SupernetType } from '../../ApiClient/WebSocketClient/types';
2
2
  import { ControlNetParams } from './ControlNetParams';
3
3
  import { TokenType } from '../../types/token';
4
+ import { Sampler } from './SamplerParams';
5
+ import { Scheduler } from './SchedulerParams';
4
6
  export interface SupportedModel {
5
7
  id: string;
6
8
  name: string;
@@ -19,8 +21,7 @@ export interface SizePreset {
19
21
  ratio: string;
20
22
  aspect: string;
21
23
  }
22
- export type Scheduler = 'DPM Solver Multistep (DPM-Solver++)' | 'PNDM (Pseudo-linear multi-step)' | 'LCM (Latent Consistency Model)' | 'Discrete Flow Scheduler (SD3)' | 'Euler' | 'Euler a';
23
- export type TimeStepSpacing = 'Leading' | 'Linear' | 'Karras' | 'Simple' | 'SGM Uniform';
24
+ export type { Sampler, Scheduler };
24
25
  export type OutputFormat = 'png' | 'jpg';
25
26
  export type InputImage = File | Buffer | Blob | boolean;
26
27
  export interface ProjectParams {
@@ -94,11 +95,11 @@ export interface ProjectParams {
94
95
  /**
95
96
  * Scheduler to use
96
97
  */
97
- scheduler?: Scheduler;
98
+ sampler?: Sampler;
98
99
  /**
99
100
  * Time step spacing method
100
101
  */
101
- timeStepSpacing?: TimeStepSpacing;
102
+ scheduler?: Scheduler;
102
103
  /**
103
104
  * Size preset ID to use. You can query available size presets
104
105
  * from `client.projects.sizePresets(network, modelId)`
@@ -187,7 +188,7 @@ export interface EstimateRequest {
187
188
  /**
188
189
  * Scheduler
189
190
  */
190
- scheduler?: Scheduler;
191
+ scheduler?: Sampler;
191
192
  /**
192
193
  * Number of context images to use (for Flux Kontext).
193
194
  * Note that this parameter is ignored if `scheduler` is not provided
package/dist/index.d.ts CHANGED
@@ -6,12 +6,12 @@ import { Logger, LogLevel } from './lib/DefaultLogger';
6
6
  import ProjectsApi from './Projects';
7
7
  import Job, { JobStatus } from './Projects/Job';
8
8
  import Project, { ProjectStatus } from './Projects/Project';
9
- import { AvailableModel, OutputFormat, ProjectParams, Scheduler, TimeStepSpacing } from './Projects/types';
9
+ import { AvailableModel, OutputFormat, ProjectParams, Sampler, Scheduler } from './Projects/types';
10
10
  import StatsApi from './Stats';
11
11
  import ErrorData from './types/ErrorData';
12
12
  import { TokenType } from './types/token';
13
13
  import { TokenAuthData } from './lib/AuthManager';
14
- export type { AvailableModel, ErrorData, JobStatus, Logger, LogLevel, OutputFormat, ProjectParams, ProjectStatus, Scheduler, SupernetType, TimeStepSpacing, TokenType };
14
+ export type { AvailableModel, ErrorData, JobStatus, Logger, LogLevel, OutputFormat, ProjectParams, ProjectStatus, Sampler, SupernetType, Scheduler, TokenType };
15
15
  export { ApiError, CurrentAccount, Job, Project };
16
16
  export interface SogniClientConfig {
17
17
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,6 @@ interface NumberValidationOptions {
6
6
  defaultValue?: number;
7
7
  }
8
8
  export declare function validateNumber(value: any, { min, max, propertyName, defaultValue }?: NumberValidationOptions): number;
9
+ export declare function validateScheduler(value?: string): string | null;
10
+ export declare function validateTimeStepSpacing(value?: string): string | null;
9
11
  export {};
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateCustomImageSize = validateCustomImageSize;
4
4
  exports.validateNumber = validateNumber;
5
+ exports.validateScheduler = validateScheduler;
6
+ exports.validateTimeStepSpacing = validateTimeStepSpacing;
7
+ const SamplerParams_1 = require("../Projects/types/SamplerParams");
8
+ const SchedulerParams_1 = require("../Projects/types/SchedulerParams");
5
9
  function validateCustomImageSize(value) {
6
10
  return validateNumber(value, { min: 256, max: 2048, propertyName: 'Width and height' });
7
11
  }
@@ -31,4 +35,22 @@ function validateNumber(value, { min, max, propertyName, defaultValue } = {}) {
31
35
  }
32
36
  return number;
33
37
  }
38
+ function validateScheduler(value) {
39
+ if (!value) {
40
+ return null;
41
+ }
42
+ if (!(0, SamplerParams_1.isSampler)(value)) {
43
+ throw new Error(`Invalid scheduler: ${value}. Supported options: ${Object.keys(SamplerParams_1.SamplerMap).join(', ')}`);
44
+ }
45
+ return SamplerParams_1.SamplerMap[value];
46
+ }
47
+ function validateTimeStepSpacing(value) {
48
+ if (!value) {
49
+ return null;
50
+ }
51
+ if (!(0, SchedulerParams_1.isScheduler)(value)) {
52
+ throw new Error(`Invalid timeStepSpacing: ${value}. Supported options: ${Object.keys(SchedulerParams_1.SchedulerMap).join(', ')}`);
53
+ }
54
+ return SchedulerParams_1.SchedulerMap[value];
55
+ }
34
56
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":";;AAAA,0DAEC;AASD,wCA4BC;AAvCD,SAAgB,uBAAuB,CAAC,KAAU;IAChD,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC1F,CAAC;AASD,SAAgB,cAAc,CAC5B,KAAU,EACV,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,KAA8B,EAAE;IAEtE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,eAAe,GAAG,YAAY,KAAK,SAAS,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,0BAA0B,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,0BAA0B,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":";;AAGA,0DAEC;AASD,wCA4BC;AAED,8CAUC;AAED,0DAUC;AAlED,mEAAwE;AACxE,uEAA8E;AAE9E,SAAgB,uBAAuB,CAAC,KAAU;IAChD,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC1F,CAAC;AASD,SAAgB,cAAc,CAC5B,KAAU,EACV,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,KAA8B,EAAE;IAEtE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,eAAe,GAAG,YAAY,KAAK,SAAS,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,0BAA0B,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,0BAA0B,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAA,yBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,wBAAwB,MAAM,CAAC,IAAI,CAAC,0BAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;IACJ,CAAC;IACD,OAAO,0BAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAc;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,wBAAwB,MAAM,CAAC,IAAI,CAAC,8BAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,8BAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "4.0.0-alpha.3",
6
+ "version": "4.0.0-alpha.4",
7
7
  "description": "Sogni Supernet Client",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -1,6 +1,12 @@
1
1
  import { ProjectParams } from './types';
2
2
  import { ControlNetParams, ControlNetParamsRaw } from './types/ControlNetParams';
3
- import { validateNumber, validateCustomImageSize } from '../lib/validation';
3
+ import {
4
+ validateNumber,
5
+ validateCustomImageSize,
6
+ validateScheduler,
7
+ validateTimeStepSpacing
8
+ } from '../lib/validation';
9
+
4
10
  // Mac worker can't process the data if some of the fields are missing, so we need to provide a default template
5
11
  function getTemplate() {
6
12
  return {
@@ -119,8 +125,8 @@ function createJobRequestMessage(id: string, params: ProjectParams) {
119
125
  keyFrames: [
120
126
  {
121
127
  ...template.keyFrames[0],
122
- scheduler: params.scheduler || null,
123
- timeStepSpacing: params.timeStepSpacing || null,
128
+ scheduler: validateScheduler(params.sampler),
129
+ timeStepSpacing: validateTimeStepSpacing(params.scheduler),
124
130
  steps: params.steps,
125
131
  guidanceScale: params.guidance,
126
132
  modelID: params.modelId,
@@ -0,0 +1,19 @@
1
+ export const SamplerMap = {
2
+ dfs_sd3: 'Discrete Flow Scheduler (SD3)',
3
+ dpm_pp: 'DPM Solver Multistep (DPM-Solver++)',
4
+ dpm_pp_sde: 'DPM++ SDE',
5
+ dpm_pp_2m: 'DPM++ 2M',
6
+ dpm_pp_2m_sde: 'DPM++ 2M SDE',
7
+ euler: 'Euler',
8
+ euler_a: 'Euler a',
9
+ heun: 'Heun',
10
+ lcm: 'LCM (Latent Consistency Model)',
11
+ pndm_plms: 'PNDM (Pseudo-linear multi-step)',
12
+ uni_pc: 'UniPC'
13
+ };
14
+
15
+ export function isSampler(sampler: string): sampler is Sampler {
16
+ return sampler in SamplerMap;
17
+ }
18
+
19
+ export type Sampler = keyof typeof SamplerMap;
@@ -0,0 +1,17 @@
1
+ export const SchedulerMap = {
2
+ beta: 'Beta',
3
+ ddim: 'DDIM',
4
+ karras: 'Karras',
5
+ kl_optimal: 'KL Optimal',
6
+ leading: 'Automatic',
7
+ linear: 'Automatic',
8
+ normal: 'Normal',
9
+ sgm_uniform: 'SGM Uniform',
10
+ simple: 'Simple'
11
+ };
12
+
13
+ export function isScheduler(timeStepSpacing: string): timeStepSpacing is Scheduler {
14
+ return timeStepSpacing in SchedulerMap;
15
+ }
16
+
17
+ export type Scheduler = keyof typeof SchedulerMap;
@@ -1,6 +1,8 @@
1
1
  import { SupernetType } from '../../ApiClient/WebSocketClient/types';
2
2
  import { ControlNetParams } from './ControlNetParams';
3
3
  import { TokenType } from '../../types/token';
4
+ import { Sampler } from './SamplerParams';
5
+ import { Scheduler } from './SchedulerParams';
4
6
 
5
7
  export interface SupportedModel {
6
8
  id: string;
@@ -23,15 +25,7 @@ export interface SizePreset {
23
25
  aspect: string;
24
26
  }
25
27
 
26
- export type Scheduler =
27
- | 'DPM Solver Multistep (DPM-Solver++)'
28
- | 'PNDM (Pseudo-linear multi-step)'
29
- | 'LCM (Latent Consistency Model)'
30
- | 'Discrete Flow Scheduler (SD3)'
31
- | 'Euler' // Used by Flux
32
- | 'Euler a'; // Used by Flux
33
-
34
- export type TimeStepSpacing = 'Leading' | 'Linear' | 'Karras' | 'Simple' | 'SGM Uniform';
28
+ export type { Sampler, Scheduler };
35
29
 
36
30
  export type OutputFormat = 'png' | 'jpg';
37
31
 
@@ -108,11 +102,11 @@ export interface ProjectParams {
108
102
  /**
109
103
  * Scheduler to use
110
104
  */
111
- scheduler?: Scheduler;
105
+ sampler?: Sampler;
112
106
  /**
113
107
  * Time step spacing method
114
108
  */
115
- timeStepSpacing?: TimeStepSpacing;
109
+ scheduler?: Scheduler;
116
110
  /**
117
111
  * Size preset ID to use. You can query available size presets
118
112
  * from `client.projects.sizePresets(network, modelId)`
@@ -204,7 +198,7 @@ export interface EstimateRequest {
204
198
  /**
205
199
  * Scheduler
206
200
  */
207
- scheduler?: Scheduler;
201
+ scheduler?: Sampler;
208
202
  /**
209
203
  * Number of context images to use (for Flux Kontext).
210
204
  * Note that this parameter is ignored if `scheduler` is not provided
package/src/index.ts CHANGED
@@ -12,13 +12,7 @@ import EIP712Helper from './lib/EIP712Helper';
12
12
  import ProjectsApi from './Projects';
13
13
  import Job, { JobStatus } from './Projects/Job';
14
14
  import Project, { ProjectStatus } from './Projects/Project';
15
- import {
16
- AvailableModel,
17
- OutputFormat,
18
- ProjectParams,
19
- Scheduler,
20
- TimeStepSpacing
21
- } from './Projects/types';
15
+ import { AvailableModel, OutputFormat, ProjectParams, Sampler, Scheduler } from './Projects/types';
22
16
  // Stats API
23
17
  import StatsApi from './Stats';
24
18
  // Base Types
@@ -36,9 +30,9 @@ export type {
36
30
  OutputFormat,
37
31
  ProjectParams,
38
32
  ProjectStatus,
39
- Scheduler,
33
+ Sampler,
40
34
  SupernetType,
41
- TimeStepSpacing,
35
+ Scheduler,
42
36
  TokenType
43
37
  };
44
38
 
@@ -1,3 +1,6 @@
1
+ import { isSampler, SamplerMap } from '../Projects/types/SamplerParams';
2
+ import { isScheduler, SchedulerMap } from '../Projects/types/SchedulerParams';
3
+
1
4
  export function validateCustomImageSize(value: any): number {
2
5
  return validateNumber(value, { min: 256, max: 2048, propertyName: 'Width and height' });
3
6
  }
@@ -38,3 +41,27 @@ export function validateNumber(
38
41
  }
39
42
  return number;
40
43
  }
44
+
45
+ export function validateScheduler(value?: string) {
46
+ if (!value) {
47
+ return null;
48
+ }
49
+ if (!isSampler(value)) {
50
+ throw new Error(
51
+ `Invalid scheduler: ${value}. Supported options: ${Object.keys(SamplerMap).join(', ')}`
52
+ );
53
+ }
54
+ return SamplerMap[value];
55
+ }
56
+
57
+ export function validateTimeStepSpacing(value?: string) {
58
+ if (!value) {
59
+ return null;
60
+ }
61
+ if (!isScheduler(value)) {
62
+ throw new Error(
63
+ `Invalid timeStepSpacing: ${value}. Supported options: ${Object.keys(SchedulerMap).join(', ')}`
64
+ );
65
+ }
66
+ return SchedulerMap[value];
67
+ }