14 KiB
KI-Video — Lokale Produktionspipeline
Stand: 16.03.2026
Ziel
Lokale, praktisch nutzbare Produktionsstrecke fuer YouTube-Videos im Commentary-/Erklaerstil. Kein Spielzeug-Demo, kein Forschungsprojekt: Thema rein → fertiges Video raus.
Videoformat
| Eigenschaft | Beschreibung |
|---|---|
| Typ | Commentary, Erklaervideos, Meinungs-/Analyseformate |
| Stil | Sprecherstimme + Bilder + leichte Bewegung + Einblendungen |
| Optional | Sprechender Avatar (SadTalker) — erst ab v2 |
| Nicht | Realfilm, Hollywood-VFX, aufwendige 3D-Animation |
Pipeline
1. Themenfindung / Recherche (manuell)
│
2. Skript-Erstellung → Qwen 14B (ki-tower)
│
3. Bildgenerierung → FLUX.1-dev (ki-tower)
│
4. Voiceover → Piper TTS (CPU, ki-tower)
│
5. Compositing → FFmpeg + Ken-Burns (CPU, ki-tower)
│
6. Encoding → FFmpeg + NVENC (ki-tower)
│
7. Export → fertiges MP4 fuer YouTube
Hardware
ki-tower — Hauptmaschine (Muldenstein, geplant)
| Eigenschaft | Wert |
|---|---|
| CPU | AMD Ryzen 7 7700 (8C/16T) |
| RAM | 64 GB DDR5 |
| GPU | NVIDIA RTX 3090 (24 GB VRAM) |
| Storage | 1 TB NVMe |
| OS | Debian 12 + Docker + CUDA |
| Logischer Name | ki-tower |
| Rolle | Chef. Alle schweren Aufgaben, Orchestrierung, Hauptpfad. |
gpu-worker — NVIDIA-Rig (Muldenstein, geplant) — PRIMAERER WORKER
| Eigenschaft | Wert |
|---|---|
| GPUs | 4x NVIDIA RTX 3080 (je 10 GB GDDR6X, PCIe 4.0 x16) |
| CUDA | Voll unterstuetzt, identischer Stack wie ki-tower |
| OS | Debian 12 + Docker + CUDA |
| Logischer Name | gpu-worker |
| Rolle | Produktiver Worker-Pool. CUDA-nativ, kein Workaround noetig. |
| Vorteil | Selber Code wie auf der 3090 — kein Portierungsaufwand. |
gpu-reserve — AMD-Rig (Muldenstein, Reserve)
| Eigenschaft | Wert |
|---|---|
| GPUs | 8x AMD RX 6600 XT Dual (je 8 GB GDDR6, PCIe 4.0 x8) |
| ROCm | Inoffiziell (gfx1032, Workaround noetig) |
| Logischer Name | gpu-reserve |
| Rolle | Reserve/Nebenrolle. Nur Whisper + CPU-Batch wenn 3080-Rig ausgelastet. |
| Status | Zurueckgestellt. Entscheidung nach 3080-Rig-Aufbau. Alternative: verkaufen. |
Rollenverteilung — Was laeuft wo
ki-tower (RTX 3090) — Hauptpfad
| Aufgabe | Modell | VRAM | Anmerkung |
|---|---|---|---|
| Skripte | Qwen 2.5 14B (Q5) | ~12 GB | Default. 32B nur wenn 14B nachweislich nicht reicht. |
| Hauptbilder | FLUX.1-dev | ~12 GB | Visueller Kern der Videos |
| TTS (v1) | Piper TTS | CPU-only | Fuer v1 ausreichend, kein VRAM-Verbrauch |
| TTS (v2) | XTTS v2 | ~4 GB | Upgrade in v2, bessere Stimme, Voice-Cloning |
| Avatar (v2) | SadTalker | ~6 GB | Optional, erst ab v2 |
| Compositing | FFmpeg | CPU | Ken-Burns, Ueberblendungen, Overlays |
| Encoding | FFmpeg + NVENC | ~1 GB | Hardware-beschleunigt |
| Orchestrator | Python | CPU | Steuert alle Schritte |
Wichtig: Schritte laufen SEQUENTIELL. Nur eine schwere GPU-Aufgabe gleichzeitig. 14B statt 32B als Default — laesst 12 GB VRAM frei, kein Flush zwischen Schritten noetig.
gpu-worker (4x RTX 3080) — Produktive Worker-Jobs
| Aufgabe | VRAM | Karten | Anmerkung |
|---|---|---|---|
| SDXL (Batch-Bilder) | ~7 GB | 1-2 | CUDA-nativ, schnell, parallel moeglich |
| XTTS v2 (TTS-Batch) | ~4 GB | 1 | Voice-Cloning Batch-Produktion |
| SadTalker (Avatar) | ~6 GB | 1 | CUDA-only, hier nativ lauffaehig |
| Whisper (Untertitel) | ~1.5 GB | 1 | faster-whisper mit CUDA |
| Real-ESRGAN (Upscaling) | ~2 GB | 1 | 4K-Upscale fuer Thumbnails/Szenen |
| Kleine LLMs (7-10B) | ~8 GB | 1 | Hilfs-LLM fuer Zusammenfassungen, Tags |
| Embeddings | ~1 GB | 1 | Fuer Jarvis/RAG, nicht Video-Pipeline |
Kernvorteil: Identischer CUDA-Stack wie ki-tower. Code einmal schreiben, ueberall deployen. 4 Karten = 4 parallele Jobs moeglich. Einschalten wenn Batch-Jobs anstehen.
gpu-reserve (8x RX 6600 XT) — Reserve/Nebenrolle
| Aufgabe | VRAM | Karten | Anmerkung |
|---|---|---|---|
| Whisper (whisper.cpp) | ~1.5 GB | 1-2 | Einziger gut getesteter AMD-Usecase |
| CPU-Batch-Jobs | — | — | Piper TTS, FFmpeg, Text-Vorverarbeitung |
Realistisch nutzbar: 1-2 Karten fuer Whisper, Rest bringt kaum Mehrwert. Empfehlung: Erst aufbauen wenn 3080-Rig voll ausgelastet. Alternative: verkaufen.
NICHT auf das AMD-Rig
| Aufgabe | Warum nicht |
|---|---|
| SDXL / Bildgenerierung | ROCm inoffiziell, CUDA-Version laeuft auf 3080 besser |
| XTTS v2 | PyTorch + ROCm ungetestet, auf 3080 CUDA-nativ |
| SadTalker | CUDA-only |
| Qwen / LLMs | PyTorch + ROCm + Textgen = Frust auf inoffizieller HW |
| Irgendwas Produktionskritisches | Workaround-basierte HW darf Produktion nicht blockieren |
Hardware-Priorisierung: 3080 vs. 6600 XT
Klare Rangfolge:
| Rang | Hardware | Rolle | Begruendung |
|---|---|---|---|
| 1 | RTX 3090 (ki-tower) | Chef | 24 GB VRAM, schwere Modelle, Orchestrierung |
| 2 | 4x RTX 3080 (gpu-worker) | Produktiver Worker | CUDA-nativ = selber Code wie ki-tower. 10 GB VRAM pro Karte reicht fuer SDXL, XTTS, SadTalker, Whisper. Kein Portierungsaufwand. |
| 3 | 8x RX 6600 XT (gpu-reserve) | Reserve / ggf. verkaufen | ROCm inoffiziell. Jeder Usecase, den die 6600 XT kann, kann die 3080 besser + einfacher. Einziger Vorteil: Kartenanzahl fuer massiv-paralleles Whisper. Realistisch nicht gebraucht. |
Warum 4x 3080 > 8x 6600 XT:
- Gleicher Software-Stack wie ki-tower (CUDA). Code einmal schreiben, ueberall deployen.
- 10 GB VRAM vs. 8 GB VRAM. Klingt wenig, macht bei SDXL/SadTalker den Unterschied.
- PyTorch + CUDA ist getestet, stabil, dokumentiert. ROCm auf Navi 23 ist Kampf.
- Weniger Karten = weniger Strom, weniger Kuehlung, weniger moegliche Fehlerquellen.
- 4 parallele CUDA-Worker decken den gesamten Bedarf ab.
Empfehlung AMD-Rig: Nicht aktiv aufbauen. Falls 3080-Rig irgendwann an Kapazitaetsgrenzen stoesst: 1-Karten-Test mit Whisper. Wenn selbst das nicht lohnt: verkaufen und in NVMe-Storage oder RAM investieren.
Worker-Architektur
ki-tower (3090, Chef) gpu-worker (4x 3080, Worker) gpu-reserve (RX 6600 XT)
┌─────────────────────────┐ ┌──────────────────────────────┐ ┌──────────────────┐
│ Orchestrator (Python) │ │ Debian 12 + Docker + CUDA │ │ Reserve/Whisper │
│ ├── Job Queue (SQLite) │ Tailscale │ │
│ ├── /api/submit-job │◄────────────►│ GPU #0: sdxl-worker :8501 │ │ Whisper :8601 │
│ ├── /api/job-status │ │ GPU #1: xtts-worker :8502 │ │ CPU-Batch :8602 │
│ └── /api/get-result │ Tailscale │ GPU #2: sadtalker :8503 │ │ (nur bei Bedarf)│
│ │ │ GPU #3: whisper/embed :8504 │ └──────────────────┘
│ Qwen 14B (vLLM) :8401 │ │ │
│ FLUX.1 (ComfyUI):8402 │ │ 10 GB VRAM pro Karte │
│ FFmpeg (lokal) │ │ CUDA-nativ, kein Workaround │
└─────────────────────────┘ └──────────────────────────────┘
Prinzipien:
- 1 Container = 1 GPU = 1 Aufgabe. Feste Zuordnung, kein dynamisches Scheduling.
- SQLite als Job-Queue. Ein User, nicht tausend. Eine Datei reicht.
- HTTP-APIs pro Worker. Orchestrator ruft per REST auf, pollt Status.
- Kein Service-Mesh, kein Kubernetes. Tailscale verbindet die zwei Maschinen.
VRAM-Budget (ki-tower, sequentiell)
Schritt 1: Skript → Qwen 14B → ~12 GB VRAM
Schritt 2: Bilder → FLUX.1-dev → ~12 GB VRAM
Schritt 3: TTS → Piper (CPU) → 0 GB VRAM
Schritt 4: Compositing → FFmpeg (CPU) → 0 GB VRAM
Schritt 5: Encoding → NVENC → ~1 GB VRAM
Mit Qwen 14B statt 32B: kein VRAM-Flush zwischen Schritt 1 und 2 noetig. Geschaetzte Produktionszeit: ~1-2 Stunden pro 10-Min-Video.
Nicht-Ziele
- Kein Forschungsprojekt
- Keine Bastelwiese ohne Ergebnis
- Keine Dauerabhaengigkeit von Cloud-Abos
- Keine Architektur die nur auf dem Papier funktioniert
- Kein sofortiger Avatar als Kernbestandteil
- Keine ueberkomplizierte Proxmox-/VM-Orgie auf dem Rig
- Kein Schoenreden von AMD-ROCm-Limitierungen
v1 — Minimal Viable Pipeline (nur ki-tower)
v1 beweist: die Pipeline funktioniert. Kein Rig, kein Avatar, keine Automatisierung.
v1 Pipeline (alles auf ki-tower):
Thema (manuell)
│
▼
Qwen 14B → Skript (vLLM, :8401)
│
▼
FLUX.1-dev → 20-30 Bilder (ComfyUI, :8402)
│
▼
Piper TTS → Voiceover (CPU, :8504)
│
▼
FFmpeg → Ken-Burns + Audio + Overlays → fertiges MP4
Was v1 NICHT hat:
- Keinen Avatar
- Kein GPU-Worker-Rig
- Keine automatische Orchestrierung (Schritte manuell anstossen)
- Keinen YouTube-Upload
- Keine XTTS v2 (Piper reicht fuer v1)
Erfolgskriterium v1: Ein 10-Minuten-Video komplett lokal produziert.
v2 — Erweiterungen (nach funktionierender v1)
| Feature | Abhaengigkeit |
|---|---|
| XTTS v2 statt Piper | Auf ki-tower (3090) oder 3080-Worker |
| SadTalker Avatar | Auf 3080-Worker (6 GB VRAM reicht) |
| 3080 Worker-Rig | Aufbau parallel zu v1, CUDA-Stack identisch |
| Python-Orchestrator | Erst manuell verstehen, dann automatisieren |
| SDXL-Batch auf 3080 | Nebenbilder parallel generieren |
| Qwen 32B statt 14B | Nur wenn 14B-Skripte nachweislich zu schwach |
v3+ — Spaeter
| Feature | Anmerkung |
|---|---|
| YouTube-Upload-Automation | Manueller Upload = 2 Klicks. Lohnt erst bei >3 Videos/Woche |
| Multi-User / geklonte Instanzen | Erst ein funktionierendes Produkt haben |
| Prompt-Templates Bibliothek | Waechst organisch mit der Produktion |
| Research-Hub-Integration | Themenvorschlaege automatisch aus RSS/News |
Umsetzungsreihenfolge
PHASE 1 — ki-tower Grundinstallation (Woche 1-2)
├── Debian 12 + NVIDIA-Treiber + CUDA 12 + Docker
├── vLLM + Qwen 2.5 14B → erster Skript-Test
└── Ergebnis: "Ich kann lokal ein Skript generieren"
PHASE 2 — Bildgenerierung (Woche 3-4)
├── ComfyUI + FLUX.1-dev in Docker
├── Workflow: Skript-Szene → Bildprompt → Bild
└── Ergebnis: "Ich kann passende Bilder zu einem Skript erzeugen"
PHASE 3 — TTS + Assembly (Woche 5)
├── Piper TTS in Docker (CPU)
├── FFmpeg-Pipeline: Bilder + Audio → Video mit Ken-Burns
└── Ergebnis: "Erstes komplettes Video, lokal produziert"
PHASE 4 — Polieren + erstes echtes Video (Woche 6)
├── Prompt-Templates fuer Skripte verfeinern
├── FFmpeg-Presets fuer verschiedene Szenentypen
├── Erstes Video auf YouTube hochladen
└── Ergebnis: "v1 steht und produziert"
PHASE 5 — 3080-Rig Aufbau (Woche 7-8, parallel moeglich)
├── Debian 12 + NVIDIA-Treiber + CUDA + Docker (selber Stack wie ki-tower)
├── SDXL-Worker, Whisper-Worker, XTTS-Worker aufsetzen
├── Tailscale + Job-API anbinden
└── Ergebnis: "4 parallele CUDA-Worker laufen"
PHASE 6 — v2 Features (nach stabiler Produktion)
├── XTTS v2 auf 3080-Worker (bessere Stimme, Batch)
├── SadTalker Avatar auf 3080-Worker
├── Python-Orchestrator (automatische Verkettung)
└── Ergebnis: "Semi-automatische Videoproduktion mit Worker-Pool"
PHASE 7 — AMD-Rig Entscheidung (optional, spaeter)
├── Bewertung ob 3080-Rig Kapazitaet reicht
├── Falls nicht: 1-Karten-Test mit RX 6600 XT + Whisper
├── Falls ja: AMD-Rig verkaufen, Erloese in Storage investieren
└── Ergebnis: "Klare Entscheidung ueber AMD-Hardware"
Entscheidungen (getroffen)
| Frage | Entscheidung | Begruendung |
|---|---|---|
| OS ki-tower | Debian 12 | Einfacher fuer GPU, Docker, kein Hypervisor-Overhead |
| OS gpu-worker | Debian 12 | Identisch mit ki-tower, CUDA-nativ, kein Sonderweg |
| Worker-Rig | 4x RTX 3080 | CUDA-nativ > 8x RX 6600 XT mit ROCm-Workarounds |
| LLM-Modell | Qwen 14B (Default) | 12 GB VRAM, laesst Platz. 32B nur als Upgrade. |
| LLM-Server | vLLM | Schneller als llama.cpp bei Batch, Model-Unloading |
| Bildgenerierung | ComfyUI + FLUX.1-dev | Flexibel, Workflow-basiert, gute Qualitaet |
| TTS v1 | Piper TTS (CPU) | Kein GPU-Verbrauch, sofort einsatzbereit |
| TTS v2 | XTTS v2 (3090 oder 3080) | Voice-Cloning, natuerlichere Stimme. 4 GB VRAM, passt auf 3080. |
| Avatar | Nicht in v1 | Nice-to-have, nicht Kernprodukt |
| Job-Queue | SQLite | Ein User, kein Redis/RabbitMQ noetig |
| Netzwerk | Tailscale | Verbindet ki-tower + gpu-worker, fertig |
Risiken
| # | Risiko | Wahrscheinlichkeit | Impact | Mitigation |
|---|---|---|---|---|
| 1 | ROCm auf RX 6600 XT instabil | Hoch | Niedrig | Betrifft nur Reserve-Rig. 3080-Worker ist CUDA-nativ. |
| 2 | Piper TTS deutsch zu robotisch | Mittel | Hoch | Testen. Wenn zu schlecht: OpenAI TTS als Bruecke (~0.50 EUR/Video). XTTS in v2. |
| 3 | VRAM-Tetris auf 3090 | Mittel | Mittel | 14B statt 32B. Sequentiell. vLLM Model-Unloading. |
| 4 | Pipeline wird zu komplex vor v1 | Hoch | Hoch | v1 brutal einfach. Bash-Scripts, keine Frameworks. |
| 5 | Stromkosten Rig vs. Nutzen | Mittel | Niedrig | 3080-Rig nur bei Batch-Jobs einschalten. AMD-Rig im Zweifel verkaufen. |
Kosten-Schaetzung
| Posten | Einmalig | Monatlich |
|---|---|---|
| ki-tower Hardware | vorhanden | — |
| gpu-worker Hardware | vorhanden | — |
| Strom ki-tower (24/7) | — | ~30-40 EUR |
| Strom gpu-worker (bei Bedarf) | — | ~10-30 EUR (nicht 24/7) |
| Cloud-APIs (Fallback TTS) | — | ~5-10 EUR |
| Gesamt | 0 EUR | ~45-80 EUR |
Zum Vergleich: Vollstaendig cloud-basierte Videoproduktion (Runway, ElevenLabs, GPT-4) = 100-300 EUR/Monat.