apexify.js 3.3.11 → 4.0.1

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.
Files changed (88) hide show
  1. package/README.md +183 -0
  2. package/dist/ai/ApexAI.d.ts +88 -8
  3. package/dist/ai/ApexAI.d.ts.map +1 -1
  4. package/dist/ai/ApexAI.js +61 -161
  5. package/dist/ai/ApexAI.js.map +1 -1
  6. package/dist/ai/direct-use.d.ts +9 -0
  7. package/dist/ai/direct-use.d.ts.map +1 -0
  8. package/dist/ai/direct-use.js +572 -0
  9. package/dist/ai/direct-use.js.map +1 -0
  10. package/dist/ai/functions/Gemini.d.ts +6 -0
  11. package/dist/ai/functions/Gemini.d.ts.map +1 -0
  12. package/dist/ai/functions/Gemini.js +103 -0
  13. package/dist/ai/functions/Gemini.js.map +1 -0
  14. package/dist/ai/functions/draw.d.ts +2 -1
  15. package/dist/ai/functions/draw.d.ts.map +1 -1
  16. package/dist/ai/functions/draw.js +476 -102
  17. package/dist/ai/functions/draw.js.map +1 -1
  18. package/dist/ai/functions/generateVoiceResponse.d.ts +3 -1
  19. package/dist/ai/functions/generateVoiceResponse.d.ts.map +1 -1
  20. package/dist/ai/functions/generateVoiceResponse.js +29 -18
  21. package/dist/ai/functions/generateVoiceResponse.js.map +1 -1
  22. package/dist/ai/functions/typeWriter.d.ts +1 -1
  23. package/dist/ai/functions/typeWriter.d.ts.map +1 -1
  24. package/dist/ai/functions/typeWriter.js +3 -2
  25. package/dist/ai/functions/typeWriter.js.map +1 -1
  26. package/dist/ai/functions/validOptions.d.ts +10 -0
  27. package/dist/ai/functions/validOptions.d.ts.map +1 -0
  28. package/dist/ai/functions/validOptions.js +130 -0
  29. package/dist/ai/functions/validOptions.js.map +1 -0
  30. package/dist/ai/modals-chat/Gemini-flash.d.ts +6 -0
  31. package/dist/ai/modals-chat/Gemini-flash.d.ts.map +1 -0
  32. package/dist/ai/modals-chat/Gemini-flash.js +111 -0
  33. package/dist/ai/modals-chat/Gemini-flash.js.map +1 -0
  34. package/dist/ai/modals-chat/Gemini-pro.d.ts +6 -0
  35. package/dist/ai/modals-chat/Gemini-pro.d.ts.map +1 -0
  36. package/dist/ai/modals-chat/Gemini-pro.js +96 -0
  37. package/dist/ai/modals-chat/Gemini-pro.js.map +1 -0
  38. package/dist/ai/modals-chat/apexChat.d.ts +2 -0
  39. package/dist/ai/modals-chat/apexChat.d.ts.map +1 -0
  40. package/dist/ai/modals-chat/apexChat.js +33 -0
  41. package/dist/ai/modals-chat/apexChat.js.map +1 -0
  42. package/dist/ai/modals-chat/config.d.ts +5 -0
  43. package/dist/ai/modals-chat/config.d.ts.map +1 -0
  44. package/dist/ai/modals-chat/config.js +13 -0
  45. package/dist/ai/modals-chat/config.js.map +1 -0
  46. package/dist/ai/modals-chat/facebook-ai.d.ts +2 -0
  47. package/dist/ai/modals-chat/facebook-ai.d.ts.map +1 -0
  48. package/dist/ai/modals-chat/facebook-ai.js +21 -0
  49. package/dist/ai/modals-chat/facebook-ai.js.map +1 -0
  50. package/dist/ai/modals-chat/gemma.d.ts +3 -0
  51. package/dist/ai/modals-chat/gemma.d.ts.map +1 -0
  52. package/dist/ai/modals-chat/gemma.js +54 -0
  53. package/dist/ai/modals-chat/gemma.js.map +1 -0
  54. package/dist/ai/modals-chat/modals.d.ts +8 -0
  55. package/dist/ai/modals-chat/modals.d.ts.map +1 -0
  56. package/dist/ai/modals-chat/modals.js +16 -0
  57. package/dist/ai/modals-chat/modals.js.map +1 -0
  58. package/dist/ai/modals-chat/starChat.d.ts +2 -0
  59. package/dist/ai/modals-chat/starChat.d.ts.map +1 -0
  60. package/dist/ai/modals-chat/starChat.js +32 -0
  61. package/dist/ai/modals-chat/starChat.js.map +1 -0
  62. package/dist/ai/modals-chat/yi-ai.d.ts +2 -0
  63. package/dist/ai/modals-chat/yi-ai.d.ts.map +1 -0
  64. package/dist/ai/modals-chat/yi-ai.js +41 -0
  65. package/dist/ai/modals-chat/yi-ai.js.map +1 -0
  66. package/dist/ai/utils.d.ts +3 -2
  67. package/dist/ai/utils.d.ts.map +1 -1
  68. package/dist/ai/utils.js +6 -4
  69. package/dist/ai/utils.js.map +1 -1
  70. package/dist/canvas/utils/general functions.js +1 -1
  71. package/dist/canvas/utils/general functions.js.map +1 -1
  72. package/lib/ai/ApexAI.ts +215 -193
  73. package/lib/ai/{models.ts → direct-use.ts} +9 -12
  74. package/lib/ai/functions/draw.ts +479 -83
  75. package/lib/ai/functions/generateVoiceResponse.ts +16 -8
  76. package/lib/ai/functions/typeWriter.ts +4 -2
  77. package/lib/ai/functions/validOptions.ts +210 -0
  78. package/lib/ai/modals-chat/Gemini-flash.ts +108 -0
  79. package/lib/ai/modals-chat/Gemini-pro.ts +93 -0
  80. package/lib/ai/modals-chat/apexChat.ts +31 -0
  81. package/lib/ai/modals-chat/config.ts +11 -0
  82. package/lib/ai/modals-chat/facebook-ai.ts +14 -0
  83. package/lib/ai/modals-chat/modals.ts +8 -0
  84. package/lib/ai/modals-chat/starChat.ts +31 -0
  85. package/lib/ai/modals-chat/yi-ai.ts +40 -0
  86. package/lib/ai/utils.ts +3 -1
  87. package/lib/canvas/utils/general functions.ts +1 -1
  88. package/package.json +5 -3
