n8n
Używaj modeli obrazu, wideo, dźwięku i czatu SpicyAPI w przepływach n8n. Zainstaluj węzeł społeczności, zaimportuj szablony HTTP Request albo skieruj poświadczenie OpenAI w n8n na SpicyAPI dla węzłów AI Agent.
n8n to narzędzie do automatyzacji przepływów pracy. SpicyAPI daje mu modele obrazu, wideo, dźwięku i czatu za jednym API i jednym przedpłaconym saldem. Są trzy sposoby ich podłączenia i można je mieszać w jednym przepływie:
| Chcesz… | Użyj | Działa na |
|---|---|---|
| Generować obrazy, wideo i dźwięk gotowym węzłem | Węzła społeczności SpicyAPI | Self-hosted n8n |
| Generować media na n8n Cloud albo bez instalowania czegokolwiek | Szablonów HTTP Request | Self-hosted n8n i n8n Cloud |
| Używać modeli czatu w AI Agent, Basic LLM Chain i innych węzłach AI | Wbudowanego poświadczenia OpenAI z nowym Base URL | Self-hosted n8n i n8n Cloud |
Wszystkie trzy korzystają z tego samego konta, klucza, modeli i cen. Przy generowaniu multimediów węzeł i szablony HTTP Request sprawdzają cenę przed wysłaniem żądania. Ponowne wysłanie tego samego przyjętego żądania multimedialnego z oryginalnym Idempotency-Key zwraca istniejące zadanie.
Na początek skorzystaj z przewodnika po obrazach NSFW w n8n: wybór modelu, edycja z referencją, pierwszy portret i przykładowe koszty. Poniższe kroki pozwalają połączyć workflow z Twoją instancją n8n.
W skrócie
- Utwórz klucz API w konsoli. Nadaj mu dzienny limit wydatków.
- Self-hosted: w n8n otwórz Settings > Community Nodes > Install, wpisz
@spicyapi/n8n-nodes-spicyapi, a potem dodaj poświadczenie SpicyAPI (spicyapi.ai) API. - n8n Cloud: zaimportuj szablon z folderu przykładów węzła i nadaj jego węzłom HTTP Request poświadczenie Bearer Auth.
- Czat w węzłach AI: utwórz poświadczenie OpenAI z Base URL
https://api.spicyapi.ai/v1i swoim kluczem SpicyAPI.
Zanim zaczniesz
- Klucz API. Utworzysz go w konsoli; zaczyna się od
sk-spicy-. Jeśli nie masz jeszcze konta, zobacz Przygotuj konto. - Saldo. Przed pierwszym generowaniem dodaj środki w sekcji Billing konsoli. Workflow n8n, Studio i API korzystają z tego samego salda konta. Zobacz Rozliczenia, aby poznać sposób rozliczania opłat.
- Jeden klucz na automatyzację. Przepływy mogą działać znacznie częściej, niż człowiek klika. Utwórz osobny klucz dla n8n i ustaw na nim dzienny albo miesięczny limit wydatków, aby błąd w pętli miał pułap. Zobacz Uwierzytelnianie.
- n8n ma dostęp do
api.spicyapi.ai. Wywołania wykonuje serwer n8n, a nie twoja przeglądarka.
Opcja 1: węzeł społeczności SpicyAPI
Węzeł ma otwarty kod (MIT) na github.com/spicyapi-ai/n8n-nodes-spicyapi i jest opublikowany w npm jako @spicyapi/n8n-nodes-spicyapi. Nie ma zależności uruchomieniowych i łączy się wyłącznie z api.spicyapi.ai.
Tylko self-hosted n8n
n8n Cloud może instalować tylko węzły społeczności zweryfikowane przez n8n, a ten nie jest zweryfikowany. Na n8n Cloud użyj szablonów HTTP Request opisanych niżej. Wywołują to samo API.
Inne pakiety npm mają podobne nazwy, ale należą do niepowiązanych usług. Ten to pakiet o nazwie @spicyapi/n8n-nodes-spicyapi, a jego poświadczenie nazywa się SpicyAPI (spicyapi.ai) API.
Instalacja
Zainstaluj pakiet
W n8n otwórz Settings > Community Nodes, wybierz Install, wpisz @spicyapi/n8n-nodes-spicyapi, zaznacz pole potwierdzające instalację niezweryfikowanego kodu i zatwierdź. Musisz być właścicielem instancji albo administratorem.
W trybie kolejki albo jeśli zarządzasz węzłami ręcznie, uruchom to w folderze danych n8n i zrestartuj n8n:
cd ~/.n8n/nodes
npm install @spicyapi/n8n-nodes-spicyapiOpcje obsługiwane przez twoją konfigurację opisuje przewodnik po węzłach społeczności n8n.
Dodaj poświadczenie
Utwórz poświadczenie SpicyAPI (spicyapi.ai) API:
| Pole | Wartość |
|---|---|
| API Key | Twój klucz, zaczynający się od sk-spicy- |
| Base URL | Zostaw https://api.spicyapi.ai bez zmian |
Zapisanie poświadczenia sprawdza klucz na podstawie salda twojego konta.
Dodaj węzeł do przepływu
Wyszukaj SpicyAPI w panelu węzłów, wybierz zasób i operację, a potem poświadczenie.
Operacje
| Zasób | Operacja | Co robi |
|---|---|---|
| Image | Generate | Tekst na obraz, edycja obrazu, powiększanie, usuwanie tła i inne modele obrazu |
| Video | Generate | Tekst na wideo, obraz na wideo i inne modele wideo |
| Audio | Generate | Zamiana tekstu na mowę, muzyka, transkrypcja i inne modele dźwięku |
| Task | Get | Odczytuje zadanie po identyfikatorze, opcjonalnie czeka na nie i pobiera jego pliki |
| File | Upload | Przesyła plik binarny i zwraca URI spicy:// do użycia jako dane wejściowe modelu |
| Model | Get Many | Katalog modeli z cenami, filtrowany według modalności i słowa kluczowego |
| Model | Get | Jeden model ze schematem wejścia i przykładami |
| Model | Get Quote | Dokładna cena żądania, bez jego uruchamiania |
| Account | Get Balance | Saldo dostępne, zablokowane i łączne w dolarach amerykańskich |
| Chat | Message a Model | Jedno uzupełnienie czatu z modelu tekstowego |
Generowanie obrazów, wideo i dźwięku
Trzy operacje Generate mają te same pola:
- Model. Wybierz z listy, która pokazuje modele dla wybranego zasobu wraz z ceną wyjściową, albo wpisz identyfikator modelu ręcznie. Każdy model i jego parametry są wymienione na spicyapi.ai/models.
- Prompt. Główne wejście tekstowe modelu. W modelach mowy to tekst do wypowiedzenia. Zostaw puste dla modeli, które nie mają promptu, takich jak powiększacze.
- Media Inputs. Obrazy, wideo lub dźwięk, które model czyta. Wybierz pole (lista pokazuje pliki wejściowe wybranego modelu), a potem użyj pola binarnego z poprzedniego węzła albo adresu URL. Pliki binarne są przesyłane do SpicyAPI automatycznie. Dodaj kilka wejść dla tego samego pola, aby wypełnić pola listowe, takie jak obrazy referencyjne.
- Model Parameters. Formularz wygenerowany ze schematu wybranego modelu: proporcje obrazu, rozdzielczość, czas trwania, seed i tak dalej. Pola, które zostawisz puste, nie są wysyłane, więc model użyje własnej wartości domyślnej.
- Additional Parameters (JSON). Wszelkie inne pola wejściowe jako obiekt JSON. Zastępują pola powyżej.
Wynik zawiera rekord zadania (taskId, state, cost, settled, output). Przy włączonym Download Output, co jest wartością domyślną, pliki są też dołączane jako dane binarne w data, data_1 i tak dalej. Linki w output.assets[].url wygasają po około 20 minutach; kopie binarne nie.
Duże wideo są trzymane w pamięci, jeśli n8n nie przechowuje danych binarnych na dysku. Na self-hosted n8n ustaw N8N_DEFAULT_BINARY_DATA_MODE=filesystem, gdy pracujesz z wideo.
Kontrola kosztów i ponowienia
- Każdy element jest najpierw wyceniany. Węzeł prosi o wycenę. Jeśli wycena przekracza Max Cost per Item (USD), domyślnie $2, zatrzymuje się z błędem, zanim cokolwiek zostanie utworzone, i nic nie jest pobierane. Ustaw limit na 0, aby go usunąć.
- Zadanie jest tworzone z wycenioną ceną. Jeśli cena zmieni się między wyceną a wysłaniem, węzeł wycenia ponownie, sprawdza limit jeszcze raz i wysyła ponownie.
- Ponowienia nie pobierają opłaty dwa razy. Zobacz Limity kosztów i ponowienia.
Długo trwające zadania
Opcje i to, kiedy której użyć, opisuje sekcja Długo trwające zadania wideo.
Opcja 2: szablony HTTP Request
Dwa przepływy do zaimportowania używają wyłącznie wbudowanych węzłów n8n, więc działają na self-hosted n8n i na n8n Cloud, bez węzła społeczności. Znajdują się w folderze przykładów w repozytorium węzła.
| Plik | Co robi |
|---|---|
http-request-image.json | Pobiera wycenę, zatrzymuje się, jeśli przekracza limit ceny, tworzy zadanie, odpytuje do zakończenia i pobiera obraz jako plik binarny |
http-request-chat.json | Jedno uzupełnienie czatu przez endpoint zgodny z OpenAI |
Zaimportuj przepływ
Pobierz plik .json. W n8n wybierz Workflow menu > Import from File.
Utwórz poświadczenie Bearer Auth
Utwórz poświadczenie Bearer Auth, wklej swój klucz SpicyAPI jako token i wybierz je w każdym węźle HTTP Request, który wywołuje api.spicyapi.ai. Szablon obrazu ma ich cztery.
Edytuj ustawienia i uruchom
Otwórz węzeł Settings. W szablonie obrazu możesz zmienić model, prompt, proporcje obrazu i maksymalną cenę w dolarach amerykańskich (maxCostUsd). Zastąp model identyfikatorem z katalogu modeli, a potem uruchom przepływ.
Jak zbudowany jest szablon obrazu
Te same kroki działają dla każdego modelu medialnego, więc możesz skopiować ten wzorzec do własnego przepływu.
| Krok | Węzeł | Żądanie |
|---|---|---|
| 1 | HTTP Request | POST https://api.spicyapi.ai/api/v1/jobs/quote z model i input zwraca quoteId i estimatedCost |
| 2 | If | Zatrzymuje się z błędem, gdy wycena przekracza twój limit. Nic jeszcze nie zostało pobrane |
| 3 | HTTP Request | POST https://api.spicyapi.ai/api/v1/jobs/createTask z quoteId, expectedCost i nagłówkiem Idempotency-Key. Szablon dodaje ?wait=50, aby szybkie modele obrazu odpowiadały w tym samym żądaniu |
| 4 | If, Wait, HTTP Request | Jeśli zadanie nadal ma stan queued albo running, poczekaj 5 sekund i wywołaj GET https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=…, a potem sprawdź ponownie |
| 5 | HTTP Request | Pobiera output.assets[0].url jako plik |
Kształty żądań i odpowiedzi opisują Zadania asynchroniczne, Wyceny i zgodność protokołów i Media. Pliki, które model czyta, takie jak obraz początkowy, mogą być publicznym adresem URL albo przesłanym plikiem spicy://.
Opcja 3: modele czatu w AI Agent i innych węzłach AI
Endpoint czatu SpicyAPI jest zgodny z OpenAI, więc mogą go używać własne węzły OpenAI w n8n. Nie potrzebujesz do tego węzła społeczności i działa to na n8n Cloud.
Utwórz poświadczenie OpenAI
W n8n utwórz nowe poświadczenie OpenAI. Wklej swój klucz SpicyAPI jako API Key i ustaw Base URL na:
https://api.spicyapi.ai/v1Wybierz model czatu
Dodaj OpenAI Chat Model do swojego AI Agent albo Basic LLM Chain i wybierz poświadczenie. Wybierz model, którego identyfikator kończy się na /chat (na tej stronie zapisany jako MODEL_ID_FROM_CATALOG: skopiuj prawdziwy identyfikator z aktualnego katalogu (GET /api/v1/models)). Pełna lista jest pod adresem GET https://api.spicyapi.ai/v1/models?modality=text.
Warto wiedzieć:
- Lista modeli zawiera modele obrazu i wideo. Przy niestandardowym Base URL n8n pokazuje wszystko, co zwraca
/v1/models, a lista SpicyAPI obejmuje wszystkie jego modele. Wybierz taki, który kończy się na/chat, albo wpisz identyfikator w trybie wyrażenia. Modele obrazu i wideo nie są modelami czatu i w agencie zawiodą. - Use Responses API. Nowsze wersje węzła OpenAI Chat Model mogą wysyłać żądania do
/v1/responseszamiast/v1/chat/completions. SpicyAPI obsługuje/v1/responses, ale nieprevious_response_id. Jeśli żądanie agenta kończy się błędem przy włączonym Responses API, wyłącz Use Responses API w węźle. - Ustawienia próbkowania. Jeśli ustawisz opcję, której model nie deklaruje, taką jak
temperaturew modelu z rozumowaniem, SpicyAPI ją ignoruje zamiast zgłosić błąd i wymienia zignorowane nazwy w nagłówku odpowiedziX-Spicy-Ignored-Params; wartość spoza zakresu modelu jest zmieniana na najbliższą dozwoloną i wymieniana wX-Spicy-Adjusted-Params. Inne niezadeklarowane pola nadal zwracają400. - Narzędzia i wyjście JSON zależą od modelu. Sprawdź
supported_parametersmodelu w/v1/models. - Modele z rozumowaniem wliczają tokeny rozumowania do
max_tokens. Przy bardzo małej wartości, na przykład 20, model z rozumowaniem może zużyć cały budżet na myślenie i nie zwrócić tekstu (upstream_failed: „the output budget was spent on reasoning”). Zwiększmax_tokensalbo obniżreasoning_effort. Wartościreasoning_effortróżnią się zależnie od modelu. - Streaming i koszt. Czat jest rozliczany według tokenów po wywołaniu. Szczegóły są na stronie Tekst i streaming, a przykłady żądań w Chat recipes.
Limity kosztów i ponowienia
Limity wydatków
- Użyj osobnego klucza dla n8n z dziennym albo miesięcznym limitem wydatków w konsoli oraz listą dozwolonych modeli, jeśli przepływ potrzebuje tylko kilku. Gdy limit zostanie osiągnięty, wywołanie kończy się błędem
40202i nic za nie nie jest pobierane. - Dla modeli medialnych najpierw wycenia się żądanie. Węzeł robi to za ciebie; szablony robią to węzłami Get Quote i If. Wycena to dokładna cena tego żądania, łącznie z dodatkami, takimi jak opłaty za każdy obraz referencyjny, więc kontrola ceny oparta na wycenie jest wiarygodna, a oparta na tabeli katalogu nie.
- Zwykłe niepowodzenia i wygasłe zadania zwalniają całą rezerwację. Niektóre odmowy treści są płatne wyłącznie wtedy, gdy strona modelu mówi o tym wprost. Ostateczną opłatę sprawdzisz w
settledicost; zobacz Rozliczenia.
Dlaczego ponowienie nie pobiera opłaty dwa razy
Każde wywołanie tworzące zadanie niesie Idempotency-Key. Jeśli ten sam klucz dotrze ponownie z tym samym żądaniem, SpicyAPI zwraca zadanie, które już utworzyło, zamiast tworzyć drugie, więc nie ma drugiej blokady ani opłaty. Ma to znaczenie w n8n, bo żądanie może zostać wysłane dwa razy bez twojego udziału: przez Retry On Fail na węźle albo przez przekroczenie czasu, gdy pierwsze żądanie faktycznie przeszło.
- Węzeł społeczności buduje klucz z wykonania, węzła, elementu i jego wejścia. Ponowienie węzła używa tego samego klucza. Nowe wykonanie, zmienione wejście albo kolejny przebieg pętli to nowa praca i dostaje nowy klucz.
- Szablony budują go z identyfikatora wykonania i indeksu elementu, na przykład
n8n-<execution id>-<item index>. Jeśli kopiujesz ten wzorzec do pętli, dodaj do klucza licznik pętli, bo inaczej każdy przebieg zwróci zadanie z pierwszego przebiegu. - Nie używaj wartości losowej, która zmienia się przy każdej próbie, takiej jak
$now: sprawia, że każde ponowienie wygląda jak nowa praca.
Więcej w Idempotentność.
Długo trwające zadania wideo
Modele obrazu i dźwięku zwykle kończą w jednym żądaniu. Wideo może trwać minuty. Masz trzy sposoby, by sobie z tym poradzić, od najprostszego do najlżejszego dla n8n:
| Podejście | Jak | Kompromis |
|---|---|---|
| Czekaj wewnątrz węzła (domyślnie) | Węzeł społeczności odpytuje ze wzrastającym opóźnieniem, aż zadanie się zakończy albo minie Max Wait Time | Proste, ale wykonanie pozostaje otwarte, gdy wideo jest renderowane |
| Wyślij, potem poczekaj i sprawdź | Wyłącz Wait for Completion, dodaj węzeł Wait, potem Task > Get. Szablony robią to samo węzłami Wait, Get Task i If w pętli | Jedno miejsce wykonania jest zajęte tylko na krótkie wywołania |
| Callback | Ustaw Callback URL na {{ $execution.resumeUrl }} i dodaj po nim węzeł Wait ustawiony na wznowienie po wywołaniu webhooka | n8n musi być osiągalne przez publiczny HTTPS. Gdy wywołanie nadejdzie, odczytaj zadanie przez Task > Get i nie ufaj treści callbacku |
Jeśli węzeł przestanie czekać, zadanie nadal działa w SpicyAPI i jeśli się powiedzie, jest płatne. Pobierz je później przez Task > Get; nie wysyłaj go ponownie. Znajdziesz je też w sekcji Logs w konsoli.
Wyniki są przechowywane przez ograniczony czas, a linki do pobrania działają około 20 minut. Jeśli potrzebujesz ich na dłużej, zapisz pliki w przepływie, na przykład w magazynie w chmurze. Zobacz Przechowywanie i usuwanie danych.
Rozwiązywanie problemów
| Co widzisz | Co zrobić |
|---|---|
Test poświadczenia kończy się niepowodzeniem albo 401 | Skopiuj klucz ponownie z konsoli. Unieważniony klucz przestaje działać natychmiast. W poświadczeniu OpenAI sprawdź, czy Base URL kończy się na /v1. |
SpicyAPI nie pojawia się w panelu węzłów | Prawdopodobnie jesteś na n8n Cloud albo n8n nie zostało zrestartowane po ręcznej instalacji. Cloud nie może instalować niezweryfikowanych węzłów; użyj szablonów. |
| W Community Nodes brakuje przycisku Install | Pakiety społeczności są wyłączone albo nie jesteś właścicielem ani administratorem. Zapytaj osobę, która prowadzi instancję, albo zainstaluj ręcznie w ~/.n8n/nodes. |
40201 | Za małe saldo. Doładuj konto w konsoli i uruchom ponownie. Ponowienie z tym samym kluczem jest bezpieczne. |
40202 | Klucz osiągnął dzienny, miesięczny albo całkowity limit wydatków. Zwiększ limit albo poczekaj, aż się odnowi. |
40310 | Adres e-mail twojego konta nie jest zweryfikowany. Otwórz link z wiadomości rejestracyjnej. |
40004 | Żadne wdrożenie nie obsługuje tej kombinacji opcji. Zmień opcję wskazaną w komunikacie. |
40901 | Wycena już nie pasuje, zwykle dlatego, że wygasła (wyceny ważne są 5 minut). Wyceń ponownie i wyślij ponownie z tym samym Idempotency-Key. |
| Błąd, że cena przekracza twój limit | Wycena jest wyższa niż Max Cost per Item albo maxCostUsd. Zwiększ limit albo wybierz tańsze opcje. Nic nie zostało pobrane. |
| Agent zawodzi na modelu | Możliwe, że wybrano model, który nie jest modelem czatu. Użyj identyfikatora kończącego się na /chat. Spróbuj też wyłączyć Use Responses API. |
| Model z rozumowaniem zwraca pustą odpowiedź | Zwiększ max_tokens albo obniż reasoning_effort. |
| Link do pobrania w wyniku później zwraca błąd | Linki wygasają po około 20 minutach. Użyj Task > Get, aby dostać nowy link, albo zachowaj kopię binarną. |
Memory, heap albo restarty przy obsłudze wideo | Dane binarne są domyślnie trzymane w pamięci. Ustaw N8N_DEFAULT_BINARY_DATA_MODE=filesystem. |
| Callback nigdy nie wznawia przepływu | Adres musi być publicznym HTTPS na porcie 443 albo 80, a nie localhost. Sprawdź, czy adres wznowienia wykonania jest tym, który twoje n8n pokazuje publicznie. |
Błędy ze SpicyAPI kończą się request_id albo identyfikatorem zadania. Podaj go wsparciu, a żądanie da się dokładnie odnaleźć. Kody błędów wyjaśnia strona Błędy, a szerszą listę kontrolną znajdziesz w Rozwiązywanie problemów i odzyskiwanie.
Korzystanie z modeli podlega regulaminowi SpicyAPI oraz warunkom edycji n8n, której używasz.
Bot na Telegram i Discord
Uruchom własnego, prywatnego bota, który tworzy obrazy i wideo, animuje zdjęcia i rozmawia z postaciami, które zdefiniujesz, płatnego z salda SpicyAPI, z limitami wydatków sprawdzanymi przed każdą opłatą.
Rozliczenia
Poznaj rozliczenia SpicyAPI w USD: wyceny żądań, rezerwacje środków, ostateczne opłaty, zasady odmów dla modeli, zasilanie konta, limity wydatków i faktury.

