mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Compare commits
16 Commits
Model-Add-
...
2.2.5-rc4
Author | SHA1 | Date | |
---|---|---|---|
83df5c211c | |||
75f07dd22e | |||
060eff5dad | |||
5d00831f71 | |||
d74ed7e974 | |||
451750229d | |||
080fe48106 | |||
ff0eb56c96 | |||
006123aa32 | |||
540da32bd5 | |||
aa084b205f | |||
49f97f994a | |||
211d7be03d | |||
7d99416cc9 | |||
f60bf9e1e6 | |||
fce7b5466a |
@ -14,7 +14,7 @@ huggingface-hub
|
|||||||
imageio
|
imageio
|
||||||
imageio-ffmpeg
|
imageio-ffmpeg
|
||||||
kornia
|
kornia
|
||||||
numpy
|
numpy==1.23.*
|
||||||
omegaconf
|
omegaconf
|
||||||
opencv-python
|
opencv-python
|
||||||
picklescan
|
picklescan
|
||||||
|
48
frontend/dist/assets/index-legacy-b741077f.js
vendored
48
frontend/dist/assets/index-legacy-b741077f.js
vendored
File diff suppressed because one or more lines are too long
625
frontend/dist/assets/index.21ff81eb.js
vendored
625
frontend/dist/assets/index.21ff81eb.js
vendored
File diff suppressed because one or more lines are too long
4
frontend/dist/index.html
vendored
4
frontend/dist/index.html
vendored
@ -7,7 +7,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>InvokeAI - A Stable Diffusion Toolkit</title>
|
<title>InvokeAI - A Stable Diffusion Toolkit</title>
|
||||||
<link rel="shortcut icon" type="icon" href="./assets/favicon.0d253ced.ico" />
|
<link rel="shortcut icon" type="icon" href="./assets/favicon.0d253ced.ico" />
|
||||||
<script type="module" crossorigin src="./assets/index.21ff81eb.js"></script>
|
<script type="module" crossorigin src="./assets/index.e5f9e8aa.js"></script>
|
||||||
<link rel="stylesheet" href="./assets/index.0dadf5d0.css">
|
<link rel="stylesheet" href="./assets/index.0dadf5d0.css">
|
||||||
<script type="module">try{import.meta.url;import("_").catch(()=>1);}catch(e){}window.__vite_is_modern_browser=true;</script>
|
<script type="module">try{import.meta.url;import("_").catch(()=>1);}catch(e){}window.__vite_is_modern_browser=true;</script>
|
||||||
<script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy build because dynamic import or import.meta.url is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
|
<script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy build because dynamic import or import.meta.url is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
|
||||||
@ -18,6 +18,6 @@
|
|||||||
|
|
||||||
<script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
|
<script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
|
||||||
<script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-dde3a68a.js"></script>
|
<script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-dde3a68a.js"></script>
|
||||||
<script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-b741077f.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
|
<script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-800da7d6.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
19
installer/create_installer.sh
Normal file → Executable file
19
installer/create_installer.sh
Normal file → Executable file
@ -3,7 +3,8 @@
|
|||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
VERSION=$(grep ^VERSION ../setup.py | awk '{ print $3 }' | sed "s/'//g" )
|
VERSION=$(grep ^VERSION ../setup.py | awk '{ print $3 }' | sed "s/'//g" )
|
||||||
VERSION="$VERSION-p5"
|
PATCH="-rc4"
|
||||||
|
VERSION="${VERSION}${PATCH}"
|
||||||
|
|
||||||
echo "Be certain that you're in the 'installer' directory before continuing."
|
echo "Be certain that you're in the 'installer' directory before continuing."
|
||||||
read -p "Press any key to continue, or CTRL-C to exit..."
|
read -p "Press any key to continue, or CTRL-C to exit..."
|
||||||
@ -23,7 +24,7 @@ cp -pr ../configs InvokeAI-Installer/templates/rootdir/
|
|||||||
|
|
||||||
mkdir InvokeAI-Installer/templates/rootdir/{outputs,embeddings,models}
|
mkdir InvokeAI-Installer/templates/rootdir/{outputs,embeddings,models}
|
||||||
|
|
||||||
cp install.sh.in InvokeAI-Installer/install.sh
|
perl -p -e "s/^INVOKEAI_VERSION=.*/INVOKEAI_VERSION=\"$VERSION\"/" install.sh.in > InvokeAI-Installer/install.sh
|
||||||
chmod a+rx InvokeAI-Installer/install.sh
|
chmod a+rx InvokeAI-Installer/install.sh
|
||||||
|
|
||||||
zip -r InvokeAI-installer-$VERSION-linux.zip InvokeAI-Installer
|
zip -r InvokeAI-installer-$VERSION-linux.zip InvokeAI-Installer
|
||||||
@ -31,7 +32,7 @@ zip -r InvokeAI-installer-$VERSION-mac.zip InvokeAI-Installer
|
|||||||
|
|
||||||
# now do the windows installer
|
# now do the windows installer
|
||||||
rm InvokeAI-Installer/install.sh
|
rm InvokeAI-Installer/install.sh
|
||||||
cp install.bat.in InvokeAI-Installer/install.bat
|
perl -p -e "s/^set INVOKEAI_VERSION=.*/set INVOKEAI_VERSION=$VERSION/" install.bat.in > InvokeAI-Installer/install.bat
|
||||||
cp WinLongPathsEnabled.reg InvokeAI-Installer/
|
cp WinLongPathsEnabled.reg InvokeAI-Installer/
|
||||||
|
|
||||||
# this gets rid of the "-e ." at the end of the windows requirements file
|
# this gets rid of the "-e ." at the end of the windows requirements file
|
||||||
@ -40,8 +41,18 @@ egrep -v '^-e .' InvokeAI-Installer/environments-and-requirements/requirements-w
|
|||||||
cp InvokeAI-Installer/requirements.txt InvokeAI-Installer/environments-and-requirements/requirements-win-colab-cuda.txt
|
cp InvokeAI-Installer/requirements.txt InvokeAI-Installer/environments-and-requirements/requirements-win-colab-cuda.txt
|
||||||
zip -r InvokeAI-installer-$VERSION-windows.zip InvokeAI-Installer
|
zip -r InvokeAI-installer-$VERSION-windows.zip InvokeAI-Installer
|
||||||
|
|
||||||
|
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
|
rm -rf InvokeAI-Installer tmp
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -13,9 +13,10 @@ if "%1" == "use-cache" (
|
|||||||
)
|
)
|
||||||
|
|
||||||
@rem Config
|
@rem Config
|
||||||
@rem this should be changed to the tagged release!
|
@rem The version in the next line is replaced by an up to date release number
|
||||||
@rem set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
@rem when create_installer.sh is run. Change the release number there.
|
||||||
set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip
|
set INVOKEAI_VERSION=latest
|
||||||
|
set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/%INVOKEAI_VERSION%.zip
|
||||||
set INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
set INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
||||||
set TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
set TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
||||||
set PYTHON_URL=https://www.python.org/downloads/windows/
|
set PYTHON_URL=https://www.python.org/downloads/windows/
|
||||||
|
@ -4,13 +4,15 @@
|
|||||||
scriptdir=$(dirname "$0")
|
scriptdir=$(dirname "$0")
|
||||||
cd "$scriptdir"
|
cd "$scriptdir"
|
||||||
|
|
||||||
|
# This version number will be replaced by the one supplied to create_installers.sh.
|
||||||
|
# Do not change it here - change it in create_installers.sh.
|
||||||
|
INVOKEAI_VERSION="latest"
|
||||||
|
|
||||||
# make sure we are not already in a venv
|
# make sure we are not already in a venv
|
||||||
# (don't need to check status)
|
# (don't need to check status)
|
||||||
deactivate >/dev/null 2>&1
|
deactivate >/dev/null 2>&1
|
||||||
|
|
||||||
# this should be changed to the tagged release!
|
INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/${INVOKEAI_VERSION}.zip
|
||||||
# INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
|
||||||
INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip
|
|
||||||
INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
||||||
TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
||||||
MINIMUM_PYTHON_VERSION=3.9.0
|
MINIMUM_PYTHON_VERSION=3.9.0
|
||||||
@ -44,7 +46,7 @@ function readinput() {
|
|||||||
local i="$1"
|
local i="$1"
|
||||||
case "$i" in
|
case "$i" in
|
||||||
"-i")
|
"-i")
|
||||||
if read -i "default" 2>/dev/null <<< "test"; then
|
if read -i "default" 2>/dev/null <<< "test"; then
|
||||||
CLEAN_ARGS="$CLEAN_ARGS -i \"$2\""
|
CLEAN_ARGS="$CLEAN_ARGS -i \"$2\""
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
@ -94,7 +96,7 @@ echo "Installing for $OS_NAME-$OS_ARCH"
|
|||||||
PYTHON=""
|
PYTHON=""
|
||||||
for candidate in python3.10 python3.9 python3 python python3.11 ; do
|
for candidate in python3.10 python3.9 python3 python python3.11 ; do
|
||||||
if ppath=`which $candidate`; then
|
if ppath=`which $candidate`; then
|
||||||
python_version=$($ppath -V | awk '{ print $2 }')
|
python_version=$($ppath -V | awk '{ print $2 }')
|
||||||
if [ $(version $python_version) -ge $(version "$MINIMUM_PYTHON_VERSION") ]; then
|
if [ $(version $python_version) -ge $(version "$MINIMUM_PYTHON_VERSION") ]; then
|
||||||
PYTHON=$ppath
|
PYTHON=$ppath
|
||||||
echo Python $python_version found at $PYTHON
|
echo Python $python_version found at $PYTHON
|
||||||
@ -117,6 +119,10 @@ do
|
|||||||
echo
|
echo
|
||||||
readinput -e -p "Select your preferred location for the 'invokeai' directory [$HOME]: " -i $HOME input
|
readinput -e -p "Select your preferred location for the 'invokeai' directory [$HOME]: " -i $HOME input
|
||||||
ROOTDIR=${input:=$HOME}/invokeai
|
ROOTDIR=${input:=$HOME}/invokeai
|
||||||
|
|
||||||
|
# This is surprisingly hard to do in plain Bash; easier in ZSH. Just running python in subshell is easiest.
|
||||||
|
ROOTDIR=$(python -c "from pathlib import Path; print(Path('${ROOTDIR}').expanduser().resolve())")
|
||||||
|
|
||||||
read -e -p "InvokeAI will be installed into $ROOTDIR. OK? [y]: " input
|
read -e -p "InvokeAI will be installed into $ROOTDIR. OK? [y]: " input
|
||||||
RESPONSE=${input:='y'}
|
RESPONSE=${input:='y'}
|
||||||
if [ "$RESPONSE" == 'y' ]; then
|
if [ "$RESPONSE" == 'y' ]; then
|
||||||
@ -126,7 +132,7 @@ do
|
|||||||
RESPONSE=${input:='y'}
|
RESPONSE=${input:='y'}
|
||||||
if [ "$RESPONSE" != 'y' ]; then
|
if [ "$RESPONSE" != 'y' ]; then
|
||||||
ROOTDIR=""
|
ROOTDIR=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
mkdir -p "$ROOTDIR"
|
mkdir -p "$ROOTDIR"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
@ -166,8 +172,15 @@ if [ "$OS_NAME" == "osx" ]; then
|
|||||||
egrep -v '^-e .' environments-and-requirements/requirements-mac-mps-cpu.txt >requirements.txt
|
egrep -v '^-e .' environments-and-requirements/requirements-mac-mps-cpu.txt >requirements.txt
|
||||||
else
|
else
|
||||||
if (lsmod | grep amdgpu) &>/dev/null ; then
|
if (lsmod | grep amdgpu) &>/dev/null ; then
|
||||||
echo "Linux system with AMD GPU driver detected. Installing ROCm and CPU support"
|
readinput -e -p "Linux system with AMD GPU driver detected. Install ROCm AMD accelerated support? (Otherwise, CUDA support will be installed) [n]: " input
|
||||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-amd.txt >requirements.txt
|
RESPONSE=${input:='n'}
|
||||||
|
if [ "$RESPONSE" != "n" ]; then
|
||||||
|
echo "Installing ROCm (AMD) support"
|
||||||
|
egrep -v '^-e .' environments-and-requirements/requirements-lin-amd.txt >requirements.txt
|
||||||
|
else
|
||||||
|
echo "Installing CUDA support"
|
||||||
|
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "Linux system detected. Installing CUDA and CPU support."
|
echo "Linux system detected. Installing CUDA and CPU support."
|
||||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
||||||
@ -209,4 +222,13 @@ chmod a+rx "$ROOTDIR"/invoke.sh
|
|||||||
cp templates/update.sh.in "$ROOTDIR"/update.sh
|
cp templates/update.sh.in "$ROOTDIR"/update.sh
|
||||||
chmod a+rx "$ROOTDIR"/update.sh
|
chmod a+rx "$ROOTDIR"/update.sh
|
||||||
|
|
||||||
echo "You may now run InvokeAI by entering the directory $ROOTDIR and running invoke.sh"
|
echo "You may now run InvokeAI by entering the directory $ROOTDIR and running invoke.sh:"
|
||||||
|
echo
|
||||||
|
echo " ${ROOTDIR}/invoke.sh"
|
||||||
|
echo
|
||||||
|
|
||||||
|
read -e -p "Run InvokeAI now? [y]:" input
|
||||||
|
RESPONSE=${input:='y'}
|
||||||
|
if [ "$RESPONSE" == 'y' ]; then
|
||||||
|
exec ${ROOTDIR}/invoke.sh
|
||||||
|
fi
|
||||||
|
@ -11,9 +11,9 @@ cd "$scriptdir"
|
|||||||
export INVOKEAI_ROOT="$scriptdir"
|
export INVOKEAI_ROOT="$scriptdir"
|
||||||
|
|
||||||
# set required env var for torch on mac MPS
|
# set required env var for torch on mac MPS
|
||||||
if [ "$(uname -s)" == "Darwin" ]; then
|
if [ "$(uname -s)" == "Darwin" ]; then
|
||||||
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$0" != "bash" ]; then
|
if [ "$0" != "bash" ]; then
|
||||||
echo "Do you want to generate images using the"
|
echo "Do you want to generate images using the"
|
||||||
|
@ -3,48 +3,66 @@ setlocal EnableExtensions EnableDelayedExpansion
|
|||||||
|
|
||||||
PUSHD "%~dp0"
|
PUSHD "%~dp0"
|
||||||
|
|
||||||
set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
set INVOKE_AI_VERSION=latest
|
||||||
set arg=%1
|
set arg=%1
|
||||||
if "%arg%" neq "" (
|
if "%arg%" neq "" (
|
||||||
if "%arg:~0,4%" neq "http" (
|
if "%arg:~0,2%" equ "/?" (
|
||||||
echo Usage: update.bat ^<release URL^>.zip
|
echo Usage: update.bat ^<release name or branch^>
|
||||||
echo Updates InvokeAI to use the indicated version of the code base.
|
echo Updates InvokeAI to use the indicated version of the code base.
|
||||||
echo Find the zip file for the release you want, and pass it as the argument.
|
echo Find the version or branch for the release you want, and pass it as the argument.
|
||||||
echo For example update.sh https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip
|
echo For example '.\update.bat v2.2.5' for release 2.2.5.
|
||||||
echo.
|
echo '.\update.bat main' for the latest development version
|
||||||
echo If no argument provided then will install the most recent development version, equivalent to
|
echo.
|
||||||
echo update.bat https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
echo If no argument provided then will install the most recent release, equivalent to
|
||||||
exit /b
|
echo '.\update.bat latest'
|
||||||
|
exit /b
|
||||||
) else (
|
) else (
|
||||||
set INVOKE_AI_SRC=%arg%
|
set INVOKE_AI_VERSION=%arg%
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/!INVOKE_AI_VERSION!.zip"
|
||||||
call .venv\Scripts\activate.bat
|
set INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/!INVOKE_AI_VERSION!/environments-and-requirements/requirements-base.txt
|
||||||
|
|
||||||
|
call curl -I "%INVOKE_AI_DEP%" -fs >.tmp.out
|
||||||
|
if %errorlevel% neq 0 (
|
||||||
|
echo '!INVOKE_AI_VERSION!' is not a known branch name or tag. Please check the version and try again.
|
||||||
|
echo "Press any key to continue"
|
||||||
|
pause
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
del .tmp.out
|
||||||
|
|
||||||
echo This script will update InvokeAI and all its dependencies to !INVOKE_AI_SRC!.
|
echo This script will update InvokeAI and all its dependencies to !INVOKE_AI_SRC!.
|
||||||
echo If you do not want to do this, press control-C now!
|
echo If you do not want to do this, press control-C now!
|
||||||
pause
|
pause
|
||||||
|
|
||||||
|
call curl -L "%INVOKE_AI_DEP%" > environments-and-requirements/requirements-base.txt
|
||||||
|
|
||||||
|
call .venv\Scripts\activate.bat
|
||||||
call .venv\Scripts\python -mpip install -r requirements.txt
|
call .venv\Scripts\python -mpip install -r requirements.txt
|
||||||
if %errorlevel% neq 0 (
|
if %errorlevel% neq 0 (
|
||||||
echo Installation of requirements failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
echo Installation of requirements failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||||
|
pause
|
||||||
exit /b
|
exit /b
|
||||||
)
|
)
|
||||||
|
|
||||||
call .venv\Scripts\python -mpip install !INVOKE_AI_SRC!
|
call .venv\Scripts\python -mpip install !INVOKE_AI_SRC!
|
||||||
if %errorlevel% neq 0 (
|
if %errorlevel% neq 0 (
|
||||||
echo Installation of InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
echo Installation of InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||||
|
pause
|
||||||
exit /b
|
exit /b
|
||||||
)
|
)
|
||||||
|
|
||||||
call .venv\Scripts\python .venv\Scripts\configure_invokeai.py --root=.
|
@rem call .venv\Scripts\python .venv\Scripts\configure_invokeai.py --root=.
|
||||||
|
|
||||||
if %errorlevel% neq 0 (
|
@rem if %errorlevel% neq 0 (
|
||||||
echo Configuration InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
@rem echo Configuration InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||||
exit /b
|
@rem pause
|
||||||
)
|
@rem exit /b
|
||||||
|
@rem )
|
||||||
|
|
||||||
|
echo InvokeAI has been updated to '%INVOKE_AI_VERSION%'
|
||||||
|
|
||||||
echo "Press any key to continue"
|
echo "Press any key to continue"
|
||||||
pause
|
pause
|
||||||
|
@ -2,18 +2,22 @@
|
|||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
if [ $# -ge 1 ] && [ "${1:0:4}" != "http" ]; then
|
if [ $# -ge 1 ] && [ "${1:0:2}" == "-h" ]; then
|
||||||
echo "Usage: update.sh <release URL>.zip"
|
echo "Usage: update.sh <release>"
|
||||||
echo "Updates InvokeAI to use the indicated version of the code base."
|
echo "Updates InvokeAI to use the indicated version of the code base."
|
||||||
echo "Find the zip file for the release you want, and pass it as the argument."
|
echo "Find the version or branch for the release you want, and pass it as the argument."
|
||||||
echo "For example update.sh https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.3.zip"
|
echo "For example: update.sh v2.2.5 for release 2.2.5."
|
||||||
|
echo " update.sh main for the current development version."
|
||||||
echo ""
|
echo ""
|
||||||
echo "If no argument provided then will install the most recent development version, equivalent to"
|
echo "If no argument provided then will install the version tagged with 'latest', equivalent to"
|
||||||
echo "update.sh https://github.com/invoke-ai/InvokeAI/archive/main.zip"
|
echo "update.sh latest"
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
INVOKE_AI_VERSION=${1:-latest}
|
||||||
|
|
||||||
INVOKE_AI_SRC=${1:-https://github.com/invoke-ai/InvokeAI/archive/main.zip}
|
INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/$INVOKE_AI_VERSION.zip"
|
||||||
|
INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/$INVOKE_AI_VERSION/environments-and-requirements/requirements-base.txt
|
||||||
|
|
||||||
# ensure we're in the correct folder in case user's CWD is somewhere else
|
# ensure we're in the correct folder in case user's CWD is somewhere else
|
||||||
scriptdir=$(dirname "$0")
|
scriptdir=$(dirname "$0")
|
||||||
@ -30,10 +34,17 @@ function _err_exit {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
echo This script will update InvokeAI and all its dependencies from $INVOKE_AI_SRC.
|
if ! curl -I "$INVOKE_AI_DEP" -fs >/dev/null; then
|
||||||
|
echo \'$INVOKE_AI_VERSION\' is not a known branch name or tag. Please check the version and try again.
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo This script will update InvokeAI and all its dependencies to version \'$INVOKE_AI_VERSION\'.
|
||||||
echo If you do not want to do this, press control-C now!
|
echo If you do not want to do this, press control-C now!
|
||||||
read -p "Press any key to continue, or CTRL-C to exit..."
|
read -p "Press any key to continue, or CTRL-C to exit..."
|
||||||
|
|
||||||
|
curl -L "$INVOKE_AI_DEP" > environments-and-requirements/requirements-base.txt
|
||||||
|
|
||||||
. .venv/bin/activate
|
. .venv/bin/activate
|
||||||
|
|
||||||
./.venv/bin/python -mpip install -r requirements.txt
|
./.venv/bin/python -mpip install -r requirements.txt
|
||||||
@ -42,11 +53,7 @@ _err_exit $? "The pip program failed to install InvokeAI's requirements."
|
|||||||
./.venv/bin/python -mpip install $INVOKE_AI_SRC
|
./.venv/bin/python -mpip install $INVOKE_AI_SRC
|
||||||
_err_exit $? "The pip program failed to install InvokeAI."
|
_err_exit $? "The pip program failed to install InvokeAI."
|
||||||
|
|
||||||
./.venv/bin/python .venv/bin/configure_invokeai.py --root .
|
echo InvokeAI updated to \'$INVOKE_AI_VERSION\'
|
||||||
_err_exit $? "The configure script failed to run successfully."
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ./.venv/bin/python .venv/bin/configure_invokeai.py --root .
|
||||||
|
# _err_exit $? "The configure script failed to run successfully."
|
||||||
|
@ -135,7 +135,7 @@ def main():
|
|||||||
try:
|
try:
|
||||||
main_loop(gen, opt)
|
main_loop(gen, opt)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("\ngoodbye!")
|
print(f'\nGoodbye!\nYou can start InvokeAI again by running the "invoke.bat" (or "invoke.sh") script from {Globals.root}')
|
||||||
|
|
||||||
# TODO: main_loop() has gotten busy. Needs to be refactored.
|
# TODO: main_loop() has gotten busy. Needs to be refactored.
|
||||||
def main_loop(gen, opt):
|
def main_loop(gen, opt):
|
||||||
@ -410,7 +410,8 @@ def main_loop(gen, opt):
|
|||||||
output_cntr = write_log(results, log_path ,('txt', 'md'), output_cntr)
|
output_cntr = write_log(results, log_path ,('txt', 'md'), output_cntr)
|
||||||
print()
|
print()
|
||||||
|
|
||||||
print('goodbye!')
|
|
||||||
|
print(f'\nGoodbye!\nYou can start InvokeAI again by running the "invoke.bat" (or "invoke.sh") script from {Globals.root}')
|
||||||
|
|
||||||
# TO DO: remove repetitive code and the awkward command.replace() trope
|
# TO DO: remove repetitive code and the awkward command.replace() trope
|
||||||
# Just do a simple parse of the command!
|
# Just do a simple parse of the command!
|
||||||
|
@ -361,6 +361,8 @@ class ModelCache(object):
|
|||||||
Write current configuration out to the indicated file.
|
Write current configuration out to the indicated file.
|
||||||
'''
|
'''
|
||||||
yaml_str = OmegaConf.to_yaml(self.config)
|
yaml_str = OmegaConf.to_yaml(self.config)
|
||||||
|
if not os.path.isabs(config_file_path):
|
||||||
|
config_file_path = os.path.normpath(os.path.join(Globals.root,opt.conf))
|
||||||
tmpfile = os.path.join(os.path.dirname(config_file_path),'new_config.tmp')
|
tmpfile = os.path.join(os.path.dirname(config_file_path),'new_config.tmp')
|
||||||
with open(tmpfile, 'w') as outfile:
|
with open(tmpfile, 'w') as outfile:
|
||||||
outfile.write(self.preamble())
|
outfile.write(self.preamble())
|
||||||
|
2
setup.py
2
setup.py
@ -5,7 +5,7 @@ from setuptools import setup, find_packages
|
|||||||
def list_files(directory):
|
def list_files(directory):
|
||||||
return [os.path.join(directory,x) for x in os.listdir(directory) if os.path.isfile(os.path.join(directory,x))]
|
return [os.path.join(directory,x) for x in os.listdir(directory) if os.path.isfile(os.path.join(directory,x))]
|
||||||
|
|
||||||
VERSION = '2.2.4'
|
VERSION = '2.2.5'
|
||||||
DESCRIPTION = ('An implementation of Stable Diffusion which provides various new features'
|
DESCRIPTION = ('An implementation of Stable Diffusion which provides various new features'
|
||||||
' and options to aid the image generation process')
|
' and options to aid the image generation process')
|
||||||
LONG_DESCRIPTION = ('This version of Stable Diffusion features a slick WebGUI, an'
|
LONG_DESCRIPTION = ('This version of Stable Diffusion features a slick WebGUI, an'
|
||||||
|
Reference in New Issue
Block a user