@sogni-ai/sogni-client 4.0.0-alpha.37 → 4.0.0-alpha.39

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/ApiClient/WebSocketClient/events.d.ts +1 -0
  3. package/dist/Projects/createJobRequestMessage.js +34 -2
  4. package/dist/Projects/createJobRequestMessage.js.map +1 -1
  5. package/dist/Projects/index.d.ts +2 -0
  6. package/dist/Projects/index.js +67 -18
  7. package/dist/Projects/index.js.map +1 -1
  8. package/dist/Projects/types/ComfySamplerParams.d.ts +26 -0
  9. package/dist/Projects/types/ComfySamplerParams.js +33 -0
  10. package/dist/Projects/types/ComfySamplerParams.js.map +1 -0
  11. package/dist/Projects/types/ComfySchedulerParams.d.ts +17 -0
  12. package/dist/Projects/types/ComfySchedulerParams.js +23 -0
  13. package/dist/Projects/types/ComfySchedulerParams.js.map +1 -0
  14. package/dist/Projects/types/ForgeSamplerParams.d.ts +27 -0
  15. package/dist/Projects/types/ForgeSamplerParams.js +39 -0
  16. package/dist/Projects/types/ForgeSamplerParams.js.map +1 -0
  17. package/dist/Projects/types/ForgeSchedulerParams.d.ts +17 -0
  18. package/dist/Projects/types/ForgeSchedulerParams.js +28 -0
  19. package/dist/Projects/types/ForgeSchedulerParams.js.map +1 -0
  20. package/dist/Projects/types/index.d.ts +24 -6
  21. package/dist/Projects/types/index.js +9 -5
  22. package/dist/Projects/types/index.js.map +1 -1
  23. package/dist/index.d.ts +3 -3
  24. package/dist/index.js +5 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/RestClient.js +15 -2
  27. package/dist/lib/RestClient.js.map +1 -1
  28. package/dist/lib/validation.d.ts +15 -2
  29. package/dist/lib/validation.js +62 -13
  30. package/dist/lib/validation.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/ApiClient/WebSocketClient/events.ts +1 -0
  33. package/src/Projects/createJobRequestMessage.ts +41 -5
  34. package/src/Projects/index.ts +77 -23
  35. package/src/Projects/types/ComfySamplerParams.ts +31 -0
  36. package/src/Projects/types/ComfySchedulerParams.ts +21 -0
  37. package/src/Projects/types/ForgeSamplerParams.ts +37 -0
  38. package/src/Projects/types/ForgeSchedulerParams.ts +26 -0
  39. package/src/Projects/types/index.ts +31 -6
  40. package/src/index.ts +22 -3
  41. package/src/lib/RestClient.ts +16 -2
  42. package/src/lib/validation.ts +73 -12
  43. package/dist/Projects/types/SamplerParams.d.ts +0 -13
  44. package/dist/Projects/types/SamplerParams.js +0 -26
  45. package/dist/Projects/types/SamplerParams.js.map +0 -1
  46. package/dist/Projects/types/SchedulerParams.d.ts +0 -14
  47. package/dist/Projects/types/SchedulerParams.js +0 -24
  48. package/dist/Projects/types/SchedulerParams.js.map +0 -1
  49. package/src/Projects/types/SamplerParams.ts +0 -24
  50. package/src/Projects/types/SchedulerParams.ts +0 -22
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SupportedForgeSchedulers = void 0;
4
+ exports.isForgeScheduler = isForgeScheduler;
5
+ exports.isRawForgeScheduler = isRawForgeScheduler;
6
+ exports.SupportedForgeSchedulers = {
7
+ simple: 'Simple',
8
+ normal: 'Normal',
9
+ karras: 'Karras',
10
+ exponential: 'Exponential',
11
+ sgm_uniform: 'SGM Uniform',
12
+ ddim_uniform: 'DDIM Uniform',
13
+ beta: 'Beta',
14
+ linear_quadratic: 'Linear Quadratic',
15
+ kl_optimal: 'KL Optimal',
16
+ // Legacy aliases
17
+ ddim: 'DDIM',
18
+ leading: 'Leading',
19
+ linear: 'Linear'
20
+ };
21
+ function isForgeScheduler(scheduler) {
22
+ return scheduler in exports.SupportedForgeSchedulers;
23
+ }
24
+ function isRawForgeScheduler(scheduler) {
25
+ const schedulers = Object.values(exports.SupportedForgeSchedulers);
26
+ return schedulers.includes(scheduler);
27
+ }
28
+ //# sourceMappingURL=ForgeSchedulerParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ForgeSchedulerParams.js","sourceRoot":"","sources":["../../../src/Projects/types/ForgeSchedulerParams.ts"],"names":[],"mappings":";;;AAgBA,4CAEC;AAED,kDAGC;AAvBY,QAAA,wBAAwB,GAAG;IACtC,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE,MAAM;IACZ,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,iBAAiB;IACjB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,IAAI,gCAAwB,CAAC;AAC/C,CAAC;AAED,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,gCAAwB,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { SupernetType } from '../../ApiClient/WebSocketClient/types';
2
2
  import { ControlNetParams } from './ControlNetParams';
