diff --git a/.gitignore b/.gitignore index 61006ce..76c8e03 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +<<<<<<< HEAD cache characters training/datasets @@ -33,3 +34,6 @@ models/config-user.yaml .DS_Store Thumbs.db +======= +installer_files/ +>>>>>>> second-repo/main diff --git a/INSTRUCTIONS-WSL.txt b/INSTRUCTIONS-WSL.txt new file mode 100644 index 0000000..b2dabdd --- /dev/null +++ b/INSTRUCTIONS-WSL.txt @@ -0,0 +1,74 @@ +Thank you for downloading oobabooga/text-generation-webui. + +# WSL setup + +If you do not have WSL installed, see here: +https://learn.microsoft.com/en-us/windows/wsl/install + +If you want to install Linux to a drive other than C +Open powershell and enter these commands: + +cd D:\Path\To\Linux +$ProgressPreference = 'SilentlyContinue' +Invoke-WebRequest -Uri -OutFile Linux.appx -UseBasicParsing +mv Linux.appx Linux.zip + +Then open Linux.zip and you should see several .appx files inside. +The one with _x64.appx contains the exe installer that you need. +Extract the contents of that _x64.appx file and run .exe to install. + +Linux Distro URLs: +https://learn.microsoft.com/en-us/windows/wsl/install-manual#downloading-distributions + +****************************************************************************** +*ENSURE THAT THE WSL LINUX DISTRO THAT YOU WISH TO USE IS SET AS THE DEFAULT!* +****************************************************************************** + +Do this by using these commands: +wsl -l +wsl -s + +# Web UI Installation + +Run the "start" script. By default it will install the web UI in WSL: +/home/{username}/text-gen-install + +To launch the web UI in the future after it is already installed, run +the same "start" script. Ensure that webui.py and wsl.sh are next to it! + +# Updating the web UI + +Run the "update" script. This will only install the updates, so it should +be much faster than the initial installation. + +You can also run "wsl.sh update" in WSL. + +# Adding flags like --chat, --notebook, etc + +Edit the "webui.py" script using a text editor and add the desired flags +to the CMD_FLAGS variable at the top. It should look like this: + +CMD_FLAGS = '--chat' + +For instance, to add the --api flag, change it to + +CMD_FLAGS = '--chat --api' + +The "start" and "update" scripts will copy the edited "webui.py" to WSL +to be used by the web UI. + +# Running an interactive shell + +To run an interactive shell in the miniconda environment, run the "cmd" +script. This is useful for installing additional requirements manually. + +You can also run "wsl.sh cmd" in WSL. + +# Changing the default install location + +To change this, you will need to edit the scripts as follows: +wsl.sh: line ~22 INSTALL_DIR="/path/to/install/dir" + +Keep in mind that there is a long-standing bug in WSL that significantly +slows drive read/write speeds when using a physical drive as opposed to +the virtual one that Linux is installed in. diff --git a/INSTRUCTIONS.txt b/INSTRUCTIONS.txt new file mode 100644 index 0000000..6637b65 --- /dev/null +++ b/INSTRUCTIONS.txt @@ -0,0 +1,38 @@ +Thank you for downloading oobabooga/text-generation-webui! + +# Installation + +Run the "start" script. It will install the web UI and all of its +dependencies inside this folder. + +To launch the web UI in the future after it is already installed, run the +"start" script again. + +# Updating the web UI + +Run the "update" script. It will install the updates only, so it should +be much faster than the initial installation. + +# Adding flags like --model, --api, etc + +Open the "CMD_FLAGS.txt" file with a text editor, add your flags, and +save the file. For instance, to add the --api flag, change the file +contents to + +--api + +# Running an interactive shell + +Sometimes you may need to install some additional Python package. To do +that, run the "cmd" script and type your commands inside the terminal +window that will appear. + +# Using an AMD GPU in Linux + +Requires ROCm SDK 5.4.2 or 5.4.3 to be installed. Some systems may also +need: sudo apt-get install libstdc++-12-dev + +Edit the "webui.py" script using a text editor and un-comment and +modify the lines near the top of the script according to your setup. In +particular, modify the os.environ["ROCM_PATH"] = '/opt/rocm' line to +point to your ROCm installation. diff --git a/README.md b/README.md index c3bfe13..acff9c2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +<<<<<<< HEAD # Text generation web UI A Gradio web UI for Large Language Models. @@ -390,3 +391,20 @@ If you would like to contribute to the project, check out the [Contributing guid ## Acknowledgment In August 2023, [Andreessen Horowitz](https://a16z.com/) (a16z) provided a generous grant to encourage and support my independent work on this project. I am **extremely** grateful for their trust and recognition, which will allow me to dedicate more time towards realizing the full potential of text-generation-webui. +======= +# One-click installers + +These are automated installers for [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui). + +The idea is to allow people to use the program without having to type commands in the terminal, thus making it more accessible. + +## How it works + +The `start` scripts download miniconda, create a conda environment inside the current folder, and then install the webui using that environment. + +After the initial installation, the `update` scripts are then used to automatically pull the latest text-generation-webui code and upgrade its requirements. + +## Limitations + +* The start/update scripts themselves are not automatically updated. To update them, you have to re-download the zips listed on the [main README](https://github.com/oobabooga/text-generation-webui#one-click-installers) and overwrite your existing files. +>>>>>>> second-repo/main diff --git a/generate_zips.sh b/generate_zips.sh new file mode 100644 index 0000000..f313174 --- /dev/null +++ b/generate_zips.sh @@ -0,0 +1,6 @@ +mkdir oobabooga_{windows,linux,macos,wsl} +for p in windows macos linux wsl; do + if [ "$p" == "wsl" ]; then cp {*$p*\.*,webui.py,INSTRUCTIONS-WSL.txt,CMD_FLAGS.txt} oobabooga_$p; + else cp {*$p*\.*,webui.py,INSTRUCTIONS.txt,CMD_FLAGS.txt} oobabooga_$p; fi + zip -r oobabooga_$p.zip oobabooga_$p; +done diff --git a/webui.py b/webui.py index 8707e7f..083272e 100644 --- a/webui.py +++ b/webui.py @@ -112,12 +112,23 @@ def install_dependencies(): else: run_cmd("conda install -y -k ninja git && python -m pip install torch torchvision torchaudio", assert_success=True, environment=True) +<<<<<<< HEAD +======= + # Clone webui to our computer + run_cmd("git clone https://github.com/oobabooga/text-generation-webui.git", assert_success=True, environment=True) + +>>>>>>> second-repo/main # Install the webui dependencies update_dependencies(initial_installation=True) def update_dependencies(initial_installation=False): +<<<<<<< HEAD # run_cmd("git pull", assert_success=True, environment=True) # TODO uncomment before merging (is there a better way?) +======= + os.chdir("text-generation-webui") + run_cmd("git pull", assert_success=True, environment=True) +>>>>>>> second-repo/main # Install the extensions dependencies (only on the first install) if initial_installation: @@ -211,10 +222,18 @@ def update_dependencies(initial_installation=False): def download_model(): +<<<<<<< HEAD +======= + os.chdir("text-generation-webui") +>>>>>>> second-repo/main run_cmd("python download-model.py", environment=True) def launch_webui(): +<<<<<<< HEAD +======= + os.chdir("text-generation-webui") +>>>>>>> second-repo/main run_cmd(f"python server.py {CMD_FLAGS}", environment=True) @@ -230,8 +249,12 @@ if __name__ == "__main__": update_dependencies() else: # If webui has already been installed, skip and run +<<<<<<< HEAD # if not os.path.exists("text-generation-webui/"): if True: # TODO implement a new installation check +======= + if not os.path.exists("text-generation-webui/"): +>>>>>>> second-repo/main install_dependencies() os.chdir(script_dir)