ComfyUI · Искусственный интеллект · Разработка API · Веб-приложения · Автоматизация · Flux.217 октября в 20:32 · 5 мин

ComfyUI как API: Создание веб-интерфейса для генерации изображений без программирования

Платформа api2app позволяет превратить сложный визуальный редактор ComfyUI в удобную веб-службу, доступную через браузер. Автор демонстрирует пошаговый процесс настройки локального и глобального доступа, создания конфигураций для отправки запросов и отображения результатов в реальном времени, минимизируя необходимость в написании кода.

# Комбайн из двух инструментов: как соединить ComfyUI и api2app для создания удобных интерфейсов

Генерация изображений с помощью нейросетей часто требует глубокого понимания технических нюансов. Инструменты вроде ComfyUI предлагают невероятную гибкость за счет визуальных рабочих процессов (Workflows), но их нативный интерфейс сложен для новичков. Решением может стать использование специализированных платформ, позволяющих превращать API в полноценные веб-приложения. В этом материале мы разберем практический кейс использования сервиса api2app в связке с ComfyUI.

Подготовка рабочего процесса и локальный запуск

В основе всего лежит подготовленный рабочий процесс ComfyUI. Для примера используется шаблон генерации изображений по тексту с моделью Flux.2 [Klein] 4B. Чтобы передать этот процесс в виде услуги, необходимо экспортировать его в формате JSON. Содержимое файла копируется и сохраняется в буфере обмена.

Перед публикацией важно протестировать подключение локально. ComfyUI имеет встроенный режим API, но для работы через api2app требуется разрешить кросс-доменные запросы. Это делается через параметр запуска скрипта Python с флагом --enable-cors-header, указывающим на адрес будущего сервиса.

В интерфейсе api2app создаются новые конфигурации. Первая из них отвечает за отправку команд. Выбирается метод POST, и в поле для «сырых данных» вставляется ранее скопированный JSON-описание рабочего процесса. Адрес запроса указывает на локальный порт ComfyUI. После тестирования система возвращает ID задачи, подтверждающий, что запрос принят.

Технические детали безопасности и прокси

Хотя локальное тестирование возможно со стандартным режимом, для доступа извне необходима защита от атак типа CORS. Рекомендуется установить отдельный пакет comfy-api-proxy. Он перехватывает запросы, добавляет ключи авторизации и решает проблемы с доменами.

После установки прокси адрес меняется, а вместо поля prompt в теле запроса теперь требуется указывать ключ workflow. Дополнительно в заголовок HTTP-запроса необходимо добавить Authorization с уникальным токеном. Это критически важно для безопасности: без такого механизма любой пользователь мог бы запускать тяжелые генерации на вашем оборудовании без ограничений.

Архитектура взаимодействия: от отправки до получения результата

Создание функционального приложения требует не только одной точки входа, но и цепочки последующих действий. В системе api2app создаются три типа конфигураций API, связывающих друг с другом различные этапы обработки данных.

1. Отправка задачи (POST): Как описано выше, эта конфигурация принимает текстовый промпт пользователя и запускает генерацию в ComfyUI. 2. Мониторинг статуса (GET): Поскольку генерация занимает время (обычно около 35 секунд), нужно отслеживать её прогресс. Создается конфигурация с методом GET, которая отправляет запрос на конкретный ID задачи. Ответ сервера содержит статус: queued (в очереди), running (работает), succeeded (успешно) или error (ошибка). 3. Получение файла (GET): После успешного завершения генерации система возвращает URL-адрес и уникальный идентификатор (asset_id) самого изображения. Отдельная конфигурация API используется для прямого скачивания файла по этому адресу.

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

Сборка интерфейса и автоматизация логики

Самое интересное происходит при создании визуальной части приложения. Через простой конструктор drag-and-drop добавляются элементы: текстовая область для ввода идеи, кнопка запуска, индикатор прогресса и блок для отображения картинки.

Магия автоматизации заключается в связывании действий (Actions) элементов интерфейса с созданными ранее конфигурациями API. * При нажатии кнопки «Создать изображение» система берет текст из поля ввода, формирует JSON запрос и отправляет его на сервер генерации. * В ответ приходит ID задачи. Это значение автоматически подставляется в скрытое поле приложения. * Триггер отправляет фоновый запрос на проверку статуса. Пользователь видит заполняющуюся шкалу загрузки, которая обновляется каждые 10 секунд. * Как только статус меняется на succeeded, скрытый скрипт активирует финальную конфигурацию для скачивания изображения.

Это позволяет создать полноценную кнопку «Генерировать», которая не требует от пользователя знания о том, как работают сети, JSON или токены авторизации. Вся логика инкапсулирована внутри настроек приложения.

Публикация и доступ из глобальной сети

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

Процесс выглядит так: сервис получает доступ к локальному порту (например, 8189) и выдает временный публичный HTTPS-адрес. Все предыдущие конфигурации API обновляются, и в них подменяется локальный IP (127.0.0.1) на полученный внешний адрес.

Для безопасности рекомендуется переключить режим работы API на «Сервер» внутри интерфейса api2app. Это скрывает реальный конечный адрес запросов от пользователей и позволяет настроить лимиты на количество запросов с одного IP-адреса, предотвращая злоупотребление ресурсами.

Заключение

Сочетание мощного API ComfyUI и простоты конструктора api2app позволяет быстро прототипировать специализированные веб-сервисы. Это идеальное решение для создания утилит для дизайнеров, инструментов автоматизации или даже простых чат-ботов с генерацией изображений, не требующих глубоких знаний программирования. Подход показывает, как сложные технологии становятся доступными благодаря правильному интерфейсу.

*Примечание редактора: В данном примере использована модель Flux.2 и пакет comfy-api-proxy для обеспечения безопасности при работе с внешними запросами.*

Первоисточники

Habr AI ↗
← Вернуться в эфир