Coloring Stack — Batch-Ausmalbilder aus Prompt
Druckfertige Ausmalbilder (A4, 300 dpi) aus einem Prompt — lokal gerechnet, ohne Cloud-Upload. Python/FastAPI-Backend + WinUI-3-Frontend. Stackschmiede-Aushängeschild für lokale KI-Pipelines.
Worum geht es?
Ausmalbilder zu konkreten Wünschen (ein Drache mit Astronautenhelm, das Lieblings-Tier mit Krone, ein Pokémon in einer Küche) sind in Kitas, Schulen und Familien beliebt — aber meist nur generische Stock-Motive verfügbar. Bestehende KI-Tools sind:
- Cloud-gebunden — jede Prompt-Eingabe geht an US-Server
- Pay-per-Bild teuer bei regelmäßiger Nutzung
- Schwer zu steuern auf das spezifische Line-Art-Format, das ein druckbares Ausmalbild braucht
Coloring Stack ist ein Desktop-Tool, das diese Pipeline lokal löst. Es ist zugleich Stackschmiede-Aushängeschild für “wie eine ordentliche On-Prem-KI-Anwendung aussehen kann” — vom Backend bis zum Frontend durchdesignt.
Architektur
Zwei Prozesse, eine Anwendung. Das Python-Backend läuft als FastAPI-Service auf 127.0.0.1:<random>. Das WinUI-3-Frontend startet es und kommuniziert per HTTP + Server-Sent-Events.
┌─────────────────┐ HTTP/SSE ┌───────────────────┐
│ WinUI 3 (C#) │◄────────────►│ FastAPI (Python) │
│ ColoringStack │ │ coloring-stack- │
│ .App │ stdout │ backend.exe │
│ │ BACKEND_ │ │
│ ProcessMgr ────┼──READY───────┤ SDXL + LoRA │
│ BackendClient │ │ + Real-ESRGAN │
│ SseClient │ Bearer │ + Job-Registry │
└─────────────────┘ token └───────────────────┘Handshake: Backend bindet Port 0 (OS vergibt freien Port), druckt BACKEND_READY port=N token=T auf stdout. Frontend parst, merkt sich Port + Token, alle weiteren Calls gehen über Bearer-Auth. Das hält andere lokale Prozesse draußen, ohne OAuth-Overhead.
SSE-Streams für Live-Progress (Job-Phase, aktuelles Bild, ETA, GPU-Temp, VRAM). Cancel per threading.Event → SDXL pipe._interrupt = True (stoppt nach 1–2 Steps). Frontend-ProcessManager ist ultimativer Watchdog bei Stall.
Tech-Stack
Backend (fertig, Phasen 1–6):
- Python 3.12 + FastAPI + Uvicorn
- Stable Diffusion XL mit Line-Art-LoRA
- Real-ESRGAN x4plus-anime-6B für Upscale
- Pydantic v2 für API-Schemas
- pytest mit Fake-Generator (Tests ohne CUDA laufbar)
- PyInstaller-onedir-Bundle für Auslieferung
Frontend (in Arbeit, Phasen 7–15):
- WinUI 3 + .NET 8 (C#)
- Windows App SDK + CommunityToolkit.Mvvm
- Brand-konformes Theming: solid charcoal, amber-CTA, Inter + JetBrains Mono embedded
- Eigene Custom-Controls (PrimaryButton mit Sheen, GpuGauge, ColoredProgressRing, ThumbCard)
Auslieferung (offen, Phase 16):
- Inno Setup bundled Backend-onedir + Frontend-unpackaged
- HF-Modelle werden beim ersten Start in
%LOCALAPPDATA%\ColoringStack\modelsgezogen (nicht im Installer, ~7 GB)
Design-Entscheidungen
Mica explizit deaktiviert. WinUI 3 setzt standardmäßig eine halbtransparente Mica-Backdrop. Das zeigt überall ein anderes Bild (je nach Desktop-Wallpaper) und drückt die Lesbarkeit der Line-Art-Thumbs. Coloring Stack nutzt stattdessen solid #0F0F10 (Brand-Token InkDeep). Die Entscheidung ist im Design-Dokument begründet.
Custom-TitleBar. Stackschmiede-Hexagon-Logo links statt weißer Fluent-Titlebar. ExtendsContentIntoTitleBar = true.
Status-Ehrlichkeit. Die App sagt immer, was sie gerade tut — GPU-Temp, VRAM, aktuelle Phase, ETA. Stille = Bug.
Status heute (Stand April 2026)
- Backend: komplett (Phasen 1–6 ✓). FastAPI-Service, Tests, Build-Pipeline fertig.
- Rebranding: Repo auf
stack-coloringumbenannt, GitHub-Remote angepasst, Projekt-Namen in Code aktualisiert. - WinUI-Design-Konzept: 4 Markdown-Dokumente + visuelle HTML-Referenz. Steuert die Implementation.
- WinUI-Implementation: noch nicht gestartet (Phasen 7–15) — braucht Windows-Maschine mit VS 2022 + Windows App SDK.
- Installer + E2E: Phase 16/17 offen.
Screenshots folgen, sobald die WinUI-Phase läuft.
Was das Projekt zeigt
- KI-Integration ohne API-Wrapper — die komplette Pipeline (Modell-Loading, Inference, Postprocess, QA, Batch-Orchestrierung) läuft selbstgebaut.
- Desktop-App mit Service-Architektur — statt monolithischem PySide6-Bundle: Backend-Service + natives Windows-Frontend mit klarem IPC-Contract.
- Design-first-Workflow — Spec vor Code. Das UI/UX-Konzept ist geschrieben, bevor die erste
.xamlentsteht. - Realistischer Solo-Scope — mit KI-Assist machbar, auch für Projekte dieser Größe.
Warum für Sie interessant?
Weil genau dieselbe Architektur — Backend-Service + natives Frontend + brand-konforme Auslieferung — auf andere Domänen übertragbar ist:
- Dokumenten-Pipeline: Rechnungen, Verträge, Schriftsätze lokal verarbeiten statt zu OpenAI hochladen
- Interne RAG-Bots: Fach-Korpus auf eigener Hardware, Desktop-Client für das Team
- Batch-Analyse-Tools: wissenschaftliche Daten, Bild-Archive, Log-Files — lokal, reproduzierbar, ohne Cloud-Abhängigkeit
Siehe auch das Leistungs-Paket Souveräne KI-Integration.
Ergebnisse
- Batch-Generierung von Ausmalbildern aus Text-Prompts — DIN A4, 300 dpi, druckfertig
- Python-Backend als FastAPI-Service (Phasen 1–6 ✓): HTTP-IPC, SSE-Streams für Progress + GPU, Bearer-Token-Auth
- WinUI-3-Frontend in Entwicklung (Phasen 7–15): brand-konformes Design, solid charcoal statt Fluent-Mica
- Komplettes UI/UX-Konzept als Spezifikation vor der Implementation — 4 Design-Dokumente + visuelle Referenz
- Verarbeitung vollständig on-premises — Text-Prompts verlassen die Maschine nicht
- PyInstaller-Bundle (~3 GB inkl. CUDA) + Inno-Setup-Installer als Auslieferungs-Kette (Phase 16 offen)
Eigene lokale KI-Pipeline?
Sie haben einen Use-Case, der ohne US-Cloud auskommen soll — Dokument-Analyse, Bild-Generierung, RAG auf eigenem Fach-Korpus? Ich baue solche Pipelines end-to-end: Backend, Modell-Integration, Desktop- oder Web-Frontend, Deployment.
Projekt besprechen