InvokeAI/environment-mac.yml

60 lines
1.4 KiB
YAML
Raw Normal View History

2022-10-10 15:39:23 +00:00
name: invokeai
channels:
- pytorch
Move environment-mac.yaml to Python 3.9 and patch dream.py for Macs. I'm using stable-diffusion on a 2022 Macbook M2 Air with 24 GB unified memory. I see this taking about 2.0s/it. I've moved many deps from pip to conda-forge, to take advantage of the precompiled binaries. Some notes for Mac users, since I've seen a lot of confusion about this: One doesn't need the `apple` channel to run this on a Mac-- that's only used by `tensorflow-deps`, required for running tensorflow-metal. For that, I have an example environment.yml here: https://developer.apple.com/forums/thread/711792?answerId=723276022#723276022 However, the `CONDA_ENV=osx-arm64` environment variable *is* needed to ensure that you do not run any Intel-specific packages such as `mkl`, which will fail with [cryptic errors](https://github.com/CompVis/stable-diffusion/issues/25#issuecomment-1226702274) on the ARM architecture and cause the environment to break. I've also added a comment in the env file about 3.10 not working yet. When it becomes possible to update, those commands run on an osx-arm64 machine should work to determine the new version set. Here's what a successful run of dream.py should look like: ``` $ python scripts/dream.py --full_precision  SIGABRT(6) ↵  08:42:59 * Initializing, be patient... Loading model from models/ldm/stable-diffusion-v1/model.ckpt LatentDiffusion: Running in eps-prediction mode DiffusionWrapper has 859.52 M params. making attention of type 'vanilla' with 512 in_channels Working with z of shape (1, 4, 32, 32) = 4096 dimensions. making attention of type 'vanilla' with 512 in_channels Using slower but more accurate full-precision math (--full_precision) >> Setting Sampler to k_lms model loaded in 6.12s * Initialization done! Awaiting your command (-h for help, 'q' to quit) dream> "an astronaut riding a horse" Generating: 0%| | 0/1 [00:00<?, ?it/s]/Users/corajr/Documents/lstein/ldm/modules/embedding_manager.py:152: UserWarning: The operator 'aten::nonzero' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications. (Triggered internally at /Users/runner/work/_temp/anaconda/conda-bld/pytorch_1662016319283/work/aten/src/ATen/mps/MPSFallback.mm:11.) placeholder_idx = torch.where( 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [01:37<00:00, 1.95s/it] Generating: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [01:38<00:00, 98.55s/it] Usage stats: 1 image(s) generated in 98.60s Max VRAM used for this generation: 0.00G Outputs: outputs/img-samples/000001.1525943180.png: "an astronaut riding a horse" -s50 -W512 -H512 -C7.5 -Ak_lms -F -S1525943180 ```
2022-09-01 01:18:19 +00:00
- conda-forge
dependencies:
squash merge update-gh-actions into fix-gh-actions * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * remove 4gotten trigger * Update-gh-actions (#6) * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * use macos-latest * try to update conda before creating mac env * better conda update trial * re-pin streamlit version * re-added trigger to run workflow in current branch * try to find out if conda mac env could be updated * install cmake, protobuf and rust b4 conda * add yes to conda update * lets try anaconda3-2022.05 * try environment.yml for mac as well * reenable conda mac env, add pip install also fix gitignore by changing from dream to invoke * remove - unecesary virtualenv creation - conda update change != macos back to == linux * remove cmake from brew install since pre-installed * disable opencv-python pip requirement * fixed commands to find latest package versions * update requirements for mac env * back to the roots - only install conda env depending on runner_os with or without extra env variables * check out macOS in azure-pipelines since becoming kind of tired of the GitHub Runner which is broken as ... * let's try to setup python and update conda env * initialize conda before using it * add trigger in azure-pipelines.yml * And another go for update first .... * update azure-pipelines.yml - add caching - add checkpoint download - add paths to trigger and more * unquote checkpoint-url * fix chekpoint-url variable * mkdir before downloading model * set pr trigger to main, rename anaconda cache * unique cacheHitVariables * try to use macos-latest instead of macos-12 * update test-invoke-conda.yml: - remove unecesarry echo step - use s-weigand/setup-conda@v1 - remove conda update from install deps step since updated with action * update test-invoke-conda.yml: - rename conda env cache from ldm to invokeai - reorder steps: 1. checkout sources 2. setup python 3. setup conda 4. keep order after set platform variables * change macos back to 12 since also fails with 11 * update condition in run the tests make difference between main or not main * fix path to cache invokeai conda env * fix invokeai conda env cache path * update mkdocs-flow.yml * change conda-channel priority * update create-caches * update conda env also when cache was used * os dependend conda env cache path * use existing CONDA env pointing to conda root * create CONDA_ROOT output from $CONDA * use output variable to define test prompts * use setup-python v4, get rid of PYTHON_BIN env * add runner.os to result artifacts name * update test-invoke-conda.yml: - reuse macos-latest - disable setup python 3.9 - setup conda with default python version - create or update conda environment depending on cache success - remove name parameter from conda update since name is set in env yml * improve mkdocs-flow.yml * disable cache-hugginface-torch since preload_models.py downloads to more than one location * update mkdocs-flow.yml with new name * rename mkdocs action to mkdocs-material * try to ignore error when creating conda env maybe it would still be usable, lets see ;P * remove bloat * update environment-mac.yml to match dependencies of invoke-ai/InvokeAI's main branch * disable conda update, tweak prompt condition * try to set some env vars for macOS to fix conda * stop ignoring error, use env instead of outputs * tweak `[[` connditions * update python and pip dependencie makes a difference of 1 sec per itteration compared to 3.9!!! also I see no reason why using a old pip version would be beneficial * remove unecesarry env for macOS everything was pre-tested on my MacBook Air 2020 with M1 * update conda env in setup step * activate conda env after installation * update test-invoke-conda.yml - set conda env dependent on matrix.os - set CONDA_ENV_NAME to prevent breaking action when renaming conda env - fix conda env activation * fix activate conda env * set bash -l as default shell * use action to activate conda env * add conda env file to env activation * try to replace s-weigeand with conda-incubator * remove azure-pipelines.yml funniest part is that the macos runner is the same as the one on github! * include environment-file in matrix - also disable auto-activate-base and auto-update-conda - include macos-latest and macos-12 for debugging purpose - set miniforge-version in matrix * fix miniforge-variant, set fail-fast to false * add step to setup miniconda - make default shell a matrix variable - remove bloat * use a mac env yml without pinned versions * unpin nomkl, pytorch and torchvision also removed opencv-pyhton * cache conda pkgs dir instead of conda env * use python 3.10, exclude macos-12 from cache * fix expression * prepare for PR * fix doubled id * reuse pinned versions in mac conda env - updated python pip version - unpined pytorch and torchvision - removed opencv-python - updated versions to most recent (tested locally) * fix classical copy/paste error * remove unused env from shell-block comment * fix hashFiles function to determine restore-keys * reenable caching `~.cache`, update create-caches * unpin all versions in mac conda env file this was the only way I got it working in the action, also works locally tested on MacBook Air 2020 M1 remove environment-mac-unpinned.yml * prepare merge by removing this branch from trigger * include pull_request trigger for main and dev * remove pull_request trigger
2022-10-16 17:19:49 +00:00
- python>=3.10, <3.11
# pytorch left unpinned
squash merge update-gh-actions into fix-gh-actions * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * remove 4gotten trigger * Update-gh-actions (#6) * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * use macos-latest * try to update conda before creating mac env * better conda update trial * re-pin streamlit version * re-added trigger to run workflow in current branch * try to find out if conda mac env could be updated * install cmake, protobuf and rust b4 conda * add yes to conda update * lets try anaconda3-2022.05 * try environment.yml for mac as well * reenable conda mac env, add pip install also fix gitignore by changing from dream to invoke * remove - unecesary virtualenv creation - conda update change != macos back to == linux * remove cmake from brew install since pre-installed * disable opencv-python pip requirement * fixed commands to find latest package versions * update requirements for mac env * back to the roots - only install conda env depending on runner_os with or without extra env variables * check out macOS in azure-pipelines since becoming kind of tired of the GitHub Runner which is broken as ... * let's try to setup python and update conda env * initialize conda before using it * add trigger in azure-pipelines.yml * And another go for update first .... * update azure-pipelines.yml - add caching - add checkpoint download - add paths to trigger and more * unquote checkpoint-url * fix chekpoint-url variable * mkdir before downloading model * set pr trigger to main, rename anaconda cache * unique cacheHitVariables * try to use macos-latest instead of macos-12 * update test-invoke-conda.yml: - remove unecesarry echo step - use s-weigand/setup-conda@v1 - remove conda update from install deps step since updated with action * update test-invoke-conda.yml: - rename conda env cache from ldm to invokeai - reorder steps: 1. checkout sources 2. setup python 3. setup conda 4. keep order after set platform variables * change macos back to 12 since also fails with 11 * update condition in run the tests make difference between main or not main * fix path to cache invokeai conda env * fix invokeai conda env cache path * update mkdocs-flow.yml * change conda-channel priority * update create-caches * update conda env also when cache was used * os dependend conda env cache path * use existing CONDA env pointing to conda root * create CONDA_ROOT output from $CONDA * use output variable to define test prompts * use setup-python v4, get rid of PYTHON_BIN env * add runner.os to result artifacts name * update test-invoke-conda.yml: - reuse macos-latest - disable setup python 3.9 - setup conda with default python version - create or update conda environment depending on cache success - remove name parameter from conda update since name is set in env yml * improve mkdocs-flow.yml * disable cache-hugginface-torch since preload_models.py downloads to more than one location * update mkdocs-flow.yml with new name * rename mkdocs action to mkdocs-material * try to ignore error when creating conda env maybe it would still be usable, lets see ;P * remove bloat * update environment-mac.yml to match dependencies of invoke-ai/InvokeAI's main branch * disable conda update, tweak prompt condition * try to set some env vars for macOS to fix conda * stop ignoring error, use env instead of outputs * tweak `[[` connditions * update python and pip dependencie makes a difference of 1 sec per itteration compared to 3.9!!! also I see no reason why using a old pip version would be beneficial * remove unecesarry env for macOS everything was pre-tested on my MacBook Air 2020 with M1 * update conda env in setup step * activate conda env after installation * update test-invoke-conda.yml - set conda env dependent on matrix.os - set CONDA_ENV_NAME to prevent breaking action when renaming conda env - fix conda env activation * fix activate conda env * set bash -l as default shell * use action to activate conda env * add conda env file to env activation * try to replace s-weigeand with conda-incubator * remove azure-pipelines.yml funniest part is that the macos runner is the same as the one on github! * include environment-file in matrix - also disable auto-activate-base and auto-update-conda - include macos-latest and macos-12 for debugging purpose - set miniforge-version in matrix * fix miniforge-variant, set fail-fast to false * add step to setup miniconda - make default shell a matrix variable - remove bloat * use a mac env yml without pinned versions * unpin nomkl, pytorch and torchvision also removed opencv-pyhton * cache conda pkgs dir instead of conda env * use python 3.10, exclude macos-12 from cache * fix expression * prepare for PR * fix doubled id * reuse pinned versions in mac conda env - updated python pip version - unpined pytorch and torchvision - removed opencv-python - updated versions to most recent (tested locally) * fix classical copy/paste error * remove unused env from shell-block comment * fix hashFiles function to determine restore-keys * reenable caching `~.cache`, update create-caches * unpin all versions in mac conda env file this was the only way I got it working in the action, also works locally tested on MacBook Air 2020 M1 remove environment-mac-unpinned.yml * prepare merge by removing this branch from trigger * include pull_request trigger for main and dev * remove pull_request trigger
2022-10-16 17:19:49 +00:00
- pytorch
- torchvision
Move environment-mac.yaml to Python 3.9 and patch dream.py for Macs. I'm using stable-diffusion on a 2022 Macbook M2 Air with 24 GB unified memory. I see this taking about 2.0s/it. I've moved many deps from pip to conda-forge, to take advantage of the precompiled binaries. Some notes for Mac users, since I've seen a lot of confusion about this: One doesn't need the `apple` channel to run this on a Mac-- that's only used by `tensorflow-deps`, required for running tensorflow-metal. For that, I have an example environment.yml here: https://developer.apple.com/forums/thread/711792?answerId=723276022#723276022 However, the `CONDA_ENV=osx-arm64` environment variable *is* needed to ensure that you do not run any Intel-specific packages such as `mkl`, which will fail with [cryptic errors](https://github.com/CompVis/stable-diffusion/issues/25#issuecomment-1226702274) on the ARM architecture and cause the environment to break. I've also added a comment in the env file about 3.10 not working yet. When it becomes possible to update, those commands run on an osx-arm64 machine should work to determine the new version set. Here's what a successful run of dream.py should look like: ``` $ python scripts/dream.py --full_precision  SIGABRT(6) ↵  08:42:59 * Initializing, be patient... Loading model from models/ldm/stable-diffusion-v1/model.ckpt LatentDiffusion: Running in eps-prediction mode DiffusionWrapper has 859.52 M params. making attention of type 'vanilla' with 512 in_channels Working with z of shape (1, 4, 32, 32) = 4096 dimensions. making attention of type 'vanilla' with 512 in_channels Using slower but more accurate full-precision math (--full_precision) >> Setting Sampler to k_lms model loaded in 6.12s * Initialization done! Awaiting your command (-h for help, 'q' to quit) dream> "an astronaut riding a horse" Generating: 0%| | 0/1 [00:00<?, ?it/s]/Users/corajr/Documents/lstein/ldm/modules/embedding_manager.py:152: UserWarning: The operator 'aten::nonzero' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications. (Triggered internally at /Users/runner/work/_temp/anaconda/conda-bld/pytorch_1662016319283/work/aten/src/ATen/mps/MPSFallback.mm:11.) placeholder_idx = torch.where( 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [01:37<00:00, 1.95s/it] Generating: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [01:38<00:00, 98.55s/it] Usage stats: 1 image(s) generated in 98.60s Max VRAM used for this generation: 0.00G Outputs: outputs/img-samples/000001.1525943180.png: "an astronaut riding a horse" -s50 -W512 -H512 -C7.5 -Ak_lms -F -S1525943180 ```
2022-09-01 01:18:19 +00:00
# I suggest to keep the other deps sorted for convenience.
# To determine what the latest versions should be, run:
Move environment-mac.yaml to Python 3.9 and patch dream.py for Macs. I'm using stable-diffusion on a 2022 Macbook M2 Air with 24 GB unified memory. I see this taking about 2.0s/it. I've moved many deps from pip to conda-forge, to take advantage of the precompiled binaries. Some notes for Mac users, since I've seen a lot of confusion about this: One doesn't need the `apple` channel to run this on a Mac-- that's only used by `tensorflow-deps`, required for running tensorflow-metal. For that, I have an example environment.yml here: https://developer.apple.com/forums/thread/711792?answerId=723276022#723276022 However, the `CONDA_ENV=osx-arm64` environment variable *is* needed to ensure that you do not run any Intel-specific packages such as `mkl`, which will fail with [cryptic errors](https://github.com/CompVis/stable-diffusion/issues/25#issuecomment-1226702274) on the ARM architecture and cause the environment to break. I've also added a comment in the env file about 3.10 not working yet. When it becomes possible to update, those commands run on an osx-arm64 machine should work to determine the new version set. Here's what a successful run of dream.py should look like: ``` $ python scripts/dream.py --full_precision  SIGABRT(6) ↵  08:42:59 * Initializing, be patient... Loading model from models/ldm/stable-diffusion-v1/model.ckpt LatentDiffusion: Running in eps-prediction mode DiffusionWrapper has 859.52 M params. making attention of type 'vanilla' with 512 in_channels Working with z of shape (1, 4, 32, 32) = 4096 dimensions. making attention of type 'vanilla' with 512 in_channels Using slower but more accurate full-precision math (--full_precision) >> Setting Sampler to k_lms model loaded in 6.12s * Initialization done! Awaiting your command (-h for help, 'q' to quit) dream> "an astronaut riding a horse" Generating: 0%| | 0/1 [00:00<?, ?it/s]/Users/corajr/Documents/lstein/ldm/modules/embedding_manager.py:152: UserWarning: The operator 'aten::nonzero' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications. (Triggered internally at /Users/runner/work/_temp/anaconda/conda-bld/pytorch_1662016319283/work/aten/src/ATen/mps/MPSFallback.mm:11.) placeholder_idx = torch.where( 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [01:37<00:00, 1.95s/it] Generating: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [01:38<00:00, 98.55s/it] Usage stats: 1 image(s) generated in 98.60s Max VRAM used for this generation: 0.00G Outputs: outputs/img-samples/000001.1525943180.png: "an astronaut riding a horse" -s50 -W512 -H512 -C7.5 -Ak_lms -F -S1525943180 ```
2022-09-01 01:18:19 +00:00
#
# ```shell
squash merge update-gh-actions into fix-gh-actions * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * remove 4gotten trigger * Update-gh-actions (#6) * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * use macos-latest * try to update conda before creating mac env * better conda update trial * re-pin streamlit version * re-added trigger to run workflow in current branch * try to find out if conda mac env could be updated * install cmake, protobuf and rust b4 conda * add yes to conda update * lets try anaconda3-2022.05 * try environment.yml for mac as well * reenable conda mac env, add pip install also fix gitignore by changing from dream to invoke * remove - unecesary virtualenv creation - conda update change != macos back to == linux * remove cmake from brew install since pre-installed * disable opencv-python pip requirement * fixed commands to find latest package versions * update requirements for mac env * back to the roots - only install conda env depending on runner_os with or without extra env variables * check out macOS in azure-pipelines since becoming kind of tired of the GitHub Runner which is broken as ... * let's try to setup python and update conda env * initialize conda before using it * add trigger in azure-pipelines.yml * And another go for update first .... * update azure-pipelines.yml - add caching - add checkpoint download - add paths to trigger and more * unquote checkpoint-url * fix chekpoint-url variable * mkdir before downloading model * set pr trigger to main, rename anaconda cache * unique cacheHitVariables * try to use macos-latest instead of macos-12 * update test-invoke-conda.yml: - remove unecesarry echo step - use s-weigand/setup-conda@v1 - remove conda update from install deps step since updated with action * update test-invoke-conda.yml: - rename conda env cache from ldm to invokeai - reorder steps: 1. checkout sources 2. setup python 3. setup conda 4. keep order after set platform variables * change macos back to 12 since also fails with 11 * update condition in run the tests make difference between main or not main * fix path to cache invokeai conda env * fix invokeai conda env cache path * update mkdocs-flow.yml * change conda-channel priority * update create-caches * update conda env also when cache was used * os dependend conda env cache path * use existing CONDA env pointing to conda root * create CONDA_ROOT output from $CONDA * use output variable to define test prompts * use setup-python v4, get rid of PYTHON_BIN env * add runner.os to result artifacts name * update test-invoke-conda.yml: - reuse macos-latest - disable setup python 3.9 - setup conda with default python version - create or update conda environment depending on cache success - remove name parameter from conda update since name is set in env yml * improve mkdocs-flow.yml * disable cache-hugginface-torch since preload_models.py downloads to more than one location * update mkdocs-flow.yml with new name * rename mkdocs action to mkdocs-material * try to ignore error when creating conda env maybe it would still be usable, lets see ;P * remove bloat * update environment-mac.yml to match dependencies of invoke-ai/InvokeAI's main branch * disable conda update, tweak prompt condition * try to set some env vars for macOS to fix conda * stop ignoring error, use env instead of outputs * tweak `[[` connditions * update python and pip dependencie makes a difference of 1 sec per itteration compared to 3.9!!! also I see no reason why using a old pip version would be beneficial * remove unecesarry env for macOS everything was pre-tested on my MacBook Air 2020 with M1 * update conda env in setup step * activate conda env after installation * update test-invoke-conda.yml - set conda env dependent on matrix.os - set CONDA_ENV_NAME to prevent breaking action when renaming conda env - fix conda env activation * fix activate conda env * set bash -l as default shell * use action to activate conda env * add conda env file to env activation * try to replace s-weigeand with conda-incubator * remove azure-pipelines.yml funniest part is that the macos runner is the same as the one on github! * include environment-file in matrix - also disable auto-activate-base and auto-update-conda - include macos-latest and macos-12 for debugging purpose - set miniforge-version in matrix * fix miniforge-variant, set fail-fast to false * add step to setup miniconda - make default shell a matrix variable - remove bloat * use a mac env yml without pinned versions * unpin nomkl, pytorch and torchvision also removed opencv-pyhton * cache conda pkgs dir instead of conda env * use python 3.10, exclude macos-12 from cache * fix expression * prepare for PR * fix doubled id * reuse pinned versions in mac conda env - updated python pip version - unpined pytorch and torchvision - removed opencv-python - updated versions to most recent (tested locally) * fix classical copy/paste error * remove unused env from shell-block comment * fix hashFiles function to determine restore-keys * reenable caching `~.cache`, update create-caches * unpin all versions in mac conda env file this was the only way I got it working in the action, also works locally tested on MacBook Air 2020 M1 remove environment-mac-unpinned.yml * prepare merge by removing this branch from trigger * include pull_request trigger for main and dev * remove pull_request trigger
2022-10-16 17:19:49 +00:00
# sed -E 's/invokeai/invokeai-updated/;20,99s/- ([^=]+)==.+/- \1/' environment-mac.yml > environment-mac-updated.yml
# CONDA_SUBDIR=osx-arm64 conda env create -f environment-mac-updated.yml && conda list -n invokeai-updated | awk ' {print " - " $1 "==" $2;} '
Move environment-mac.yaml to Python 3.9 and patch dream.py for Macs. I'm using stable-diffusion on a 2022 Macbook M2 Air with 24 GB unified memory. I see this taking about 2.0s/it. I've moved many deps from pip to conda-forge, to take advantage of the precompiled binaries. Some notes for Mac users, since I've seen a lot of confusion about this: One doesn't need the `apple` channel to run this on a Mac-- that's only used by `tensorflow-deps`, required for running tensorflow-metal. For that, I have an example environment.yml here: https://developer.apple.com/forums/thread/711792?answerId=723276022#723276022 However, the `CONDA_ENV=osx-arm64` environment variable *is* needed to ensure that you do not run any Intel-specific packages such as `mkl`, which will fail with [cryptic errors](https://github.com/CompVis/stable-diffusion/issues/25#issuecomment-1226702274) on the ARM architecture and cause the environment to break. I've also added a comment in the env file about 3.10 not working yet. When it becomes possible to update, those commands run on an osx-arm64 machine should work to determine the new version set. Here's what a successful run of dream.py should look like: ``` $ python scripts/dream.py --full_precision  SIGABRT(6) ↵  08:42:59 * Initializing, be patient... Loading model from models/ldm/stable-diffusion-v1/model.ckpt LatentDiffusion: Running in eps-prediction mode DiffusionWrapper has 859.52 M params. making attention of type 'vanilla' with 512 in_channels Working with z of shape (1, 4, 32, 32) = 4096 dimensions. making attention of type 'vanilla' with 512 in_channels Using slower but more accurate full-precision math (--full_precision) >> Setting Sampler to k_lms model loaded in 6.12s * Initialization done! Awaiting your command (-h for help, 'q' to quit) dream> "an astronaut riding a horse" Generating: 0%| | 0/1 [00:00<?, ?it/s]/Users/corajr/Documents/lstein/ldm/modules/embedding_manager.py:152: UserWarning: The operator 'aten::nonzero' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications. (Triggered internally at /Users/runner/work/_temp/anaconda/conda-bld/pytorch_1662016319283/work/aten/src/ATen/mps/MPSFallback.mm:11.) placeholder_idx = torch.where( 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [01:37<00:00, 1.95s/it] Generating: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [01:38<00:00, 98.55s/it] Usage stats: 1 image(s) generated in 98.60s Max VRAM used for this generation: 0.00G Outputs: outputs/img-samples/000001.1525943180.png: "an astronaut riding a horse" -s50 -W512 -H512 -C7.5 -Ak_lms -F -S1525943180 ```
2022-09-01 01:18:19 +00:00
# ```
squash merge update-gh-actions into fix-gh-actions * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * remove 4gotten trigger * Update-gh-actions (#6) * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * use macos-latest * try to update conda before creating mac env * better conda update trial * re-pin streamlit version * re-added trigger to run workflow in current branch * try to find out if conda mac env could be updated * install cmake, protobuf and rust b4 conda * add yes to conda update * lets try anaconda3-2022.05 * try environment.yml for mac as well * reenable conda mac env, add pip install also fix gitignore by changing from dream to invoke * remove - unecesary virtualenv creation - conda update change != macos back to == linux * remove cmake from brew install since pre-installed * disable opencv-python pip requirement * fixed commands to find latest package versions * update requirements for mac env * back to the roots - only install conda env depending on runner_os with or without extra env variables * check out macOS in azure-pipelines since becoming kind of tired of the GitHub Runner which is broken as ... * let's try to setup python and update conda env * initialize conda before using it * add trigger in azure-pipelines.yml * And another go for update first .... * update azure-pipelines.yml - add caching - add checkpoint download - add paths to trigger and more * unquote checkpoint-url * fix chekpoint-url variable * mkdir before downloading model * set pr trigger to main, rename anaconda cache * unique cacheHitVariables * try to use macos-latest instead of macos-12 * update test-invoke-conda.yml: - remove unecesarry echo step - use s-weigand/setup-conda@v1 - remove conda update from install deps step since updated with action * update test-invoke-conda.yml: - rename conda env cache from ldm to invokeai - reorder steps: 1. checkout sources 2. setup python 3. setup conda 4. keep order after set platform variables * change macos back to 12 since also fails with 11 * update condition in run the tests make difference between main or not main * fix path to cache invokeai conda env * fix invokeai conda env cache path * update mkdocs-flow.yml * change conda-channel priority * update create-caches * update conda env also when cache was used * os dependend conda env cache path * use existing CONDA env pointing to conda root * create CONDA_ROOT output from $CONDA * use output variable to define test prompts * use setup-python v4, get rid of PYTHON_BIN env * add runner.os to result artifacts name * update test-invoke-conda.yml: - reuse macos-latest - disable setup python 3.9 - setup conda with default python version - create or update conda environment depending on cache success - remove name parameter from conda update since name is set in env yml * improve mkdocs-flow.yml * disable cache-hugginface-torch since preload_models.py downloads to more than one location * update mkdocs-flow.yml with new name * rename mkdocs action to mkdocs-material * try to ignore error when creating conda env maybe it would still be usable, lets see ;P * remove bloat * update environment-mac.yml to match dependencies of invoke-ai/InvokeAI's main branch * disable conda update, tweak prompt condition * try to set some env vars for macOS to fix conda * stop ignoring error, use env instead of outputs * tweak `[[` connditions * update python and pip dependencie makes a difference of 1 sec per itteration compared to 3.9!!! also I see no reason why using a old pip version would be beneficial * remove unecesarry env for macOS everything was pre-tested on my MacBook Air 2020 with M1 * update conda env in setup step * activate conda env after installation * update test-invoke-conda.yml - set conda env dependent on matrix.os - set CONDA_ENV_NAME to prevent breaking action when renaming conda env - fix conda env activation * fix activate conda env * set bash -l as default shell * use action to activate conda env * add conda env file to env activation * try to replace s-weigeand with conda-incubator * remove azure-pipelines.yml funniest part is that the macos runner is the same as the one on github! * include environment-file in matrix - also disable auto-activate-base and auto-update-conda - include macos-latest and macos-12 for debugging purpose - set miniforge-version in matrix * fix miniforge-variant, set fail-fast to false * add step to setup miniconda - make default shell a matrix variable - remove bloat * use a mac env yml without pinned versions * unpin nomkl, pytorch and torchvision also removed opencv-pyhton * cache conda pkgs dir instead of conda env * use python 3.10, exclude macos-12 from cache * fix expression * prepare for PR * fix doubled id * reuse pinned versions in mac conda env - updated python pip version - unpined pytorch and torchvision - removed opencv-python - updated versions to most recent (tested locally) * fix classical copy/paste error * remove unused env from shell-block comment * fix hashFiles function to determine restore-keys * reenable caching `~.cache`, update create-caches * unpin all versions in mac conda env file this was the only way I got it working in the action, also works locally tested on MacBook Air 2020 M1 remove environment-mac-unpinned.yml * prepare merge by removing this branch from trigger * include pull_request trigger for main and dev * remove pull_request trigger
2022-10-16 17:19:49 +00:00
- albumentations
- coloredlogs
- einops
- grpcio
- humanfriendly
- imageio
- imageio-ffmpeg
- imgaug
- kornia
- mpmath
- nomkl
- numpy
- omegaconf
- openh264
- onnx
- onnxruntime
- pudb
- pytorch-lightning
- scipy
- streamlit
- sympy
- tensorboard
- torchmetrics
- pip:
squash merge update-gh-actions into fix-gh-actions * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * remove 4gotten trigger * Update-gh-actions (#6) * fix mkdocs deployment * update path to python bin * add trigger for current branch * change path to python_bin for mac as well * try to use setup-python@v4 instead of setting env * remove setup conda action * try to use $CONDA * remove overseen action * change branch from master to main * sort out if then else for faster syntax * remove more if functions * add updates to create-caches as well * eliminate the rest of if functions * try to unpin pytorch and torchvision * restore pinned versions * try switching from set-output to use env * update test-invoke-conda as well * fix env var creation * quote variable * add second equal to compare * try another way to use outputs * fix outputs * pip install for mac before creating conda env * fix output variable * fix python bin path * remove pip install for before creating conda env * unpin streamlit version in conda mac env * try to make git-workflows better readable * use macos-latest * try to update conda before creating mac env * better conda update trial * re-pin streamlit version * re-added trigger to run workflow in current branch * try to find out if conda mac env could be updated * install cmake, protobuf and rust b4 conda * add yes to conda update * lets try anaconda3-2022.05 * try environment.yml for mac as well * reenable conda mac env, add pip install also fix gitignore by changing from dream to invoke * remove - unecesary virtualenv creation - conda update change != macos back to == linux * remove cmake from brew install since pre-installed * disable opencv-python pip requirement * fixed commands to find latest package versions * update requirements for mac env * back to the roots - only install conda env depending on runner_os with or without extra env variables * check out macOS in azure-pipelines since becoming kind of tired of the GitHub Runner which is broken as ... * let's try to setup python and update conda env * initialize conda before using it * add trigger in azure-pipelines.yml * And another go for update first .... * update azure-pipelines.yml - add caching - add checkpoint download - add paths to trigger and more * unquote checkpoint-url * fix chekpoint-url variable * mkdir before downloading model * set pr trigger to main, rename anaconda cache * unique cacheHitVariables * try to use macos-latest instead of macos-12 * update test-invoke-conda.yml: - remove unecesarry echo step - use s-weigand/setup-conda@v1 - remove conda update from install deps step since updated with action * update test-invoke-conda.yml: - rename conda env cache from ldm to invokeai - reorder steps: 1. checkout sources 2. setup python 3. setup conda 4. keep order after set platform variables * change macos back to 12 since also fails with 11 * update condition in run the tests make difference between main or not main * fix path to cache invokeai conda env * fix invokeai conda env cache path * update mkdocs-flow.yml * change conda-channel priority * update create-caches * update conda env also when cache was used * os dependend conda env cache path * use existing CONDA env pointing to conda root * create CONDA_ROOT output from $CONDA * use output variable to define test prompts * use setup-python v4, get rid of PYTHON_BIN env * add runner.os to result artifacts name * update test-invoke-conda.yml: - reuse macos-latest - disable setup python 3.9 - setup conda with default python version - create or update conda environment depending on cache success - remove name parameter from conda update since name is set in env yml * improve mkdocs-flow.yml * disable cache-hugginface-torch since preload_models.py downloads to more than one location * update mkdocs-flow.yml with new name * rename mkdocs action to mkdocs-material * try to ignore error when creating conda env maybe it would still be usable, lets see ;P * remove bloat * update environment-mac.yml to match dependencies of invoke-ai/InvokeAI's main branch * disable conda update, tweak prompt condition * try to set some env vars for macOS to fix conda * stop ignoring error, use env instead of outputs * tweak `[[` connditions * update python and pip dependencie makes a difference of 1 sec per itteration compared to 3.9!!! also I see no reason why using a old pip version would be beneficial * remove unecesarry env for macOS everything was pre-tested on my MacBook Air 2020 with M1 * update conda env in setup step * activate conda env after installation * update test-invoke-conda.yml - set conda env dependent on matrix.os - set CONDA_ENV_NAME to prevent breaking action when renaming conda env - fix conda env activation * fix activate conda env * set bash -l as default shell * use action to activate conda env * add conda env file to env activation * try to replace s-weigeand with conda-incubator * remove azure-pipelines.yml funniest part is that the macos runner is the same as the one on github! * include environment-file in matrix - also disable auto-activate-base and auto-update-conda - include macos-latest and macos-12 for debugging purpose - set miniforge-version in matrix * fix miniforge-variant, set fail-fast to false * add step to setup miniconda - make default shell a matrix variable - remove bloat * use a mac env yml without pinned versions * unpin nomkl, pytorch and torchvision also removed opencv-pyhton * cache conda pkgs dir instead of conda env * use python 3.10, exclude macos-12 from cache * fix expression * prepare for PR * fix doubled id * reuse pinned versions in mac conda env - updated python pip version - unpined pytorch and torchvision - removed opencv-python - updated versions to most recent (tested locally) * fix classical copy/paste error * remove unused env from shell-block comment * fix hashFiles function to determine restore-keys * reenable caching `~.cache`, update create-caches * unpin all versions in mac conda env file this was the only way I got it working in the action, also works locally tested on MacBook Air 2020 M1 remove environment-mac-unpinned.yml * prepare merge by removing this branch from trigger * include pull_request trigger for main and dev * remove pull_request trigger
2022-10-16 17:19:49 +00:00
- flask
- flask_socketio
- flask_cors
- dependency_injector
- eventlet
- protobuf
- realesrgan
- send2trash
- test-tube
- transformers
- torch-fidelity
- -e git+https://github.com/CompVis/taming-transformers.git@master#egg=taming-transformers
- -e git+https://github.com/openai/CLIP.git@main#egg=clip
- -e git+https://github.com/Birch-san/k-diffusion.git@mps#egg=k_diffusion
- -e git+https://github.com/TencentARC/GFPGAN.git#egg=gfpgan
- -e .
variables:
PYTORCH_ENABLE_MPS_FALLBACK: 1