GPT-6 Astra is now live on CometAPI →
technology/Riset CometAPI

Cara Mengotomatisasi Pembuatan Gambar dalam Skala Besar

Bangun alur kerja pembuatan gambar batch yang siap produksi dengan satu kunci CometAPI, termasuk pengantrean, perutean model, batas konkurensi, percobaan ulang, dan penyimpanan

CometAPI
Bobby SpencerTim riset model AI dan API
Diperbarui Sep 6, 2026 9 menit baca
Cara Mengotomatisasi Pembuatan Gambar dalam Skala Besar
Gunakan pola ini

Lakukan API call pertama.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Cara termudah untuk mengotomatiskan pembuatan gambar dalam skala besar tanpa harus mengelola banyak API adalah memisahkan alur kerja dari penyedia model. Masukkan setiap permintaan gambar ke dalam satu antrean, arahkan setiap job ke ID model yang saat ini berlaku, dan kirim permintaan yang kompatibel melalui satu kunci CometAPI dan base URL yang kompatibel dengan OpenAI https://api.cometapi.com/v1.

Tutorial ini membangun pipeline tersebut di Python. Ia menerima job produk, iklan, dan konten dari antrean JSON Lines; memilih model; membatasi konkurensi; mencoba ulang kegagalan sementara; menyimpan hasil berbasis URL atau base64; serta mencatat penggunaan per job dan perkiraan biaya. Contoh ini menjaga unsur-unsur esensial produksi dalam satu blok ringkas agar Anda dapat menguji alur kerja tanpa membuat artikel ini berubah menjadi referensi kode.

Bagaimana Unified Image API Menyederhanakan Pembuatan Batch

Pada akhirnya, alur kerja akan terlihat seperti ini:

jobs.jsonl → bounded worker pool → CometAPI /v1/images/generations → object storage → manifest.jsonl

Antrean dan lapisan penyimpanan tetap milik Anda. Mengganti model gambar cukup mengubah nilai model, bukan sistem autentikasi atau rute permintaan utama. Itulah keunggulan praktis dari unified image API: pemilihan model menjadi keputusan perutean di dalam satu pipeline, bukan integrasi penyedia yang terpisah.

Apa yang Anda Butuhkan untuk Mengotomatiskan Pembuatan Gambar?

Anda memerlukan Python 3.10 atau lebih baru, paket requests, kunci CometAPI, lokasi output yang dapat ditulis, dan setidaknya satu ID model gambar yang masih berlaku.

Instal satu-satunya dependensi:

pip install requests

Atur kunci Anda di server, jangan pernah di kode browser atau repositori:

export COMETAPI_KEY="your-key"

Base URL adalah https://api.cometapi.com/v1, dan job text-to-image yang kompatibel menggunakan POST /images/generations. Sebelum melakukan deployment, verifikasi setiap model di live model catalog; katalog mengembalikan ID saat ini, endpoint yang didukung, fitur, dan metadata harga tanpa memerlukan header otorisasi.

Per 20 Agustus 2026, katalog live mencantumkan dua rute berguna berikut:

Beban kerjaModel IDAlasan cocok
Gambar produk dengan pengaturan output terkontrolgpt-image-2Mengembalikan data penggunaan dan konten gambar base64 pada rute kompatibel OpenAI yang terdokumentasi
Konsep iklan dan konten ber-volume tinggidoubao-seedream-4-5-251128Menggunakan rute pembuatan yang sama dan tercantum dengan harga per permintaan

Tabel ini adalah titik awal, bukan klaim bahwa model-model tersebut memiliki kapabilitas yang identik. Ukuran, kualitas, format, dukungan gambar referensi, dan perilaku respons tetap spesifik per model. Periksa catatan model dan dokumentasi tertaut sebelum mengirim parameter opsional.

Cara Membangun Alur Kerja Pembuatan Gambar Batch di Python

1. Beri setiap job ID yang tahan gangguan

Gunakan satu objek JSON per baris agar antrean, ekspor basis data, atau job dari spreadsheet dapat memberi makan worker yang sama:

{"id":"sku-1001","kind":"product","prompt":"Studio product photo of a ceramic coffee dripper on a warm neutral background"}
{"id":"campaign-204","kind":"ad","prompt":"Editorial summer travel image, vivid natural light, wide composition, no text"}
{"id":"blog-088","kind":"content","prompt":"Minimal illustration of a developer automating a creative workflow, no text"}

ID tersebut menjadi nama file output dan kunci manifest. Dalam produksi, gunakan sebagai idempotency key dan lewati ID yang sudah ditandai sukses sebelum memproses ulang antrean.

