Wie die Funscript-Generierung mit KI funktioniert

AutoScript Sync liest die Bewegung mit KI-Motion-Tracking aus einem Video, das komplett auf deinem PC läuft: Es tastet Bilder ab, misst die Bewegung per optischem Fluss, ergänzt optionale Pose- und Tiefenmodelle, verschmilzt diese Signale zu einer einzigen Positionskurve und setzt an jedem Richtungswechsel einen Skriptpunkt. Das Ergebnis ist eine Standard-.funscript, gespeichert neben dem Video. Die Anpassung an ein bestimmtes Gerät geschieht später, nur an der Kopie, die an dieses Gerät gesendet wird.

Am 21. September 2026 mit dem Code der App abgeglichen. Beschreibt die veröffentlichte App, 2.121.1, sofern eine Zeile nichts anderes sagt.

Die Pipeline, von der Videodatei bis zum Gerät

AutoScript Sync analysis pipeline Decode, sample every Nth frame at 320 pixels, find the moving region, measure it with DIS optical flow plus optional pose and depth and background motion-vector and audio passes, fuse in a Kalman smoother, label 2-second motion-type windows, place points at reversals, save the funscript, then fit a copy to the device. Decode the video (hardware decoding first, software fallback) Sample every 4th / 3rd / 2nd frame (Fast / Balanced / High), shrink to 320 px Find the moving region (motion heatmap, or the box you draw) DIS optical flow YOLOv8-pose MiDaS depth Motion vectors Fuse into one position trace (Kalman/RTS smoother) Label 2-second windows by motion type Points at direction changes → .funscript saved beside the video Fit a copy to the connected device (speed, spacing, point density) always on optional optional + audio envelope, background passes
Die gespeicherte Datei endet beim letzten durchgezogenen Pfeil. Der gestrichelte Schritt gilt nur für die Kopie, die die App an ein Gerät sendet; die Datei auf der Festplatte wird nie an ein einzelnes Gerät angepasst.

Jede Stufe in einem Absatz

Dekodierung und Abtastung

Das Video wird über das FFmpeg-Backend von OpenCV dekodiert. Die App fordert zuerst Hardware-Dekodierung an und weicht auf Software-Dekodierung aus, wenn Codec, Build oder Treiber das nicht können. Ein Worker-Thread dekodiert vorab in einen Puffer von bis zu 64 Bildern, sodass Dekodierung und KI-Inferenz sich überlappen, statt sich abzuwechseln.

Die Einstellung Accuracy legt fest, wie viele Bilder analysiert werden: Fast nimmt jedes 4. Bild, Balanced (der Standard) jedes 3. und High jedes 2. Bei 30-fps-Video sind das 7,5, 10 oder 15 Abtastungen pro Sekunde; bei 60-fps-Video verdoppeln sich die Raten. Jedes abgetastete Bild wird vor jeder Analyse auf 320 px Breite verkleinert, unabhängig von der Quellauflösung. VR-Material wird zuerst in eine normale perspektivische Ansicht eines Auges entzerrt.

Den bewegten Bereich finden

Sofern du nicht selbst mit Set Motion Region… oder Live Track einen Rahmen ziehst, erstellt die Engine eine Bewegungs-Heatmap, nimmt die heißeste zusammenhängende Fläche und erweitert sie um 15 %. Optischer Fluss und Tiefe werden innerhalb dieses Bereichs gemessen.

Bewegung messen

Optischer Fluss ist das eine Signal, das immer läuft: Dichter DIS-Fluss misst, wie sich der Bereich zwischen abgetasteten Bildern bewegt. YOLOv8-Posenschätzung ergänzt 17 Körper-Keypoints pro Person, und MiDaS-Tiefenschätzung ergänzt die Achse zur Kamera hin und von ihr weg, die flaches Video verbirgt. Beide Modelle sind optional; ohne sie läuft die Engine nur mit dem Fluss und sagt das auch. In einem Hintergrund-Thread liest die App außerdem die Bewegungsvektoren des Codecs und eine Lautstärke-Hüllkurve mit 50 Hz, innerhalb eines Zeitbudgets, das mit der Filmlänge wächst.

Fusion

Der Fluss liefert Geschwindigkeit, die driftet, wenn man sie über die Zeit aufsummiert. Deshalb wählt die Engine pro Video einen Anker aus Bereichsmitte, Pose und Tiefe, und ein Kalman/RTS-Glätter verschmilzt den integrierten Fluss mit diesem Anker zu einer einzigen Positionskurve. Standardmäßig ist der Anker eine Mischung pro Abtastung aus jedem lesbaren Kanal, die nur behalten wird, wenn sie mindestens so gut abschneidet wie der einzelne gewählte Kanal. Wo das Tracking aussetzt, wird die Lücke mit rhythmischer Bewegung gefüllt, die aus den umgebenden Hüben fortgesetzt wird, und der Anteil, der aufgefüllt statt gemessen wurde, wird in die Metadaten des Skripts geschrieben.

Bewegungstyp-Fenster

Die Timeline wird in 2-Sekunden-Fenster geteilt. Ein kleiner Klassifikator versieht jedes anhand von sechs Bewegungsmerkmalen mit einem Bewegungstyp, und ein Glättungsdurchgang verhindert, dass die Labels zwischen den Fenstern flackern. Das Label bestimmt, wie die Bewegung in diesem Fenster geformt wird. Ein Label, das du selbst setzt und das mindestens ein halbes Fenster abdeckt, überstimmt den Klassifikator für dieses Fenster.

