TL;DR: Kenerate AI は、画像・動画・編集・音声・3D・エージェント機能を統合するクリエイティブワークスペースです。
Kenerate AI は複数のクリエイティブツールを1つのワークスペースに統合します。開発者はまず、ネイティブのアクセス手段(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 ギャラリーの公式製品画像の例です。クリエイティブなユースケースを示すもので、以下の API コードの出力ではありません。
Kenerate AI の料金は API のコスト計画にどう影響しますか?
Kenerate はスタータークレジット25と、$15 からの一回限りのクレジットパックを案内しています。請求に関する FAQ では、購入したクレジットは有効期限がなく、動画生成には購入済みクレジットパックが必要とされています。これらはスタジオの請求条件であり、エンタープライズ API アクセスの見積もりではありません。
CometAPI は認証情報と課金が別です。テストやバッチの前に、選択したモデルとリクエスト設定を事前コスト見積もりで確認し、ジョブの上限を設定し、記録された使用量を確認してください。Kenerate のクレジットは CometAPI のリクエストコストを決めません。
Kenerate AI へのアクセス方法
MCP または CLI で接続する
Kenerate の公式 MCP/CLI セットアップページはネイティブな開発者向け経路を提供します。リモート MCP サーバーは https://mcp.kenerateai.com/mcp です。互換クライアントにサーバーを追加し、対応環境では Kenerate へのサインインを完了してください。CLI のインストールと認証はセットアップページに従ってください。これらのツールは CometAPI キーではなく、Kenerate アカウントを使用します。
必要に応じてエンタープライズ API アクセスを申請する
公式 FAQ には、サポート経由のエンタープライズパートナー向け 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'
小さく具体的な最初のリクエスト
オプション制御を加える前に、プロンプト1つ・出力1つで始めてください。画像ワークフローでは、開発者は CometAPI の GPT Image 2 API にアクセスできます。動画ワークフローでは、Kling Video API in CometAPI を使用し、開発者向けクイックスタートに記載のルート固有の model_name 値を使います。スタジオのラベルは API 識別子の代わりにはなりません。
CometAPI の例を比較する
| 統合の詳細 | CometAPI 画像生成 | CometAPI Kling 動画 |
|---|---|---|
| 認証 | Bearer COMETAPI_KEY | Bearer COMETAPI_KEY |
| 作成パス | /v1/images/generations | /kling/v1/videos/text2video |
| モデル指定 | model | model_name |
| 完了形態 | 同期レスポンス | 非同期タスク;対応するルートをポーリング |
| 出力 | Decode data[0].b64_json | 成功後に task_result.videos[0].url をダウンロード |
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 ルートとタスク契約を使用します。汎用的な SDK の動画呼び出しに置き換えず、対応する[画像](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api)または [Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) のクイックスタートに従ってください。
## 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 ワークフローでは、[image-edit エンドポイントは 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 のままで構いません。multipart の Content-Type ヘッダーは requests に生成させてください。application/json を手動で指定するとファイルアップロードは壊れます。
参照画像は一貫性の助けになりますが、ロゴや製品の形状が完全に保持されることを保証しません。商用の製品表現では人による承認ステップを維持してください。
#### 編集を続ける
さらなる編集では、承認済みの出力を次のソースとしてアップロードし、次の指示を書きます。各バージョンは異なるファイル名で保持してください。要求する変更と、変更しないべき要素の双方を確認してから進めてください。
## CometAPI で Kling の動画を送信・取得する方法
### 動画タスクを作成する
[Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) のテキストから動画のクイックスタートは非同期タスクです。1回送信し、ID を保持し、対応するルートを問い合わせます。以下の例では `model_name="kling-v3"`、`mode="std"`、`duration="5"`、`sound="off"` を使用します。これらの値は CometAPI の Kling ルートに適用されます。1つの明確な被写体の動きと、意図するカメラワークを記述してください。
このプロバイダー固有ルートでは 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 を確認し、成功後にのみ結果をダウンロードします。以下の完全な動画スクリプトは、送信、ポーリング、失敗、ダウンロードに対応し、再開モードでは同じジョブを再利用します。
既存タスクは 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、出力パスを1つのアプリケーションジョブの下で保存します。画像の改版は個別に保持し、ユーザーが承認済みバージョンに戻れるようにします。動画では、リクエストハンドラーを離れる前にタスク 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 はサーバー側ログに保持し、秘密鍵は除外します。
* 認証失敗:再試行の前に、キー、アカウントアクセス、宛先ホストを確認します。
* 非対応パラメータ:最小限のドキュメント化されたリクエストに戻り、オプション項目を1つずつ追加します。
* レート制限または一時的なポーリング失敗:上限付きのバックオフで待機し、既存タスクの問い合わせを再開します。
* 作成タイムアウト:最初のリクエストがジョブを作成したかどうかを確認してから再送します。生成リクエストの繰り返しは追加課金を招く可能性があります。
* 出力ダウンロード失敗:保持しているタスク結果を使用するか、既存タスクを再取得し、新規生成を開始しないでください。
## まとめ
まずサービスとアクセス経路を選びます。Kenerate では、公式の MCP/CLI セットアップから始めるか、エンタープライズ API 要件についてサポートと相談してください。別個の CometAPI 実装では、キーを設定し、画像または Kling のルートに従い、保存した出力を確認し、動画のタスク ID を保持して復旧可能にします。最初の有用なマイルストーンは、有効なローカル画像1点、編集版1点、再生可能な動画1本です。
## FAQ
### この CometAPI ワークフローは完全にブラウザ内で実行できますか?
ブラウザはプロンプトと進行状況を提示できますが、公開フロントエンドに秘密の API キーを含めるべきではありません。生成リクエストとタスク追跡は自前のバックエンドの背後に置き、そこでユーザーを認証し、インターフェースに必要な結果または進捗のみ返してください。独立した CometAPI 実装でも同じ分離を守ってください。
### Kenerate AI のエンタープライズ導入前に、チームは何をリクエストすべきですか?
ネイティブ API ドキュメントと、アカウントで利用可能なモデルと操作の文書による説明を依頼してください。加えて、認証、クォータ、課金、タスク保持、サポート責任も確認します。スタジオのデモはクリエイティブな能力を示しますが、アプリケーションが受けるリクエストスキーマやサービス条件を確立するものではありません。
### 同じ Kenerate AI のプロンプトで、API 出力は同一になりますか?
依存しないでください。まず、正確なモデルバージョン、入力アセット、公開されている生成設定を揃えます。スタジオは、API リクエストが再現しないデフォルトや処理を追加することがあります。ブリーフや承認済み参照アセットを保全し、ピクセル単位で同一のメディアを期待するのではなく、実際の納品要件に照らして新しい出力をレビューしてください。
