2 Punkte von GN⁺ 2025-04-21 | 1 Kommentare | Auf WhatsApp teilen
  • FramePack ist ein auf Next-Frame Prediction basierender Ansatz, um ein 13B-Video-Diffusionsmodell selbst mit 6 GB GPU-Speicher eines Notebook-GPUs für die Generierung langer Videos zu nutzen
  • Eingabeframes werden nicht mit gleicher Länge behandelt; stattdessen werden pro Frame unterschiedliche Patchifying-Kernels verwendet, um wichtigen Frames nahe am Vorhersageziel mehr GPU-Ressourcen zuzuweisen
  • Bei HunyuanVideo kann ein 480p-Frame von etwa 1536 Tokens bei (1, 2, 2) auf bis zu 192 Tokens bei (2, 4, 4) reduziert werden, während die Streaming-Rechenkomplexität O(1) beträgt
  • FramePack Scheduling steuert Frame-Wichtigkeit und Kompressionsrate; bei Image-to-Video ist auch ein Scheduling möglich, das die Startframes als gleich wichtig behandelt
  • Um Drifting durch kumulative Fehler bei der Generierung langer Videos zu reduzieren, wird bidirektionales Sampling verwendet, das die Causality aufbricht; Inverted Anti-Drifting Sampling eignet sich für Image-to-Video

Input-Frame-Context-Packing von FramePack

  • FramePack ist ein Verfahren, bei dem in Next-Frame- oder Next-Frame-Section-Prediction-Modellen mehrere Eingabeframes verwendet werden, um neue Frames per Diffusion zu erzeugen
  • Zielwerte und Einsatzbedingungen sind wie folgt
    • Mit einem 13B-Modell Tausende Frames bei 30 fps auf einer Notebook-GPU mit 6 GB Speicher erzeugen
    • Ein 13B-Videomodell auf einem einzelnen 8xA100/H100-Node mit Batch Size 64 feinabstimmen
    • Auf einer privaten RTX 4090 vor der Optimierung 2,5 Sekunden/Frame, mit teacache 1,5 Sekunden/Frame
    • Keine Timestep Distillation
  • Der Kernansatz besteht darin, Eingabeframe-Bilder nicht einfach aneinanderzuhängen, sondern in einem logischen GPU-Memory-Layout pro Frame unterschiedliche Kontextlängen anzuordnen
  • Die Kontextlänge pro Frame wird über unterschiedliche Patchifying-Kernels gesteuert
    • In HunyuanVideo hat ein 480p-Frame bei Verwendung des Patchifying-Kernels (1, 2, 2) etwa 1536 Tokens
    • Mit dem Patchifying-Kernel (2, 4, 4) sinkt das auf 192 Tokens pro Frame
  • Wichtigere Frames, etwa solche näher am Ziel der Next-Frame-Vorhersage, erhalten einen längeren Kontext
  • Die Streaming-Rechenkomplexität beträgt O(1), nicht O(nlogn) oder O(n)

Scheduling und Drift-Vermeidung

  • FramePack Scheduling unterstützt Fälle, in denen die Frame-Wichtigkeit keinem einfachen Muster folgt, die Kompressionsrate verändert werden soll oder vom Nutzer bestimmte Frames als wichtiger behandelt werden
  • Bei Image-to-Video ist der erste Frame wichtig, daher kann ein Scheduling verwendet werden, das die Anfangsframes als gleich wichtig behandelt
  • Alle Schedulings sind O(1), und die Auswertung mehrerer Schedulings ist im Paper enthalten
  • In Next-Frame-Prediction-Modellen ist Drifting, also Qualitätsverlust mit zunehmender Videolänge, ein häufiges Problem
    • Wenn der zuletzt generierte Frame wiederholt als Eingabe verwendet wird, um ein langes Video zu erzeugen, bricht die Qualität nach 5–6 Durchläufen schnell ein und kann nach etwa 10 Durchläufen stark degradieren
    • Dieses Problem wird auch als Error Accumulation oder Exposure Bias bezeichnet
  • Experimente zu bestehenden Methoden wie History Noise Augmentation, Special CFG Guidance und Rolling Diffusion Timesteps sind ebenfalls im Paper enthalten
  • Um Drifting grundlegend zu adressieren, muss die Causality aufgebrochen und das Sampling bidirektional gemacht werden
    • Nur Vanilla Sampling ist kausal
    • Anti-Drifting Sampling und Inverted Anti-Drifting Sampling sind bidirektionale Verfahren
    • Inverted Anti-Drifting Sampling behandelt in jeder Inferenz den ersten Frame als Approximationsziel und eignet sich für Image-to-Video

