Cómo funciona la generación de funscript con IA

AutoScript Sync extrae el movimiento de un vídeo con un seguimiento de movimiento por IA que se ejecuta íntegramente en tu PC: muestrea fotogramas, mide el movimiento con flujo óptico, añade modelos opcionales de pose y profundidad, fusiona esas señales en una única traza de posición y coloca un punto del script en cada cambio de sentido. El resultado es un .funscript estándar guardado junto al vídeo. El ajuste a un dispositivo concreto se hace después, solo en la copia que se envía a ese dispositivo.

Comprobado con el código de la aplicación el 21 de septiembre de 2026. Describe la aplicación publicada, 2.121.1, salvo que una línea diga lo contrario.

El proceso, del archivo de vídeo al dispositivo

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
El archivo guardado termina en la última flecha continua. El paso discontinuo se aplica solo a la copia que la aplicación envía a un dispositivo; el archivo en disco nunca se ajusta a un dispositivo concreto.

Cada etapa en un párrafo

Decodificación y muestreo

El vídeo se decodifica con el backend FFmpeg de OpenCV. La aplicación pide primero decodificación por hardware y recurre a la decodificación por software si el códec, la compilación o el controlador no la permiten. Un hilo de trabajo decodifica por adelantado en un búfer de hasta 64 fotogramas, de modo que la decodificación y la inferencia de IA se solapan en lugar de turnarse.

El ajuste Accuracy decide cuántos fotogramas se analizan: Fast toma uno de cada 4, Balanced (el predeterminado) uno de cada 3 y High uno de cada 2. En un vídeo de 30 fps eso son 7,5, 10 o 15 muestras por segundo; en un vídeo de 60 fps las tasas se duplican. Cada fotograma muestreado se reduce a 320 px de ancho antes de cualquier análisis, sea cual sea la resolución original. Las imágenes de RV se desdeforman primero a una vista en perspectiva normal de un solo ojo.

Encontrar la región en movimiento

A menos que dibujes tú mismo un recuadro con Set Motion Region… o Live Track, el motor construye un mapa de calor del movimiento, toma la zona conectada más caliente y la amplía un 15%. El flujo óptico y la profundidad se miden dentro de esa región.

Medir el movimiento

El flujo óptico es la única señal que se ejecuta siempre: el flujo denso DIS mide cómo se mueve la región entre los fotogramas muestreados. La estimación de pose con YOLOv8 añade 17 puntos clave del cuerpo por persona, y la estimación de profundidad con MiDaS añade el eje de acercamiento y alejamiento respecto a la cámara que el vídeo plano oculta. Ambos modelos son opcionales; sin ellos el motor funciona solo con el flujo y lo indica. En un hilo en segundo plano, la aplicación también lee los vectores de movimiento propios del códec y una envolvente de volumen de audio a 50 Hz, dentro de un presupuesto de tiempo que crece con la duración de la película.

Fusión

El flujo da la velocidad, que deriva cuando se va sumando a lo largo del tiempo. Por eso el motor elige un ancla por vídeo a partir del centro de la región, la pose y la profundidad, y un suavizador Kalman/RTS fusiona el flujo integrado con esa ancla en una única traza de posición. Por defecto, el ancla es una mezcla muestra a muestra de todos los canales legibles, que solo se conserva cuando puntúa al menos tan bien como el ancla única elegida. Donde el seguimiento se pierde, el hueco se rellena con movimiento rítmico continuado a partir de los recorridos de alrededor, y la proporción que se rellenó en lugar de medirse se escribe en los metadatos del script.

Ventanas por tipo de movimiento

La línea de tiempo se divide en ventanas de 2 segundos. Un pequeño clasificador etiqueta cada una por tipo de movimiento a partir de seis características del movimiento, y una pasada de suavizado impide que las etiquetas parpadeen entre ventanas. La etiqueta decide cómo se da forma al movimiento de esa ventana. Una etiqueta que pongas tú y que cubra al menos media ventana se impone al clasificador en esa ventana.

Los puntos y el archivo guardado

Se coloca un punto del script en cada inversión del movimiento, nunca a menos de 120 ms del anterior y al menos cada 4 segundos, y después se simplifica la lista de puntos. La aplicación escribe un JSON .funscript estándar junto al vídeo con el mismo nombre, tras copiar cualquier script existente a .funscript.bak. Consulta el formato funscript para ver qué contiene.

