Skip to content

Installation instructions

w4ffl35 edited this page Oct 13, 2024 · 47 revisions

💿 Packaged installation (recommended)

Download the official build from itch.io or by using the itch.io app which will allow you to easily update AI Runner, keep up with the devlogs and more.

Itch.io app

Use the itch.io launcher which will automatically check for updates.

image


💻 Development installation

There are two ways to install and use AI Runner for development purposes.

📦 Source and PyPi

All of the following methods assume you are running on a Linux machine. The windows build is handled with Wine.

Install prerequisites

sudo apt update
sudo apt install -y fonts-noto-color-emoji
sudo apt install -y libportaudio2
sudo apt install -y libxcb-cursor0
sudo apt install -y espeak
sudo apt install -y xclip
sudo apt install -y git
sudo apt install -y python3-pip
sudo apt install -y python3.10-venv

PyPi Installation

pip install airunner

Run AI Runner

airunner

Source Installation

Clone and checkout the latest version of AI Runner

git clone -b develop https://github.com/Capsize-Games/airunner.git
cd airunner && pip install -e .

Run AI Runner

cd src/airunner
python main.py

🐳 Packaging with Docker

Current builds of AI Runner are compiled with pyinstaller on docker.

Linux

Pull Docker container from repo

Linux

docker pull ghcr.io/capsize-games/airunner/airunner:linux

Build Docker

docker-compose -f docker-compose.yml build

Push latest docker image to Github (admin only)

docker tag ghcr.io/capsize-games/airunner/airunner:linux ghcr.io/capsize-games/airunner/airunner:linux
docker push ghcr.io/capsize-games/airunner/airunner:linux

Build latest version of AI Runner using Docker locally - this will output a build and dist folder on your machine.

Linux

docker run -it --privileged \
    -e DEV_ENV=0 \
    -e AIRUNNER_ENVIRONMENT=prod \
    -e AIRUNNER_OS=linux \
    -e PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512 \
    -e NUMBA_CACHE_DIR=/tmp/numba_cache \
    -e DISABLE_TELEMETRY=1 \
    -e TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
    -e TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
    -v $(pwd)/build:/app/build \
    -v $(pwd)/dist:/app/dist \
    --user root \
    ghcr.io/capsize-games/airunner/airunner:linux \
    bash -c "mkdir -p /app/build /app/dist && chmod -R 777 /app/build /app/dist && su appuser -c 'cd /app && bash build.sh'"

Run the build

./dist/airunner/airunner

Windows

Pull Docker container from repo

docker pull ghcr.io/capsize-games/airunner/airunner:windows

Build Docker

docker-compose -f docker-compose.windows.yml build

Push latest docker image to Github (admin only)

docker tag ghcr.io/capsize-games/airunner/airunner:windows ghcr.io/capsize-games/airunner/airunner:windows
docker push ghcr.io/capsize-games/airunner/airunner:windows

Build latest version of AI Runner using Docker locally - this will output a build and dist folder on your machine.

docker run -it \
    -e DEV_ENV=0 \
    -e AIRUNNER_ENVIRONMENT=prod \
    -e AIRUNNER_OS=windows \
    -e PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512 \
    -e NUMBA_CACHE_DIR=/tmp/numba_cache \
    -e DISABLE_TELEMETRY=1 \
    -v %cd%/build:/app/build \
    -v %cd%/dist:/app/dist \
    ghcr.io/capsize-games/airunner/airunner:windows \
    wine64 build.windows.cmd

Expected warning messages

When you run AI Runner, you should expect to see the following messages displayed in the terminal

Activating facehugger shield...
Setting Hugging Face environment variables
INFO:defendatron:Activating defendatron
INFO:defendatron:Activating shadowlogger
Write attempt: 1
Write attempt from: /usr/lib/python3.10/tempfile.py
File system operations are not allowed. Attempted to create directory: ('~/.airunner/huggingface/hub',)
There was a problem when trying to write in your cache folder (~/.airunner/huggingface/hub). You should set the environment variable TRANSFORMERS_CACHE to a writable directory.

Nothing has gone wrong.

Facehuggershield is a configuration library for Defendatron which is a wrapper library for several security based libraries. (its libraries all the way down). This suit of libraries removes the ability for huggingface libraries to access the internet, restricts disc access and more. The subsequent warning messages come from those Huggingface libraries which are complaining that they have lost this access.