@sogni-ai/sogni-client 4.0.0-alpha.9 → 4.0.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/CHANGELOG.md +268 -0
- package/README.md +262 -27
- package/dist/Account/index.d.ts +18 -16
- package/dist/Account/index.js +31 -20
- package/dist/Account/index.js.map +1 -1
- package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.d.ts +66 -0
- package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js +332 -0
- package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/index.d.ts +28 -0
- package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js +203 -0
- package/dist/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/events.d.ts +12 -0
- package/dist/ApiClient/WebSocketClient/index.d.ts +2 -2
- package/dist/ApiClient/WebSocketClient/index.js +13 -3
- package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
- package/dist/ApiClient/WebSocketClient/types.d.ts +13 -0
- package/dist/ApiClient/index.d.ts +4 -4
- package/dist/ApiClient/index.js +23 -4
- package/dist/ApiClient/index.js.map +1 -1
- package/dist/Projects/Job.d.ts +44 -4
- package/dist/Projects/Job.js +83 -16
- package/dist/Projects/Job.js.map +1 -1
- package/dist/Projects/Project.d.ts +18 -0
- package/dist/Projects/Project.js +38 -10
- package/dist/Projects/Project.js.map +1 -1
- package/dist/Projects/createJobRequestMessage.js +170 -13
- package/dist/Projects/createJobRequestMessage.js.map +1 -1
- package/dist/Projects/index.d.ts +112 -11
- package/dist/Projects/index.js +473 -45
- package/dist/Projects/index.js.map +1 -1
- package/dist/Projects/types/ComfySamplerParams.d.ts +28 -0
- package/dist/Projects/types/ComfySamplerParams.js +36 -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/EstimationResponse.d.ts +2 -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/events.d.ts +5 -1
- package/dist/Projects/types/index.d.ts +205 -38
- package/dist/Projects/types/index.js +17 -0
- package/dist/Projects/types/index.js.map +1 -1
- package/dist/Projects/utils.d.ts +19 -1
- package/dist/Projects/utils.js +68 -0
- package/dist/Projects/utils.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/AuthManager/TokenAuthManager.js +0 -2
- package/dist/lib/AuthManager/TokenAuthManager.js.map +1 -1
- package/dist/lib/DataEntity.js +4 -2
- package/dist/lib/DataEntity.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 +26 -2
- package/dist/lib/validation.js +95 -10
- package/dist/lib/validation.js.map +1 -1
- package/package.json +4 -4
- package/src/Account/index.ts +30 -19
- package/src/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.ts +426 -0
- package/src/ApiClient/WebSocketClient/BrowserWebSocketClient/index.ts +237 -0
- package/src/ApiClient/WebSocketClient/events.ts +14 -0
- package/src/ApiClient/WebSocketClient/index.ts +15 -5
- package/src/ApiClient/WebSocketClient/types.ts +16 -0
- package/src/ApiClient/index.ts +30 -8
- package/src/Projects/Job.ts +97 -16
- package/src/Projects/Project.ts +46 -13
- package/src/Projects/createJobRequestMessage.ts +222 -35
- package/src/Projects/index.ts +504 -49
- package/src/Projects/types/ComfySamplerParams.ts +34 -0
- package/src/Projects/types/ComfySchedulerParams.ts +21 -0
- package/src/Projects/types/EstimationResponse.ts +2 -0
- package/src/Projects/types/ForgeSamplerParams.ts +37 -0
- package/src/Projects/types/ForgeSchedulerParams.ts +26 -0
- package/src/Projects/types/events.ts +6 -0
- package/src/Projects/types/index.ts +243 -39
- package/src/Projects/utils.ts +66 -1
- package/src/index.ts +60 -8
- package/src/lib/AuthManager/TokenAuthManager.ts +0 -2
- package/src/lib/DataEntity.ts +4 -2
- package/src/lib/RestClient.ts +16 -2
- package/src/lib/validation.ts +111 -14
- package/dist/Projects/types/SamplerParams.d.ts +0 -12
- package/dist/Projects/types/SamplerParams.js +0 -21
- package/dist/Projects/types/SamplerParams.js.map +0 -1
- package/dist/Projects/types/SchedulerParams.d.ts +0 -13
- package/dist/Projects/types/SchedulerParams.js +0 -19
- package/dist/Projects/types/SchedulerParams.js.map +0 -1
- package/src/Projects/types/SamplerParams.ts +0 -19
- package/src/Projects/types/SchedulerParams.ts +0 -17
package/dist/Projects/Project.js
CHANGED
|
@@ -14,10 +14,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const Job_1 = __importDefault(require("./Job"));
|
|
16
16
|
const DataEntity_1 = __importDefault(require("../lib/DataEntity"));
|
|
17
|
+
const types_1 = require("./types");
|
|
17
18
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
18
19
|
const getUUID_1 = __importDefault(require("../lib/getUUID"));
|
|
19
|
-
// If project is not finished and had no updates for
|
|
20
|
-
const PROJECT_TIMEOUT = 60 * 1000;
|
|
20
|
+
// If project is not finished and had no updates for 2 minutes, force refresh
|
|
21
|
+
const PROJECT_TIMEOUT = 2 * 60 * 1000;
|
|
21
22
|
const MAX_FAILED_SYNC_ATTEMPTS = 3;
|
|
22
23
|
const PROJECT_STATUS_MAP = {
|
|
23
24
|
pending: 'pending',
|
|
@@ -52,9 +53,19 @@ class Project extends DataEntity_1.default {
|
|
|
52
53
|
get params() {
|
|
53
54
|
return this.data.params;
|
|
54
55
|
}
|
|
56
|
+
get type() {
|
|
57
|
+
return this.params.type;
|
|
58
|
+
}
|
|
55
59
|
get status() {
|
|
56
60
|
return this.data.status;
|
|
57
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Estimated time of completion in seconds (for long-running projects like video generation).
|
|
64
|
+
* Updated by ComfyUI workers during inference.
|
|
65
|
+
*/
|
|
66
|
+
get eta() {
|
|
67
|
+
return this.data.eta;
|
|
68
|
+
}
|
|
58
69
|
get finished() {
|
|
59
70
|
return ['completed', 'failed', 'canceled'].includes(this.status);
|
|
60
71
|
}
|
|
@@ -65,11 +76,12 @@ class Project extends DataEntity_1.default {
|
|
|
65
76
|
* Progress of the project in percentage (0-100).
|
|
66
77
|
*/
|
|
67
78
|
get progress() {
|
|
79
|
+
var _a;
|
|
68
80
|
// Worker can reduce the number of steps in the job, so we need to calculate the progress based on the actual number of steps
|
|
69
|
-
const stepsPerJob = this.jobs.length ? this.jobs[0].stepCount : this.data.params.steps;
|
|
70
|
-
const jobCount = this.data.params.
|
|
81
|
+
const stepsPerJob = this.jobs.length ? this.jobs[0].stepCount : ((_a = this.data.params.steps) !== null && _a !== void 0 ? _a : 0);
|
|
82
|
+
const jobCount = this.data.params.numberOfMedia;
|
|
71
83
|
const stepsDone = this._jobs.reduce((acc, job) => acc + job.step, 0);
|
|
72
|
-
return Math.round((stepsDone / (stepsPerJob * jobCount)) * 100);
|
|
84
|
+
return Math.round((stepsDone / ((stepsPerJob !== null && stepsPerJob !== void 0 ? stepsPerJob : 1) * jobCount)) * 100);
|
|
73
85
|
}
|
|
74
86
|
get queuePosition() {
|
|
75
87
|
return this.data.queuePosition;
|
|
@@ -107,10 +119,10 @@ class Project extends DataEntity_1.default {
|
|
|
107
119
|
return Promise.reject(this.error);
|
|
108
120
|
}
|
|
109
121
|
return new Promise((resolve, reject) => {
|
|
110
|
-
this.
|
|
122
|
+
this.once('completed', (images) => {
|
|
111
123
|
resolve(images);
|
|
112
124
|
});
|
|
113
|
-
this.
|
|
125
|
+
this.once('failed', (error) => {
|
|
114
126
|
reject(error);
|
|
115
127
|
});
|
|
116
128
|
});
|
|
@@ -142,7 +154,7 @@ class Project extends DataEntity_1.default {
|
|
|
142
154
|
this._timeout = null;
|
|
143
155
|
}
|
|
144
156
|
if (keys.includes('status') || keys.includes('jobs')) {
|
|
145
|
-
const allJobsStarted = this.jobs.length >= this.params.
|
|
157
|
+
const allJobsStarted = this.jobs.length >= this.params.numberOfMedia;
|
|
146
158
|
const allJobsDone = this.jobs.every((job) => job.finished);
|
|
147
159
|
if (this.data.status === 'completed' && allJobsStarted && allJobsDone) {
|
|
148
160
|
return this.emit('completed', this.resultUrls);
|
|
@@ -152,6 +164,15 @@ class Project extends DataEntity_1.default {
|
|
|
152
164
|
}
|
|
153
165
|
}
|
|
154
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Refresh the lastUpdated timestamp to prevent timeout.
|
|
169
|
+
* Used when receiving socket events that indicate the project is still active
|
|
170
|
+
* (e.g., jobETA events during long-running video generation).
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
_keepAlive() {
|
|
174
|
+
this.lastUpdated = new Date();
|
|
175
|
+
}
|
|
155
176
|
/**
|
|
156
177
|
* This is internal method to add a job to the project. Do not call this directly.
|
|
157
178
|
* @internal
|
|
@@ -178,7 +199,11 @@ class Project extends DataEntity_1.default {
|
|
|
178
199
|
_checkForTimeout() {
|
|
179
200
|
if (this.lastUpdated.getTime() + PROJECT_TIMEOUT < Date.now()) {
|
|
180
201
|
this._syncToServer().catch((error) => {
|
|
181
|
-
|
|
202
|
+
// 404 errors are expected when project is still initializing and not yet available via REST API
|
|
203
|
+
// Only log non-404 errors to avoid confusing users
|
|
204
|
+
if (error.status !== 404) {
|
|
205
|
+
this._logger.error(error);
|
|
206
|
+
}
|
|
182
207
|
this._failedSyncAttempts++;
|
|
183
208
|
if (this._failedSyncAttempts >= MAX_FAILED_SYNC_ATTEMPTS) {
|
|
184
209
|
this._logger.error(`Failed to sync project data after ${MAX_FAILED_SYNC_ATTEMPTS} attempts. Stopping further attempts.`);
|
|
@@ -240,8 +265,11 @@ class Project extends DataEntity_1.default {
|
|
|
240
265
|
}
|
|
241
266
|
}
|
|
242
267
|
const delta = {
|
|
243
|
-
params: Object.assign(Object.assign({}, this.data.params), {
|
|
268
|
+
params: Object.assign(Object.assign({}, this.data.params), { numberOfMedia: data.imageCount, steps: data.stepCount })
|
|
244
269
|
};
|
|
270
|
+
if (delta.params && (0, types_1.isImageParams)(delta.params)) {
|
|
271
|
+
delta.params.numberOfPreviews = data.previewCount;
|
|
272
|
+
}
|
|
245
273
|
if (PROJECT_STATUS_MAP[data.status]) {
|
|
246
274
|
delta.status = PROJECT_STATUS_MAP[data.status];
|
|
247
275
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/Projects/Project.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gDAAqC;AACrC,mEAA6D;
|
|
1
|
+
{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/Projects/Project.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gDAAqC;AACrC,mEAA6D;AAC7D,mCAAuD;AACvD,iEAAyC;AAEzC,6DAAqC;AAKrC,6EAA6E;AAC7E,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAUnC,MAAM,kBAAkB,GAAgD;IACtE,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,UAAU;CACtB,CAAC;AAqCF,MAAM,OAAQ,SAAQ,oBAAwC;IAQ5D,YAAY,IAAmB,EAAE,OAAuB;QACtD,KAAK,CAAC;YACJ,EAAE,EAAE,IAAA,iBAAO,GAAE;YACb,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAdG,UAAK,GAAU,EAAE,CAAC;QAClB,wBAAmB,GAAG,CAAC,CAAC,CAAC;QAGzB,aAAQ,GAA0B,IAAI,CAAC;QACvC,wBAAmB,GAAG,CAAC,CAAC;QAW9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;QAE/E,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;;QACV,6HAA6H;QAC7H,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;gBAChC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACG,MAAM;;YACV,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;KAAA;IAED;;;OAGG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,aAAa,CAAC,IAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;QACtC,CAAC;QACD,mDAAmD;QACnD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,cAAc,IAAI,WAAW,EAAE,CAAC;gBACtE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAmB;QACzB,MAAM,GAAG,GACP,IAAI,YAAY,aAAG;YACjB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,aAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnC,gGAAgG;gBAChG,mDAAmD;gBACnD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,mBAAmB,IAAI,wBAAwB,EAAE,CAAC;oBACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,qCAAqC,wBAAwB,uCAAuC,CACrG,CAAC;oBACF,aAAa,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;oBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;4BAClB,GAAG,CAAC,OAAO,CAAC;gCACV,MAAM,EAAE,QAAQ;gCAChB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE;6BAC7C,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC;wBACX,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAyD,EAAE;qBACvF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACG,aAAa;;YACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAA2B,EAAE,GAAG,EAAE,EAAE;gBACnF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAA,iBAAO,GAAE,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;gBACjB,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChC,8DAA8D;gBAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,qCAAqC,CAAC,CAAC;oBAC9E,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;YAED,oGAAoG;YACpG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzC,MAAM,WAAW,GAAG,aAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;wBACzC,GAAG,EAAE,IAAI,CAAC,IAAI;wBACd,MAAM,EAAE,IAAI,CAAC,OAAO;wBACpB,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAyB;gBAClC,MAAM,kCACD,IAAI,CAAC,IAAI,CAAC,MAAM,KACnB,aAAa,EAAE,IAAI,CAAC,UAAU,EAC9B,KAAK,EAAE,IAAI,CAAC,SAAS,GACtB;aACF,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,IAAI,IAAA,qBAAa,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;YACpD,CAAC;YACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KAAA;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,IAAI,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,uCACK,IAAI,KACP,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAC3C;IACJ,CAAC;CACF;AAED,kBAAe,OAAO,CAAC"}
|
|
@@ -1,6 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const types_1 = require("./types");
|
|
3
4
|
const validation_1 = require("../lib/validation");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const ApiClient_1 = require("../ApiClient");
|
|
7
|
+
/**
|
|
8
|
+
* Validate that the provided assets match the workflow requirements.
|
|
9
|
+
* Throws an error if required assets are missing or forbidden assets are provided.
|
|
10
|
+
*/
|
|
11
|
+
function validateVideoWorkflowAssets(params) {
|
|
12
|
+
const workflowType = (0, utils_1.getVideoWorkflowType)(params.modelId);
|
|
13
|
+
if (!workflowType)
|
|
14
|
+
return;
|
|
15
|
+
const requirements = utils_1.VIDEO_WORKFLOW_ASSETS[workflowType];
|
|
16
|
+
if (!requirements)
|
|
17
|
+
return;
|
|
18
|
+
// Special case for i2v: at least ONE of referenceImage or referenceImageEnd required
|
|
19
|
+
if (workflowType === 'i2v') {
|
|
20
|
+
if (!params.referenceImage && !params.referenceImageEnd) {
|
|
21
|
+
throw new ApiClient_1.ApiError(400, {
|
|
22
|
+
status: 'error',
|
|
23
|
+
errorCode: 0,
|
|
24
|
+
message: 'i2v workflow requires at least one of referenceImage or referenceImageEnd. Please provide this asset.'
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Check for missing required assets and forbidden assets
|
|
29
|
+
for (const [asset, requirement] of Object.entries(requirements)) {
|
|
30
|
+
const assetKey = asset;
|
|
31
|
+
const hasAsset = !!params[assetKey];
|
|
32
|
+
if (requirement === 'required' && !hasAsset) {
|
|
33
|
+
throw new ApiClient_1.ApiError(400, {
|
|
34
|
+
status: 'error',
|
|
35
|
+
errorCode: 0,
|
|
36
|
+
message: `${workflowType} workflow requires ${assetKey}. Please provide this asset.`
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (requirement === 'forbidden' && hasAsset) {
|
|
40
|
+
throw new ApiClient_1.ApiError(400, {
|
|
41
|
+
status: 'error',
|
|
42
|
+
errorCode: 0,
|
|
43
|
+
message: `${workflowType} workflow does not support ${assetKey}. Please remove this asset.`
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
4
48
|
// Mac worker can't process the data if some of the fields are missing, so we need to provide a default template
|
|
5
49
|
function getTemplate() {
|
|
6
50
|
return {
|
|
@@ -110,24 +154,137 @@ function getControlNet(params) {
|
|
|
110
154
|
}
|
|
111
155
|
return [cn];
|
|
112
156
|
}
|
|
157
|
+
function applyImageParams(inputKeyframe, params) {
|
|
158
|
+
var _a, _b, _c;
|
|
159
|
+
const keyFrame = Object.assign(Object.assign({}, inputKeyframe), { sizePreset: params.sizePreset, hasContextImage1: !!((_a = params.contextImages) === null || _a === void 0 ? void 0 : _a[0]), hasContextImage2: !!((_b = params.contextImages) === null || _b === void 0 ? void 0 : _b[1]), hasContextImage3: !!((_c = params.contextImages) === null || _c === void 0 ? void 0 : _c[2]) });
|
|
160
|
+
// Handle sampler/scheduler: ComfyUI models use comfySampler/comfyScheduler,
|
|
161
|
+
// legacy models use sampler/scheduler (mapped to scheduler/timeStepSpacing)
|
|
162
|
+
if ((0, validation_1.isComfyModel)(params.modelId)) {
|
|
163
|
+
if (params.sampler !== undefined) {
|
|
164
|
+
keyFrame.comfySampler = (0, validation_1.validateComfySampler)(params.sampler);
|
|
165
|
+
}
|
|
166
|
+
if (params.scheduler !== undefined) {
|
|
167
|
+
keyFrame.comfyScheduler = (0, validation_1.validateComfyScheduler)(params.scheduler);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
if (params.sampler !== undefined) {
|
|
172
|
+
keyFrame.scheduler = (0, validation_1.validateForgeSampler)(params.sampler);
|
|
173
|
+
}
|
|
174
|
+
if (params.scheduler !== undefined) {
|
|
175
|
+
keyFrame.timeStepSpacing = (0, validation_1.validateForgeScheduler)(params.scheduler);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (params.startingImage) {
|
|
179
|
+
keyFrame.hasStartingImage = true;
|
|
180
|
+
keyFrame.strengthIsEnabled = true;
|
|
181
|
+
keyFrame.strength = 1 - (Number(params.startingImageStrength) || 0.5);
|
|
182
|
+
}
|
|
183
|
+
if (params.controlNet) {
|
|
184
|
+
keyFrame.currentControlNetsJob = getControlNet(params.controlNet);
|
|
185
|
+
}
|
|
186
|
+
// Set sizePreset to 'custom' if width/height are provided but sizePreset is not set
|
|
187
|
+
let effectiveSizePreset = params.sizePreset;
|
|
188
|
+
if (params.width && params.height && !params.sizePreset) {
|
|
189
|
+
effectiveSizePreset = 'custom';
|
|
190
|
+
}
|
|
191
|
+
keyFrame.sizePreset = effectiveSizePreset;
|
|
192
|
+
if (effectiveSizePreset === 'custom' && params.width && params.height) {
|
|
193
|
+
keyFrame.width = (0, validation_1.validateCustomImageSize)(params.width);
|
|
194
|
+
keyFrame.height = (0, validation_1.validateCustomImageSize)(params.height);
|
|
195
|
+
}
|
|
196
|
+
return keyFrame;
|
|
197
|
+
}
|
|
198
|
+
function applyVideoParams(inputKeyframe, params) {
|
|
199
|
+
if (!(0, utils_1.isVideoModel)(params.modelId)) {
|
|
200
|
+
throw new ApiClient_1.ApiError(400, {
|
|
201
|
+
status: 'error',
|
|
202
|
+
errorCode: 0,
|
|
203
|
+
message: 'Video generation is only supported for video models.'
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
validateVideoWorkflowAssets(params);
|
|
207
|
+
const keyFrame = Object.assign({}, inputKeyframe);
|
|
208
|
+
if (params.referenceImage) {
|
|
209
|
+
keyFrame.hasReferenceImage = true;
|
|
210
|
+
}
|
|
211
|
+
if (params.referenceImageEnd) {
|
|
212
|
+
keyFrame.hasReferenceImageEnd = true;
|
|
213
|
+
}
|
|
214
|
+
if (params.referenceAudio) {
|
|
215
|
+
keyFrame.hasReferenceAudio = true;
|
|
216
|
+
}
|
|
217
|
+
if (params.referenceVideo) {
|
|
218
|
+
keyFrame.hasReferenceVideo = true;
|
|
219
|
+
}
|
|
220
|
+
// Video generation parameters
|
|
221
|
+
if (params.frames !== undefined) {
|
|
222
|
+
keyFrame.frames = params.frames;
|
|
223
|
+
}
|
|
224
|
+
if (params.duration !== undefined) {
|
|
225
|
+
const duration = (0, validation_1.validateVideoDuration)(params.duration);
|
|
226
|
+
keyFrame.frames = duration * 16 + 1;
|
|
227
|
+
}
|
|
228
|
+
if (params.fps !== undefined) {
|
|
229
|
+
keyFrame.fps = params.fps;
|
|
230
|
+
}
|
|
231
|
+
if (params.shift !== undefined) {
|
|
232
|
+
keyFrame.shift = params.shift;
|
|
233
|
+
}
|
|
234
|
+
if (params.teacacheThreshold !== undefined) {
|
|
235
|
+
const validatedThreshold = (0, validation_1.validateTeacacheThreshold)(params.teacacheThreshold);
|
|
236
|
+
if (validatedThreshold !== undefined) {
|
|
237
|
+
keyFrame.teacacheThreshold = validatedThreshold;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// S2V audio parameters
|
|
241
|
+
if (params.audioStart !== undefined) {
|
|
242
|
+
keyFrame.audioStart = params.audioStart;
|
|
243
|
+
}
|
|
244
|
+
if (params.audioDuration !== undefined) {
|
|
245
|
+
keyFrame.audioDuration = params.audioDuration;
|
|
246
|
+
}
|
|
247
|
+
// Animate video parameters (for animate-move, animate-replace)
|
|
248
|
+
if (params.videoStart !== undefined) {
|
|
249
|
+
keyFrame.videoStart = params.videoStart;
|
|
250
|
+
}
|
|
251
|
+
// Validate and set video dimensions (minimum 480px for Wan 2.2 models)
|
|
252
|
+
if (params.width && params.height) {
|
|
253
|
+
keyFrame.width = (0, validation_1.validateVideoSize)(params.width, 'width');
|
|
254
|
+
keyFrame.height = (0, validation_1.validateVideoSize)(params.height, 'height');
|
|
255
|
+
}
|
|
256
|
+
// Video models are ComfyUI models - only accept comfySampler/comfyScheduler
|
|
257
|
+
// Legacy sampler/scheduler fields are NOT supported for video models
|
|
258
|
+
if (params.sampler !== undefined) {
|
|
259
|
+
keyFrame.comfySampler = (0, validation_1.validateComfySampler)(params.sampler);
|
|
260
|
+
}
|
|
261
|
+
if (params.scheduler !== undefined) {
|
|
262
|
+
keyFrame.comfyScheduler = (0, validation_1.validateComfyScheduler)(params.scheduler);
|
|
263
|
+
}
|
|
264
|
+
return keyFrame;
|
|
265
|
+
}
|
|
113
266
|
function createJobRequestMessage(id, params) {
|
|
114
|
-
var _a, _b;
|
|
115
267
|
const template = getTemplate();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
268
|
+
// Base keyFrame with common params
|
|
269
|
+
let keyFrame = Object.assign(Object.assign({}, template.keyFrames[0]), { steps: params.steps, guidanceScale: params.guidance, modelID: params.modelId, negativePrompt: params.negativePrompt, seed: params.seed, positivePrompt: params.positivePrompt, stylePrompt: params.stylePrompt });
|
|
270
|
+
switch (params.type) {
|
|
271
|
+
case 'image':
|
|
272
|
+
keyFrame = applyImageParams(keyFrame, params);
|
|
273
|
+
break;
|
|
274
|
+
case 'video':
|
|
275
|
+
keyFrame = applyVideoParams(keyFrame, params);
|
|
276
|
+
break;
|
|
277
|
+
default:
|
|
278
|
+
throw new ApiClient_1.ApiError(400, {
|
|
279
|
+
status: 'error',
|
|
280
|
+
errorCode: 0,
|
|
281
|
+
message: 'Invalid project type. Must be "image" or "video".'
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
const jobRequest = Object.assign(Object.assign({}, template), { keyFrames: [keyFrame], previews: (0, types_1.isImageParams)(params) ? params.numberOfPreviews || 0 : 0, numberOfImages: params.numberOfMedia || 1, jobID: id, disableSafety: !!params.disableNSFWFilter, tokenType: params.tokenType, outputFormat: params.outputFormat || ((0, types_1.isVideoParams)(params) ? 'mp4' : 'png') });
|
|
121
285
|
if (params.network) {
|
|
122
286
|
jobRequest.network = params.network;
|
|
123
287
|
}
|
|
124
|
-
if (params.controlNet) {
|
|
125
|
-
jobRequest.keyFrames[0].currentControlNetsJob = getControlNet(params.controlNet);
|
|
126
|
-
}
|
|
127
|
-
if (params.sizePreset === 'custom') {
|
|
128
|
-
jobRequest.keyFrames[0].width = (0, validation_1.validateCustomImageSize)(params.width);
|
|
129
|
-
jobRequest.keyFrames[0].height = (0, validation_1.validateCustomImageSize)(params.height);
|
|
130
|
-
}
|
|
131
288
|
return jobRequest;
|
|
132
289
|
}
|
|
133
290
|
exports.default = createJobRequestMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":"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"}
|
package/dist/Projects/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ApiGroup, { ApiConfig } from '../ApiGroup';
|
|
2
|
-
import { AvailableModel, EnhancementStrength, EstimateRequest, ImageUrlParams, ProjectParams, SizePreset, SupportedModel } from './types';
|
|
2
|
+
import { AvailableModel, EnhancementStrength, EstimateRequest, ImageUrlParams, MediaUrlParams, CostEstimation, ProjectParams, SizePreset, SupportedModel, VideoEstimateRequest } from './types';
|
|
3
3
|
import Project from './Project';
|
|
4
4
|
import { ProjectApiEvents } from './types/events';
|
|
5
5
|
import { RawProject } from './types/RawProject';
|
|
@@ -10,11 +10,26 @@ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
|
|
|
10
10
|
private projects;
|
|
11
11
|
private _supportedModels;
|
|
12
12
|
get availableModels(): AvailableModel[];
|
|
13
|
+
/**
|
|
14
|
+
* Check if a model produces video output using the cached models list.
|
|
15
|
+
* Uses the `media` property from the models API when available,
|
|
16
|
+
* falls back to model ID prefix check if models aren't loaded yet.
|
|
17
|
+
*/
|
|
18
|
+
isVideoModelId(modelId: string): boolean;
|
|
13
19
|
constructor(config: ApiConfig);
|
|
20
|
+
/**
|
|
21
|
+
* Retrieves a list of projects created and tracked by this SogniClient instance.
|
|
22
|
+
*
|
|
23
|
+
* Note: When a project is finished, it will be removed from this list after 30 seconds
|
|
24
|
+
*
|
|
25
|
+
* @return {Array} A copy of the array containing the tracked projects.
|
|
26
|
+
*/
|
|
27
|
+
get trackedProjects(): Project[];
|
|
14
28
|
private handleChangeNetwork;
|
|
15
29
|
private handleSwarmModels;
|
|
16
30
|
private handleJobState;
|
|
17
31
|
private handleJobProgress;
|
|
32
|
+
private handleJobETA;
|
|
18
33
|
private handleJobResult;
|
|
19
34
|
private handleJobError;
|
|
20
35
|
private handleProjectEvent;
|
|
@@ -28,10 +43,12 @@ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
|
|
|
28
43
|
waitForModels(timeout?: number): Promise<AvailableModel[]>;
|
|
29
44
|
/**
|
|
30
45
|
* Send new project request to the network. Returns project instance which can be used to track
|
|
31
|
-
* progress and get resulting images.
|
|
46
|
+
* progress and get resulting images or videos.
|
|
32
47
|
* @param data
|
|
33
48
|
*/
|
|
34
49
|
create(data: ProjectParams): Promise<Project>;
|
|
50
|
+
private _processImageAssets;
|
|
51
|
+
private _processVideoAssets;
|
|
35
52
|
/**
|
|
36
53
|
* Get project by id, this API returns project data from the server only if the project is
|
|
37
54
|
* completed or failed. If the project is still processing, it will throw 404 error.
|
|
@@ -50,35 +67,87 @@ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
|
|
|
50
67
|
private uploadCNImage;
|
|
51
68
|
private uploadContextImage;
|
|
52
69
|
/**
|
|
53
|
-
*
|
|
70
|
+
* Upload reference image for WAN video workflows
|
|
71
|
+
* @internal
|
|
54
72
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
73
|
+
private uploadReferenceImage;
|
|
74
|
+
/**
|
|
75
|
+
* Upload reference image end for i2v interpolation
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
private uploadReferenceImageEnd;
|
|
79
|
+
/**
|
|
80
|
+
* Upload reference audio for s2v workflows
|
|
81
|
+
* Supported formats: mp3, m4a, wav
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
private uploadReferenceAudio;
|
|
85
|
+
/**
|
|
86
|
+
* Upload reference video for animate workflows
|
|
87
|
+
* Supported formats: mp4, mov
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
private uploadReferenceVideo;
|
|
91
|
+
/**
|
|
92
|
+
* Estimate image project cost
|
|
93
|
+
*/
|
|
94
|
+
estimateCost({ network, tokenType, model, imageCount, stepCount, previewCount, cnEnabled, startingImageStrength, width, height, sizePreset, guidance, sampler, contextImages }: EstimateRequest): Promise<CostEstimation>;
|
|
95
|
+
/**
|
|
96
|
+
* Estimate image enhancement cost
|
|
97
|
+
* @param strength
|
|
98
|
+
* @param tokenType
|
|
99
|
+
*/
|
|
100
|
+
estimateEnhancementCost(strength: EnhancementStrength, tokenType?: TokenType): Promise<CostEstimation>;
|
|
101
|
+
/**
|
|
102
|
+
* Estimates the cost of generating a video based on the provided parameters.
|
|
103
|
+
*
|
|
104
|
+
* @param {VideoEstimateRequest} params - The parameters required for video cost estimation. This includes:
|
|
105
|
+
* - tokenType: The type of token to be used for generation.
|
|
106
|
+
* - model: The model to be used for video generation.
|
|
107
|
+
* - width: The width of the video in pixels.
|
|
108
|
+
* - height: The height of the video in pixels.
|
|
109
|
+
* - frames: The total number of frames in the video.
|
|
110
|
+
* - fps: The frames per second for the video.
|
|
111
|
+
* - steps: Number of steps.
|
|
112
|
+
* @return {Promise<Object>} Returns an object containing the estimated costs for the video in different units:
|
|
113
|
+
* - token: Cost in tokens.
|
|
114
|
+
* - usd: Cost in USD.
|
|
115
|
+
* - spark: Cost in Spark.
|
|
116
|
+
* - sogni: Cost in Sogni.
|
|
117
|
+
*/
|
|
118
|
+
estimateVideoCost(params: VideoEstimateRequest): Promise<{
|
|
60
119
|
token: string;
|
|
61
120
|
usd: string;
|
|
121
|
+
spark: string;
|
|
122
|
+
sogni: string;
|
|
62
123
|
}>;
|
|
63
124
|
/**
|
|
64
125
|
* Get upload URL for image
|
|
65
126
|
* @internal
|
|
66
|
-
* @param params
|
|
67
127
|
*/
|
|
68
128
|
uploadUrl(params: ImageUrlParams): Promise<string>;
|
|
69
129
|
/**
|
|
70
130
|
* Get download URL for image
|
|
71
131
|
* @internal
|
|
72
|
-
* @param params
|
|
73
132
|
*/
|
|
74
133
|
downloadUrl(params: ImageUrlParams): Promise<string>;
|
|
134
|
+
/**
|
|
135
|
+
* Get upload URL for media (video/audio)
|
|
136
|
+
* @internal
|
|
137
|
+
*/
|
|
138
|
+
mediaUploadUrl(params: MediaUrlParams): Promise<string>;
|
|
139
|
+
/**
|
|
140
|
+
* Get download URL for media (video/audio)
|
|
141
|
+
* @internal
|
|
142
|
+
*/
|
|
143
|
+
mediaDownloadUrl(params: MediaUrlParams): Promise<string>;
|
|
75
144
|
getSupportedModels(forceRefresh?: boolean): Promise<SupportedModel[]>;
|
|
76
145
|
/**
|
|
77
146
|
* Get supported size presets for the model and network. Size presets are cached for 10 minutes.
|
|
78
147
|
*
|
|
79
148
|
* @example
|
|
80
149
|
* ```ts
|
|
81
|
-
* const presets = await
|
|
150
|
+
* const presets = await sogni.projects.getSizePresets('fast', 'flux1-schnell-fp8');
|
|
82
151
|
* console.log(presets);
|
|
83
152
|
* ```
|
|
84
153
|
*
|
|
@@ -95,11 +164,43 @@ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
|
|
|
95
164
|
* }[]>}
|
|
96
165
|
*/
|
|
97
166
|
getSizePresets(network: SupernetType, modelId: string, forceRefresh?: boolean): Promise<SizePreset[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Retrieves the video asset configuration for a given video model identifier.
|
|
169
|
+
* Validates whether the provided model ID corresponds to a video model. If it does,
|
|
170
|
+
* returns the appropriate video asset configuration based on the workflow type.
|
|
171
|
+
*
|
|
172
|
+
* @example Returned object for a model that implements image to video workflow:
|
|
173
|
+
* ```json
|
|
174
|
+
* {
|
|
175
|
+
* "workflowType": "i2v",
|
|
176
|
+
* "assets": {
|
|
177
|
+
* "referenceImage": "required",
|
|
178
|
+
* "referenceImageEnd": "optional",
|
|
179
|
+
* "referenceAudio": "forbidden",
|
|
180
|
+
* "referenceVideo": "forbidden"
|
|
181
|
+
* }
|
|
182
|
+
* }
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @param {string} modelId - The identifier of the video model to retrieve the configuration for.
|
|
186
|
+
* @return {Object} The video asset configuration object where key is asset field and value is
|
|
187
|
+
* either `required`, `forbidden` or `optional`. Returns `null` if no rules defined for the model.
|
|
188
|
+
* @throws {ApiError} Throws an error if the provided model ID is not a video model.
|
|
189
|
+
*/
|
|
190
|
+
getVideoAssetConfig(modelId: string): Promise<{
|
|
191
|
+
workflowType: null;
|
|
192
|
+
assets?: undefined;
|
|
193
|
+
} | {
|
|
194
|
+
workflowType: "t2v" | "i2v" | "s2v" | "animate-move" | "animate-replace";
|
|
195
|
+
assets: Record<import("./types").VideoAssetKey, import("./types").AssetRequirement>;
|
|
196
|
+
}>;
|
|
98
197
|
/**
|
|
99
198
|
* Get available models and their worker counts. Normally, you would get list once you connect
|
|
100
199
|
* to the server, but you can also call this method to get the list of available models manually.
|
|
101
200
|
* @param network
|
|
102
201
|
*/
|
|
103
202
|
getAvailableModels(network: SupernetType): Promise<AvailableModel[]>;
|
|
203
|
+
getSamplers(modelId: string): Promise<("euler" | "euler_ancestral" | "heun" | "dpmpp_2m" | "dpmpp_2m_sde" | "dpmpp_sde" | "dpmpp_3m_sde" | "uni_pc" | "lcm" | "lms" | "dpm_2" | "dpm_2_ancestral" | "dpm_fast" | "dpm_adaptive" | "dpmpp_2s_ancestral" | "ddpm" | "ddim" | "uni_pc_bh2" | "res_multistep" | "res_multistep_cfg_pp")[] | ("euler" | "euler_ancestral" | "heun" | "dpmpp_2m" | "dpmpp_2m_sde" | "dpmpp_sde" | "dpmpp_3m_sde" | "uni_pc" | "lcm" | "lms" | "dpm_2" | "dpm_2_ancestral" | "dpm_fast" | "dpm_adaptive" | "dpmpp_2s_ancestral" | "ddpm" | "dfs_sd3" | "dpm_pp" | "dpm_pp_sde" | "dpm_pp_2m" | "euler_a" | "pndm_plms")[]>;
|
|
204
|
+
getSchedulers(modelId: string): Promise<("simple" | "normal" | "karras" | "exponential" | "sgm_uniform" | "ddim_uniform" | "beta" | "linear_quadratic" | "kl_optimal" | "ddim" | "leading" | "linear")[]>;
|
|
104
205
|
}
|
|
105
206
|
export default ProjectsApi;
|