ByteDance ha lanzado recientemente una innovadora tecnología de código abierto llamada LatentSync, un marco de sincronización labial de extremo a extremo basado en un modelo de difusión latente condicionado por audio. Esta tecnología permite una sincronización precisa entre los movimientos labiales de una persona en un video y el audio sin necesidad de representaciones de movimiento intermedias. A diferencia de los métodos de sincronización labial basados en difusión de espacio de píxeles o generación en dos etapas, LatentSync aprovecha directamente la potencia de Stable Diffusion para modelar de manera más efectiva las complejas relaciones audio-visuales.
Los estudios han demostrado que los métodos de sincronización labial basados en difusión presentan una mala consistencia temporal debido a las inconsistencias en el proceso de difusión entre fotogramas. Para solucionar este problema, LatentSync introduce la técnica de Alineación de Representaciones Temporales (TREPA). TREPA utiliza las representaciones temporales extraídas por un modelo de video autosupervisado a gran escala para alinear los fotogramas generados con los fotogramas reales, mejorando así la consistencia temporal mientras se mantiene la precisión de la sincronización labial.
Además, el equipo de investigación profundizó en el problema de convergencia de SyncNet y, a través de extensas investigaciones empíricas, identificó factores clave que afectan la convergencia de SyncNet, incluyendo la arquitectura del modelo, los hiperparámetros de entrenamiento y los métodos de preprocesamiento de datos. Al optimizar estos factores, la precisión de SyncNet en el conjunto de pruebas HDTF aumentó significativamente del 91% al 94%. Dado que no se modificó el marco de entrenamiento general de SyncNet, esta experiencia también se puede aplicar a otros métodos de sincronización labial y animación de retratos impulsada por audio que utilizan SyncNet.
Ventajas de LatentSync
Marco de extremo a extremo: sin representaciones de movimiento intermedias, genera directamente movimientos labiales sincronizados a partir del audio.
Generación de alta calidad: utiliza la potencia de Stable Diffusion para generar videos de habla dinámicos y realistas.
Consistencia temporal: mediante la tecnología TREPA, mejora la consistencia temporal entre los fotogramas de video.
Optimización de SyncNet: resuelve el problema de convergencia de SyncNet, mejorando significativamente la precisión de la sincronización labial.
Principio de funcionamiento
El núcleo de LatentSync se basa en la técnica de restauración de imagen a imagen, que requiere una imagen enmascarada como referencia. Para integrar las características visuales faciales del video original, el modelo también recibe una imagen de referencia. Esta información de entrada se concatena por canales y se introduce en una red U-Net para su procesamiento.
El modelo utiliza el extractor de características de audio preentrenado Whisper para extraer incrustaciones de audio. El movimiento labial puede verse afectado por el audio de los fotogramas circundantes, por lo que el modelo agrupa varios fotogramas de audio circundantes como entrada para proporcionar más información temporal. Las incrustaciones de audio se integran en la U-Net mediante una capa de atención cruzada.
Para resolver el problema de que SyncNet necesita una entrada de espacio de píxeles, el modelo primero realiza una predicción en el espacio de ruido y luego obtiene el espacio latente limpio estimado mediante un método de un solo paso. Los estudios han demostrado que entrenar SyncNet en el espacio de píxeles es más efectivo que en el espacio latente, posiblemente debido a la pérdida de información del área labial durante el proceso de codificación VAE.
El proceso de entrenamiento se divide en dos etapas: en la primera etapa, la U-Net aprende las características visuales sin decodificación de espacio de píxeles ni adición de pérdida de SyncNet. En la segunda etapa, se agrega la pérdida de SyncNet utilizando un método de supervisión de espacio de píxeles decodificado, y se utiliza la pérdida LPIPS para mejorar la calidad visual de la imagen. Para garantizar que el modelo aprenda correctamente la información temporal, el ruido de entrada también debe tener consistencia temporal, y el modelo adopta un modelo de ruido mixto. Además, se utiliza una transformación afín para la alineación frontal de la cara en la etapa de preprocesamiento de datos.
Tecnología TREPA
TREPA mejora la consistencia temporal mediante la alineación de las representaciones temporales de la secuencia de imágenes generadas y la secuencia de imágenes reales. Este método utiliza el modelo de video autosupervisado a gran escala VideoMAE-v2 para extraer representaciones temporales. A diferencia de los métodos que solo utilizan la pérdida de distancia entre imágenes, las representaciones temporales pueden capturar las correlaciones temporales en la secuencia de imágenes, mejorando así la consistencia temporal general. Los estudios han demostrado que TREPA no solo no perjudica la precisión de la sincronización labial, sino que incluso puede mejorarla.
Problema de convergencia de SyncNet
Los estudios han demostrado que la pérdida de entrenamiento de SyncNet tiende a estancarse alrededor de 0.69 y no puede disminuir más. A través de un extenso análisis experimental, el equipo de investigación descubrió que el tamaño del lote, el número de fotogramas de entrada y los métodos de preprocesamiento de datos tienen un impacto significativo en la convergencia de SyncNet. La arquitectura del modelo también afecta la convergencia, pero en menor medida.
Los resultados experimentales muestran que LatentSync supera a otros métodos de sincronización labial de vanguardia en varios indicadores. En particular, en términos de precisión de sincronización labial, esto se debe a su SyncNet optimizado y capa de atención cruzada de audio, que pueden capturar mejor la relación entre el audio y los movimientos labiales. Además, gracias a la tecnología TREPA, la consistencia temporal de LatentSync también ha mejorado significativamente.
Dirección del proyecto: https://github.com/bytedance/LatentSync