> ## Documentation Index
> Fetch the complete documentation index at: https://docs.talking-avatar.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Self-host the model

> Serve the 1 MB lip-sync model from your own site instead of jsDelivr.

`viseme-model.bin` (1 MB) ships in the package. By default it loads from jsDelivr, pinned to the installed version, and the browser caches it. For production, serving it yourself removes the third-party dependency.

**Vite**

```js theme={null}
import modelUrl from "@interviewflowai/talking-avatar/viseme-model.bin?url";

new TalkingAvatar({ container, avatarUrl, modelUrl });
```

**Anything else**

Copy the model into your static files, for example at build time:

```bash theme={null}
mkdir -p public/sdk
cp node_modules/@interviewflowai/talking-avatar/dist/viseme-model.bin public/sdk/
```

Then pass its URL:

```js theme={null}
new TalkingAvatar({ container, avatarUrl, modelUrl: "/sdk/viseme-model.bin" });
```

In React, pass `modelUrl` to `<TalkingAvatarView>`. It's read when the component mounts.

> [!NOTE]
>
> Copy the model again whenever you upgrade the package, so the model always matches the SDK version. Adding the copy to your `dev` and `build` scripts does this for you.

`DEFAULT_MODEL_URL`, exported from the package, is the jsDelivr URL of this version's model.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.