#!/bin/bash #### # This launch script assumes that: # 1. it is located in the runtime directory, # 2. the .venv is also located in the runtime directory and is named exactly that # # If both of the above are not true, this script will likely not work as intended. # Activate the virtual environment and run `invoke.py` directly. #### set -eu # ensure we're in the correct folder in case user's CWD is somewhere else scriptdir=$(dirname "$0") cd "$scriptdir" . .venv/bin/activate export INVOKEAI_ROOT="$scriptdir" # set required env var for torch on mac MPS if [ "$(uname -s)" == "Darwin" ]; then export PYTORCH_ENABLE_MPS_FALLBACK=1 fi if [ "$0" != "bash" ]; then echo "Do you want to generate images using the" echo "1. command-line" echo "2. browser-based UI" echo "3. run textual inversion training" echo "4. merge models (diffusers type only)" echo "5. re-run the configure script to download new models" echo "6. update InvokeAI" echo "7. open the developer console" echo "8. command-line help" echo "" read -p "Please enter 1, 2, 3, 4, 5, 6, 7 or 8: [2] " yn choice=${yn:='2'} case $choice in 1) echo "Starting the InvokeAI command-line..." exec invokeai $@ ;; 2) echo "Starting the InvokeAI browser-based UI..." exec invokeai --web $@ ;; 3) echo "Starting Textual Inversion:" exec invokeai-ti --gui $@ ;; 4) echo "Merging Models:" exec invokeai-merge --gui $@ ;; 5) echo "Configuration:" exec invokeai-configure --root ${INVOKEAI_ROOT} ;; 6) echo "Update:" exec invokeai-update ;; 7) echo "Developer Console:" file_name=$(basename "${BASH_SOURCE[0]}") bash --init-file "$file_name" ;; 8) exec invokeai --help ;; *) echo "Invalid selection" exit;; esac else # in developer console python --version echo "Press ^D to exit" export PS1="(InvokeAI) \u@\h \w> " fi