Авторы Gradio представили Workflow1111 — проект, воссоздающий функционал популярного интерфейса AUTOMATIC1111 (stable-diffusion-webui) в виде единого графа на базе gr.Workflow. Это не просто обертка, а архитектура из 11 медиа-пайплайнов и 73 узлов, объединяющая генерацию изображений, видео, обработку и анализ. Проект демонстрирует, как современные AI-инструменты могут работать без жесткой привязки к GPU на стороне клиента, используя гибридные сценарии: локальные вычисления и облачные API.
01Архитектура и типы узлов
Workflow1111 строится на четырех типах операторов, которые становятся узлами в графе:
- fn: Обычная Python-функция. Идеальна для постобработки, работы с метаданными или простых трансформаций (например, ресайз через Pillow).
- model: Вызов модели через Hugging Face Inference Client. Позволяет использовать SOTA-модели без их локальной загрузки.
- space: Вызов другого Gradio Space. Используется для тяжелых моделей (например, удаление фона), которые хостятся отдельно.
- dataset: Доступ к строкам из датасетов Hugging Face Hub.
02Ключевые пайплайны: от Text-to-Image до Видео
Проект закрывает основные сценарии использования, знакомые пользователям A1111, но с современным стеком моделей:
1. Text-to-Image и Hi-Res Fix
Базовая генерация использует узел model для вызова чекпоинта. Уникальная фишка — узел fn автоматически записывает параметры генерации (seed, CFG, steps) в метаданные PNG. Для Hi-Res Fix используется модель FLUX.1-Kontext с инструкцией "enhance fine detail", которая увеличивает разрешение и детализацию за один проход, заменяя классический upscale + denoise.
2. Image-to-Image и LLM-промпты
Узел Kontext работает и для img2img. Для улучшения промптов интегрирован Qwen3-4B: он берет сырую идею (например, "маяк в шторм") и возвращает список из 40 тегов. В отличие от ComfyUI, здесь LLM и диффузионная модель — равные узлы в одном графе, что упрощает отладку.
3. Анализ изображений (Interrogate)
Вместо CLIP используется Qwen2.5-VL (VLM) для генерации текстового описания. Параллельно запускается классификатор ViT для определения сцены. Благодаря архитектуре графа, оба запроса выполняются параллельно, и результат приходит за время самого долгого из них.
4. Inpainting через детекцию
Вместо ручного рисования масок используется модель DETR. Она находит объекты (люди, животные, транспорт) и автоматически генерирует маску для инпейнтинга. Отрисовка боксов и создание маски происходят локально через NumPy/Pillow, не нагружая сеть.
5. Upscale и Background Removal
Здесь показана гибкость системы. Локальный апскейл (Lanczos) выполняется в узле fn мгновенно. Для качественного апскейла вызывается AuraSR ×4 через узел space. Удаление фона делается через BRIA RMBG-2.0, также хостящийся в отдельном Space.
6. Image-to-Video
Результат генерации изображения можно сразу подать в модель Wan 2.2 I2V A14B для создания видео. Один узел загрузки изображения может питать сколько угодно downstream-пайплайнов (метаданные, видео, анализ).
model и space требуют подключения к интернету. Однако около 2/3 узлов (включая аннотаторы ControlNet и локальный апскейл) работают офлайн, так как это чистый Python/NumPy.03Локальный запуск и GPU
Хотя демо работает через Hugging Face Spaces, gr.Workflow поддерживает локальный запуск. Функция fn — это просто Python-код. Вы можете загрузить модель на свой GPU и привязать её к узлу.
Пример привязки функции к GPU (синтаксис Gradio Spaces, но логика применима и к локальному запуску через launch()):
@spaces.GPU(
duration=get_duration,
size=GPU_SIZE
)
def _generate(
prompt_embeds,
text_token_tags,
height,
width,
num_frames,
seed
):
# Логика генерации на GPU
pass
gr.Workflow(bind={
"generate": generate,
"status": status
}).launch()Для локального использования достаточно указать bind= на функцию, которая инициализирует модель (например, через Diffusers или Transformers), и вызвать .launch() на вашей машине. Это позволяет использовать Workflow1111 как легковесную альтернативу ComfyUI для тех, кто предпочитает Python-скрипты сложным графам.
04API и интеграция с AI-агентами (MCP)
Каждый выходной узел автоматически становится REST-эндпоинтом. Это открывает возможности для интеграции с AI-агентами через MCP (Model Context Protocol).
Запуск сервера MCP:
# При запуске указать флаг mcp_server=True
gr.Workflow(...).launch(mcp_server=True)Теперь Claude Code, Cursor или любой MCP-клиент могут вызывать узлы как инструменты. Например, агент может сгенерировать изображение, прочитать его промпт из метаданных или запустить детекцию объектов в рамках одной задачи, без написания glue-code.
Пример вызова через клиент:
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", # Prompt
"", # Negative prompt
"Cinematic", # Style preset
"enhance fine detail", # Hires refine
api_name="/image"
)05Сравнение с ComfyUI и AUTOMATIC1111
| Критерий | AUTOMATIC1111 | ComfyUI | Workflow1111 (Gradio) |
|---|---|---|---|
| Интерфейс | Tab-based (вкладки) | Node-based (графы) | Node-based (графы) |
| Сложность настройки | Низкая | Высокая (нужно собирать графы) | Средняя (визуальный редактор) |
| Локальный запуск | Нативный | Нативный | Возможен (через bind=) |
| Облачная интеграция | Требует плагинов | Требует плагинов | Нативная (Inference Client / Spaces) |
| AI-агенты (MCP) | Нет | Через расширения | Нативная поддержка |
06Кому подойдёт / что запустится
- Разработчикам и AI-инженерам: Для быстрого прототипирования пайплайнов, где нужно комбинировать LLM, VLM и Diffusion-модели. Встроенный MCP делает его идеальной базой для агентов.
- Пользователям без мощного GPU: Можно запускать тяжелые модели (AuraSR, Wan 2.2) через Hugging Face Spaces, используя только слабый ноутбук для пред/постобработки.
- Фанатам A1111: Если вам не хватает гибкости ComfyUI, но она кажется слишком сложной, Workflow1111 предлагает золотую середину с familiar-логикой (prompt matrix, hires fix).
Требования: Для локального запуска с GPU желателен NVIDIA GPU с 8GB+ VRAM. Для облачного режима достаточно любого устройства с браузером и доступом к интернету.
Источник: Hugging Face ↗
