faceplusplus-sdk
v1.2.0
Published
A JavaScript SDK / API client for common FPP APIs
Downloads
9
Maintainers
Readme
FacePlusPlus API client
A JavaScript SDK / API client for common FPP APIs, for example:
Usage
npm i faceplusplus-sdk
import { bHumanBodyDetectAPI } from "faceplusplus-sdk";
...
const result = await bHumanBodyDetectAPI({
return_attributes: 'gender,upper_body_cloth,lower_body_cloth',
image_file: '~/myimage.jpg', // see image_file note below!
})
Auth credentials
REQUIRED!
You can make a free account to get your API key and secret.
If credentials are not set correctly, the api client will throw an Error.
Option 1: creds-fpp.json
Create a creds-fpp.json
file in the app's process.cwd()
(root):
{
"api_key": "...",
"api_secret": "..."
}
Option 2: configCreds
Import configCreds
function to set your auth credentials:
import { configCreds } from "faceplusplus-sdk";
...
configCreds({
api_key: "...",
api_secret: "..."
});
QPS rate throttle
OPTIONAL!
You can configure a basic throttle to help maintain the QPS rate limits of your account. Import configQPS
function to set your throttle delay times:
import { configQPS } from "faceplusplus-sdk";
...
configQPS({
beforeCallDelaySeconds: 0, // default
afterCallDelaySeconds: 0, // default
});
beforeCallDelaySeconds
: Before the API call is made, start this timer delay.- Effective timer delay:
beforeCallDelaySeconds
-API_CALL_DURATION
- Effective timer delay:
afterCallDelaySeconds
: After the API call is made, start this timer delay.- Effective timer delay:
afterCallDelaySeconds
+API_CALL_DURATION
- Effective timer delay:
Note: API call will only return when all timers have expired.
APIs
- bHumanBodyDetectAPI:
- image_file
- return_attributes
- bHumanBodySegmentAPI:
- image_file
- return_grayscale
response:
.body_image
(A base64 encoded ~~JPG~~ PNG image)
- fCompareAPI:
- image_file1
- image_file2
- fDenseFacialLandmarkAPI:
- face_token
- image_file
- return_landmark
- fDetectAPI:
- image_file
- return_landmark
- return_attributes
- fFaceAnalyzeAPI:
- face_tokens
- return_landmark
- return_attributes
- fSkinAnalyzeAPI:
- image_file
- iMergeFaceAPI:
- template_file
- template_url
- merge_file
- merge_url
- merge_rate
response:
.result
(A base64 encoded JPG image, size of template image)
More info about face_token.
Input image files, eg. for image_file
, etc
Please use the peer dependency formdata-node
/ file-from-path
, for example:
import { anyAPIExample } from "faceplusplus-sdk";
import { fileFromPath } from "formdata-node/file-from-path";
...
const r = await anyAPIExample({
image_file: await fileFromPath(pathToImageFile),
});
Tip: How to write a base64 image result to a file (NodeJS)
A simple example:
import fs from "fs";
function saveB64ImageToFile(base64Data, filepath) {
const buffer = Buffer.from(base64Data, "base64");
fs.writeFileSync(filepath, buffer);
}
CLI scripts
If you git clone
this repo, there are npm scripts you can run that provide a command line interface to the library API client. See package.json
for a list of scripts available.
Notebooks
If you git clone
this repo, there are VS restbook notebooks you can run that provide a GUI to the API raw endpoints. See /notebooks
for a list of available restbooks.