Ajuste al dispositivo

La copia que se envía a un dispositivo, nunca el archivo guardado, se ajusta a ese dispositivo: los puntos más juntos de lo que puede resolver se fusionan, los tramos más rápidos que su límite de velocidad pierden amplitud pero conservan su tiempo, y la densidad de puntos se limita. Para el Autoblow AI Ultra, las inversiones también se colocan en una rejilla de 16 fps. En la aplicación publicada este ajuste se aplica a la subida al Autoblow; aplicarlo también a los dispositivos Intiface llega en la próxima actualización. Cómo se mantiene después el dispositivo a tiempo con el vídeo se explica en corrección de deriva y sincronización.

Dónde se ejecuta cada parte

Todo el análisis se hace en tu PC. Los módulos de análisis no contienen código de red y el vídeo nunca se sube. El ajuste Hardware ofrece Auto (el predeterminado), GPU (CUDA) y CPU.

Qué procesador usa cada etapa
EtapaSe ejecuta en
Decodificación de vídeoEl decodificador por hardware de cualquier fabricante cuando está disponible; si no, la CPU
Modelos de pose y profundidadGPU NVIDIA mediante CUDA (ONNX Runtime o PyTorch); CPU cuando no se puede usar ninguna GPU con CUDA
Flujo ópticoCPU (OpenCV), en todos los equipos

No hay aceleración AMD ni Intel para los modelos de IA, y no se usa TensorRT. Si se pide una GPU con CUDA pero no se puede usar, la pose y la profundidad recurren a la CPU y la aplicación informa del proveedor realmente en uso; el botón Check GPU te dice cuál es. La vía por CPU funciona pero es mucho más lenta: un comentario en el código, del PC de pruebas con RTX 5080, registra el modelo de profundidad pequeño a unos 25,8 ms por llamada en la GPU frente a 234 ms en la CPU.

No hemos medido la velocidad con películas completas en ninguna GPU aparte de la del propio desarrollador, ni en un PC solo con CPU, así que esta página no promete ninguna velocidad. La página de pruebas de rendimiento expone qué se ha medido, en qué equipo y qué no.

Lo que no hemos resuelto

Estos datos proceden de la puntuación del propio desarrollador frente a 28 clips cortos que escribió a mano, tomados de cinco películas con las que se ajustaron los valores predeterminados, usando la compilación posterior a 2.121.1 (compilada, aún no publicada). Es un solo autor de scripts y una muestra pequeña, así que léelos como debilidades conocidas, no como una prueba de rendimiento.

  • Cambios de sentido perdidos. El motor hizo 1,80 cambios de sentido por segundo donde la persona hizo 2,29, alrededor de un 21% menos. Como algunos giros del motor además sobraban o estaban a destiempo, solo aproximadamente la mitad de los giros de la persona coincidieron con un margen de 150 ms. La concordancia de giros de recorrido fue de 0,33 a 0,71 (F1, con 150 ms de margen) según la película.
  • Los recorridos rápidos salen pequeños. En las dos películas con los recorridos más rápidos, los recorridos del motor tenían una cuarta parte y la mitad del tamaño de los de la persona. La explicación de trabajo es que las 10 muestras por segundo de Balanced (en vídeo de 30 fps) suavizan hasta borrar el movimiento rápido.
  • No se detiene cuando se detiene la acción. En los tramos que la persona marcó como sin acción, el motor siguió produciendo unos 85 cambios de sentido por minuto. Sí se niega a hacer un script cuando menos del 5% de las muestras muestran movimiento real.
  • Las etiquetas de tipo de movimiento no están demostradas. Evaluado por vídeo reservado sobre las propias etiquetas del desarrollador, el clasificador de movimiento por sí solo puntuó por debajo de una respuesta constante, y no hay ninguna cifra de precisión de la aplicación predeterminada apta para publicarse. Las etiquetas que pongas tú se imponen a él.

El editor de línea de tiempo, Re-analyze a la tasa de fotogramas completa sobre un tramo seleccionado y la solución de problemas de funscript son las respuestas prácticas hoy.

Sigue leyendo

Pruébalo con tus propios vídeos

La prueba dura un día y se ejecuta en tu propio PC; tus vídeos se analizan localmente y nunca se suben.