doc updates; clean up install directory

- Large rewrite of documentation for automated and manual install.
- Reorganize installer zip file to reduce visual clutter for user.
This commit is contained in:
Lincoln Stein 2023-02-07 16:35:22 -05:00
parent b9c8270ee6
commit b49188a39d
13 changed files with 181 additions and 174 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -126,7 +126,7 @@ either an Nvidia-based card (with CUDA support) or an AMD card (using the ROCm
driver). driver).
First time users, please see First time users, please see
[Automated Installer](installation/INSTALL_AUTOMATED.md) for a walkthrough of [Automated Installer](installation/010_INSTALL_AUTOMATED.md) for a walkthrough of
getting InvokeAI up and running on your system. For alternative installation and getting InvokeAI up and running on your system. For alternative installation and
upgrade instructions, please see: upgrade instructions, please see:
[InvokeAI Installation Overview](installation/) [InvokeAI Installation Overview](installation/)

View File

@ -6,19 +6,22 @@ title: Installing with the Automated Installer
## Introduction ## Introduction
The automated installer is a Python script that attempts to automate The automated installer is a Python script that automates the steps
every step needed to install and run InvokeAI on a stock computer needed to install and run InvokeAI on a stock computer running recent
running recent versions of Linux, MacOS or Windows. It will leave you versions of Linux, MacOS or Windows. It will leave you with a version
with a version that runs a stable version of InvokeAI with the option that runs a stable version of InvokeAI with the option to upgrade to
to upgrade to experimental versions later. experimental versions later.
## Walk through ## Walk through
1. Make sure that your system meets the [hardware 1. Make sure that your system meets the [hardware
requirements](../index.md#hardware-requirements) and has the requirements](../index.md#hardware-requirements) and has the
appropriate GPU drivers installed. In particular, if you are a appropriate GPU drivers installed. For a system with an NVIDIA
Linux user with an AMD GPU installed, you may need to install the card installed, you will need to install the CUDA driver, while
[ROCm driver](https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html). AMD-based cards require the ROCm driver. In most cases, if you've
already used the system for gaming or other graphics-intensive
tasks, the appropriate drivers will already be installed. If
unsure, check the [GPU Driver Guide](030_INSTALL_CUDA_AND_ROCM.md)
!!! info "Required Space" !!! info "Required Space"
@ -53,44 +56,25 @@ to upgrade to experimental versions later.
_Please select your platform in the section below for platform-specific _Please select your platform in the section below for platform-specific
setup requirements._ setup requirements._
=== "Windows users" === "Windows"
During the Python configuration process, look out for a
checkbox to add Python to your PATH and select it. If the
install script complains that it can't find python, then open
the Python installer again and choose "Modify" existing
installation.
- During the Python configuration process, Installation requires an up to date version of the Microsoft
look out for a checkbox to add Python to your PATH
and select it. If the install script complains that it can't
find python, then open the Python installer again and choose
"Modify" existing installation.
- Installation requires an up to date version of the Microsoft
Visual C libraries. Please install the 2015-2022 libraries Visual C libraries. Please install the 2015-2022 libraries
available here: available here:
https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170 https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
=== "Mac users" Please double-click on the file `WinLongPathsEnabled.reg` and
accept the dialog box that asks you if you wish to modify your registry.
This activates long filename support on your system and will prevent
mysterious errors during installation.
- After installing Python, you may need to run the === "Linux"
following command from the Terminal in order to install the Web To install an appropriate version of Python on Ubuntu 22.04
certificates needed to download model data from https sites. If
you see lots of CERTIFICATE ERRORS during the last part of the
install, this is the problem, and you can fix it with this command:
`/Applications/Python\ 3.10/Install\ Certificates.command`
- You may need to install the Xcode command line tools. These
are a set of tools that are needed to run certain applications in a
Terminal, including InvokeAI. This package is provided directly by Apple.
- To install, open a terminal window and run `xcode-select
--install`. You will get a macOS system popup guiding you through the
install. If you already have them installed, you will instead see some
output in the Terminal advising you that the tools are already installed.
- More information can be found here:
https://www.freecodecamp.org/news/install-xcode-command-line-tools/
=== "Linux users"
To install an appropriate version of Python On Ubuntu 22.04
and higher, run the following: and higher, run the following:
``` ```
@ -109,63 +93,77 @@ to upgrade to experimental versions later.
sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3.10 3 sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3.10 3
``` ```
Both `python` and `python3` commands are now pointing at Python3.10. You can still access older versions of Python by calling `python2`, `python3.8`, etc. Both `python` and `python3` commands are now pointing at
Python3.10. You can still access older versions of Python by
calling `python2`, `python3.8`, etc.
Linux systems require a couple of additional graphics libraries to be installed for proper functioning of `python3-opencv`. Please run the following: Linux systems require a couple of additional graphics
libraries to be installed for proper functioning of
`python3-opencv`. Please run the following:
`sudo apt update && sudo apt install -y libglib2.0-0 libgl1-mesa-glx` `sudo apt update && sudo apt install -y libglib2.0-0 libgl1-mesa-glx`
3. The source installer is distributed in ZIP files. Go to the === "Mac"
[latest release](https://github.com/invoke-ai/InvokeAI/releases/latest), and
look for a series of files named:
- InvokeAI-installer-2.X.X.zip After installing Python, you may need to run the
following command from the Terminal in order to install the Web
certificates needed to download model data from https sites. If
you see lots of CERTIFICATE ERRORS during the last part of the
install, this is the problem, and you can fix it with this command:
(Where 2.X.X is the current release number). `/Applications/Python\ 3.10/Install\ Certificates.command`
Download the latest release. You may need to install the Xcode command line tools. These
are a set of tools that are needed to run certain applications in a
Terminal, including InvokeAI. This package is provided
directly by Apple. To install, open a terminal window and run `xcode-select --install`. You will get a macOS system popup guiding you through the
install. If you already have them installed, you will instead see some
output in the Terminal advising you that the tools are already installed.
More information can be found at [FreeCode
Camp](https://www.freecodecamp.org/news/install-xcode-command-line-tools/)
3. The InvokeAI installer is distributed as a ZIP files. Go to the
[latest release](https://github.com/invoke-ai/InvokeAI/releases/latest),
and look for a file named:
- InvokeAI-installer-v2.X.X.zip
where "2.X.X" is the latest released version. The file is located
at the very bottom of the release page, under **Assets**.
4. Unpack the zip file into a convenient directory. This will create a new 4. Unpack the zip file into a convenient directory. This will create a new
directory named "InvokeAI-Installer". This example shows how this would look directory named "InvokeAI-Installer". When unpacked, the directory
using the `unzip` command-line tool, but you may use any graphical or will look like this:
command-line Zip extractor:
```cmd <figure markdown>
C:\Documents\Linco> unzip InvokeAI-installer-2.X.X-windows.zip ![zipfile-screenshot](../assets/installer-walkthrough/unpacked-zipfile.png)
Archive: C: \Linco\Downloads\InvokeAI-installer-2.X.X-windows.zip </figure>
creating: InvokeAI-Installer\
inflating: InvokeAI-Installer\install.bat
inflating: InvokeAI-Installer\readme.txt
...
```
After successful installation, you can delete the `InvokeAI-Installer` 5. If you are using a desktop GUI, double-click the installer file
directory. appropriate for your platform. It will be named `install.bat` on
Windows systems and `install.sh` on Linux and Macintosh
systems. Be aware that your system's file browser may suppress the
display of the file extension.
5. **Windows only** Please double-click on the file WinLongPathsEnabled.reg and On Windows systems if you get an "Untrusted Publisher" warning.
accept the dialog box that asks you if you wish to modify your registry. Click on "More Info" and then select "Run Anyway." You trust us, right?
This activates long filename support on your system and will prevent
mysterious errors during installation.
6. If you are using a desktop GUI, double-click the installer file. It will be 6. Alternatively, from the command line, run the shell script or .bat file:
named `install.bat` on Windows systems and `install.sh` on Linux and
Macintosh systems.
On Windows systems you will probably get an "Untrusted Publisher" warning.
Click on "More Info" and select "Run Anyway." You trust us, right?
7. Alternatively, from the command line, run the shell script or .bat file:
```cmd ```cmd
C:\Documents\Linco> cd InvokeAI-Installer C:\Documents\Linco> cd InvokeAI-Installer
C:\Documents\Linco\invokeAI> install.bat C:\Documents\Linco\invokeAI> install.bat
``` ```
8. The script will ask you to choose where to install InvokeAI. Select a 7. The script will ask you to choose where to install InvokeAI. Select a
directory with at least 18G of free space for a full install. InvokeAI and directory with at least 18G of free space for a full install. InvokeAI and
all its support files will be installed into a new directory named all its support files will be installed into a new directory named
`invokeai` located at the location you specify. `invokeai` located at the location you specify.
<figure markdown>
![confirm-install-directory-screenshot](../assets/installer-walkthrough/confirm-directory.png)
</figure>
- The default is to install the `invokeai` directory in your home directory, - The default is to install the `invokeai` directory in your home directory,
usually `C:\Users\YourName\invokeai` on Windows systems, usually `C:\Users\YourName\invokeai` on Windows systems,
`/home/YourName/invokeai` on Linux systems, and `/Users/YourName/invokeai` `/home/YourName/invokeai` on Linux systems, and `/Users/YourName/invokeai`
@ -175,9 +173,23 @@ to upgrade to experimental versions later.
Type part of the path (e.g. "C:\Users") and press ++tab++ repeatedly Type part of the path (e.g. "C:\Users") and press ++tab++ repeatedly
to suggest completions. to suggest completions.
8. The installer will autodetect your platform and will request you to
confirm the type of GPU your graphics card has. On Linux systems,
you will have the choice of CUDA (NVidia cards), ROCm (AMD cards),
or CPU (no graphics acceleration). On Windows, you'll have the
choice of CUDA vs CPU, and on Macs you'll be offered CPU only. When
you select CPU on M1 or M2 Macintoshes, you will get MPS-based
graphics acceleration without installing additional drivers. If you
are unsure what GPU you are using, you can ask the installer to
guess.
<figure markdown>
![choose-gpu-screenshot](../assets/installer-walkthrough/choose-gpu.png)
</figure>
9. Sit back and let the install script work. It will install the third-party 9. Sit back and let the install script work. It will install the third-party
libraries needed by InvokeAI, then download the current InvokeAI release and libraries needed by InvokeAI and the application itself.
install it.
Be aware that some of the library download and install steps take a long Be aware that some of the library download and install steps take a long
time. In particular, the `pytorch` package is quite large and often appears time. In particular, the `pytorch` package is quite large and often appears
@ -187,18 +199,18 @@ to upgrade to experimental versions later.
minutes and nothing is happening, you can interrupt the script with ^C. You minutes and nothing is happening, you can interrupt the script with ^C. You
may restart it and it will pick up where it left off. may restart it and it will pick up where it left off.
10. After installation completes, the installer will launch the configuration script, which will guide you through the first-time process 10. After installation completes, the installer will launch the
of selecting one or more Stable Diffusion model weights files, downloading configuration script, which will guide you through the first-time
and configuring them. We provide a list of popular models that InvokeAI process of selecting one or more Stable Diffusion model weights
performs well with. However, you can add more weight files later on using files, downloading and configuring them. We provide a list of
the command-line client or the Web UI. See popular models that InvokeAI performs well with. However, you can
[Installing Models](050_INSTALLING_MODELS.md) for details. add more weight files later on using the command-line client or
the Web UI. See [Installing Models](050_INSTALLING_MODELS.md) for
details.
Note that the main Stable Diffusion weights file is protected by a license <figure markdown>
agreement that you must agree to in order to use. The script will list the ![downloading-models-screenshot](../assets/installer-walkthrough/downloading-models.png)
steps you need to take to create an account on the official site that hosts </figure>
the weights files, accept the agreement, and provide an access token that
allows InvokeAI to legally download and install the weights files.
If you have already downloaded the weights file(s) for another Stable If you have already downloaded the weights file(s) for another Stable
Diffusion distribution, you may skip this step (by selecting "skip" when Diffusion distribution, you may skip this step (by selecting "skip" when
@ -216,15 +228,15 @@ to upgrade to experimental versions later.
C:\Documents\Linco\invokeAI> invoke.bat C:\Documents\Linco\invokeAI> invoke.bat
``` ```
- The `invoke.bat` (`invoke.sh`) script will give you the choice of starting - The `invoke.bat` (`invoke.sh`) script will give you the choice
(1) the command-line interface, or (2) the web GUI. If you start the of starting (1) the command-line interface, (2) the web GUI, (3)
latter, you can load the user interface by pointing your browser at textual inversion training, and (4) model merging.
http://localhost:9090.
- The script also offers you a third option labeled "open the developer - By default, the script will launch the web interface. When you
console". If you choose this option, you will be dropped into a do this, you'll see a series of startup messages ending with
command-line interface in which you can run python commands directly, instructions to point your browser at
access developer tools, and launch InvokeAI with customized options. http://localhost:9090. Click on this link to open up a browser
and start exploring InvokeAI's features.
12. You can launch InvokeAI with several different command-line arguments that 12. You can launch InvokeAI with several different command-line arguments that
customize its behavior. For example, you can change the location of the customize its behavior. For example, you can change the location of the
@ -236,10 +248,19 @@ to upgrade to experimental versions later.
`invokeai\invokeai.init`. It contains a variety of examples that you can `invokeai\invokeai.init`. It contains a variety of examples that you can
follow to add and modify launch options. follow to add and modify launch options.
!!! warning "The `invokeai` directory contains the `invokeai` application, its - The launcher script also offers you an option labeled "open the developer
console". If you choose this option, you will be dropped into a
command-line interface in which you can run python commands directly,
access developer tools, and launch InvokeAI with customized options.
!!! warning "Do not move or remove the `invokeai` directory"
The `invokeai` directory contains the `invokeai` application, its
configuration files, the model weight files, and outputs of image generation. configuration files, the model weight files, and outputs of image generation.
Once InvokeAI is installed, do not move or remove this directory." Once InvokeAI is installed, do not move or remove this directory."
## Troubleshooting ## Troubleshooting
### _Package dependency conflicts_ ### _Package dependency conflicts_
@ -308,7 +329,7 @@ the [InvokeAI Issues](https://github.com/invoke-ai/InvokeAI/issues) section, or
visit our [Discord Server](https://discord.gg/ZmtBAhwWhy) for interactive visit our [Discord Server](https://discord.gg/ZmtBAhwWhy) for interactive
assistance. assistance.
### other problems ### Other Problems
If you run into problems during or after installation, the InvokeAI team is If you run into problems during or after installation, the InvokeAI team is
available to help you. Either create an available to help you. Either create an
@ -320,36 +341,34 @@ hours, and often much sooner.
## Updating to newer versions ## Updating to newer versions
This distribution is changing rapidly, and we add new features on a daily basis. This distribution is changing rapidly, and we add new features
To update to the latest released version (recommended), run the `update.sh` regularly. Releases are announced at
(Linux/Mac) or `update.bat` (Windows) scripts. This will fetch the latest http://github.com/invoke-ai/InvokeAI/releases, and at
release and re-run the `invokeai-configure` script to download any updated https://pypi.org/project/InvokeAI/ To update to the latest released
models files that may be needed. You can also use this to add additional models version (recommended), follow these steps:
that you did not select at installation time.
You can now close the developer console and run `invoke` as before. If you get 1. Start the `invoke.sh`/`invoke.bat` launch script from within the
complaints about missing models, then you may need to do the additional step of `invokeai` root directory.
running `invokeai-configure`. This happens relatively infrequently. To do
this, simply open up the developer's console again and type
`invokeai-configure`.
You may also use the `update` script to install any selected version of 2. Choose menu item (6) "Developer's Console". This will launch a new
InvokeAI. From https://github.com/invoke-ai/InvokeAI, navigate to the zip file command line.
link of the version you wish to install. You can find the zip links by going to
the one of the release pages and looking for the **Assets** section at the
bottom. Alternatively, you can browse "branches" and "tags" at the top of the
big code directory on the InvokeAI welcome page. When you find the version you
want to install, go to the green "&lt;&gt; Code" button at the top, and copy the
"Download ZIP" link.
Now run `update.sh` (or `update.bat`) with the version number of the desired InvokeAI 3. Type the following command:
version as its argument. For example, this will install the old 2.2.0 release.
```cmd ```bash
update.sh v2.2.0 pip install InvokeAI --upgrade
```
4. Watch the installation run. Once it is complete, you may exit the
command line by typing `exit`, and then start InvokeAI from the
launch script as per usual.
Alternatively, if you wish to get the most recent unreleased
development version, perform the same steps to enter the developer's
console, and then type:
```bash
pip install https://github.com/invoke-ai/InvokeAI/archive/refs/heads/main.zip
``` ```
You can get the list of version numbers by going to the [releases
page](https://github.com/invoke-ai/InvokeAI/releases) or by browsing
the (Tags)[https://github.com/invoke-ai/InvokeAI/tags] list from the
Code section of the main github page.

15
installer/create_installer.sh Normal file → Executable file
View File

@ -56,12 +56,12 @@ rm -rf InvokeAI-Installer
# copy content # copy content
mkdir InvokeAI-Installer mkdir InvokeAI-Installer
for f in templates *.py *.txt *.reg; do for f in templates lib *.txt *.reg; do
cp -r ${f} InvokeAI-Installer/ cp -r ${f} InvokeAI-Installer/
done done
# Move the wheel # Move the wheel
mv dist/*.whl InvokeAI-Installer/ mv dist/*.whl InvokeAI-Installer/lib/
# Install scripts # Install scripts
# Mac/Linux # Mac/Linux
@ -75,17 +75,6 @@ cp WinLongPathsEnabled.reg InvokeAI-Installer/
# Zip everything up # Zip everything up
zip -r InvokeAI-installer-$VERSION.zip InvokeAI-Installer zip -r InvokeAI-installer-$VERSION.zip InvokeAI-Installer
# Updater
mkdir tmp
cp templates/update.sh.in tmp/update.sh
cp templates/update.bat.in tmp/update.bat
chmod +x tmp/update.sh
chmod +x tmp/update.bat
cd tmp
zip InvokeAI-updater-$VERSION.zip update.sh update.bat
cd ..
mv tmp/InvokeAI-updater-$VERSION.zip .
# clean up # clean up
rm -rf InvokeAI-Installer tmp dist rm -rf InvokeAI-Installer tmp dist

View File

@ -66,8 +66,7 @@ del /q .tmp1 .tmp2
@rem -------------- Install and Configure --------------- @rem -------------- Install and Configure ---------------
call python main.py call python .\lib\main.py
@rem ------------------------ Subroutines --------------- @rem ------------------------ Subroutines ---------------
@rem routine to do comparison of semantic version numbers @rem routine to do comparison of semantic version numbers

View File

@ -27,4 +27,4 @@ if [ -z "$PYTHON" ]; then
exit -1 exit -1
fi fi
exec $PYTHON ./main.py ${@} exec $PYTHON ./lib/main.py ${@}

View File

@ -360,7 +360,7 @@ class InvokeAiInstance:
scripts = ['invoke'] scripts = ['invoke']
for script in scripts: for script in scripts:
src = Path(__file__).parent / "templates" / f"{script}.{ext}.in" src = Path(__file__).parent / '..' / "templates" / f"{script}.{ext}.in"
dest = self.runtime / f"{script}.{ext}" dest = self.runtime / f"{script}.{ext}"
shutil.copy(src, dest) shutil.copy(src, dest)
os.chmod(dest, 0o0755) os.chmod(dest, 0o0755)