@sogni-ai/sogni-client 3.0.0-alpha.13 → 3.0.0-alpha.14
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 +7 -0
- package/dist/Projects/Job.d.ts +8 -3
- package/dist/Projects/Job.js +21 -17
- package/dist/Projects/Job.js.map +1 -1
- package/package.json +1 -1
- package/src/Projects/Job.ts +22 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [3.0.0-alpha.14](https://github.com/Sogni-AI/sogni-client/compare/v3.0.0-alpha.13...v3.0.0-alpha.14) (2025-04-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Refactor image enhancement logic ([6728875](https://github.com/Sogni-AI/sogni-client/commit/67288759637c4b22266455ce1f1220d2590d7592))
|
|
7
|
+
|
|
1
8
|
# [3.0.0-alpha.13](https://github.com/Sogni-AI/sogni-client/compare/v3.0.0-alpha.12...v3.0.0-alpha.13) (2025-04-24)
|
|
2
9
|
|
|
3
10
|
|
package/dist/Projects/Job.d.ts
CHANGED
|
@@ -86,16 +86,20 @@ declare class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
86
86
|
*/
|
|
87
87
|
get resultUrl(): string | null | undefined;
|
|
88
88
|
get imageUrl(): string | undefined;
|
|
89
|
-
get enhancedImageUrl(): string | null;
|
|
90
89
|
get error(): ErrorData | undefined;
|
|
91
90
|
get hasResultImage(): boolean;
|
|
92
|
-
get
|
|
91
|
+
get enhancedImage(): {
|
|
92
|
+
status: import("./Project").ProjectStatus;
|
|
93
|
+
progress: number;
|
|
94
|
+
result: string | null;
|
|
95
|
+
error: ErrorData | undefined;
|
|
96
|
+
getResultUrl: () => Promise<string>;
|
|
97
|
+
} | null;
|
|
93
98
|
/**
|
|
94
99
|
* Get the result URL of the job. This method will make a request to the API to get signed URL.
|
|
95
100
|
* IMPORTANT: URL expires after 30 minutes, so make sure to download the image as soon as possible.
|
|
96
101
|
*/
|
|
97
102
|
getResultUrl(): Promise<string>;
|
|
98
|
-
getEnhancedImageUrl(): Promise<string>;
|
|
99
103
|
/**
|
|
100
104
|
* Whether the image is NSFW or not. Only makes sense if job is completed.
|
|
101
105
|
* If NSFW filter is disabled, this property will always be false.
|
|
@@ -113,6 +117,7 @@ declare class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
113
117
|
*/
|
|
114
118
|
_syncWithRestData(data: RawJob): Promise<void>;
|
|
115
119
|
private handleUpdated;
|
|
120
|
+
private handleEnhancementUpdate;
|
|
116
121
|
getResultData(): Promise<import("buffer").Blob>;
|
|
117
122
|
/**
|
|
118
123
|
* Enhance the image using the Flux model. This method will create a new project with the
|
package/dist/Projects/Job.js
CHANGED
|
@@ -58,6 +58,7 @@ class Job extends DataEntity_1.default {
|
|
|
58
58
|
this._logger = options.logger;
|
|
59
59
|
this._project = options.project;
|
|
60
60
|
this.on('updated', this.handleUpdated.bind(this));
|
|
61
|
+
this.handleEnhancementUpdate = this.handleEnhancementUpdate.bind(this);
|
|
61
62
|
}
|
|
62
63
|
get id() {
|
|
63
64
|
return this.data.id;
|
|
@@ -114,18 +115,25 @@ class Job extends DataEntity_1.default {
|
|
|
114
115
|
get imageUrl() {
|
|
115
116
|
return this.data.resultUrl || this.data.previewUrl;
|
|
116
117
|
}
|
|
117
|
-
get enhancedImageUrl() {
|
|
118
|
-
var _a;
|
|
119
|
-
return ((_a = this._enhancementProject) === null || _a === void 0 ? void 0 : _a.jobs[0].resultUrl) || null;
|
|
120
|
-
}
|
|
121
118
|
get error() {
|
|
122
119
|
return this.data.error;
|
|
123
120
|
}
|
|
124
121
|
get hasResultImage() {
|
|
125
122
|
return this.status === 'completed' && !this.isNSFW;
|
|
126
123
|
}
|
|
127
|
-
get
|
|
128
|
-
|
|
124
|
+
get enhancedImage() {
|
|
125
|
+
if (!this._enhancementProject) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const project = this._enhancementProject;
|
|
129
|
+
const job = project.jobs[0];
|
|
130
|
+
return {
|
|
131
|
+
status: project.status,
|
|
132
|
+
progress: project.progress,
|
|
133
|
+
result: (job === null || job === void 0 ? void 0 : job.resultUrl) || null,
|
|
134
|
+
error: project.error,
|
|
135
|
+
getResultUrl: () => job === null || job === void 0 ? void 0 : job.getResultUrl()
|
|
136
|
+
};
|
|
129
137
|
}
|
|
130
138
|
/**
|
|
131
139
|
* Get the result URL of the job. This method will make a request to the API to get signed URL.
|
|
@@ -145,17 +153,6 @@ class Job extends DataEntity_1.default {
|
|
|
145
153
|
return url;
|
|
146
154
|
});
|
|
147
155
|
}
|
|
148
|
-
getEnhancedImageUrl() {
|
|
149
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
-
if (!this._enhancementProject) {
|
|
151
|
-
throw new Error('Call enhance() method first');
|
|
152
|
-
}
|
|
153
|
-
if (this._enhancementProject.status !== 'completed') {
|
|
154
|
-
throw new Error('Enhancement job is not completed yet');
|
|
155
|
-
}
|
|
156
|
-
return this._enhancementProject.jobs[0].getResultUrl();
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
156
|
/**
|
|
160
157
|
* Whether the image is NSFW or not. Only makes sense if job is completed.
|
|
161
158
|
* If NSFW filter is disabled, this property will always be false.
|
|
@@ -212,6 +209,9 @@ class Job extends DataEntity_1.default {
|
|
|
212
209
|
this.emit('failed', this.data.error);
|
|
213
210
|
}
|
|
214
211
|
}
|
|
212
|
+
handleEnhancementUpdate() {
|
|
213
|
+
this.emit('updated', ['enhancedImage']);
|
|
214
|
+
}
|
|
215
215
|
getResultData() {
|
|
216
216
|
return __awaiter(this, void 0, void 0, function* () {
|
|
217
217
|
if (!this.hasResultImage) {
|
|
@@ -241,7 +241,11 @@ class Job extends DataEntity_1.default {
|
|
|
241
241
|
}
|
|
242
242
|
const imageData = yield this.getResultData();
|
|
243
243
|
const project = yield this._api.create(Object.assign(Object.assign({}, exports.enhancementDefaults), { positivePrompt: overrides.positivePrompt || this._project.params.positivePrompt, stylePrompt: overrides.stylePrompt || this._project.params.stylePrompt, seed: this.seed || this._project.params.seed, startingImage: imageData, startingImageStrength: 1 - (0, utils_1.getEnhacementStrength)(strength), sizePreset: this._project.params.sizePreset }));
|
|
244
|
+
if (this._enhancementProject) {
|
|
245
|
+
this._enhancementProject.off('updated', this.handleEnhancementUpdate);
|
|
246
|
+
}
|
|
244
247
|
this._enhancementProject = project;
|
|
248
|
+
this._enhancementProject.on('updated', this.handleEnhancementUpdate);
|
|
245
249
|
const images = yield project.waitForCompletion();
|
|
246
250
|
return images[0];
|
|
247
251
|
});
|
package/dist/Projects/Job.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mEAA6D;AAK7D,6DAAqC;AAIrC,mCAAgD;AAEnC,QAAA,mBAAmB,GAAG;IACjC,OAAO,EAAE,MAAsB;IAC/B,OAAO,EAAE,mBAAmB;IAC5B,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,qBAAqB,EAAE,GAAG;IAC1B,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAUF,MAAM,cAAc,GAAwC;IAC1D,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,YAAY;IACtB,eAAe,EAAE,YAAY;IAC7B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,WAAW;IACzB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAgCF,MAAM,GAAI,SAAQ,oBAAgC;IAChD,MAAM,CAAC,OAAO,CAAC,UAAsB,EAAE,MAAc,EAAE,OAAmB;QACxE,OAAO,IAAI,GAAG,CACZ;YACE,EAAE,EAAE,MAAM,CAAC,KAAK,IAAI,IAAA,iBAAO,GAAE;YAC7B,SAAS,EAAE,UAAU,CAAC,EAAE;YACxB,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,cAAc;YAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YAC9B,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,MAAM,EAAE,MAAM,CAAC,mBAAmB;SACnC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAOD,YAAY,IAAa,EAAE,OAAmB;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAC;QAHN,wBAAmB,GAAmB,IAAI,CAAC;QAKjD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Projects/Job.ts
CHANGED
|
@@ -101,6 +101,7 @@ class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
101
101
|
this._project = options.project;
|
|
102
102
|
|
|
103
103
|
this.on('updated', this.handleUpdated.bind(this));
|
|
104
|
+
this.handleEnhancementUpdate = this.handleEnhancementUpdate.bind(this);
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
get id() {
|
|
@@ -169,10 +170,6 @@ class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
169
170
|
return this.data.resultUrl || this.data.previewUrl;
|
|
170
171
|
}
|
|
171
172
|
|
|
172
|
-
get enhancedImageUrl() {
|
|
173
|
-
return this._enhancementProject?.jobs[0].resultUrl || null;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
173
|
get error() {
|
|
177
174
|
return this.data.error;
|
|
178
175
|
}
|
|
@@ -181,8 +178,19 @@ class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
181
178
|
return this.status === 'completed' && !this.isNSFW;
|
|
182
179
|
}
|
|
183
180
|
|
|
184
|
-
get
|
|
185
|
-
|
|
181
|
+
get enhancedImage() {
|
|
182
|
+
if (!this._enhancementProject) {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
const project = this._enhancementProject;
|
|
186
|
+
const job = project.jobs[0];
|
|
187
|
+
return {
|
|
188
|
+
status: project.status,
|
|
189
|
+
progress: project.progress,
|
|
190
|
+
result: job?.resultUrl || null,
|
|
191
|
+
error: project.error,
|
|
192
|
+
getResultUrl: () => job?.getResultUrl()
|
|
193
|
+
};
|
|
186
194
|
}
|
|
187
195
|
|
|
188
196
|
/**
|
|
@@ -202,16 +210,6 @@ class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
202
210
|
return url;
|
|
203
211
|
}
|
|
204
212
|
|
|
205
|
-
async getEnhancedImageUrl(): Promise<string> {
|
|
206
|
-
if (!this._enhancementProject) {
|
|
207
|
-
throw new Error('Call enhance() method first');
|
|
208
|
-
}
|
|
209
|
-
if (this._enhancementProject.status !== 'completed') {
|
|
210
|
-
throw new Error('Enhancement job is not completed yet');
|
|
211
|
-
}
|
|
212
|
-
return this._enhancementProject.jobs[0].getResultUrl();
|
|
213
|
-
}
|
|
214
|
-
|
|
215
213
|
/**
|
|
216
214
|
* Whether the image is NSFW or not. Only makes sense if job is completed.
|
|
217
215
|
* If NSFW filter is disabled, this property will always be false.
|
|
@@ -269,6 +267,10 @@ class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
269
267
|
}
|
|
270
268
|
}
|
|
271
269
|
|
|
270
|
+
private handleEnhancementUpdate() {
|
|
271
|
+
this.emit('updated', ['enhancedImage']);
|
|
272
|
+
}
|
|
273
|
+
|
|
272
274
|
async getResultData() {
|
|
273
275
|
if (!this.hasResultImage) {
|
|
274
276
|
throw new Error('No result image available');
|
|
@@ -307,7 +309,11 @@ class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
307
309
|
startingImageStrength: 1 - getEnhacementStrength(strength),
|
|
308
310
|
sizePreset: this._project.params.sizePreset
|
|
309
311
|
});
|
|
312
|
+
if (this._enhancementProject) {
|
|
313
|
+
this._enhancementProject.off('updated', this.handleEnhancementUpdate);
|
|
314
|
+
}
|
|
310
315
|
this._enhancementProject = project;
|
|
316
|
+
this._enhancementProject.on('updated', this.handleEnhancementUpdate);
|
|
311
317
|
const images = await project.waitForCompletion();
|
|
312
318
|
return images[0];
|
|
313
319
|
}
|