Recorta automáticamente miles de fotos alrededor de los rostros con IA en ComfyUI

Un recorte inteligente por lotes: Florence 2 encuentra el rostro (o lo que nombres) en cada foto de una carpeta, y ComfyUI recorta un encuadre limpio y centrado a su alrededor, con cualquier relación de aspecto.

Anton Tenitsky13 de octubre de 20264 min de lecturaVersión en vídeo más abajo

Esta guía se tradujo del inglés con IA y puede contener errores. Leer el original.

Una cuadrícula de fotos en blanco y negro de Marilyn Monroe, cada una recortada automáticamente alrededor del rostro

Necesitaba recortar un montón de fotos alrededor del rostro: fotos verticales convertidas en encuadres horizontales para un vídeo. Un recorte básico toma el centro de la imagen, o la parte superior o inferior si se lo indicas, pero no sabe encontrar al sujeto. Con IA sí puede. Este flujo encuentra el rostro en cada foto de una carpeta y recorta un encuadre limpio a su alrededor. Igual de fácil puede recortar alrededor de las manos, de una camiseta o de cualquier otra cosa que puedas nombrar.

Lo muestro con fotos de dominio público de Marilyn Monroe.

Una foto vertical de Marilyn Monroe con un área de recorte horizontal colocada alrededor de su rostro
El objetivo: un encuadre horizontal colocado alrededor del rostro, no solo en el centro de la foto.

En resumen

  • Carga una carpeta de fotos con Load Image Batch (modo incremental).
  • Encuentra el rostro con Florence 2 (tarea: caption to phrase grounding).
  • Amplía la máscara para que el recorte tenga espacio alrededor del rostro.
  • Recorta por máscara y luego redimensiona con un fill crop a un tamaño exacto (1920 × 1080 en mi caso).
  • Velocidad: 500–1000 fotos en unos 20–30 minutos.

El flujo está en mi Patreon. A continuación se explica cómo funciona cada parte.

1. Carga y redimensiona las fotos

Load Image Batch apunta a tu carpeta, en modo incremental image, para que cada ejecución tome la siguiente foto.

El nodo Load Image Batch en modo incremental image con una ruta de carpeta, y un nodo Image Resize
Importación por lotes: una ruta de carpeta y el modo incremental.

¿Cuántas ejecuciones? Fija el recuento de lotes en el número de fotos, por ejemplo 18. Pero el recuento de lotes se detiene en 100. Para 500 fotos, usa Run (Instant), que sigue poniendo en cola hasta que lo detengas. Es rápido: déjalo 20–30 minutos y mil fotos están hechas.

A continuación, un nodo Image Resize escala cada foto para que su lado más largo mida 1920 píxeles, manteniendo las proporciones. Así, mis fotos encajaban bien en un encuadre vertical Full HD.

2. Encuentra el rostro con Florence 2

Instala el paquete Florence 2 desde el ComfyUI Manager. El modelo se descarga solo la primera vez que lo ejecutas.

El nodo Florence2ModelLoader con su desplegable de modelos abierto
El cargador del modelo Florence 2. Base funciona bien para rostros.

Qué modelo:

  • Base: perfecto para tareas simples como encontrar un rostro, y rápido. No da muchos fallos.
  • Large: bastante más lento, pero puede delinear formas reales, como una mano y un brazo, en lugar de solo un recuadro.
  • Versiones fine-tuned (ft): nunca les encontré uso; nunca me dieron buenos resultados.

En el nodo principal de Florence 2, escribe lo que hay que encontrar («face», «hands», «t-shirt») y fija la tarea en caption to phrase grounding. Esa es la tarea que devuelve una máscara de dónde está la cosa. Las demás tareas hacen otros trabajos, como escribir un pie de foto de la imagen, que es útil en otros flujos pero no aquí.

El nodo Florence 2 con una vista previa de la máscara que muestra un rectángulo blanco donde se encontró el rostro
«Face» encuentra un recuadro alrededor del rostro. Una ubicación aproximada es todo lo que necesitamos para recortar.

Una vista previa de la máscara muestra lo que encontró. A veces coge demasiado: en una foto eligió al bebé entero en lugar del rostro, y en fotos con dos personas a veces solo encontró un rostro. Prueba variaciones como «faces» o «two faces». Yo mantengo el prompt lo más sencillo posible.

3. Amplía la máscara y fija el encuadre

El recuadro detectado queda ajustado, y un recorte tan ajustado se come parte del rostro. Un nodo Grow Mask lo expande, aquí 200 píxeles. Usa 0 si lo quieres ajustado, y más para fotos muy grandes (una foto de 6000 píxeles necesita un crecimiento mayor). Las esquinas se achaflanan al crecer; ignóralo, ya que el recorte final es rectangular de todos modos.

Una vista previa de la máscara que muestra el recuadro del rostro ampliado en una forma octogonal mayor
La máscara ampliada. Las esquinas achaflanadas no importan; el recorte es un rectángulo.

La máscara ampliada aún puede tener una forma equivocada para tu encuadre, así que se recorta a las dimensiones que uso en todo el flujo: 1920 × 1080.

4. Recorta y exporta

Image Crop by Mask toma la foto original del cargador por lotes y la recorta según la máscara. Ese recorte puede tener un tamaño incómodo, así que un Image Resize final con el método fill/crop lo lleva a HD exacto, recortando un poco más si hace falta.

Dos recortes horizontales cinematográficos de fotos en blanco y negro, encuadrados alrededor de los rostros
El resultado: recortes horizontales cinematográficos, centrados en los rostros.

Yo buscaba un encuadre de estilo cinematográfico, y el resultado fue perfecto: un encuadre realmente bonito. Save Image escribe los archivos en la carpeta que hayas fijado; una nota en el flujo explica cómo se construyen los nombres de archivo.

Una nota sobre la resolución

Como el recorte hace zoom sobre el rostro, los resultados pueden ser pequeños. Si los necesitas más grandes, pásalos por un escalador; mi guía de escalado gratuito con IA tiene un flujo para eso. Para saber más de lo que puede hacer Florence 2, mira enmascarar cualquier cosa con Florence 2.

Ver la versión en vídeo (7:15)

Todo lo anterior también está en el vídeo, si prefieres seguirlo en pantalla. El vídeo está en inglés.

Preguntas frecuentes

¿Cómo proceso más de 100 imágenes en ComfyUI?

El recuento de lotes se detiene en 100. Para más, usa Run (Instant), que sigue poniendo ejecuciones en cola hasta que lo detengas. Una carpeta de 500 o 1000 fotos tarda de 20 a 30 minutos.

¿Qué modelo de Florence 2 debo usar para detectar rostros?

Base es rápido y maneja bien cosas simples como los rostros. Large es más lento pero puede delinear formas con más precisión. Nunca le encontré uso a las versiones fine-tuned.

¿Por qué ampliar la máscara?

El recuadro detectado queda ajustado al rostro. Ampliarlo (yo usé 200 píxeles) da aire al recorte. Amplíalo más para fotos muy grandes.

Anton Tenitsky es artista 3D con más de 15 años en gráficos por ordenador, que ha trabajado con Nickelodeon, Gameloft, Marvel Rivals y muchos otros clientes. Más sobre mí

Guías relacionadas