@sogni-ai/sogni-client 4.0.0-alpha.36 → 4.0.0-alpha.38
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 +22 -0
- package/dist/ApiClient/WebSocketClient/events.d.ts +1 -0
- package/dist/Projects/createJobRequestMessage.js +34 -2
- package/dist/Projects/createJobRequestMessage.js.map +1 -1
- package/dist/Projects/index.d.ts +2 -0
- package/dist/Projects/index.js +68 -19
- package/dist/Projects/index.js.map +1 -1
- package/dist/Projects/types/ComfySamplerParams.d.ts +26 -0
- package/dist/Projects/types/ComfySamplerParams.js +33 -0
- package/dist/Projects/types/ComfySamplerParams.js.map +1 -0
- package/dist/Projects/types/ComfySchedulerParams.d.ts +17 -0
- package/dist/Projects/types/ComfySchedulerParams.js +23 -0
- package/dist/Projects/types/ComfySchedulerParams.js.map +1 -0
- package/dist/Projects/types/ForgeSamplerParams.d.ts +27 -0
- package/dist/Projects/types/ForgeSamplerParams.js +39 -0
- package/dist/Projects/types/ForgeSamplerParams.js.map +1 -0
- package/dist/Projects/types/ForgeSchedulerParams.d.ts +17 -0
- package/dist/Projects/types/ForgeSchedulerParams.js +28 -0
- package/dist/Projects/types/ForgeSchedulerParams.js.map +1 -0
- package/dist/Projects/types/index.d.ts +30 -7
- package/dist/Projects/types/index.js +9 -5
- package/dist/Projects/types/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/RestClient.js +15 -2
- package/dist/lib/RestClient.js.map +1 -1
- package/dist/lib/validation.d.ts +15 -2
- package/dist/lib/validation.js +62 -13
- package/dist/lib/validation.js.map +1 -1
- package/package.json +1 -1
- package/src/ApiClient/WebSocketClient/events.ts +1 -0
- package/src/Projects/createJobRequestMessage.ts +41 -5
- package/src/Projects/index.ts +78 -24
- package/src/Projects/types/ComfySamplerParams.ts +31 -0
- package/src/Projects/types/ComfySchedulerParams.ts +21 -0
- package/src/Projects/types/ForgeSamplerParams.ts +37 -0
- package/src/Projects/types/ForgeSchedulerParams.ts +26 -0
- package/src/Projects/types/index.ts +37 -7
- package/src/index.ts +14 -3
- package/src/lib/RestClient.ts +16 -2
- package/src/lib/validation.ts +73 -12
- package/dist/Projects/types/SamplerParams.d.ts +0 -13
- package/dist/Projects/types/SamplerParams.js +0 -26
- package/dist/Projects/types/SamplerParams.js.map +0 -1
- package/dist/Projects/types/SchedulerParams.d.ts +0 -14
- package/dist/Projects/types/SchedulerParams.js +0 -24
- package/dist/Projects/types/SchedulerParams.js.map +0 -1
- package/src/Projects/types/SamplerParams.ts +0 -24
- 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 {
|
|
5
|
-
import {
|
|
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
|
|
33
|
-
export
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
/**
|
|
@@ -297,7 +315,12 @@ export interface VideoEstimateRequest {
|
|
|
297
315
|
model: string;
|
|
298
316
|
width: number;
|
|
299
317
|
height: number;
|
|
300
|
-
|
|
318
|
+
duration: number;
|
|
319
|
+
/**
|
|
320
|
+
* Number of frames to generate.
|
|
321
|
+
* @deprecated Use duration instead
|
|
322
|
+
*/
|
|
323
|
+
frames?: number;
|
|
301
324
|
fps: number;
|
|
302
325
|
steps: number;
|
|
303
326
|
numberOfMedia: number;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SupportedComfySchedulers = exports.SupportedComfySamplers = exports.SupportedForgeSchedulers = exports.SupportedForgeSamplers = void 0;
|
|
4
4
|
exports.isVideoParams = isVideoParams;
|
|
5
5
|
exports.isImageParams = isImageParams;
|
|
6
|
-
const
|
|
7
|
-
Object.defineProperty(exports, "
|
|
8
|
-
const
|
|
9
|
-
Object.defineProperty(exports, "
|
|
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":";;;
|
|
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,
|
|
9
|
+
import { AvailableModel, ImageProjectParams, ImageOutputFormat, ProjectParams, Sampler, Scheduler, 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
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,
|
|
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.
|
|
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, "
|
|
57
|
-
Object.defineProperty(exports, "
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,wDAAmC;AACnC,8EAAsD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/RestClient.js
CHANGED
|
@@ -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
|
-
|
|
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)
|
|
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;
|
|
1
|
+
{"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/validation.d.ts
CHANGED
|
@@ -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
|
|
16
|
-
export declare function
|
|
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 {};
|
package/dist/lib/validation.js
CHANGED
|
@@ -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
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
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
|
|
58
|
+
function validateForgeSampler(value) {
|
|
52
59
|
if (!value) {
|
|
53
60
|
return null;
|
|
54
61
|
}
|
|
55
|
-
if ((0,
|
|
62
|
+
if ((0, ForgeSamplerParams_1.isRawForgeSampler)(value)) {
|
|
56
63
|
return value;
|
|
57
64
|
}
|
|
58
|
-
if ((0,
|
|
59
|
-
return
|
|
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(
|
|
68
|
+
throw new Error(`Invalid sampler: ${value}. Supported options: ${Object.keys(ForgeSamplerParams_1.SupportedForgeSamplers).join(', ')}`);
|
|
62
69
|
}
|
|
63
|
-
function
|
|
70
|
+
function validateForgeScheduler(value) {
|
|
64
71
|
if (!value) {
|
|
65
72
|
return null;
|
|
66
73
|
}
|
|
67
|
-
if ((0,
|
|
74
|
+
if ((0, ForgeSchedulerParams_1.isRawForgeScheduler)(value)) {
|
|
68
75
|
return value;
|
|
69
76
|
}
|
|
70
|
-
if ((0,
|
|
71
|
-
return
|
|
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(
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,10 +9,13 @@ import { ControlNetParams, ControlNetParamsRaw } from './types/ControlNetParams'
|
|
|
9
9
|
import {
|
|
10
10
|
validateNumber,
|
|
11
11
|
validateCustomImageSize,
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
|