Update index.js
Browse files
index.js
CHANGED
@@ -13,6 +13,7 @@ const nsfwjs = require('nsfwjs')
|
|
13 |
const jpegjs = require('jpeg-js')
|
14 |
const Jimp = require('jimp')
|
15 |
const fileType = require("file-type")
|
|
|
16 |
//const Stress = require('./lib/ddos.js');
|
17 |
//const { BingChat } = (await import("bing-chat")).default
|
18 |
const { acytoo, chatgpt_4 } = require("./lib/chatgpt.js")
|
@@ -224,6 +225,40 @@ app.post('/api/upscaler2', async (req, res) => {
|
|
224 |
res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
|
225 |
}
|
226 |
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
app.post('/api/toanime2', async (req, res) => {
|
228 |
try {
|
229 |
console.log(req.body)
|
@@ -516,6 +551,27 @@ async function upscaleImage(imageBuffer) {
|
|
516 |
});
|
517 |
}
|
518 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
async function processImageUpscaler(images, denoise, format, type) {
|
520 |
return new Promise(async (resolve, reject) => {
|
521 |
try {
|
|
|
13 |
const jpegjs = require('jpeg-js')
|
14 |
const Jimp = require('jimp')
|
15 |
const fileType = require("file-type")
|
16 |
+
const Waifu2X = require('@ibaraki-douji/waifu2x')
|
17 |
//const Stress = require('./lib/ddos.js');
|
18 |
//const { BingChat } = (await import("bing-chat")).default
|
19 |
const { acytoo, chatgpt_4 } = require("./lib/chatgpt.js")
|
|
|
225 |
res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
|
226 |
}
|
227 |
})
|
228 |
+
app.post('/api/upscaler2', async (req, res) => {
|
229 |
+
try {
|
230 |
+
console.log(req.body)
|
231 |
+
const { images, status } = req.body
|
232 |
+
if (!images) return res.json({ success: false, message: 'Required an images!' })
|
233 |
+
if (!status) return res.json({ success: false, message: 'Required an status text!' })
|
234 |
+
|
235 |
+
if(status !== apikey) return res.json({ success: false, message: 'Invalid status!' })
|
236 |
+
if (/^(https?|http):\/\//i.test(images)) {
|
237 |
+
const data_img = await axios.request({
|
238 |
+
method: "GET",
|
239 |
+
url: images,
|
240 |
+
responseType: "arraybuffer"
|
241 |
+
})
|
242 |
+
const response = await upscaleImageV2(data_img.data)
|
243 |
+
const type_img = await fileType.fromBuffer(response)
|
244 |
+
res.setHeader('Content-Type', type_img.mime)
|
245 |
+
res.send(response)
|
246 |
+
} else if (images && typeof images == 'string' && isBase64(images)) {
|
247 |
+
const response = await upscaleImageV2(Buffer.from(images, "base64"))
|
248 |
+
const type_img = await fileType.fromBuffer(response)
|
249 |
+
res.setHeader('Content-Type', type_img.mime)
|
250 |
+
res.send(response)
|
251 |
+
} else {
|
252 |
+
res.json({
|
253 |
+
success: false, message: 'No url or base64 detected!!'
|
254 |
+
})
|
255 |
+
}
|
256 |
+
} catch (e) {
|
257 |
+
console.log(e)
|
258 |
+
e = String(e)
|
259 |
+
res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
|
260 |
+
}
|
261 |
+
})
|
262 |
app.post('/api/toanime2', async (req, res) => {
|
263 |
try {
|
264 |
console.log(req.body)
|
|
|
551 |
});
|
552 |
}
|
553 |
|
554 |
+
async function upscaleImageV2(imageBuffer) {
|
555 |
+
return new Promise(async (resolve, reject) => {
|
556 |
+
try {
|
557 |
+
const upscale = await Waifu2X.upscale(imageBuffer, null, {
|
558 |
+
noise: 0,
|
559 |
+
scale: 2,
|
560 |
+
gpu: -1,
|
561 |
+
ramLimit: 500,
|
562 |
+
outputAsBuffer: true
|
563 |
+
});
|
564 |
+
|
565 |
+
upscale.finishedPromise().then(() => {
|
566 |
+
const outputBuffer = upscale.endBuffer;
|
567 |
+
resolve(outputBuffer); // ArrayBuffer
|
568 |
+
});
|
569 |
+
} catch(e) {
|
570 |
+
reject(e.message);
|
571 |
+
}
|
572 |
+
});
|
573 |
+
}
|
574 |
+
|
575 |
async function processImageUpscaler(images, denoise, format, type) {
|
576 |
return new Promise(async (resolve, reject) => {
|
577 |
try {
|