Hugging Face выпустила gr.Workflow, визуальный конструктор ИИ-пайплайнов в Gradio

Hugging Face добавила в свою библиотеку Gradio новую встроенную возможность, gr.Workflow. Идея в том, чтобы описывать пайплайн как граф из типизированных узлов: Gradio сама рисует drag-and-drop холст, где каждый узел можно запустить отдельно и увидеть промежуточный результат. Тот же граф без дополнительной работы становится REST API и разворачивается в Hugging Face Spaces одной командой.
Граф строится из трёх видов узлов: references, входные данные, operators, шаги, которые выполняют работу, subjects, выходы. Оператором может быть собственная Python-функция, модель на Hugging Face Inference Providers, другой Gradio Space или строка из датасета на Hub. Узлы соединяются перетаскиванием между типизированными портами, после чего пайплайн запускается кнопкой Run.
Hugging Face показала возможности на живых демо-Spaces, которые можно открыть, запустить и продублировать. Редактор изображений, это один узел, вызывающий модель Qwen-Image-Edit через Inference Providers: пользователь загружает фото, описывает правку текстом («сделай зимнюю сцену», «добавь очки») и получает отредактированную картинку. Медиастудия, один граф с тремя параллельными выходами: модель FLUX генерирует изображение по промпту, затем Gradio Space для удаления фона превращает его в стикер; та же тема превращается в закадровый голос через Space для синтеза речи и в цепляющее название эпизода через вызов LLM. Итого один холст, два вызова моделей через Inference Providers и два обращения к другим Gradio Spaces, а каждый из трёх выходов получает свой REST-эндпоинт, /sticker, /voiceover и /episode_title. Ещё один пример, параллельная генерация изображений: одна идея превращается в базовую картинку от FLUX, две её переработки другими стилями (акварель и неоновый киберпанк) и заголовок галереи от LLM, это пример fan-out-паттерна, когда один вход одновременно кормит несколько операторов, работающих параллельно. Есть и профилировщик датасетов Hugging Face: пользователь вводит ID датасета (например, stanfordnlp/imdb или mteb/tweet_sentiment_extraction), и один вход веерно расходится на четыре узла-оператора, которые независимо и параллельно анализируют датасет через Datasets Server API, карточку с обзором, превью первых строк, статистику по столбцам и график распределения.
Узел с обычной Python-функцией может выполнять вычисления не только через внешние сервисы, но и на собственном GPU внутри Space: функция, помеченная декоратором @spaces.GPU, при запуске узла получает GPU от ZeroGPU, выполняет модель и освобождает ресурс, так работает демо, которое оживляет статичное изображение моделью Lightricks/LTX-Video через Diffusers.
Каждый выход построенного пайплайна автоматически становится REST-эндпоинтом, названным по метке выхода, его можно вызывать из Python через gradio_client или обычным curl без обращения к интерфейсу. В посте приведён рабочий пример: client.predict("hello there friend", api_name="/word_count") возвращает 3, а client.predict(20, api_name="/fahrenheit") возвращает 68.0. Начать можно, открыв любое демо и нажав Duplicate, либо из кода, всего в пару строк: gr.Workflow(bind=[your_function]).launch(). Hugging Face анонсировала следующий пост, где по шагам соберут в gr.Workflow нечто настолько же сложное, как AUTOMATIC1111.
Ключевые факты
- gr.Workflow встроена в Gradio: пайплайн описывается как граф типизированных узлов на drag-and-drop холсте, каждый узел запускается отдельно
- Тот же граф без дополнительной работы становится REST API и разворачивается в Hugging Face Spaces одной командой
- Показаны примеры: редактор изображений на Qwen-Image-Edit, медиастудия с тремя параллельными выходами (стикер, закадровый голос, заголовок), параллельная генерация нескольких вариаций картинки, профилировщик датасетов Hugging Face на четыре параллельных узла
- Узел может быть Python-функцией, моделью через Inference Providers, другим Gradio Space или строкой из датасета Hub; тяжёлые вычисления можно гонять на своём GPU через @spaces.GPU (ZeroGPU)
- Каждый выход графа получает собственный REST-эндпоинт, вызываемый из Python (gradio_client) или curl
Почему это важно
gr.Workflow встраивает визуальную сборку мультимодельных пайплайнов прямо в Gradio: разработчику больше не нужно вручную склеивать вызовы разных моделей, сервисов и функций в код, граф, собранный перетаскиванием узлов, сразу становится и рабочим интерфейсом, и REST API, и приложением, готовым к деплою в Hugging Face Spaces.
Кому это важно
Разработчикам и ML-инженерам, которые собирают приложения из нескольких моделей и сервисов, генерация изображений, синтез речи, LLM-вызовы, анализ датасетов, и хотят получить рабочий прототип с API без отдельного бэкенда; пользователям Hugging Face Spaces, которым нужно быстро выложить и раздать такой пайплайн другим.
Как это применить
gr.Workflow доступен прямо в Gradio: минимальный пайплайн запускается кодом gr.Workflow(bind=[your_function]).launch(). Узлы соединяются перетаскиванием между типизированными портами на холсте; оператором может быть своя Python-функция, модель на Hugging Face Inference Providers, другой Gradio Space или строка из датасета на Hub. Любое из демо можно открыть и продублировать кнопкой Duplicate, чтобы перекроить под свою задачу. Каждый выход графа автоматически становится REST-эндпоинтом, который вызывается из Python через gradio_client или обычным curl. Вычисления, требующие GPU, можно выполнять прямо внутри Space через декоратор @spaces.GPU, который выделяет ресурс ZeroGPU на время вызова и освобождает его после.
Можно ли доверять
Пост опубликован в официальном блоге Hugging Face, а все приведённые примеры, живые демо-Spaces, которые можно открыть, запустить и продублировать самому; код-примеры (curl, gradio_client) рабочие и воспроизводимые. При этом в тексте не указаны ни дата релиза или номер версии gr.Workflow, ни конкретный автор поста.
Риски и подводные камни
В источнике нет информации о стоимости: вызовы через Hugging Face Inference Providers и обращения к Gradio Spaces могут тарифицироваться, но условия и цены в посте не раскрыты. Нет и сравнения gr.Workflow с другими инструментами построения ИИ-пайплайнов, так что по одному этому материалу нельзя судить, чем он превосходит альтернативы или уступает им.