apexify.js 2.1.0 → 2.2.2
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/README.md +90 -74
- package/index.js +8 -1
- package/lib/ai/apexAI.js +169 -113
- package/lib/ai/functions/draw.js +287 -107
- package/lib/ai/functions/generateVoiceResponse.js +2 -2
- package/lib/ai/models.js +406 -11
- package/lib/recoded-ai/ApexAI.js +37 -0
- package/lib/recoded-ai/modals.js +0 -0
- package/lib/recoded-ai/utils.js +0 -0
- package/package.json +6 -5
- package/declare.d.ts +0 -117
package/lib/ai/functions/draw.js
CHANGED
|
@@ -35,13 +35,23 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
+
if (ar || !(i in from)) {
|
|
41
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
+
ar[i] = from[i];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
+
};
|
|
38
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
48
|
exports.drawImage = void 0;
|
|
40
49
|
var google_translate_1 = require("@iamtraction/google-translate");
|
|
41
|
-
var
|
|
50
|
+
var sharp = require("sharp");
|
|
42
51
|
var discord_js_1 = require("discord.js");
|
|
43
52
|
var axios_1 = require("axios");
|
|
44
|
-
var
|
|
53
|
+
var api = require("api");
|
|
54
|
+
var sdk = api("@prodia/v1.3.0#be019b2kls0gqss3");
|
|
45
55
|
sdk.auth("43435e1c-cab1-493f-a224-f51e4b97ce8d");
|
|
46
56
|
var validHercaiModals = [
|
|
47
57
|
"v1",
|
|
@@ -114,12 +124,12 @@ var validProdiaModals = [
|
|
|
114
124
|
"timeless-1.0.ckpt [7c4971d4]",
|
|
115
125
|
"toonyou_beta6.safetensors [980f6b15]",
|
|
116
126
|
];
|
|
117
|
-
function drawImage(_0x2f79ae, numOfImages, _0x28baff, _0x5cea2c, _0x59b128, _0x182d15) {
|
|
127
|
+
function drawImage(_0x2f79ae, numOfImages, _0x28baff, _0x5cea2c, _0x59b128, _0x182d15, nsfw) {
|
|
118
128
|
return __awaiter(this, void 0, void 0, function () {
|
|
119
129
|
function retry(fn, retriesLeft) {
|
|
120
130
|
if (retriesLeft === void 0) { retriesLeft = maxRetryAttempts; }
|
|
121
131
|
return __awaiter(this, void 0, void 0, function () {
|
|
122
|
-
var
|
|
132
|
+
var error_1;
|
|
123
133
|
return __generator(this, function (_a) {
|
|
124
134
|
switch (_a.label) {
|
|
125
135
|
case 0:
|
|
@@ -127,11 +137,11 @@ function drawImage(_0x2f79ae, numOfImages, _0x28baff, _0x5cea2c, _0x59b128, _0x1
|
|
|
127
137
|
return [4 /*yield*/, fn()];
|
|
128
138
|
case 1: return [2 /*return*/, _a.sent()];
|
|
129
139
|
case 2:
|
|
130
|
-
|
|
140
|
+
error_1 = _a.sent();
|
|
131
141
|
if (retriesLeft === 0) {
|
|
132
|
-
throw
|
|
142
|
+
throw error_1;
|
|
133
143
|
}
|
|
134
|
-
console.error("Retry failed, ".concat(retriesLeft, " attempts left. Error: ").concat(
|
|
144
|
+
console.error("Retry failed, ".concat(retriesLeft, " attempts left. Error: ").concat(error_1.message));
|
|
135
145
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, retryInterval); })];
|
|
136
146
|
case 3:
|
|
137
147
|
_a.sent();
|
|
@@ -141,121 +151,227 @@ function drawImage(_0x2f79ae, numOfImages, _0x28baff, _0x5cea2c, _0x59b128, _0x1
|
|
|
141
151
|
});
|
|
142
152
|
});
|
|
143
153
|
}
|
|
144
|
-
var maxRetryAttempts, retryInterval, translatedText_1, _0x168f75, buttonsRow1, imageUrls,
|
|
145
|
-
|
|
146
|
-
|
|
154
|
+
var maxRetryAttempts, retryInterval, translatedText_1, _0x168f75, buttonsRow1, imageUrls, _loop_1, _0x4d7fb6, state_1, selectMenu_1, options, redrawButton, row1, row2, _0x56e917_1;
|
|
155
|
+
var _a;
|
|
156
|
+
return __generator(this, function (_b) {
|
|
157
|
+
switch (_b.label) {
|
|
147
158
|
case 0:
|
|
148
159
|
maxRetryAttempts = 3;
|
|
149
160
|
retryInterval = 5000;
|
|
150
|
-
|
|
161
|
+
_b.label = 1;
|
|
151
162
|
case 1:
|
|
152
|
-
|
|
163
|
+
_b.trys.push([1, 8, , 9]);
|
|
153
164
|
if (numOfImages > 4 || numOfImages <= 0) {
|
|
154
165
|
throw new Error("Number of images can't be greater than 4 or smaller than 0.");
|
|
155
166
|
}
|
|
156
167
|
return [4 /*yield*/, retry(function () {
|
|
157
|
-
return (0, google_translate_1)(_0x28baff, {
|
|
168
|
+
return (0, google_translate_1.default)(_0x28baff, {
|
|
158
169
|
from: "auto",
|
|
159
170
|
to: "en",
|
|
160
171
|
});
|
|
161
172
|
})];
|
|
162
173
|
case 2:
|
|
163
|
-
translatedText_1 =
|
|
174
|
+
translatedText_1 = _b.sent();
|
|
164
175
|
_0x168f75 = [];
|
|
165
176
|
buttonsRow1 = [];
|
|
166
177
|
imageUrls = [];
|
|
178
|
+
_loop_1 = function (_0x4d7fb6) {
|
|
179
|
+
var generateResponse, generatedJobId, error_2, _0x279cfe, _0x2b4402, _0x46cafe, attachment, urlButton, imageUrl, textToCheck_1, nsfwWords, _0x29a652, urlButton;
|
|
180
|
+
return __generator(this, function (_c) {
|
|
181
|
+
switch (_c.label) {
|
|
182
|
+
case 0:
|
|
183
|
+
_c.trys.push([0, 7, , 12]);
|
|
184
|
+
if (!validHercaiModals.includes(_0x182d15)) return [3 /*break*/, 2];
|
|
185
|
+
return [4 /*yield*/, retry(function () {
|
|
186
|
+
return _0x5cea2c.drawImage({
|
|
187
|
+
model: _0x182d15,
|
|
188
|
+
prompt: translatedText_1.text,
|
|
189
|
+
});
|
|
190
|
+
})];
|
|
191
|
+
case 1:
|
|
192
|
+
_0x59b128 = _c.sent();
|
|
193
|
+
return [3 /*break*/, 6];
|
|
194
|
+
case 2:
|
|
195
|
+
if (!validProdiaModals.includes(_0x182d15)) return [3 /*break*/, 5];
|
|
196
|
+
return [4 /*yield*/, sdk.generate({
|
|
197
|
+
model: _0x182d15,
|
|
198
|
+
prompt: translatedText_1.text,
|
|
199
|
+
})];
|
|
200
|
+
case 3:
|
|
201
|
+
generateResponse = _c.sent();
|
|
202
|
+
generatedJobId = generateResponse.data.job;
|
|
203
|
+
return [4 /*yield*/, checkJobStatus(generatedJobId)];
|
|
204
|
+
case 4:
|
|
205
|
+
_0x59b128 = _c.sent();
|
|
206
|
+
return [3 /*break*/, 6];
|
|
207
|
+
case 5: throw new Error("Invalid modal name.");
|
|
208
|
+
case 6: return [3 /*break*/, 12];
|
|
209
|
+
case 7:
|
|
210
|
+
error_2 = _c.sent();
|
|
211
|
+
if (!(error_2.response && error_2.response.status === 429)) return [3 /*break*/, 8];
|
|
212
|
+
console.error("Too many requests. Please try again later.");
|
|
213
|
+
return [2 /*return*/, { value: _0x2f79ae.reply("Please wait i am in a cool down for a minute") }];
|
|
214
|
+
case 8:
|
|
215
|
+
if (!(error_2.response && error_2.response.status === 500)) return [3 /*break*/, 9];
|
|
216
|
+
console.error("Internal server error. Please try again later.");
|
|
217
|
+
return [2 /*return*/, { value: _0x2f79ae.reply("Please wait i am in a cool down for a minute") }];
|
|
218
|
+
case 9: return [4 /*yield*/, _0x2f79ae.reply("Please wait i am in a cool down for a minute")];
|
|
219
|
+
case 10:
|
|
220
|
+
_c.sent();
|
|
221
|
+
throw new Error("Error processing message in file");
|
|
222
|
+
case 11: return [3 /*break*/, 12];
|
|
223
|
+
case 12:
|
|
224
|
+
_0x279cfe = void 0;
|
|
225
|
+
if (!(_0x182d15 === "v3")) return [3 /*break*/, 15];
|
|
226
|
+
return [4 /*yield*/, retry(function () {
|
|
227
|
+
return axios_1.default.get(_0x59b128.url, {
|
|
228
|
+
responseType: "arraybuffer",
|
|
229
|
+
});
|
|
230
|
+
})];
|
|
231
|
+
case 13:
|
|
232
|
+
_0x2b4402 = _c.sent();
|
|
233
|
+
_0x279cfe = Buffer.from(_0x2b4402.data, "binary");
|
|
234
|
+
return [4 /*yield*/, sharp(_0x279cfe)
|
|
235
|
+
.resize({
|
|
236
|
+
width: 0x320,
|
|
237
|
+
})
|
|
238
|
+
.toBuffer()];
|
|
239
|
+
case 14:
|
|
240
|
+
_0x46cafe = _c.sent();
|
|
241
|
+
attachment = {
|
|
242
|
+
file: _0x46cafe,
|
|
243
|
+
name: "image_".concat(_0x4d7fb6 + 1, ".png"),
|
|
244
|
+
};
|
|
245
|
+
_0x168f75.push(attachment);
|
|
246
|
+
urlButton = new discord_js_1.ButtonBuilder()
|
|
247
|
+
.setStyle(discord_js_1.ButtonStyle.Link)
|
|
248
|
+
.setLabel("Image ".concat(_0x4d7fb6 + 1))
|
|
249
|
+
.setURL(_0x59b128.url);
|
|
250
|
+
buttonsRow1.push(urlButton);
|
|
251
|
+
imageUrls.push(_0x59b128.url);
|
|
252
|
+
return [3 /*break*/, 18];
|
|
253
|
+
case 15:
|
|
254
|
+
imageUrl = _0x59b128.url || _0x59b128;
|
|
255
|
+
if (!nsfw) return [3 /*break*/, 17];
|
|
256
|
+
return [4 /*yield*/, attemptImageCaptioning(imageUrl)];
|
|
257
|
+
case 16:
|
|
258
|
+
textToCheck_1 = _c.sent();
|
|
259
|
+
nsfwWords = [
|
|
260
|
+
"anal",
|
|
261
|
+
"arousal",
|
|
262
|
+
"balls",
|
|
263
|
+
"blowjob",
|
|
264
|
+
"busty",
|
|
265
|
+
"butt",
|
|
266
|
+
"cameltoe",
|
|
267
|
+
"climax",
|
|
268
|
+
"clitoris",
|
|
269
|
+
"cock",
|
|
270
|
+
"crotch",
|
|
271
|
+
"cum",
|
|
272
|
+
"cumshot",
|
|
273
|
+
"cunnilingus",
|
|
274
|
+
"dirty",
|
|
275
|
+
"dirtytalk",
|
|
276
|
+
"dildo",
|
|
277
|
+
"erect",
|
|
278
|
+
"erogenous",
|
|
279
|
+
"escort",
|
|
280
|
+
"explicit",
|
|
281
|
+
"facial",
|
|
282
|
+
"fetish",
|
|
283
|
+
"flirt",
|
|
284
|
+
"foreplay",
|
|
285
|
+
"genitals",
|
|
286
|
+
"groin",
|
|
287
|
+
"hardcore",
|
|
288
|
+
"hardon",
|
|
289
|
+
"horniness",
|
|
290
|
+
"horny",
|
|
291
|
+
"kamasutra",
|
|
292
|
+
"kinky",
|
|
293
|
+
"lewd",
|
|
294
|
+
"lingerie",
|
|
295
|
+
"lust",
|
|
296
|
+
"lustful",
|
|
297
|
+
"masturbate",
|
|
298
|
+
"mature",
|
|
299
|
+
"milf",
|
|
300
|
+
"naughty",
|
|
301
|
+
"naked",
|
|
302
|
+
"nipples",
|
|
303
|
+
"nude",
|
|
304
|
+
"obscene",
|
|
305
|
+
"oral",
|
|
306
|
+
"orgasm",
|
|
307
|
+
"penetration",
|
|
308
|
+
"penis",
|
|
309
|
+
"pleasure",
|
|
310
|
+
"porn",
|
|
311
|
+
"prostitute",
|
|
312
|
+
"provocative",
|
|
313
|
+
"pubic",
|
|
314
|
+
"pussy",
|
|
315
|
+
"seduce",
|
|
316
|
+
"seductive",
|
|
317
|
+
"sensual",
|
|
318
|
+
"sex",
|
|
319
|
+
"sexual",
|
|
320
|
+
"sperm",
|
|
321
|
+
"strip",
|
|
322
|
+
"striptease",
|
|
323
|
+
"swinger",
|
|
324
|
+
"testicles",
|
|
325
|
+
"thong",
|
|
326
|
+
"threesome",
|
|
327
|
+
"undies",
|
|
328
|
+
"undress",
|
|
329
|
+
"vagina",
|
|
330
|
+
"vibrator",
|
|
331
|
+
"wank",
|
|
332
|
+
"wet",
|
|
333
|
+
"hentai",
|
|
334
|
+
"bdsm",
|
|
335
|
+
"gay",
|
|
336
|
+
"lesbian",
|
|
337
|
+
"femboy",
|
|
338
|
+
"ass",
|
|
339
|
+
];
|
|
340
|
+
if (nsfwWords.some(function (word) { return textToCheck_1.includes(word); })) {
|
|
341
|
+
_0x2f79ae.reply("Warning ⚠️. The generated image contatining nsfw content. Turn off nsfw to sedn nsfw images.");
|
|
342
|
+
}
|
|
343
|
+
_c.label = 17;
|
|
344
|
+
case 17:
|
|
345
|
+
_0x29a652 = new discord_js_1.AttachmentBuilder(imageUrl, { name: "image_".concat(_0x4d7fb6 + 1, ".png") });
|
|
346
|
+
_0x168f75.push(_0x29a652);
|
|
347
|
+
urlButton = new discord_js_1.ButtonBuilder()
|
|
348
|
+
.setStyle(discord_js_1.ButtonStyle.Link)
|
|
349
|
+
.setLabel("Image ".concat(_0x4d7fb6 + 1))
|
|
350
|
+
.setURL(imageUrl);
|
|
351
|
+
buttonsRow1.push(urlButton);
|
|
352
|
+
imageUrls.push(imageUrl);
|
|
353
|
+
_c.label = 18;
|
|
354
|
+
case 18: return [4 /*yield*/, new Promise(function (_0x412825) { return setTimeout(_0x412825, 0x7d0); })];
|
|
355
|
+
case 19:
|
|
356
|
+
_c.sent();
|
|
357
|
+
return [2 /*return*/];
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
};
|
|
167
361
|
_0x4d7fb6 = 0x0;
|
|
168
|
-
|
|
362
|
+
_b.label = 3;
|
|
169
363
|
case 3:
|
|
170
|
-
if (!(_0x4d7fb6 < numOfImages)) return [3 /*break*/,
|
|
171
|
-
|
|
364
|
+
if (!(_0x4d7fb6 < numOfImages)) return [3 /*break*/, 6];
|
|
365
|
+
return [5 /*yield**/, _loop_1(_0x4d7fb6)];
|
|
172
366
|
case 4:
|
|
173
|
-
|
|
174
|
-
if (
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
model: _0x182d15,
|
|
178
|
-
prompt: translatedText_1.text,
|
|
179
|
-
});
|
|
180
|
-
})];
|
|
367
|
+
state_1 = _b.sent();
|
|
368
|
+
if (typeof state_1 === "object")
|
|
369
|
+
return [2 /*return*/, state_1.value];
|
|
370
|
+
_b.label = 5;
|
|
181
371
|
case 5:
|
|
182
|
-
_0x59b128 = _a.sent();
|
|
183
|
-
return [3 /*break*/, 10];
|
|
184
|
-
case 6:
|
|
185
|
-
if (!validProdiaModals.includes(_0x182d15)) return [3 /*break*/, 9];
|
|
186
|
-
return [4 /*yield*/, sdk.generate({
|
|
187
|
-
model: _0x182d15,
|
|
188
|
-
prompt: translatedText_1.text,
|
|
189
|
-
})];
|
|
190
|
-
case 7:
|
|
191
|
-
generateResponse = _a.sent();
|
|
192
|
-
generatedJobId = generateResponse.data.job;
|
|
193
|
-
return [4 /*yield*/, checkJobStatus(generatedJobId)];
|
|
194
|
-
case 8:
|
|
195
|
-
_0x59b128 = _a.sent();
|
|
196
|
-
return [3 /*break*/, 10];
|
|
197
|
-
case 9: throw new Error("Invalid modal name.");
|
|
198
|
-
case 10: return [3 /*break*/, 16];
|
|
199
|
-
case 11:
|
|
200
|
-
error_1 = _a.sent();
|
|
201
|
-
if (!(error_1.response && error_1.response.status === 429)) return [3 /*break*/, 12];
|
|
202
|
-
console.error("Too many requests. Please try again later.");
|
|
203
|
-
return [2 /*return*/, _0x2f79ae.reply("Please wait i am in a cool down for a minute")];
|
|
204
|
-
case 12:
|
|
205
|
-
if (!(error_1.response && error_1.response.status === 500)) return [3 /*break*/, 13];
|
|
206
|
-
console.error("Internal server error. Please try again later.");
|
|
207
|
-
return [2 /*return*/, _0x2f79ae.reply("Please wait i am in a cool down for a minute")];
|
|
208
|
-
case 13: return [4 /*yield*/, _0x2f79ae.reply("Please wait i am in a cool down for a minute")];
|
|
209
|
-
case 14:
|
|
210
|
-
_a.sent();
|
|
211
|
-
throw new Error("Error processing message in file");
|
|
212
|
-
case 15: return [3 /*break*/, 16];
|
|
213
|
-
case 16:
|
|
214
|
-
_0x279cfe = void 0;
|
|
215
|
-
if (!(_0x182d15 === "v3")) return [3 /*break*/, 19];
|
|
216
|
-
return [4 /*yield*/, retry(function () {
|
|
217
|
-
return axios_1.get(_0x59b128.url, {
|
|
218
|
-
responseType: "arraybuffer",
|
|
219
|
-
});
|
|
220
|
-
})];
|
|
221
|
-
case 17:
|
|
222
|
-
_0x2b4402 = _a.sent();
|
|
223
|
-
_0x279cfe = Buffer.from(_0x2b4402.data, "binary");
|
|
224
|
-
return [4 /*yield*/, (0, sharp_1)(_0x279cfe)
|
|
225
|
-
.resize({
|
|
226
|
-
width: 0x320,
|
|
227
|
-
})
|
|
228
|
-
.toBuffer()];
|
|
229
|
-
case 18:
|
|
230
|
-
_0x46cafe = _a.sent();
|
|
231
|
-
_0x254246 = new discord_js_1.AttachmentBuilder(_0x46cafe, "image_".concat(_0x4d7fb6 + 1, ".png"));
|
|
232
|
-
_0x168f75.push(_0x254246);
|
|
233
|
-
urlButton = new discord_js_1.ButtonBuilder()
|
|
234
|
-
.setStyle("Link")
|
|
235
|
-
.setLabel("Image ".concat(_0x4d7fb6 + 1))
|
|
236
|
-
.setURL(_0x59b128.url);
|
|
237
|
-
buttonsRow1.push(urlButton);
|
|
238
|
-
imageUrls.push(_0x59b128.url);
|
|
239
|
-
return [3 /*break*/, 20];
|
|
240
|
-
case 19:
|
|
241
|
-
imageUrl = _0x59b128.url || _0x59b128;
|
|
242
|
-
_0x29a652 = new discord_js_1.AttachmentBuilder(imageUrl, "image_".concat(_0x4d7fb6 + 1, ".png"));
|
|
243
|
-
_0x168f75.push(_0x29a652);
|
|
244
|
-
urlButton = new discord_js_1.ButtonBuilder()
|
|
245
|
-
.setStyle("Link")
|
|
246
|
-
.setLabel("Image ".concat(_0x4d7fb6 + 1))
|
|
247
|
-
.setURL(imageUrl);
|
|
248
|
-
buttonsRow1.push(urlButton);
|
|
249
|
-
imageUrls.push(imageUrl);
|
|
250
|
-
_a.label = 20;
|
|
251
|
-
case 20: return [4 /*yield*/, new Promise(function (_0x412825) { return setTimeout(_0x412825, 0x7d0); })];
|
|
252
|
-
case 21:
|
|
253
|
-
_a.sent();
|
|
254
|
-
_a.label = 22;
|
|
255
|
-
case 22:
|
|
256
372
|
_0x4d7fb6++;
|
|
257
373
|
return [3 /*break*/, 3];
|
|
258
|
-
case
|
|
374
|
+
case 6:
|
|
259
375
|
selectMenu_1 = new discord_js_1.StringSelectMenuBuilder()
|
|
260
376
|
.setCustomId("image_processing_select")
|
|
261
377
|
.setPlaceholder("Select Image Process");
|
|
@@ -279,21 +395,21 @@ function drawImage(_0x2f79ae, numOfImages, _0x28baff, _0x5cea2c, _0x59b128, _0x1
|
|
|
279
395
|
selectMenu_1.addOptions(selectOption);
|
|
280
396
|
});
|
|
281
397
|
redrawButton = new discord_js_1.ButtonBuilder()
|
|
282
|
-
.setStyle(
|
|
398
|
+
.setStyle(discord_js_1.ButtonStyle.Primary)
|
|
283
399
|
.setLabel("Redraw")
|
|
284
400
|
.setCustomId("redraw_button");
|
|
285
|
-
row1 = new discord_js_1.ActionRowBuilder().addComponents(buttonsRow1, redrawButton);
|
|
401
|
+
row1 = (_a = new discord_js_1.ActionRowBuilder()).addComponents.apply(_a, __spreadArray(__spreadArray([], buttonsRow1, false), [redrawButton], false));
|
|
286
402
|
row2 = new discord_js_1.ActionRowBuilder().addComponents(selectMenu_1);
|
|
287
403
|
return [4 /*yield*/, _0x2f79ae.reply({
|
|
288
404
|
files: _0x168f75,
|
|
289
405
|
components: [row1, row2],
|
|
290
406
|
allowedMentions: { repliedUser: false },
|
|
291
407
|
})];
|
|
292
|
-
case
|
|
293
|
-
|
|
408
|
+
case 7:
|
|
409
|
+
_b.sent();
|
|
294
410
|
return [2 /*return*/, imageUrls];
|
|
295
|
-
case
|
|
296
|
-
_0x56e917_1 =
|
|
411
|
+
case 8:
|
|
412
|
+
_0x56e917_1 = _b.sent();
|
|
297
413
|
console.error("Error in drawImage:", _0x56e917_1.message);
|
|
298
414
|
if (_0x56e917_1.response) {
|
|
299
415
|
console.error("Status code:", _0x56e917_1.response.status);
|
|
@@ -304,7 +420,7 @@ function drawImage(_0x2f79ae, numOfImages, _0x28baff, _0x5cea2c, _0x59b128, _0x1
|
|
|
304
420
|
allowedMentions: { repliedUser: false },
|
|
305
421
|
});
|
|
306
422
|
return [2 /*return*/, []];
|
|
307
|
-
case
|
|
423
|
+
case 9: return [2 /*return*/];
|
|
308
424
|
}
|
|
309
425
|
});
|
|
310
426
|
});
|
|
@@ -344,4 +460,68 @@ function checkJobStatus(jobId) {
|
|
|
344
460
|
}
|
|
345
461
|
});
|
|
346
462
|
});
|
|
463
|
+
}
|
|
464
|
+
function attemptImageCaptioning(imageUrl) {
|
|
465
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
466
|
+
var retryCount, maxRetries, fetchData, error_4, error_5;
|
|
467
|
+
var _this = this;
|
|
468
|
+
return __generator(this, function (_a) {
|
|
469
|
+
switch (_a.label) {
|
|
470
|
+
case 0:
|
|
471
|
+
_a.trys.push([0, 7, , 8]);
|
|
472
|
+
retryCount = 0;
|
|
473
|
+
maxRetries = 3;
|
|
474
|
+
fetchData = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
475
|
+
var response, error_6;
|
|
476
|
+
return __generator(this, function (_a) {
|
|
477
|
+
switch (_a.label) {
|
|
478
|
+
case 0:
|
|
479
|
+
_a.trys.push([0, 2, , 3]);
|
|
480
|
+
return [4 /*yield*/, axios_1.default.post("https://api-inference.huggingface.co/models/Salesforce/blip-image-captioning-base", { image: imageUrl }, {
|
|
481
|
+
headers: {
|
|
482
|
+
"Content-Type": "application/json",
|
|
483
|
+
Authorization: "Bearer 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",
|
|
484
|
+
},
|
|
485
|
+
})];
|
|
486
|
+
case 1:
|
|
487
|
+
response = _a.sent();
|
|
488
|
+
if (response.status === 200) {
|
|
489
|
+
return [2 /*return*/, response.data[0].generated_text];
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
console.error("Failed to fetch image captioning API: ".concat(response.statusText));
|
|
493
|
+
return [2 /*return*/, null];
|
|
494
|
+
}
|
|
495
|
+
return [3 /*break*/, 3];
|
|
496
|
+
case 2:
|
|
497
|
+
error_6 = _a.sent();
|
|
498
|
+
console.error("Error fetching data: ".concat(error_6.message));
|
|
499
|
+
throw error_6;
|
|
500
|
+
case 3: return [2 /*return*/];
|
|
501
|
+
}
|
|
502
|
+
});
|
|
503
|
+
}); };
|
|
504
|
+
_a.label = 1;
|
|
505
|
+
case 1:
|
|
506
|
+
if (!(retryCount < maxRetries)) return [3 /*break*/, 6];
|
|
507
|
+
_a.label = 2;
|
|
508
|
+
case 2:
|
|
509
|
+
_a.trys.push([2, 4, , 5]);
|
|
510
|
+
return [4 /*yield*/, fetchData()];
|
|
511
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
512
|
+
case 4:
|
|
513
|
+
error_4 = _a.sent();
|
|
514
|
+
console.error("Error fetching data (Retry ".concat(retryCount + 1, "): ").concat(error_4.message));
|
|
515
|
+
retryCount++;
|
|
516
|
+
return [3 /*break*/, 5];
|
|
517
|
+
case 5: return [3 /*break*/, 1];
|
|
518
|
+
case 6: return [2 /*return*/, null];
|
|
519
|
+
case 7:
|
|
520
|
+
error_5 = _a.sent();
|
|
521
|
+
console.error("Error in attemptImageCaptioning: ".concat(error_5.message));
|
|
522
|
+
return [2 /*return*/, null];
|
|
523
|
+
case 8: return [2 /*return*/];
|
|
524
|
+
}
|
|
525
|
+
});
|
|
526
|
+
});
|
|
347
527
|
}
|
|
@@ -46,7 +46,7 @@ var draw_1 = require("./draw");
|
|
|
46
46
|
var fs_1 = require("fs");
|
|
47
47
|
var herc = new hercai_1.Hercai();
|
|
48
48
|
var isProcessing = false;
|
|
49
|
-
function generateVoiceResponse(message, numOfImages, finalText, hercai, response, imageModel, draw, drawValid, chatModel, voiceModel, voice_code, letter, apiKey) {
|
|
49
|
+
function generateVoiceResponse(message, numOfImages, finalText, hercai, response, imageModel, draw, drawValid, chatModel, voiceModel, voice_code, letter, apiKey, nsfw) {
|
|
50
50
|
return __awaiter(this, void 0, void 0, function () {
|
|
51
51
|
var msg, attachment, imageUrl, worker, text, translationResult, chunks, delay, _loop_1, _i, chunks_1, chunk, options, response_1, audioData, error_1, encodedParams, options, response_2, error_2, error_3;
|
|
52
52
|
var _this = this;
|
|
@@ -62,7 +62,7 @@ function generateVoiceResponse(message, numOfImages, finalText, hercai, response
|
|
|
62
62
|
_a.trys.push([1, 23, 24, 25]);
|
|
63
63
|
msg = message.content;
|
|
64
64
|
if (!drawValid) return [3 /*break*/, 3];
|
|
65
|
-
return [4 /*yield*/, (0, draw_1.drawImage)(message, numOfImages, finalText, hercai, response, imageModel)];
|
|
65
|
+
return [4 /*yield*/, (0, draw_1.drawImage)(message, numOfImages, finalText, hercai, response, imageModel, nsfw)];
|
|
66
66
|
case 2: return [2 /*return*/, _a.sent()];
|
|
67
67
|
case 3:
|
|
68
68
|
if (!(message.attachments.size > 0)) return [3 /*break*/, 7];
|