Sakhanda Wire
NVDA $208.48 -2.91% MSFT $487.31 +0.84% GOOGL $348.06 +0.94% META $559.02 +1.66% AMZN $262.07 +1.33%
← К новостям

Свяжите, запустите, разверните: рабочие процессы ИИ в Gradio

Создавайте что угодно с gr.Workflow
Опубликовано 25 августа 2026 года
Обновить на GitHub
Самые интересные приложения с ИИ — это конвейеры. Вы создаёте изображение, а затем при желании удаляете его фон или превращаете его во что-то новое. Вы пишете сценарий, затем генерируете для него голос или меняете голос, сохраняя сценарий неизменным. Обычно мы связываем эти шаги в Python, а как только что-то начинает выглядеть неправильно, возвращаемся к отладке с помощью print, чтобы выяснить, на каком шаге появилось странное значение.

gr.Workflow, встроенный непосредственно в Gradio, превращает конвейер в интерфейс. Вы описываете свои шаги как граф типизированных узлов, а Gradio предоставляет холст с поддержкой перетаскивания, где каждый узел можно запустить и увидеть каждый промежуточный результат. Этот же граф также является REST API и развёртыванием в Hugging Face Spaces одной командой.

Лучший способ понять идею — увидеть несколько рабочих процессов в действии. Каждое представленное ниже приложение — это работающий Space на Hugging Face, который можно открыть, запустить и дублировать.

Редактирование изображения

Загрузите изображение, введите запрос на редактирование («превратить его в снежный зимний пейзаж», «добавить солнцезащитные очки», «сделать машину красной») и получите отредактированную фотографию. Всё приложение представляет собой один узел, вызывающий Qwen-Image-Edit через провайдеров инференса Hugging Face.

👉 Попробовать конвейер редактирования изображений

Объединяйте настоящие модели в медиастудию

Один граф, три конвейера. Начните с запроса и сгенерируйте изображение с помощью FLUX, затем передайте его в Gradio Space для удаления фона, чтобы превратить его в стикер. Тема превращается в голосовое сопровождение через Gradio Space для синтеза речи, а та же тема становится запоминающимся названием эпизода благодаря вызову LLM.

Это один холст, два вызова моделей через провайдеров инференса Hugging Face и два вызова Gradio Spaces.

Поскольку это рабочий процесс, каждый из трёх результатов также получает собственную конечную точку REST: /sticker, /voiceover и /episode_title. Вы можете вызывать любую из них напрямую из кода, не открывая интерфейс. Рабочий пример см. в разделе «Вызов из кода» ниже.

👉 Попробовать AI Media Studio

Параллельная генерация изображений с разветвлением

Введите одну идею, и она одновременно превратится в набор сгенерированных иллюстраций: базовое изображение от FLUX, две версии этого изображения, переосмысленные ИИ (мягкая акварельная версия и неоновая киберпанк-версия), а также название галереи, написанное LLM.

Каждое изображение генерируется непосредственно из запроса узлом модели с использованием провайдеров инференса, а название создаётся узлом fn, который вызывает LLM. Это паттерн разветвления в действии: одна идея может одновременно поступать на несколько операторов, которые генерируют результаты параллельно.

👉 Попробовать Generative Art Lab

Профилирование датасета Hugging Face

Введите идентификатор датасета Hugging Face, например stanfordnlp/imdb или mteb/tweet_sentiment_extraction, и один входной сигнал разветвится на четыре узла-оператора, которые в реальном времени анализируют датасет с помощью API Datasets Server.

Вы получите обзорную карточку, предварительный просмотр первых строк, статистику по столбцам и график распределения — всё вычисляется независимо и параллельно. Такова сила рабочих процессов!

👉 Попробовать Data Detective

Запуск собственной модели на GPU

До сих пор каждый узел обращался к Hugging Face. Но узел fn — это обычный Python, а значит, он также может запускать модель внутри Space на GPU.

Добавьте декоратор @spaces.GPU к связанной функции, и при запуске узла ZeroGPU выделит GPU для этого вызова, запустит модель и освободит его. Нам не всегда нужно полагаться на провайдеров инференса или существующие Gradio Spaces.

Посмотрите эту демонстрацию, которая анимирует неподвижное изображение с помощью Lightricks/LTX-Video, загруженной через Diffusers и полностью работающей в одном узле. gr.Workflow не нужно знать ничего о вашей конфигурации GPU. Он просто вызывает связанную функцию.

👉 Попробовать ZeroGPU Animator

Как это работает вкратце

Каждый рабочий процесс представляет собой граф с тремя видами узлов: ссылки (ваши входные данные), операторы (шаги, выполняющие работу) и объекты (ваши выходные данные). Оператором может быть ваша собственная функция Python, модель в провайдерах инференса Hugging Face, другой Gradio Space или строка из датасета Hub. Соедините их, перетаскивая связи между типизированными портами, нажмите Run и наблюдайте, как каждый результат появляется на своём месте.

Вызов из кода

Каждый созданный вами рабочий процесс также является API, без каких-либо дополнительных действий. Каждый выходной результат становится конечной точкой REST, названной в соответствии с её меткой, и вы можете вызывать её из Python с помощью клиента Gradio. Вот рабочий пример без токена для демонстрационного Space с несколькими конечными точками — без каких-либо изменений:

from gradio_client import Client

client = Client("ysharma/gr-workflow-multi-endpoint-API")

print(client.predict("hello there friend", api_name="/word_count"))  
print(client.predict(20, api_name="/fahrenheit"))                    

Конечные точки, вызывающие модель или Space, работают с токеном Hugging Face, поэтому передайте его при создании клиента:

from gradio_client import Client, handle_file

client = Client("ysharma/gr-workflow-image-editor", token="hf_...")

edited = client.predict(
    handle_file("dog.jpg"),
    "turn it into a snowy winter scene",
    api_name="/edited_image",
)

Предпочитаете обычный HTTP? До каждой конечной точки также можно добраться с помощью curl:

curl -s https://ysharma-gr-workflow-multi-endpoint-API.hf.space/gradio_api/call/word_count \
  -H "Content-Type: application/json" -d '{"data": ["hello there friend"]}'

Создайте собственный рабочий процесс

Самый быстрый способ начать — открыть любой из представленных выше демо-примеров, нажать Duplicate и начать перестраивать связи. В Python это выглядит настолько просто:

import gradio as gr

def your_function(text: str) -> str:
  pass

gr.Workflow(bind=[your_function]).launch()

Полное руководство, виды операторов, схему JSON и готовые паттерны см. в официальном руководстве по gr.Workflow в документации Gradio.

С помощью gr.Workflow можно даже создать нечто столь же сложное, как AUTOMATIC1111. Следите за нашей следующей публикацией, где мы пошагово разберём процесс создания такого приложения. А пока — небольшой предварительный просмотр 😉👇

Модели, упомянутые в этой статье 4

Spaces, упомянутые в этой статье 6

Сообщество

Загружайте изображения, аудио и видео, перетаскивая их в текстовое поле, вставляя или нажимая здесь.
Нажмите или вставьте сюда, чтобы загрузить изображения

· Зарегистрируйтесь или войдите, чтобы оставить комментарий

Модели, упомянутые в этой статье 4

Spaces, упомянутые в этой статье 6

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием Hugging Face

Читать оригинал на Hugging Face ↗

Текст и изображения принадлежат Hugging Face и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости