@sogni-ai/sogni-client 0.0.8 → 0.0.9
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/dist/Account/CurrentAccount.d.ts +26 -0
- package/dist/Account/CurrentAccount.js +76 -0
- package/dist/Account/CurrentAccount.js.map +1 -0
- package/dist/Account/index.d.ts +31 -0
- package/dist/Account/index.js +172 -0
- package/dist/Account/index.js.map +1 -0
- package/dist/Account/types.d.ts +57 -0
- package/dist/Account/types.js +3 -0
- package/dist/Account/types.js.map +1 -0
- package/dist/ApiClient/ApiClient.d.ts +42 -0
- package/dist/ApiClient/ApiClient.js +79 -0
- package/dist/ApiClient/ApiClient.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/ErrorCode.d.ts +7 -0
- package/dist/ApiClient/WebSocketClient/ErrorCode.js +18 -0
- package/dist/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/events.d.ts +83 -0
- package/dist/ApiClient/WebSocketClient/events.js +3 -0
- package/dist/ApiClient/WebSocketClient/events.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/index.d.ts +28 -0
- package/dist/ApiClient/WebSocketClient/index.js +166 -0
- package/dist/ApiClient/WebSocketClient/index.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/messages.d.ts +5 -0
- package/dist/ApiClient/WebSocketClient/messages.js +3 -0
- package/dist/ApiClient/WebSocketClient/messages.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/types.d.ts +1 -0
- package/dist/ApiClient/WebSocketClient/types.js +3 -0
- package/dist/ApiClient/WebSocketClient/types.js.map +1 -0
- package/dist/ApiClient/events.d.ts +19 -0
- package/dist/ApiClient/events.js +3 -0
- package/dist/ApiClient/events.js.map +1 -0
- package/dist/ApiGroup.d.ts +16 -0
- package/dist/ApiGroup.js +16 -0
- package/dist/ApiGroup.js.map +1 -0
- package/dist/Projects/Job.d.ts +31 -0
- package/dist/Projects/Job.js +52 -0
- package/dist/Projects/Job.js.map +1 -0
- package/dist/Projects/Project.d.ts +50 -0
- package/dist/Projects/Project.js +94 -0
- package/dist/Projects/Project.js.map +1 -0
- package/dist/Projects/createJobRequestMessage.d.ts +63 -0
- package/dist/Projects/createJobRequestMessage.js +68 -0
- package/dist/Projects/createJobRequestMessage.js.map +1 -0
- package/dist/Projects/index.d.ts +41 -0
- package/dist/Projects/index.js +253 -0
- package/dist/Projects/index.js.map +1 -0
- package/dist/Projects/models.json +8906 -0
- package/dist/Projects/types/EstimationResponse.d.ts +40 -0
- package/dist/Projects/types/EstimationResponse.js +3 -0
- package/dist/Projects/types/EstimationResponse.js.map +1 -0
- package/dist/Projects/types/events.d.ts +51 -0
- package/dist/Projects/types/events.js +3 -0
- package/dist/Projects/types/events.js.map +1 -0
- package/dist/Projects/types/index.d.ts +58 -0
- package/dist/Projects/types/index.js +3 -0
- package/dist/Projects/types/index.js.map +1 -0
- package/dist/Stats/index.d.ts +6 -0
- package/dist/Stats/index.js +25 -0
- package/dist/Stats/index.js.map +1 -0
- package/dist/Stats/types.d.ts +19 -0
- package/dist/Stats/types.js +3 -0
- package/dist/Stats/types.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/DataEntity.d.ts +18 -0
- package/dist/lib/DataEntity.js +31 -0
- package/dist/lib/DataEntity.js.map +1 -0
- package/dist/lib/EIP712Helper.d.ts +13 -0
- package/dist/lib/EIP712Helper.js +39 -0
- package/dist/lib/EIP712Helper.js.map +1 -0
- package/dist/lib/RestClient.d.ts +18 -0
- package/dist/lib/RestClient.js +69 -0
- package/dist/lib/RestClient.js.map +1 -0
- package/dist/lib/TypedEventEmitter.d.ts +34 -0
- package/dist/lib/TypedEventEmitter.js +58 -0
- package/dist/lib/TypedEventEmitter.js.map +1 -0
- package/dist/lib/base64.d.ts +2 -0
- package/dist/lib/base64.js +15 -0
- package/dist/lib/base64.js.map +1 -0
- package/dist/lib/isNodejs.d.ts +2 -0
- package/dist/lib/isNodejs.js +5 -0
- package/dist/lib/isNodejs.js.map +1 -0
- package/dist/types/ErrorData.d.ts +5 -0
- package/dist/types/ErrorData.js +3 -0
- package/dist/types/ErrorData.js.map +1 -0
- package/dist/types/json.d.ts +5 -0
- package/dist/types/json.js +3 -0
- package/dist/types/json.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const RestClient_1 = __importDefault(require("../../lib/RestClient"));
|
|
16
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
17
|
+
const base64_1 = require("../../lib/base64");
|
|
18
|
+
const isNodejs_1 = __importDefault(require("../../lib/isNodejs"));
|
|
19
|
+
const js_cookie_1 = __importDefault(require("js-cookie"));
|
|
20
|
+
class WebSocketClient extends RestClient_1.default {
|
|
21
|
+
constructor(baseUrl, appId, supernetType = 'fast') {
|
|
22
|
+
super(baseUrl);
|
|
23
|
+
this.socket = null;
|
|
24
|
+
this.appId = appId;
|
|
25
|
+
this.baseUrl = baseUrl;
|
|
26
|
+
this._supernetType = supernetType;
|
|
27
|
+
}
|
|
28
|
+
set auth(auth) {
|
|
29
|
+
//In browser, set the cookie
|
|
30
|
+
if (!isNodejs_1.default) {
|
|
31
|
+
if (auth) {
|
|
32
|
+
js_cookie_1.default.set('authorization', auth.token, {
|
|
33
|
+
domain: '.sogni.ai',
|
|
34
|
+
expires: 1
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
js_cookie_1.default.remove('authorization', {
|
|
39
|
+
domain: '.sogni.ai'
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
this._auth = auth;
|
|
44
|
+
}
|
|
45
|
+
get supernetType() {
|
|
46
|
+
return this._supernetType;
|
|
47
|
+
}
|
|
48
|
+
get isConnected() {
|
|
49
|
+
return !!this.socket;
|
|
50
|
+
}
|
|
51
|
+
connect() {
|
|
52
|
+
var _a;
|
|
53
|
+
const url = new URL(this.baseUrl);
|
|
54
|
+
url.searchParams.set('appId', this.appId);
|
|
55
|
+
url.searchParams.set('clientName', 'Sogni/3.0.22042');
|
|
56
|
+
url.searchParams.set('clientType', 'artist');
|
|
57
|
+
url.searchParams.set('forceWorkerId', this._supernetType);
|
|
58
|
+
let params;
|
|
59
|
+
// In Node.js, ws package is used, so we need to set the auth header
|
|
60
|
+
if (isNodejs_1.default) {
|
|
61
|
+
params = {
|
|
62
|
+
headers: {
|
|
63
|
+
Authorization: (_a = this._auth) === null || _a === void 0 ? void 0 : _a.token
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
this.socket = new isomorphic_ws_1.default(url.toString(), params);
|
|
68
|
+
this.socket.onerror = this.handleError.bind(this);
|
|
69
|
+
this.socket.onmessage = this.handleMessage.bind(this);
|
|
70
|
+
this.socket.onopen = this.handleOpen.bind(this);
|
|
71
|
+
this.socket.onclose = this.handleClose.bind(this);
|
|
72
|
+
}
|
|
73
|
+
disconnect() {
|
|
74
|
+
if (!this.socket) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const socket = this.socket;
|
|
78
|
+
this.socket = null;
|
|
79
|
+
socket.onerror = null;
|
|
80
|
+
socket.onmessage = null;
|
|
81
|
+
socket.onopen = null;
|
|
82
|
+
socket.close();
|
|
83
|
+
}
|
|
84
|
+
switchNetwork(supernetType) {
|
|
85
|
+
this._supernetType = supernetType;
|
|
86
|
+
this.disconnect();
|
|
87
|
+
this.connect();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Ensure the WebSocket connection is open, waiting if necessary and throwing an error if it fails
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
waitForConnection() {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
if (!this.socket) {
|
|
97
|
+
throw new Error('WebSocket not connected');
|
|
98
|
+
}
|
|
99
|
+
if (this.socket.readyState === isomorphic_ws_1.default.OPEN) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
let attempts = 10;
|
|
103
|
+
while (((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === isomorphic_ws_1.default.CONNECTING) {
|
|
104
|
+
console.info('Waiting for WebSocket connection...');
|
|
105
|
+
yield new Promise((resolve) => setTimeout(resolve, 1000));
|
|
106
|
+
attempts--;
|
|
107
|
+
if (attempts === 0) {
|
|
108
|
+
this.disconnect();
|
|
109
|
+
throw new Error('WebSocket connection timeout');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//@ts-expect-error State may change between checks
|
|
113
|
+
if (((_b = this.socket) === null || _b === void 0 ? void 0 : _b.readyState) !== isomorphic_ws_1.default.OPEN) {
|
|
114
|
+
this.disconnect();
|
|
115
|
+
throw new Error('WebSocket connection failed');
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
handleOpen() {
|
|
120
|
+
this.emit('connected', { network: this._supernetType });
|
|
121
|
+
}
|
|
122
|
+
handleClose(e) {
|
|
123
|
+
if (e.target === this.socket) {
|
|
124
|
+
console.info('WebSocket disconnected, cleanup', e);
|
|
125
|
+
this.disconnect();
|
|
126
|
+
this.emit('disconnected', {
|
|
127
|
+
code: e.code,
|
|
128
|
+
reason: e.reason
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
handleError(e) {
|
|
133
|
+
console.error('WebSocket error:', e);
|
|
134
|
+
}
|
|
135
|
+
handleMessage(e) {
|
|
136
|
+
let dataPromise;
|
|
137
|
+
// In Node.js, e.data is a Buffer, while in browser it's a Blob
|
|
138
|
+
if (isNodejs_1.default) {
|
|
139
|
+
dataPromise = Promise.resolve(e.data.toString());
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const data = e.data;
|
|
143
|
+
dataPromise = data.text();
|
|
144
|
+
}
|
|
145
|
+
dataPromise
|
|
146
|
+
.then((str) => {
|
|
147
|
+
const data = JSON.parse(str);
|
|
148
|
+
let payload = null;
|
|
149
|
+
if (data.data) {
|
|
150
|
+
payload = JSON.parse((0, base64_1.base64Decode)(data.data));
|
|
151
|
+
}
|
|
152
|
+
this.emit(data.type, payload);
|
|
153
|
+
})
|
|
154
|
+
.catch((err) => {
|
|
155
|
+
console.error('Failed to parse WebSocket message:', err);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
send(messageType, data) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
yield this.waitForConnection();
|
|
161
|
+
this.socket.send(JSON.stringify({ type: messageType, data: (0, base64_1.base64Encode)(JSON.stringify(data)) }));
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.default = WebSocketClient;
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/messages.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SupernetType = 'relaxed' | 'fast';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ErrorCode from './WebSocketClient/ErrorCode';
|
|
2
|
+
import { SupernetType } from './WebSocketClient/types';
|
|
3
|
+
export type ApiClientEvents = {
|
|
4
|
+
/**
|
|
5
|
+
* @event ApiClient#connected - The client has been connected to the server.
|
|
6
|
+
*/
|
|
7
|
+
connected: {
|
|
8
|
+
network: SupernetType;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @event ApiClient#disconnected - The client has been disconnected by the server,
|
|
12
|
+
* either authentication is lost or the server is unreachable.This event is not triggered
|
|
13
|
+
* when the client manually disconnects.
|
|
14
|
+
*/
|
|
15
|
+
disconnected: {
|
|
16
|
+
code: ErrorCode;
|
|
17
|
+
reason: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/ApiClient/events.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractProvider } from 'ethers';
|
|
2
|
+
import ApiClient from './ApiClient/ApiClient';
|
|
3
|
+
import EIP712Helper from './lib/EIP712Helper';
|
|
4
|
+
import TypedEventEmitter, { EventMap } from './lib/TypedEventEmitter';
|
|
5
|
+
export interface ApiConfig {
|
|
6
|
+
client: ApiClient;
|
|
7
|
+
provider: AbstractProvider;
|
|
8
|
+
eip712: EIP712Helper;
|
|
9
|
+
}
|
|
10
|
+
declare abstract class ApiGroup<E extends EventMap = {}> extends TypedEventEmitter<E> {
|
|
11
|
+
protected client: ApiClient;
|
|
12
|
+
protected provider: AbstractProvider;
|
|
13
|
+
protected eip712: EIP712Helper;
|
|
14
|
+
constructor(config: ApiConfig);
|
|
15
|
+
}
|
|
16
|
+
export default ApiGroup;
|
package/dist/ApiGroup.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const TypedEventEmitter_1 = __importDefault(require("./lib/TypedEventEmitter"));
|
|
7
|
+
class ApiGroup extends TypedEventEmitter_1.default {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
super();
|
|
10
|
+
this.client = config.client;
|
|
11
|
+
this.provider = config.provider;
|
|
12
|
+
this.eip712 = config.eip712;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = ApiGroup;
|
|
16
|
+
//# sourceMappingURL=ApiGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiGroup.js","sourceRoot":"","sources":["../src/ApiGroup.ts"],"names":[],"mappings":";;;;;AAGA,gFAAsE;AAQtE,MAAe,QAAkC,SAAQ,2BAAoB;IAK3E,YAAY,MAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF;AAED,kBAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import DataEntity, { EntityEvents } from '../lib/DataEntity';
|
|
2
|
+
import ErrorData from '../types/ErrorData';
|
|
3
|
+
export type JobStatus = 'pending' | 'initiating' | 'processing' | 'completed' | 'failed';
|
|
4
|
+
export interface JobData {
|
|
5
|
+
id: string;
|
|
6
|
+
status: JobStatus;
|
|
7
|
+
step: number;
|
|
8
|
+
stepCount: number;
|
|
9
|
+
previewUrl?: string;
|
|
10
|
+
resultUrl?: string;
|
|
11
|
+
error?: ErrorData;
|
|
12
|
+
}
|
|
13
|
+
interface JobEvents extends EntityEvents {
|
|
14
|
+
progress: number;
|
|
15
|
+
completed: string;
|
|
16
|
+
failed: JobData['error'];
|
|
17
|
+
}
|
|
18
|
+
declare class Job extends DataEntity<JobData, JobEvents> {
|
|
19
|
+
constructor(data: JobData);
|
|
20
|
+
get id(): string;
|
|
21
|
+
get status(): JobStatus;
|
|
22
|
+
get progress(): number;
|
|
23
|
+
get step(): number;
|
|
24
|
+
get stepCount(): number;
|
|
25
|
+
get previewUrl(): string | undefined;
|
|
26
|
+
get resultUrl(): string | undefined;
|
|
27
|
+
get imageUrl(): string | undefined;
|
|
28
|
+
get error(): ErrorData | undefined;
|
|
29
|
+
private handleUpdated;
|
|
30
|
+
}
|
|
31
|
+
export default Job;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const DataEntity_1 = __importDefault(require("../lib/DataEntity"));
|
|
7
|
+
class Job extends DataEntity_1.default {
|
|
8
|
+
constructor(data) {
|
|
9
|
+
super(data);
|
|
10
|
+
this.on('updated', this.handleUpdated.bind(this));
|
|
11
|
+
}
|
|
12
|
+
get id() {
|
|
13
|
+
return this.data.id;
|
|
14
|
+
}
|
|
15
|
+
get status() {
|
|
16
|
+
return this.data.status;
|
|
17
|
+
}
|
|
18
|
+
get progress() {
|
|
19
|
+
return this.data.step / this.data.stepCount;
|
|
20
|
+
}
|
|
21
|
+
get step() {
|
|
22
|
+
return this.data.step;
|
|
23
|
+
}
|
|
24
|
+
get stepCount() {
|
|
25
|
+
return this.data.stepCount;
|
|
26
|
+
}
|
|
27
|
+
get previewUrl() {
|
|
28
|
+
return this.data.previewUrl;
|
|
29
|
+
}
|
|
30
|
+
get resultUrl() {
|
|
31
|
+
return this.data.resultUrl;
|
|
32
|
+
}
|
|
33
|
+
get imageUrl() {
|
|
34
|
+
return this.data.resultUrl || this.data.previewUrl;
|
|
35
|
+
}
|
|
36
|
+
get error() {
|
|
37
|
+
return this.data.error;
|
|
38
|
+
}
|
|
39
|
+
handleUpdated(keys) {
|
|
40
|
+
if (keys.includes('step') || keys.includes('stepCount')) {
|
|
41
|
+
this.emit('progress', this.progress);
|
|
42
|
+
}
|
|
43
|
+
if (keys.includes('status') && this.status === 'completed') {
|
|
44
|
+
this.emit('completed', this.resultUrl);
|
|
45
|
+
}
|
|
46
|
+
if (keys.includes('status') && this.status === 'failed') {
|
|
47
|
+
this.emit('failed', this.data.error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.default = Job;
|
|
52
|
+
//# sourceMappingURL=Job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":";;;;;AAAA,mEAA6D;AAqB7D,MAAM,GAAI,SAAQ,oBAA8B;IAC9C,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,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,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,aAAa,CAAC,IAAc;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAU,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAED,kBAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import Job, { JobData } from './Job';
|
|
2
|
+
import DataEntity, { EntityEvents } from '../lib/DataEntity';
|
|
3
|
+
import { ProjectParams } from './types';
|
|
4
|
+
import ErrorData from '../types/ErrorData';
|
|
5
|
+
export type ProjectStatus = 'pending' | 'queued' | 'processing' | 'completed' | 'failed';
|
|
6
|
+
interface ProjectData {
|
|
7
|
+
id: string;
|
|
8
|
+
startedAt: Date;
|
|
9
|
+
params: ProjectParams;
|
|
10
|
+
queuePosition: number;
|
|
11
|
+
status: ProjectStatus;
|
|
12
|
+
error?: ErrorData;
|
|
13
|
+
}
|
|
14
|
+
interface SerializedProject extends ProjectData {
|
|
15
|
+
jobs: JobData[];
|
|
16
|
+
}
|
|
17
|
+
interface ProjectEvents extends EntityEvents {
|
|
18
|
+
progress: number;
|
|
19
|
+
completed: string[];
|
|
20
|
+
failed: ProjectData['error'];
|
|
21
|
+
}
|
|
22
|
+
declare class Project extends DataEntity<ProjectData, ProjectEvents> {
|
|
23
|
+
private _jobs;
|
|
24
|
+
private _lastEmitedProgress;
|
|
25
|
+
constructor(data: ProjectParams);
|
|
26
|
+
get id(): string;
|
|
27
|
+
get params(): ProjectParams;
|
|
28
|
+
get status(): ProjectStatus;
|
|
29
|
+
get progress(): number;
|
|
30
|
+
get queuePosition(): number;
|
|
31
|
+
get jobs(): Job[];
|
|
32
|
+
get resultUrls(): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Find a job by id
|
|
35
|
+
* @param id
|
|
36
|
+
*/
|
|
37
|
+
job(id: string): Job | undefined;
|
|
38
|
+
private handleUpdated;
|
|
39
|
+
/**
|
|
40
|
+
* This is internal method to add a job to the project. Do not call this directly.
|
|
41
|
+
* @internal
|
|
42
|
+
* @param data
|
|
43
|
+
*/
|
|
44
|
+
_addJob(data: JobData): Job;
|
|
45
|
+
/**
|
|
46
|
+
* Get full project data snapshot. Can be used to serialize the project and store it in a database.
|
|
47
|
+
*/
|
|
48
|
+
toJSON(): SerializedProject;
|
|
49
|
+
}
|
|
50
|
+
export default Project;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Job_1 = __importDefault(require("./Job"));
|
|
7
|
+
const DataEntity_1 = __importDefault(require("../lib/DataEntity"));
|
|
8
|
+
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
9
|
+
const uuid_1 = require("@lukeed/uuid");
|
|
10
|
+
class Project extends DataEntity_1.default {
|
|
11
|
+
constructor(data) {
|
|
12
|
+
super({
|
|
13
|
+
id: (0, uuid_1.v4)(),
|
|
14
|
+
startedAt: new Date(),
|
|
15
|
+
params: data,
|
|
16
|
+
queuePosition: -1,
|
|
17
|
+
status: 'pending'
|
|
18
|
+
});
|
|
19
|
+
this._jobs = [];
|
|
20
|
+
this._lastEmitedProgress = -1;
|
|
21
|
+
this.on('updated', this.handleUpdated.bind(this));
|
|
22
|
+
}
|
|
23
|
+
get id() {
|
|
24
|
+
return this.data.id;
|
|
25
|
+
}
|
|
26
|
+
get params() {
|
|
27
|
+
return this.data.params;
|
|
28
|
+
}
|
|
29
|
+
get status() {
|
|
30
|
+
return this.data.status;
|
|
31
|
+
}
|
|
32
|
+
get progress() {
|
|
33
|
+
const { steps, stepCount } = this._jobs.reduce((acc, job) => {
|
|
34
|
+
acc.steps += job.step;
|
|
35
|
+
acc.stepCount += job.stepCount;
|
|
36
|
+
return acc;
|
|
37
|
+
}, { steps: 0, stepCount: 0 });
|
|
38
|
+
return Math.round((steps / stepCount) * 100);
|
|
39
|
+
}
|
|
40
|
+
get queuePosition() {
|
|
41
|
+
return this.data.queuePosition;
|
|
42
|
+
}
|
|
43
|
+
get jobs() {
|
|
44
|
+
return this._jobs.slice(0);
|
|
45
|
+
}
|
|
46
|
+
get resultUrls() {
|
|
47
|
+
return this.jobs.map((job) => job.resultUrl).filter((r) => !!r);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Find a job by id
|
|
51
|
+
* @param id
|
|
52
|
+
*/
|
|
53
|
+
job(id) {
|
|
54
|
+
return this._jobs.find((job) => job.id === id);
|
|
55
|
+
}
|
|
56
|
+
handleUpdated(keys) {
|
|
57
|
+
const progress = this.progress;
|
|
58
|
+
if (progress !== this._lastEmitedProgress) {
|
|
59
|
+
this.emit('progress', progress);
|
|
60
|
+
this._lastEmitedProgress = progress;
|
|
61
|
+
}
|
|
62
|
+
if (keys.includes('status') || keys.includes('jobs')) {
|
|
63
|
+
const allJobsDone = this.jobs.every((job) => job.status === 'completed' || job.status === 'failed');
|
|
64
|
+
if (this.data.status === 'completed' && allJobsDone) {
|
|
65
|
+
return this.emit('completed', this.resultUrls);
|
|
66
|
+
}
|
|
67
|
+
if (this.data.status === 'failed') {
|
|
68
|
+
this.emit('failed', this.data.error);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* This is internal method to add a job to the project. Do not call this directly.
|
|
74
|
+
* @internal
|
|
75
|
+
* @param data
|
|
76
|
+
*/
|
|
77
|
+
_addJob(data) {
|
|
78
|
+
const job = new Job_1.default(data);
|
|
79
|
+
this._jobs.push(job);
|
|
80
|
+
job.on('updated', () => {
|
|
81
|
+
this.emit('updated', ['jobs']);
|
|
82
|
+
});
|
|
83
|
+
return job;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get full project data snapshot. Can be used to serialize the project and store it in a database.
|
|
87
|
+
*/
|
|
88
|
+
toJSON() {
|
|
89
|
+
const data = (0, cloneDeep_1.default)(this.data);
|
|
90
|
+
return Object.assign(Object.assign({}, data), { jobs: this._jobs.map((job) => job.toJSON()) });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.default = Project;
|
|
94
|
+
//# sourceMappingURL=Project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/Projects/Project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ProjectParams } from './types';
|
|
2
|
+
declare function createJobRequestMessage(id: string, params: ProjectParams): {
|
|
3
|
+
selectedUpscalingModel: string;
|
|
4
|
+
cnVideoFramesSketch: never[];
|
|
5
|
+
cnVideoFramesSegmentedSubject: never[];
|
|
6
|
+
cnVideoFramesFace: never[];
|
|
7
|
+
doCanvasBlending: boolean;
|
|
8
|
+
animationIsOn: boolean;
|
|
9
|
+
cnVideoFramesBoth: never[];
|
|
10
|
+
cnVideoFramesDepth: never[];
|
|
11
|
+
keyFrames: {
|
|
12
|
+
stepsIsEnabled: boolean;
|
|
13
|
+
siRotation: number;
|
|
14
|
+
siDragOffsetIsEnabled: boolean;
|
|
15
|
+
strength: number;
|
|
16
|
+
siZoomScaleIsEnabled: boolean;
|
|
17
|
+
isEnabled: boolean;
|
|
18
|
+
processing: string;
|
|
19
|
+
useLastImageAsGuideImageInAnimation: boolean;
|
|
20
|
+
guidanceScaleIsEnabled: boolean;
|
|
21
|
+
siImageBackgroundColor: string;
|
|
22
|
+
cnDragOffset: number[];
|
|
23
|
+
scheduler: string;
|
|
24
|
+
timeStepSpacing: string;
|
|
25
|
+
steps: number;
|
|
26
|
+
cnRotation: number;
|
|
27
|
+
guidanceScale: number;
|
|
28
|
+
siZoomScale: number;
|
|
29
|
+
modelID: string;
|
|
30
|
+
cnRotationIsEnabled: boolean;
|
|
31
|
+
negativePrompt: string;
|
|
32
|
+
startingImageZoomPanIsOn: boolean;
|
|
33
|
+
seed: string;
|
|
34
|
+
siRotationIsEnabled: boolean;
|
|
35
|
+
cnImageBackgroundColor: string;
|
|
36
|
+
strengthIsEnabled: boolean;
|
|
37
|
+
siDragOffset: number[];
|
|
38
|
+
useLastImageAsCNImageInAnimation: boolean;
|
|
39
|
+
positivePrompt: string;
|
|
40
|
+
controlNetZoomPanIsOn: boolean;
|
|
41
|
+
cnZoomScaleIsEnabled: boolean;
|
|
42
|
+
currentControlNets: null;
|
|
43
|
+
stylePrompt: string;
|
|
44
|
+
cnDragOffsetIsEnabled: boolean;
|
|
45
|
+
frameIndex: number;
|
|
46
|
+
startingImage: null;
|
|
47
|
+
cnZoomScale: number;
|
|
48
|
+
}[];
|
|
49
|
+
previews: number;
|
|
50
|
+
frameRate: number;
|
|
51
|
+
generatedVideoSeconds: number;
|
|
52
|
+
canvasIsOn: boolean;
|
|
53
|
+
cnVideoFrames: never[];
|
|
54
|
+
disableSafety: boolean;
|
|
55
|
+
cnVideoFramesSegmentedBackground: never[];
|
|
56
|
+
cnVideoFramesSegmented: never[];
|
|
57
|
+
numberOfImages: number;
|
|
58
|
+
cnVideoFramesPose: never[];
|
|
59
|
+
jobID: string;
|
|
60
|
+
siVideoFrames: never[];
|
|
61
|
+
};
|
|
62
|
+
export type JobRequestRaw = ReturnType<typeof createJobRequestMessage>;
|
|
63
|
+
export default createJobRequestMessage;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function createJobRequestMessage(id, params) {
|
|
4
|
+
return {
|
|
5
|
+
selectedUpscalingModel: 'OFF',
|
|
6
|
+
cnVideoFramesSketch: [],
|
|
7
|
+
cnVideoFramesSegmentedSubject: [],
|
|
8
|
+
cnVideoFramesFace: [],
|
|
9
|
+
doCanvasBlending: false,
|
|
10
|
+
animationIsOn: false,
|
|
11
|
+
cnVideoFramesBoth: [],
|
|
12
|
+
cnVideoFramesDepth: [],
|
|
13
|
+
keyFrames: [
|
|
14
|
+
{
|
|
15
|
+
stepsIsEnabled: true,
|
|
16
|
+
siRotation: 0,
|
|
17
|
+
siDragOffsetIsEnabled: true,
|
|
18
|
+
strength: 0.5,
|
|
19
|
+
siZoomScaleIsEnabled: true,
|
|
20
|
+
isEnabled: true,
|
|
21
|
+
processing: 'CPU, GPU',
|
|
22
|
+
useLastImageAsGuideImageInAnimation: true,
|
|
23
|
+
guidanceScaleIsEnabled: true,
|
|
24
|
+
siImageBackgroundColor: 'black',
|
|
25
|
+
cnDragOffset: [0, 0],
|
|
26
|
+
scheduler: 'DPM Solver Multistep (DPM-Solver++)',
|
|
27
|
+
timeStepSpacing: 'Linear',
|
|
28
|
+
steps: params.steps,
|
|
29
|
+
cnRotation: 0,
|
|
30
|
+
guidanceScale: params.guidance,
|
|
31
|
+
siZoomScale: 1,
|
|
32
|
+
modelID: params.modelId,
|
|
33
|
+
cnRotationIsEnabled: true,
|
|
34
|
+
negativePrompt: params.negativePrompt,
|
|
35
|
+
startingImageZoomPanIsOn: false,
|
|
36
|
+
seed: params.seed,
|
|
37
|
+
siRotationIsEnabled: true,
|
|
38
|
+
cnImageBackgroundColor: 'clear',
|
|
39
|
+
strengthIsEnabled: true,
|
|
40
|
+
siDragOffset: [0, 0],
|
|
41
|
+
useLastImageAsCNImageInAnimation: false,
|
|
42
|
+
positivePrompt: params.positivePrompt,
|
|
43
|
+
controlNetZoomPanIsOn: false,
|
|
44
|
+
cnZoomScaleIsEnabled: true,
|
|
45
|
+
currentControlNets: null,
|
|
46
|
+
stylePrompt: params.stylePrompt,
|
|
47
|
+
cnDragOffsetIsEnabled: true,
|
|
48
|
+
frameIndex: 0,
|
|
49
|
+
startingImage: null,
|
|
50
|
+
cnZoomScale: 1
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
previews: 5,
|
|
54
|
+
frameRate: 24,
|
|
55
|
+
generatedVideoSeconds: 10,
|
|
56
|
+
canvasIsOn: false,
|
|
57
|
+
cnVideoFrames: [],
|
|
58
|
+
disableSafety: false,
|
|
59
|
+
cnVideoFramesSegmentedBackground: [],
|
|
60
|
+
cnVideoFramesSegmented: [],
|
|
61
|
+
numberOfImages: params.numberOfImages,
|
|
62
|
+
cnVideoFramesPose: [],
|
|
63
|
+
jobID: id,
|
|
64
|
+
siVideoFrames: []
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
exports.default = createJobRequestMessage;
|
|
68
|
+
//# sourceMappingURL=createJobRequestMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":";;AAEA,SAAS,uBAAuB,CAAC,EAAU,EAAE,MAAqB;IAChE,OAAO;QACL,sBAAsB,EAAE,KAAK;QAC7B,mBAAmB,EAAE,EAAE;QACvB,6BAA6B,EAAE,EAAE;QACjC,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,EAAE;QACtB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,CAAC;gBACb,qBAAqB,EAAE,IAAI;gBAC3B,QAAQ,EAAE,GAAG;gBACb,oBAAoB,EAAE,IAAI;gBAC1B,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,UAAU;gBACtB,mCAAmC,EAAE,IAAI;gBACzC,sBAAsB,EAAE,IAAI;gBAC5B,sBAAsB,EAAE,OAAO;gBAC/B,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,SAAS,EAAE,qCAAqC;gBAChD,eAAe,EAAE,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,MAAM,CAAC,QAAQ;gBAC9B,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,mBAAmB,EAAE,IAAI;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,KAAK;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,mBAAmB,EAAE,IAAI;gBACzB,sBAAsB,EAAE,OAAO;gBAC/B,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,gCAAgC,EAAE,KAAK;gBACvC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,qBAAqB,EAAE,KAAK;gBAC5B,oBAAoB,EAAE,IAAI;gBAC1B,kBAAkB,EAAE,IAAI;gBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,qBAAqB,EAAE,IAAI;gBAC3B,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,CAAC;aACf;SACF;QACD,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,EAAE;QACb,qBAAqB,EAAE,EAAE;QACzB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,KAAK;QACpB,gCAAgC,EAAE,EAAE;QACpC,sBAAsB,EAAE,EAAE;QAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAID,kBAAe,uBAAuB,CAAC"}
|