- POST /v1/images/generations (OpenAI-kompatibel, prompt/size/n/seed/quality) - quality: standard=30 Steps (Default), high=50 Steps - Größen: 1024x1024, 1536x1024, 1024x1536, 1920x1088, 1088x1920 - GPU-Hotswap: Qwen stoppen -> FLUX laden -> Bild -> FLUX entladen -> Qwen wiederherstellen (exakt vorheriges Profil) - Zentrales GPU/Modell-Lock (Profilwechsel und Bild teilen sich das Lock) - Chat-Requests warten während Bild-Job (kein 502), Timeout CHAT_WAIT_TIMEOUT - Robuste Recovery: try/finally, Worker-Beendigung, VRAM-Check, Qwen-Readiness - /status: image.phase, image.worker, image.model_loaded, qwen.available, qwen.active_chats - GET /images, GET /images/<datei> (validiert, nur images/-Verzeichnis) - image_worker.py: FLUX-Worker (eigener Prozess, JSON-Protokoll, bf16 + enable_model_cpu_offload) - deploy: venv (torch/diffusers/transformers/accelerate), Modell-Download, Image-Dir, systemd-Unit mit Image-Umgebungsvariablen - dev: Mock-Worker, fake-systemctl, Benchmarks (GPU-Resident, Offload, Steps, Quality-Compare), 32 lokale Tests - README: Bildgenerierung, Hotswap, Recovery, Benchmarks (RTX 5080), Python-Pakete Benchmarks (RTX 5080, 16 GB, CPU-Offload): - 512x512 / 10 Steps: ~9.3 s - 1024x1024 / 30 Steps: ~31.3 s - 1024x1024 / 50 Steps: ~45.3 s - 1920x1088 / 50 Steps: ~91 s - Peak-VRAM: ~8.4-8.9 GB - Hotswap-Gesamtzeit: ~41-42 s (1024x1024 / 30 Steps)
21 lines
798 B
Bash
Executable File
21 lines
798 B
Bash
Executable File
#!/bin/bash
|
||
# AI Profile Router – Deployment vom Coding-System auf das Zielsystem.
|
||
# Überträgt die Deploy-Dateien per SCP und führt install.sh per SSH aus.
|
||
set -euo pipefail
|
||
cd "$(dirname "$0")/.."
|
||
|
||
TARGET="${TARGET:-root@192.168.1.196}"
|
||
SSH_KEY="${SSH_KEY:-$HOME/.ssh/lmstudio_unraid}"
|
||
STAGE="/tmp/ai-profile-router-$$"
|
||
|
||
mkdir -p "$STAGE"
|
||
cp router/ai_profile_router.py router/image_worker.py deploy/install.sh deploy/mike-ai-profile-router.service "$STAGE/"
|
||
|
||
echo "== Übertrage Dateien nach ${TARGET}:/tmp/ai-profile-router/"
|
||
ssh -i "$SSH_KEY" "$TARGET" 'mkdir -p /tmp/ai-profile-router'
|
||
scp -i "$SSH_KEY" "$STAGE"/* "$TARGET:/tmp/ai-profile-router/"
|
||
rm -rf "$STAGE"
|
||
|
||
echo "== Führe Installation auf dem Zielsystem aus"
|
||
ssh -i "$SSH_KEY" "$TARGET" 'bash /tmp/ai-profile-router/install.sh'
|