1.0.1 • Published 3 years ago

@ibaraki-douji/waifu2x v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

Waifu2X

A simple image upscaler using waifu2x-ncnn-vulkan

Getting started

npm i @ibaraki-douji/waifu2x --save

Usage

Import the lib

const Waifu2X = require('@ibaraki-douji/waifu2x')

Start Upscale

const Waifu2X = require('@ibaraki-douji/waifu2x')

const input = "./path/to/image";
//const input = readFileSync('./path/to/image'); // <- Buffer
const output = "./path/to/upscaled/image";
//const output = "" // <- IF BufferOutput Option

const options = {
    /**
     * Noise Reduction
     */
    noise: 0,
    /**
     * Upscale Multiplier
     */
    scale: 2,
    /**
     * Choose your GPU
     * -1 = CPU
     */
    gpu: -1,
    /**
     * Use only for CPU usage else that useless \
     * The RAMLimit is the tile-size option \
     * Testing to upscale a 128x128 to 4096x4096 (x32) \
     * min: 32 \
     *  \
     * 2.6  GB | 400 \
     * 4.2  GB | 500 \
     * 7.0  GB | 600 \
     * 8.6  GB | 700 \
     * 11.4 GB | 800 \
     * 13.6 GB | 900 \
     * 16.3 GB | 1000 
     */
    ramLimit: 500,
    outputAsBuffer: false
}

Waifu2X.upscale(input, output, options);

Wait the end

const Waifu2X = require('@ibaraki-douji/waifu2x')
const upscale = Waifu2X.upscale(input, output, options);

upscale.finishedPromise().then(() => {
    console.log("Finished")
})

Get Buffer at End

const Waifu2X = require('@ibaraki-douji/waifu2x')
const upscale = Waifu2X.upscale(input, output, options);

upscale.finishedPromise().then(() => {
    writeFileSync("./buffer.png", upscale.endBuffer);
})

List yours GPUs

const Waifu2X = require('@ibaraki-douji/waifu2x')
Waifu2x.listGPUs().then(console.log)

Exemple

const Waifu2X = require('@ibaraki-douji/waifu2x')
// npm i axios
const axios = require('axios').default

// MAKE A ASYNC FUNCTION AT START
(async () => {
    const upscale = Waifu2X.upscale((await axios.get('https://cdn.discordapp.com/attachments/770019121349001227/874597329594892338/in.png')).data, "./output.png", {
        upscale: 2,
        noise: 0
    });
    await upscale.finishedPromise()
    console.log("Finished");
})()

More Help and Support

Discord : https://discord.gg/mD9c4zP4Er

Ask me what you want in the Discord server