KI-Avatar-Videos im Batch aus einem Foto mit MiniMax H3 in ComfyUI

Ein Porträt und ein Ordner mit Voiceovers hinein, für jede Datei ein fertiges Talking-Head-Video heraus. Wie der MiniMax-H3-Batch-Workflow funktioniert, welche GPU du nutzen solltest und was er pro fertiger Minute kostet.

Anton Tenitsky13. Oktober 202610 Min. LesezeitVideoversion untenCode auf GitHub

Diese Anleitung wurde mit KI aus dem Englischen übersetzt und kann Fehler enthalten. Zum Original.

Zwei fertige Talking-Avatar-Videos, aus zwei Porträts gerendert und nach ihren Voiceover-Dateien benannt

Status: Auf RunPod getestet. Ich habe mit diesem Template auf RunPod Batches auf einer RTX A5000, einer RTX 5090 und einer B200 gerendert. Die Zahlen in diesem Leitfaden stammen aus diesen Läufen.

Gib diesem Workflow ein Porträt und einen Ordner mit Voiceovers (20, 50 oder 2.000), und er rendert für jede Datei ein Talking-Head-Video, eines nach dem anderen, ohne dass du etwas anfassen musst. Er kann tagelang laufen.

Er basiert auf MiniMax H3, einem Videomodell mit offenen Gewichten, das ComfyUI nativ unterstützt. Im Vergleich zu meinem früheren LTX-2.5-Avatar-Setup war er etwa 30 % schneller, etwa 30 % günstiger und lieferte sauberere Übergänge zwischen den Abschnitten.

Kurz gefasst

  • Kosten: etwa 20 Minuten fertiges 768 × 768-Video für 2–3 $ GPU-Zeit, grob 0,13 $ pro fertiger Minute auf einer RTX 5090.
  • GPU: 32 GB VRAM sind die sichere Wahl. 24 GB funktionieren, können aber nach Stunden im Auftrag stocken.
  • Lizenz: nicht lizenziert in den USA, der EU, dem Vereinigten Königreich und Südkorea, auch dort, wo dein Pod läuft.
  • So funktioniert es: Das Voiceover wird an den Pausen in Abschnitte von bis zu 10 Sekunden geschnitten, jeder Abschnitt beginnt und endet auf deinem Porträt, und die Abschnitte werden mit deinem Original-Audio wieder zusammengefügt.
  • Kostenloses Template auf GitHub oder mit einem Klick auf RunPod.

Prüfe zuerst die Lizenz

Die MiniMax-H3-Community-Lizenz schließt die Vereinigten Staaten, die Europäische Union, das Vereinigte Königreich und Südkorea aus. Sie gilt dort, wo das Modell läuft, ebenso wie dort, wo du bist, wähle also ein RunPod-Rechenzentrum außerhalb dieser Regionen. Wenn du eine davon brauchst, erteilt MiniMax Lizenzen auf Antrag.

Folie, die die von der MiniMax-H3-Community-Lizenz ausgeschlossenen Regionen auflistet: Vereinigte Staaten, Europäische Union, Vereinigtes Königreich und Südkorea
Die vier ausgeschlossenen Regionen. Auch der Ort, an dem der Pod läuft, zählt.

Die Lizenz enthält außerdem eine Richtlinie zur zulässigen Nutzung. Unter anderem verbietet sie, ohne Einwilligung reale Personen zu imitieren, und jedes kommerzielle Produkt, das darauf aufbaut, muss „MiniMax H3“ anzeigen. Lies sie, bevor du dies für Kundenarbeit nutzt.

Was du brauchst

  • Ein Porträt, idealerweise vor einem schlichten, gleichmäßig ausgeleuchteten Hintergrund. Schilder, Bildschirme und Text im Bild neigen dazu, sich zu bewegen.
  • Voiceovers als .wav, .mp3, .flac, .m4a, .aac, .ogg oder .opus. Jede Datei wird zu einem Video, benannt nach der Datei. Wenn du Voiceovers brauchst, erstellt mein Qwen3-TTS-Template sie mit offenen Modellen.
  • Eine GPU mit 32 GB VRAM, etwa eine RTX 5090. Du kannst es lokal ausführen, wenn du eine hast; das Setup-Skript listet jedes Modell und jeden Node auf.
  • Etwa 100 GB Speicher. Allein die Modelle belegen etwa 46 GB.
