Add dual-GPU FLUX 9B image pipeline
This commit is contained in:
+23
-8
@@ -365,7 +365,8 @@ UNCENSORED_GPU_DEVICES=${TEXT_GPU_DEVICES:-0}${SECONDARY_GPU_DEVICES:+,$SECONDAR
|
||||
UNCENSORED_TENSOR_SPLIT=${UNCENSORED_TENSOR_SPLIT:-90,10}
|
||||
UNCENSORED_MTP_MAX=${UNCENSORED_MTP_MAX:-2}
|
||||
IMAGE_GPU_DEVICES=${IMAGE_GPU_DEVICES:-${TEXT_GPU_DEVICES:-0}}
|
||||
FLUX_MODEL_DIR=${FLUX_MODEL_DIR:-/data/models/FLUX.2-klein-4B}
|
||||
FLUX_COMPONENT_DIR=${FLUX_COMPONENT_DIR:-/data/models/FLUX.2-klein-9B-components}
|
||||
FLUX_TRANSFORMER_DIR=${FLUX_TRANSFORMER_DIR:-/data/models/FLUX.2-klein-9B-fp8}
|
||||
LLAMA_THREADS=${LLAMA_THREADS:-6}
|
||||
LLAMA_THREADS_BATCH=${LLAMA_THREADS_BATCH:-6}
|
||||
LLAMA_CACHE_RAM_MIB=${LLAMA_CACHE_RAM_MIB:-32768}
|
||||
@@ -486,14 +487,28 @@ build_and_start() {
|
||||
docker build --progress=plain --build-arg LLAMA_CPP_COMMIT="$commit" \
|
||||
-f platform/docker/llama-cpp/Dockerfile -t mike-ai/llama.cpp:local .
|
||||
docker compose --env-file "$SECRETS_DIR/stack.env" --profile image build image-worker
|
||||
if [[ ! -s ${FLUX_MODEL_DIR:-/data/models/FLUX.2-klein-4B}/model_index.json ]]; then
|
||||
log "FLUX.2-klein-4B laden"
|
||||
install -d -m 0755 "${FLUX_MODEL_DIR:-/data/models/FLUX.2-klein-4B}"
|
||||
docker run --rm --entrypoint python \
|
||||
-v "${FLUX_MODEL_DIR:-/data/models/FLUX.2-klein-4B}:/download" \
|
||||
local flux_components=${FLUX_COMPONENT_DIR:-/data/models/FLUX.2-klein-9B-components}
|
||||
local flux_transformer=${FLUX_TRANSFORMER_DIR:-/data/models/FLUX.2-klein-9B-fp8}
|
||||
local hf_token_file=${HF_TOKEN_FILE:-/root/.cache/huggingface/token}
|
||||
if [[ ! -s $flux_components/model_index.json || \
|
||||
! -s $flux_transformer/flux-2-klein-9b-fp8.safetensors ]]; then
|
||||
[[ -r $hf_token_file ]] || die \
|
||||
"Hugging-Face-Token fehlt: $hf_token_file (FLUX.2 Klein 9B ist gated)"
|
||||
log "FLUX.2 Klein 9B Komponenten und FP8-Transformer laden"
|
||||
install -d -m 0755 "$flux_components" "$flux_transformer"
|
||||
docker run --rm --entrypoint /opt/image-venv/bin/python \
|
||||
-e HF_TOKEN_PATH=/run/secrets/hf-token \
|
||||
-v "$hf_token_file:/run/secrets/hf-token:ro" \
|
||||
-v "$flux_components:/download" \
|
||||
mike-ai/image-worker:local -c \
|
||||
"from huggingface_hub import snapshot_download; snapshot_download('black-forest-labs/FLUX.2-klein-4B', revision='e7b7dc27f91deacad38e78976d1f2b499d76a294', local_dir='/download')"
|
||||
chmod -R a-w "${FLUX_MODEL_DIR:-/data/models/FLUX.2-klein-4B}"
|
||||
"from huggingface_hub import snapshot_download; snapshot_download('black-forest-labs/FLUX.2-klein-9B', revision='92196c8e11f7b6cf2b7493e037d8c5345c559216', local_dir='/download', allow_patterns=['model_index.json', 'scheduler/*', 'text_encoder/*', 'tokenizer/*', 'transformer/config.json', 'vae/*'])"
|
||||
docker run --rm --entrypoint /opt/image-venv/bin/python \
|
||||
-e HF_TOKEN_PATH=/run/secrets/hf-token \
|
||||
-v "$hf_token_file:/run/secrets/hf-token:ro" \
|
||||
-v "$flux_transformer:/download" \
|
||||
mike-ai/image-worker:local -c \
|
||||
"from huggingface_hub import snapshot_download; snapshot_download('black-forest-labs/FLUX.2-klein-9b-fp8', revision='902d9d510b51533e07729f19211414a3648b77d2', local_dir='/download', allow_patterns=['flux-2-klein-9b-fp8.safetensors', 'README.md', 'LICENSE.md'])"
|
||||
chmod -R a-w "$flux_components" "$flux_transformer"
|
||||
fi
|
||||
# Creates the tools network and deploys the only host-bound MCP: Operator.
|
||||
# Portable MCPs and Hermes live on Unraid and are restored through Appdata.
|
||||
|
||||
Reference in New Issue
Block a user