AI Runner can be compiled with pyinstaller
however the current version
is not yet stable (check the releases for stable versions).
Version 3.0 is a major upgrade which aims to move the application out of prototype stage and into a more stable and user-friendly state.
It comes with a new UI, new features, and a more robust codebase, security updates, and a more streamlined installation process and much more.
We plan to release future distributions via Snap on Linux.
See Privacy and Security
for more information.
AI Runner is a multi-modal AI interface which allows you to run open-source large language models and AI image generators on your own hardware.
Feature | Description |
---|---|
π£οΈ LLMs and communication | |
β Voice-based chatbot conversations | Have conversations with a chatbot using your voice |
β Text-to-speech | Convert text to spoken audio |
β Speech-to-text | Convert spoken audio to text |
β Vision-to-text | Extract text from images |
β Text generation with LLMs | Generate text using large language models |
β RAG on local documents and websites | Interact with your local documents using an LLM |
π¨ Image Generation | |
β Stable Diffusion (all versions) | Generate images using Stable Diffusion |
π Kandinsky | Generate images using Kandinsky |
β Near Real-Time Drawing | Draw and generate images in near real-time |
β Text to Image (aka TextToImage / Txt2Img) | Generate images from textual descriptions |
β Image to Image (aka ImageToImage / Image2Image) | Generate images based on input images |
πΌοΈ Image Manipulation | |
β Inpaint and Outpaint | Modify parts of an image while maintaining context |
β Pix2Pix | Transform images from one domain to another |
β Depth to Image (aka DepthToImage / Depth2Img) | Generate images from depth maps |
β Controlnet | Control image generation with additional input |
β LoRA | Efficiently fine-tune models with LoRA |
β Textual Embeddings | Use textual embeddings for image generation control |
π Upscale with GFPGAN | Use textual embeddings for image generation control |
π§ Utility | |
β Run offline, locally | Run on your own hardware without internet |
β Fast generation | Generate images in ~2 seconds (RTX 2080s) |
β Run multiple models at once | Utilize multiple models simultaneously |
β Drawing tools | Built-in tools for drawing and image manipulation |
β Image filters | Apply various filters to images |
β Dark mode | Comfortable viewing experience in low-light environments |
β Infinite scrolling canvas | Seamlessly scroll through generated images |
β NSFW filter toggle | Help control the visibility of NSFW content |
β NSFW guardrails | Help prevent generation of harmful content |
β Standard Stable Diffusion settings | Easily adjust standard Stable Diffusion parameters |
β Fast load time, responsive interface | Enjoy a smooth and responsive user experience |
β Pure python | No reliance on a webserver, pure python implementation |
- Cuda capable GPU
- 6gb of RAM
- 6gb of disc space to install AI Runner
- RTX 2080s or higher
- 32gb of RAM
- 100gb disc space
- Open your file explorer and navigate to the directory containing the
install.sh
script - Open the terminal using the keyboard shortcut
Ctrl Alt T
- Drag the
install.sh
script into the terminal and pressEnter
- Follow the on-screen instructions
- Open the terminal using the keyboard shortcut
Ctrl Alt T
- Navigate to the directory containing the
run.sh
script (cd ~/airunner
for example) - Run the
bin/run.sh
script by typing./bin/run.sh
and pressingEnter
- AI Runner will start and you can begin using it after following the on-screen setup instructions
Instructions on how to use AI Runner can be found in the wiki
Clone this repository
git clone https://github.com/Capsize-Games/airunner.git
cd airunner
pip install -e .
pip install pyinstaller
bash build.dev.sh
Although AI Runner v3.0 is built with Huggingface libraries, we have taken care to strip the application of any telemetry or tracking features.
The main application itself is unable to access the internet, and we are working towards properly sandboxing certain features to ensure user privacy and security.
As this application evolves we will migrate away from the Huggingface libraries.
The core application is incapable of accessing the internet. However there are two features which require
internet access. These two features are the setup wizard
and the model manager
.
Each of these tools are isolated in their own application windows which are capable of directly accessing and downloading files on Huggingface.co and civitai.com (depending on the given URL). Any other URL will be blocked.
The Huggingface Hub library is not used to access these downloads.
For more information see the Darklock and Facehuggershield libraries.
Write access for the transformers library has been disabled, preventing it from creating a huggingface cache directory at runtime.
The application itself may still access the disc for reading and writing, however we have restricted
reads and writes to the user provided airunner
directory (by default this is located at ~/.airunner
).
All other attempts to access the disc are blocked and logged for your review.
For more information see src/security/restrict_os_access.py
.
The Huggingface Hub is installed so that Transformers, Diffusers and other Huggingface libraries will continue to function as expected, however it has been neutered to prevent it from accessing the internet.
The security measures taken for this library are as follows
- Prevented from accessing the internet
- Prevented from accessing the disc
- All environment variables set for maximum security
- All telemetry disabled
See Facehuggershield for more information.
We plant o remove the Huggingface libraries from the application in the future. Although the architecture is currently dependent on these libraries, we will migrate to a better solution in the future.
To profile various functions in an effort to improve performance, you can install line_profiler
pip install line_profiler
To profile a function, add the @profile
decorator to the function you wish to profile.
Then run the following command:
kernprof -l -v main.py
To view the results after
python display_profile_data.py