faceapp.js
is an unofficial reverse-engineering of the mobile clients and the servers they interact with. This means that it is subject to any of their limitations.
This includes their rate limits. I will not attempt to bypass this as that would break their terms of service, please stop asking ❤.
USE AT YOUR OWN RISK.
NOTE: These are just an estimation based on my own testing.
The FaceApp servers only accept 100 requests in a 10 minute window. Because process()
uses two API calls, you can only use process()
50 times during that 10 minute window.
The package is on the NPM registry as faceapp
. Simply install it with your NPM client of choice.
First, import the module:
const faceapp = require('faceapp')
The process()
function takes two parameters:
path: string | file: Buffer
- Path to the image file you would like to process. Or a Buffer object representing an image.filterID: string
- FaceApp Filter ID
// Import the module
const faceapp = require('faceapp')
// Process the image (filepath)
let image = await faceapp.process('path/to/image.png', 'smile_2')
// Process the image (buffer)
// First we have to get a buffer
let { body } = await superagent.get('http://example.com/image.png')
let image = await faceapp.process(body, 'hot')
There is a CLI available. Install the package globally using npm i -g faceapp
and then run faceapp
to access the CLI.
Known Filters: | ||||
---|---|---|---|---|
no-filter |
smile |
smile_2 |
hot |
old |
young |
female_2 |
female |
male |
pan |
hitman |
hollywood |
heisenberg |
impression |
lion |
goatee |
hipster |
bangs |
glasses |
wave |
makeup |
However, you can get an up-to-date list of all available filter IDs from the API directly using the listFilters
function.
let filters = await faceapp.listFilters()
// Returns an array of Filter objects
let filters = await faceapp.listFilters(true)
// Returns an array filter ID strings