Commit Graph

2622 Commits

Author SHA1 Message Date
Lincoln Stein
d453afbf6b
Merge branch 'main' into fix-samefile 2023-02-03 10:27:03 -05:00
Lincoln Stein
c79678a643 prevent crash when no default model defined 2023-02-03 02:27:50 -05:00
Lincoln Stein
2217998010 remove the environments-and-requirements directory 2023-02-03 01:49:30 -05:00
Eugene Brodsky
3b43f3a5a1 (installer) fix failure to create venv over an existing venv
if reinstalling over an existing installation where the .venv
was created with symlinks to system python instead of copies
of the python executable, the installer would raise a
SameFileError, because it would attempt to copy Python over
itself. This fixes the issue.
2023-02-03 00:36:28 -05:00
Lincoln Stein
3f193d2b97 attempted correction of white screen issue 2023-02-02 23:47:55 -05:00
Lincoln Stein
e04cb70c7c rebuild front end 2023-02-02 21:55:01 -05:00
Lincoln Stein
ddd5137cc6 Update version 2023-02-02 21:17:53 -05:00
gogurtenjoyer
797e2f780d Add python version warning from the docs
Just a quick update about Python 3.11.
2023-02-02 19:28:49 -05:00
Lincoln Stein
0642728484
remove requirements step from install manual (#2442)
removing the step to link the requirements file from the docs for manual
Installation after commenting about it in #2431
2023-02-02 16:50:29 -05:00
Lincoln Stein
fe9b4f4a3c
Merge branch 'main' into update/docs/remove-requirements-step 2023-02-02 16:14:45 -05:00
Lincoln Stein
756e50f641
Installer rewrite in Python (#2448)
## Summary

This PR rewrites the core of the installer in Python for cross-platform
compatibility. Filesystem path manipulation, platform/arch decisions and
various edge cases are handled in a more convenient fashion. The
original `install.bat.in`/`install.sh.in` scripts are kept as
entrypoints for their respective OSs, but only serve as thin wrappers to
the Python module.

In addition, it:

- builds and **packages the .whl with the installer**, so that
downloading a versioned installer will guarantee installation of the
same version of the application.
- updates shell entrypoints: 
- new commands are `invokeai`, `invokeai-configure`, `invokeai-ti`,
`invokeai-merge`.
- these commands will be available in the activated `.venv` or via the
launch scripts
- `invoke.py` and `configure_invokeai.py` scripts are deprecated but
kept around for backwards compatibility and keeping users' surprise to a
minimum.
- introduces a new `ldm/invoke/config` package and moves the
`configure_invokeai` script into it. Similarly, movers Textual Inversion
script and TUI to `ldm/invoke/training`.
- moves the `configs` directory into the `ldm/invoke/config` package for
easy distribution.
- updates documentation to reflect all of the above changes
- fixes a failing test
- reduces wheel size to 3MB (from 27MB) by excluding unnecessary image
files under `assets`

⚠️ self-updating functionality and ability to install arbitrary
versions are still WIP. For now we can recommend downloading and running
the installer for a specific version as desired.

## Testing the source install

From the cloned source, check out this branch, and:

`$ python3 installer/main.py --root <path_to_destination>`

Also try:

`$ python3 installer/main.py ` - will prompt for paths
`$ python3 installer/main.py --yes` - will not prompt for any input

- try to combine the `--yes` and `--root` options
- try to install in destinations with "quirky" paths, such as paths
containing spaces in the directory name, etc.

## Testing the packaged install ("Automated Installer"):

Download the
[InvokeAI-installer-v2.3.0+a0.zip](https://github.com/invoke-ai/InvokeAI/files/10533913/InvokeAI-installer-v2.3.0%2Ba0.zip)
file, unzip it, and run the install script for your platform (preferably
in a terminal window)

OR make your own: from the cloned source, check out this branch, and:

```
cd installer
./create_installer.sh
# (do NOT tag/push when prompted! just say "no")
```

This will create the installation media:
`InvokeAI-installer-v2.3.0+a0.zip`. The installer is now
*platform-agnostic* - meaning, both Windows and *nix install resources
are packaged together.

Copy it somewhere as if it had been downloaded from the internet. Unzip
the file, enter the created `InvokeAI-Installer` directory, and run
`install.sh` or `install.bat` as applicable your platform.

⚠️ NOTE!!! `install.sh` accepts the same arguments as are
applicable to the Python script, i.e. you can `install.sh --yes --root
....`. This is NOT yet supported by the Windows `.bat` script. Only
interactive installation is supported on Windows. (this is still a
TODO).
2023-02-02 16:08:10 -05:00
Lincoln Stein
2202288eb2
Merge branch 'main' into dev/installer 2023-02-02 15:17:40 -05:00
Lincoln Stein
fc3378bb74
Load legacy ckpt files as diffusers models (#2468)
* refactor ckpt_to_diffuser to allow converted pipeline to remain in memory

- This idea was introduced by Damian
- Note that although I attempted to use the updated HuggingFace module
  pipelines/stable_diffusion/convert_from_ckpt.py, it was unable to
  convert safetensors files for reasons I didn't dig into.
- Default is to extract EMA weights.

* add --ckpt_convert option to load legacy ckpt files as diffusers models

- not quite working - I'm getting artifacts and glitches in the
  converted diffuser models
- leave as draft for time being

* do not include safety checker in converted files

* add ability to control which vae is used

API now allows the caller to pass an external VAE model to the
checkpoint conversion process. In this way, if an external VAE is
specified in the checkpoint's config stanza, this VAE will be used
when constructing the diffusers model.

Tested with both regular and inpainting 1.X models.

Not tested with SD 2.X models!

---------

Co-authored-by: Jonathan <34005131+JPPhoto@users.noreply.github.com>
Co-authored-by: Damian Stewart <null@damianstewart.com>
2023-02-02 20:15:44 +00:00
Lincoln Stein
96228507d2
Merge branch 'main' into dev/installer 2023-02-02 14:30:35 -05:00
Lincoln Stein
1fe5ec32f5
Swap codeowners for installer (#2477)
This PR changes the codeowner for the installer directory from
@tildebyte to @ebr due to the former's time commitments.

Further reorganization of the codeowners is pending.
2023-02-02 14:27:31 -05:00
Lincoln Stein
6dee9051a1 swap codeowners for installer 2023-02-02 13:54:53 -05:00
Lincoln Stein
d58574ca46
Merge branch 'main' into dev/installer 2023-02-02 13:53:11 -05:00
Lincoln Stein
d282000c05 swap tildebyte to ebr as code owner 2023-02-02 13:52:45 -05:00
Kevin Turner
80c5322ccc
fix(img2img): do not attempt to do a zero-step img2img when strength is low (#2472) 2023-02-02 10:04:09 -08:00
Kevin Turner
da181ce64e
Merge branch 'main' into fix/img2img-low-strength 2023-02-02 09:40:16 -08:00
Kevin Turner
5ef66ca237
Fix typo in xformers version, 0.16 -> 0.0.16 (#2475) 2023-02-02 09:39:08 -08:00
Lincoln Stein
e99e720474 resolve conflicts with main and rebuild frontend 2023-02-02 11:00:33 -05:00
Kevin Turner
7aa331af8c
Merge branch 'main' into fix/img2img-low-strength 2023-02-02 07:20:34 -08:00
noodlebox
9e943ff7dc Fix typo in xformers version, 0.16 -> 0.0.16 2023-02-02 05:26:15 -05:00
Kent Keirsey
b5040ba8d0 Build 2023-02-02 22:52:03 +13:00
Kent Keirsey
07462d1d99 Remove Inpaint Replace 2023-02-02 22:52:03 +13:00
Eugene Brodsky
d273fba42c (installer) upgrade pip in python3.9 environments 2023-02-02 01:30:47 -05:00
Eugene Brodsky
735545dca1 (installer) remove pip from bootstrap venv requirements as it was breaking bootstrapping 2023-02-02 01:18:02 -05:00
Eugene Brodsky
328f87559b (installer) remove leftover debug logs; fix typo 2023-02-02 01:03:51 -05:00
Eugene Brodsky
6f10b06a0c (installer) clarify user messaging during destination directory selection 2023-02-02 01:03:51 -05:00
Eugene Brodsky
fd60c8297d (package) provide more legacy aliases to entrypoints to minimize user surprise 2023-02-02 01:03:51 -05:00
Lincoln Stein
480064fa06 pip won't install itself without --upgrade 2023-02-02 00:48:53 -05:00
Lincoln Stein
3810d6a4ce numerous tweaks
1. only load triton on linux machines
2. require pip >= 23.0 so that editable installs can run without setup.py
3. model files default to SD-1.5, not 2.1
4. use diffusers model of inpainting rather than ckpt
5. selected a new set of initial models based on # of likes at huggingface
2023-02-02 00:28:38 -05:00
Kevin Turner
44d36a0e0b fix(img2img): do not attempt to do a zero-step img2img when strength is low 2023-02-01 18:42:54 -08:00
Lincoln Stein
3996ee843c fix bugs in launcher script installation
- launcher scripts are installed *before* the configure script runs,
  so that if something goes wrong in the configure script, the user
  can run invoke.{sh,bat} and get the option to re-run configure
- fixed typo in invoke.sh which misspelled name of invokeai-configure
2023-02-01 19:14:07 -05:00
Lincoln Stein
6d966313b9 add a --find-links argument to import custom wheels 2023-02-01 19:03:15 -05:00
Lincoln Stein
8ce9f07223
Merge branch 'main' into dev/installer 2023-02-01 17:50:22 -05:00
Lincoln Stein
11ac50a6ea install xformers and triton when CUDA torch requested 2023-02-01 17:41:38 -05:00
Matthias Wild
31146eb797
add workflow to clean caches after PR gets closed (#2450)
This helps at least a bit to get rid of all those huge caches
2023-02-01 19:06:07 +01:00
mauwii
99cd598334 add workflow to clean caches after PR gets closed 2023-02-01 18:32:29 +01:00
Lincoln Stein
5441be8169
requirements: add xformers for CUDA platforms (#2465)
[xformers
0.16](https://github.com/facebookresearch/xformers/releases/tag/v0.0.16)
was released earlier today, and is now installable from wheels on PyPI!

Fixes #1876.
2023-02-01 10:59:13 -05:00
Lincoln Stein
3e98b50b62
Merge branch 'main' into req-xformers 2023-02-01 10:29:49 -05:00
Lincoln Stein
5f16148dea
Prevent actions from running on draft PRs (#2457)
Draft PRs are triggering actions on every commit (except
`test-invoke-pip.yml`).

I've added a conditional to each job to only run when the PR is not a
draft.

(maybe there is a reason we are running all applicable workflows on
draft PRs?)
2023-02-01 00:33:15 -05:00
Lincoln Stein
9628d45a92
Merge branch 'main' into build/no-actions-on-draft 2023-02-01 00:15:30 -05:00
Eugene Brodsky
6cbdd88fe2 (installer) correctly call invokeai entrypoints in .bat launch script 2023-02-01 00:08:18 -05:00
Eugene Brodsky
d423db4f82 (meta) add copyright statements for installer code 2023-01-31 23:47:36 -05:00
Eugene Brodsky
5c8c204a1b (installer) fix regression in directory selection 2023-01-31 23:47:36 -05:00
Eugene Brodsky
a03471c588 (installer) hide system and user site packages from the installer 2023-01-31 23:47:36 -05:00
Kevin Turner
6608343455
[enhancement] Print status message at startup when xformers is available (#2461) 2023-01-31 19:11:17 -08:00
Kevin Turner
abd972f099
Merge branch 'main' into feat/xformers-startup-message 2023-01-31 18:48:09 -08:00