pantry/projects/github.com/AUTOMATIC1111/stable-diffusion-webui/package.yml
2023-10-24 10:21:42 -04:00

115 lines
3.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

distributable:
url: https://github.com/AUTOMATIC1111/stable-diffusion-webui/archive/refs/tags/v{{version}}.tar.gz
strip-components: 1
versions:
github: AUTOMATIC1111/stable-diffusion-webui
# YES! capitalization is correct per project homepage
display-name: Stable Diffusion web UI
#TODO there's inefficient duplication we can overcome
# eg. pytorch-vision bundles its own libpng and libjpeg, which we could provide
dependencies:
python.org: ~3.10
tea.xyz: ^0 # our scripts use tea/cli
# we clear out all the git repos before uploading but something
# still tries to use git. hopefully nothing is broken because we
# clear out all the git repos (they were 100s of MB)
git-scm.org: ^2
# For replacing Pillow's vendorized libwebp
darwin/x86-64:
google.com/webp: '*'
#FIXME pls make this work on Linux thanks
platforms: darwin
build:
dependencies:
pip.pypa.io: '*'
gnu.org/wget: '*'
protobuf.dev: '>=21'
rust-lang.org: ^1 # docs say this is needed but Im not convinced…
script:
# dont download the models RN
# --exit just installs deps and exits rather than boots the web server
- echo 'export COMMANDLINE_ARGS="
--no-download-sd-model
--exit
$COMMANDLINE_ARGS"' > webui-user.sh
# or it clones HEAD and uses that
- mkdir -p .git
# installs python virtual-env
- ./webui.sh
# Pillow ships dylibs that don't have room for our header rewrites.
# If we delete them, we can use ours.
- run: rm libwebp.7.dylib
working-directory: venv/lib/python3.10/site-packages/PIL/.dylibs
if: darwin/x86-64
# torchvision .whl dylibs are broken out the box :/
- run:
install_name_tool
-add_rpath @loader_path/../torch/lib
venv/lib/python3.10/site-packages/torchvision/image.so
if: darwin
# change CWD for remainder of our execution
- |
mkdir -p {{prefix}}
cd {{prefix}}
# move this installation into its prefix
- |
cp -a $SRCROOT lib
mkdir -p bin
# install our scripts and shims
- |
cp lib/props/webui-user.sh lib
cp lib/props/entrypoint.sh .
cp lib/props/stable-diffusion-webui bin
# removes the prepare_environment() step since we have already done that
- run: |
sed -i.bak \
-e '/with launch_utils\.startup_timer\.subcategory("prepare environment"):/{N;N;N;d;}' \
-e '/if not args\.skip_prepare_environment:/{N;N;d;}' \
-e '/prepare_environment()/d' \
launch.py
rm launch.py.bak
working-directory:
lib
# gradio 3.41.2 fails to load anything if any part in the install path has a `.` prefix 🤦‍♂️
# https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13292
# FIXME should stop doing this when fixed
# https://github.com/gradio-app/gradio/pull/4303
- run:
sed -i '/is_dotfile =/s/= .*/= False/' routes.py
working-directory:
lib/venv/lib/python3.10/site-packages/gradio
# delete our crap
- rm -rf lib/props lib/xyz.tea.* lib/tea.yaml
# we set this as a symlink to ~/.local/share/models in our stub scripts
- rm -rf lib/models/Stable-diffusion lib/extensions lib/outputs
# delete all the .git stuff to save >1GB
# NOTE that this would cause the prepare_environment() step to fail
- find . -name .git\* | xargs rm -rf
provides:
- bin/stable-diffusion-webui
entrypoint: ./entrypoint.sh
test:
qa-required: true
script: stable-diffusion-webui --help