Khrisna commited on
Commit
8b029c2
·
verified ·
1 Parent(s): 1671f43

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +72 -0
index.js CHANGED
@@ -10,6 +10,7 @@ const ytdl = require('ytdl-core')
10
  const tfjs = require('@tensorflow/tfjs-node')
11
  const nsfwjs = require('nsfwjs')
12
  const jpegjs = require('jpeg-js')
 
13
  const fileType = require("file-type")
14
  //const Stress = require('./lib/ddos.js');
15
  //const { BingChat } = (await import("bing-chat")).default
@@ -188,6 +189,41 @@ app.post('/api/upscaler', async (req, res) => {
188
  res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
189
  }
190
  })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  app.post('/api/nsfw-check', async (req, res) => {
192
  try {
193
  console.log(req.body)
@@ -477,6 +513,42 @@ async function processImage(image, denoise, scale, format, type) {
477
  });
478
  }
479
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
480
  async function check_nsfw(buffer) {
481
  let _model = await load_model()
482
  const convert = async (img) => {
 
10
  const tfjs = require('@tensorflow/tfjs-node')
11
  const nsfwjs = require('nsfwjs')
12
  const jpegjs = require('jpeg-js')
13
+ const jimp = require('jimp')
14
  const fileType = require("file-type")
15
  //const Stress = require('./lib/ddos.js');
16
  //const { BingChat } = (await import("bing-chat")).default
 
189
  res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
190
  }
191
  })
192
+ app.post('/api/upscaler', async (req, res) => {
193
+ try {
194
+ console.log(req.body)
195
+ const { status images } = req.body
196
+ if (!images) return res.json({ success: false, message: 'Required an images!' })
197
+ if (!status) return res.json({ success: false, message: 'Required an status text!' })
198
+
199
+ if(status !== apikey) return res.json({ success: false, message: 'Invalid status!' })
200
+ if (/^(https?|http):\/\//i.test(images)) {
201
+ const data_img = await axios.request({
202
+ method: "GET",
203
+ url: images,
204
+ responseType: "arraybuffer"
205
+ })
206
+ const imageBase64 = Buffer.from(data_img.data, 'binary').toString('base64');
207
+ const response = await processImageAnime(imageBase64);
208
+ const type_img = await fileType.fromBuffer(response)
209
+ res.setHeader('Content-Type', type_img.mime)
210
+ res.send(response)
211
+ } else if (images && typeof images == 'string' && isBase64(images)) {
212
+ const response = await processImageAnime(images)
213
+ const type_img = await fileType.fromBuffer(response)
214
+ res.setHeader('Content-Type', type_img.mime)
215
+ res.send(response)
216
+ } else {
217
+ res.json({
218
+ success: false, message: 'No url or base64 detected!!'
219
+ })
220
+ }
221
+ } catch (e) {
222
+ console.log(e)
223
+ e = String(e)
224
+ res.json({ error: true, message: e === '[object Object]' ? 'Internal Server Error' : e })
225
+ }
226
+ })
227
  app.post('/api/nsfw-check', async (req, res) => {
228
  try {
229
  console.log(req.body)
 
513
  });
514
  }
515
 
516
+ async function processImageAnime(inputBuffer) {
517
+ try {
518
+ // const base64String = Buffer.from(inputBuffer, 'binary').toString('base64');
519
+ const apiResponse = await axios.post('https://www.drawever.com/api/photo-to-anime', {
520
+ data: `data:image/png;base64,${inputBuffer}`,
521
+ }, {
522
+ headers: {
523
+ 'Content-Type': 'application/json',
524
+ },
525
+ });
526
+
527
+ const link = 'https://www.drawever.com' + (apiResponse.data.urls[1] || apiResponse.data.urls[0]);
528
+ const {
529
+ data: imageBuffer
530
+ } = await axios.get(link, {
531
+ responseType: 'arraybuffer'
532
+ });
533
+
534
+ const image = await Jimp.read(imageBuffer);
535
+ const blackBackground = new Jimp(image.bitmap.width, 50, 0x000000FF);
536
+ const font = await Jimp.loadFont(Jimp.FONT_SANS_16_WHITE);
537
+ blackBackground.print(font, 10, 10, "SadTeams", blackBackground.bitmap.width - 20);
538
+ image.composite(blackBackground, 0, image.bitmap.height - blackBackground.bitmap.height, {
539
+ mode: Jimp.BLEND_SOURCE_OVER,
540
+ opacityDest: 0.5,
541
+ opacitySource: 1
542
+ });
543
+
544
+ const outputBuffer = await image.getBufferAsync(Jimp.MIME_JPEG);
545
+ return outputBuffer;
546
+ } catch (err) {
547
+ console.error(err);
548
+ throw err;
549
+ }
550
+ }
551
+
552
  async function check_nsfw(buffer) {
553
  let _model = await load_model()
554
  const convert = async (img) => {