biniou is a self-hosted webui for several kinds of GenAI (generative artificial intelligence). You can generate multimedia contents with AI and use a chatbot on your own computer, even without dedicated GPU and starting from 8GB RAM. Can work offline (once deployed and required models downloaded).
GNU/Linux [ OpenSUSE base | RHEL base | Debian base ] • Windows • macOS Intel (experimental) • Docker
Documentation ❓ | Showroom 🖼️
-
🆕 2024-11-09 : 🔥 This week's updates 🔥 >
- Add support for Chatbot models bartowski/SmolLM2-1.7B-Instruct-GGUF, bartowski/cybertron-v4-qw7B-MGS-GGUF and bartowski/OpenChat-3.5-0106_32K-PoSE-GGUF.
- Update of Chatbot model Llama-3.2-3B-Instruct-GGUF to bartowski/Llama-3.2-3B-Instruct-uncensored-GGUF.
- Add support for a lot of Flux LoRA models. Most remarkable one is the fast LoRA model Lingyuzhou/Hyper_Flux.1_Dev_4_step_Lora, that allow inferences in 4 steps. Definitely worth the try if you're using Flux.
- Add support for Flux and Flux LoRA models for img2img module.
- Add support for SD 3.5 Medium LoRA models for Stable Diffusion and img2img module.
- Add categories to Flux LoRA models.
- Bugfixes for docker when used with multiple hard drives and fixing issues in img2img module settings.
-
🆕 2024-11-02 : 🔥 This week's updates 🔥 >
- Add support for SD 3.5 models ariG23498/sd-3.5-merged and adamo1139/stable-diffusion-3.5-medium-ungated to Stable Diffusion and img2img modules.
- Add support for Chatbot model bartowski/granite-3.0-8b-instruct-GGUF.
- Add support for Flux LoRA models dvyio/flux-lora-seventies-photograph, Bootoshi/retroanime, XLabs-AI/flux-RealismLora and prithivMLmods/Ton618-Tarot-Cards-Flux-LoRA (this last one gives awesome results !).
- Add support for SD 3.5 LoRA Models alvarobartt/ghibli-characters-sd3.5-lora, reverentelusarca/ancient-style-sd35 and Wadaka/NewYorkerComic_Style.
- Add support for SD 3.5 models to img2img module.
-
🆕 2024-10-26 : 🔥 This week's updates 🔥 >
- As previously announced, Flux model Freepik/flux.1-lite-8B-alpha and SD 3.5 model adamo1139/stable-diffusion-3.5-large-turbo-ungated are now supported by Stable Diffusion module. Support will be extended to all eligible modules. Also add support for LoRAs on these models.
- Add support for SDXL model dataautogpt3/Proteus-v0.6 to all Stable Diffusion-based modules.
- Add support for Chatbot models anthracite-org/magnum-v4-9b-gguf and bartowski/Ministral-8B-Instruct-2410-GGUF.
- Add support for SDXL LoRA model KappaNeuro/moebius-jean-giraud-style.
-
🆕 2024-10-25 : 🔥 Support for Freepik/flux.1-lite-8B-alpha 🔥 > Finally ! biniou is now supporting a Flux model \o/ !!! Like SD 3.5, it will require a lot of RAM (64GB) for CPU-only inference, and would be incredibly slow, but gives awesome results. Support of LoRA models for Flux is also added by this update, and I definitely recommend to use the 8-steps HyperSD LoRA model to accelerate your inferences.
-
🆕 2024-10-24 : 🔥 Support for StableDiffusion-3.5-Large-Turbo 🔥 > The last update add support for the latest family of Stable Diffusion models : 3.5 Large. Only the turbo flavor is currently supported. Please note that this monster will require at least 64GB RAM for CPU-only inference, and would be very slow, but highly qualitative. Next update should (finally) bring support for Flux ! 😀
• Features
• Prerequisites
• Installation
GNU/Linux
OpenSUSE Leap 15.5 / OpenSUSE Tumbleweed
Rocky 9.3 / Alma 9.3 / CentOS Stream 9 / Fedora 39
Debian 12 / Ubuntu 22.04.3 / Ubuntu 24.04 / Linux Mint 21.2
Windows 10 / Windows 11
macOS Intel Homebrew install
Dockerfile
• CUDA support
• How To Use
• Good to know
• Credits
• License
-
Text generation using :
- ✍️ llama-cpp based chatbot module (uses .gguf models)
- 👁️ Llava multimodal chatbot module (uses .gguf models)
- 👁️ Microsoft GIT image captioning module
- 👂 Whisper speech-to-text module
- 👥 nllb translation module (200 languages)
- 📝 Prompt generator (require 16GB+ RAM for ChatGPT output type)
-
Image generation and modification using :
- 🖼️ Stable Diffusion module
- 🖼️ Kandinsky module (require 16GB+ RAM)
- 🖼️ Latent Consistency Models module
- 🖼️ Midjourney-mini module
- 🖼️PixArt-Alpha module
- 🖌️ Stable Diffusion Img2img module
- 🖌️ IP-Adapter module
- 🖼️ Stable Diffusion Image variation module (require 16GB+ RAM)
- 🖌️ Instruct Pix2Pix module
- 🖌️ MagicMix module
- 🖌️ Stable Diffusion Inpaint module
- 🖌️ Fantasy Studio Paint by Example module (require 16GB+ RAM)
- 🖌️ Stable Diffusion Outpaint module (require 16GB+ RAM)
- 🖼️ Stable Diffusion ControlNet module
- 🖼️ Photobooth module
- 🎭 Insight Face faceswapping module
- 🔎 Real ESRGAN upscaler module
- 🔎GFPGAN face restoration module
-
Audio generation using :
- 🎶 MusicGen module
- 🎶 MusicGen Melody module (require 16GB+ RAM)
- 🎶 MusicLDM module
- 🔊 Audiogen module (require 16GB+ RAM)
- 🔊 Harmonai module
- 🗣️ Bark module
-
Video generation and modification using :
- 📼 Modelscope module (require 16GB+ RAM)
- 📼 Text2Video-Zero module
- 📼 AnimateDiff module (require 16GB+ RAM)
- 📼 Stable Video Diffusion module (require 16GB+ RAM)
- 🖌️ Video Instruct-Pix2Pix module (require 16GB+ RAM)
-
3D objects generation using :
- 🧊 Shap-E txt2shape module
- 🧊 Shap-E img2shape module (require 16GB+ RAM)
-
Other features
- Zeroconf installation through one-click installers or Windows exe.
- User friendly : Everything required to run biniou is installed automatically, either at install time or at first use.
- WebUI in English, French, Chinese (traditional).
- Easy management through a control panel directly inside webui : update, restart, shutdown, activate authentication, control network access or share your instance online with a single click.
- Easy management of models through a simple interface.
- Communication between modules : send an output as an input to another module
- Powered by 🤗 Huggingface and gradio
- Cross platform : GNU/Linux, Windows 10/11 and macOS(experimental, via homebrew)
- Convenient Dockerfile for cloud instances
- Generation settings saved as metadatas in each content.
- Support for CUDA (see CUDA support)
- Experimental support for ROCm (see here)
- Support for Stable Diffusion SD-1.5, SD-2.1, SD-Turbo, SDXL, SDXL-Turbo, SDXL-Lightning, Hyper-SD, Stable Diffusion 3, LCM, VegaRT, Segmind, Playground-v2, Koala, Pixart-Alpha, Pixart-Sigma, Kandinsky and compatible models, through built-in model list or standalone .safetensors files
- Support for LoRA models (SD 1.5, SDXL and SD3)
- Support for textual inversion
- Support llama-cpp-python optimizations CUDA, OpenBLAS, OpenCL BLAS, ROCm and Vulkan through a simple setting
- Support for Llama/2/3, Mistral, Mixtral and compatible GGUF quantized models, through built-in model list or standalone .gguf files.
- Easy copy/paste integration for TheBloke GGUF quantized models.
-
Minimal hardware :
- 64bit CPU (AMD64 architecture ONLY)
- 8GB RAM
- Storage requirements :
- for GNU/Linux : at least 20GB for installation without models.
- for Windows : at least 30GB for installation without models.
- for macOS : at least ??GB for installation without models.
- Storage type : HDD
- Internet access (required only for installation and models download) : unlimited bandwidth optical fiber internet access
-
Recommended hardware :
- Massively multicore 64bit CPU (AMD64 architecture ONLY) and a GPU compatible with CUDA or ROCm
- 16GB+ RAM
- Storage requirements :
- for GNU/Linux : around 200GB for installation including all defaults models.
- for Windows : around 200GB for installation including all defaults models.
- for macOS : around ??GB for installation including all defaults models.
- Storage type : SSD Nvme
- Internet access (required only for installation and models download) : unlimited bandwidth optical fiber internet access
-
Operating system :
- a 64 bit OS :
- Debian 12
- Ubuntu 22.04.3 / 24.04
- Linux Mint 21.2+ / 22
- Rocky 9.3
- Alma 9.3
- CentOS Stream 9
- Fedora 39
- OpenSUSE Leap 15.5
- OpenSUSE Tumbleweed
- Windows 10 22H2
- Windows 11 22H2
- macOS ???
- a 64 bit OS :
Note : biniou supports Cuda or ROCm but does not require a dedicated GPU to run. You can install it in a virtual machine.
- Copy/paste and execute the following command in a terminal :
sh <(curl https://raw.githubusercontent.com/Woolverine94/biniou/main/oci-opensuse.sh || wget -O - https://raw.githubusercontent.com/Woolverine94/biniou/main/oci-opensuse.sh)
- Copy/paste and execute the following command in a terminal :
sh <(curl https://raw.githubusercontent.com/Woolverine94/biniou/main/oci-rhel.sh || wget -O - https://raw.githubusercontent.com/Woolverine94/biniou/main/oci-rhel.sh)
- Copy/paste and execute the following command in a terminal :
sh <(curl https://raw.githubusercontent.com/Woolverine94/biniou/main/oci-debian.sh || wget -O - https://raw.githubusercontent.com/Woolverine94/biniou/main/oci-debian.sh)
- Install the pre-requisites as root :
apt install git pip python3 python3-venv gcc perl make ffmpeg openssl
- Clone this repository as user :
git clone https://github.com/Woolverine94/biniou.git
- Launch the installer :
cd ./biniou
./install.sh
- (optional, but highly recommended) Install TCMalloc as root to optimize memory management :
apt install google-perftools
Windows installation has more prerequisites than GNU/Linux one, and requires following softwares (which will be installed automatically) :
- Git
- Python 3.11 (and specifically 3.11 version)
- OpenSSL
- Visual Studio Build tools
- Windows 10/11 SDK
- Vcredist
- ffmpeg
- ... and all their dependencies.
It's a lot of changes on your operating system, and this could potentially bring unwanted behaviors on your system, depending on which softwares are already installed on it.
- Download and execute : biniou_netinstall.exe
OR
- Download and execute : install_win.cmd (right-click on the link and select "Save Target/Link as ..." to download)
All the installation is automated, but Windows UAC will ask you for confirmation for each software installed during the "prerequisites" phase. You can avoid this by running the chosen installer as administrator.
install_win.cmd
Proceed as follow :
- Download and edit install_win.cmd
- Modify
set DEFAULT_BINIOU_DIR="%userprofile%"
toset DEFAULT_BINIOU_DIR="E:\datas\somedir"
(for example) - Only use absolute path (e.g.:
E:\datas\somedir
and not.\datas\somedir
) - Don't add a trailing slash (e.g.:
E:\datas\somedir
and notE:\datas\somedir\
) - Don't add a "biniou" suffix to your path (e.g.:
E:\datas\somedir\biniou
), as the biniou directory will be created by the git clone command - Save and launch install_win.cmd
-
Install Homebrew for your operating system
-
Install required homebrew "bottles" :
brew install git python3 gcc gcc@11 perl make ffmpeg openssl
- Install python virtualenv :
python3 -m pip install virtualenv
- Clone this repository as user :
git clone https://github.com/Woolverine94/biniou.git
- Launch the installer :
cd ./biniou
./install.sh
These instructions assumes that you already have a configured and working docker environment.
- Create the docker image :
docker build -t biniou https://github.com/Woolverine94/biniou.git
or, for CUDA support :
docker build -t biniou https://raw.githubusercontent.com/Woolverine94/biniou/main/CUDA/Dockerfile
- Launch the container :
docker run -it --restart=always -p 7860:7860 \
-v biniou_outputs:/home/biniou/biniou/outputs \
-v biniou_models:/home/biniou/biniou/models \
-v biniou_cache:/home/biniou/.cache/huggingface \
-v biniou_gfpgan:/home/biniou/biniou/gfpgan \
biniou:latest
or, for CUDA support :
docker run -it --gpus all --restart=always -p 7860:7860 \
-v biniou_outputs:/home/biniou/biniou/outputs \
-v biniou_models:/home/biniou/biniou/models \
-v biniou_cache:/home/biniou/.cache/huggingface \
-v biniou_gfpgan:/home/biniou/biniou/gfpgan \
biniou:latest
- Access the webui by the url :
https://127.0.0.1:7860 or https://127.0.0.1:7860/?__theme=dark for dark theme (recommended)
... or replace 127.0.0.1 by ip of your container
Note : to save storage space, the previous container launch command defines common shared volumes for all biniou containers and ensure that the container auto-restart in case of OOM crash. Remove
--restart
and-v
arguments if you didn't want these behaviors.
biniou is natively cpu-only, to ensure compatibility with a wide range of hardware, but you can easily activate CUDA support through Nvidia CUDA (if you have a functional CUDA 12.1 environment) or AMD ROCm (if you have a functional ROCm 5.6 environment) by selecting the type of optimization to activate (CPU, CUDA or ROCm for Linux), in the WebUI control module.
Currently, all modules except Chatbot, Llava and faceswap modules, could benefits from CUDA optimization.
- Launch by executing from the biniou directory :
- for GNU/Linux :
cd /home/$USER/biniou
./webui.sh
- for Windows :
Double-click webui.cmd in the biniou directory (C:\Users\%username%\biniou\). When asked by the UAC, configure the firewall according to your network type to authorize access to the webui
Note : First start could be very slow on Windows 11 (comparing to others OS).
-
Access the webui by the url :
https://127.0.0.1:7860 or https://127.0.0.1:7860/?__theme=dark for dark theme (recommended)
You can also access biniou from any device (including smartphones) on the same LAN/Wifi network by replacing 127.0.0.1 in the url with biniou host ip address. -
Quit by using the keyboard shortcut CTRL+C in the Terminal
-
Update this application (biniou + python virtual environment) by using the WebUI control updates options.
-
Most frequent cause of crash is not enough memory on the host. Symptom is biniou program closing and returning to/closing the terminal without specific error message. You can use biniou with 8GB RAM, but 16GB at least is recommended to avoid OOM (out of memory) error.
-
biniou use a lot of differents AI models, which requires a lot of space : if you want to use all the modules in biniou, you will need around 200GB of disk space only for the default model of each module. Models are downloaded on the first run of each module or when you select a new model in a module and generate content. Models are stored in the directory /models of the biniou installation. Unused models could be deleted to save some space.
-
... consequently, you will need a fast internet access to download models.
-
A backup of every content generated is available inside the /outputs directory of the biniou folder.
-
biniou natively only rely on CPU for all operations. It use a specific CPU-only version of PyTorch. The result is a better compatibility with a wide range of hardware, but degraded performances. Depending on your hardware, expect slowness. See here for Nvidia CUDA support and AMD ROCm experimental support (GNU/Linux only).
-
Defaults settings are selected to permit generation of contents on low-end computers, with the best ratio performance/quality. If you have a configuration above the minimal settings, you could try using other models, increasing media dimensions or duration, modifying inference parameters or other settings (like token merging for images) to obtain better quality contents.
-
biniou is licensed under GNU GPL3, but each model used in biniou has its own license. Please consult each model license to know what you can and cannot do with the models. For each model, you can find a link to the huggingface page of the model in the "About" section of the associated module.
-
Don't have too much expectations : biniou is in an early stage of development, and most open source software used in it are in development (some are still experimental).
-
Every biniou modules offers 2 accordions elements About and Settings :
- About is a quick help feature that describes the module and gives instructions and tips on how to use it.
- Settings is a panel setting specific to the module that lets you configure the generation parameters.
This application uses the following softwares and technologies :
- 🤗 Huggingface : Diffusers and Transformers libraries and almost all the generative models.
- Gradio : webUI
- llama-cpp-python : python bindings for llama-cpp
- Llava
- BakLLava
- Microsoft GIT : Image2text
- Whisper : speech2text
- nllb translation : language translation
- Stable Diffusion : txt2img, img2img, Image variation, inpaint, ControlNet, Text2Video-Zero, img2vid
- Kandinsky : txt2img
- Latent consistency models : txt2img
- PixArt-Alpha : PixArt-Alpha
- IP-Adapter : IP-Adapter img2img
- Instruct pix2pix : pix2pix
- MagicMix : MagicMix
- Fantasy Studio Paint by Example : paintbyex
- Controlnet Auxiliary models : preview models for ControlNet module
- IP-Adapter FaceID : Adapter model for Photobooth module
- Photomaker Adapter model for Photobooth module
- Insight Face : faceswapping
- Real ESRGAN : upscaler
- GFPGAN : face restoration
- Audiocraft : musicgen, musicgen melody, audiogen
- MusicLDM : MusicLDM
- Harmonai : harmonai
- Bark : text2speech
- Modelscope text-to-video-synthesis : txt2vid
- AnimateLCM : txt2vid
- Open AI Shap-E : txt2shape, img2shape
- compel : Prompt enhancement for various
StableDiffusionPipeline
-based modules - tomesd : Token merging for various
StableDiffusionPipeline
-based modules - Python
- PyTorch
- Git
- ffmpeg
... and all their dependencies
GNU General Public License v3.0
GitHub @Woolverine94 ·