2022-10-10 15:39:23 +00:00
|
|
|
name: invokeai
|
2022-08-31 04:33:23 +00:00
|
|
|
channels:
|
2022-09-03 18:28:34 +00:00
|
|
|
- pytorch
|
2022-10-17 01:27:15 +00:00
|
|
|
- conda-forge
|
2022-08-31 04:33:23 +00:00
|
|
|
dependencies:
|
2022-10-29 01:54:18 +00:00
|
|
|
- python=3.9.13
|
|
|
|
- pip=22.2.2
|
2022-10-05 16:44:16 +00:00
|
|
|
|
2022-10-29 01:54:18 +00:00
|
|
|
- pytorch=1.12.1
|
|
|
|
- torchvision=0.13.1
|
2022-10-05 16:44:16 +00:00
|
|
|
|
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.
|
2022-09-03 18:28:34 +00:00
|
|
|
# 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
|
|
|
# ```
|
2022-10-29 01:54:18 +00:00
|
|
|
|
|
|
|
- albumentations=1.2.1
|
|
|
|
- coloredlogs=15.0.1
|
|
|
|
- diffusers=0.6.0
|
|
|
|
- einops=0.4.1
|
|
|
|
- grpcio=1.46.4
|
|
|
|
- humanfriendly=10.0
|
|
|
|
- imageio=2.21.2
|
|
|
|
- imageio-ffmpeg=0.4.7
|
|
|
|
- imgaug=0.4.0
|
|
|
|
- kornia=0.6.7
|
|
|
|
- mpmath=1.2.1
|
|
|
|
- nomkl # arm64 has only 1.0 while x64 needs 3.0
|
|
|
|
- numpy=1.23.4
|
|
|
|
- omegaconf=2.1.1
|
|
|
|
- openh264=2.3.0
|
|
|
|
- onnx=1.12.0
|
|
|
|
- onnxruntime=1.12.1
|
|
|
|
- pudb=2022.1
|
|
|
|
- pytorch-lightning=1.7.7
|
|
|
|
- scipy=1.9.3
|
|
|
|
- streamlit=1.12.2
|
|
|
|
- sympy=1.10.1
|
|
|
|
- tensorboard=2.10.0
|
|
|
|
- torchmetrics=0.10.1
|
|
|
|
- py-opencv=4.6.0
|
|
|
|
- flask=2.1.3
|
|
|
|
- flask-socketio=5.3.0
|
|
|
|
- flask-cors=3.0.10
|
|
|
|
- eventlet=0.33.1
|
|
|
|
- protobuf=3.20.1
|
|
|
|
- send2trash=1.8.0
|
|
|
|
- transformers=4.23.1
|
|
|
|
- torch-fidelity=0.3.0
|
2022-08-31 04:33:23 +00:00
|
|
|
- pip:
|
2022-11-03 19:44:06 +00:00
|
|
|
- getpass_asterisk
|
2022-10-16 23:50:19 +00:00
|
|
|
- dependency_injector==4.40.0
|
|
|
|
- realesrgan==0.2.5.0
|
|
|
|
- test-tube==0.7.5
|
2022-10-05 16:44:16 +00:00
|
|
|
- -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
|
2022-10-20 03:20:25 +00:00
|
|
|
- -e git+https://github.com/invoke-ai/clipseg.git@models-rename#egg=clipseg
|
2022-10-05 16:44:16 +00:00
|
|
|
- -e .
|
2022-08-31 06:00:40 +00:00
|
|
|
variables:
|
|
|
|
PYTORCH_ENABLE_MPS_FALLBACK: 1
|