modelbeast/scripts/install_qwen_layered.sh
m3ultra 58a2a8177d operator: qwen_layered_local — image -> N editable RGBA layers (Qwen-Image-Layered 20B, MLX)
Vendored mflux PR#302 fork (monster/Qwen-Image-Layered-MRP-MLX), tuned
defaults 20 steps/640/baked-q8 (243s m3ultra, 366s m1ultra). Baked-model
resolution via QWEN_LAYERED_MODEL env or per-box paths, HF+q8 fallback.
nodes.json (gitignored, machine-local) updated on m3 to route to m1 too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 22:06:05 +10:00

26 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
# Install the Qwen-Image-Layered MLX runtime (mflux PR#302 fork, vendored at
# our Gitea) into vendor/mflux-qwen-layered + a uv venv. Idempotent.
#
# Model weights are NOT fetched here. run.py resolves, in order:
# $QWEN_LAYERED_MODEL -> ~/qwen-layered/qwen-layered-q8 (m3)
# -> ~/qwen-layered-staging/qwen-layered-q8 (m1)
# -> HF Qwen/Qwen-Image-Layered with on-the-fly -q8 (54GB download).
# Bake a local q8 once per box: .venv/bin/mflux-save \
# --model Qwen/Qwen-Image-Layered --base-model qwen-image-layered \
# --quantize 8 --path ~/qwen-layered/qwen-layered-q8
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
DEST="$ROOT/vendor/mflux-qwen-layered"
REPO="ssh://git@100.71.119.27:222/monster/Qwen-Image-Layered-MRP-MLX.git"
if [ ! -d "$DEST/.git" ]; then
git clone "$REPO" "$DEST"
else
echo "already cloned: $DEST"
fi
cd "$DEST"
/opt/homebrew/bin/uv venv .venv --python 3.12
/opt/homebrew/bin/uv pip install -q --python .venv/bin/python -e .
.venv/bin/mflux-generate-qwen-layered --help >/dev/null && echo "qwen-layered OK: $DEST"