Make Qwen Image 2.1 the production image worker

This commit is contained in:
Mikei386
2026-09-21 10:41:32 +02:00
parent aee31aa045
commit 5de4ac4b25
19 changed files with 531 additions and 346 deletions
+4 -3
View File
@@ -12,7 +12,7 @@ flowchart LR
H -->|OpenAI API| R[Profile Router<br/>Athena :8081]
R --> P[Profile Controller]
P --> Q[genau ein llama.cpp-Profil<br/>Qwen Fast / Medium / Large / Ultra / Uncensored]
R --> I[FLUX.2 Klein 9B FP8 Beta<br/>RTX 5080, Text + Editing]
R --> I[Qwen-Image-2.1 INT8<br/>RTX 5080, Text + Editing]
R --> T[Qwen3-TTS 1.7B RTX 3060<br/>TTS-Gateway]
R --> STT[Whisper.cpp small<br/>CPU, lokale Spracherkennung]
@@ -32,8 +32,9 @@ flowchart LR
K[Backup alle 5 Stunden] --> DATA[/data und /etc/mike-ai]
```
Stand: 20. September 2026. Versionen und Abweichungen: [Live-Stand](LIVE_STATE.md).
FLUX nutzt beide GPUs und pausiert dafür LLM und Qwen3-TTS. Dashboard und
Stand: 21. September 2026. Versionen und Abweichungen: [Live-Stand](LIVE_STATE.md).
Qwen Image nutzt die RTX 5080 und pausiert dafür LLM und Qwen3-TTS. FLUX
bleibt als gestoppter Rückfallworker vorhanden. Dashboard und
Portainer besitzen eigene Netzwerk-Namespaces in `mike-ai_frontend`; der Router
läuft in `mike-ai_control`. Der Gateway vermittelt den privaten Zugriff.
Zusätzliche Musik-, Audio-, Voice- und 3D-Container stehen im
+3 -2
View File
@@ -14,7 +14,8 @@ nicht automatisch ein ungenutzter Rest.
| `mike-ai-embedding` | EmbeddingGemma 300M QAT Q8 | Dauerhafter CPU-only-Endpunkt für OpenClaws semantische und hybride Memory-Suche; teilt ausschließlich den privaten Netzwerk-Namespace des WireGuard-Gateways. |
| `mike-ai-bonsai2-ab` | Bonsai-2-Vergleichsmodell | Gestoppter, reproduzierbar dokumentierter A/B-Testcontainer; kein Produktivprofil. |
| `mike-ai-applio-studio` | Applio/RVC; Stimmenmodelle werden nutzerseitig ergänzt | Vollständige RVC-Oberfläche für Inferenz, Modellverwaltung und Training auf der RTX 5080. Für eine Konvertierung ist ein importiertes oder trainiertes `.pth`-Modell nötig; eine Referenzaufnahme allein reicht nicht. |
| `mike-ai-image-worker` | FLUX.2 Klein 9B FP8, Qwen3-8B NF4 Textencoder und VAE | Erzeugt und bearbeitet Bilder transaktional; nutzt während eines Auftrags RTX 5080 und RTX 3060. |
| `mike-ai-image-worker` | Qwen-Image-2.1 INT8, Qwen3-VL-8B INT8 und VAE | Produktiver Bildworker; erzeugt und bearbeitet Bilder transaktional auf der RTX 5080. |
| `mike-ai-flux-image-worker` | FLUX.2 Klein 9B FP8, Qwen3-8B NF4 Textencoder und VAE | Gestoppter Rückfallworker; wird vom normalen Router-Bildpfad nicht gestartet. |
| `mike-ai-llama-dashboard` | kein Modell | Zeigt Telemetrie, Profile, GPU-Nutzung, Slot-Kontextbelegung mit Verlauf und Betriebsarten an und bietet die Modusumschaltung. |
| `mike-ai-llama-fast` | Qwen3.8-27B `IQ4-MIX`, Qwen-MMProj BF16 | Schnelles Q4-Text-/Vision-Profil mit 76.800 Token Kontext. |
| `mike-ai-llama-large` | Qwen3.8-27B `IQ4_XS-pure`, Qwen-MMProj BF16 | Q4-Text-/Vision-Profil mit 192.000 Token Kontext und Verteilung auf beide GPUs. |
@@ -55,4 +56,4 @@ sämtliche Modellgewichte oder Funktionen neu.
Gestoppte Container sind nicht automatisch Testreste. Vor einer Entfernung
Compose-Zuordnung, Mounts und Controller-Verweise prüfen. Die vorhandenen
Spezialcontainer wurden durch den FLUX-Auflösungstest weder angelegt noch entfernt.
Die historischen FLUX-Tests sind keine Aussage über den produktiven Qwen-Pfad.
+5 -4
View File
@@ -1,6 +1,6 @@
# Aktuelle Laufzeitnotizen
Stand: 20. September 2026.
Stand: 21. September 2026.
Der verbindliche Abgleich steht im [geprüften Live-Stand](LIVE_STATE.md).
Produktiv läuft **llama.cpp 0.4.1** auf Commit `b29c606`, zuvor b10930.
@@ -18,9 +18,10 @@ Funktionsproben, Vergleichsmessungen und gesicherter Rückfallstand.
[Update-Audit vom 15. September](UPDATE_AUDIT_20260915.md): aktualisierte
Komponenten, unveränderte aktuelle Komponenten, Aufräumarbeiten und Rollback.
FLUX verwendet **9B FP8 Beta** mit Textencoder auf der RTX 3060.
[Auflösungstest](FLUX_RESOLUTION_TEST_20260912.md): 1024 erfolgreich,
1280 CUDA-OOM; produktive Begrenzung weiterhin 1024.
Der produktive Bildpfad verwendet **Qwen-Image-2.1 INT8** mit ComfyUI auf der
RTX 5080. FLUX 9B FP8 und seine Gewichte bleiben als gestoppter Rückfallpfad.
[Qwen-Betriebsdoku](QWEN_IMAGE_21.md); der historische
[FLUX-Auflösungstest](FLUX_RESOLUTION_TEST_20260912.md) gilt nur für FLUX.
Sprachausgabe: Qwen3-TTS 1.7B ohne Piper. Spracherkennung: Whisper.cpp 1.9.4
mit dem Modell `small` auf der CPU. Applio basiert auf dem stabilen Release 3.6.4.
+4 -4
View File
@@ -39,10 +39,10 @@ nicht mehr den aktuellen Containerzustand.
## Weitere Dienste
- FLUX.2 Klein 9B FP8 Beta: Transformer/VAE auf 5080, Qwen3-8B-NF4-
Textencoder auf 3060. Produktiv freigegeben sind höchstens 1024 × 1024,
vier Schritte, Guidance 1, vier Referenzbilder und 128 Encoder-Tokens.
1280 × 1280 lief im Test in CUDA-OOM.
- Qwen-Image-2.1 INT8 läuft produktiv über gepinntes ComfyUI mit Low-VRAM auf
der RTX 5080. Der Router verwendet 25 Schritte, Guidance 1 und bis zu vier
Referenzbilder. FLUX.2 Klein 9B FP8 bleibt mit seinen Gewichten als
gestoppter, explizit allowlist-beschränkter Rückfallcontainer erhalten.
- Qwen3-TTS 1.7B auf 3060 hinter dem TTS-Gateway; kein Piper-Fallback.
- Whisper.cpp `ggml-small` auf CPU über `/v1/audio/transcriptions`.
- `mike-ai-embedding` stellt EmbeddingGemma 300M Q8 CPU-only über den privaten
+83
View File
@@ -0,0 +1,83 @@
# Qwen-Image-2.1 auf Athena
Stand: 21. September 2026. Qwen-Image-2.1 ist der produktive Bildworker des
Routers. FLUX.2 Klein 9B FP8 bleibt als gestoppter Rückfallcontainer erhalten.
## Gepinnter Stand
- ComfyUI: Commit `b0f4b7b294ce482a2e071d9d762c133d38c7aa07`
- Modell-Repository: `Comfy-Org/Qwen-Image-2.1`, Revision
`ace0edeb3791a594ddfa36ed5f41a178a394e921`
- Transformer: `qwen_image_2.1_int8_convrot.safetensors`
(`cb74113cb03faecd79611b01fd7fd642f0aa60d6f0b95086abee214d75eaa57d`)
- Textencoder: `qwen3vl_8b_int8_convrot.safetensors`
(`8bfd0f6e12abf2d2d697ecc888e5e90b0d6741d6708f05799f53afa560452e8f`)
- VAE: `qwen_image_2.1_vae_bf16.safetensors`
(`bb21f7473051e1ac368515dd3f2e15cd44d7a11748ee8823e1ddca3e4876b7c9`)
- Pipeline: 25 Schritte, CFG 1, Euler/Simple, `--lowvram`
- GPU: ausschließlich Athena-GPU 1, die RTX 5080 mit 16 GB
Die Gewichte liegen außerhalb von Git unter
`/data/models/Qwen-Image-2.1-ComfyUI`. Der Adapter
`platform/docker/qwen-image-worker/qwen_image_worker.py` stellt vor ComfyUI
die bestehende private Worker-API auf Port 8086 bereit. Der öffentliche
Routervertrag bleibt damit `/v1/images/generations` und `/v1/images/edits`.
## Lebenszyklus
Ein Bildauftrag läuft transaktional:
1. Der Router merkt sich das aktive Textprofil.
2. Der Profile Controller stoppt LLM, TTS und andere GPU-Spezialworker.
3. `mike-ai-image-worker` startet Qwen Image auf der RTX 5080.
4. Der Adapter erzeugt das Bild oder bearbeitet bis zu vier Referenzbilder.
5. Der Qwen-Worker wird vollständig gestoppt.
6. Das vorherige Textprofil und Qwen3-TTS werden wiederhergestellt.
Der Container ist außerhalb eines Auftrags gestoppt. Das ist der Sollzustand.
## Reproduzierbare Vorbereitung
```bash
cd /opt/mike-ai/stack
sudo ./scripts/prepare-qwen-image-21.sh
```
Das Skript lädt fehlende Dateien mit festen SHA-256-Prüfsummen, baut den
produktiven Qwen-Worker und legt Qwen sowie FLUX gestoppt an. Es lädt dabei
kein Modell in den VRAM.
## Funktionsprobe über den echten Routerweg
```bash
curl -sS http://127.0.0.1:8081/v1/images/generations \
-H 'Content-Type: application/json' \
-d '{
"model":"Qwen-Image-2.1-int8",
"prompt":"Fotorealistisches rotes Haus bei Tageslicht",
"size":"1024x1024",
"steps":25,
"guidance":1.0,
"response_format":"url"
}'
```
Nach dem Lauf müssen `mike-ai-image-worker` und
`mike-ai-flux-image-worker` gestoppt sein und das vorherige LLM-Profil wieder
gesund laufen.
## FLUX-Rückfallpfad
FLUX verwendet weiterhin das Image `mike-ai/image-worker:local`, die
bestehenden Modellverzeichnisse und den Container
`mike-ai-flux-image-worker`. Er hat das Controller-Label `flux-standby` und
kann deshalb nicht durch einen normalen Router-Bildauftrag gestartet werden.
Eine manuelle Diagnose ist nur über den allowlist-beschränkten Controllerpfad
`/workers/flux-standby/start` möglich. Für eine dauerhafte Rückschaltung müssen
Service-DNS, Modellname und Schrittzahl gemeinsam in Compose auf FLUX gesetzt
und anschließend Router und Controller neu ausgerollt werden. Keine dieser
Änderungen erfolgt automatisch.
Historische FLUX-Messwerte und Grenzen stehen in
[FLUX_9B_BETA.md](FLUX_9B_BETA.md) und
[FLUX_RESOLUTION_TEST_20260912.md](FLUX_RESOLUTION_TEST_20260912.md).
-60
View File
@@ -1,60 +0,0 @@
# Qwen-Image-2.1 – isolierter Test
Stand: 21. September 2026. Dieser Pfad dient nur dem Vergleich mit dem
produktiven FLUX.2-Worker. Er ersetzt FLUX nicht und ist nicht an den Router
angebunden.
## Reproduzierbarer Stand
- ComfyUI: Commit `b0f4b7b294ce482a2e071d9d762c133d38c7aa07`
- Modell-Repository: `Comfy-Org/Qwen-Image-2.1`, Revision
`ace0edeb3791a594ddfa36ed5f41a178a394e921`
- Transformer: `qwen_image_2.1_int8_convrot.safetensors` (7.256.783.064 Byte)
- Textencoder: `qwen3vl_8b_int8_convrot.safetensors` (9.350.798.360 Byte)
- VAE: `qwen_image_2.1_vae_bf16.safetensors` (675.509.688 Byte)
- erster Vergleich: 1024 × 1024, 25 Schritte, CFG 1, Euler/Simple
Die Gewichte sind die von Qwen verlinkte offizielle ComfyUI-Aufbereitung. Der
Worker verwendet `--lowvram` auf der RTX 5080. So bleibt der Test mit 16 GB
VRAM möglich; der Preis ist CPU-Offload und damit eine längere Laufzeit.
## Vorbereitung ohne GPU-Last
```bash
cd /opt/mike-ai/stack
sudo ./scripts/prepare-qwen-image-21-test.sh
```
Das Skript prüft feste SHA-256-Summen, baut das Image, aktualisiert den
Profile Controller und erstellt den Testcontainer **gestoppt**. Es lädt kein
Modell in die GPU.
## Einmaliger Test nach ausdrücklichem „Go“
```bash
cd /opt/mike-ai/stack
docker compose --env-file /etc/mike-ai/stack.env \
--profile qwen-image-test run --rm qwen-image-21-test-runner \
python /opt/test/run.py 'HIER DEN VEREINBARTEN PROMPT EINSETZEN'
```
Der Runner merkt sich das aktive LLM-Profil, startet den Qwen-Worker über den
allowlist-beschränkten Controller, erzeugt genau ein Bild und stellt danach
auch bei einem Fehler das vorherige Profil wieder her. Das Ergebnis liegt in
`/data/qwen-image-2.1-test-output/`. FLUX-Konfiguration und FLUX-Gewichte
werden nicht verändert.
## Vollständig entfernen
```bash
cd /opt/mike-ai/stack
docker compose --env-file /etc/mike-ai/stack.env \
--profile qwen-image-test rm -sf qwen-image-21-test
docker image rm mike-ai/qwen-image-2.1-test:local
rm -rf /data/models/Qwen-Image-2.1-ComfyUI \
/data/qwen-image-2.1-test-output
```
Anschließend kann die Controller-Erweiterung bei Bedarf aus Git zurückgenommen
und nur `profile-controller` neu gebaut werden. Die Entfernung ist nicht Teil
der Vorbereitung und wird niemals automatisch ausgeführt.
+2 -1
View File
@@ -53,7 +53,8 @@ Titelgenerierung und Kontextkompression in Hermes.
| Datum | Modell | Ergebnis | Status / Entscheidung | Beleg |
|---|---|---|---|---|
| bis 07.09.2026 | FLUX.2 Klein 4B | funktional, aber schwächere räumliche und motivische Konsistenz | **ersetzt** durch 9B FP8 | [FLUX_9B_BETA.md](FLUX_9B_BETA.md) |
| 07.09.2026 | FLUX.2 Klein 9B FP8 | bessere Prompttreue; produktiver Zwei-GPU-Pfad, derzeit auf 1024 × 1024 begrenzt | **produktiv als Beta** | [FLUX_9B_BETA.md](FLUX_9B_BETA.md) |
| 07.09.2026 | FLUX.2 Klein 9B FP8 | bessere Prompttreue als 4B; produktiver Zwei-GPU-Pfad, auf 1024 × 1024 begrenzt | **Standby seit 21.09.2026** | [FLUX_9B_BETA.md](FLUX_9B_BETA.md) |
| 21.09.2026 | Qwen-Image-2.1 INT8 | im direkten Vergleich fotorealistischer, bessere Textdarstellung und Prompttreue; 1024 × 1024 bei 25 Schritten in rund 49 s Pipeline-Lauf | **produktiv** | [QWEN_IMAGE_21.md](QWEN_IMAGE_21.md) |
| 08.09.2026 | HYPIR-SD2 | glättete oder erfand Details und veränderte kleine Strukturen | **verworfen** | [IMAGE_RESTORATION.md](IMAGE_RESTORATION.md) |
| 08.09.2026 | SeedVR2 7B FP8 | bewahrte Identität besser als HYPIR, brachte beim realen unscharfen Foto aber kaum nutzbare Details zurück | **verworfen** | [IMAGE_RESTORATION.md](IMAGE_RESTORATION.md) |