nsfwjs-patched
Version:
Detect NSFW content client-side with fixes of buffer and latest packages
49 lines (48 loc) • 1.6 kB
TypeScript
import * as tf from "@tensorflow/tfjs";
import { NSFW_CLASSES } from "./nsfw_classes";
declare global {
namespace NodeJS {
interface Global {
[x: string]: any;
}
}
interface Window {
[x: string]: any;
}
}
type IOHandler = tf.io.IOHandler;
export type FrameResult = {
index: number;
totalFrames: number;
predictions: Array<PredictionType>;
image: HTMLCanvasElement | ImageData;
};
export type ClassifyConfig = {
topk?: number;
fps?: number;
onFrame?: (result: FrameResult) => any;
};
interface NSFWJSOptions {
size?: number;
type?: string;
}
export type PredictionType = {
className: (typeof NSFW_CLASSES)[keyof typeof NSFW_CLASSES];
probability: number;
};
export type ModelName = "MobileNetV2" | "MobileNetV2Mid" | "InceptionV3";
export declare function load(modelOrUrl?: ModelName): Promise<NSFWJS>;
export declare function load(modelOrUrl?: string, options?: NSFWJSOptions): Promise<NSFWJS>;
export declare class NSFWJS {
endpoints: string[];
model: tf.LayersModel | tf.GraphModel;
private options;
private urlOrIOHandler;
private intermediateModels;
private normalizationOffset;
constructor(modelUrlOrIOHandler: 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>>;
}
export {};