@ibaraki-douji/waifu2x
Version:
Upscale image with waifu2x-ncnn-vulkan.
42 lines (41 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AdmZip = require("adm-zip");
const fs_1 = require("fs");
const node_fetch_1 = require("node-fetch");
const path_1 = require("path");
const dir = path_1.resolve(__dirname, '..');
console.log("Downloading and installing Waifu2X");
(async () => {
let zipURL = "";
// REMOVE EXISTING 2X
if (fs_1.existsSync(dir + "/waifu2x"))
fs_1.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 node_fetch_1.default(zipURL);
const zip = await zipRes.buffer();
// INSTALL 2X
fs_1.writeFileSync(dir + "/zip.zip", zip);
let aZIP = new AdmZip(dir + "/zip.zip");
aZIP.extractAllTo(dir, true);
fs_1.unlinkSync(dir + "/zip.zip");
// RENAME FOLDER
let fname = fs_1.readdirSync(dir).find(p => p.includes("waifu2x-ncnn"));
fs_1.renameSync(dir + "/" + fname, dir + "/waifu2x");
// INSTALL MISSING DLL
if (process.platform == "win32") {
const dllRes = await node_fetch_1.default("https://www.dll4free.com/download.php?dll=vulkan-1.dll&m=ac97f59aaf23e9f6baf6d29d6241adf3&action=download");
const dllZIP = await dllRes.buffer();
fs_1.writeFileSync(dir + "/waifu2x/vulkan-1.zip", dllZIP);
let dZIP = new AdmZip(dir + "/waifu2x/vulkan-1.zip");
dZIP.extractAllTo(dir + "/waifu2x", true);
fs_1.unlinkSync(dir + "/waifu2x/vulkan-1.zip");
}
})();