2. Rute berdasarkan jenis job, lalu validasi terhadap katalog live

Contoh ini memetakan pekerjaan produk ke gpt-image-2 dan pekerjaan iklan atau konten ke doubao-seedream-4-5-251128. Sebuah job dapat menimpa pilihan tersebut dengan field model miliknya sendiri. Saat startup, worker mengunduh katalog publik dan menolak ID yang sudah tidak terdaftar lagi.

Ini lebih aman daripada menanamkan (hard-code) SDK khusus penyedia di seluruh aplikasi. Anda dapat mengubah rute dalam satu pemetaan setelah mengevaluasi kualitas, latensi, dan harga untuk prompt Anda sendiri.

3. Batasi konkurensi alih-alih meluncurkan seluruh batch

Worker dimulai dengan empat permintaan bersamaan. Angka tersebut adalah pengaturan aplikasi konservatif, bukan batas layanan universal. Ukur latensi dan respons 429 untuk akun Anda, lalu naikkan atau turunkan MAX_WORKERS secara terukur.

Hanya respons 408, 429, dan 5xx yang dicoba ulang dengan backoff eksponensial dan jitter. Kesalahan autentikasi, ID model tidak valid, dan parameter yang tidak didukung langsung gagal karena mencoba ulang permintaan buruk yang sama hanya menambah penundaan.

4. Normalisasi hasil sebelum penyimpanan

Model gambar tidak selalu mengembalikan kontainer yang sama. Respons GPT Image yang terdokumentasi berisi data[0].b64_json; model kompatibel lainnya mungkin mengembalikan data[0].url. Worker menangani keduanya, menulis gambar ke file sementara, dan mengganti namanya hanya setelah unduhan atau dekode berhasil.

Untuk produksi, ganti direktori lokal output/ dengan S3, R2, GCS, atau penyimpanan objek lainnya. Jangan memperlakukan URL yang dihosting penyedia sebagai penyimpanan permanen kecuali kebijakan retensinya secara eksplisit menyatakan demikian.

5. Catat penggunaan, percobaan, dan perkiraan biaya

Setiap hasil menjadi baris manifest ringkas dengan ID job, model, path tersimpan, status, dan perkiraan biaya USD ketika katalog live menyediakan data harga yang cukup. Job yang gagal menyimpan error alih-alih hilang dari batch.

Skrip Python Lengkap untuk Pembuatan Gambar Batch

Simpan berikut sebagai batch_image_pipeline.py, letakkan antrean di sebelahnya sebagai jobs.jsonl, lalu jalankan python3 batch_image_pipeline.py.

import base64, json, os, random, time
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
import requests

BASE_URL = "https://api.cometapi.com/v1"
KEY = os.environ["COMETAPI_KEY"]
WORKERS = int(os.getenv("MAX_WORKERS", "4"))
OUT = Path("output")
ROUTES = {
    "product": "gpt-image-2",
    "ad": "doubao-seedream-4-5-251128",
    "content": "doubao-seedream-4-5-251128",
}

catalog = requests.get("https://api.cometapi.com/api/models", timeout=30)
catalog.raise_for_status()
CATALOG = {model["id"]: model for model in catalog.json()["data"]}

def generate(job):
    model = job.get("model", ROUTES[job["kind"]])
    if model not in CATALOG:
        raise ValueError(f"Unknown model: {model}")
    payload = {"model": model, "prompt": job["prompt"], "n": 1}
    if model == "gpt-image-2":
        payload.update(quality="low", size="1024x1024", output_format="jpeg")

    for attempt in range(4):
        response = requests.post(
            f"{BASE_URL}/images/generations",
            headers={"Authorization": f"Bearer {KEY}"},
            json=payload,
            timeout=180,
        )
        if response.status_code not in {408, 429} and response.status_code < 500:
            break
        time.sleep(2**attempt + random.random())
    response.raise_for_status()
    body = response.json()
    item = body["data"][0]

    if item.get("b64_json"):
        data = base64.b64decode(item["b64_json"])
        extension = body.get("output_format", "png")
    else:
        download = requests.get(item["url"], timeout=120)
        download.raise_for_status()
        data = download.content
        extension = {"image/png": "png", "image/webp": "webp"}.get(
            download.headers.get("content-type"), "jpg"
        )
    path = OUT / f"{job['id']}.{extension}"
    path.write_bytes(data)

    price, usage = CATALOG[model].get("pricing") or {}, body.get("usage", {})
    cost = price.get("per_request")
    if cost is None and price.get("input") is not None:
        cost = (usage.get("input_tokens", 0) * price["input"] +
                usage.get("output_tokens", 0) * price["output"]) / 1_000_000
    return {"id": job["id"], "model": model, "path": str(path),
            "estimated_usd": cost * price.get("ratio", 1) if cost is not None else None}

