name: Build on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: strategy: matrix: os: [ macos-12 ] name: Build on ${{ matrix.os }} miniconda runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v3 - name: Cache 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' }} continue-on-error: true run: | if [ ! -e models/ldm/stable-diffusion-v1 ]; then mkdir -p models/ldm/stable-diffusion-v1 fi if [ ! -e models/ldm/stable-diffusion-v1/model.ckpt ]; then curl -o models/ldm/stable-diffusion-v1/model.ckpt ${{ secrets.SD_V1_4_URL }} fi # Uncomment this when we no longer make changes to environment-mac.yaml # - name: Cache environment # id: cache-conda-env-ldm # uses: actions/cache@v3 # env: # cache-name: cache-conda-env-ldm # with: # path: ~/.conda/envs/ldm # key: ${{ env.cache-name }} # restore-keys: | # ${{ env.cache-name }} - name: Install dependencies # if: ${{ steps.cache-conda-env-ldm.outputs.cache-hit != 'true' }} run: | conda env create -f environment-mac.yaml - name: Cache hugginface 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 }} - name: Download Huggingface and Torch models if: ${{ steps.cache-hugginface-torch.outputs.cache-hit != 'true' }} continue-on-error: true run: | export PYTHON_BIN=/usr/local/miniconda/envs/ldm/bin/python $PYTHON_BIN scripts/preload_models.py - name: Run the tests run: | # Note, can't "activate" via automation, and activation is just env vars and path export PYTHON_BIN=/usr/local/miniconda/envs/ldm/bin/python export PYTORCH_ENABLE_MPS_FALLBACK=1 $PYTHON_BIN scripts/preload_models.py mkdir -p outputs/img-samples time $PYTHON_BIN scripts/dream.py --from_file tests/prompts.txt outputs/img-samples/err.log > outputs/img-samples/out.log - name: Archive results uses: actions/upload-artifact@v3 with: name: results path: outputs/img-samples