name: Create Caches on: workflow_dispatch jobs: os_matrix: strategy: matrix: os: [ubuntu-latest, macos-latest] include: - os: ubuntu-latest environment-file: environment.yml default-shell: bash -l {0} - os: macos-latest environment-file: environment-mac.yml default-shell: bash -l {0} name: Test invoke.py on ${{ matrix.os }} with conda runs-on: ${{ matrix.os }} defaults: run: shell: ${{ matrix.default-shell }} steps: - name: Checkout sources uses: actions/checkout@v3 - name: setup miniconda uses: conda-incubator/setup-miniconda@v2 with: auto-activate-base: false auto-update-conda: false miniconda-version: latest - name: set environment run: | [[ "$GITHUB_REF" == 'refs/heads/main' ]] \ && echo "TEST_PROMPTS=tests/preflight_prompts.txt" >> $GITHUB_ENV \ || echo "TEST_PROMPTS=tests/dev_prompts.txt" >> $GITHUB_ENV echo "CONDA_ROOT=$CONDA" >> $GITHUB_ENV echo "CONDA_ENV_NAME=invokeai" >> $GITHUB_ENV - name: Use Cached Stable Diffusion v1.4 Model id: cache-sd-v1-4 uses: actions/cache@v3 env: cache-name: cache-sd-v1-4 with: path: models/ldm/stable-diffusion-v1/model.ckpt key: ${{ env.cache-name }} restore-keys: ${{ env.cache-name }} - name: Use Cached Stable Diffusion v1.4 Model id: cache-sd-v1-4 uses: actions/cache@v3 env: cache-name: cache-sd-v1-4 with: path: models/ldm/stable-diffusion-v1/model.ckpt key: ${{ env.cache-name }} restore-keys: ${{ env.cache-name }} - name: Download Stable Diffusion v1.4 Model if: ${{ steps.cache-sd-v1-4.outputs.cache-hit != 'true' }} run: | [[ -d models/ldm/stable-diffusion-v1 ]] \ || mkdir -p models/ldm/stable-diffusion-v1 [[ -r models/ldm/stable-diffusion-v1/model.ckpt ]] \ || curl -o models/ldm/stable-diffusion-v1/model.ckpt ${{ secrets.SD_V1_4_URL }} - name: Use cached Conda Environment uses: actions/cache@v3 env: cache-name: cache-conda-env-${{ env.CONDA_ENV_NAME }} conda-env-file: ${{ matrix.environment-file }} with: path: ${{ env.CONDA_ROOT }}/envs/${{ env.CONDA_ENV_NAME }} key: ${{ env.cache-name }} restore-keys: ${{ env.cache-name }}-${{ runner.os }}-${{ hashFiles(env.conda-env-file) }} - name: Use cached Conda Packages uses: actions/cache@v3 env: cache-name: cache-conda-env-${{ env.CONDA_ENV_NAME }} conda-env-file: ${{ matrix.environment-file }} with: path: ${{ env.CONDA_PKGS_DIR }} key: ${{ env.cache-name }} restore-keys: ${{ env.cache-name }}-${{ runner.os }}-${{ hashFiles(env.conda-env-file) }} - name: Activate Conda Env uses: conda-incubator/setup-miniconda@v2 with: activate-environment: ${{ env.CONDA_ENV_NAME }} environment-file: ${{ matrix.environment-file }} - name: Use Cached Huggingface and Torch models id: cache-hugginface-torch uses: actions/cache@v3 env: cache-name: cache-hugginface-torch with: path: ~/.cache key: ${{ env.cache-name }} restore-keys: | ${{ env.cache-name }}-${{ hashFiles('scripts/preload_models.py') }} - name: run preload_models.py run: python scripts/preload_models.py