Skip to main content
SDK 2.0.0. Los headers están en facebetter/*.h. Enumeraciones de maquillaje / remodelado / estilo: Enumeraciones de parámetros. Autenticación: Autenticación y licencia.
En Windows, Facebetter es una biblioteca C++ (facebetter.lib + facebetter.dll). Esta guía sigue el demo de escritorio C++ (demo/cpp).

Incluir headers

Flujo de integración

No hay un paso de activar tipos. Poner una intensidad por encima de 0 activa ese efecto.

1. Configurar logging (opcional)

Llama a esto antes de Create para capturar los logs de inicialización.
Niveles (bajo → alto): Trace / Debug / Info / Warn / Error / Critical.

2. Crear el motor

En escritorio debes configurar resource_path al archivo resource.fbd. Prioridad de autenticación: si license_token no está vacío, el SDK valida ese token (cadena del token de licencia, JSON {token} o .lic sin conexión) y no llama a la red con app_id / app_key. En caso contrario usa app_id + app_key contra /facebetter/v2/auth.
resource_path debe ser el archivo resource.fbd, no una carpeta. Las rutas relativas se resuelven desde el directorio de trabajo del proceso. En producción prefiera una ruta absoluta.

3. Configurar parámetros de belleza

Las intensidades de piel / maquillaje / remodelado corporal son [0.0, 1.0]. 0 desactiva. El remodelado facial es [-1.0, 1.0]. Listas completas de enumeraciones: Enumeraciones de parámetros.

Piel

Remodelado facial

Remodelado corporal

Rango [0.0, 1.0]. 0 desactiva. Coloca resource_body.fbd junto a resource.fbd o llama a AddResourcePack. Consulta Enumeraciones de parámetros y Paquetes de recursos opcionales.

Maquillaje

Intensidad, forma y color son setters separados. El labial es solo color; la pupila es solo color; el contorno es solo estilo.
El mismo patrón para delineador, cejas, pestañas y pupila (SetEyeLiner / SetEyebrow / SetEyelash / SetPupil más Style / Color cuando aplique).

4. Filtros, stickers y fondo virtual

Pasa una ruta de archivo o bytes codificados.
Las texturas LUT / sticker se crean en la siguiente llamada a ProcessImage (el hilo GL activo). Para stickers 3D consulta Paquetes de recursos opcionales.

5. Callbacks y estadísticas


6. Procesar fotogramas

Configura ImageFrame::type a FrameType::Video (tiempo real, predeterminado) o FrameType::Image (foto única).
Archivo (modo foto):
El motor mantiene el formato de salida alineado con la entrada cuando es posible (RGBA in → RGBA out, I420 in → I420 out). Usa Convert(Format::BGRA) si necesitas otro layout.

Subir a OpenGL (vista previa)

Mantén facebetter.dll junto al ejecutable (el CMake del demo la copia tras la compilación).

7. Bucle mínimo

Cuando termines, suelta el shared_ptr (engine.reset()). BeautyEffectEngine no es un singleton. Para TRTC / Agora / LiveKit: Integración con terceros.

Relacionado

Integración con terceros

TRTC / Agora / LiveKit

Referencia de la API

Todos los métodos y tipos C++

Manejo de errores

Códigos de retorno y problemas de DLL en Windows

Prácticas recomendadas

Rendimiento e hilos