MiniPrem

35min

UneeQ's Platform 2.0 update allows customers to install the UneeQ Digital Human Renderer (aka "Renny") on any compatible system. For most customers, MiniPrem (short for miniature on premise) is used on a single desktop or laptop equipped with a compatible graphics card capable of running the image.

Prerequisites

  • Ubuntu 24.04 system with root access
  • CPU:
    • High end Intel 14th generation / AMD Zen 5 or newer
    • Cores: 8 or more
  • RAM: 32GB or more
  • NVMe SSD:
    • Size: 256GB or more
    • Speed: PCIe 4.0 or better
  • NVIDIA RTX GPU
    • NVIDIA GeForce RTX 4080 / 6000 Ada or better
    • GPU Memory: 16GB or better
    • Driver Version: 535.183.01 (or later compatible version)
    • CUDA Version: 12.2 (or later compatible version)
  • Google Chrome version 124 or newer

Step 1: P2 Portal Access & Setup

  1. Navigate to P2 Portal
  2. Complete the Sign Up process
    1. If you have received a direct invitation, but it is your first time accessing the P2 Portal, you still must complete the Sign Up process to set your authentication information.
  3. Log in to access your dashboard
  4. Create a Tenant within your environment or select one of the existing tenants
  5. Check the box Private Rendering Pool and then click Save

    Document image
    
  6. Click the pencil icon for the tenant you've just created and create an API key
    1. Copy the API key to a safe place, it will not be displayed again

Step 2: Download & Installation

The MiniPrem installer includes functionality to do the following:

  • Checks to make sure the machine meets some minimum hardware specs
  • Checks to make sure the Nvidia graphics drivers are installed and are operational
  • Checks to make sure Google Chrome is installed and its version is sufficient
  • Installs any software packages it needs either for the installer itself to run, or for MiniPrem to operate
    • this includes installing Docker and the Nvidia container toolkit (so GPU enabled containers can be run). It also performs a check after installing these to ensure they are operational
  • Pulling the required docker images for the renderer and audio2face
  • Takes configuration specified by the user (described below) and fills out required config files

Steps for running the installer:

  1. Download the MiniPrem installer package:
  1. Extract and navigate to directory:
unzip miniprem_v1.08_039c9c8.zip cd miniprem_v1.08_039c9c8

Run the installation script (please note this can take a bit of time as it has to install many packages and pull some large docker images):

./install_miniprem.sh

Step 3: Configuration Details

During installation, you'll need to provide at least one TTS provider, either Azure or Eleven labs. Here is a list of everything the installer will request:

Signaling Server

  • Leave as default

API Key & Tenant ID

  • Located in P2 dashboard - click the pencil icon on the tenant you've created previously to retrieve the TenantID
  • Click '+' to generate new API key (if you did not already in the step above)
  • Copy and paste into the shell when prompted

Azure Configuration

  • Provide your Azure Region
  • Provide your Azure API key

Eleven Labs Configuration

  • Provide your Eleven Labs API key

Renny Image Configuration

Use: facemeproduction/renny:0.289-fd8a9

Docker Hub Authentication

UneeQ will provide temporary authentication information for Docker Hub where the image will be pulled from. Contact your delivery specialist for details.

Step 4: Starting the containers

Having successfully completed the installation process the MiniPrem services can be started using the miniprem.sh script:

./miniprem.sh start

Similarly to stop the services use the following command:

./miniprem.sh stop

Step 5: Verification

  1. Check container status:
docker ps
  1. Verify in P2 Portal:
  • Confirm renderer availability - you will see within the tenant where you've registered renderers: Available Rendering Capacity: 1
  • Create new Persona
  • Click "Start"
  • Use default configuration
  • Click "Launch"
  • From within the running session, you will be able to send speak commands to the digital human and they will repeat this text back to you. This confirms both rendering and the text-to-speech services are fully operational.

Next Steps

Integration your conversation layer with your digital human. Please see Conversation Platform Integration for details

Debugging

During installation the installer script creates a log of everything it does for reference later (or providing to your delivery specialist for diagnosing issues). The latest log is stored in the root directory in a file called install_miniprem.log. Older logs are stored (moved there) in the logs directory using filenames including the date and time.