@@ -2,91 +2,21 @@ import translate from "@iamtraction/google-translate";
2
2
  import sharp from "sharp";
3
3
  import { ButtonBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, ButtonStyle, ActionRowBuilder, AttachmentBuilder, AttachmentData } from "discord.js";
4
4
  import axios from "axios";
5
+ import { validOptions, ImageModals } from './validOptions';
5
6
  import api from "api";
6
7
 
7
- const sdk: any = api("@prodia/v1.3.0#be019b2kls0gqss3");
8
- sdk.auth("43435e1c-cab1-493f-a224-f51e4b97ce8d");
9
-
10
- const validHercaiModals = [
11
- "v1",
12
- "v2",
13
- "v2-beta",
14
- "lexica",
15
- "prodia",
16
- "animefy",
17
- "raava",
18
- "shonin",
19
- "v3",
20
- ];
21
-
22
- const validProdiaModals = [
23
- "3Guofeng3_v34.safetensors [50f420de]",
24
- "absolutereality_V16.safetensors [37db0fc3]",
25
- "absolutereality_v181.safetensors [3d9d4d2b]",
26
- "amIReal_V41.safetensors [0a8a2e61]",
27
- "analog-diffusion-1.0.ckpt [9ca13f02]",
28
- "anythingv3_0-pruned.ckpt [2700c435]",
29
- "anything-v4.5-pruned.ckpt [65745d25]",
30
- "anythingV5_PrtRE.safetensors [893e49b9]",
31
- "AOM3A3_orangemixs.safetensors [9600da17]",
32
- "blazing_drive_v10g.safetensors [ca1c1eab]",
33
- "cetusMix_Version35.safetensors [de2f2560]",
34
- "childrensStories_v13D.safetensors [9dfaabcb]",
35
- "childrensStories_v1SemiReal.safetensors [a1c56dbb]",
36
- "childrensStories_v1ToonAnime.safetensors [2ec7b88b]",
37
- "Counterfeit_v30.safetensors [9e2a8f19]",
38
- "cuteyukimixAdorable_midchapter3.safetensors [04bdffe6]",
39
- "cyberrealistic_v33.safetensors [82b0d085]",
40
- "dalcefo_v4.safetensors [425952fe]",
41
- "deliberate_v2.safetensors [10ec4b29]",
42
- "deliberate_v3.safetensors [afd9d2d4]",
43
- "dreamlike-anime-1.0.safetensors [4520e090]",
44
- "dreamlike-diffusion-1.0.safetensors [5c9fd6e0]",
45
- "dreamlike-photoreal-2.0.safetensors [fdcf65e7]",
46
- "dreamshaper_6BakedVae.safetensors [114c8abb]",
47
- "dreamshaper_7.safetensors [5cf5ae06]",
48
- "dreamshaper_8.safetensors [9d40847d]",
49
- "edgeOfRealism_eorV20.safetensors [3ed5de15]",
50
- "EimisAnimeDiffusion_V1.ckpt [4f828a15]",
51
- "elldreths-vivid-mix.safetensors [342d9d26]",
52
- "epicrealism_naturalSinRC1VAE.safetensors [90a4c676]",
53
- "ICantBelieveItsNotPhotography_seco.safetensors [4e7a3dfd]",
54
- "juggernaut_aftermath.safetensors [5e20c455]",
55
- "lofi_v4.safetensors [ccc204d6]",
56
- "lyriel_v16.safetensors [68fceea2]",
57
- "majicmixRealistic_v4.safetensors [29d0de58]",
58
- "mechamix_v10.safetensors [ee685731]",
59
- "meinamix_meinaV9.safetensors [2ec66ab0]",
60
- "meinamix_meinaV11.safetensors [b56ce717]",
61
- "neverendingDream_v122.safetensors [f964ceeb]",
62
- "openjourney_V4.ckpt [ca2f377f]",
63
- "pastelMixStylizedAnime_pruned_fp16.safetensors [793a26e8]",
64
- "portraitplus_V1.0.safetensors [1400e684]",
65
- "protogenx34.safetensors [5896f8d5]",
66
- "Realistic_Vision_V1.4-pruned-fp16.safetensors [8d21810b]",
67
- "Realistic_Vision_V2.0.safetensors [79587710]",
68
- "Realistic_Vision_V4.0.safetensors [29a7afaa]",
69
- "Realistic_Vision_V5.0.safetensors [614d1063]",
70
- "redshift_diffusion-V10.safetensors [1400e684]",
71
- "revAnimated_v122.safetensors [3f4fefd9]",
72
- "rundiffusionFX25D_v10.safetensors [cd12b0ee]",
73
- "rundiffusionFX_v10.safetensors [cd4e694d]",
74
- "sdv1_4.ckpt [7460a6fa]",
75
- "v1-5-pruned-emaonly.safetensors [d7049739]",
76
- "v1-5-inpainting.safetensors [21c7ab71]",
77
- "shoninsBeautiful_v10.safetensors [25d8c546]",
78
- "theallys-mix-ii-churned.safetensors [5d9225a4]",
79
- "timeless-1.0.ckpt [7c4971d4]",
80
- "toonyou_beta6.safetensors [980f6b15]",
81
- ];
8
+ const sdk: any = api("@prodia/v1.3.0#be019b2kls0gqss3");
82
9
  async function aiImagine(
83
10
  message: any,
84
11
  numOfImages: number,
85
12
  textToDraw: string,
86
13
  hercai: any,
87
- imageModel: string,
14
+ imageModel: ImageModals,
88
15
  nsfw: boolean,
89
16
  nsfwKeyWords: string[],
17
+ deepCheck: boolean,
18
+ enhancer: any,
19
+ buttons: any[]
90
20
  ) {
91
21
  const maxRetryAttempts = 4;
92
22
  const retryInterval = 5000;
@@ -126,17 +56,40 @@ async function aiImagine(
126
56
 
127
57
  for (let _0x4d7fb6 = 0x0; _0x4d7fb6 < numOfImages; _0x4d7fb6++) {
128
58
  try {
129
- if (validHercaiModals.includes(imageModel)) {
59
+ if (validOptions.validHercaiModals.includes(imageModel)) {
130
60
  response = await retry(() =>
131
61
  hercai.drawImage({
132
62
  model: imageModel,
133
63
  prompt: translatedText.text,
134
64
  }),
135
65
  );
136
- } else if (validProdiaModals.includes(imageModel)) {
66
+ } else if (validOptions.validProdiaModals.includes(imageModel)) {
137
67
  const generateResponse = await sdk.generate({
138
68
  model: imageModel,
139
69
  prompt: translatedText.text,
70
+ negative_prompt: enhancer.negative_prompt,
71
+ style_preset: enhancer.imgStyle,
72
+ cfg_scale: enhancer.cfgScale,
73
+ sampler: enhancer.sampler,
74
+ seed: enhancer.seed,
75
+ steps: enhancer.steps,
76
+ });
77
+
78
+ await message.channel?.sendTyping();
79
+
80
+ const generatedJobId = generateResponse.data.job;
81
+ response = await checkJobStatus(generatedJobId);
82
+ } else if (validOptions.validSXDL.includes(imageModel)) {
83
+
84
+ const generateResponse = await sdk.sdxlGenerate({
85
+ model: imageModel,
86
+ prompt: translatedText.text,
87
+ negative_prompt: enhancer.negative_prompt,
88
+ style_preset: enhancer.imgStyle,
89
+ cfg_scale: enhancer.cfgScale,
90
+ sampler: enhancer.sampler,
91
+ seed: enhancer.seed,
92
+ steps: enhancer.steps,
140
93
  });
141
94
 
142
95
  await message.channel?.sendTyping();
@@ -201,6 +154,407 @@ async function aiImagine(
201
154
  const textToCheck = await attemptImageCaptioning(imageUrl);
202
155
 
203
156
  const nsfwWords: string[] = [
157
+ "2g1c",
158
+ "2 girls 1 cup",
159
+ "acrotomophilia",
160
+ "alabama hot pocket",
161
+ "alaskan pipeline",
162
+ "anal",
163
+ "anilingus",
164
+ "anus",
165
+ "apeshit",
166
+ "arsehole",
167
+ "ass",
168
+ "asshole",
169
+ "assmunch",
170
+ "auto erotic",
171
+ "autoerotic",
172
+ "babeland",
173
+ "baby batter",
174
+ "baby juice",
175
+ "ball gag",
176
+ "ball gravy",
177
+ "ball kicking",
178
+ "ball licking",
179
+ "ball sack",
180
+ "ball sucking",
181
+ "bangbros",
182
+ "bangbus",
183
+ "bareback",
184
+ "barely legal",
185
+ "barenaked",
186
+ "bastard",
187
+ "bastardo",
188
+ "bastinado",
189
+ "bbw",
190
+ "bdsm",
191
+ "beaner",
192
+ "beaners",
193
+ "beaver cleaver",
194
+ "beaver lips",
195
+ "beastiality",
196
+ "bestiality",
197
+ "big black",
198
+ "big breasts",
199
+ "big knockers",
200
+ "big tits",
201
+ "bimbos",
202
+ "birdlock",
203
+ "bitch",
204
+ "bitches",
205
+ "black cock",
206
+ "blonde action",
207
+ "blonde on blonde action",
208
+ "blowjob",
209
+ "blow job",
210
+ "blow your load",
211
+ "blue waffle",
212
+ "blumpkin",
213
+ "bollocks",
214
+ "bondage",
215
+ "boner",
216
+ "boob",
217
+ "boobs",
218
+ "booty call",
219
+ "brown showers",
220
+ "brunette action",
221
+ "bukkake",
222
+ "bulldyke",
223
+ "bullet vibe",
224
+ "bullshit",
225
+ "bung hole",
226
+ "bunghole",
227
+ "busty",
228
+ "butt",
229
+ "buttcheeks",
230
+ "butthole",
231
+ "camel toe",
232
+ "camgirl",
233
+ "camslut",
234
+ "camwhore",
235
+ "carpet muncher",
236
+ "carpetmuncher",
237
+ "chocolate rosebuds",
238
+ "cialis",
239
+ "circlejerk",
240
+ "cleveland steamer",
241
+ "clit",
242
+ "clitoris",
243
+ "clover clamps",
244
+ "clusterfuck",
245
+ "cock",
246
+ "cocks",
247
+ "coprolagnia",
248
+ "coprophilia",
249
+ "cornhole",
250
+ "coon",
251
+ "coons",
252
+ "creampie",
253
+ "cum",
254
+ "cumming",
255
+ "cumshot",
256
+ "cumshots",
257
+ "cunnilingus",
258
+ "cunt",
259
+ "darkie",
260
+ "date rape",
261
+ "daterape",
262
+ "deep throat",
263
+ "deepthroat",
264
+ "dendrophilia",
265
+ "dick",
266
+ "dildo",
267
+ "dingleberry",
268
+ "dingleberries",
269
+ "dirty pillows",
270
+ "dirty sanchez",
271
+ "doggie style",
272
+ "doggiestyle",
273
+ "doggy style",
274
+ "doggystyle",
275
+ "dog style",
276
+ "dolcett",
277
+ "domination",
278
+ "dominatrix",
279
+ "dommes",
280
+ "donkey punch",
281
+ "double dong",
282
+ "double penetration",
283
+ "dp action",
284
+ "dry hump",
285
+ "dvda",
286
+ "eat my ass",
287
+ "ecchi",
288
+ "ejaculation",
289
+ "erotic",
290
+ "erotism",
291
+ "escort",
292
+ "eunuch",
293
+ "fag",
294
+ "faggot",
295
+ "fecal",
296
+ "felch",
297
+ "fellatio",
298
+ "feltch",
299
+ "female squirting",
300
+ "femdom",
301
+ "figging",
302
+ "fingerbang",
303
+ "fingering",
304
+ "fisting",
305
+ "foot fetish",
306
+ "footjob",
307
+ "frotting",
308
+ "fuck",
309
+ "fuck buttons",
310
+ "fuckin",
311
+ "fucking",
312
+ "fucktards",
313
+ "fudge packer",
314
+ "fudgepacker",
315
+ "futanari",
316
+ "gangbang",
317
+ "gang bang",
318
+ "gay sex",
319
+ "genitals",
320
+ "giant cock",
321
+ "girl on",
322
+ "girl on top",
323
+ "girls gone wild",
324
+ "goatcx",
325
+ "goatse",
326
+ "god damn",
327
+ "gokkun",
328
+ "golden shower",
329
+ "goodpoop",
330
+ "goo girl",
331
+ "goregasm",
332
+ "grope",
333
+ "group sex",
334
+ "g-spot",
335
+ "guro",
336
+ "hand job",
337
+ "handjob",
338
+ "hard core",
339
+ "hardcore",
340
+ "hentai",
341
+ "homoerotic",
342
+ "honkey",
343
+ "hooker",
344
+ "horny",
345
+ "hot carl",
346
+ "hot chick",
347
+ "how to kill",
348
+ "how to murder",
349
+ "huge fat",
350
+ "humping",
351
+ "incest",
352
+ "intercourse",
353
+ "jack off",
354
+ "jail bait",
355
+ "jailbait",
356
+ "jelly donut",
357
+ "jerk off",
358
+ "jigaboo",
359
+ "jiggaboo",
360
+ "jiggerboo",
361
+ "jizz",
362
+ "juggs",
363
+ "kike",
364
+ "kinbaku",
365
+ "kinkster",
366
+ "kinky",
367
+ "knobbing",
368
+ "leather restraint",
369
+ "leather straight jacket",
370
+ "lemon party",
371
+ "livesex",
372
+ "lolita",
373
+ "lovemaking",
374
+ "make me come",
375
+ "male squirting",
376
+ "masturbate",
377
+ "masturbating",
378
+ "masturbation",
379
+ "menage a trois",
380
+ "milf",
381
+ "missionary position",
382
+ "mong",
383
+ "motherfucker",
384
+ "mound of venus",
385
+ "mr hands",
386
+ "muff diver",
387
+ "muffdiving",
388
+ "nambla",
389
+ "nawashi",
390
+ "negro",
391
+ "neonazi",
392
+ "nigga",
393
+ "nigger",
394
+ "nig nog",
395
+ "nimphomania",
396
+ "nipple",
397
+ "nipples",
398
+ "nsfw",
399
+ 'nsfw images',
400
+ "nude",
401
+ "nudity",
402
+ "nutten",
403
+ "nympho",
404
+ "nymphomania",
405
+ "octopussy",
406
+ "omorashi",
407
+ "one cup two girls",
408
+ 'one guy one jar',
409
+ "orgasm",
410
+ "orgy",
411
+ 'paedophile',
412
+ "paki",
413
+ "panties",
414
+ "panty",
415
+ "pedobear",
416
+ "pedophile",
417
+ 'pegging',
418
+ 'penis',
419
+ "phone sex",
420
+ 'piece of shit',
421
+ "pikey",
422
+ "pissing",
423
+ "piss pig",
424
+ "pisspig",
425
+ "playboy",
426
+ "pleasure chest",
427
+ "pole smoker",
428
+ "ponyplay",
429
+ "poof",
430
+ "poon",
431
+ "poontang",
432
+ "punany",
433
+ "poop chute",
434
+ "poopchute",
435
+ "porn",
436
+ "porno",
437
+ "pornography",
438
+ "prince albert piercing",
439
+ "pthc",
440
+ "pubes",
441
+ "pussy",
442
+ "queaf",
443
+ "queef",
444
+ "quim",
445
+ "raghead",
446
+ "raging boner",
447
+ "rape",
448
+ "raping",
449
+ "rapist",
450
+ "rectum",
451
+ "reverse cowgirl",
452
+ "rimjob",
453
+ "rimming",
454
+ "rosy palm",
455
+ "rosy palm and her 5 sisters",
456
+ "rusty trombone",
457
+ "sadism",
458
+ "santorum",
459
+ "scat",
460
+ "schlong",
461
+ "scissoring",
462
+ "semen",
463
+ "sex",
464
+ "sexcam",
465
+ "sexo",
466
+ "sexy",
467
+ "sexual",
468
+ "sexually",
469
+ "sexuality",
470
+ "shaved beaver",
471
+ "shaved pussy",
472
+ "shemale",
473
+ "shibari",
474
+ "shit",
475
+ "shitblimp",
476
+ "shitty",
477
+ "shota",
478
+ "shrimping",
479
+ "skeet",
480
+ "slanteye",
481
+ "slut",
482
+ "s&m",
483
+ "smut",
484
+ "snatch",
485
+ "snowballing",
486
+ "sodomize",
487
+ "sodomy",
488
+ "spastic",
489
+ "spic",
490
+ "splooge",
491
+ "splooge moose",
492
+ "spooge",
493
+ "spread legs",
494
+ "spunk",
495
+ "strap on",
496
+ "strapon",
497
+ "strappado",
498
+ "strip club",
499
+ "style doggy",
500
+ "suck",
501
+ "sucks",
502
+ "suicide girls",
503
+ "sultry women",
504
+ "swastika",
505
+ "swinger",
506
+ "tainted love",
507
+ "taste my",
508
+ "tea bagging",
509
+ "threesome",
510
+ "throating",
511
+ "thumbzilla",
512
+ "tied up",
513
+ "tight white",
514
+ "tit",
515
+ "tits",
516
+ "titties",
517
+ "titty",
518
+ "topless",
519
+ "tosser",
520
+ "towelhead",
521
+ "tranny",
522
+ "tribadism",
523
+ "tub girl",
524
+ 'tubgirl',
525
+ "tushy",
526
+ "twat",
527
+ "twink",
528
+ "twinkie",
529
+ "two girls one cup",
530
+ "undressing",
531
+ 'upskirt',
532
+ "urethra play",
533
+ "urophilia",
534
+ "vagina",
535
+ "venus mound",
536
+ "viagra",
537
+ "vibrator",
538
+ "violet wand",
539
+ "vorarephilia",
540
+ "voyeur",
541
+ "voyeurweb",
542
+ "voyuer",
543
+ "vulva",
544
+ "wank",
545
+ "wetback",
546
+ "wet dream",
547
+ "white power",
548
+ "whore",
549
+ "worldsex",
550
+ "wrapping men",
551
+ "wrinkled starfish",
552
+ "xx",
553
+ "xxx",
554
+ "yaoi",
555
+ "yellow showers",
556
+ "yiffy",
557
+ "zoophilia",
204
558
  "anal",
205
559
  "arousal",
206
560
  "balls",
@@ -284,11 +638,22 @@ async function aiImagine(
284
638
 
285
639
  if (nsfwKeyWords.length > 0) {
286
640
  if (textToCheck && nsfwKeyWords.some(word => textToCheck?.includes(word))) {
287
- return message.reply("Warning ⚠️. The generated image contatining nsfw content. Turn off nsfw to sedn nsfw images.");
641
+ return message.reply("Warning ⚠️. The generated image contatining nsfw content. Turn off nsfw to send nsfw images.");
288
642
  }
289
643
  }
290
- if (textToCheck && nsfwWords.some(word => textToCheck?.includes(word))) {
291
- return message.reply("Warning ⚠️. The generated image contatining nsfw content. Turn off nsfw to sedn nsfw images.");
644
+
645
+ if (deepCheck) {
646
+ if (translatedText.text && nsfwWords.some(word => translatedText.text?.includes(word))) {
647
+ return message.reply("Warning ⚠️. Your prompt contains **`NSFW/Illegal/Prohibited`** words. Please refrain from doing this.");
648
+ }
649
+
650
+ if (translatedText.text && nsfwKeyWords.some(word => translatedText.text?.includes(word))) {
651
+ return message.reply("Warning ⚠️. Your prompt contains **`NSFW/Illegal/Prohibited`** words. Please refrain from doing this.");
652
+ }
653
+ }
654
+
655
+ if (textToCheck && nsfwWords.some(word => textToCheck?.includes(word))) {
656
+ return message.reply("Warning ⚠️. The generated image contatining nsfw content. Turn off nsfw to send nsfw images.");
292
657
  }
293
658
  }
294
659
 
@@ -345,9 +710,40 @@ async function aiImagine(
345
710
  );
346
711
  const row2 = new ActionRowBuilder().addComponents(selectMenu);
347
712
 
713
+ if (enhancer && enhancer.enhanceModal) {
714
+ for (const imageUrl of imageUrls) {
715
+ try {
716
+
717
+ if (!validOptions.validEnhancers?.includes(enhancer.enhanceModal)) {
718
+ return await message.reply({ content: `Invalid enhancer modal (~~${enhancer.enhanceModal}~~). Please check documentation online at apexifyjs.jedi-studio.com.`})
719
+ }
720
+
721
+ const generateResponse = await sdk.upscale({
722
+ resize: 4,
723
+ model: enhancer.enhanceModal,
724
+ imageUrl,
725
+ });
726
+
727
+ await message.channel?.sendTyping();
728
+
729
+ const generatedJobId = generateResponse.data.job;
730
+ const enhancedImageUrl = await checkJobStatus(generatedJobId);
731
+
732
+ if (enhancedImageUrl) {
733
+ attachData.push(new AttachmentBuilder(
734
+ enhancedImageUrl,
735
+ { name: `enhanced_image_${imageUrls.indexOf(imageUrl) + 1}.png` },
736
+ ) as AttachmentData);
737
+ }
738
+ } catch (error) {
739
+ console.error(`Error enhancing image at URL ${imageUrl}:`, error);
740
+ }
741
+ }
742
+ }
743
+ const allRows = [...buttons, row1, row2]
348
744
  await message.reply({
349
745
  files: attachData,
350
- components: [row1, row2],
746
+ components: allRows,
351
747
  allowedMentions: { repliedUser: false },
352
748
  });
353
749
 
@@ -435,4 +831,4 @@ async function attemptImageCaptioning(imageUrl: string) {
435
831
  }
436
832
  }
437
833
 
438
- export { aiImagine };
834
+ export { aiImagine };
@@ -4,9 +4,10 @@ import axios from "axios";
4
4
  import { createWorker, recognize } from "tesseract.js";
5
5
  import { chunkString } from "./chunkString";
6
6
  import { aiImagine } from "./draw";
7
+ import { ImageModals } from './validOptions';
7
8
  import fs from "fs";
8
9
 
9
- const herc = new Hercai();
10
+ const hercai = new Hercai('6eZZOdDwm6Epdzn8mnhcX9SBDkxvoNYcNj9ILS0P44=');
10
11
  let isProcessing = false;
11
12
  type ChatModelOption = any | "v3" | "v3-32k" | "turbo" | "turbo-16k" | "gemini" ;
12
13
 
@@ -16,14 +17,17 @@ async function aiVoice(
16
17
  finalText: string,
17
18
  hercai: any,
18
19
  drawValid: any,
19
- imageModal: string,
20
- chatModal: string | "v3" | "v3-32k" | "turbo" | "turbo-16k" | "gemini" | "starChat" | "apexChat" | 'gemma-v3' | 'gemma-v4' | 'zephyr-beta' | undefined,
20
+ imageModal: ImageModals,
21
+ chatModal: ChatModelOption,
21
22
  voiceModal: string,
22
23
  voice_code: string,
23
24
  type: string,
24
25
  apiKey: string,
25
26
  nsfw: boolean,
26
- nsfwKeyWords: string[]
27
+ nsfwKeyWords: string[],
28
+ deepCheck: boolean,
29
+ enhancer: any,
30
+ buttons: any[]
27
31
  ) {
28
32
  if (message.author.bot || isProcessing || !message.guild) {
29
33
  return;
@@ -35,7 +39,7 @@ async function aiVoice(
35
39
  let msg = message.content;
36
40
 
37
41
  if (drawValid) {
38
- return await aiImagine(message, numOfImages, finalText, hercai, imageModal, nsfw, nsfwKeyWords);
42
+ return await aiImagine(message, numOfImages, finalText, hercai, imageModal, nsfw, nsfwKeyWords, deepCheck, enhancer, buttons);
39
43
  }
40
44
 
41
45
  if (message.attachments.size > 0) {
@@ -47,7 +51,7 @@ async function aiVoice(
47
51
  msg += "\n" + text;
48
52
  }
49
53
 
50
- msg = (await herc.question({
54
+ msg = (await hercai.betaQuestion({
51
55
  model: chatModal as ChatModelOption,
52
56
  content: msg,
53
57
  })).reply.replace(/\n/g, " ");
@@ -76,6 +80,7 @@ async function aiVoice(
76
80
  },
77
81
  });
78
82
  await message.reply({
83
+ components: buttons,
79
84
  files: [
80
85
  {
81
86
  attachment: mp3Stream.data,
@@ -116,6 +121,7 @@ async function aiVoice(
116
121
  const audioData = response.data.audioStream;
117
122
  fs.writeFileSync("output.ogg", Buffer.from(audioData, "base64"));
118
123
  await message.reply({
124
+ components: buttons,
119
125
  files: [
120
126
  {
121
127
  attachment: "output.ogg",
@@ -128,7 +134,7 @@ async function aiVoice(
128
134
  console.error(error);
129
135
  throw new Error('Error generating audio file.');
130
136
  }
131
- } else if (imageModal === "zenithAi") {
137
+ } else if (voiceModal === "zenithAI") {
132
138
  if (!apiKey) {
133
139
  throw new Error('Error: The zenithAi model requires a premium account for generation. Please visit our support server at https://discord.gg/4uhpr7w8wW for assistance.');
134
140
  }
@@ -154,7 +160,9 @@ async function aiVoice(
154
160
  try {
155
161
  const response = await axios.request(options);
156
162
  const audioUrl = response.data.result.audio_url;
157
- await message.reply(audioUrl, {
163
+ await message.reply({
164
+ content: audioUrl,
165
+ components: buttons,
158
166
  allowedMentions: { repliedUser: false },
159
167
  });
160
168
  } catch (error) {