If you're using bundler *(such as rollup, webpack, esbuild)* to package your client application, you can import ESM version of `Human` which supports full tree shaking
```js
import human from 'dist/human.esm.js';
```
#### 2.2 Using Script Module
You could use same syntax within your main `JS` file if it's imported with `<script type="module">`
```html
<scriptsrc="./index.js"type="module">
```
and then in your `index.js`
```js
import human from 'dist/human.esm.js';
```
### 3. NPM module
Simmilar to ESM module, but with full sources as it points to `build/src/index.js` instead
`Human` library does not require special initialization.
All configuration is done in a single JSON object and all model weights will be dynamically loaded upon their first usage(and only then, `Human` will not load weights that it doesn't need according to configuration).
There is only *ONE* method you need:
```js
import * as tf from '@tensorflow/tfjs';
import human from '@vladmandic/human';
// 'image': can be of any type of an image object: HTMLImage, HTMLVideo, HTMLMedia, Canvas, Tensor4D
// 'options': optional parameter used to override any options present in default configuration
-`enabled`: controls if specified modul is enabled (note: module is not loaded until it is required)
-`modelPath`: path to specific pre-trained model weights
-`maxFaces`, `maxDetections`: how many faces or people are we trying to analyze. limiting number in busy scenes will result in higher performance
-`skipFrames`: how many frames to skip before re-running bounding box detection (e.g., face position does not move fast within a video, so it's ok to use previously detected face position and just run face geometry analysis)
-`minConfidence`: threshold for discarding a prediction
-`iouThreshold`: threshold for deciding whether boxes overlap too much in non-maximum suppression
-`scoreThreshold`: threshold for deciding when to remove boxes based on score in non-maximum suppression
-`nmsRadius`: radius for deciding points are too close in non-maximum suppression