# llama-swap mit ROCm (LLMs) + whisper-server (Transkription) + sd-server (Bilder) # # Das offizielle unified-Image mit whisper-/sd-server gibt es für AMD nur als # Vulkan-Build, und unter Vulkan ist die Prompt-Verarbeitung von llama.cpp auf # der RX 6950 XT nur halb so schnell wie unter ROCm (siehe PLAN-multimodal.md). # Deshalb: ROCm-Image als Basis, die beiden Server aus dem unified-Image dazu. # Beide Basis-Images sind Ubuntu 24.04 mit identischen Mesa-/Vulkan-Paketen. ARG LLAMA_SWAP_TAG ARG UNIFIED_TAG FROM ghcr.io/mostlygeek/llama-swap:${UNIFIED_TAG} AS unified FROM ghcr.io/mostlygeek/llama-swap:${LLAMA_SWAP_TAG} # Vulkan-Treiber (RADV) für sd-server; ffmpeg ist schon enthalten (whisper --convert) RUN apt-get update \ && apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1 libgomp1 \ && rm -rf /var/lib/apt/lists/* # sd-server ist statisch gegen ggml gelinkt COPY --from=unified /usr/local/bin/sd-server /usr/local/bin/sd-server # whisper-server bringt eigene ggml-Bibliotheken mit, die dieselben Namen tragen # wie die von llama.cpp in /app – daher getrennt ablegen und per Wrapper laden COPY --from=unified /usr/local/bin/whisper-server /opt/whisper/bin/whisper-server COPY --from=unified /usr/local/lib/libwhisper.so* /usr/local/lib/libggml*.so* /opt/whisper/lib/ RUN printf '#!/bin/sh\nLD_LIBRARY_PATH=/opt/whisper/lib exec /opt/whisper/bin/whisper-server "$@"\n' \ > /usr/local/bin/whisper-server \ && chmod 755 /usr/local/bin/whisper-server