Balkendiagramm der MiniMax-H3-Downloads: H3-Modell 21 GB, Qwen3-VL-Text-Encoder 15,7 GB, drei Turbo-LoRAs 6 GB, Video-VAE 2,8 GB, Audio-VAE 0,6 GB
Was der erste Start herunterlädt: etwa 46 GB, einmalig. Danach bleibt es auf dem Volume.

Welche GPU

Ich habe das auf drei GPUs ausgeführt. Das sind die Zeiten für den Fast-Workflow:

GPU VRAM Preis (Okt. 2026) GPU-Zeit pro Abschnitt 20-Minuten-Video
RTX A5000 24 GB 0,27 $/Std. ~118 s für einen 7-s-Abschnitt ~5,4 Std., ~1,50 $
RTX 5090 32 GB 1,19 $/Std. 60–70 s pro 10-s-Abschnitt ~2,2 Std., ~2,60 $
B200 180 GB 7,99 $/Std. ~33 s pro 10-s-Abschnitt ~1,1 Std., ~8,70 $

Die RTX 5090 ist meine Wahl: das beste Verhältnis von Geschwindigkeit und Kosten. Die B200 war etwa doppelt so schnell, kostet aber pro Stunde etwa das Sechsfache, lohnt sich also nur, wenn eine Deadline wichtiger ist als die Rechnung. Die A5000 ist pro Videominute am günstigsten, wenn du warten kannst.

Diagramm, das 24 GB VRAM, die mit einigen Aussetzern liefen, mit 32 GB vergleicht, die tagelang ohne Stocken liefen
Das H3-Modell allein belegt geladen etwa 20 GB. Auf 24 GB lief es mit einigen Aussetzern, wenn der Speicher knapp wurde; auf 32 GB stockte es nie.

Der VRAM ist die eigentliche Einschränkung. Mit 24 GB läuft der Auftrag, aber lange Batches können nach ein paar Stunden stocken. Mit 32 GB habe ich einzelne Aufträge tagelang laufen lassen.

Diese Preise sind die Listenpreise von RunPod im Oktober 2026. RunPod hat die Preise zuletzt erhöht; mein „2–3 $ pro 20 Minuten“ wurde zu den älteren Preisen gemessen (die B200 kostete damals etwa 6,50 $/Std.).

Den Pod einrichten

Wenn du RunPod noch nicht genutzt hast, behandelt meine Einführung in RunPod Konten, Network Volumes und Pods im Detail. Die Kurzfassung für dieses Template:

  1. Lege ein Network Volume an, in einem Rechenzentrum außerhalb der ausgeschlossenen Regionen. Die README des Templates empfiehlt 100 GB; ich habe 80 GB genutzt, was für die Standardmodelle mit Platz für Renders reicht. Speicher kostet 0,07 $/GB im Monat bei Standardspeicher und 0,14 $ bei Hochleistungsspeicher, also sind 80 GB 5,60 $ oder 11,20 $ im Monat. Es wird so lange berechnet, wie das Volume existiert, nicht im Voraus.
  2. Stelle das Template bereit, mit angehängtem Volume. Wähle unter Additional filters → CUDA Versions die 13.0: Das Template läuft auf dem CUDA-13-Image und braucht einen Host mit aktuellem Treiber.
  3. Warte auf den ersten Start. Er lädt etwa 46 GB herunter, was 10–15 Minuten dauert. Verfolge es in den Logs. ComfyUI meldet manchmal „ready“, bevor es so weit ist, und JupyterLab kann „initializing“ anzeigen, obwohl es schon bereit ist, also versuche, es zu öffnen.
Folie, die die RTX A5000 mit 24 GB für 0,27 $ pro Stunde mit der RTX 5090 mit 32 GB für 1,19 $ pro Stunde vergleicht
Die A5000 ist pro Minute am günstigsten, aber beim Speicher knapp. Die 5090 ist mein Favorit.