3
3
  import { TokenType } from '../../types/token';
4
- import { Sampler, SupportedSamplers } from './SamplerParams';
5
- import { Scheduler, SupportedSchedulers } from './SchedulerParams';
4
+ import { ForgeSampler, SupportedForgeSamplers } from './ForgeSamplerParams';
5
+ import { ForgeScheduler, SupportedForgeSchedulers } from './ForgeSchedulerParams';
6
+ import { ComfySampler, SupportedComfySamplers } from './ComfySamplerParams';
7
+ import { ComfyScheduler, SupportedComfySchedulers } from './ComfySchedulerParams';
6
8
  export interface SupportedModel {
7
9
  id: string;
8
10
  name: string;
@@ -29,8 +31,10 @@ export interface SizePreset {
29
31
  ratio: string;
30
32
  aspect: string;
31
33
  }
32
- export type { Sampler, Scheduler };
33
- export { SupportedSamplers, SupportedSchedulers };
34
+ export type Sampler = ForgeSampler | ComfySampler;
35
+ export type Scheduler = ForgeScheduler | ComfyScheduler;
36
+ export type { ForgeSampler, ForgeScheduler, ComfySampler, ComfyScheduler };
37
+ export { SupportedForgeSamplers, SupportedForgeSchedulers, SupportedComfySamplers, SupportedComfySchedulers };
34
38
  export type ImageOutputFormat = 'png' | 'jpg';
35
39
  export type VideoOutputFormat = 'mp4';
36
40
  export interface BaseProjectParams {
@@ -143,6 +147,18 @@ export interface VideoProjectParams extends BaseProjectParams {
143
147
  * Output video height. Only used if `sizePreset` is "custom"
144
148
  */
145
149
  height?: number;
150
+ /**
151
+ * ComfyUI sampler for video generation.
152
+ * Uses ComfyUI's native lowercase format: euler, euler_ancestral, dpmpp_2m, etc.
153
+ * Default: euler (or uni_pc for s2v models)
154
+ */
155
+ sampler?: ComfySampler;
156
+ /**
157
+ * ComfyUI scheduler for video generation.
158
+ * Uses ComfyUI's native lowercase format: simple, normal, karras, sgm_uniform, etc.
159
+ * Default: simple
160
+ */
161
+ scheduler?: ComfyScheduler;
146
162
  /**
147
163
  * Output video format. For now only 'mp4' is supported, defaults to 'mp4'.
148
164
  */
@@ -174,11 +190,13 @@ export interface ImageProjectParams extends BaseProjectParams {
174
190
  */
175
191
  contextImages?: InputMedia[];
176
192
  /**
177
- * Scheduler to use
193
+ * Legacy sampler for non-ComfyUI models (Automatic1111 workers).
194
+ * Not supported for ComfyUI models - use comfySampler instead.
178
195
  */
179
196
  sampler?: Sampler;
180
197
  /**
181
- * Time step spacing method
198
+ * Legacy scheduler for non-ComfyUI models (Automatic1111 workers).
199
+ * Not supported for ComfyUI models - use comfyScheduler instead.
182
200
  */
183
201
  scheduler?: Scheduler;
184
202
  /**
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SupportedSchedulers = exports.SupportedSamplers = void 0;
3
+ exports.SupportedComfySchedulers = exports.SupportedComfySamplers = exports.SupportedForgeSchedulers = exports.SupportedForgeSamplers = void 0;
4
4
  exports.isVideoParams = isVideoParams;
5
5
  exports.isImageParams = isImageParams;
6
- const SamplerParams_1 = require("./SamplerParams");
7
- Object.defineProperty(exports, "SupportedSamplers", { enumerable: true, get: function () { return SamplerParams_1.SupportedSamplers; } });
8
- const SchedulerParams_1 = require("./SchedulerParams");
9
- Object.defineProperty(exports, "SupportedSchedulers", { enumerable: true, get: function () { return SchedulerParams_1.SupportedSchedulers; } });
6
+ const ForgeSamplerParams_1 = require("./ForgeSamplerParams");
7
+ Object.defineProperty(exports, "SupportedForgeSamplers", { enumerable: true, get: function () { return ForgeSamplerParams_1.SupportedForgeSamplers; } });
8
+ const ForgeSchedulerParams_1 = require("./ForgeSchedulerParams");
9
+ Object.defineProperty(exports, "SupportedForgeSchedulers", { enumerable: true, get: function () { return ForgeSchedulerParams_1.SupportedForgeSchedulers; } });
10
+ const ComfySamplerParams_1 = require("./ComfySamplerParams");
11
+ Object.defineProperty(exports, "SupportedComfySamplers", { enumerable: true, get: function () { return ComfySamplerParams_1.SupportedComfySamplers; } });
12
+ const ComfySchedulerParams_1 = require("./ComfySchedulerParams");
13
+ Object.defineProperty(exports, "SupportedComfySchedulers", { enumerable: true, get: function () { return ComfySchedulerParams_1.SupportedComfySchedulers; } });
10
14
  function isVideoParams(params) {
11
15
  return params.type === 'video';
12
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Projects/types/index.ts"],"names":[],"mappings":";;;AA0NA,sCAEC;AAED,sCAEC;AA7ND,mDAA6D;AAkCpD,kGAlCS,iCAAiB,OAkCT;AAjC1B,uDAAmE;AAiCvC,oGAjCR,qCAAmB,OAiCQ;AAqL/C,SAAgB,aAAa,CAAC,MAAqB;IACjD,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC;AAED,SAAgB,aAAa,CAAC,MAAqB;IACjD,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Projects/types/index.ts"],"names":[],"mappings":";;;AAmPA,sCAEC;AAED,sCAEC;AAtPD,6DAA4E;AAyC1E,uGAzCqB,2CAAsB,OAyCrB;AAxCxB,iEAAkF;AAyChF,yGAzCuB,+CAAwB,OAyCvB;AAxC1B,6DAA4E;AAyC1E,uGAzCqB,2CAAsB,OAyCrB;AAxCxB,iEAAkF;AAyChF,yGAzCuB,+CAAwB,OAyCvB;AAoM1B,SAAgB,aAAa,CAAC,MAAqB;IACjD,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC;AAED,SAAgB,aAAa,CAAC,MAAqB;IACjD,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,13 +6,13 @@ 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, ImageProjectParams, ImageOutputFormat, ProjectParams, Sampler, Scheduler, SupportedSamplers, SupportedSchedulers, VideoProjectParams, AudioFormat, VideoFormat, VideoOutputFormat, VideoWorkflowType } from './Projects/types';
9
+ import { AvailableModel, ImageProjectParams, ImageOutputFormat, ProjectParams, Sampler, ForgeSampler, ComfySampler, Scheduler, ForgeScheduler, ComfyScheduler, SupportedForgeSamplers, SupportedForgeSchedulers, SupportedComfySamplers, SupportedComfySchedulers, VideoProjectParams, AudioFormat, VideoFormat, VideoOutputFormat, VideoWorkflowType } 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 { AudioFormat, AvailableModel, ErrorData, ImageProjectParams, ImageOutputFormat, JobStatus, Logger, LogLevel, ProjectParams, ProjectStatus, Sampler, SupernetType, Scheduler, TokenType, VideoFormat, VideoOutputFormat, VideoProjectParams, VideoWorkflowType };
15
- export { ApiError, CurrentAccount, Job, Project, SupportedSamplers, SupportedSchedulers };
14
+ export type { AudioFormat, AvailableModel, ErrorData, ImageProjectParams, ImageOutputFormat, JobStatus, Logger, LogLevel, ProjectParams, ProjectStatus, Sampler, ForgeSampler, ComfySampler, SupernetType, Scheduler, ForgeScheduler, ComfyScheduler, TokenType, VideoFormat, VideoOutputFormat, VideoProjectParams, VideoWorkflowType };
15
+ export { ApiError, CurrentAccount, Job, Project, SupportedComfySchedulers, SupportedComfySamplers, SupportedForgeSchedulers, SupportedForgeSamplers };
16
16
  export interface SogniClientConfig {
17
17
  /**
18
18
  * The application ID string. Must be unique, multiple connections with the same ID will be rejected.
package/dist/index.js CHANGED
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.SogniClient = exports.SupportedSchedulers = exports.SupportedSamplers = exports.Project = exports.Job = exports.CurrentAccount = exports.ApiError = void 0;
38
+ exports.SogniClient = exports.SupportedForgeSamplers = exports.SupportedForgeSchedulers = exports.SupportedComfySamplers = exports.SupportedComfySchedulers = exports.Project = exports.Job = exports.CurrentAccount = exports.ApiError = void 0;
39
39
  // Account API
40
40
  const Account_1 = __importDefault(require("./Account"));
41
41
  const CurrentAccount_1 = __importDefault(require("./Account/CurrentAccount"));
@@ -53,8 +53,10 @@ exports.Job = Job_1.default;
53
53
  const Project_1 = __importDefault(require("./Projects/Project"));
54
54
  exports.Project = Project_1.default;
55
55
  const types_1 = require("./Projects/types");
56
- Object.defineProperty(exports, "SupportedSamplers", { enumerable: true, get: function () { return types_1.SupportedSamplers; } });
57
- Object.defineProperty(exports, "SupportedSchedulers", { enumerable: true, get: function () { return types_1.SupportedSchedulers; } });
56
+ Object.defineProperty(exports, "SupportedForgeSamplers", { enumerable: true, get: function () { return types_1.SupportedForgeSamplers; } });
57
+ Object.defineProperty(exports, "SupportedForgeSchedulers", { enumerable: true, get: function () { return types_1.SupportedForgeSchedulers; } });
58
+ Object.defineProperty(exports, "SupportedComfySamplers", { enumerable: true, get: function () { return types_1.SupportedComfySamplers; } });
59
+ Object.defineProperty(exports, "SupportedComfySchedulers", { enumerable: true, get: function () { return types_1.SupportedComfySchedulers; } });
58
60
  // Stats API
59
61
  const Stats_1 = __importDefault(require("./Stats"));
60
62
  const AuthManager_1 = require("./lib/AuthManager");
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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"}
@@ -34,7 +34,20 @@ class RestClient extends TypedEventEmitter_1.default {
34
34
  request(url_1) {
35
35
  return __awaiter(this, arguments, void 0, function* (url, options = {}) {
36
36
  const init = yield this.auth.authenticateRequest(options);
37
- return fetch(url, init).then((r) => this.processResponse(r));
37
+ // Add a timeout to detect hanging requests
38
+ const controller = new AbortController();
39
+ const timeoutId = setTimeout(() => {
40
+ controller.abort();
41
+ }, 30000);
42
+ try {
43
+ const response = yield fetch(url, Object.assign(Object.assign({}, init), { signal: controller.signal }));
44
+ clearTimeout(timeoutId);
45
+ return this.processResponse(response);
46
+ }
47
+ catch (fetchError) {
48
+ clearTimeout(timeoutId);
49
+ throw fetchError;
50
+ }
38
51
  });
39
52
  }
40
53
  processResponse(response) {
@@ -58,7 +71,7 @@ class RestClient extends TypedEventEmitter_1.default {
58
71
  });
59
72
  }
60
73
  get(path, query = {}) {
61
- return this.request(this.formatUrl(path, query), query);
74
+ return this.request(this.formatUrl(path, query));
62
75
  }
63
76
  post(path, body = {}) {
64
77
  return this.request(this.formatUrl(path), {
@@ -1 +1 @@
1
- {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4CAA0D;AAC1D,4EAAkE;AAKlE,MAAM,UAAuC,SAAQ,2BAAoB;IAKvE,YAAY,OAAe,EAAE,IAAiB,EAAE,MAAc;QAC5D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,WAAmB,EAAE,QAAgC,EAAE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEa,OAAO;6DAAgB,GAAW,EAAE,UAAuB,EAAE;YACzE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAM,CAAC,CAAC;QACpE,CAAC;KAAA;IAEa,eAAe,CAAC,QAAkB;;YAC9C,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,0FAA0F;YAC1F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAgC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,YAAyB,CAAC;QACnC,CAAC;KAAA;IAED,GAAG,CAAgB,IAAY,EAAE,QAA6B,EAAE;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAgB,IAAY,EAAE,OAAgC,EAAE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,24 @@ interface NumberValidationOptions {
12
12
  defaultValue?: number;
13
13
  }
14
14
  export declare function validateNumber(value: any, { min, max, propertyName, defaultValue }?: NumberValidationOptions): number;
15
- export declare function validateSampler(value?: string): string | null;
16
- export declare function validateScheduler(value?: string): string | null;
15
+ export declare function validateForgeSampler(value?: string): string | null;
16
+ export declare function validateForgeScheduler(value?: string): string | null;
17
17
  /**
18
18
  * Validate teacacheThreshold for T2V and I2V models.
19
19
  * Range: 0.0-1.0. 0.0 = disabled.
20
20
  */
21
21
  export declare function validateTeacacheThreshold(value?: number): number | undefined;
22
+ /**
23
+ * Validate ComfyUI sampler for video models.
24
+ * Returns the sampler string directly (no mapping needed).
25
+ */
26
+ export declare function validateComfySampler(value?: string): string | undefined;
27
+ /**
28
+ * Validate ComfyUI scheduler for video models.
29
+ * Returns the scheduler string directly (no mapping needed).
30
+ */
31
+ export declare function validateComfyScheduler(value?: string): string | undefined;
32
+ export declare function isComfyModel(modelId: string): boolean;
33
+ export declare function validateSampler(modelId: string, sampler: string): string | null | undefined;
34
+ export declare function validateScheduler(modelId: string, scheduler: string): string | null | undefined;
22
35
  export {};
@@ -4,11 +4,18 @@ exports.validateCustomImageSize = validateCustomImageSize;
4
4
  exports.validateVideoSize = validateVideoSize;
5
5
  exports.validateVideoDuration = validateVideoDuration;
6
6
  exports.validateNumber = validateNumber;
7
+ exports.validateForgeSampler = validateForgeSampler;
8
+ exports.validateForgeScheduler = validateForgeScheduler;
9
+ exports.validateTeacacheThreshold = validateTeacacheThreshold;
10
+ exports.validateComfySampler = validateComfySampler;
11
+ exports.validateComfyScheduler = validateComfyScheduler;
12
+ exports.isComfyModel = isComfyModel;
7
13
  exports.validateSampler = validateSampler;
8
14
  exports.validateScheduler = validateScheduler;
9
- exports.validateTeacacheThreshold = validateTeacacheThreshold;
10
- const SamplerParams_1 = require("../Projects/types/SamplerParams");
11
- const SchedulerParams_1 = require("../Projects/types/SchedulerParams");
15
+ const ForgeSamplerParams_1 = require("../Projects/types/ForgeSamplerParams");
16
+ const ForgeSchedulerParams_1 = require("../Projects/types/ForgeSchedulerParams");
17
+ const ComfySamplerParams_1 = require("../Projects/types/ComfySamplerParams");
18
+ const ComfySchedulerParams_1 = require("../Projects/types/ComfySchedulerParams");
12
19
  function validateCustomImageSize(value) {
13
20
  return validateNumber(value, { min: 256, max: 2048, propertyName: 'Width and height' });
14
21
  }
@@ -48,29 +55,29 @@ function validateNumber(value, { min, max, propertyName, defaultValue } = {}) {
48
55
  }
49
56
  return number;
50
57
  }
51
- function validateSampler(value) {
58
+ function validateForgeSampler(value) {
52
59
  if (!value) {
53
60
  return null;
54
61
  }
55
- if ((0, SamplerParams_1.isRawSampler)(value)) {
62
+ if ((0, ForgeSamplerParams_1.isRawForgeSampler)(value)) {
56
63
  return value;
57
64
  }
58
- if ((0, SamplerParams_1.isSampler)(value)) {
59
- return SamplerParams_1.SupportedSamplers[value];
65
+ if ((0, ForgeSamplerParams_1.isForgeSampler)(value)) {
66
+ return ForgeSamplerParams_1.SupportedForgeSamplers[value];
60
67
  }
61
- throw new Error(`Invalid sampler: ${value}. Supported options: ${Object.keys(SamplerParams_1.SupportedSamplers).join(', ')}`);
68
+ throw new Error(`Invalid sampler: ${value}. Supported options: ${Object.keys(ForgeSamplerParams_1.SupportedForgeSamplers).join(', ')}`);
62
69
  }
63
- function validateScheduler(value) {
70
+ function validateForgeScheduler(value) {
64
71
  if (!value) {
65
72
  return null;
66
73
  }
67
- if ((0, SamplerParams_1.isRawSampler)(value)) {
74
+ if ((0, ForgeSchedulerParams_1.isRawForgeScheduler)(value)) {
68
75
  return value;
69
76
  }
70
- if ((0, SchedulerParams_1.isScheduler)(value)) {
71
- return SchedulerParams_1.SupportedSchedulers[value];
77
+ if ((0, ForgeSchedulerParams_1.isForgeScheduler)(value)) {
78
+ return ForgeSchedulerParams_1.SupportedForgeSchedulers[value];
72
79
  }
73
- throw new Error(`Invalid scheduler: ${value}. Supported options: ${Object.keys(SchedulerParams_1.SupportedSchedulers).join(', ')}`);
80
+ throw new Error(`Invalid scheduler: ${value}. Supported options: ${Object.keys(ForgeSchedulerParams_1.SupportedForgeSchedulers).join(', ')}`);
74
81
  }
75
82
  /**
76
83
  * Validate teacacheThreshold for T2V and I2V models.
@@ -89,4 +96,46 @@ function validateTeacacheThreshold(value) {
89
96
  }
90
97
  return num;
91
98
  }
99
+ /**
100
+ * Validate ComfyUI sampler for video models.
101
+ * Returns the sampler string directly (no mapping needed).
102
+ */
103
+ function validateComfySampler(value) {
104
+ if (!value) {
105
+ return undefined;
106
+ }
107
+ if ((0, ComfySamplerParams_1.isComfySampler)(value)) {
108
+ return ComfySamplerParams_1.SupportedComfySamplers[value];
109
+ }
110
+ throw new Error(`Invalid comfySampler: ${value}. Supported options: ${Object.keys(ComfySamplerParams_1.SupportedComfySamplers).join(', ')}`);
111
+ }
112
+ /**
113
+ * Validate ComfyUI scheduler for video models.
114
+ * Returns the scheduler string directly (no mapping needed).
115
+ */
116
+ function validateComfyScheduler(value) {
117
+ if (!value) {
118
+ return undefined;
119
+ }
120
+ if ((0, ComfySchedulerParams_1.isComfyScheduler)(value)) {
121
+ return ComfySchedulerParams_1.SupportedComfySchedulers[value];
122
+ }
123
+ throw new Error(`Invalid comfyScheduler: ${value}. Supported options: ${Object.keys(ComfySchedulerParams_1.SupportedComfySchedulers).join(', ')}`);
124
+ }
125
+ function isComfyModel(modelId) {
126
+ const COMFY_PREFIXES = ['z_image_', 'qwen_image_', 'flux2_', 'wan_'];
127
+ return COMFY_PREFIXES.some((prefix) => modelId.startsWith(prefix));
128
+ }
129
+ function validateSampler(modelId, sampler) {
130
+ if (isComfyModel(modelId)) {
131
+ return validateComfySampler(sampler);
132
+ }
133
+ return validateForgeSampler(sampler);
134
+ }
135
+ function validateScheduler(modelId, scheduler) {
136
+ if (isComfyModel(modelId)) {
137
+ return validateComfyScheduler(scheduler);
138
+ }
139
+ return validateForgeScheduler(scheduler);
140
+ }
92
141
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "4.0.0-alpha.37",
6
+ "version": "4.0.0-alpha.39",
7
7
  "description": "Sogni Supernet Client",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -61,6 +61,7 @@ export type JobResultData = {
61
61
  lastSeed: string;
62
62
  userCanceled: boolean;
63
63
  triggeredNSFWFilter: boolean;
64
+ resultUrl?: string;
64
65
  };
65
66
 
66
67
  export type JobStateData =
@@ -9,10 +9,13 @@ import { ControlNetParams, ControlNetParamsRaw } from './types/ControlNetParams'
9
9
  import {
10
10
  validateNumber,
11
11
  validateCustomImageSize,
12
- validateSampler,
13
- validateScheduler,
12
+ validateForgeSampler,
13
+ validateForgeScheduler,
14
14
  validateVideoSize,
15
15
  validateTeacacheThreshold,
16
+ validateComfySampler,
17
+ validateComfyScheduler,
18
+ isComfyModel,
16
19
  validateVideoDuration
17
20
  } from '../lib/validation';
18
21
  import { getVideoWorkflowType, isVideoModel, VIDEO_WORKFLOW_ASSETS } from './utils';
@@ -178,14 +181,30 @@ function getControlNet(params: ControlNetParams): ControlNetParamsRaw[] {
178
181
  function applyImageParams(inputKeyframe: Record<string, any>, params: ImageProjectParams) {
179
182
  const keyFrame: Record<string, any> = {
180
183
  ...inputKeyframe,
181
- scheduler: validateSampler(params.sampler),
182
- timeStepSpacing: validateScheduler(params.scheduler),
183
184
  sizePreset: params.sizePreset,
184
185
  hasContextImage1: !!params.contextImages?.[0],
185
186
  hasContextImage2: !!params.contextImages?.[1],
186
187
  hasContextImage3: !!params.contextImages?.[2]
187
188
  };
188
189
 
190
+ // Handle sampler/scheduler: ComfyUI models use comfySampler/comfyScheduler,
191
+ // legacy models use sampler/scheduler (mapped to scheduler/timeStepSpacing)
192
+ if (isComfyModel(params.modelId)) {
193
+ if (params.sampler !== undefined) {
194
+ keyFrame.comfySampler = validateComfySampler(params.sampler);
195
+ }
196
+ if (params.scheduler !== undefined) {
197
+ keyFrame.comfyScheduler = validateComfyScheduler(params.scheduler);
198
+ }
199
+ } else {
200
+ if (params.sampler !== undefined) {
201
+ keyFrame.scheduler = validateForgeSampler(params.sampler);
202
+ }
203
+ if (params.scheduler !== undefined) {
204
+ keyFrame.timeStepSpacing = validateForgeScheduler(params.scheduler);
205
+ }
206
+ }
207
+
189
208
  if (params.startingImage) {
190
209
  keyFrame.hasStartingImage = true;
191
210
  keyFrame.strengthIsEnabled = true;
@@ -195,7 +214,15 @@ function applyImageParams(inputKeyframe: Record<string, any>, params: ImageProje
195
214
  if (params.controlNet) {
196
215
  keyFrame.currentControlNetsJob = getControlNet(params.controlNet);
197
216
  }
198
- if (params.sizePreset === 'custom') {
217
+
218
+ // Set sizePreset to 'custom' if width/height are provided but sizePreset is not set
219
+ let effectiveSizePreset = params.sizePreset;
220
+ if (params.width && params.height && !params.sizePreset) {
221
+ effectiveSizePreset = 'custom';
222
+ }
223
+ keyFrame.sizePreset = effectiveSizePreset;
224
+
225
+ if (effectiveSizePreset === 'custom' && params.width && params.height) {
199
226
  keyFrame.width = validateCustomImageSize(params.width);
200
227
  keyFrame.height = validateCustomImageSize(params.height);
201
228
  }
@@ -252,6 +279,15 @@ function applyVideoParams(inputKeyframe: Record<string, any>, params: VideoProje
252
279
  keyFrame.height = validateVideoSize(params.height, 'height');
253
280
  }
254
281
 
282
+ // Video models are ComfyUI models - only accept comfySampler/comfyScheduler
283
+ // Legacy sampler/scheduler fields are NOT supported for video models
284
+ if (params.sampler !== undefined) {
285
+ keyFrame.comfySampler = validateComfySampler(params.sampler);
286
+ }
287
+ if (params.scheduler !== undefined) {
288
+ keyFrame.comfyScheduler = validateComfyScheduler(params.scheduler);
289
+ }
290
+
255
291
  return keyFrame;
256
292
  }
257
293