InsightFace: reconocimiento facial en Python, instalación y ejemplos

InsightFace es la librería open source de referencia para detectar, analizar y comparar caras. Detrás está el equipo que creó ArcFace y RetinaFace, dos de los métodos más usados en reconocimiento facial. Sus modelos están también dentro de muchas herramientas populares de IA, como InstantID o los nodos de face swap de ComfyUI. Aquí tienes cómo instalarla, un par de ejemplos que funcionan y lo que conviene saber de su licencia antes de usarla en un proyecto real.

Ficha rápida · Qué puedes hacer · Instalación · Ejemplos de código · Modelos · Licencia · Problemas frecuentes · Preguntas frecuentes · Vídeo

Ficha rápida de InsightFace

Repositoriodeepinsight/insightface
AutoresJia Guo y Jiankang Deng (equipo de ArcFace, RetinaFace y SCRFD)
LenguajePython, con inferencia sobre ONNX Runtime. También hay un SDK en C/C++ (InspireFace)
Versión actual2.1 (octubre de 2026), requiere Python 3.10 o superior
LicenciaCódigo MIT. Los modelos preentrenados, solo para investigación no comercial
PopularidadUnas 30.000 estrellas y más de 6.000 forks en GitHub
Funciona enCPU, GPU NVIDIA (CUDA) y Apple Silicon (CoreML)

Qué puedes hacer con InsightFace

  • Detectar caras en fotos y vídeo, con sus puntos clave (ojos, nariz, boca).
  • Reconocer y comparar caras: cada cara se convierte en un vector numérico (embedding), y comparando vectores sabes si dos fotos son de la misma persona o buscas a alguien en una colección.
  • Estimar edad y género aproximados.
  • Detección de vida (liveness): un complemento opcional para distinguir una cara real de una foto puesta delante de la cámara.
  • PrivateFrame: difumina o pixela caras en vídeos de forma local, todas o solo las de ciertas personas. Muy útil para anonimizar grabaciones.
  • PersonAnalysis: encuentra a personas registradas en vídeos, webcams o cámaras RTSP, combinando cara y cuerpo.
  • InsightFace Server: un servidor autoalojado con interfaz web y API REST, pensado como alternativa a servicios como AWS Rekognition.
  • Entrenar tus propios modelos: el repositorio incluye el código de entrenamiento y evaluación de ArcFace, Partial FC, RetinaFace y SCRFD.

Si no quieres programar, instala la interfaz de escritorio (Evaluation Studio). Desde ahí puedes comparar y buscar caras, organizar una biblioteca de personas, agrupar álbumes por persona o difuminar vídeos.

Cómo instalar InsightFace

Necesitas Python 3.10 o superior. Desde la versión 1.0 la instalación ya no compila nada en C++, así que en Windows no necesitas Visual Studio Build Tools:

# Librería base: detección, reconocimiento y análisis
python -m pip install -U insightface

# Con PrivateFrame (difuminar caras en vídeo)
python -m pip install -U "insightface[privateframe]"

# Con la aplicación de escritorio
python -m pip install -U "insightface[gui]"
insightface-gui

Si tienes una GPU NVIDIA, cambia el runtime de ONNX por la versión con CUDA. No dejes las dos instaladas a la vez, y repite este paso cada vez que actualices InsightFace:

python -m pip uninstall -y onnxruntime
python -m pip install onnxruntime-gpu

En un Mac con Apple Silicon no hay que hacer nada: InsightFace usa CoreML automáticamente. Si no hay aceleración disponible, usa la CPU.

Ejemplos de código

Detectar caras en una imagen

import cv2
from insightface.app import FaceAnalysis

app = FaceAnalysis()          # usa el paquete de modelos buffalo_l
app.prepare()

img = cv2.imread("foto.jpg")
faces = app.get(img)

for face in faces:
    print(face.bbox, face.det_score, face.age, face.sex)

cv2.imwrite("foto_caras.jpg", app.draw_on(img, faces))

La primera vez descarga los modelos en ~/.insightface/models/.

Comparar dos caras: ¿es la misma persona?

import cv2
import numpy as np
from insightface.app import FaceAnalysis

app = FaceAnalysis()
app.prepare()

a = app.get(cv2.imread("persona_1.jpg"))[0]
b = app.get(cv2.imread("persona_2.jpg"))[0]

similitud = float(np.dot(a.normed_embedding, b.normed_embedding))
print(f"Similitud: {similitud:.2f}")

Cuanto más alta es la similitud, más probable es que sean la misma persona. No hay un umbral universal: ajústalo con fotos de tu caso real, porque cambia según la calidad de imagen, la iluminación y lo que te cueste un falso positivo.

Difuminar caras en un vídeo

insightface-privateframe process --input video.mp4 --output-dir salida/

Genera el vídeo con las caras difuminadas y un JSON editable con lo detectado. Revisa el resultado antes de publicarlo: una cara que aparece solo un instante se puede escapar.

Modelos de InsightFace: buffalo_l, antelopev2 y compañía