def safe_generate(job):
    try:
        return {"status": "success", **generate(job)}
    except Exception as error:
        return {"id": job["id"], "status": "failed", "error": str(error)}

OUT.mkdir(exist_ok=True)
jobs = [json.loads(line) for line in Path("jobs.jsonl").read_text().splitlines() if line]
with ThreadPoolExecutor(max_workers=WORKERS) as pool:
    results = list(pool.map(safe_generate, jobs))
with (OUT / "manifest.jsonl").open("w") as manifest:
    manifest.writelines(json.dumps(result) + "\n" for result in results)

Skrip menggunakan katalog saat ini pada waktu runtime, sementara dua pemetaan fallback adalah contoh yang diverifikasi pada 20 Agustus 2026. Periksa ulang sebelum mempublikasikan atau melakukan deployment pada tanggal lain.

Cara Menguji Alur Kerja Pembuatan Gambar Batch

Mulailah dengan satu job dan satu worker:

MAX_WORKERS=1 python3 batch_image_pipeline.py

Respons GPT Image yang sukses mengikuti struktur ini:

{
  "created": 1776841943,
  "output_format": "jpeg",
  "quality": "low",
  "size": "1024x1024",
  "usage": {
    "input_tokens": 16,
    "output_tokens": 208,
    "total_tokens": 224
  },
  "data": [{"b64_json": "<base64-image-data>"}]
}

Worker mendekode gambar, menulis output/<job-id>.jpeg, dan menambahkan satu baris sukses ke output/manifest.jsonl. Jika sebuah model mengembalikan URL, worker akan mengunduhnya dan menyimpan path lokal dalam format manifest yang sama.

Kode telah diperiksa sintaksnya secara lokal. Panggilan pembuatan live tetap memerlukan kunci CometAPI Anda, jadi jalankan uji cepat satu job sebelum menaikkan konkurensi.

Berapa Biaya Pembuatan Gambar Batch?

Penetapan harga harus diberi cap waktu karena tarif model berubah. Per 20 Agustus 2026, katalog model CometAPI live mengembalikan field harga dasar berikut dan rasio penagihan 0.8:

  • gpt-image-2: $5 per 1M token input dan $30 per 1M token output; menerapkan rasio yang tercantum menghasilkan tarif efektif $4 dan $24 per 1M token.
  • doubao-seedream-4-5-251128: $0.04 per permintaan; menerapkan rasio yang tercantum menghasilkan $0.032 per permintaan.

Panduan harga CometAPI menjelaskan penagihan berbasis token untuk model dengan harga resmi dan penagihan berbasis panggilan untuk model dengan harga per permintaan. Skrip membaca katalog saat berjalan dan menggunakan aturan yang sama:

token cost = ratio × (input tokens × input rate + output tokens × output rate) / 1,000,000

request cost = ratio × per-request price

Sebagai contoh, respons GPT Image yang terdokumentasi di atas melaporkan 16 token input dan 208 token output. Menggunakan nilai katalog 20 Agustus, hasil ilustratif tersebut diperkirakan sekitar $0.005056. Total nyata berubah tergantung model, kualitas, ukuran, prompt, percobaan ulang, dan penggunaan dalam respons. Perlakukan respons API dan dasbor penggunaan akun sebagai catatan penagihan, bukan asumsi biaya per gambar yang tetap.

Anggarkan juga untuk pekerjaan yang tidak berhasil. Upaya ulang setelah timeout yang tidak terkonfirmasi dapat menghasilkan hasil kedua yang ditagih, dan gambar yang secara teknis berhasil namun gagal tinjauan tetap menghabiskan anggaran. Lacak biaya API dan tingkat penerimaan:

effective cost per accepted image = total batch spend / approved images

Kesalahan Umum API Pembuatan Gambar dan Cara Memperbaikinya

GejalaKemungkinan penyebabSolusi
401Kunci hilang atau tidak validPeriksa COMETAPI_KEY di sisi server
400Model tidak valid atau opsi tidak didukungPeriksa kembali katalog live dan hapus field khusus model
429Konkurensi terlalu tinggiTurunkan MAX_WORKERS dan pertahankan backoff eksponensial
5xx berulangKegagalan hulu sementaraCoba ulang dengan batas, lalu pindahkan job ke dead-letter queue
Tidak ada gambar tersimpanRespons menggunakan kontainer berbedaInspeksi data[0] dan dukung b64_json maupun url
Pengeluaran gandaJob diputar ulang setelah kegagalan parsialGunakan ID yang tahan gangguan dan akui hanya setelah penyimpanan berhasil

