Khrisna commited on
Commit
1ba44fd
·
verified ·
1 Parent(s): 0385117

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +55 -53
index.js CHANGED
@@ -147,12 +147,15 @@ app.post('/api/toanime', async (req, res) => {
147
  res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
148
  }
149
  })
150
- app.post('/api/waifu2x', async (req, res) => {
151
  try {
152
  console.log(req.body)
153
- const { images, format, status } = req.body
154
  if (!images) return res.json({ success: false, message: 'Required an images!' })
 
 
155
  if (!format) return res.json({ success: false, message: 'Required an format size!' })
 
156
  if (!status) return res.json({ success: false, message: 'Required an status text!' })
157
 
158
  if(status !== apikey) return res.json({ success: false, message: 'Invalid status!' })
@@ -162,11 +165,11 @@ app.post('/api/waifu2x', async (req, res) => {
162
  url: images,
163
  responseType: "arraybuffer"
164
  })
165
- const response = await waifu2x(data_img.data, format)
166
  res.setHeader('Content-Type', 'image/jpg')
167
  res.send(response)
168
  } else if (images && typeof images == 'string' && isBase64(images)) {
169
- const response = await waifu2x(Buffer.from(images, "base64"), format)
170
  res.setHeader('Content-Type', 'image/jpg')
171
  res.send(response)
172
  } else {
@@ -390,63 +393,62 @@ function toPDF(urls) {
390
  }
391
  })
392
  }
393
- async function waifu2x(image, formats) {
394
- // data
395
- //let img = await axios.get(urls, { responseType: "arraybuffer"})
396
- let random_numbers = Math.floor(Math.random() * 1000)
397
- let format
398
- if(formats == "Medium") {
399
- format = "1"
400
- } else if(formats == "High") {
401
- format = "2"
402
- } else if(!formats) {
403
- format = "0"
404
- }
405
- // memasukan data api
406
- const formData = new FormData()
407
- formData.append("denoise", format)
408
- formData.append("scale", "true")
409
- formData.append("file", image, {
410
- filename: "images_" + random_numbers.toString().padStart(3, '0') + ".jpeg",
411
- contentType: "image/jpeg"
412
- })
413
 
414
- // request ke api untuk mendapatkan hash nya
415
- const response = await axios.request({
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  method: "POST",
417
- url: "https://api.alcaamado.es/api/v1/waifu2x/convert",
418
  data: formData,
 
419
  headers: {
420
- "Accept": "application/json",
421
- "Referer": "https://waifu2x.pro/",
422
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0"
423
- }
424
- })
 
 
 
425
 
426
- /*const ress = await axios.request({
427
  method: "GET",
428
- url: "https://api.alcaamado.es/api/v2/waifu2x/check?hash=" + response.data.hash,
 
 
 
 
429
  headers: {
430
- "Accept": "application/json",
431
- "Referer": "https://waifu2x.pro/",
432
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0"
433
- }
434
- })
435
-
436
- if(ress.data.finished) return "Images Not Supported!!"*/
 
437
 
438
- const images = await axios.request({
439
- method: "GET",
440
- url: "https://api.alcaamado.es/api/v2/waifu2x/get?hash=" + response.data.hash + "&type=jpg",
441
- headers: {
442
- "Accept": "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
443
- "Content-Type": "image/jpg",
444
- "Referer": "https://waifu2x.pro/",
445
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0"
446
- },
447
- responseType: "arraybuffer"
448
- })
449
- return images.data
450
  }
451
  async function check_nsfw(buffer) {
452
  let _model = await load_model()
 
147
  res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
148
  }
149
  })
150
+ app.post('/api/upcaler', async (req, res) => {
151
  try {
152
  console.log(req.body)
153
+ const { images, denoise, scale, type, format, type, status } = req.body
154
  if (!images) return res.json({ success: false, message: 'Required an images!' })
155
+ if (!denoise) return res.json({ success: false, message: 'Required an denoise!' })
156
+ if (!scale) return res.json({ success: false, message: 'Required an images!' })
157
  if (!format) return res.json({ success: false, message: 'Required an format size!' })
158
+ if (!type) return res.json({ success: false, message: 'Required an images!' })
159
  if (!status) return res.json({ success: false, message: 'Required an status text!' })
160
 
161
  if(status !== apikey) return res.json({ success: false, message: 'Invalid status!' })
 
165
  url: images,
166
  responseType: "arraybuffer"
167
  })
168
+ const response = await processImage(data_img.data, denoise, scale, type, format, type)
169
  res.setHeader('Content-Type', 'image/jpg')
170
  res.send(response)
171
  } else if (images && typeof images == 'string' && isBase64(images)) {
172
+ const response = await processImage(Buffer.from(images, "base64"), denoise, scale, type, format, type)
173
  res.setHeader('Content-Type', 'image/jpg')
174
  res.send(response)
175
  } else {
 
393
  }
394
  })
395
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
 
397
+ async function processImage(image, denoise, scale, format, type) {
398
+ return new Promise(async (resolve, reject) => {
399
+ try {
400
+ let random_numbers = Math.floor(Math.random() * 1000);
401
+
402
+ const formData = new FormData();
403
+ formData.append("denoise", denoise);
404
+ formData.append("scale", scale);
405
+ formData.append("format", format);
406
+ formData.append("type", type);
407
+ formData.append("file", fs.readFileSync(image), {
408
+ filename:
409
+ "images_" + random_numbers.toString().padStart(3, "0") + ".jpeg",
410
+ contentType: "image/jpeg",
411
+ });
412
+
413
+ const response = await axios.request({
414
  method: "POST",
415
+ url: "https://api.alcaamado.es/ns-api-waifu2x/v1/convert",
416
  data: formData,
417
+ debug: true,
418
  headers: {
419
+ Authority: "api.alcaamado.es",
420
+ Accept: "application/json",
421
+ Referer: "https://waifu2x.pro/",
422
+ Origin: "https://waifu2x.pro",
423
+ "User-Agent":
424
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",
425
+ },
426
+ });
427
 
428
+ const images = await axios.request({
429
  method: "GET",
430
+ url:
431
+ "https://api.alcaamado.es/api/v2/waifu2x/get?hash=" +
432
+ response.data.hash +
433
+ "&type=" +
434
+ format,
435
  headers: {
436
+ Accept: "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
437
+ "Content-Type": "image/jpg",
438
+ Referer: "https://waifu2x.pro/",
439
+ "User-Agent":
440
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",
441
+ },
442
+ responseType: "arraybuffer",
443
+ });
444
 
445
+ // Mengonversi arraybuffer ke Buffer
446
+ //const buffer = Buffer.from(images.data);
447
+ resolve(images.data);
448
+ } catch (error) {
449
+ reject(error);
450
+ }
451
+ });
 
 
 
 
 
452
  }
453
  async function check_nsfw(buffer) {
454
  let _model = await load_model()