Make Qwen Image 2.1 the production image worker
This commit is contained in:
+51
-75
@@ -572,7 +572,7 @@ services:
|
||||
ALLOWED_PROFILES: fast,medium,large,ultra,uncensored
|
||||
IMAGE_WORKER: image
|
||||
RESTORE_WORKER: restore
|
||||
QWEN_IMAGE_TEST_WORKER: qwen-image-2.1-test
|
||||
FLUX_STANDBY_WORKER: flux-standby
|
||||
TTS_WORKER: qwen3
|
||||
MUSIC_WORKER: acestep
|
||||
YUE2_WORKER: yue2
|
||||
@@ -631,7 +631,8 @@ services:
|
||||
IMAGE_DIR: /data/images
|
||||
IMAGE_WORKER_URL: http://image-worker:8086
|
||||
IMAGE_WORKER_TOKEN: "${CONTROLLER_TOKEN:?CONTROLLER_TOKEN is required}"
|
||||
IMAGE_MODEL_NAME: FLUX.2-klein-9B-fp8-beta
|
||||
IMAGE_MODEL_NAME: Qwen-Image-2.1-int8
|
||||
IMAGE_INFERENCE_STEPS: "25"
|
||||
CHAT_IMAGE_ALLOW_REMOTE_URLS: "false"
|
||||
ENABLE_IMAGE_GENERATION: "true"
|
||||
ENABLE_TTS: "true"
|
||||
@@ -673,6 +674,51 @@ services:
|
||||
condition: service_healthy
|
||||
|
||||
image-worker:
|
||||
build:
|
||||
context: platform/docker/qwen-image-worker
|
||||
args:
|
||||
COMFYUI_COMMIT: b0f4b7b294ce482a2e071d9d762c133d38c7aa07
|
||||
image: mike-ai/qwen-image-worker:local
|
||||
container_name: mike-ai-image-worker
|
||||
restart: "no"
|
||||
profiles: [image]
|
||||
labels:
|
||||
com.mike-ai.image-worker: image
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
device_ids: ["${QWEN_IMAGE_21_GPU:-1}"]
|
||||
capabilities: [gpu]
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp:size=4g,mode=1777
|
||||
- /opt/ComfyUI/user:size=64m,mode=0755
|
||||
- /opt/ComfyUI/temp:size=4g,mode=1777
|
||||
- /opt/ComfyUI/input:size=512m,mode=0755
|
||||
volumes:
|
||||
- "${QWEN_IMAGE_21_MODEL_DIR:-/data/models/Qwen-Image-2.1-ComfyUI}:/opt/ComfyUI/models:ro"
|
||||
- router-images:/data/images
|
||||
environment:
|
||||
NVIDIA_DRIVER_CAPABILITIES: compute,utility
|
||||
PYTORCH_CUDA_ALLOC_CONF: expandable_segments:True
|
||||
WORKER_TOKEN: "${CONTROLLER_TOKEN:?CONTROLLER_TOKEN is required}"
|
||||
IMAGE_DIR: /data/images
|
||||
networks: [inference]
|
||||
security_opt: ["no-new-privileges:true"]
|
||||
cap_drop: [ALL]
|
||||
healthcheck:
|
||||
test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8086/health', timeout=2)"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 90
|
||||
start_period: 10s
|
||||
|
||||
# Previous production image model, retained as a stopped rollback target.
|
||||
# It is outside the normal router path and can only be started through the
|
||||
# controller's allowlisted flux-standby endpoint.
|
||||
flux-image-worker:
|
||||
build:
|
||||
context: platform/docker/image-worker
|
||||
args:
|
||||
@@ -681,11 +727,11 @@ services:
|
||||
ACCELERATE_VERSION: ${ACCELERATE_VERSION:-1.14.0}
|
||||
HF_HUB_VERSION: ${HF_HUB_VERSION:-1.28.0}
|
||||
image: mike-ai/image-worker:local
|
||||
container_name: mike-ai-image-worker
|
||||
container_name: mike-ai-flux-image-worker
|
||||
restart: "no"
|
||||
profiles: [image]
|
||||
profiles: [flux-standby]
|
||||
labels:
|
||||
com.mike-ai.image-worker: image
|
||||
com.mike-ai.image-worker: flux-standby
|
||||
gpus: all
|
||||
read_only: true
|
||||
tmpfs: ["/tmp:size=1g,mode=1777"]
|
||||
@@ -709,76 +755,6 @@ services:
|
||||
timeout: 3s
|
||||
retries: 12
|
||||
|
||||
# Isolated evaluation target. It is created in a stopped state by the
|
||||
# preparation script and can only be started through the controller's
|
||||
# allowlisted, GPU-exclusive test endpoint.
|
||||
qwen-image-21-test:
|
||||
build:
|
||||
context: platform/docker/qwen-image-21-test
|
||||
args:
|
||||
COMFYUI_COMMIT: b0f4b7b294ce482a2e071d9d762c133d38c7aa07
|
||||
image: mike-ai/qwen-image-2.1-test:local
|
||||
container_name: mike-ai-qwen-image-2.1-test
|
||||
restart: "no"
|
||||
profiles: [qwen-image-test]
|
||||
labels:
|
||||
com.mike-ai.image-worker: qwen-image-2.1-test
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
device_ids: ["${QWEN_IMAGE_21_GPU:-1}"]
|
||||
capabilities: [gpu]
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp:size=4g,mode=1777
|
||||
- /opt/ComfyUI/user:size=64m,mode=0755
|
||||
- /opt/ComfyUI/temp:size=4g,mode=1777
|
||||
volumes:
|
||||
- "${QWEN_IMAGE_21_MODEL_DIR:-/data/models/Qwen-Image-2.1-ComfyUI}:/opt/ComfyUI/models:ro"
|
||||
- "${QWEN_IMAGE_21_OUTPUT_DIR:-/data/qwen-image-2.1-test-output}:/opt/ComfyUI/output"
|
||||
environment:
|
||||
NVIDIA_DRIVER_CAPABILITIES: compute,utility
|
||||
PYTORCH_CUDA_ALLOC_CONF: expandable_segments:True
|
||||
command:
|
||||
- python
|
||||
- main.py
|
||||
- --listen
|
||||
- 0.0.0.0
|
||||
- --port
|
||||
- "8188"
|
||||
- --lowvram
|
||||
- --preview-method
|
||||
- none
|
||||
networks: [inference]
|
||||
security_opt: ["no-new-privileges:true"]
|
||||
cap_drop: [ALL]
|
||||
healthcheck:
|
||||
test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8188/system_stats', timeout=2)"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 60
|
||||
start_period: 10s
|
||||
|
||||
qwen-image-21-test-runner:
|
||||
image: python:3.12-slim
|
||||
profiles: [qwen-image-test]
|
||||
read_only: true
|
||||
tmpfs: ["/tmp:size=32m,mode=1777"]
|
||||
volumes:
|
||||
- ./scripts/qwen-image-21-test.py:/opt/test/run.py:ro
|
||||
- "${QWEN_IMAGE_21_OUTPUT_DIR:-/data/qwen-image-2.1-test-output}:/output"
|
||||
environment:
|
||||
CONTROLLER_URL: http://profile-controller:8090
|
||||
CONTROLLER_TOKEN: "${CONTROLLER_TOKEN:?CONTROLLER_TOKEN is required}"
|
||||
COMFY_URL: http://qwen-image-21-test:8188
|
||||
OUTPUT_DIR: /output
|
||||
command: [python, /opt/test/run.py]
|
||||
networks: [control, inference]
|
||||
security_opt: ["no-new-privileges:true"]
|
||||
cap_drop: [ALL]
|
||||
|
||||
qwen3-tts:
|
||||
image: ${QWEN3_TTS_IMAGE:-ghcr.io/malaiwah/qwen3-tts-server:latest@sha256:b363a01d08b1bbecbfc3ca6f585368fae2cfdc591f9ecca6643738369f9a9d98}
|
||||
container_name: mike-ai-qwen3-tts
|
||||
|
||||
Reference in New Issue
Block a user