¿Qué pasaría si pudieras tener buena parte de AUTOMATIC1111, pero convertida en un lienzo visual donde conectas modelos, funciones y servicios como si armaras un mapa? Hugging Face presenta Workflow1111, una reconstrucción técnica basada en gr.Workflow que reúne 11 pipelines de generación y edición multimedia en un solo espacio de trabajo.
El proyecto utiliza 73 nodos y permite ejecutar funciones de texto a imagen, imagen a imagen, escalado, detección de objetos, inpainting, eliminación de fondos, análisis visual, animación de imágenes y más. Lo interesante es que no necesitas instalar una interfaz local ni tener una GPU propia para probarlo.
Un canvas para reemplazar varias herramientas
Workflow1111 toma como referencia el conjunto de funciones de AUTOMATIC1111, pero las organiza como un grafo. Cada nodo representa una operación y sus entradas y salidas se conectan mediante líneas.
En lugar de navegar por pestañas separadas, puedes observar cómo una imagen pasa por distintos procesos. Por ejemplo, una imagen subida al canvas puede alimentar al mismo tiempo un sistema de lectura de metadatos, un detector de objetos y un modelo de imagen a video.
La arquitectura se apoya en cuatro tipos de operadores:
fn: una función de Python.model: un modelo invocado medianteInferenceClient.space: otro Gradio Space que funciona como un nodo externo.dataset: una fila de un dataset alojado en Hugging Face Hub.
Esta combinación permite mezclar modelos de difusión, modelos de lenguaje, modelos de visión, detectores y herramientas tradicionales de procesamiento de imágenes dentro del mismo flujo.
Generación de imágenes con texto
El pipeline principal reproduce los controles que muchos usuarios conocen de la pestaña txt2img de AUTOMATIC1111: prompt negativo, pasos de generación, CFG, semilla, dimensiones y selección del modelo.
Antes de llegar al modelo de difusión, el prompt pasa por una función que limpia el texto y añade un estilo predefinido. Después, un nodo de modelo realiza la generación mediante proveedores de inferencia. Finalmente, otra función guarda los parámetros dentro de los metadatos PNG.
Esto último es importante porque permite recuperar después el prompt, la semilla, el modelo y los valores utilizados. La imagen deja de ser un archivo aislado y conserva parte de la historia de cómo fue creada.
Hires fix e imagen a imagen con FLUX.1-Kontext
En AUTOMATIC1111, el modo de alta resolución suele aumentar primero el tamaño de la imagen y luego aplicar una segunda pasada de eliminación de ruido. Workflow1111 resuelve este proceso con una desviación de dos nodos.
La imagen generada pasa a un modelo FLUX.1-Kontext con una instrucción como “mejora el detalle fino y la microtextura, mantén idéntica la composición”. El resultado vuelve con mayor tamaño y nitidez.
Ese mismo nodo sirve para imagen a imagen. Subes una imagen, describes el cambio y el modelo devuelve una versión editada. Una sola pieza del grafo puede cumplir funciones distintas según los datos que reciba.
De una idea breve a una lista de prompts
Workflow1111 también incorpora un pipeline para convertir una descripción corta en etiquetas útiles para generación visual.
Si escribes “un faro en una tormenta”, un nodo basado en Qwen3-4B puede devolver una lista como:
- mar agitado
- rocas mojadas
- composición dramática
- plano bajo
- iluminación volumétrica
- atmósfera ominosa
Una función limita la respuesta a un máximo de 40 etiquetas y la prepara para conectarla con cualquier modelo de difusión disponible en el canvas.
Aquí aparece una diferencia frente a ComfyUI: no hace falta crear un nodo personalizado específico para integrar el modelo de lenguaje. Tanto el LLM como el modelo de imagen son operadores normales dentro del mismo flujo de Gradio.
Interrogar imágenes con modelos de visión
Otra función reproduce la idea del botón Interrogate de AUTOMATIC1111, pero utilizando modelos visuales más modernos.
Qwen2.5-VL analiza una fotografía y genera un prompt que podría describir cómo producir una imagen parecida. Al mismo tiempo, un clasificador basado en ViT identifica categorías visuales y asigna probabilidades. En el ejemplo mostrado, reconoce elementos como un restaurante, una tienda de tabaco y una juguetería.
Ambas operaciones reciben la misma imagen y pueden ejecutarse en paralelo. Así, el usuario obtiene la descripción generada por el modelo visual y las etiquetas del clasificador aproximadamente en el tiempo de una sola operación secuencial.
Detección de objetos para crear máscaras de inpainting
En AUTOMATIC1111, el usuario normalmente pinta a mano la zona que desea modificar. Workflow1111 puede generar esa máscara automáticamente a partir de un detector.
Un modelo DETR identifica objetos en una fotografía urbana, como personas, un perro, una bicicleta y un automóvil. Después, el flujo se divide en dos ramas:
- Una dibuja las cajas de detección sobre la imagen original.
- La otra convierte esas cajas en una máscara para utilizarla en un pipeline de inpainting.
La detección ocurre mediante una llamada al modelo, pero el dibujo y la creación de la máscara se realizan localmente con Pillow y NumPy. Esto reduce llamadas innecesarias a servicios externos.
Prompt matrix y procesamiento en paralelo
El proyecto también recrea las matrices de prompts. Una descripción base, como “un roble solitario”, se combina con cuatro variaciones: al amanecer, durante una tormenta, bajo la Vía Láctea y en una neblina otoñal.
Cada variante se conecta a su propio nodo de texto a imagen. Un nodo final reúne los resultados en una hoja de contacto.
gr.Workflow no incluye un operador de bucle tradicional. En este caso, las cuatro generaciones aparecen como nodos independientes en el canvas. Como están al mismo nivel de dependencia, pueden ejecutarse en paralelo y comenzar a generar al mismo tiempo.
La ausencia de un bucle no impide crear variantes. El flujo puede expresar el paralelismo colocando operaciones equivalentes lado a lado.
Escalado, eliminación de fondos y anotadores
El pipeline de escalado utiliza dos caminos distintos. El primero aplica un redimensionamiento Lanczos de forma local mediante una función de Python. No requiere una llamada de red y termina tan rápido como permita Pillow.
El segundo utiliza AuraSR x4, un modelo que se ejecuta dentro de otro Space de Hugging Face. Desde el canvas, el resultado se trata como cualquier otra salida.
La eliminación de fondos sigue un enfoque parecido con BRIA RMBG-2.0, alojado en un Space independiente. También se incluyen anotadores de estilo ControlNet para Canny, line art, sketch, luma-depth y posterize.
Estos preprocesadores están implementados como funciones de NumPy, sin un modelo adicional detrás. En la imagen de ejemplo, cada anotador tarda alrededor de medio segundo en una CPU.
Cuánto del flujo puede funcionar localmente
El proyecto incluye 36 nodos operadores. De ellos, 32 son funciones fn y 22 se ejecutan completamente dentro del proceso, sin llamadas de red.
Esto significa que aproximadamente dos tercios del canvas pueden seguir funcionando si se pierde la conexión. Además, como las funciones son Python convencional, pueden probarse directamente sin abrir un canvas, iniciar un servidor o disponer de una GPU.
La otra parte del flujo puede utilizar modelos remotos mediante Inference Providers o Spaces. Esta separación permite decidir qué tareas ejecutas localmente y cuáles delegas a infraestructura externa.
De una imagen estática a un video
La imagen utilizada por el pipeline de PNG Info también puede alimentar un modelo de imagen a video. En la demostración, una fotografía de un zorro dormido se convierte en una escena donde el animal despierta y comienza a moverse.
El modelo utilizado es Wan 2.2 I2V A14B. No hace falta crear una segunda caja de carga porque un mismo nodo de referencia puede enviar su salida a múltiples pipelines.
Una sola imagen puede conservar sus metadatos, pasar por detección, utilizarse en edición y convertirse en video dentro del mismo canvas. ¿Notas la diferencia? El flujo deja de ser una colección de herramientas separadas y se convierte en una cadena reutilizable.
También puede utilizar tu propia GPU
Aunque Workflow1111 utiliza modelos alojados en infraestructura externa, gr.Workflow no está limitado a ese escenario.
Una función fn puede cargar un checkpoint local y ejecutar la inferencia en tu propia máquina. El canvas se encarga de conectar la operación, mientras que la función decide dónde y cómo se ejecuta el modelo.
Hugging Face muestra otro ejemplo con FastVideo/fastvideo-fasth3-preview. La aplicación ejecuta FastH3, una destilación de cuatro pasos de MiniMax-H3, para generar videos con sonido en ZeroGPU.
El patrón esencial se parece a esto:
@spaces.GPU(duration=get_duration, size=GPU_SIZE)
def _generate(prompt_embeds, text_token_tags, height, width, num_frames, seed):
...
gr.Workflow(bind={"generate": generate, "status": status}).launch()
ZeroGPU asigna una GPU a la función cuando la necesita y la libera al terminar. gr.Workflow no tiene que conocer los detalles de esa gestión: simplemente ejecuta el nodo.
Cada salida se convierte en una API
Una de las características más útiles para desarrolladores es que cada nodo de salida puede convertirse automáticamente en un endpoint REST. Workflow1111 expone nueve rutas, entre ellas:
/image/edited_image/generated_prompt/recovered_prompt/detected_objects/x_y_grid/upscaled_local/annotator_map/png_info
Un cliente puede llamar al pipeline desde Python sin construir manualmente todas las rutas:
from gradio_client import Client
client = Client("ysharma/Workflow1111", oauth_token="hf_...")
image, params, hires = client.predict(
"a red fox in a snowy pine forest",
"",
"Cinematic",
"enhance fine detail",
api_name="/image",
)
El mismo flujo puede exponerse como herramientas MCP. Al iniciar Gradio con mcp_server=True, los nodos de salida quedan disponibles para asistentes compatibles con el protocolo, como Claude Code, Cursor u otros clientes MCP.
Un agente podría generar una imagen, recuperar su prompt, detectar objetos o preparar una máscara como parte de una tarea más amplia. Ya no necesitas escribir código de integración para cada paso.
Workflow1111 frente a ComfyUI
AUTOMATIC1111 aporta la lista de funciones que el proyecto busca reunir. Sin embargo, la comparación técnica más directa es con ComfyUI, ya que ambos utilizan grafos de nodos.
Según Hugging Face, gr.Workflow cubre buena parte de los escenarios habituales y añade algunas capacidades relevantes:
- Un nodo puede ejecutarse en hardware externo mediante Inference Providers, otro Space, una API o un dataset.
- Las salidas se convierten en endpoints tipados generados desde el grafo.
- Los visitantes pueden usar el flujo con su propia identidad al iniciar sesión mediante OAuth.
- Es posible combinar modelos de difusión, LLM, VLM, detectores y modelos de video en el mismo canvas.
- Los nodos personalizados son funciones de Python, por lo que pueden aprovechar cualquier librería compatible.
La consecuencia práctica es clara: puedes publicar una aplicación que otros usuarios abren en el navegador, prueban con su propia cuota y también consumen desde código.
Cómo empezar con tu propio workflow
Workflow1111 comenzó con una función sencilla conectada a gr.Workflow:
import gradio as gr
def your_function(text: str) -> str:
pass
gr.Workflow(bind=[your_function]).launch()
El parámetro bind= convierte funciones en nodos. edges= define las conexiones entre ellos y .launch() abre el canvas en el navegador. Cuando el flujo está listo, gradio deploy permite llevarlo a un Space.
También puedes duplicar Workflow1111, elegir uno de sus 11 pipelines y modificarlo. El proceso consiste en eliminar nodos, reemplazar modelos y cambiar conexiones hasta adaptarlo a tu caso de uso.
Para alguien que está comenzando, esta propuesta reduce la distancia entre un prototipo y una aplicación funcional. Para un desarrollador experimentado, ofrece una forma de convertir una arquitectura multimodal en una interfaz visual, una API y un servicio compartible sin construir cada capa desde cero.
La idea más importante no es que Gradio imite a AUTOMATIC1111. Es que muestra cómo las interfaces de IA están evolucionando desde herramientas cerradas y separadas hacia flujos composables, donde una función local, un modelo remoto y un agente pueden formar parte de la misma experiencia.