If you have issues running the renderer application or starting sessions you can inspect the logs using the following command:

docker compose logs -f renny

You should also obtain the javascript console logs for the session if applicable.

Framerate issues

In the case of framerate issues one simple thing to check is to run top and inspect CPU and memory usage. Additionally, while a session is running run nvidia-smi and inspect GPU memory and GPU utilisation metrics.

Additional Troubleshooting

Remote access

Consider installing either AnyDesk or Teamviewer so the customer can provide remote access to one of our delivery specialists should the need arise

If the Digital Human starts but does not respond

cd inside the docker directory.

Verify the contents (cat, nano, vim) of configuration.dat:

{ "Server": "prod-global", "TenantId": "3f3122-5555-5555-o5o5o-99aEXAMPLE7823", "JWSSecret": "MM99EXAMPLEXi3N/CZ3r3h32EXAMPLEq9iydXFKwuNNUwW0g9vmDRBxQ2c3kO0C9M/" }

The TenantID is available from the UneeQ admin portal. The JWSSecret is their API Key. Verify by acccessing a customer account and before clicking on any tenant name, click the pencil/edit icon to the right of a tenant:

Edit Tenant
Edit Tenant


Verify the Tenant ID matches in configuration.dat:

Tenant ID
Tenant ID


The JWSSecret is the API key which you can verify on the same admin page, by scrolling to the Security section:

API Keys
API Keys


If the Digital Human does not start at all / Audio2Face errors

Nvidia / Audio2Face Troubleshooting

When starting MiniPrem, if you see an error related audio2face:

Container audio2face_with_emotion Error

There could be an issue with the GPU card or driver.

Check Card and Driver Status

Verify card is physically installed:

lspci | grep -i nvidia

Check if drivers are installed

dpkg -l | grep nvidia-driver
lsmod | grep nvidia

If no output, no NVIDIA modules are loaded. Check if drivers are working

nvidia-smi

A typical nvidia-smi output should look like this:

Copy+-----------------------------------------------------------------------------+| NVIDIA-SMI 545.XX.XX Driver Version: 545.XX.XX CUDA Version: 12.X | +-----------------------------------------------------------------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A | | 30% 45C P8 16W / 200W| 456MiB / 8192MiB | 2% Default | | | | N/A | +-----------------------------------------------------------------------------+

Key things to look for:

  • Driver Version (top line)
  • GPU Name

If you get a command not found error, it means the NVIDIA drivers aren't installed. If you get "NVIDIA-SMI has failed" error, it usually means either:

  1. The drivers aren't properly loaded
  2. There's a conflict with Secure Boot
  3. The drivers aren't compatible with your current kernel

(Re)Install Nvidia Drivers

Update Ubuntu Linux first and then install latest available NVIDIA driver.

sudo apt update sudo apt install nvidia-driver

Before rebooting, verify loading the NVIDIA drivers manually:

sudo modprobe nvidia

If you see this specific message:

ERROR: could not insert 'nvidia': Key was rejected by service

The issue is that the system is rejecting the NVIDIA module, likely due to Secure Boot / UEFI being enabled. The BIOS must be accessed upon restarting (via DEL or F12 or similar during boot to access the BIOS) to disable Secure Boot. While typically drivers from NVIDIA are digitally signed from official Ubuntu repositories, sometimes an update or a change to the kernel might cause GPU drivers not to load.

Document image


Once Secure Boot is disabled, you should be able to verify again if NVIDIA drivers are loaded:

lsmod | grep nvidia

If no output, no NVIDIA modules are loaded.

Updating Renny

Edit docker/docker-compose.yml:

facemeproduction/renny:0.xxx-xxxxx

Note: Keep the colon (:) between renny and the tag

Stop & Update containers:

docker compose down docker compose pull

Note: This process can take several minutes to download.

Verify installation:

docker images

Should show both old and new Renny versions

Start containers:

docker compose up -d

You should see 3 containers starting, eventually all saying Healthy.

If the digital human loads but isn't speaking

Get container info:

docker ps # Note the Container ID for Renny

Check logs:

Replace [CONTAINER_ID] with Renny's container ID

docker logs -f [CONTAINER_ID]

Search logs for "TTS" to check text-to-speech related issues. Review 5 lines before and after any TTS mentions