TL;DR: Kenerate AI to kreatywna przestrzeń robocza łącząca możliwości obrazu, wideo, edycji, audio, 3D oraz agentów.
Kenerate AI integruje narzędzia kreatywne w jednym środowisku. Programiści powinni najpierw rozróżnić natywne opcje dostępu, w tym MCP/CLI oraz dostęp do API dla przedsiębiorstw, od oddzielnej integracji CometAPI. Ten przewodnik obejmuje planowanie dostępu i kosztów, konfigurację środowiska, generowanie obrazów, obsługę odpowiedzi, edycję obrazów i asynchroniczne tworzenie wideo. Postępuj zgodnie z przykładami, aby zapisać oryginalny obraz, edytowany wariant i ukończony klip, używając Python 3.10+, klucza CometAPI i wystarczającego salda.
Kluczowe wnioski
- Kenerate AI to usługa kreatywna obsługująca wiele modeli, a nie jeden model bazowy.
- Kenerate oferuje dostęp MCP/CLI oraz wdrożenie API dla przedsiębiorstw; wybierz ścieżkę odpowiednią dla Twojej aplikacji i konta.
- Używaj konkretnych identyfikatorów modeli i parametrów specyficznych dla ścieżki podczas budowania oddzielnej integracji CometAPI.
- Zapisz bajty obrazu po wygenerowaniu; zachowaj ID zadania wideo, aby można było wznowić odpytywanie bez ponownego zgłaszania zadania.
- CometAPI oferuje oddzielną integrację deweloperską dla obsługiwanych modeli obrazu/wideo, z osobnymi poświadczeniami i rozliczeniami.
Czym jest Kenerate AI?
Korzystaj ze studiów Kenerate do interaktywnej twórczości. Programiści mogą też użyć oficjalnych narzędzi MCP/CLI lub skontaktować się z pomocą w sprawie dostępu do API dla przedsiębiorstw. Sekcja dostępu poniżej wyjaśnia te opcje; przykłady Pythona później w tym przewodniku wywołują osobno CometAPI.
Kenerate AI i CometAPI to oddzielne usługi.
Poniższy kod wywołuje bezpośrednio CometAPI. Nie loguje się do Kenerate, nie automatyzuje studia Kenerate ani nie wykorzystuje kredytów Kenerate. Odtwarza wąsko określone zadanie kreatywne przy użyciu obsługiwanego modelu, zamiast rościć sobie prawo do identycznych presetów studia lub wyników.
Oficjalny przykład obrazu produktowego z galerii Kenerate. To ilustracja przypadku użycia; nie jest to wynik poniższego kodu API.
Jak cennik Kenerate AI wpływa na planowanie kosztów API?
Kenerate reklamuje 25 kredytów startowych oraz jednorazowe pakiety kredytów od 15 USD. W FAQ dotyczącym rozliczeń podano, że zakupione kredyty nie wygasają, a generowanie wideo wymaga zakupionego pakietu kredytów. To warunki rozliczeń studia, a nie oferta dostępu do API dla przedsiębiorstw.
CometAPI używa osobnych poświadczeń i rozliczeń. Przed testem lub wsadem sprawdź wybrany model i ustawienia żądania względem jego szacunku kosztów, ustaw limit zadań i przeanalizuj zarejestrowane użycie. Kredyty Kenerate nie determinują kosztu żądań CometAPI.
Jak uzyskać dostęp do Kenerate AI?
Połącz przez MCP lub CLI
Oficjalna strona konfiguracji MCP/CLI Kenerate zapewnia natywną ścieżkę dla programistów. Zdalny serwer MCP to https://mcp.kenerateai.com/mcp. Dodaj serwer w kompatybilnym kliencie i dokończ logowanie do Kenerate tam, gdzie jest to wspierane; postępuj zgodnie z instrukcjami na stronie konfiguracji w celu instalacji i uwierzytelnienia CLI. Te narzędzia używają Twojego konta Kenerate, a nie klucza CometAPI.
Poproś o dostęp do API dla przedsiębiorstw w razie potrzeby
Oficjalne FAQ opisuje też dostęp do API dla partnerów Enterprise poprzez wsparcie. W tej ścieżce poproś o dokumentację punktów końcowych, uwierzytelnianie, obsługiwane operacje, limity i warunki rozliczeń. Onboarding Enterprise nie powinien być przedstawiany jako jedyna natywna opcja integracji.
Jak skonfigurować oddzielny przepływ pracy CometAPI?
Konto i poświadczenia
Utwórz konto CometAPI i wygeneruj klucz, korzystając z instrukcji konfiguracji klucza API. Przechowuj klucz na serwerze lub maszynie deweloperskiej. Poniższe polecenia Bash instalują klienta HTTP i odczytują klucz bez jego echo. Użytkownicy Windows mogą uruchomić je w WSL lub Git Bash.
python -m pip install requests
read -rsp "CometAPI API key: " COMETAPI_KEY
export COMETAPI_KEY
printf '\n'
Małe, konkretne pierwsze żądanie
Użyj jednego promptu i jednego wyniku, zanim dodasz opcjonalne sterowanie. Dla przepływu obrazów programiści mogą uzyskać dostęp do GPT Image 2 API w CometAPI. Przepływ wideo używa Kling Video API w CometAPI z wartością model_name specyficzną dla tej ścieżki z szybkiego startu dla programistów. Etykieta studia nie zastępuje identyfikatora API.
Porównaj przykłady CometAPI
| Szczegół integracji | Generowanie obrazu CometAPI | CometAPI Kling wideo |
|---|---|---|
| Uwierzytelnianie | Bearer COMETAPI_KEY | Bearer COMETAPI_KEY |
| Ścieżka tworzenia | /v1/images/generations | /kling/v1/videos/text2video |
| Wybór modelu | model | model_name |
| Zakończenie | Odpowiedź synchroniczna | Zadanie asynchroniczne; odpytywanie właściwej trasy |
| Wynik | Zdekoduj data[0].b64_json | Pobierz task_result.videos[0].url po sukcesie |
CometAPI dokumentuje osobno żądanie i pola wyjścia obrazu oraz ścieżki zgłaszania i odpytywania wideo. Traktuj poświadczenia, ścieżkę, body i parsowanie wyniku jako kompletną integrację.
Czy można użyć SDK OpenAI z CometAPI?
Tak, dla obsługiwanych tras zgodnych z OpenAI. Przewodnik SDK CometAPI używa klucza CometAPI i bazowego adresu URL https://api.cometapi.com/v1. OpenAI Python SDK obsługuje niestandardowe base_url. Zainstaluj SDK osobno, jeśli tego chcesz; działające skrypty obrazu i wideo poniżej używają requests.
python -m pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["COMETAPI_KEY"],
base_url="https://api.cometapi.com/v1",
)
Client configuration only: no generation request is submitted here.
Zgodność dotyczy udokumentowanego punktu końcowego, pól i kształtu odpowiedzi. Nie czyni każdej trasy dostawcy zamienną. Szybki start dla obrazu wspiera client.images.generate; poniższy przykład Kling używa specyficznej dla dostawcy trasy /kling/v1/videos/text2video i kontraktu zadania. Postępuj zgodnie z pasującym szybkim startem [obrazu](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) lub [Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api), zamiast podstawiać ogólne wywołanie wideo SDK.
## Jak wygenerować i zapisać obraz w CometAPI?
### Wybierz ustawienia obrazu
Do pierwszego testu obrazu użyj gpt-image-2, size="1024x1024", quality="low" i output_format="jpeg". Zapisz wynik z pasującym rozszerzeniem pliku. Opisz jasno produkt, tło i oświetlenie. Ta trasa obrazu używa pola model i zwraca bajty obrazu w data[0].b64_json.
### Wygeneruj i zapisz obraz
CometAPI dokumentuje generowanie obrazów z [gpt-image-2](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) i wyjściem base64. Ten przykład wysyła żądanie synchroniczne i zapisuje zwrócone bajty jako JPEG. Zapisz go jako generate_image.py i uruchom python generate_image.py po ustawieniu zmiennej środowiskowej.
import base64
import os
from pathlib import Path
import requests
response = requests.post(
"https://api.cometapi.com/v1/images/generations",
headers={"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"},
json={
"model": "gpt-image-2",
"prompt": "A ceramic cup on marble, realistic product lighting",
"quality": "low",
"size": "1024x1024",
"output_format": "jpeg",
},
timeout=(10, 180),
)
response.raise_for_status()
payload = response.json()
items = payload.get("data", [])
if not items or not items[0].get("b64_json"):
raise RuntimeError("No image bytes returned; inspect the response schema.")
image_bytes = base64.b64decode(items[0]["b64_json"], validate=True)
if not image_bytes:
raise RuntimeError("The returned image is empty.")
output = Path("product-image.jpeg")
output.write_bytes(image_bytes)
print(f"Saved {output} ({len(image_bytes)} bytes)")
### Sprawdź zapisany obraz
Najpierw potwierdź, że `product-image.jpeg` istnieje i otwiera się w przeglądarce obrazów. Następnie sprawdź, czy jego temat, kompozycja i szczegóły produktu odpowiadają promptowi. Zbadaj temat i kompozycję, zanim zmienisz prompt. Status HTTP 200 potwierdza powodzenie żądania, ale nadal musisz zweryfikować zwrócone dane i obejrzeć obraz. Jeśli odpowiedź zawiera błąd lub inny schemat, sprawdź go przed zmianą dekodera; nie zapisuj tekstu JSON z rozszerzeniem obrazu.
Zachowaj oryginalny obraz bez zmian na potrzeby późniejszych edycji. Dopasuj rozszerzenie nazwy pliku do żądanego output_format i wizualnie sprawdź ważny tekst lub szczegóły produktu. Jeśli zmienisz modele, sprawdź ich kontrakt odpowiedzi przed ponownym użyciem tego dekodera base64.
### Edytuj wygenerowany lub lokalny obraz
Prześlij plik źródłowy jako dane multipart. Podaj żądaną zmianę i szczegóły do zachowania; zachowaj oryginalny plik i zapisuj każdy zatwierdzony wynik pod nową nazwą.
Dla oddzielnego przepływu CometAPI [punkt końcowy image-edit akceptuje przesyłanie multipart](https://apidoc.cometapi.com/api/image/openai/image-editing). Zapisz ten samodzielny skrypt jako edit_image.py obok product-image.jpeg z kroku generowania, a następnie uruchom python edit_image.py. Prompt żąda pojedynczej zmiany koloru kubka, a skrypt zapisuje wynik jako `product-image-edited.jpeg`.
import base64
import os
from pathlib import Path
import requests
source = Path("product-image.jpeg")
with source.open("rb") as image_file:
response = requests.post(
"https://api.cometapi.com/v1/images/edits",
headers={"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"},
files={"image": (source.name, image_file, "image/jpeg")},
data={
"model": "gpt-image-2",
"prompt": "Change only the cup color to matte black. Preserve its shape, background and lighting.",
"quality": "low",
"output_format": "jpeg",
},
timeout=(10, 240),
)
response.raise_for_status()
items = response.json().get("data", [])
if not items or not items[0].get("b64_json"):
raise RuntimeError("No edited image returned; inspect the response.")
edited_bytes = base64.b64decode(items[0]["b64_json"], validate=True)
if not edited_bytes:
raise RuntimeError("The edited image is empty.")
Path("product-image-edited.jpeg").write_bytes(edited_bytes)
print("Saved product-image-edited.jpeg")
#### Użycie lokalnego obrazu referencyjnego
Aby edytować istniejące zdjęcie produktu, ustaw source na ten plik. Ustaw typ MIME przesyłania tak, by odpowiadał rzeczywistemu formatowi, np. image/png dla PNG. Żądany output_format może pozostać jpeg niezależnie od formatu źródłowego. Pozwól requests wygenerować nagłówek Content-Type multipart; ręczne wymuszenie application/json zepsuje przesyłanie pliku.
Obrazy referencyjne pomagają w zachowaniu spójności, ale nie gwarantują dokładnego odwzorowania logo ani geometrii produktu. Zachowaj etap akceptacji przez człowieka dla handlowych deklaracji produktowych.
#### Kontynuowanie edycji
Do kolejnej edycji prześlij zatwierdzony wynik jako następne źródło i napisz kolejną instrukcję. Zachowuj każdą wersję pod inną nazwą pliku. Przed kontynuacją sprawdź zarówno żądaną zmianę, jak i elementy, które powinny pozostać niezmienione.
## Jak zgłosić i pobrać wideo Kling z CometAPI
### Zgłoś zadanie wideo
Szybki start [Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) text-to-video używa asynchronicznego zadania: zgłoś raz, zachowaj ID i odpytywaj pasującą trasę. Poniższy przykład używa `model_name="kling-v3"`, `mode="std"`, `duration="5"` i `sound="off"`. Te wartości dotyczą tej trasy Kling w CometAPI. Opisz jeden wyraźny ruch tematu i zamierzony ruch kamery.
Użyj model_name dla tej trasy specyficznej dla dostawcy i zachowaj mode="std", duration="5" oraz sound="off" w pierwszym teście. Zapisz zwrócone task_id natychmiast. To żądanie text-to-video; obrazy referencyjne wymagają udokumentowanej trasy image-to-video.
Zapisz kod jako generate_video.py. Uruchom python generate_video.py, aby utworzyć zadanie. Po przerwaniu odpytywania uruchom python generate_video.py TASK_ID, używając zapisanego ID, aby wznowić. [Kontrakt pobierania zadania](https://apidoc.cometapi.com/api/video/kling/individual-queries) dokumentuje URL wyniku i obsługuje zarówno kopertę data, jak i bezpośredni obiekt zadania.
### Odpytywaj zadanie i pobierz wynik
Odpowiedź tworzenia wideo dostarcza ID zadania, a nie gotowy plik multimedialny. Zapisz ID wraz z zadaniem, sprawdzaj task_status przy pobieraniu i pobierz wynik dopiero po sukcesie. Poniższy kompletny skrypt wideo obsługuje zgłoszenie, odpytywanie, błąd i pobieranie; tryb wznawiania ponownie używa tego samego zadania.
Pobierz istniejące zadanie za pomocą GET /kling/v1/videos/text2video/{task_id}. Poczekaj na task_status="succeed", zanim odczytasz task_result.videos[0].url; obsłuż "failed" jako błąd. Lokalny limit czasu odpytywania powinien zachować ID zadania, aby pobieranie można było wznowić bez zgłaszania kolejnego generowania.
import json
import os
import sys
import time
from pathlib import Path
import requests
route = "https://api.cometapi.com/kling/v1/videos/text2video"
headers = {"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"}
def read_task(response):
response.raise_for_status()
body = response.json()
if body.get("code") not in (None, 0):
raise RuntimeError(f"API error: {body.get('message', body.get('code'))}")
return body.get("data", body)
if len(sys.argv) > 1:
task_id = sys.argv[1]
else:
created = read_task(requests.post(
route, headers=headers,
json={
"model_name": "kling-v3",
"prompt": "A wristwatch on dark marble. Slow lateral camera motion, soft light, no cuts.",
"mode": "std", "duration": "5", "sound": "off",
}, timeout=(10, 60),
))
task_id = created["task_id"]
Path("video-task-id.txt").write_text(task_id, encoding="utf-8")
print(f"Task ID: {task_id}", flush=True)
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
task = read_task(requests.get(
f"{route}/{task_id}", headers=headers, timeout=(10, 30),
))
state = task["task_status"]
if state == "failed":
raise RuntimeError(task.get("task_status_msg") or "Video task failed")
if state == "succeed":
Path("video-result.json").write_text(json.dumps(task), encoding="utf-8")
asset_url = task["task_result"]["videos"][0]["url"]
with requests.get(asset_url, stream=True, timeout=(10, 120)) as asset:
asset.raise_for_status()
with Path("product-video.mp4").open("wb") as output:
for chunk in asset.iter_content(chunk_size=1024 * 1024):
if chunk:
output.write(chunk)
print("Saved product-video.mp4")
break
time.sleep(5)
else:
raise TimeoutError(f"Polling stopped. Resume with task ID {task_id}.")
### Zakończenie i odzyskiwanie
Otwórz product-video.mp4 i potwierdź, że odtwarza się do końca. Skrypt zapisuje wynik zadania przed pobraniem, więc błąd pobierania nie wymaga generowania kolejnego klipu. Lokalny limit czasu odpytywania zatrzymuje oczekiwanie; nie anuluje zdalnego zadania. Zachowaj ID i wznowij pobieranie. Pobieranie zasobu celowo używa oddzielnego, nieuwierzytelnionego żądania, aby klucz CometAPI nie był wysyłany do hosta mediów.
Przykład wideo używa wejścia tekstowego. Zatwierdzonego obrazu nie można dołączyć przez wymyślenie pola reference_image na tej trasie; image-to-video wymaga udokumentowanego przepływu obrazu wybranego dostawcy.
## Jak rozbudować przepływ pracy CometAPI na potrzeby produkcji?
### Rekordy zadań i wielokrotnego użytku zasoby
Przechowuj każdy prompt, konfigurację, zasób źródłowy, ID zadania i ścieżkę wyjścia w ramach jednego zadania aplikacji. Zachowuj osobno rewizje obrazów, aby użytkownicy mogli wrócić do zatwierdzonej wersji. W przypadku wideo utrwal ID zadania przed opuszczeniem obsługi żądania i pozwól workerowi zarządzać pobieraniem.
### Callbacks i uzgadnianie
Dla asynchronicznego dostarczania wideo postępuj zgodnie z [wytycznymi CometAPI dotyczącymi odpytywania i webhooków](https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation). Dodaj callbacki dopiero po działającym podstawowym odpytywaniu i spraw, by zduplikowane powiadomienia były bezpieczne do przetwarzania. Zachowaj ścieżkę pobierania dla zadań, których callback jest opóźniony lub pominięty.
## Jak obsługiwać błędy w przepływie pracy CometAPI?
Zastosuj [udokumentowane wskazówki dotyczące błędów API i retry](https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy), budując ten przepływ CometAPI. Najpierw odróżnij nieprawidłowe żądanie od tymczasowej awarii transportu. Zachowuj status odpowiedzi, identyfikatory żądań i ID zadań w logach po stronie serwera, wykluczając tajne klucze.
* Błąd uwierzytelnienia: zweryfikuj klucz, dostęp do konta i docelowy host przed ponowną próbą.
* Nieobsługiwany parametr: wróć do najmniejszego udokumentowanego żądania, a następnie dodawaj po jednym polu opcjonalnym.
* Limit szybkości lub tymczasowa awaria odpytywania: poczekaj z ograniczonym backoffem i wznowij zapytanie istniejącego zadania.
* Limit czasu tworzenia: ustal, czy pierwsze żądanie utworzyło zadanie, zanim wyślesz kolejne. Powtórzenie żądania generowania może spowodować dodatkowe koszty.
* Nieudane pobranie wyniku: użyj zachowanego wyniku zadania lub ponownie pobierz istniejące zadanie zamiast rozpoczynać nowe generowanie.
## Zakończenie
Najpierw wybierz usługę i ścieżkę dostępu. Dla Kenerate zacznij od oficjalnej konfiguracji MCP/CLI lub omów z pomocą wymagania dotyczące API dla przedsiębiorstw. Dla oddzielnej implementacji CometAPI skonfiguruj klucz, postępuj zgodnie z trasą obrazu lub Kling, sprawdzaj zapisane wyniki i zachowuj ID zadań wideo na potrzeby odzyskiwania. Dobrym pierwszym kamieniem milowym jest jeden poprawny lokalny obraz, jeden edytowany wariant i jedno odtwarzalne wideo.
## FAQ
### Czy ten przepływ CometAPI może działać całkowicie w przeglądarce?
Przeglądarka może prezentować prompty i postęp, ale publiczny frontend nie powinien zawierać tajnego klucza API. Umieść żądania generowania i śledzenie zadań za własnym backendem, uwierzytelniaj tam użytkownika i zwracaj tylko wynik lub postęp potrzebny interfejsowi. Oddzielna implementacja CometAPI powinna stosować ten sam podział.
### O co zespół powinien poprosić przed onboardingiem enterprise Kenerate AI?
Poproś o natywną dokumentację API i pisemny opis modeli oraz operacji dostępnych dla Twojego konta. Ustal też uwierzytelnianie, limity, rozliczenia, retencję zadań i zakres wsparcia. Demonstracja studia pokazuje zdolności kreatywne, ale nie ustala schematu żądania ani warunków usługi, które otrzyma Twoja aplikacja.
### Czy ten sam prompt Kenerate AI zapewni identyczny wynik API?
Nie polegaj na tym. Najpierw zbieżnie dopasuj dokładną wersję modelu, zasoby wejściowe i ujawnione ustawienia generowania. Studio może dodać domyślne ustawienia lub przetwarzanie, których Twoje żądanie API nie odtworzy. Zachowuj brief i zatwierdzone zasoby referencyjne, a następnie porównuj nowy wynik z faktycznymi wymaganiami dostawy zamiast oczekiwać pikselowo identycznych mediów.
