TL;DR: Kenerate AI adalah ruang kerja kreatif yang menggabungkan kemampuan gambar, video, penyuntingan, audio, 3D, dan agen.
Kenerate AI menghadirkan alat kreatif ke dalam satu ruang kerja. Pengembang harus terlebih dahulu membedakan opsi akses native-nya, termasuk akses MCP/CLI dan akses API enterprise dari integrasi CometAPI yang terpisah. Panduan ini membahas perencanaan akses dan biaya, penyiapan lingkungan, pembuatan gambar, penanganan respons, penyuntingan gambar, dan pembuatan video asinkron. Ikuti contoh untuk menyimpan gambar asli, varian edit, dan klip yang sudah selesai menggunakan Python 3.10+, kunci CometAPI, dan saldo yang memadai.
Key Takeaways
- Kenerate AI adalah layanan kreatif multi-model, bukan satu foundation model.
- Kenerate menawarkan akses MCP/CLI serta onboarding API enterprise; pilih rute yang sesuai dengan aplikasi dan akun Anda.
- Gunakan ID model konkret dan parameter spesifik rute saat membangun integrasi CometAPI terpisah.
- Simpan byte gambar setelah pembuatan; simpan ID tugas video agar polling dapat dilanjutkan tanpa mengirim ulang pekerjaan.
- CometAPI menawarkan integrasi pengembang terpisah untuk model gambar/video yang didukung, dengan kredensial dan penagihan terpisah.
What Is Kenerate AI?
Gunakan studio Kenerate untuk kreasi interaktif. Pengembang juga dapat menggunakan alat MCP/CLI resmi atau menghubungi dukungan mengenai akses API enterprise. Bagian akses di bawah menjelaskan opsi ini; contoh Python di akhir panduan ini memanggil CometAPI secara terpisah.
Kenerate AI dan CometAPI adalah layanan yang terpisah.
Kode di bawah ini memanggil CometAPI secara langsung. Ini tidak masuk ke Kenerate, tidak mengotomatiskan studio Kenerate, dan tidak menghabiskan kredit Kenerate. Ini mereplikasi tugas kreatif yang didefinisikan sempit menggunakan model yang didukung, bukan mengklaim preset atau output studio yang identik.
Contoh gambar produk resmi dari Kenerate gallery. Ini menggambarkan kasus penggunaan kreatif; ini bukan output dari kode API di bawah ini.
How Does Kenerate AI Pricing Affect API Cost Planning?
Kenerate mengiklankan 25 starter credits dan paket kredit sekali beli mulai dari $15. FAQ penagihan menyatakan kredit yang dibeli tidak kedaluwarsa dan pembuatan video memerlukan paket kredit yang dibeli. Ini adalah ketentuan penagihan studio, bukan kutipan untuk akses API enterprise.
CometAPI menggunakan kredensial dan penagihan terpisah. Sebelum uji atau batch, periksa model yang dipilih dan pengaturan permintaan terhadap perkiraan biaya, tetapkan batas pekerjaan, dan tinjau penggunaan yang tercatat. Kredit Kenerate tidak menentukan biaya permintaan CometAPI.
How Do You Access Kenerate AI?
Connect through MCP or CLI
Halaman penyiapan MCP/CLI resmi Kenerate (https://kenerateai.com/app/mcp) menyediakan rute pengembang native. Server MCP jarak jauhnya adalah https://mcp.kenerateai.com/mcp. Tambahkan server tersebut di klien yang kompatibel dan selesaikan masuk Kenerate jika didukung; ikuti halaman penyiapan untuk instalasi CLI dan autentikasi. Alat ini menggunakan akun Kenerate Anda, bukan kunci CometAPI.
Request enterprise API access when needed
FAQ resmi juga menjelaskan akses API untuk mitra Enterprise melalui dukungan. Untuk rute tersebut, minta dokumentasi endpoint, autentikasi, operasi yang didukung, kuota, dan ketentuan penagihan. Onboarding enterprise tidak boleh dipresentasikan sebagai satu-satunya opsi integrasi native.
How Do You Set Up a Separate CometAPI Workflow?
Account and credentials
Buat akun CometAPI dan hasilkan kunci menggunakan instruksi penyiapan API key. Simpan kunci di server atau mesin pengembangan Anda. Perintah Bash berikut menginstal klien HTTP dan membaca kunci tanpa menampilkannya. Pengguna Windows dapat menjalankannya di WSL atau Git Bash.
python -m pip install requests
read -rsp "CometAPI API key: " COMETAPI_KEY
export COMETAPI_KEY
printf '\n'
A small, specific first request
Gunakan satu prompt dan satu output sebelum menambahkan kontrol opsional. Untuk alur gambar, pengembang dapat mengakses GPT Image 2 API di CometAPI. Alur video menggunakan Kling Video API di CometAPI dengan nilai model_name spesifik rute dari quickstart pengembangnya. Label studio bukan pengganti untuk pengenal API.
Compare the CometAPI Examples
| 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 mendokumentasikan permintaan dan bidang output gambar serta rute pengajuan dan polling video secara terpisah. Perlakukan kredensial, rute, body, dan parsing hasil sebagai satu integrasi yang lengkap.
Can You Use the OpenAI SDK with CometAPI?
Ya, untuk rute yang kompatibel dengan OpenAI yang didukung. Panduan SDK CometAPI menggunakan kunci CometAPI dan base URL https://api.cometapi.com/v1. OpenAI Python SDK mendukung base_url kustom. Instal SDK secara terpisah jika Anda memilihnya; skrip gambar dan video yang dapat dijalankan di bawah ini menggunakan 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.
Kompatibilitas berlaku untuk endpoint, bidang, dan bentuk respons yang didokumentasikan. Ini tidak membuat setiap rute penyedia saling dapat dipertukarkan. Image quickstart mendukung client.images.generate; contoh Kling di bawah menggunakan rute penyedia-spesifik /kling/v1/videos/text2video dan kontrak tugasnya. Ikuti quickstart [image](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) atau [Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) yang sesuai alih-alih mengganti dengan panggilan SDK video generic.
## How to Generate and Save an Image with CometAPI?
### Choose Image Settings
Untuk uji gambar pertama, gunakan gpt-image-2, size="1024x1024", quality="low", dan output_format="jpeg". Simpan hasilnya dengan ekstensi file yang sesuai. Jelaskan produk, latar belakang, dan pencahayaan dengan jelas. Rute gambar ini menggunakan bidang model dan mengembalikan byte gambar di data\[0].b64_json.
### Generate and Save the Image
CometAPI mendokumentasikan pembuatan gambar dengan [gpt-image-2](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) dan output base64. Contoh ini mengirim permintaan sinkron dan menyimpan byte yang dikembalikan sebagai JPEG. Simpan sebagai generate_image.py dan jalankan python generate_image.py setelah menetapkan variabel lingkungan.
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)")
### Check the Saved Image
Pertama pastikan bahwa `product-image.jpeg` ada dan dapat dibuka di penampil gambar. Kemudian periksa apakah subjek, komposisi, dan detail produk sesuai dengan prompt. Periksa subjek dan komposisi sebelum mengubah prompt. Respons HTTP 200 mengonfirmasi bahwa permintaan berhasil, tetapi Anda tetap harus memvalidasi data yang dikembalikan dan memeriksa gambar. Jika respons berisi error atau skema yang berbeda, periksa sebelum mengubah decoder; jangan menyimpan teks JSON dengan ekstensi gambar.
Biarkan gambar asli tidak diubah untuk edit selanjutnya. Cocokkan ekstensi nama file dengan output_format yang diminta, dan periksa secara visual teks penting atau detail produk. Jika Anda mengganti model, periksa kontrak responsnya sebelum menggunakan kembali decoder base64 ini.
### Edit a Generated or Local Image
Unggah file sumber sebagai data multipart. Nyatakan perubahan yang diminta dan detail yang harus dipertahankan; simpan file asli dan simpan setiap hasil yang disetujui dengan nama baru.
Untuk alur CometAPI terpisah, [endpoint image-edit menerima unggahan multipart](https://apidoc.cometapi.com/api/image/openai/image-editing). Simpan skrip mandiri ini sebagai edit_image.py di samping product-image.jpeg dari langkah pembuatan, lalu jalankan python edit_image.py. Prompt meminta satu perubahan pada warna cangkir, dan skrip menyimpan hasilnya sebagai `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")
#### Using a local reference image
Untuk mengedit foto produk yang sudah ada, setel source ke file tersebut. Setel MIME type unggahan agar sesuai dengan format aslinya, seperti image/png untuk PNG. output_format yang diminta dapat tetap jpeg terlepas dari format sumber. Biarkan requests menghasilkan header Content-Type multipart; memaksa application/json secara manual akan merusak unggahan file.
Gambar referensi membantu konsistensi namun tidak menjamin pelestarian logo atau geometri produk secara eksak. Pertahankan langkah persetujuan manusia untuk klaim produk komersial.
#### Continuing an edit
Untuk edit berikutnya, unggah output yang disetujui sebagai sumber berikutnya dan tulis instruksi berikutnya. Simpan setiap versi dengan nama file berbeda. Periksa baik perubahan yang diminta maupun elemen yang harus tetap tidak berubah sebelum melanjutkan.
## How Do You Submit and Retrieve a Kling Video with CometAPI
### Submit a Video Task
Quickstart teks-ke-video [Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) menggunakan tugas asinkron: kirim sekali, simpan ID, dan kueri rute yang cocok. Contoh di bawah menggunakan `model_name="kling-v3"`, `mode="std"`, `duration="5"` dan `sound="off"`. Nilai ini berlaku untuk rute Kling CometAPI ini. Jelaskan satu aksi subjek yang jelas dan pergerakan kamera yang dimaksud.
Gunakan model_name untuk rute spesifik penyedia ini, dan pertahankan mode="std", duration="5" dan sound="off" untuk uji pertama. Simpan task_id yang dikembalikan segera. Ini adalah permintaan text-to-video; referensi gambar memerlukan rute image-to-video yang didokumentasikan.
Simpan kode sebagai generate_video.py. Jalankan python generate_video.py untuk membuat tugas. Setelah polling terputus, jalankan python generate_video.py TASK_ID menggunakan ID yang disimpan untuk melanjutkan. [Kontrak pengambilan tugas](https://apidoc.cometapi.com/api/video/kling/individual-queries) mendokumentasikan URL hasil dan mendukung baik amplop data maupun objek tugas langsung.
### Poll the Task and Download the Result
Respons pembuatan video menyediakan ID tugas, bukan file media yang sudah selesai. Simpan ID bersama pekerjaan, periksa task_status saat pengambilan, dan unduh hasil hanya setelah success. Skrip video lengkap di bawah menangani pengajuan, polling, kegagalan, dan pengunduhan; mode resume-nya menggunakan ulang pekerjaan yang sama.
Ambil tugas yang ada dengan GET /kling/v1/videos/text2video/{task_id}. Tunggu hingga task_status="succeed" sebelum membaca task_result.videos\[0].url; tangani "failed" sebagai error. Batas waktu polling lokal harus mempertahankan ID tugas sehingga pengambilan dapat dilanjutkan tanpa mengirim pembuatan lagi.
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}.")
### Completion and recovery
Buka product-video.mp4 dan pastikan dapat diputar sampai selesai. Skrip menyimpan hasil tugas sebelum mengunduh, sehingga kegagalan pengunduhan tidak memerlukan pembuatan klip lagi. Batas waktu polling lokal menghentikan penungguan; ini tidak membatalkan tugas jarak jauh. Simpan ID dan lanjutkan pengambilan. Pengunduhan aset sengaja menggunakan permintaan terpisah tanpa autentikasi agar kunci CometAPI tidak dikirim ke host media.
Contoh video menggunakan input teks. Gambar yang disetujui tidak dapat dilampirkan dengan mengada-ada field reference_image pada rute ini; image-to-video memerlukan alur penyedia yang didokumentasikan.
## How Do You Extend a CometAPI Workflow for Production?
### Job records and reusable assets
Simpan setiap prompt, konfigurasi, aset sumber, ID tugas, dan path output di bawah satu pekerjaan aplikasi. Simpan revisi gambar secara terpisah sehingga pengguna dapat kembali ke versi yang disetujui. Untuk video, persist ID tugas sebelum keluar dari handler permintaan dan biarkan worker mengelola pengambilan.
### Callbacks and reconciliation
Untuk pengiriman video asinkron, ikuti [panduan polling dan webhook CometAPI](https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation). Tambahkan callback hanya setelah polling dasar berfungsi, dan buat notifikasi duplikat aman untuk diproses. Pertahankan jalur pengambilan untuk pekerjaan yang callback-nya tertunda atau terlewat.
## How Should You Handle Errors in a CometAPI Workflow?
Terapkan [panduan error API dan strategi retry yang didokumentasikan](https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy) saat membangun alur kerja CometAPI ini. Pertama pisahkan permintaan tidak valid dari kegagalan transport sementara. Simpan status respons, pengenal permintaan, dan ID tugas di log sisi server, sambil mengecualikan kunci rahasia.
* Kegagalan autentikasi: verifikasi kunci, akses akun, dan host tujuan sebelum mencoba lagi.
* Parameter tidak didukung: kembali ke permintaan terdokumentasi terkecil, lalu tambahkan satu bidang opsional pada satu waktu.
* Rate limit atau kegagalan polling sementara: tunggu dengan backoff terbatas dan lanjutkan kueri tugas yang ada.
* Batas waktu pembuatan: tentukan apakah permintaan pertama membuat pekerjaan sebelum mengirim lagi. Mengulang permintaan pembuatan dapat menimbulkan biaya tambahan.
* Kegagalan pengunduhan output: gunakan hasil tugas yang disimpan atau ambil lagi tugas yang ada alih-alih memulai pembuatan baru.
## Conclusion
Pilih layanan dan rute akses terlebih dahulu. Untuk Kenerate, mulai dengan penyiapan MCP/CLI resmi atau diskusikan kebutuhan API enterprise dengan dukungan. Untuk implementasi CometAPI terpisah, konfigurasikan kuncinya, ikuti rute image atau Kling, periksa output yang disimpan, dan simpan ID tugas video untuk pemulihan. Tonggak awal yang berguna adalah satu gambar lokal yang valid, satu varian edit, dan satu video yang dapat diputar.
## FAQ
### Can This CometAPI Workflow Run Entirely in a Browser?
Browser dapat menyajikan prompt dan progres, tetapi frontend publik tidak boleh berisi kunci API rahasia. Tempatkan permintaan pembuatan dan pelacakan tugas di backend Anda sendiri, autentikasi pengguna di sana, dan kembalikan hanya hasil atau progres yang diperlukan oleh antarmuka. Implementasi CometAPI terpisah harus mengikuti pemisahan yang sama.
### What should a team request before Kenerate AI enterprise onboarding?
Minta dokumentasi API native dan deskripsi tertulis tentang model serta operasi yang tersedia untuk akun Anda. Juga selesaikan autentikasi, kuota, penagihan, retensi tugas, dan kepemilikan dukungan. Demonstrasi studio menetapkan kapabilitas kreatif, tetapi tidak menetapkan skema permintaan atau ketentuan layanan yang akan diterima aplikasi Anda.
### Will the same Kenerate AI prompt produce identical API output?
Jangan mengandalkannya. Selaraskan terlebih dahulu versi model yang tepat, aset input, dan pengaturan pembuatan yang diekspos. Studio dapat menambahkan default atau pemrosesan yang tidak direplikasi oleh permintaan API Anda. Pertahankan brief dan aset referensi yang disetujui, lalu tinjau output baru terhadap persyaratan pengiriman aktual alih-alih mengharapkan media yang identik piksel demi piksel.