Porträts und Voiceovers hochladen

Öffne JupyterLab (Port 8888) über das Connect-Menü des Pods. Es ist dein Dateibrowser.

  • Lege Porträts in ComfyUI/input/ ab.
  • Lege die Voiceovers für einen Batch in ComfyUI/input/batch_audio/ ab. Das Template legt diesen Ordner beim ersten Start an.

Betreibst du mehrere Pods gleichzeitig? Lege pro Batch einen Ordner an (batch_audio_1, batch_audio_2 und so weiter) und lass den Workflow jedes Pods auf seinen eigenen Ordner zeigen.

Lade nach dem Hochladen ComfyUI in deinem Browser neu. Die Datei-Dropdowns aktualisieren sich nur nach einem Neuladen.

Einen Workflow wählen

Öffne ComfyUI (Port 8188) und dann die Workflows-Seitenleiste. Es gibt drei Qualitätsstufen, jeweils als Einzeldatei-Workflow und als _batch-Version, die einen ganzen Ordner rendert:

Workflow Auflösung Schritte Renderzeit Wann nutzen
Fast 768 × 768 4 1× Gute Qualität; meine Wahl
Standard 768 × 768 8 ~2× Die beste Qualität, aber für die meisten Aufträge übertrieben
Draft 544 × 544 4 ~0,5× Nur zum Testen von Timing und Bildausschnitt
Diagramm der relativen Renderzeit pro Abschnitt: Fast 1x, Standard etwa 2x, Draft etwa 0,5x
Relative Renderzeit pro Abschnitt für die drei Workflows.

Die Workflows sind für lange Aufträge gedacht: Dort spart das Mieten einer GPU Geld. Für einen einzelnen Testclip lohnt sich der Aufwand nicht.

Wie es funktioniert

Drei Ideen zu verstehen, macht die Einstellungen verständlich.

Jeder Abschnitt beginnt und endet auf deinem Porträt. H3 verankert das erste und das letzte Frame jeder Generierung an dem Bild, das du ihm gibst, sodass das Gesicht über ein langes Video nicht wegdriften kann. Die Person kehrt an jedem Übergang zum selben neutralen Ausdruck zurück, was für einen Talking Head natürlich wirkt.

Das Voiceover wird an den Pausen geschnitten. Eine H3-Generierung endet bei etwa 15 Sekunden (362 Frames bei 24 fps), und je weiter ein Abschnitt von seinen Ankerframes entfernt ist, desto mehr driften Hintergrund und Bildausschnitt. Deshalb schneidet das Template dein Audio in Abschnitte von bis zu 10 Sekunden, immer in einer Pause. Ein Voiceover von 57,5 Sekunden wurde zu 7 Abschnitten, keiner länger als 10 Sekunden.

Audio-Wellenform eines 57,5 Sekunden langen Voiceovers, an den Pausen in 7 Abschnitte von unter 10 Sekunden geschnitten
Das Voiceover wird an natürlichen Pausen geteilt, sodass kein Wort halbiert wird.

Das Bild folgt deinem Audio. Der Ausschnitt des Voiceovers jedes Abschnitts wird H3 als Vorgabe gegeben, sodass das Modell den Mund zu deinem Ton animiert, statt Sprache zu erfinden. Das fertige Video verwendet deine Original-Tonspur, nicht die Rekonstruktion des Modells.

Diagramm: sieben Abschnittsdateien werden von einem mitgelieferten Node nach dem letzten Abschnitt zu output/avatar-female-2_fast.mp4 zusammengefügt
Nach dem letzten Abschnitt fügt ein mitgelieferter Node alles zu einem Video zusammen, benannt nach dem Voiceover.

Die Übergänge sind fast nahtlos, sauberer als bei LTX-2.5, wo sich das Rauschmuster an jedem Übergang sichtbar verschiebt. H3 hat eine eigene Eigenart: Gelegentlich zoomt es ohne Grund auf das Gesicht, auch wenn der Prompt es nicht verlangt. Prüfe den ersten Abschnitt darauf, bevor du dich auf Stunden des Renderns festlegst.

