- Restructure & update code check workflows
- Add release workflow to handle checks/tests, build and publish to PyPI
- Add docs/RELEASE.md explaining the workflow & process
- `create_installer.sh`: Update to work with the release workflow
- `create_installer.sh` & `tag_release.sh`: Fix the ANSI escape codes for macOS
- `tag_release.sh`: Add check for python binary name
- `tag_release.sh`: Print `git remote -v` output
- `tag_release.sh`: Fix error when deleting nonexistant tags
In other words, build frontend when creating installer.
Changes to `create_installer.sh`
- If `python` is not in `PATH` but `python3` is, alias them (well, via function). This is needed on some machines to run the installer without symlinking to `python3`.
- Make the messages about pushing tags clearer. The script force-pushes, so it's possible to accidentally take destructive action. I'm not sure how to otherwise prevent damage, so I just added a warning.
- Print out `pwd` when prompting about being in the `installer` dir.
- Rebuild the frontend - if there is already a frontend build, first checks if the user wants to rebuild it.
- Checks for existence of `../build` dir before deleting - if the dir doesn't exist, the script errors and exits at this point.
- Format and spell check.
Other changes:
- Ignore `dist/` folder.
- Delete `dist/`.
**Note: you may need to use `git rm --cached invokeai/app/frontend/web/dist/` if git still wants to track `dist/`.**
- Rename configure_invokeai.py to invokeai_configure.py to be
consistent with installed script name
- Remove warning message about half-precision models not being
available during the model download process.
- adjust estimated file size reported by configure
- guesstimate disk space needed for "all" models
- fix up the "latest" tag to be named 'v2.3-latest'
* update version number
* print version number at startup
* move version number into ldm/invoke/_version.py
* bump version to 2.2.6+a0
* handle whitespace better
* resolve issues raised by mauwii during PR review
1. create_installers.sh now asks before tagging and committing the
current repo
2. trailing whitespace removed from user-provided location of invokeai
directory in install.bat
* installer tweaks in preparation for v2.2.5
- pin numpy to 1.23.* to avoid requirements conflict with numba
- update.sh and update.bat now accept a tag or branch string, not a URL
- update scripts download latest requirements-base before updating.
* update.bat.in debugged and working
* update pulls from "latest" now
* bump version number
* fix permissions on create_installer.sh
* give Linux user option of installing ROCm or CUDA
* rc2.2.5 (install.sh) relative path fixes (#2155)
* (installer) fix bug in resolution of relative paths in linux install script
point installer at 2.2.5-rc1
selecting ~/Data/myapps/ as location would create a ./~/Data/myapps
instead of expanding the ~/ to the value of ${HOME}
also, squash the trailing slash in path, if it was entered by the user
* (installer) add option to automatically start the app after install
also: when exiting, print the command to get back into the app
* remove extraneous whitespace
* model_cache applies rootdir to config path
* bring installers up to date with 2.2.5-rc2
* bump rc version
* create_installer now adds version number
* rebuild frontend
* bump rc#
* add locales to frontend dist package
- bump to patchlevel 6
* bump patchlevel
* use invoke-ai version of GFPGAN
- This version is very slightly modified to allow weights files
to be pre-downloaded by the configure script.
* fix formatting error during startup
* bump patch level
* workaround #2 for GFPGAN facexlib() weights downloading
* bump patch
* ready for merge and release
* remove extraneous comment
* set PYTORCH_ENABLE_MPS_FALLBACK directly in invoke.py
Co-authored-by: Eugene Brodsky <ebr@users.noreply.github.com>
* add --version to invoke.py arguments
This commit allows invoke.py to print out its name and version
number when given the --version argument. I had to move some
status messages around in order to make the output clean.
There is still an early message about initializing patchmatch
that interferes with a clean print of the version, and in fact the
--no-patchmatch argument is not doing anything. This will be the
subject of a subsequent PR.
* export APP_ID and APP_VERSION
Needed to support the web backend.
* remove redundant code line
install.bat was copying the requirements file into the install folder
twice, causing an error message on the second try. This fixes the
issue.
* add further improvements to installer
- Windows version will unzip to have requirements.txt already in
the right location, to prevent problems when users try to run
the .bat script from within a mounted read-only zip file manager.
- Do not assume that "pip" is on the path in either the .bat or shell
versions of the update script.
* add logic for finding the root (runtime) directory
This commit fixes the root search logic to be as follows:
1) The `--root_dir` command line argument
2) The contents of environment variable INVOKEAI_ROOT
3) The VIRTUAL_ENV environment variable, plus '..'
4) $HOME/invokeai
(3) is the new feature. Since we are now recommending to install
InvokeAI and its dependencies into the .venv in the root directory,
this should be a reliable choice.
* make installer scripts more robust
This commits improves the installer .sh and .bat scripts in the following
ways:
1. They now handle folder/directory names containing spaces.
2. Pip will be installed into the .venv using the `ensurepip`
module.
This addresses issues identified by @vargol in Issue #1941
* add --prefer-binary option to pip install
* fix unset variable crash
* add patch level to zip file name
* Fix crash introduced in #1948
* partially working simple installer
* works on linux
* fix linux requirements files
* read root environment variable in right place
* fix cat invokeai.init in test workflows
* fix classical cp error in test-invoke-pip.yml
* respect --root argument now
* untested bat installers added
* windows install.bat now working
fix logic to find frontend files
* rename simple_install to "installer"
1. simple_install => 'installer'
2. source and binary install directories are removed
* enable update scripts to update requirements
- Also pin requirements to known working commits.
- This may be a breaking change; exercise with caution
- No functional testing performed yet!
* update docs and installation requirements
NOTE: This may be a breaking commit! Due to the way the installer
works, I have to push to a public branch in order to do full end-to-end
testing.
- Updated installation docs, removing binary and source installers and
substituting the "simple" unified installer.
- Pin requirements for the "http:" downloads to known working commits.
- Removed as much as possible the invoke-ai forks of others' repos.
* fix directory path for installer
* correct requirement/environment errors
* exclude zip files in .gitignore
* possible fix for dockerbuild
* ready for torture testing
- final Windows bat file tweaks
- copy environments-and-requirements to the runtime directory so that
the `update.sh` script can run.
This is not ideal, since we lose control over the
requirements. Better for the update script to pull the proper
updated requirements script from the repository.
* allow update.sh/update.bat to install arbitrary InvokeAI versions
- Can pass the zip file path to any InvokeAI release, branch, commit or tag,
and the installer will try to install it.
- Updated documentation
- Added Linux Python install hints.
* use binary installer's :err_exit function
* user diffusers 0.10.0
* added logic for CPPFLAGS on mac
* improve windows install documentation
- added information on a couple of gotchas I experienced during
windows installation, including DLL loading errors experienced
when Visual Studio C++ Redistributable was not present.
* tagged to pull from 2.2.4-rc1
- also fix error of shell window closing immediately if suitable
python not found
Co-authored-by: mauwii <Mauwii@outlook.de>