Files
esh-pfi-infrastructure/stacks/qwen-image-bench/compose.yaml
T
vh 569e1af9ca feat(homepage): split AI fleet into role-based groups on a dedicated AI tab
Move the ~22-service flat "AI Systems" group off the Main tab into a new
four-tab layout (Main / AI / Infrastructure / Toolchain). The AI tab sorts
the inference fleet by function into seven groups:

  AI - Inference        gen, char-rp, char-rp-reasoning, Granite summarizer
  AI - Eval & Retrieval Selene, Skywork Reward, Qwen3 rerank/embed, image-bench
  AI - Gateways & Chat  LiteLLM, Asset Engine, Gateway Chat, Open WebUI, ...
  AI - Speech (TTS)     Chatterbox Fast, Kokoro, mOrpheus
  AI - Audio Tools      Parakeet ASR, YT Voice Clipper
  AI - Image & Media    ComfyUI, Arbo
  AI - Dormant          stopped rollback seats + retired auditions

Relabel each stack's homepage.group so canonical stacks/ matches the live
containers on ana-ml2, ana-docker, and irv-ml1. Dormant stacks were refreshed
with `docker compose up --no-start` so they carry the new label while staying
stopped (compose-start rollback preserved). settings.yaml drives tab/order/
columns; services.yaml and README updated to the new scheme.
2026-07-14 20:05:50 -07:00

85 lines
2.7 KiB
YAML

# qwen-image-bench — flukethoughts/Qwen-Image-Bench-NVFP4 on ana-ml2 GPU 1,
# REPLACING qwen3.6-35b-a3b (operator 2026-06-19). Qwen's text-to-image quality
# JUDGE model (vision-language, NVFP4 weights / vision tower bf16). NOT generative —
# it scores T2I outputs on 5 dims (overall quality, prompt match, aesthetic, LoRA
# activation, confidence).
#
# Arch: Qwen3_5ForConditionalGeneration (dense Qwen3.5 hybrid SSM+attn + vision),
# ~17B / ~20GB NVFP4. VISION-INTACT → served as multimodal; NO text-only patch
# (unlike the qwen3.5-122b gen model, which had text-only weights). vLLM
# production-validated per the model card.
#
# ⚠️ qwen3.6-35b-a3b was arbo's hero-judge (comfy-dev consumer). Downing it breaks
# arbo's judging until comfy-dev repoints to qwen-image-bench (different I/O — a
# 5-dim verdict vs a general VL judge). comfy-dev notified.
#
# DISPLACEMENT: GPU 1 is shared (granite/selene/embed/rerank/reward). qwen3.6 used
# util 0.34 (~33GB); down it first, then this fits at util ~0.22 (~21GB). REVERT =
# down this, `up -d` the qwen36 stack.
#
# Tunables in .env.
name: qwen-image-bench
services:
vllm-qwen-image-bench:
image: ${QIB_IMAGE:-vllm/vllm-openai:latest}
container_name: ${QIB_CONTAINER_NAME:-vllm-qwen-image-bench}
restart: unless-stopped
ipc: host
ports:
- "${QIB_PORT:-8014}:8000"
volumes:
- /tank/aimodels/huggingface:/hfcache
- /tank/aimodels/qwen-image-bench-nvfp4:/model:ro
environment:
- HF_HOME=/hfcache
- HF_HUB_CACHE=/hfcache/hub
- VLLM_API_KEY=${API_KEY:-}
command:
- /model
- --served-model-name
- qwen-image-bench
- --host
- 0.0.0.0
- --port
- "8000"
- --gpu-memory-utilization
- ${QIB_GPU_MEM_UTIL:-0.32}
- --max-model-len
- ${QIB_MAX_MODEL_LEN:-32768}
- --max-num-seqs
- ${QIB_MAX_NUM_SEQS:-8}
- --trust-remote-code
- --dtype
- auto
- --enable-prefix-caching
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids:
- "${QIB_GPU_ID:-1}"
capabilities:
- gpu
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 600s
networks:
- tnet
labels:
- homepage.group=AI - Eval & Retrieval
- homepage.name=Qwen-Image-Bench (T2I judge, NVFP4)
- homepage.icon=mdi-image-check
- homepage.description=Qwen text-to-image quality judge (NVFP4, vision-intact) on ana-ml2 GPU 1
- homepage.href=http://10.250.50.54:${QIB_PORT:-8014}/docs
networks:
tnet:
name: traefik-net
external: true