Updated atsetup.sh

This commit is contained in:
erew123 authored and GitHub committed 2024-01-12 11:30:12 +00:00
1 parent 697fb098c3
commit 36bfb17eda
1 file changed
+129 -89
+129 -89
View File
@@ -1,9 +1,19 @@
#!/bin/bash
# ANSI color codes
RED='\033[1;34m'
RED='\033[1;31m'
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
BLUE='\033[1;34m'
CYAN='\033[1;36m'
MAGENTA='\033[1;35m'
WHITE='\033[1;37m'
L_RED='\033[1;91m'
L_GREEN='\033[1;92m'
L_YELLOW='\033[1;93m'
L_BLUE='\033[1;94m'
L_CYAN='\033[1;96m'
L_MAGENTA='\033[1;95m'
NC='\033[0m' # No Color
# Navigate to the script's directory
@@ -23,16 +33,15 @@ main_menu() {
while true; do
clear
echo
echo "Welcome to the AllTalk Setup Utility"
echo -e " ${L_BLUE}ALLTALK LINUX SETUP UTILITY${NC}"
echo
echo "Please select an option:"
echo " INSTALLATION TYPE"
echo -e " 1) I am using AllTalk as part of ${L_GREEN}Text-generation-webui${NC}"
echo -e " 2) I am using AllTalk as a ${L_GREEN}Standalone Application${NC}"
echo
echo " 1) I am using AllTalk as part of Text-generation-webui"
echo " 2) I am using AllTalk as a Standalone Application"
echo -e " 9)${L_RED} Exit/Quit${NC}"
echo
echo " 9) Exit/Quit"
echo
read -p "Enter your choice: " user_option
read -p " Enter your choice: " user_option
case $user_option in
1) webui_menu ;;
@@ -48,21 +57,27 @@ webui_menu() {
while true; do
clear
echo
echo "You have selected Text-generation-webui."
echo -e " ${L_BLUE}TEXT-GENERATION-WEBUI SETUP${NC}"
echo
echo -e "Please ensure you have started your Text-generation-webui Python environment."
echo -e "If you have NOT done this, please run ${GREEN}/cmd_linux.sh${NC} in the ${GREEN}text-generation-webui${NC} folder and then re-run this script."
echo -e " Please ensure you have started your Text-generation-webui Python"
echo -e " environment. If you have NOT done this, please run ${L_GREEN}/cmd_linux.sh${NC}"
echo -e " in the ${L_GREEN}text-generation-webui${NC} folder and then re-run this script."
echo
echo " 1) Install the requirements for a Nvidia machine."
echo " 2) Install the requirements for an AMD or MAC machine."
echo " BASE REQUIREMENTS"
echo -e " 1) Install the AllTalk requirements for an ${L_GREEN}Nvidia GPU machine.${NC}"
echo -e " 2) Install the AllTalk requirements for an ${L_GREEN}AMD or MAC machine.${NC}"
echo
echo " OPTIONAL"
echo " 3) Install the Finetuning requirements."
echo " 4) Install DeepSpeed."
echo " 5) Uninstall DeepSpeed."
echo
echo " OTHER"
echo " 6) Generate a diagnostics file."
echo
echo " 9) Back to Main Menu"
echo -e " 9)${L_RED} Exit/Quit${NC}"
echo
read -p "Enter your choice: " webui_option
read -p " Enter your choice: " webui_option
case $webui_option in
1) install_nvidia_textgen ;;
@@ -71,7 +86,7 @@ webui_menu() {
4) install_deepspeed ;;
5) uninstall_deepspeed ;;
6) generate_diagnostics_textgen ;;
9) break ;;
9) exit 0 ;;
*) echo "Invalid option"; sleep 2 ;;
esac
done
@@ -79,76 +94,90 @@ webui_menu() {
install_nvidia_textgen() {
local requirements_file="requirements_nvidia.txt"
echo "Installing Finetune requirements from $requirements_file..."
echo " Installing Finetune requirements from $requirements_file..."
if ! pip install -r "$requirements_file"; then
echo "There was an error installing the Nvidia requirements."
echo "Please check the output for details."
read -p "Press any key to return to the menu. " -n 1
echo " There was an error installing the Nvidia requirements."
echo " Please check the output for details."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
echo "Nvidia requirements installed successfully."
read -p "Press any key to continue. " -n 1
echo " Nvidia requirements installed successfully."
read -p " Press any key to continue. " -n 1
echo
}
install_other_textgen() {
local requirements_file="requirements_other.txt"
echo "Installing Other machine requirements from $requirements_file..."
echo " Installing Other machine requirements from $requirements_file..."
if ! pip install -r "$requirements_file"; then
echo "There was an error installing the Other requirements."
echo "Please check the output for details."
read -p "Press any key to return to the menu. " -n 1
echo " There was an error installing the Other requirements."
echo " Please check the output for details."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
echo "Other machine requirements installed successfully."
read -p "Press any key to continue. " -n 1
echo " Other machine requirements installed successfully."
read -p " Press any key to continue. " -n 1
echo
}
install_finetune_textgen() {
local requirements_file="requirements_finetune.txt"
echo "Installing Finetune requirements from $requirements_file..."
echo " Installing Finetune requirements from $requirements_file..."
if ! pip install -r "$requirements_file"; then
echo "There was an error installing the Finetune requirements."
echo "Please check the output for details."
read -p "Press any key to return to the menu. " -n 1
echo " There was an error installing the Finetune requirements."
echo " Please check the output for details."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
echo "Finetune requirements installed successfully."
read -p "Press any key to continue. " -n 1
echo
echo " Finetune base requirements installed successfully."
echo
echo -e " Finetuning requires access to ${GREEN}Cublas${NC} from the ${GREEN}Nvidia CUDA Toolkit${NC}, so will need installing."
echo
echo -e " Instructions can be found here:"
echo -e " ${GREEN}https://github.com/erew123/alltalk_tts?#-finetuning-a-model${NC}"
echo
read -p " Press any key to continue. " -n 1
echo
}
# Function to install DeepSpeed
install_deepspeed() {
clear
echo -e "${YELLOW}DeepSpeed Installation Prerequisites:${NC}"
echo
echo -e " 1. NVIDIA CUDA Toolkit must be installed from ${GREEN}https://developer.nvidia.com/cuda-toolkit-archive${NC} or your ${GREEN}Linux package manager${NC}."
echo -e " 2. ${GREEN}libaio-dev${NC} must be installed."
echo -e " 3. The environment variable ${GREEN}CUDA_HOME${NC} must be set (e.g. export CUDA_HOME=/usr/local/cuda)."
echo -e "\n${RED}Please confirm that you have completed these steps before continuing with the DeepSpeed installation.${NC}"
echo -e " ${L_BLUE}DEEPSPEED INSTALLATION REQUIREMENTS${NC}"
echo
read -p "Have you completed all the above steps? (y/n): " confirm
echo -e " - NVIDIA CUDA Toolkit must be installed from your ${L_GREEN}Linux package manager${NC}"
echo -e " or ${L_GREEN}https://developer.nvidia.com/cuda-toolkit-archive${NC}"
echo -e " - The environment variable ${L_GREEN}CUDA_HOME${NC} must be set in your Python env"
echo -e " e.g. export CUDA_HOME=/usr/local/cuda."
echo -e " - ${L_GREEN}libaio-dev${NC} must be installed."
echo
echo -e " See the following link for full instructions:"
echo -e " ${L_GREEN}https://github.com/erew123/alltalk_tts?#-deepspeed-installation-options${NC}"
echo
echo -e " ${L_BLUE}Please ${L_RED}confirm${L_BLUE} that you have completed these steps before continuing"
echo -e " with the DeepSpeed installation, or the install ${L_RED}will fail.${NC}"
echo
read -p " Have you completed all the above steps? (y/n): " confirm
if [ "$confirm" != "y" ]; then
echo -e "${RED}DeepSpeed installation cannot proceed without completing the prerequisites.${NC}"
echo -e " ${RED}DeepSpeed installation cannot proceed without completing the prerequisites.${NC}"
return
fi
echo -e "\n${GREEN}Proceeding with DeepSpeed installation...${NC}"
echo -e "\n ${GREEN}Proceeding with DeepSpeed installation...${NC}"
pip install deepspeed
if [ $? -ne 0 ]; then
echo -e "${RED}There was an error installing DeepSpeed.${NC}"
echo -e " ${RED}There was an error installing DeepSpeed.${NC}"
return
fi
echo -e "${GREEN}DeepSpeed installed successfully.${NC}"
read -p "Press any key to continue. " -n 1
echo -e " ${GREEN}DeepSpeed installed successfully.${NC}"
read -p " Press any key to continue. " -n 1
echo
}
@@ -156,27 +185,27 @@ uninstall_deepspeed() {
echo "Uninstalling DeepSpeed..."
pip uninstall -y deepspeed
if [ $? -ne 0 ]; then
echo "There was an error uninstalling DeepSpeed."
echo "Press any key to return to the menu."
echo " There was an error uninstalling DeepSpeed."
echo " Press any key to return to the menu."
read -n 1
return
fi
echo "DeepSpeed uninstalled successfully."
echo "Press any key to continue."
echo " DeepSpeed uninstalled successfully."
echo " Press any key to continue."
read -n 1
}
generate_diagnostics_textgen() {
# Run diagnostics
if ! python diagnostics.py; then
echo "There was an error running diagnostics."
read -p "Press any key to return to the menu. " -n 1
echo " There was an error running diagnostics."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
echo "Diagnostics completed successfully."
read -p "Press any key to continue. " -n 1
echo " Diagnostics completed successfully."
read -p " Press any key to continue. " -n 1
echo
}
@@ -185,17 +214,22 @@ standalone_menu() {
while true; do
clear
echo
echo "You have selected Standalone Application Setup."
echo -e " ${L_BLUE}ALLTALK STANDALONE APPLICATION SETUP${NC}"
echo
echo " 1) Install AllTalk's custom Python environment (Setup AllTalk as a standalone Application)"
echo " BASE REQUIREMENTS"
echo " 1) Install AllTalk as a Standalone Application"
echo
echo " OPTIONAL"
echo " 2) Delete AllTalk's custom Python environment"
echo " 3) Install the Finetuning requirements"
echo " 4) Install DeepSpeed."
echo
echo " OTHER"
echo " 5) Generate a diagnostics file"
echo
echo " 9) Back to Main Menu"
echo -e " 9)${L_RED} Exit/Quit${NC}"
echo
read -p "Enter your choice: " standalone_option
read -p " Enter your choice: " standalone_option
case $standalone_option in
1) install_custom_standalone ;;
@@ -203,7 +237,7 @@ standalone_menu() {
3) install_finetune_standalone ;;
4) install_deepspeed ;;
5) generate_diagnostics_standalone ;;
9) break ;;
9) exit 0 ;;
*) echo "Invalid option"; sleep 2 ;;
esac
done
@@ -252,12 +286,12 @@ install_custom_standalone() {
conda activate "${INSTALL_ENV_DIR}"
echo
echo "Choose the type of requirements to install:"
echo -e " ${L_BLUE}Choose the type of requirements to install${NC}"
echo
echo " 1. Nvidia graphics card machines"
echo " 2. Other machines (mac, amd, etc)"
echo " 1. Nvidia graphics card machines"
echo " 2. Other machines (mac, amd, etc)"
echo
read -p "Enter your choice (1 or 2): " user_choice
read -p " Enter your choice (1 or 2): " user_choice
if [ "$user_choice" == "1" ]; then
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --upgrade --force-reinstall --index-url https://download.pytorch.org/whl/cu121
@@ -291,10 +325,10 @@ EOF
chmod +x start_alltalk.sh
echo
echo
echo "start_alltalk.sh has been created."
echo -e "You can now start AllTalk with ${YELLOW}./start_alltalk.sh${NC}"
echo -e " start_alltalk.sh has been created."
echo -e " You can now start AllTalk with ${L_YELLOW}./start_alltalk.sh${NC}"
echo
read -p "Press any key to continue. " -n 1
read -p " Press any key to continue. " -n 1
}
@@ -302,25 +336,25 @@ delete_custom_standalone() {
local env_dir="$PWD/alltalk_environment"
# Check if the alltalk_environment directory exists
if [ ! -d "$env_dir" ]; then
echo "\"$env_dir\" directory does not exist. No need to delete."
read -p "Press any key to continue. " -n 1
echo " \"$env_dir\" directory does not exist. No need to delete."
read -p " Press any key to continue. " -n 1
echo
return
fi
# Check if a Conda environment is active and deactivate it
if [ -n "$CONDA_PREFIX" ]; then
echo "Exiting the Conda environment. You may need to start ./atstart.sh again"
echo " Exiting the Conda environment. You may need to start ./atstart.sh again"
conda deactivate
fi
echo "Deleting \"$env_dir\". Please wait."
rm -rf "$env_dir"
if [ -d "$env_dir" ]; then
echo "Failed to delete \"$env_dir\" folder."
echo "Please make sure it is not in use and try again."
echo " Failed to delete \"$env_dir\" folder."
echo " Please make sure it is not in use and try again."
else
echo "Environment \"$env_dir\" deleted successfully."
echo " Environment \"$env_dir\" deleted successfully."
fi
read -p "Press any key to continue. " -n 1
read -p " Press any key to continue. " -n 1
echo
}
@@ -329,9 +363,9 @@ install_finetune_standalone() {
local conda_root_prefix="${env_dir}/conda"
local install_env_dir="${env_dir}/env"
if [ ! -d "${install_env_dir}" ]; then
echo "The Conda environment at '${install_env_dir}' does not exist."
echo "Please install the environment before proceeding."
read -p "Press any key to return to the menu. " -n 1
echo " The Conda environment at '${install_env_dir}' does not exist."
echo " Please install the environment before proceeding."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
@@ -340,39 +374,45 @@ install_finetune_standalone() {
local requirements_file="requirements_finetune.txt"
echo "Installing Finetune requirements from $requirements_file..."
if ! pip install -r "$requirements_file"; then
echo "There was an error installing the Finetune requirements."
echo "Please check the output for details."
read -p "Press any key to return to the menu. " -n 1
echo " There was an error installing the Finetune requirements."
echo " Please check the output for details."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
echo "Finetune requirements installed successfully."
read -p "Press any key to continue. " -n 1
echo
echo " Finetune base requirements installed successfully."
echo
echo -e " Finetuning requires access to ${GREEN}Cublas${NC} from the ${GREEN}Nvidia CUDA Toolkit${NC}, so will need installing."
echo
echo -e " Instructions can be found here:"
echo -e " ${GREEN}https://github.com/erew123/alltalk_tts?#-finetuning-a-model${NC}"
echo
read -p " Press any key to continue. " -n 1
echo
}
generate_diagnostics_standalone() {
local env_dir="$PWD/alltalk_environment"
local conda_root_prefix="${env_dir}/conda"
local install_env_dir="${env_dir}/env"
if [ ! -d "${install_env_dir}" ]; then
echo "The Conda environment at '${install_env_dir}' does not exist."
echo "Please install the environment before proceeding."
read -p "Press any key to return to the menu. " -n 1
echo " The Conda environment at '${install_env_dir}' does not exist."
echo " Please install the environment before proceeding."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
source "${conda_root_prefix}/etc/profile.d/conda.sh"
conda activate "${install_env_dir}"
if ! python diagnostics.py; then
echo "There was an error running diagnostics."
read -p "Press any key to return to the menu. " -n 1
echo " There was an error running diagnostics."
read -p " Press any key to return to the menu. " -n 1
echo
return
fi
echo "Diagnostics completed successfully."
read -p "Press any key to continue. " -n 1
echo " Diagnostics completed successfully."
read -p " Press any key to continue. " -n 1
echo
}