UNPKG

@ibaraki-douji/waifu2x

Version:

Upscale image with waifu2x-ncnn-vulkan.

43 lines (35 loc) 1.81 kB
import AdmZip = require('adm-zip'); import { existsSync, readdirSync, renameSync, rmdirSync, unlinkSync, writeFileSync } from 'fs'; import fetch from 'node-fetch'; import { resolve } from 'path'; const dir = resolve(__dirname, '..'); console.log("Downloading and installing Waifu2X"); ( async () => { let zipURL = ""; // REMOVE EXISTING 2X if (existsSync(dir + "/waifu2x")) rmdirSync(dir + "/waifu2x", {recursive: true}); // URL PLATFORM if (process.platform == "win32") zipURL = "https://github.com/nihui/waifu2x-ncnn-vulkan/releases/download/20210521/waifu2x-ncnn-vulkan-20210521-windows.zip"; else if (process.platform == "linux") zipURL = "https://github.com/nihui/waifu2x-ncnn-vulkan/releases/download/20210521/waifu2x-ncnn-vulkan-20210521-ubuntu.zip"; else throw new Error("This lib not support " + process.platform); // DOWNLOAD 2X const zipRes = await fetch(zipURL); const zip = await zipRes.buffer(); // INSTALL 2X writeFileSync(dir + "/zip.zip", zip); let aZIP = new AdmZip(dir + "/zip.zip"); aZIP.extractAllTo(dir, true); unlinkSync(dir + "/zip.zip"); // RENAME FOLDER let fname = readdirSync(dir).find(p => p.includes("waifu2x-ncnn")); renameSync(dir + "/" + fname, dir + "/waifu2x") // INSTALL MISSING DLL if (process.platform == "win32") { const dllRes = await fetch("https://www.dll4free.com/download.php?dll=vulkan-1.dll&m=ac97f59aaf23e9f6baf6d29d6241adf3&action=download") const dllZIP = await dllRes.buffer(); writeFileSync(dir + "/waifu2x/vulkan-1.zip", dllZIP); let dZIP = new AdmZip(dir + "/waifu2x/vulkan-1.zip"); dZIP.extractAllTo(dir + "/waifu2x", true); unlinkSync(dir + "/waifu2x/vulkan-1.zip"); } })()