Beschreibe den Look, sonst ändert er sich

Das ist die Einstellung, die am meisten zählt. Der Node Talking-Head Prompt hat zwei Felder: das Motiv und den Hintergrund, beide beschreiben, was bereits in deinem Porträt zu sehen ist.

Der Talking-Head-Prompt-Node in ComfyUI mit einer Motivbeschreibung und einer Hintergrundbeschreibung
Der Talking-Head-Prompt-Node: ein Feld für das Motiv, eines für den Hintergrund.

Nur das erste und das letzte Frame sind verankert; alles dazwischen wird generiert, und das Modell füllt alles, was der Prompt offen lässt. Wenn du die Kleidung nicht beschreibst, kann sie sich mitten in einem Abschnitt ändern.

Nebeneinander: Ohne Kleidung im Prompt wechselte das rote Oberteil des Avatars zu einem blauen; mit beschriebener Kleidung blieb es rot
Links: Kleidung nicht im Prompt, und das Outfit änderte sich. Rechts: Kleidung beschrieben, und es hielt.

Einige Regeln, die bei mir funktioniert haben:

  • Beschreibe Haare und Kleidung in einfachen Worten: zum Beispiel „a woman with long, light, wavy hair falling past her shoulders, wearing a white toga“.
  • Halte den Hintergrund einfach und sage das: ein schlichter Hintergrund, weiches, gleichmäßiges Licht.
  • Schreibe nicht zu viel. Zu viel Beschreibung kann das Ergebnis steif oder verbrannt machen. Ziele auf ein paar konkrete Wörter pro Feld. Ein Chatbot kann deine Formulierung straffen, wenn du nicht weiterkommst.

Der Prompt des Templates schließt bereits Text, Untertitel und Logos aus und vermeidet Wörter wie „presenter“, die das Modell in Richtung TV-Grafik ziehen.

Den Batch ausführen

Stelle die Auflösung ein, wenn du etwas anderes als quadratisch brauchst, und reihe dann mit Run (Instant) ein. Jeder Durchlauf rendert den nächsten unfertigen Abschnitt, sodass es weitergeht, bis jede Datei im Ordner fertig ist, und dann von selbst stoppt.

Teste zuerst einen Abschnitt. Der erste Abschnitt umfasst das Laden der Modelle und ist daher langsamer (212 Sekunden in meinem Lauf, gegenüber 118 für den zweiten auf der A5000). Öffne ihn in JupyterLab unter output/h3_longform/<Voiceover-Name>/chunk_0000.mp4 und prüfe drei Dinge: Lippensynchronität, das Gesicht und den Hintergrund. Kein Zoom, kein Outfitwechsel: gut zum Loslegen.

JupyterLab spielt chunk_0000.mp4 aus dem Ausgabeordner ab und zeigt den Avatar mit Engelsflügeln und Heiligenschein
Prüfe Abschnitt 1 auf Lippensynchronität, Identität und Hintergrund, bevor du den Batch laufen lässt.
Diagramm der GPU-Sekunden pro 10-Sekunden-Abschnitt: B200 etwa 33 Sekunden, RTX 5090 60 bis 70 Sekunden
GPU-Zeit pro 10-Sekunden-Abschnitt mit dem Fast-Workflow.

Das Fortsetzen geschieht automatisch. Wenn der Pod bei Abschnitt 150 von 300 stoppt, reihe erneut ein, und es macht bei 151 weiter, auf demselben Pod oder einem neuen, der am selben Volume hängt. Auch ein fertiges Video wird übersprungen. Um eines erneut zu rendern, ändere name_suffix am Output-Name-Node oder lösche seinen Ordner unter output/h3_longform/. Beim Testen musste ich auf diese Weise alte Abschnitte löschen, als ich einen Dateinamen wiederverwendet hatte.

Wenn ein Video fertig ist, wird es als output/<Voiceover-Name>_fast.mp4 gespeichert (das Suffix entspricht dem Workflow). Rechtsklick in JupyterLab zum Herunterladen.

