Cómo detectar formato retrato o paisaje en ComfyUI

Sabías que determinar si una imagen está en formato retrato o paisaje es más simple de lo que parece? Al final, todo se reduce a comparar las dimensiones. La lógica básica es directa: si el ancho es mayor al alto, tienes un paisaje; si el alto es mayor, es retrato; y si son iguales, el formato es cuadrado.

Illustration of a digital workspace showing how to compare image width and height to determine format orientation.
Visual guide comparing image width and height to determine portrait versus landscape formats using Python code and logical diagrams.

En términos prácticos, puedes aplicar esto en varios entornos. A nivel conceptual, solo necesitas leer los metadatos de la imagen. Si lo implementas con código, el pseudocódigo es muy claro: comparas width y height para obtener una etiqueta o un booleano.

Implementación en ComfyUI

Ahora, si estás trabajando en entornos como ComfyUI, la aplicación es un poco más específica. El nodo de Aspect Ratio solo calcula la proporción, pero tú tienes que usar ese resultado para ramificar tu flujo y redimensionar el canvas.

Opción A: Condición lógica

Una forma muy clara es usar nodos de comparación. Tomas el ancho y el alto, y los comparas usando un nodo tipo Compare. Si la condición se cumple, usas un nodo Switch para enviar tu canvas a una resolución horizontal; si no, lo envías a una vertical.

Diagram of ComfyUI nodes illustrating the logic-based workflow for dynamic canvas resizing based on image orientation.
Workflow diagram demonstrating how to use aspect ratio nodes in ComfyUI to conditionally resize canvases and maintain proportions.

Opción B: Usando el aspect ratio directamente

También puedes usar el nodo de aspect ratio directamente. Calculas la proporción y comparas ese valor contra 1. Si es mayor que 1, sabes que es paisaje; si es menor, es retrato.

Un consejo clave para mantener el formato

Si quieres redimensionar sin perder la proporción original, no uses presets fijos. Un truco excelente es definir un lado fijo (por ejemplo, 1024 píxeles) y calcular el otro lado proporcionalmente usando nodos de multiplicación o división.