@nsfw-filter/nsfwjs
Version:
Detect NSFW content client side
42 lines (41 loc) • 1.36 kB
TypeScript
/// <reference types="node" />
import * as tf from "@tensorflow/tfjs";
export declare type frameResult = {
index: number;
totalFrames: number;
predictions: Array<predictionType>;
image: HTMLCanvasElement | ImageData;
};
export declare type classifyConfig = {
topk?: number;
fps?: number;
onFrame?: <T>(result: frameResult) => T;
};
interface nsfwjsOptions {
size?: number;
type?: string;
}
export declare type predictionType = {
className: string;
probability: number;
};
export declare function load(base?: string, options?: {
size: number;
}): Promise<NSFWJS>;
interface IOHandler {
load: () => any;
}
export declare class NSFWJS {
endpoints: string[];
private options;
private pathOrIOHandler;
private model;
private intermediateModels;
private normalizationOffset;
constructor(modelPathBaseOrIOHandler: string | IOHandler, options: nsfwjsOptions);
load(): Promise<void>;
infer(img: tf.Tensor3D | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, endpoint?: string): tf.Tensor;
classify(img: tf.Tensor3D | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, topk?: number): Promise<Array<predictionType>>;
classifyGif(gif: HTMLImageElement | Buffer, config?: classifyConfig): Promise<Array<Array<predictionType>>>;
}
export {};