UNPKG

notmebotz-tools

Version:

Sebuah Tools yang berfungsi untuk mendownload Video atau Foto dari media sosial, serta sebagai tools yang berguna untuk aplikasi kamu seperti untuk BOT

80 lines (69 loc) 2.31 kB
const WebSocket = require("ws"); const axios = require("axios"); const sharp = require("sharp"); const up = require('../../lib/uploadFile') async function img2anime(imgUrl, options = {}) { const { prompt = "(masterpiece), best quality, anime artwork", negative_prompt = "(low quality, worst quality:1.4), text, watermark", strength = 0.6, } = options; const res = await axios.get(imgUrl, { responseType: "arraybuffer" }); const imgBuffer = Buffer.from(res.data); const b64Img = imgBuffer.toString("base64"); const sessHash = Math.random().toString(36).slice(2); return new Promise((resolve, reject) => { const ws = new WebSocket("wss://pixnova.ai/demo-photo2anime/queue/join", { headers: { Origin: "https://pixnova.ai", "User-Agent": "Mozilla/5.0", Connection: "Upgrade", Upgrade: "websocket", "Sec-WebSocket-Version": "13", }, }); ws.on("message", async (data) => { const msg = JSON.parse(data.toString()); if (msg.msg === "send_hash") { ws.send(JSON.stringify({ session_hash: sessHash })); } else if (msg.msg === "send_data") { ws.send( JSON.stringify({ data: { negative_prompt, prompt, source_image: `data:image/jpeg;base64,${b64Img}`, strength, }, }) ); } else if (msg.msg === "process_completed" && msg.success) { const resultUrl = `https://oss-global.pixnova.ai/${msg.output.result[0]}`; ws.close(); // Ambil hasilnya dan ubah ke JPEG dalam buffer const resultRes = await axios.get(resultUrl, { responseType: "arraybuffer" }); const webpBuffer = Buffer.from(resultRes.data); const jpegBuffer = await sharp(webpBuffer).jpeg().toBuffer(); resolve(jpegBuffer); } else if (msg.msg === "process_completed") { ws.close(); reject("Processing failed"); } }); ws.on("error", (err) => reject(err)); }); } async function i2z(imgUrl) { const jpegBuffer = await img2anime(imgUrl, { prompt: "Make tye body and face look a like a zombie and look a like zombie from train to busan, real art", negative_prompt: "blurry, deformed hands, 3d render, text, error image, random image color, error color", strength: 0.8, }); let za = await up(jpegBuffer) return { author: "Herza", status: 200, img_url: za } } module.exports = { i2z }