mirror of
https://github.com/ivabus/pantry
synced 2024-11-26 02:15:06 +03:00
114 lines
3.5 KiB
YAML
114 lines
3.5 KiB
YAML
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 I’m not convinced…
|
||
script:
|
||
# don’t 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
|