@@ -13,7 +13,7 @@ ARG TARGETARCH
1313ARG TARGETVARIANT
1414
1515ENV DEBIAN_FRONTEND=noninteractive
16- ENV EXTERNAL_GRPC_BACKENDS="coqui:/build/backend/python/coqui/run.sh,huggingface-embeddings:/build/backend/python/sentencetransformers/run.sh,transformers:/build/backend/python/transformers/run.sh,sentencetransformers:/build/backend/python/sentencetransformers/run.sh,rerankers:/build/backend/python/rerankers/run.sh,autogptq:/build/backend/python/autogptq/run.sh,bark:/build/backend/python/bark/run.sh,diffusers:/build/backend/python/diffusers/run.sh,exllama:/build/backend/python/exllama/run.sh, openvoice:/build/backend/python/openvoice/run.sh,vall-e-x:/build/backend/python/vall-e-x/run.sh,vllm:/build/backend/python/vllm/run.sh,mamba:/build/backend/python/mamba/run.sh,exllama2:/build/backend/python/exllama2/run.sh,transformers-musicgen:/build/backend/python/transformers-musicgen/run.sh,parler-tts:/build/backend/python/parler-tts/run.sh"
16+ ENV EXTERNAL_GRPC_BACKENDS="coqui:/build/backend/python/coqui/run.sh,huggingface-embeddings:/build/backend/python/sentencetransformers/run.sh,transformers:/build/backend/python/transformers/run.sh,sentencetransformers:/build/backend/python/sentencetransformers/run.sh,rerankers:/build/backend/python/rerankers/run.sh,autogptq:/build/backend/python/autogptq/run.sh,bark:/build/backend/python/bark/run.sh,diffusers:/build/backend/python/diffusers/run.sh,openvoice:/build/backend/python/openvoice/run.sh,vall-e-x:/build/backend/python/vall-e-x/run.sh,vllm:/build/backend/python/vllm/run.sh,mamba:/build/backend/python/mamba/run.sh,exllama2:/build/backend/python/exllama2/run.sh,transformers-musicgen:/build/backend/python/transformers-musicgen/run.sh,parler-tts:/build/backend/python/parler-tts/run.sh"
1717
1818
1919RUN apt-get update && \
@@ -263,14 +263,20 @@ EOT
263263# In most cases, builder is the image you should be using - however, this can save build time if one just needs to copy backend-assets/grpc/stablediffusion and nothing else.
264264FROM builder-base AS builder-sd
265265
266- COPY . .
267- COPY .git .
268-
269- RUN make prepare
270-
271-
272- # stablediffusion does not tolerate a newer version of abseil, build it first
273- RUN GRPC_BACKENDS=backend-assets/grpc/stablediffusion make build
266+ # stablediffusion does not tolerate a newer version of abseil, copy only over enough elements to build it
267+ COPY Makefile .
268+ COPY go.mod .
269+ COPY go.sum .
270+ COPY backend/backend.proto ./backend/backend.proto
271+ COPY backend/go/image/stablediffusion ./backend/go/image/stablediffusion
272+ COPY pkg/grpc ./pkg/grpc
273+ COPY pkg/stablediffusion ./pkg/stablediffusion
274+ RUN git init
275+ RUN make sources/go-stable-diffusion
276+ RUN touch prepare-sources
277+
278+ # Actually build the backend
279+ RUN GRPC_BACKENDS=backend-assets/grpc/stablediffusion make backend-assets/grpc/stablediffusion
274280
275281# ##################################
276282# ##################################
@@ -285,8 +291,20 @@ COPY --from=grpc /opt/grpc /usr/local
285291# Rebuild with defaults backends
286292WORKDIR /build
287293
294+ COPY . .
295+ COPY .git .
296+
297+ RUN make prepare
298+
288299# # Build the binary
289- RUN make build
300+ # # If it's CUDA, we want to skip some of the llama-compat backends to save space
301+ # # We only leave the most CPU-optimized variant and the fallback for the cublas build
302+ # # (both will use CUDA for the actual computation)
303+ RUN if [ "${BUILD_TYPE}" = "cublas" ]; then \
304+ SKIP_GRPC_BACKEND="backend-assets/grpc/llama-cpp-avx backend-assets/grpc/llama-cpp-avx2" make build; \
305+ else \
306+ make build; \
307+ fi
290308
291309RUN if [ ! -d "/build/sources/go-piper/piper-phonemize/pi/lib/" ]; then \
292310 mkdir -p /build/sources/go-piper/piper-phonemize/pi/lib/ \
@@ -400,9 +418,6 @@ RUN if [[ ( "${EXTRA_BACKENDS}" =~ "coqui" || -z "${EXTRA_BACKENDS}" ) && "$IMAG
400418 ; fi && \
401419 if [[ ( "${EXTRA_BACKENDS}" =~ "transformers-musicgen" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
402420 make -C backend/python/transformers-musicgen \
403- ; fi && \
404- if [[ ( "${EXTRA_BACKENDS}" =~ "exllama1" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
405- make -C backend/python/exllama \
406421 ; fi
407422
408423RUN if [[ ( "${EXTRA_BACKENDS}" =~ "vall-e-x" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
0 commit comments