@yareyaredesuyo/tfjs-models

0.0.1 • Public • Published

tfjs-models

Some tfjs models for frontend ml dev purpose.

progan

Progressive GAN trained on CelebA for 128x128 images.

model

https://tfhub.dev/google/progan-128/1

convert

tensorflowjs_converter \
    --input_format=tf_hub \
    'https://tfhub.dev/google/progan-128/1' \
    ./progan

usage

import * as tf from "@tensorflow/tfjs-node";
import { Tensor3D } from "@tensorflow/tfjs-node";

const fs = require('fs');
const handler = tf.io.fileSystem("./model/progan/model.json");

async function main() {
  const model = await tf.loadGraphModel(handler);
  const res = model.predict(tf.randomNormal([1, 512])) as tf.Tensor;

  let outputTensor = tf.squeeze(res, [0]) as tf.Tensor<tf.Rank>;

  outputTensor = outputTensor.mul(255);
  outputTensor = tf.clipByValue(outputTensor, 0, 255);

  const outputImage = await tf.node.encodeJpeg(outputTensor as Tensor3D);
  fs.writeFileSync('gan.jpeg', outputImage); 
}

main();

esrgan

Enhanced Super Resolution GAN (Wang et. al.)[1] for image super resolution. Produces x4 Super Resolution Image from images of {Height, Width} >=64. Works best on Bicubically downsampled images.\ (This is because, the model is originally trained on Bicubically Downsampled DIV2K Dataset)

model

https://tfhub.dev/captain-pool/esrgan-tf2/1

convert

mkdir ersgan_saved_model ersgan
cd ersgan_saved_model
wget https://storage.googleapis.com/tfhub-modules/captain-pool/esrgan-tf2/1.tar.gz
tar zxvf 1.tar.gz
cd ../

tensorflowjs_converter \
    --input_format=tf_saved_model \
    /ersgan_saved_model/saved_model.pb \
    /ersgan

usage

import * as tf from "@tensorflow/tfjs-node";
import { Tensor3D } from "@tensorflow/tfjs-node";

const fs = require('fs');
const handler = tf.io.fileSystem("./model/esrgan/model.json");

async function main() {
  const model = await tf.loadGraphModel(handler);

  let img = fs.readFileSync(process.argv[2] || "chin.png");
  const im = tf.node.decodeJpeg(img).toFloat().expandDims();
  const res = model.predict(im) as tf.Tensor;;

  let outputTensor = tf.squeeze(res, [0]) as tf.Tensor<tf.Rank>;

  const outputImage = await tf.node.encodeJpeg(outputTensor as Tensor3D);
  fs.writeFileSync('esrgan.jpeg', outputImage); 
}

main();

Readme

Keywords

none

Package Sidebar

Install

npm i @yareyaredesuyo/tfjs-models

Weekly Downloads

21

Version

0.0.1

License

ISC

Unpacked Size

111 MB

Total Files

31

Last publish

Collaborators

  • yareyaredesuyo