n8n
Используйте модели SpicyAPI для изображений, видео, звука и чата в рабочих процессах n8n. Установите community-узел, импортируйте шаблоны HTTP Request или направьте учётные данные OpenAI в n8n на SpicyAPI для узлов AI Agent.
n8n — инструмент автоматизации рабочих процессов. SpicyAPI даёт ему модели изображений, видео, звука и чата за одним API и одним предоплаченным балансом. Подключить их можно тремя способами, и в одном рабочем процессе их можно сочетать:
| Вы хотите… | Используйте | Работает в |
|---|---|---|
| Создавать изображения, видео и звук с помощью готового узла | Community-узел SpicyAPI | n8n на собственном сервере |
| Создавать медиа в n8n Cloud или ничего не устанавливая | Шаблоны HTTP Request | n8n на собственном сервере и n8n Cloud |
| Использовать чат-модели в AI Agent, Basic LLM Chain и других AI-узлах | Встроенные учётные данные n8n OpenAI с новым Base URL | n8n на собственном сервере и n8n Cloud |
Во всех трёх случаях используются те же аккаунт, ключ, модели и цены. При генерации медиа узел и шаблоны HTTP Request проверяют цену перед отправкой. Повторная отправка того же принятого медиазапроса с исходным Idempotency-Key возвращает уже созданную задачу.
Для первого процесса с изображениями откройте руководство по NSFW-изображениям в n8n: выбор модели, редактирование по референсу, первый портрет и примеры стоимости. Ниже описано подключение к вашей инсталляции n8n.
Коротко
- Создайте API-ключ в консоли. Задайте ему суточный лимит расходов.
- Собственный сервер: в n8n откройте Settings > Community Nodes > Install, введите
@spicyapi/n8n-nodes-spicyapi, затем добавьте учётные данные SpicyAPI (spicyapi.ai) API. - n8n Cloud: импортируйте шаблон из папки с примерами узла и задайте его узлам HTTP Request учётные данные Bearer Auth.
- Чат в AI-узлах: создайте учётные данные OpenAI с Base URL
https://api.spicyapi.ai/v1и вашим ключом SpicyAPI.
Перед началом
- API-ключ. Создайте его в консоли; он начинается с
sk-spicy-. Если аккаунта ещё нет, см. Подготовка аккаунта. - Баланс. Пополните счёт в разделе Billing консоли перед первой генерацией. Процессы n8n, Studio и API используют общий баланс аккаунта. Порядок расчёта описан в разделе Оплата.
- Один ключ на одну автоматизацию. Рабочие процессы могут запускаться гораздо чаще, чем человек нажимает кнопку. Создайте отдельный ключ для n8n и задайте для него суточный или месячный лимит расходов, чтобы у ошибки в цикле был потолок. См. Аутентификация.
- n8n должен иметь доступ к
api.spicyapi.ai. Вызовы выполняет сервер n8n, а не ваш браузер.
Вариант 1: community-узел SpicyAPI
Узел имеет открытый исходный код (MIT): github.com/spicyapi-ai/n8n-nodes-spicyapi, опубликован в npm как @spicyapi/n8n-nodes-spicyapi. У него нет зависимостей времени выполнения, и он обращается только к api.spicyapi.ai.
Только n8n на собственном сервере
В n8n Cloud можно устанавливать только те community-узлы, которые проверил n8n, а этот не проверен. В n8n Cloud используйте шаблоны HTTP Request ниже. Они обращаются к тому же API.
Другие пакеты npm имеют похожие названия, но относятся к посторонним сервисам. Нужен именно пакет @spicyapi/n8n-nodes-spicyapi, а его учётные данные называются SpicyAPI (spicyapi.ai) API.
Установка
Установите пакет
В n8n откройте Settings > Community Nodes, нажмите Install, введите @spicyapi/n8n-nodes-spicyapi, отметьте флажок, подтверждающий установку непроверенного кода, и подтвердите. Вы должны быть владельцем экземпляра или администратором.
Для queue mode, а также если вы управляете узлами вручную, выполните это в папке данных n8n и перезапустите n8n:
cd ~/.n8n/nodes
npm install @spicyapi/n8n-nodes-spicyapiВарианты, поддерживаемые вашей установкой, см. в руководстве n8n по community-узлам.
Добавьте учётные данные
Создайте учётные данные SpicyAPI (spicyapi.ai) API:
| Поле | Значение |
|---|---|
| API Key | Ваш ключ, начинающийся с sk-spicy- |
| Base URL | Оставьте https://api.spicyapi.ai как есть |
При сохранении учётных данных ключ проверяется по балансу вашего аккаунта.
Добавьте узел в рабочий процесс
Найдите SpicyAPI в панели узлов, выберите ресурс и операцию, затем выберите учётные данные.
Операции
| Ресурс | Операция | Что делает |
|---|---|---|
| Image | Generate | Текст в изображение, редактирование изображений, повышение разрешения, удаление фона и другие модели изображений |
| Video | Generate | Текст в видео, изображение в видео и другие модели видео |
| Audio | Generate | Синтез речи, музыка, транскрибация и другие модели звука |
| Task | Get | Прочитать задачу по ID, при необходимости дождаться её и скачать её файлы |
| File | Upload | Загрузить бинарный файл и получить URI spicy:// для использования в качестве входных данных модели |
| Model | Get Many | Каталог моделей с ценами, с фильтром по модальности и ключевому слову |
| Model | Get | Одна модель с её входной схемой и примерами |
| Model | Get Quote | Точная цена запроса без его запуска |
| Account | Get Balance | Доступный, зарезервированный и общий баланс в долларах США |
| Chat | Message a Model | Один ответ чата от текстовой модели |
Создание изображений, видео и звука
Три операции Generate используют одни и те же поля:
- Model. Выберите из списка, в котором показаны модели выбранного ресурса с начальной ценой, или введите идентификатор модели вручную. Все модели и их параметры перечислены на spicyapi.ai/models.
- Prompt. Основной текстовый ввод модели. Для моделей речи это текст, который нужно произнести. Оставьте пустым для моделей без промпта, например для апскейлеров.
- Media Inputs. Изображения, видео или звук, которые читает модель. Выберите поле (в списке показаны файловые входы выбранной модели), затем используйте бинарное поле из предыдущего узла или URL. Бинарные файлы загружаются в SpicyAPI автоматически. Добавьте несколько входов для одного и того же поля, чтобы заполнять списковые поля, например референсные изображения.
- Model Parameters. Форма, сгенерированная по схеме выбранной модели: соотношение сторон, разрешение, длительность, seed и так далее. Поля, которые вы оставили пустыми, не отправляются, и модель использует своё значение по умолчанию.
- Additional Parameters (JSON). Любые другие входные поля в виде JSON-объекта. Они переопределяют поля выше.
Вывод содержит запись задачи (taskId, state, cost, settled, output). При включённом Download Output (по умолчанию) файлы также прикрепляются как бинарные данные в data, data_1 и так далее. Ссылки в output.assets[].url действуют около 20 минут; бинарные копии не истекают.
Большие видео хранятся в памяти, если n8n не хранит бинарные данные на диске. В n8n на собственном сервере при работе с видео задайте N8N_DEFAULT_BINARY_DATA_MODE=filesystem.
Контроль стоимости и повторные попытки
- Каждый элемент сначала оценивается по цене. Узел запрашивает расчёт. Если он превышает Max Cost per Item (USD) (по умолчанию $2), узел останавливается с ошибкой до создания чего-либо, и ничего не списывается. Задайте лимит 0, чтобы снять его.
- Задача создаётся с рассчитанной ценой. Если цена изменилась между расчётом и отправкой, узел делает расчёт заново, снова проверяет лимит и отправляет повторно.
- Повторные попытки не списывают деньги дважды. См. Лимиты расходов и повторные попытки.
Долгие задачи
Варианты и случаи, когда использовать каждый из них, см. в разделе Долгие видеозадачи.
Вариант 2: шаблоны HTTP Request
Два импортируемых рабочих процесса используют только встроенные узлы n8n, поэтому работают в n8n на собственном сервере и в n8n Cloud без community-узла. Они находятся в папке с примерами репозитория узла.
| Файл | Что делает |
|---|---|
http-request-image.json | Получает расчёт, останавливается, если он выше лимита цены, создаёт задачу, опрашивает до завершения и скачивает изображение как бинарный файл |
http-request-chat.json | Один ответ чата через OpenAI-совместимый эндпоинт |
Импортируйте рабочий процесс
Скачайте файл .json. В n8n выберите Workflow menu > Import from File.
Создайте учётные данные Bearer Auth
Создайте учётные данные Bearer Auth, вставьте свой ключ SpicyAPI как токен и выберите их в каждом узле HTTP Request, который обращается к api.spicyapi.ai. В шаблоне изображений таких узлов четыре.
Измените настройки и запустите
Откройте узел Settings. В шаблоне изображений можно изменить модель, промпт, соотношение сторон и максимальную цену в долларах США (maxCostUsd). Замените модель идентификатором из каталога моделей, затем запустите рабочий процесс.
Как устроен шаблон изображений
Те же шаги подходят для любой медиамодели, поэтому вы можете скопировать этот шаблон в собственный рабочий процесс.
| Шаг | Узел | Запрос |
|---|---|---|
| 1 | HTTP Request | POST https://api.spicyapi.ai/api/v1/jobs/quote с model и input возвращает quoteId и estimatedCost |
| 2 | If | Останавливается с ошибкой, если расчёт выше вашего лимита. Пока ничего не списано |
| 3 | HTTP Request | POST https://api.spicyapi.ai/api/v1/jobs/createTask с quoteId, expectedCost и заголовком Idempotency-Key. Шаблон добавляет ?wait=50, чтобы быстрые модели изображений отвечали в том же запросе |
| 4 | If, Wait, HTTP Request | Если задача всё ещё queued или running, подождите 5 секунд и вызовите GET https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=…, затем проверьте снова |
| 5 | HTTP Request | Скачивает output.assets[0].url как файл |
Форматы запросов и ответов описаны в разделах Tasks, Quotes and compatibility и Media inputs and outputs. Файлы, которые читает модель, например начальное изображение, могут быть публичным URL или загруженным файлом spicy://.
Вариант 3: чат-модели в AI Agent и других AI-узлах
Чат-эндпоинт SpicyAPI совместим с OpenAI, поэтому его могут использовать собственные узлы OpenAI в n8n. Для этого community-узел не нужен, и это работает в n8n Cloud.
Создайте учётные данные OpenAI
В n8n создайте новые учётные данные OpenAI. Вставьте свой ключ SpicyAPI в API Key и задайте Base URL:
https://api.spicyapi.ai/v1Выберите чат-модель
Добавьте OpenAI Chat Model в свой AI Agent или Basic LLM Chain и выберите учётные данные. Выберите модель, идентификатор которой оканчивается на /chat (на этой странице она записана как MODEL_ID_FROM_CATALOG: скопируйте настоящий идентификатор из актуального каталога (GET /api/v1/models)). Полный список находится по адресу GET https://api.spicyapi.ai/v1/models?modality=text.
Что нужно знать:
- В списке моделей есть модели изображений и видео. С пользовательским Base URL n8n показывает всё, что возвращает
/v1/models, а список SpicyAPI охватывает все его модели. Выберите ту, что оканчивается на/chat, или введите ID в режиме выражения. Модели изображений и видео не являются чат-моделями и в агенте будут завершаться ошибкой. - Use Responses API. Последние версии узла OpenAI Chat Model могут отправлять запросы на
/v1/responsesвместо/v1/chat/completions. SpicyAPI поддерживает/v1/responses, но неprevious_response_id. Если запрос агента завершается ошибкой при включённом Responses API, выключите Use Responses API в узле. - Настройки сэмплирования. Если вы зададите параметр, который модель не объявляет, например
temperatureдля модели с рассуждением, SpicyAPI проигнорирует его вместо ошибки и перечислит проигнорированные имена в заголовке ответаX-Spicy-Ignored-Params; значение за пределами диапазона модели заменяется ближайшим допустимым и перечисляется вX-Spicy-Adjusted-Params. Другие необъявленные поля по-прежнему возвращают400. - Инструменты и вывод в JSON зависят от модели. Проверьте
supported_parametersмодели в/v1/models. - Модели с рассуждением считают токены рассуждения в
max_tokens. При очень маленьком значении, например 20, модель с рассуждением может потратить весь бюджет на размышления и не вернуть текст (upstream_failed: «the output budget was spent on reasoning»). Увеличьтеmax_tokensили снизьтеreasoning_effort. Значенияreasoning_effortу разных моделей различаются. - Потоковая передача и стоимость. Чат тарифицируется по токенам после вызова. Подробности на странице Text and streaming, а примеры запросов — в Chat recipes.
Лимиты расходов и повторные попытки
Ограничение расходов
- Используйте отдельный ключ для n8n с суточным или месячным лимитом расходов в консоли и списком разрешённых моделей, если рабочему процессу нужно лишь несколько моделей. Когда лимит достигнут, вызов завершается ошибкой
40202, и за него ничего не списывается. - Для медиамоделей сначала делайте расчёт. Узел делает это за вас; шаблоны делают это узлами Get Quote и If. Расчёт — это точная цена именно этого запроса, включая дополнительные начисления вроде платы за каждое референсное изображение, поэтому проверка цены по расчёту надёжна, а по таблице каталога — нет.
- При обычном сбое или истечении срока задачи весь резерв освобождается. Некоторые отказы по содержимому оплачиваются только тогда, когда это прямо указано на странице модели. Итоговая сумма указана в
settledиcost; см. Оплата.
Почему повторная попытка не списывает деньги дважды
Каждый вызов, создающий задачу, несёт Idempotency-Key. Если тот же ключ приходит снова с тем же запросом, SpicyAPI возвращает уже созданную задачу вместо создания второй, поэтому второго резерва или списания не происходит. В n8n это важно, потому что запрос может быть отправлен дважды без вашего участия: Retry On Fail на узле или тайм-аут, когда первый запрос на самом деле прошёл.
- Community-узел строит ключ из выполнения, узла, элемента и его входных данных. Повторная попытка узла использует тот же ключ. Новое выполнение, изменённые входные данные или другой проход цикла — это новая работа, и ей достаётся новый ключ.
- Шаблоны строят его из ID выполнения и индекса элемента, например
n8n-<execution id>-<item index>. Если вы копируете этот шаблон в цикл, добавьте в ключ счётчик цикла, иначе каждый проход будет возвращать задачу первого прохода. - Не используйте случайное значение, меняющееся при каждой попытке, например
$now: из-за него каждая повторная попытка выглядит как новая работа.
Подробнее в разделе Идемпотентность.
Долгие видеозадачи
Модели изображений и звука обычно завершаются в одном запросе. Видео может занимать минуты. Есть три способа с этим справиться, от самого простого до наименее нагружающего n8n:
| Подход | Как | Компромисс |
|---|---|---|
| Ждать внутри узла (по умолчанию) | Community-узел опрашивает с растущей задержкой, пока задача не завершится или не пройдёт Max Wait Time | Просто, но выполнение остаётся открытым, пока видео создаётся |
| Отправить, затем ждать и проверять | Выключите Wait for Completion, добавьте узел Wait, затем Task > Get. Шаблоны делают то же самое узлами Wait, Get Task и If в цикле | Слот выполнения занят только на короткие вызовы |
| Обратный вызов | Задайте Callback URL как {{ $execution.resumeUrl }} и следуйте за ним узлом Wait, настроенным на возобновление по вызову вебхука | n8n должен быть доступен по публичному HTTPS. Когда вызов придёт, прочитайте задачу через Task > Get и не доверяйте телу обратного вызова |
Если узел перестаёт ждать, задача продолжает выполняться в SpicyAPI и оплачивается, если завершится успешно. Заберите её позже через Task > Get; не отправляйте её заново. Её также можно найти в разделе Logs в консоли.
Результаты хранятся ограниченное время, а ссылки для скачивания действуют около 20 минут. Если файлы нужны дольше, сохраняйте их в рабочем процессе, например в облачном хранилище. См. Хранение и удаление данных.
Устранение неполадок
| Что вы видите | Что делать |
|---|---|
Проверка учётных данных не проходит или 401 | Скопируйте ключ заново из консоли. Отозванный ключ перестаёт работать сразу. С учётными данными OpenAI проверьте, что Base URL оканчивается на /v1. |
SpicyAPI не появляется в панели узлов | Вероятно, вы в n8n Cloud или n8n не перезапускали после ручной установки. Cloud не может устанавливать непроверенные узлы; используйте шаблоны. |
| В Community Nodes нет кнопки Install | Community-пакеты отключены или вы не владелец и не администратор. Обратитесь к тому, кто управляет экземпляром, или установите вручную в ~/.n8n/nodes. |
40201 | Недостаточно средств на балансе. Пополните баланс в консоли и запустите снова. Повторная попытка с тем же ключом безопасна. |
40202 | Ключ достиг суточного, месячного или общего лимита расходов. Увеличьте лимит или дождитесь его обновления. |
40310 | Адрес электронной почты вашего аккаунта не подтверждён. Перейдите по ссылке из письма при регистрации. |
40004 | Нет развёртывания, которое обслуживает такое сочетание параметров. Измените параметр, названный в сообщении. |
40901 | Расчёт больше не совпадает, обычно потому что истёк (расчёты действуют 5 минут). Сделайте расчёт заново и отправьте повторно с тем же Idempotency-Key. |
| Ошибка о том, что цена выше вашего лимита | Расчёт превышает Max Cost per Item или maxCostUsd. Увеличьте лимит или выберите более дешёвые параметры. Ничего не списано. |
| Агент завершается ошибкой на модели | Возможно, вы выбрали модель, которая не является чат-моделью. Используйте идентификатор, оканчивающийся на /chat. Также попробуйте выключить Use Responses API. |
| Модель с рассуждением возвращает пустой ответ | Увеличьте max_tokens или снизьте reasoning_effort. |
| Ссылка для скачивания в выводе позже возвращает ошибку | Ссылки истекают примерно через 20 минут. Получите новую ссылку через Task > Get или сохраняйте бинарную копию. |
Memory, heap или перезапуски при обработке видео | По умолчанию бинарные данные хранятся в памяти. Задайте N8N_DEFAULT_BINARY_DATA_MODE=filesystem. |
| Обратный вызов не возобновляет рабочий процесс | URL должен быть публичным HTTPS на порту 443 или 80, а не localhost. Проверьте, что URL возобновления выполнения совпадает с тем, который ваш n8n показывает публично. |
Ошибки SpicyAPI заканчиваются на request_id или идентификатор задачи. Сообщите его в поддержку, и запрос можно будет найти точно. Коды ошибок описаны в разделе Ошибки и повторы, а более широкий контрольный список — в Troubleshooting.
Использование моделей регулируется условиями SpicyAPI и условиями той редакции n8n, которую вы используете.
Бот для Telegram и Discord
Запустите собственного приватного бота, который создаёт изображения и видео, оживляет картинки и общается с заданными вами персонажами. Оплата с баланса SpicyAPI, лимиты расходов проверяются перед каждым списанием.
Оплата
Оплата SpicyAPI по использованию в USD: расчёт цены, резерв средств, итоговые списания, условия отказов моделей, пополнение, лимиты расходов и счета.

