diff --git a/MASTER_INDEX.md b/MASTER_INDEX.md index cfe60b33..58f7ba85 100644 --- a/MASTER_INDEX.md +++ b/MASTER_INDEX.md @@ -15,6 +15,7 @@ | **Flugpreisscanner** | flugpreisscanner/STATE.md | FRA→PNH, Selenium, 3 Nodes | | **Infrastruktur** | infrastructure/STATE.md | Alle Server + Container | | **Homelab AI Bot** | — | Hausmeister Telegram Bot (CT 116) | +| **KI-Video Pipeline** | ki-video/PLAN.md | Lokale Videoproduktion: Qwen + FLUX + XTTS + SadTalker (ki-tower) | | **Webcam Kambodscha** | — | Dahua 4K → cam.arakavanews.com (CT 600 auf pve-ka-3) | | **YouTube Desktop PP** | — | Remote Desktop (xrdp) für YT-Uploads (pve-pp-1/pp-2) | diff --git a/homelab.conf b/homelab.conf index e182b1c0..25881a89 100644 --- a/homelab.conf +++ b/homelab.conf @@ -214,9 +214,14 @@ TUNNEL_601_MU3="rss-manager|:8080|standby" # --- KI-Tower (Muldenstein, geplant) --- # Logischer Name: ki-tower +# CPU: AMD Ryzen 7 7700 (8C/16T) +# RAM: 64 GB DDR5 # GPU: NVIDIA RTX 3090 (24 GB VRAM) -# Funktion: Haupt-KI-Server, schwere Inferenz, Vision, Video-KI -# OS: geplant Debian 12 oder Proxmox +# Storage: 1 TB NVMe +# Funktion: Haupt-KI-Server — Qwen 32B (Skripte), FLUX.1-dev (Bilder), +# XTTS v2 (TTS), SadTalker (Avatar), Video-Pipeline, schwere Inferenz +# OS: geplant Debian 12 + Docker + CUDA +# Projekt: ki-video/PLAN.md # Status: geplant # --- Mining-Rig / GPU-Worker-Pool (Muldenstein, geplant) --- diff --git a/ki-video/PLAN.md b/ki-video/PLAN.md new file mode 100644 index 00000000..7f775375 --- /dev/null +++ b/ki-video/PLAN.md @@ -0,0 +1,234 @@ +# KI-Video — Lokale Produktionspipeline +**Stand: 16.03.2026** + +## Ziel + +Lokale, weitgehend automatisierte Produktionsstrecke fuer YouTube-Videos im Commentary-/Erklaerstil. +Kein Spielzeug-Demo, sondern eine praktisch nutzbare Pipeline: Thema rein → fertiges Video raus. + +## Videoformat + +| Eigenschaft | Beschreibung | +|---|---| +| **Typ** | Commentary, Erklaervideos, Meinungs-/Analyseformate | +| **Stil** | Sprecherstimme + Bilder + leichte Bewegung + Einblendungen | +| **Optional** | Sprechender Avatar (SadTalker) | +| **Nicht** | Realfilm, Hollywood-VFX, aufwendige 3D-Animation | +| **Vorbild** | Kanaele mit klarer Erzaehlung, guter Struktur, visueller Unterstuetzung | + +## Pipeline-Schritte + +``` +1. Themenfindung / Recherche + │ +2. Skript-Erstellung (lokales LLM) + │ +3. Bildgenerierung (Szenen / Illustrationen) + │ +4. Sprachausgabe / Voiceover (TTS) + │ +5. Optional: Avatar / sprechendes Gesicht + │ +6. Zusammenschnitt + Ken-Burns + Compositing + │ +7. Export fuer YouTube +``` + +## Geplante Komponenten + +### Textgenerierung (Skripte) + +| Komponente | Modell | VRAM | Anmerkung | +|---|---|---|---| +| **Skript-LLM** | Qwen 2.5 32B (Q4_K_M) | ~20 GB | Passt auf RTX 3090 (24 GB), eng aber machbar | +| **Alternative** | Qwen 2.5 14B (Q5) | ~12 GB | Komfortabler, laesst Platz fuer andere Tasks | +| **Fallback** | Qwen 2.5 7B | ~6 GB | Fuer Entwuerfe/Vorarbeit, parallel moeglich | + +Realistisch: 32B fuer finale Skripte, 7B/14B fuer Brainstorming und Iteration. +32B belegt fast den gesamten VRAM — andere GPU-Tasks muessen warten. + +### Bildgenerierung + +| Komponente | Modell | VRAM | Anmerkung | +|---|---|---|---| +| **Bilder** | FLUX.1-dev | ~12 GB | Gute Qualitaet, laeuft auf RTX 3090 | +| **Alternative** | SDXL | ~7 GB | Weniger VRAM, mehr Flexibilitaet | +| **Upscaling** | Real-ESRGAN | ~2 GB | Nachschaerfung auf 4K | + +FLUX.1-dev liefert bessere Qualitaet als SDXL, braucht aber mehr VRAM. +Kann NICHT gleichzeitig mit Qwen 32B laufen — sequentiell. + +### Sprachausgabe (TTS) + +| Komponente | Modell | VRAM | Anmerkung | +|---|---|---|---| +| **TTS** | XTTS v2 (Coqui) | ~2-4 GB | Deutsche Stimme, Voice-Cloning moeglich | +| **Alternative** | Piper TTS | CPU-only | Schneller, weniger natuerlich | +| **Fallback** | OpenAI TTS API | — | Beste Qualitaet, kostet Geld | + +XTTS v2 ist der beste Kompromiss: lokal, deutsch, Stimme klonbar. +Kann auf GPU oder CPU laufen. Bei GPU: parallel zu leichteren Tasks moeglich. + +### Avatar (optional) + +| Komponente | Modell | VRAM | Anmerkung | +|---|---|---|---| +| **Talking Head** | SadTalker | ~4-6 GB | Foto + Audio → sprechendes Gesicht | +| **Alternative** | Wav2Lip | ~2 GB | Einfacher, weniger natuerlich | +| **Zukunft** | LivePortrait / EMO | variabel | Bessere Qualitaet, noch nicht stabil | + +SadTalker ist ausgereift und braucht wenig VRAM. +Input: 1 Foto + 1 Audiodatei → Video mit Lippensync. + +### Video-Compositing + +| Komponente | Tool | GPU? | Anmerkung | +|---|---|---|---| +| **Schnitt** | FFmpeg | Nein (CPU) | Ken-Burns, Ueberblendungen, Text-Overlays | +| **Sequenzierung** | Python + moviepy | Nein | Szenen zusammenfuegen | +| **Encoding** | FFmpeg + NVENC | Optional | GPU-beschleunigtes Encoding | +| **Untertitel** | Whisper + FFmpeg | ~1.5 GB | Automatische Untertitel | + +FFmpeg ist das Rueckgrat — robust, scriptbar, keine GPU noetig fuer die meisten Operationen. +NVENC (RTX 3090) fuer schnelles Encoding im letzten Schritt. + +## Hardware + +### Hauptmaschine: ki-tower (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 oder Proxmox (noch offen) | +| **Logischer Name** | ki-tower | + +### Unterstuetzung: gpu-worker (Mining-Rig, Muldenstein, geplant) + +| Eigenschaft | Wert | +|---|---| +| **GPUs** | Mehrere AMD RX 6600 XT (je 8 GB VRAM) | +| **Funktion** | Worker-Pool fuer leichtere Pipeline-Schritte | +| **Geeignet fuer** | Upscaling, TTS, Whisper, Batch-Bildgenerierung (SDXL) | +| **Nicht geeignet fuer** | Qwen 32B, FLUX.1-dev, SadTalker auf hoher Qualitaet | +| **ROCm** | Inoffiziell (gfx1032), 1-Karten-Test steht aus | + +### Arbeitsteilung + +``` +ki-tower (RTX 3090, 24 GB) gpu-worker (RX 6600 XT, je 8 GB) +├── Qwen 32B (Skripte) ├── SDXL Batch (Nebenbilder) +├── FLUX.1-dev (Hauptbilder) ├── Real-ESRGAN (Upscaling) +├── SadTalker (Avatar) ├── XTTS v2 / Piper (TTS) +├── FFmpeg + NVENC (Finaler Render) ├── Whisper (Untertitel) +└── Orchestrierung └── Vorverarbeitung +``` + +## VRAM-Budget pro Pipeline-Schritt (RTX 3090) + +Die Schritte laufen SEQUENTIELL, nicht parallel — nur eine schwere Aufgabe gleichzeitig: + +``` +Schritt 1: Skript → Qwen 32B → ~20 GB VRAM → entladen +Schritt 2: Bilder → FLUX.1-dev → ~12 GB VRAM → entladen +Schritt 3: TTS → XTTS v2 → ~4 GB VRAM → entladen +Schritt 4: Avatar → SadTalker → ~6 GB VRAM → entladen +Schritt 5: Compositing → FFmpeg (CPU) → 0 GB VRAM +Schritt 6: Encoding → NVENC → ~1 GB VRAM +``` + +Gesamtzeit pro Video (geschaetzt, 10 Min Video): +- Skript: 5-15 Min +- Bilder (20-30 Stueck): 20-40 Min +- TTS: 5-10 Min +- Avatar: 10-20 Min +- Compositing: 5-10 Min +- Encoding: 2-5 Min +- **Gesamt: ca. 1-2 Stunden pro 10-Min-Video** + +## Architektur + +``` +Orchestrator (Python) +├── /scripts/ → Skript-Generierung (Qwen via llama.cpp / vLLM) +├── /images/ → Bild-Generierung (ComfyUI / FLUX) +├── /audio/ → TTS (XTTS v2 Server) +├── /avatar/ → Talking Head (SadTalker) +├── /compose/ → Video-Assembly (FFmpeg + moviepy) +├── /export/ → Finaler Render + Upload-Vorbereitung +└── /projects/ → Pro Video ein Projektordner mit allen Assets +``` + +Jeder Schritt ist ein eigener Service/Container: +- Kann einzeln gestartet/gestoppt werden +- Belegt VRAM nur wenn aktiv +- Austauschbar (z.B. FLUX → SDXL, XTTS → Piper) + +## Nicht-Ziele + +- Kein Forschungsprojekt +- Keine Bastelwiese ohne Ergebnis +- Keine Dauerabhaengigkeit von Cloud-Abos +- Keine Architektur die nur auf dem Papier funktioniert +- Kein Hollywood-Kino + +## Stufenplan + +### Stufe 1 — Grundlagen (ki-tower aufbauen) +| Was | Status | +|---|---| +| ki-tower Hardware zusammenbauen | geplant | +| Debian 12 + NVIDIA-Treiber + CUDA + Docker | geplant | +| llama.cpp / vLLM mit Qwen 2.5 installieren | geplant | +| Erster Skript-Test: Thema → strukturiertes Skript | geplant | + +### Stufe 2 — Bilder + TTS +| Was | Status | +|---|---| +| ComfyUI + FLUX.1-dev installieren | geplant | +| XTTS v2 Server aufsetzen (Docker) | geplant | +| Test: Skript → passende Bilder + Voiceover | geplant | + +### Stufe 3 — Avatar + Compositing +| Was | Status | +|---|---| +| SadTalker installieren | geplant | +| FFmpeg-Pipeline: Bilder + Audio + Avatar → Video | geplant | +| Erster kompletter Durchlauf: Thema → fertiges Video | geplant | + +### Stufe 4 — Orchestrierung + Automatisierung +| Was | Status | +|---|---| +| Python-Orchestrator: alle Schritte verkettet | geplant | +| Projektordner-Struktur (Assets pro Video) | geplant | +| GPU-Worker-Integration (falls ROCm-Test erfolgreich) | geplant | + +### Stufe 5 — Produktion + Optimierung +| Was | Status | +|---|---| +| Regelmaessige Videoproduktion (1-2 pro Woche) | geplant | +| Prompt-Templates fuer verschiedene Videoformate | geplant | +| Qualitaetskontrolle + Feedback-Loop | geplant | +| Optional: Semi-automatischer YouTube-Upload | geplant | + +## Offene Entscheidungen + +| Frage | Optionen | Tendenz | +|---|---|---| +| OS fuer ki-tower | Debian 12 vs Proxmox | Debian (einfacher fuer GPU) | +| LLM-Server | llama.cpp vs vLLM vs Ollama | vLLM (schneller bei Batch) | +| Bild-UI | ComfyUI vs API-only | ComfyUI (flexibler, Workflows) | +| TTS Sprache | Deutsch-only vs Multi | Deutsch zuerst, Englisch spaeter | +| Avatar ja/nein | Immer vs nur bei manchen Videos | Optional pro Video | + +## Risiken + +| Risiko | Schwere | Mitigation | +|---|---|---| +| VRAM-Engpass bei 32B + Bildern | Mittel | Sequentiell arbeiten, 14B als Alternative | +| TTS-Qualitaet Deutsch | Mittel | XTTS v2 Voice-Cloning testen, Fallback OpenAI | +| Avatar wirkt unnatuerlich | Niedrig | Avatar nur optional, kann weggelassen werden | +| Pipeline zu komplex | Mittel | Stufe fuer Stufe, jeder Schritt einzeln testbar | +| GPU-Worker ROCm-Probleme | Mittel | 1-Karten-Test, Fallback: alles auf ki-tower |