PaquetePara qué se usa
buffalo_l / buffalo_sLos de toda la vida para FaceAnalysis. buffalo_l es el predeterminado; buffalo_s, más ligero.
antelopev2Paquete antiguo que siguen pidiendo proyectos como InstantID.
raccoon_s / raccoon_lNuevos en la 2.0. PrivateFrame usa raccoon_s.
cheetah_s / cheetah_lPara PersonAnalysis: detección de cuerpo y cara, y reconocimiento de personas.
inswapper_128Modelo de intercambio de caras (face swap) en el que se basan muchas herramientas de terceros.

Para elegir otro paquete: FaceAnalysis(name="buffalo_s"). Si un proyecto te pide antelopev2 y la descarga falla, colócalo a mano en la carpeta models/antelopev2 que indique ese proyecto.

Licencia: ¿se puede usar InsightFace en un proyecto comercial?

Esta es la duda más importante, y la respuesta tiene dos partes:

  • El código es MIT: puedes usarlo, modificarlo e integrarlo en productos comerciales.
  • Los modelos preentrenados no: buffalo_l, antelopev2, inswapper_128 y los demás que publica el proyecto son solo para investigación no comercial, tanto si se descargan solos como a mano. Para uso comercial hay que pedir licencia a InsightFace o entrenar tus propios modelos con datos que puedas usar.

Además, en Europa las caras usadas para identificar a alguien son datos biométricos, una categoría especial del RGPD. Si vas a reconocer a personas reales, revisa antes la base legal y el consentimiento.

InsightFace dentro de otras herramientas de IA

Es probable que hayas llegado a InsightFace porque otra herramienta te pedía instalarlo. Es una dependencia muy habitual:

  • InstantID usa antelopev2 para extraer la identidad de la cara y mantenerla al generar imágenes nuevas.
  • ComfyUI: los nodos de face swap y los de IPAdapter FaceID o PuLID dependen de InsightFace.
  • FaceFusion y otras herramientas de intercambio de caras usan modelos de la familia inswapper.

En todos estos casos la limitación de licencia de los modelos sigue aplicando.

Problemas frecuentes al instalar InsightFace

  • «Microsoft Visual C++ 14.0 or greater is required» en Windows: estás instalando una versión antigua (0.7.x) que compilaba código C++. Actualiza a la 2.x con pip install -U insightface. Si una herramienta te obliga a usar la versión antigua, instala Visual Studio Build Tools o busca una wheel precompilada para tu versión de Python.
  • No usa la GPU: casi siempre es porque conviven onnxruntime y onnxruntime-gpu. Desinstala los dos e instala solo el de GPU.
  • «No module named insightface» en ComfyUI u otra app: lo has instalado en un Python distinto del que usa la aplicación. Instálalo con el Python de esa app (en ComfyUI portable, el de la carpeta python_embeded).
  • Falla la descarga de un modelo: descárgalo a mano y colócalo en ~/.insightface/models/<nombre>/, o en la ruta que indique la herramienta.

Preguntas frecuentes sobre InsightFace

¿InsightFace es gratis?

El código sí, con licencia MIT. Los modelos preentrenados son gratis solo para investigación no comercial. Para usarlos en un producto necesitas una licencia comercial.

¿Qué diferencia hay entre InsightFace y ArcFace?

ArcFace es un método (una función de pérdida) para entrenar modelos de reconocimiento facial, publicado en CVPR 2019 por el mismo equipo. InsightFace es el proyecto que incluye ArcFace junto a detectores, modelos ya entrenados y la librería de Python para usarlos.

¿Funciona sin GPU?

Sí. Con fotos va bien en CPU. Para vídeo en tiempo real o colecciones grandes conviene una GPU NVIDIA o un Mac con Apple Silicon.

¿Qué alternativas hay a InsightFace?

DeepFace agrupa varios modelos de reconocimiento detrás de una API muy sencilla. face_recognition, basada en dlib, es más veterana y fácil de empezar, aunque menos precisa.

Vídeo de InsightFace

Ver el canal Repositorios que deberías conocer en YouTube

Proyectos relacionados

  • InstantID: generación de imágenes que conserva la identidad de una cara.
  • FaceFusion: intercambio y edición de caras en imagen y vídeo.
  • DeepFaceLab: el proyecto histórico de sustitución de caras.
  • YOLO: detección de objetos y visión artificial general.
  • ComfyUI: flujos visuales de generación con IA donde InsightFace aparece a menudo.

Repositorio y fuentes oficiales

InsightFace en GitHub · Documentación de la librería de Python · Modelos disponibles · Paquete en PyPI · Web oficial

Información del proyecto contrastada el 17 de octubre de 2026 (InsightFace 2.1). Revisa las licencias de los modelos antes de usarlos fuera de un contexto de investigación.

Tú decides

¿Quieres ver InsightFace funcionando paso a paso?

Lo instalamos, lo probamos con un caso real y preparamos una guía para que puedas replicarlo. Dinos qué formato prefieres: haremos primero los repositorios que más se pidan.

Un clic basta. Sin registro.