Für die Nerds · Hinter dem Deepfake

Harte Fakten.

Für die Nerds unter euch und alle, die es genau wissen wollen: welche Infrastruktur wir gebaut, welche Modelle wir genutzt und welche Werkzeuge wir geschrieben haben. Mit Status – auch für das, was nicht funktioniert hat.

00

In Zahlen

Tage Projektlaufzeit
19
Architekturentscheidungen (ADR)
48
Nachweise im Nachweisbuch
154
Python-Tests grün
534
eigene Skripte
100+
GPU-Läufe mit Abbau-Nachweis
≈ 20
OTC-Kosten von 50 € Deckel
≈ 13 €
harte Laufzeitgrenze je GPU-Lauf
≤ 3 h

Stand: November 2026. Zahlen aus Entscheidungs-, Nachweis- und Kostenbuch des Projekts.

01

Architektur

Die souveräne Umgebung: Jeder Lauf bekommt eigenes Netz, eigenen Speicher und eigene Rechte – und wird danach vollständig abgebaut.

Arbeitsrechner

Lifecycle-CLI (Node.js), Terraform, Admin-Zugang im Windows-Tresor (DPAPI)

plan → launch → teardown → verify-gone

↓ HTTPS · OTC-API (IAM)

Open Telekom Cloud · eu-de

Isolierte VPC je Lauf · kein NAT · keine öffentliche IP

GPU-Server

L4 · H100/A40 · IAM-Agency · TTL ≤ 3 h

⇄ VPC-Endpunkt

Objektspeicher

Bucket je Lauf · KMS-verschlüsselt

Lade-Server

Nur Hugging Face, Hash-Prüfung, keine Personendaten, ≤ 3 h

Schlüssel & Rechte

KMS · IAM · verschlüsselter Blockspeicher

Die Bühnenfassung entstand zusätzlich über kommerzielle Plattformen außerhalb dieser Umgebung – mit gesonderter Einwilligung und dienstlicher Datenschutz-Freigabe.

02

Infrastruktur

Cloud

Open Telekom Cloud, Region eu-de

Rechenzentren in Deutschland. Ein eigener, isolierter Projektbereich, getrennt von allen anderen Systemen.

GPU Rendern/Training

ECS pi5e.2xlarge.4 · NVIDIA L4, 24 GB

Standardprofil für Lippensync, Training und Bühnenclips. Systemplatte 60 GB, verschlüsselt.

GPU groß

ECS p5s.5xlarge.12 · NVIDIA H100, 80 GB

Profil für das 14-Mrd.-Parameter-Modell, Rückfall auf g7.12xlarge.8 (NVIDIA A40). Freigegeben, vorbereitet, nicht gelaufen.

Lade-Server

ECS s3.large.2 · CPU, öffentliche IP

Einziger Server mit Internet: holt öffentliche Modellgewichte von Hugging Face, prüft SHA-256, schreibt in den Speicher. Keine personenbezogenen Daten, ≤ 3 h.

Netz

Isolierte VPC je Lauf · kein NAT · keine öffentliche IP

Der GPU-Server erreicht nur den Objektspeicher – über einen privaten VPC-Endpunkt, nicht über das Internet.

Speicher

OBS-Bucket je Lauf · serverseitig verschlüsselt (KMS)

Eigener Bucket pro Lauf, Schlüssel aus dem Key Management Service. Blockspeicher (EVS) ebenfalls verschlüsselt.

Identität

IAM-Agency am Server · keine Schlüssel auf der Maschine

Der Server bekommt kurzlebige Rechte über eine Agency – eng auf den eigenen Bucket geschnitten. Admin-Zugang lokal im Windows-Tresor (DPAPI).

Steuerung

Eigene Lifecycle-CLI (Node.js) gegen die OTC-API

plan · baseline · network · launch · status · teardown · verify-gone. Jeder Schreibzugriff mit Absicht und Antwort protokolliert. Gelöscht wird nur, was im eigenen Zustand verzeichnet ist.

IaC

Terraform ≥ 1.6 · Provider opentelekomcloud 1.37.3

Module für Stage-0, Speicher-Canary, GPU-Sandbox und Laufzeitbegrenzung. Version festgeschrieben.

Laufzeitgrenze

Cloud-seitige TTL + zweiter Zeitschalter auf dem Server

Fällt die Steuerung aus, fährt der Server nach spätestens 200 Minuten selbst herunter. Danach Abbau und Prüfschritt verify-gone.

03

Modelle & Dienste

Was wir eingesetzt, getestet, verworfen oder nur vorbereitet haben. Ungetestetes bleibt bei uns ungetestet.

eingesetztgetestetverworfenvorbereitet

LatentSync 1.6

getestet

Lippensync auf eigener GPU

Rund 20 Läufe auf der L4. Gesicht überzeugend, Mund nicht bühnenreif.

Lizenz: Code Apache-2.0 · Gewichte OpenRAIL++

LatentSync, nachtrainiert

verworfen

Personenspezifisches Fine-Tuning

Checkpoint 1.000 gegen Basis gemessen: weicher, Sync schlechter. Basis bleibt.

Lizenz: wie oben

EchoMimicV3-Flash

getestet

Ganzgesichts-Animation aus Audio

Läuft auf der L4, erster echter Ganzgesichts-Clip.

Lizenz: Apache-2.0

InfiniteTalk 14B + Wan2.1 + wav2vec2

vorbereitet

Großes Video-Modell für H100