Demo-Bedingungen und Referenzmaterial

  • Die Demo-Ergebnisse wurden mit einem RTX 3060 Notebook mit 6 GB und der 13B-HY-Variante berechnet
    • image-to-5-seconds: 30fps, 150 Frames
    • image-to-60-seconds: 30fps, 1800 Frames
    • Um zur GitHub-Repository zu passen, wurden die Videos mit h264crf18 komprimiert
  • Als weiterführende Materialien werden Paper, Code und FramePack-P1 Preview bereitgestellt

1 Kommentare

 
GN⁺ 2025-04-21
Hacker-News-Kommentare
  • Dieser Mensch ist ein Genie. Manche wissen es vielleicht nicht, aber ControlNet stammt ebenfalls von ihm.
    Es ist von großer Bedeutung, weil es das erste brauchbare Videogenerierungsmodell ist, das auf Consumer-Hardware läuft, und ich erwarte, dass bald auch ControlNet-Posen unterstützt werden.

    • IC-Light hat er ebenfalls entwickelt. Ich frage mich, warum er immer noch zu Open Source beiträgt.
      Große Unternehmen dürften ihm enorme Angebote gemacht haben; er ist wirklich außergewöhnlich talentiert.
    • Für Videogenerierung bin ich zu ungeduldig und habe mich noch nicht richtig damit beschäftigt, aber ist Wan auf normaler Hardware nicht auch ziemlich gut?
  • Es ist lustig, dass das Modell die Leute unbedingt zum Tanzen bringen will. Sogar jemand, der für ein Interview dasitzt, fängt im Sitzen an zu tanzen.

    • Wahrscheinlich liegt es daran, dass im Prompt „Tanzen“ vorkommt. Wenn man den Prompt ändert, kann man es sicher auch andere Aktionen ausführen lassen, aber das wäre wohl weniger unterhaltsam.
    • Das scheint vom großen öffentlichen TikTok-Trainingsdatensatz beeinflusst zu sein, den viele Videoforscher verwenden.
    • Interessante Beobachtung.
      Bei statischen Bildern sucht man immer nach Augen, bei Videos immer nach Tanz.
  • Die Beispiele sind ziemlich beeindruckend, aber die dafür eingesetzten Ressourcen sind im Grunde kaum der Rede wert. Es sieht so aus, als könne die Inferenz sogar auf Consumer-Hardware der vorherigen Generation laufen.
    Irgendwann würde ich auch gern Zahlen zum Inferenzdurchsatz auf einer 5090 sehen.

  • Könnte man das auch in räumlicher Richtung machen? Zum Beispiel nicht ein Bild auf einmal erzeugen, sondern es von oben nach unten generieren?

  • Könnte man das statt für Extrapolation auch für Video-Interpolation nutzen?

    • Das im Paper erwähnte „inverted anti-drifting“ ist im Grunde eher ein Ansatz, bei dem man zuerst weit extrapoliert und dann rückwärts interpoliert.
  • Erstaunlich. Könnte es schneller werden, wenn mehr Ressourcen wie RAM zur Verfügung stehen? Ich frage mich auch, ob man auf H100 oder H200 noch mehr Geschwindigkeit herausholen kann.

  • Es wirkt so, als sei Tanzen praktisch die einzige mögliche Aktion.

    • Es gibt auch einige Bewegungen, die kein Tanz sind. Zwar gibt es nur ein oder zwei Beispiele, in denen die Fußbewegungen kein Tanz sind, aber es bewegen sich ja nicht nur die Füße.
    • Da es neben dem Bildeingang auch einen Text-Prompt annimmt, ist es gut möglich, dass in den Beispielen Tanzen vorgegeben wurde.