Optional: Motion Carry

Das Template hat am Node Split Audio Chunk eine experimentelle Einstellung, motion_carry, die jeden Abschnitt mit den letzten paar Frames des vorherigen statt mit dem Porträt beginnt. Sie kann die Übergänge weiter glätten, ist aber standardmäßig aus, und die README vermerkt, dass sie noch nicht auf einer GPU getestet wurde. Wenn du sie ausprobierst, reihe die Abschnitte der Reihe nach ein und nutze einen neuen Sitzungsnamen.

Wenn du fertig bist

Stoppe den Pod: Deine Dateien bleiben auf dem Volume, und du kannst später auf jeder GPU im selben Rechenzentrum neu starten. Wenn das Projekt abgeschlossen ist, lösche auch das Volume, sonst wird es weiter berechnet. RunPod löscht kein Volume, solange noch ein Pod angehängt ist, beende diese Pods also zuerst.

Fehler, die du vermeiden solltest

  • In einer ausgeschlossenen Region ausführen. Prüfe das Rechenzentrum, nicht nur deinen eigenen Standort.
  • Die Kleidungsbeschreibung auslassen. Das Outfit kann sich mitten im Abschnitt ändern.
  • Ein überladener Prompt. Ein paar konkrete Wörter schlagen einen Absatz.
  • Direkt einen 10-Stunden-Batch starten. Prüfe den ersten Abschnitt.
  • Falsche CUDA-Version. Filtere beim Bereitstellen nach CUDA 13.0.
  • Das Volume vergessen. Gestoppte Pods kosten wenig; ein vergessenes Volume wird jeden Monat berechnet.

Der RunPod-Link des Templates und mein RunPod-Empfehlungslink geben neuen Konten, die sich mit Google anmelden, nach ihren ersten 10 $ ein Guthaben von 5–500 $, und ich bekomme eine kleine Provision.

Die Videoversion ansehen (14:43)

Alles oben steht auch im Video, falls du lieber am Bildschirm mitmachst. Das Video ist auf Englisch.

Häufige Fragen

Wie viel kostet das Rendern eines MiniMax-H3-Talking-Avatar-Videos?

In meinen Läufen kosteten etwa 20 Minuten fertiges 768 × 768-Video 2–3 $ GPU-Zeit, grob 0,10–0,15 $ pro fertiger Minute auf einer RTX 5090. Das waren die älteren, günstigeren Preise von RunPod; prüfe die aktuellen Preise vor einem großen Auftrag.

Wie viel VRAM braucht MiniMax H3?

32 GB sind die sichere Wahl. 24 GB funktionieren, aber lange Aufträge können nach Stunden stocken, wenn der Speicher ausgeht. Auf einer RTX 5090 mit 32 GB lief es tagelang ohne Stocken.

Kann ich MiniMax H3 in den USA oder der EU nutzen?

Nicht unter der Community-Lizenz, die die USA, die Europäische Union, das Vereinigte Königreich und Südkorea ausschließt, auch dort, wo der Pod läuft. MiniMax erteilt für diese Regionen auf Antrag Lizenzen.

Wie lang kann eine MiniMax-H3-Generierung sein?

Etwa 15 Sekunden (362 Frames bei 24 fps). Das Template rendert 10-Sekunden-Abschnitte, die an Pausen geschnitten und zusammengefügt werden, sodass das Voiceover selbst beliebig lang sein kann.

Was passiert, wenn der Pod mitten in einem Batch stoppt?

Reihe ihn erneut ein. Fertige Abschnitte und fertige Videos werden übersprungen, und der Auftrag macht beim nächsten unfertigen Abschnitt weiter, auf demselben Pod oder einem neuen, der an dasselbe Network Volume angehängt ist.

Anton Tenitsky ist 3D-Artist mit mehr als 15 Jahren Erfahrung in der Computergrafik, tätig für Nickelodeon, Gameloft, Marvel Rivals und viele weitere Kunden. Mehr über mich

Ähnliche Anleitungen