Update invoke (#234)

2b7e3abe57
This commit is contained in:
AbdBarho 2022-11-20 11:35:56 +01:00 committed by GitHub
parent 9e7979b756
commit 23757d2356
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 25 deletions

View File

@ -51,7 +51,7 @@ services:
<<: *base_service
profiles: ["lstein"]
build: ./services/lstein/
image: sd-lstein:6
image: sd-lstein:7
environment:
- PRELOAD=true
- CLI_ARGS=--max_loaded_models=1

View File

@ -1,37 +1,35 @@
# syntax=docker/dockerfile:1
FROM continuumio/miniconda3:4.12.0
FROM python:3.10-slim
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
# now it requires python3.9
RUN conda install python=3.9 && conda clean -a -y
RUN conda install cudatoolkit=11.6 -c conda-forge && conda clean -a -y
RUN conda install pytorch==1.12.1 -c pytorch && conda clean -a -y
RUN apt-get update && apt install fonts-dejavu-core -y && apt-get clean
RUN pip install torch==1.13.0 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
RUN apt-get update && apt-get install git -y && apt-get clean
RUN git clone https://github.com/invoke-ai/InvokeAI.git /stable-diffusion
WORKDIR /stable-diffusion
RUN <<EOF
git clone https://github.com/invoke-ai/InvokeAI.git stable-diffusion
cd stable-diffusion
git reset --hard 6b89adfa7ebd4591ed91a76ecf152e3517cda385
git reset --hard 2b7e3abe57963d199f1d825ddef87ae154c81045
git config --global http.postBuffer 1048576000
conda env update --file environment.yml -n base
conda clean -a -y
ln -sf environments-and-requirements/requirements-lin-cuda.txt requirements.txt
pip install -r requirements.txt
EOF
ARG BRANCH=main SHA=6b89adfa7ebd4591ed91a76ecf152e3517cda385
ARG BRANCH=development SHA=2b7e3abe57963d199f1d825ddef87ae154c81045
RUN <<EOF
cd stable-diffusion
git fetch
git reset --hard
git checkout ${BRANCH}
git reset --hard ${SHA}
conda env update --file environment.yml -n base
conda clean -a -y
pip install -r requirements.txt
EOF
RUN pip uninstall opencv-python -y && pip install --force-reinstall opencv-python-headless==4.5.5.64
@ -42,8 +40,7 @@ python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
EOF
ENV PRELOAD=false CLI_ARGS=""
WORKDIR /stable-diffusion
ENV ROOT=/stable-diffusion PRELOAD=false CLI_ARGS=""
EXPOSE 7860

View File

@ -6,21 +6,36 @@ declare -A MOUNTS
# cache
MOUNTS["/root/.cache"]=/data/.cache
# ui specific
MOUNTS["${PWD}/src/gfpgan/experiments/pretrained_models/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
MOUNTS["${PWD}/ldm/invoke/restoration/codeformer/weights"]=/data/Codeformer
MOUNTS["${PWD}/configs/models.yaml"]=/docker/models.yaml
MOUNTS["${ROOT}/models/codeformer"]=/data/Codeformer/
MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/.cache/
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
MOUNTS["${ROOT}/models/bert-base-uncased"]=/data/.cache/huggingface/transformers
MOUNTS["${ROOT}/models/openai/clip-vit-large-patch14"]=/data/.cache/huggingface/transformers
MOUNTS["${ROOT}/models/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers
MOUNTS["${ROOT}/configs/models.yaml"]=/docker/models.yaml
# hacks
MOUNTS["/opt/conda/lib/python3.9/site-packages/facexlib/weights"]=/data/.cache
MOUNTS["/opt/conda/lib/python3.9/site-packages/realesrgan/weights"]=/data/RealESRGAN
MOUNTS["${PWD}/src/realesrgan/weights"]=/data/RealESRGAN
MOUNTS["${PWD}/gfpgan/weights"]=/data/.cache
MOUNTS["/opt/conda/lib/python3.10/site-packages/facexlib/weights"]=/data/.cache/
MOUNTS["${ROOT}/models/clipseg"]=/data/.cache/invoke/clipseg/
# MOUNTS["/opt/conda/lib/python3.9/site-packages/realesrgan/weights"]=/data/RealESRGAN
for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
mkdir -p "$(dirname "${to_path}")"
# ends with slash, make it!
if [[ "$from_path" == */ ]]; then
mkdir -vp "$from_path"
fi
ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done