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: 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 \ -H "Authorization: Bearer ${{ secrets.HUGGINGFACE_TOKEN }}" \ -o models/ldm/stable-diffusion-v1/model.ckpt \ -L https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt - 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