TL;DR: Kenerate AI 是一個將圖片、影片、編輯、音訊、3D 與代理功能整合於一體的創意工作空間。
Kenerate AI 將創意工具集中在同一個工作空間。開發者應先區分其原生存取選項(包含 MCP/CLI 與企業級 API 存取)與獨立的 CometAPI 整合。本指南涵蓋存取與成本規劃、環境設定、圖片生成、回應處理、圖片編輯與非同步影片建立。請依範例使用 Python 3.10+、CometAPI 金鑰與足夠的餘額,保存原始圖片、編輯後的變體以及已完成的短片。
關鍵重點
- Kenerate AI 是多模型的創意服務,而非單一基礎模型。
- Kenerate 提供 MCP/CLI 存取與企業級 API 導入;請依你的應用與帳戶選擇合適路徑。
- 建立獨立的 CometAPI 整合時,請使用具體的模型 ID 與路由專屬參數。
- 生成後請保存圖片位元組;保留影片任務 ID,方便中斷後以輪詢方式續查,避免重送工作。
- CometAPI 為支援的圖片/影片模型提供獨立的開發者整合,具有各自的憑證與計費。
什麼是 Kenerate AI?
使用 Kenerate 的工作室進行互動式創作。開發者也可使用其官方 MCP/CLI 工具,或聯繫客服瞭解企業級 API 存取。下方「存取方式」章節將說明這些選項;本指南後半部的 Python 範例則是分別呼叫 CometAPI。
Kenerate AI 與 CometAPI 是彼此獨立的服務。
下方的程式碼直接呼叫 CometAPI。它不會登入 Kenerate、不會自動化 Kenerate 的工作室,也不會消耗 Kenerate 點數。它是以支援的模型重現一個狹義定義的創作任務,而非宣稱與工作室的預設或輸出完全一致。
來自 Kenerate gallery 的官方產品圖片範例。此圖用於說明創意用例;並非下方 API 程式碼的輸出。
Kenerate AI 的定價如何影響 API 成本規劃?
Kenerate 提供 25 個入門點數與自 $15 起的一次性點數包。其 計費常見問題 表示購買的點數不會過期,且影片生成需要購買點數包。這些是工作室的計費條款,並非企業級 API 存取的報價。
CometAPI 使用獨立的憑證與計費。在測試或批次作業前,請依據所選模型與請求設定參考其成本估算,設定工作上限並檢視已記錄的用量。Kenerate 點數不影響 CometAPI 請求的成本。
如何存取 Kenerate AI?
透過 MCP 或 CLI 連線
Kenerate 的官方 MCP/CLI 設定頁 提供原生開發者路徑。其遠端 MCP 伺服器為 https://mcp.kenerateai.com/mcp。請在相容的客戶端加入該伺服器,並在支援的情況下完成 Kenerate 登入;依設定頁指引安裝 CLI 並完成驗證。這些工具使用你的 Kenerate 帳戶,而非 CometAPI 金鑰。
需要時申請企業級 API 存取
官方常見問題 也描述了透過客服為企業合作夥伴提供的 API 存取。對於此路徑,請要求端點文件、驗證方式、支援的操作、配額與計費條款。企業級導入不應被視為唯一的原生整合選項。
如何設定獨立的 CometAPI 工作流程?
帳戶與憑證
建立 CometAPI 帳戶並依API 金鑰設定說明 產生金鑰。將金鑰保存於伺服器或開發機。以下 Bash 指令會安裝 HTTP 用戶端並讀入金鑰而不顯示。Windows 使用者可在 WSL 或 Git Bash 中執行。
python -m pip install requests
read -rsp "CometAPI API key: " COMETAPI_KEY
export COMETAPI_KEY
printf '\n'
小而具體的首個請求
先以一個提示與一個輸出起步,再逐步加入可選控制。對於圖片工作流程,開發者可使用 CometAPI 中的 GPT Image 2 API。影片工作流程則使用 CometAPI 中的 Kling Video API,並採用其開發者快速入門文件中的路由專屬 model_name 值。工作室的標籤不等同於 API 識別符。
比較 CometAPI 範例
| Integration detail | CometAPI image generation | CometAPI Kling video |
|---|---|---|
| Authentication | Bearer COMETAPI_KEY | Bearer COMETAPI_KEY |
| Create path | /v1/images/generations | /kling/v1/videos/text2video |
| Model selector | model | model_name |
| Completion | Synchronous response | Asynchronous task; poll the matching route |
| Output | Decode data[0].b64_json | Download task_result.videos[0].url after success |
CometAPI 對圖片的請求與輸出欄位、以及影片的提交與輪詢路由分別提供了文件。請將憑證、路由、請求本文與結果解析視為一個完整的整合。
能否將 OpenAI SDK 與 CometAPI 搭配使用?
可以,適用於支援的 OpenAI 相容路由。CometAPI 的 SDK 指南 使用 CometAPI 金鑰,基底 URL 為 https://api.cometapi.com/v1. OpenAI Python SDK 支援自訂 base_url。若選擇使用 SDK,請另外安裝;下方可執行的圖片與影片腳本仍使用 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.
相容性僅適用於已文件化的端點、欄位與回應結構;這不代表所有供應商的路由可互換。圖片快速入門支援 client.images.generate;下方的 Kling 範例使用其供應商專屬的 /kling/v1/videos/text2video 路由與任務合約。請依相應的[圖片](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api)或 [Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) 快速入門,而非替換為通用的 SDK 影片呼叫。
## 如何使用 CometAPI 產生並儲存圖片?
### 選擇圖片設定
首次圖片測試請使用 gpt-image-2、size="1024x1024"、quality="low" 與 output_format="jpeg"。以相符的副檔名保存結果。清楚描述產品、背景與打光。此圖片路由使用 model 欄位,並在 data[0].b64_json 中回傳圖片位元組。
### 產生並儲存圖片
CometAPI 對 [gpt-image-2 圖片生成](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) 與 base64 輸出有文件說明。以下範例送出同步請求並將回傳的位元組儲存為 JPEG。將此檔案存為 generate_image.py,在設定環境變數後執行 python generate_image.py。
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)")
### 檢查已保存的圖片
先確認 `product-image.jpeg` 存在並能在圖片檢視器中開啟。接著檢查其主體、構圖與產品細節是否符合提示。先檢視主體與構圖,再決定是否更改提示。HTTP 200 僅代表請求成功,但你仍需驗證回傳資料並檢視圖片。若回應包含錯誤或不同結構,請先檢視後再更改解碼器;不要將 JSON 文字以圖片副檔名保存。
保留原始圖片以供後續編輯。將檔名副檔名與請求的 output_format 保持一致,並以目視方式檢查重要文字或產品細節。若更換模型,請在重用此 base64 解碼器前確認其回應契約。
### 編輯已產生或本機的圖片
以 multipart 形式上傳來源檔。清楚說明欲變更的項目與需保留的細節;保留原始檔並為每個核准結果另存新檔。
對於獨立的 CometAPI 工作流程,[圖片編輯端點接受 multipart 上傳](https://apidoc.cometapi.com/api/image/openai/image-editing)。將此獨立腳本存為 edit_image.py,並與前一步的 product-image.jpeg 放在同一路徑,然後執行 python edit_image.py。此提示只要求變更杯子的顏色,並將結果儲存為 `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")
#### 使用本機參考圖片
若要改為編輯現有的產品照片,請將 source 指向該檔案。上傳的 MIME 類型需與實際格式一致,例如 PNG 應為 image/png。即便來源格式不同,請求的 output_format 仍可使用 jpeg。讓 requests 自動產生 multipart Content-Type 標頭;若手動設為 application/json 將導致檔案上傳失敗。
參考圖片有助於一致性,但不保證能精確保留商標或產品幾何外形。對於商業產品主張,請保留人工審核步驟。
#### 繼續進行編輯
如需再做一次編輯,請以上次核准的輸出作為下一次的來源,並撰寫下一個指示。為每個版本使用不同檔名。繼續前請一併檢視欲變更項目與應保持不變的元素。
## 如何使用 CometAPI 提交並取得 Kling 影片
### 提交影片任務
[Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) 文字轉影片快速入門採用非同步任務:提交一次、保留任務 ID、並以相符路由查詢。下例使用 `model_name="kling-v3"`、`mode="std"`、`duration="5"` 與 `sound="off"`。這些值僅適用於此 CometAPI Kling 路由。請描述一個清楚的主體動作與預期的鏡頭運動。
對此供應商專屬路由,請使用 model_name;首次測試建議保留 mode="std"、duration="5" 與 sound="off"。請立即保存回傳的 task_id。這是文字轉影片請求;使用圖片參考需改用文件所述的 image-to-video 路由。
將程式存為 generate_video.py。執行 python generate_video.py 以建立任務。中斷輪詢後,可使用保存的 ID 執行 python generate_video.py TASK_ID 以恢復。其[任務擷取契約](https://apidoc.cometapi.com/api/video/kling/individual-queries) 文件化了結果 URL,並同時支援外層 data 信封與直接回傳任務物件。
### 輪詢任務並下載結果
影片建立回應會提供任務 ID,而非完成的媒體檔。保存 ID 與工作綁定,擷取時檢查 task_status,僅在成功後下載 task_result.videos[0].url。下方完整腳本處理提交、輪詢、失敗與下載;其續跑模式會重用同一個工作。
以 GET /kling/v1/videos/text2video/{task_id} 擷取既有任務。等待 task_status="succeed" 才讀取 task_result.videos[0].url;若為 "failed" 則視為錯誤。當地端輪詢逾時時,應保留任務 ID,以便稍後恢復擷取而不必再次提交生成。
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}.")
### 完成與復原
開啟 product-video.mp4 並確認能完整播放。此腳本會在下載前保存任務結果,因此即使下載失敗也不需重新生成短片。其本機輪詢時限僅會停止等待,並不會取消遠端任務。請保留該 ID 以便恢復擷取。資產下載刻意使用獨立的未驗證請求,避免將 CometAPI 金鑰送至媒體主機。
此影片範例使用文字輸入。不可在此路由臆造 reference_image 欄位來附加圖片;image-to-video 需使用所選供應商文件化的影像工作流程。
## 如何將 CometAPI 工作流程擴展至生產環境?
### 任務記錄與可重用資產
針對每個應用任務,存放提示、設定、來源資產、任務 ID 與輸出路徑。圖片的版本請分開保存,讓使用者能回到已核准版本。對於影片,請在離開請求處理器前持久化任務 ID,並交由背景工作者負責擷取。
### 回呼與核對
針對非同步影片交付,請遵循 CometAPI 的[輪詢與 webhook 指南](https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation)。在基本輪詢正常後再加入回呼,並確保重複通知可安全處理。保留可擷取既有工作的路徑,以因應延遲或遺失的回呼。
## 在 CometAPI 工作流程中應如何處理錯誤?
依照[文件化的 API 錯誤與重試指引](https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy) 建立此 CometAPI 工作流程。首先區分無效請求與暫時性傳輸失敗。在伺服器端日誌保留回應狀態、請求識別碼與任務 ID,但排除機密金鑰。
* 驗證失敗:在重試前請確認金鑰、帳戶存取與目的主機。
* 不支援參數:回到最小可行且已文件化的請求,然後一次只加入一個可選欄位。
* 速率限制或暫時性輪詢失敗:以邊界退避等待並續查既有任務。
* 建立逾時:在再次提交前判斷第一次請求是否已建立工作。重複生成請求可能產生額外費用。
* 輸出下載失敗:使用已保存的任務結果或再次擷取既有任務,而非重新開始生成。
## 結論
請先選定服務與存取路徑。對於 Kenerate,先從官方 MCP/CLI 設定開始,或與客服討論企業級 API 需求。若採用獨立的 CometAPI 實作,請設定其金鑰,遵循圖片或 Kling 路由,檢視已保存的輸出,並保留影片任務 ID 以利復原。實用的首個里程碑是:一張可用的本機圖片、一個編輯變體,以及一段可播放的影片。
## 常見問題
### 這個 CometAPI 工作流程能完全在瀏覽器中執行嗎?
瀏覽器可呈現提示與進度,但公共前端不應包含機密 API 金鑰。請將生成請求與任務追蹤放在你的後端,於後端對使用者驗證,並僅回傳介面所需的結果或進度。獨立的 CometAPI 實作同樣應遵循此分離策略。
### 在進行 Kenerate AI 企業級導入前,團隊應該要求哪些資訊?
請索取原生 API 文件,以及針對你的帳戶可用之模型與操作的書面說明。同時釐清驗證方式、配額、計費、任務保留與客服責任。工作室展示能證明創意能力,但並不能代表你的應用將獲得的請求結構或服務條款。
### 相同的 Kenerate AI 提示會產生完全相同的 API 輸出嗎?
請勿依賴此假設。請先對齊精確的模型版本、輸入資產與可控的生成設定。工作室可能加入你的 API 請求無法重現的預設或處理流程。請保留簡述與已核准的參考資產,並依實際交付需求檢視新輸出,而非期待像素級相同的媒體。