Jangan mencoba ulang setiap error. Permintaan 400 permanen akan tetap tidak valid, sementara loop retry 429 tanpa batas dapat mengubah lonjakan trafik menjadi backlog.

Praktik Terbaik untuk Produksi Pembuatan Gambar dalam Skala

Beralih dari JSON Lines ke antrean yang tahan gangguan ketika melibatkan banyak worker. Atur visibility timeout lebih lama dari waktu pembuatan maksimum, akui sebuah job hanya setelah gambar dan manifest tersimpan, dan kirim job yang habis dicoba ke dead-letter queue untuk ditinjau.

Simpan kontrol opsional di konfigurasi khusus model. Payload bersama sebaiknya hanya berisi field umum seperti model, prompt, dan n: 1; tambahkan quality, size, atau output_format hanya setelah dokumentasi model yang dipilih mengonfirmasinya. Jika Anda menambahkan rute fallback, pilih model yang mendukung tugas yang sama dan bangun ulang payload untuk model tersebut alih-alih memutar ulang opsi khusus penyedia secara membabi buta.

Simpan kunci API di secret manager, batasi input prompt, pindai aset yang dihasilkan sesuai kebijakan Anda, dan jauhkan URL penyedia dari catatan produk jangka panjang. Log ID job, ID model, latensi, jumlah percobaan, penggunaan, path penyimpanan, hasil tinjauan, dan tanggal snapshot katalog. Field-field tersebut memungkinkan Anda membandingkan model berdasarkan biaya per gambar yang diterima, bukan hanya harga per panggilan.

Terakhir, atur pagar pengeluaran: ukuran batch maksimum, batas percobaan ulang per job, peringatan pengeluaran harian, dan kondisi berhenti ketika tingkat persetujuan turun. Meningkatkan skala prompt yang buruk lebih cepat bukanlah optimasi.

FAQ tentang Otomatisasi Pembuatan Gambar dalam Skala

Apa cara termudah untuk mengotomatiskan pembuatan gambar dalam skala tanpa mengelola beberapa API?

Gunakan satu alur antrean dan penyimpanan, lalu kirim permintaan gambar yang kompatibel melalui satu kunci CometAPI dan https://api.cometapi.com/v1/images/generations. Ubah ID model di lapisan perutean Anda alih-alih memelihara autentikasi dan SDK penyedia yang terpisah.

Bisakah saya mengirim satu permintaan dan meminta beberapa model gambar menghasilkan sekaligus?

Contoh ini mengirim satu model per job. Fan-out adalah alur kerja aplikasi: duplikasi sebuah job dengan ID dan nilai model yang berbeda, lalu bandingkan output yang tersimpan. Ini menjaga biaya dan status tinjauan dapat diatribusikan ke tiap model.

Konkurensi berapa yang sebaiknya saya gunakan?

Tidak ada angka universal untuk setiap akun dan model. Mulailah dengan pool kecil yang dibatasi seperti empat worker, pantau latensi dan respons 429, lalu lakukan tuning berbasis bukti.

Haruskah saya menyimpan URL yang dikembalikan atau gambarnya langsung?

Simpan gambar di penyimpanan objek milik Anda. URL yang dikembalikan mungkin bersifat sementara, sementara model GPT Image dapat mengembalikan konten base64 alih-alih URL.

Bagaimana cara memilih model termurah?

Hitung biaya per gambar yang diterima, bukan hanya harga per panggilan. Sertakan biaya token atau permintaan, retry, unduhan yang gagal, aset yang ditolak, pascaproses, dan tinjauan manusia. Periksa ulang katalog model live pada hari Anda mempublikasikan atau melakukan deployment.

Di mana saya harus memverifikasi endpoint dan format respons?

Gunakan CometAPI Quick Start, dokumentasi katalog model, referensi pembuatan gambar, dan panduan harga.

Lanjut belajar

Hubungkan artikel ini ke keputusan berikutnya.

Lihat semua topik
Dipublikasikan pada Sep 6, 2026
Terakhir diperbarui Sep 6, 2026
3 tampilan
Ditinjau untuk kejelasan, atribusi sumber, dan terminologi API terkini.

Siap memangkas biaya pengembangan AI hingga 20%?

Mulai gratis dalam beberapa menit. Kredit uji coba gratis disertakan. Tidak perlu kartu kredit.

Baca Selengkapnya