waifu-generator
Write random anime girl pictures on file system, using Nodejs, thanks to thiswaifudoesnotexist.net
Usecase ?
You need to generate random pictures files for testing purposes, but js-image-generator is definitely too efficient and boring for the job?
Look no further! TheRealBarenziah(tm) brings you this StyleGAN2-empowered*,industrial grade, uwu-compliant, yet unlicensed module!
Compatibility
node >= 8 (we're using fs and promises)
Use
npm i --save-dev waifu-generator
Case 1 : default (no option object)
In your generate.js
file :
const generateWaifu = require("waifu-generator");
generateWaifu()
.then(res => console.log(res))
.catch(e => console.error(e))
Back in terminal (for the example):
node ./generate.js
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=
Case 2 : providing an option object
In your generate.js
file :
const generateWaifu = require("waifu-generator");
const options = {
filename: "sugoi_kawaii",
path: "./__TESTS__/images"
}
generateWaifu(options);
Back in terminal:
node ./generate.js
NB: options
object is facultative; options.filename
and options.path
default to null, while options.skipFs
default to false.
You can pass a single option: providing a filename
but no path
, the path
will default to root.
Providing a valid path
but no filename
, filename
will be generated using standard pattern.
Case 2.5: skip the fs call
Sometimes, you don't want your tests doing I/O operations (mainly, when needing performance). In that case, you can chose to skip the call to filesystem entierely, leaving you to work with pure base64 strings, ready to be allocated.
Barebone example:
const generateWaifu = require("waifu-generator");
const yourCustomFunc = async () => {
this.base64waifu = "";
await generateWaifu({ skipFs: true })
.then(res => this.base64waifu = res)
.catch(e => e)
const output = this.base64waifu.toString().toString().toString();
console.log(output);
return output;
};
yourCustomFunc();
NB: Activating skipFs
will (indeed) make the other options irrelevant !
Clean your mess
This unbloated module doesn't support file deletion. To do that, it's your responsibility, as a developer, to chose the correct approach between using the awesome fs API, using higher level libs, or going for OS level operation.
Of course you're also free to skip the hassle by using the skipFs
parameter !
Take advantage of this module being unlicensed: please fork away and write the best solution for your specific need :)
BTW
Please don't read this seriously. This JavaScript does little more than exploiting the awesome work that was done on thiswaifudoesnotexist, so please pay them a visit and click their footer links :)