@@ -13,7 +13,7 @@ ARG TARGETARCH
13
13
ARG TARGETVARIANT
14
14
15
15
ENV 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"
17
17
18
18
19
19
RUN apt-get update && \
@@ -263,14 +263,20 @@ EOT
263
263
# 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.
264
264
FROM builder-base AS builder-sd
265
265
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
274
280
275
281
# ##################################
276
282
# ##################################
@@ -285,8 +291,20 @@ COPY --from=grpc /opt/grpc /usr/local
285
291
# Rebuild with defaults backends
286
292
WORKDIR /build
287
293
294
+ COPY . .
295
+ COPY .git .
296
+
297
+ RUN make prepare
298
+
288
299
# # 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
290
308
291
309
RUN if [ ! -d "/build/sources/go-piper/piper-phonemize/pi/lib/" ]; then \
292
310
mkdir -p /build/sources/go-piper/piper-phonemize/pi/lib/ \
@@ -400,9 +418,6 @@ RUN if [[ ( "${EXTRA_BACKENDS}" =~ "coqui" || -z "${EXTRA_BACKENDS}" ) && "$IMAG
400
418
; fi && \
401
419
if [[ ( "${EXTRA_BACKENDS}" =~ "transformers-musicgen" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
402
420
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 \
406
421
; fi
407
422
408
423
RUN if [[ ( "${EXTRA_BACKENDS}" =~ "vall-e-x" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
0 commit comments