93 GB Gewichte, Manifest festgeschrieben. Kit gebaut und lokal getestet, nie auf GPU gelaufen.

Lizenz: Apache-2.0 / MIT

Chatterbox Multilingual (V3)

getestet

Lokale KI-Stimme

Deutsche Takes lokal erzeugt, Ähnlichkeit gemessen. Für die Bühne: kommerzielle Stimme.

Lizenz: MIT

MediaPipe FaceMesh

eingesetzt

Messung der Lippengeometrie

Landmarken Bild für Bild, Vergleich mit echten Aufnahmen. Fand die Ursache für den „unruhigen Mund“.

Lizenz: Apache-2.0

Kommerzielle Avatar-Plattform

eingesetzt

Foto-Avatar und Digital Twin

Bühnenfassung. Foto-Avatar aus einem Standbild; Twin nur mit Einwilligungsvideo der Person.

Lizenz: kommerziell

Kommerzielle Stimm-Plattform

eingesetzt

Stimmklon aus ≈ 90 s Probe

Bühnenfassung. Mehrere Takes je Satz, Auswahl per Hörbogen.

Lizenz: kommerziell

04

Pipeline der Bühnenfassung

Vom freigegebenen Satz bis zum fertigen Anruf – jeder Schritt ein eigenes, getestetes Werkzeug.

  1. 1

    Sätze

    sentences_v5.json

    Freigegebener Wortlaut und getrennte Sprechfassung mit gesetzten Pausen.

  2. 2

    Stimme

    Stimm-Client · cio_listen_sheet.py

    Takes erzeugen, messen (Wortlaut, Tonhöhe, Melodie, Tempo), Auswahl im Hörbogen.

  3. 3

    Tonspur

    cio_tile_audio.py

    Alle Sätze einer Person mit Pausen zu einer Spur – ein Render statt vieler.

  4. 4

    Avatar

    Avatar-API-Client

    Render über die API, Status-Abfrage, Download, Eintrag ins Kostenbuch.

  5. 5

    Resync

    cio_resync.py

    Rückschnitt je Satz, Lippen und Ton auf den Frame genau ausgerichtet.

  6. 6

    Hintergrund

    cio_chroma_bg.py

    Eigener Keyer: Person freistellen, ohne Saum auf den Anruf-Hintergrund.

  7. 7

    Verwandlung

    cio_morph.py

    4-Sekunden-Morph von einer Person zur anderen, optional mit Ton.

  8. 8

    Anruf

    cio_call_compose.py

    Komposition der Anruf-Oberfläche mit FFmpeg, Ein-/Ausblenden, Anrufton.

  9. 9

    Abschluss

    cio_stage_finish.py

    Lautheit, Limiter, sichtbare KI-Kennzeichnung – ohne Kennzeichnung kein Export.

05

Stack & Arbeitsweise

Sprachen

  • Python 3.10 / 3.11 / 3.12
  • Node.js (ESM)
  • PowerShell
  • Bash
  • TypeScript (diese Seite)

Bild & Ton

  • PyTorch
  • OpenCV
  • NumPy
  • MediaPipe
  • FFmpeg
  • Pillow

Cloud & IaC

  • OTC REST-API (ECS, EVS, VPC, OBS, KMS, IAM)
  • Terraform
  • VPC-Endpunkt
  • Windows DPAPI

Qualität

  • pytest (534 Tests)
  • Node-Tests für die Cloud-Steuerung
  • SHA-256-Manifeste
  • Nachweis- & Kostenbuch

Arbeitsweise

  • 48 ADRs
  • Gates G3/G4/G9
  • Evidence-first: ungetestet bleibt NOT_TESTED
  • KI-Agenten unter festen Regeln

06

Gates & Sicherungen

Die Regeln stehen nicht nur auf Papier. Sie sind im Code verankert – und haben mindestens einmal einen Lauf gestoppt.

G3 · Einwilligung

Schriftliche Freigabe-Akte je Person mit Ablaufdatum 25.11.2026. Der GPU-Server liest ihn vor dem ersten Bild – abgelaufen heißt: kein Render.

G4 · Löschbarkeit

Ein Lauf startet nur, wenn sein vollständiger Abbau vorher nachgewiesen werden kann.

G9 · Cloud-Rechte

Rechte für Server und Speicher erst mit synthetischen Daten bewiesen, dann für echtes Material freigegeben.

Lieferkette

Gewichte nur aus festgeschriebenem Manifest, Hash-Prüfung vor dem Laden, Offline-Modus der Bibliotheken erzwungen.

Kennzeichnung

Export verlangt eine Kennzeichnung. Ein Fehler, der sie überdeckte, wurde gefunden und durch einen Pflicht-Parameter beseitigt.

Kosten

50 € Deckel für die eigene Cloud. Jeder Lauf mit Servertyp, Dauer und Betrag im Kostenbuch.

07

Kosten

Open Telekom Cloud

≈ 13 €

Rund 20 L4-Läufe, Speicher, Netz. Deckel 50 €.

Avatar-Plattform

≈ 35 €

Foto-Avatare, zwei Twins, Renders aller Fassungen.

Stimm-Plattform

≈ 10 €

Zwei Sofortklone, einige tausend Zeichen je Fassung.

Gesamt

≈ 58 €

Für 19 Tage, rund 20 GPU-Läufe und fünf Drehbuchfassungen.

Alle Beträge gerundet in Euro.

Alles davon kann auch ein Angreifer. Nur die Regeln nicht.

← Zurück zur Geschichte