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
| Repositorio | deepinsight/insightface |
| Autores | Jia Guo y Jiankang Deng (equipo de ArcFace, RetinaFace y SCRFD) |
| Lenguaje | Python, con inferencia sobre ONNX Runtime. También hay un SDK en C/C++ (InspireFace) |
| Versión actual | 2.1 (octubre de 2026), requiere Python 3.10 o superior |
| Licencia | Código MIT. Los modelos preentrenados, solo para investigación no comercial |
| Popularidad | Unas 30.000 estrellas y más de 6.000 forks en GitHub |
| Funciona en | CPU, 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
| Paquete | Para qué se usa |
|---|---|
buffalo_l / buffalo_s | Los de toda la vida para FaceAnalysis. buffalo_l es el predeterminado; buffalo_s, más ligero. |
antelopev2 | Paquete antiguo que siguen pidiendo proyectos como InstantID. |
raccoon_s / raccoon_l | Nuevos en la 2.0. PrivateFrame usa raccoon_s. |
cheetah_s / cheetah_l | Para PersonAnalysis: detección de cuerpo y cara, y reconocimiento de personas. |
inswapper_128 | Modelo 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_128y 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
antelopev2para 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
onnxruntimeyonnxruntime-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.