Punkte und die gespeicherte Datei

An jeder Bewegungsumkehr wird ein Skriptpunkt gesetzt, nie weniger als 120 ms nach dem vorherigen und mindestens alle 4 Sekunden, und die Punktliste wird anschließend vereinfacht. Die App schreibt Standard-.funscript-JSON mit demselben Namen neben das Video, nachdem sie ein vorhandenes Skript nach .funscript.bak kopiert hat. Unter das Funscript-Format steht, was darin enthalten ist.

Geräteanpassung

Die Kopie, die an ein Gerät gesendet wird, nie die gespeicherte Datei, wird an dieses Gerät angepasst: Punkte, die enger liegen, als es auflösen kann, werden zusammengeführt, Abschnitte, die schneller sind als sein Tempolimit, verlieren Amplitude, behalten aber ihr Timing, und die Punktdichte wird begrenzt. Beim Autoblow AI Ultra werden Umkehrpunkte zusätzlich auf ein 16-fps-Raster gelegt. In der veröffentlichten App gilt diese Anpassung für den Autoblow-Upload; die Anwendung auch auf Intiface-Geräte kommt mit dem nächsten Update. Wie das Gerät danach im Takt mit dem Video bleibt, behandelt Drift-Korrektur und Sync-Timing.

Wo jeder Teil läuft

Die gesamte Analyse findet auf deinem PC statt. Die Analysemodule enthalten keinen Netzwerkcode, und das Video wird nie hochgeladen. Die Einstellung Hardware bietet Auto (der Standard), GPU (CUDA) und CPU.

Welcher Prozessor für welche Stufe genutzt wird
StufeLäuft auf
VideodekodierungDem Hardware-Decoder jedes Herstellers, wo verfügbar, sonst der CPU
Pose- und TiefenmodelleNVIDIA-GPU über CUDA (ONNX Runtime oder PyTorch); CPU, wenn keine CUDA-GPU genutzt werden kann
Optischer FlussCPU (OpenCV), auf jedem Rechner

Für die KI-Modelle gibt es keine AMD- oder Intel-Beschleunigung, und TensorRT wird nicht verwendet. Wenn eine CUDA-GPU angefordert wird, aber nicht genutzt werden kann, weichen Pose und Tiefe auf die CPU aus, und die App meldet den tatsächlich verwendeten Provider; die Schaltfläche Check GPU sagt dir, welcher das ist. Der CPU-Weg funktioniert, ist aber viel langsamer: Ein Code-Kommentar vom RTX-5080-Test-PC hält für das kleine Tiefenmodell etwa 25,8 ms pro Aufruf auf der GPU gegenüber 234 ms auf der CPU fest.

Wir haben die Geschwindigkeit für ganze Filme auf keiner anderen GPU als der des Entwicklers gemessen, auch nicht auf einem reinen CPU-PC, deshalb gibt diese Seite kein Geschwindigkeitsversprechen. Die Benchmark-Seite legt dar, was gemessen wurde, worauf, und was nicht.

Was wir nicht gelöst haben

Diese Punkte stammen aus der eigenen Auswertung des Entwicklers an 28 kurzen, von ihm von Hand geskripteten Clips aus fünf Filmen, auf die die Standardwerte abgestimmt wurden, mit dem Build nach 2.121.1 (gebaut, noch nicht veröffentlicht). Es ist ein einzelner Skripter und eine kleine Stichprobe, also lies sie als bekannte Schwächen, nicht als Benchmark.

  • Verpasste Richtungswechsel. Die Engine machte 1,80 Richtungswechsel pro Sekunde, wo der Mensch 2,29 machte, etwa 21 % weniger. Weil einige Wendungen der Engine zudem überzählig oder falsch getimt waren, wurde nur etwa die Hälfte der Wendungen des Menschen innerhalb von 150 ms getroffen. Die Übereinstimmung bei den Hubwenden lag je nach Film zwischen 0,33 und 0,71 (F1, innerhalb von 150 ms).
  • Schnelle Hübe fallen klein aus. Bei den beiden Filmen mit den schnellsten Hüben waren die Hübe der Engine ein Viertel bzw. die Hälfte so groß wie die des Menschen. Die derzeitige Erklärung ist, dass die 10 Abtastungen pro Sekunde von Balanced (bei 30-fps-Video) schnelle Bewegung wegglätten.
  • Sie hört nicht auf, wenn die Action aufhört. In Abschnitten, die der Mensch als ohne Action markiert hatte, erzeugte die Engine trotzdem etwa 85 Richtungswechsel pro Minute. Sie weigert sich allerdings, überhaupt ein Skript zu erstellen, wenn weniger als 5 % der Abtastungen echte Bewegung zeigen.
  • Bewegungstyp-Labels sind nicht belegt. Nach Video getrennt ausgewertet an den eigenen Labels des Entwicklers, schnitt der Bewegungsklassifikator allein schlechter ab als ein konstanter Tipp, und keine Genauigkeitszahl für die Standard-App ist veröffentlichungsreif. Labels, die du selbst setzt, überstimmen ihn.

Der Timeline-Editor, Re-analyze mit voller Bildrate für einen markierten Bereich und die Funscript-Fehlerbehebung sind heute die praktischen Antworten.

Weiterlesen

Probier es mit deinen eigenen Videos

Die Testversion dauert einen Tag und läuft auf deinem eigenen PC; deine Videos werden lokal analysiert und nie hochgeladen.