Cara Menguji Generasi Gambar HiDream-I1 melalui API

Ardianto Nugroho

Ardianto Nugroho

22 April 2025

Cara Menguji Generasi Gambar HiDream-I1 melalui API

Sepertinya setiap minggu, kita mendapatkan model Generasi Gambar AI baru yang mampu menciptakan visual yang menakjubkan. Salah satu model yang kuat adalah HiDream-I1-Full. Meskipun menjalankan model ini secara lokal dapat memakan banyak sumber daya, memanfaatkan API memberikan cara yang nyaman dan dapat diskalakan untuk mengintegrasikan teknologi ini ke dalam aplikasi atau alur kerja Anda.

Tutorial ini akan membimbing Anda melalui:

  1. Memahami HiDream-I1-Full: Apa itu dan kemampuannya.
  2. Opsi API: Menjelajahi dua platform populer yang menawarkan HiDream-I1-Full melalui API: Replicate dan Fal.ai.
  3. Menguji dengan Apidog: Panduan langkah demi langkah tentang cara berinteraksi dan menguji API ini menggunakan alat Apidog.
💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Target Audiens: Pengembang, desainer, penggemar AI, dan siapa saja yang tertarik menggunakan generasi gambar AI canggih tanpa pengaturan lokal yang rumit.

Syarat:

Apa itu HiDream-I1-Full?

HiDream AI: Sang Raja Baru Generasi Gambar AI?

HiDream-I1-Full adalah model difusi teks-ke-gambar canggih yang dikembangkan oleh HiDream AI. Model ini termasuk dalam keluarga model yang dirancang untuk menghasilkan gambar berkualitas tinggi, koheren, dan estetis berdasarkan deskripsi tekstual (prompt).

Detail Model: Anda dapat menemukan kartu model resmi dan informasi teknis lebih lanjut di Hugging Face: https://huggingface.co/HiDream-ai/HiDream-I1-Full

Keunggulan Utama (Tipikal untuk model kelas ini):

Perbandingan Benchmark HiDream AI dengan GOT-4o, Recraft V3, Google Image 3, Ideogram 3.0 dan FLUX (Sumber: ArtificialAnalysis)

Kenapa Menggunakan API?

Menjalankan model AI besar seperti HiDream-I1-Full secara lokal memerlukan sumber daya komputasi yang signifikan (GPU yang kuat, RAM yang cukup, dan penyimpanan) serta pengaturan teknis (mengelola ketergantungan, bobot model, konfigurasi lingkungan). Menggunakan API menawarkan beberapa keuntungan:

Cara Menggunakan HiDream-I1-Full melalui API

Beberapa platform menyediakan model AI dan memberikan akses API. Kita akan fokus pada dua pilihan populer untuk HiDream-I1-Full:

Opsi 1: Gunakan API HiDream dari Replicate

Replicate adalah platform yang memudahkan menjalankan model pembelajaran mesin melalui API sederhana, tanpa perlu mengelola infrastruktur. Mereka menghosting perpustakaan besar model yang diterbitkan oleh komunitas.

Bagaimana Replicate Bekerja:

  1. Autentikasi: Anda memerlukan token API Replicate, yang dapat Anda temukan di pengaturan akun Anda. Token ini dikirim dalam header Authorization.
  2. Memulai Prediksi: Anda mengirim permintaan POST ke endpoint API Replicate untuk prediksi. Badan permintaan berisi versi model dan parameter input (seperti prompt, negative_prompt, seed, dll.).
  3. Operasi Asinkron: Replicate biasanya beroperasi secara asinkron. Permintaan POST awal segera mengembalikan ID prediksi dan URL untuk memeriksa status.
  4. Mendapatkan Hasil: Anda perlu memantau URL status (yang diberikan dalam respons awal) menggunakan permintaan GET sampai statusnya succeeded (atau failed). Respons akhir yang berhasil akan berisi URL dari gambar yang dihasilkan.

Contoh Python Konseptual (menggunakan requests):

import requests
import time
import os

REPLICATE_API_TOKEN = "YOUR_REPLICATE_API_TOKEN" # Gunakan variabel lingkungan di produksi
MODEL_VERSION = "TARGET_MODEL_VERSION_FROM_REPLICATE_PAGE" # misalnya, "9a0b4534..."

# 1. Mulai Prediksi
headers = {
    "Authorization": f"Token {REPLICATE_API_TOKEN}",
    "Content-Type": "application/json"
}
payload = {
    "version": MODEL_VERSION,
    "input": {
        "prompt": "Sebuah pemandangan kota cyberpunk megah saat matahari terbenam, lampu neon memantulkan di jalan basah, ilustrasi rinci",
        "negative_prompt": "jelek, cacat, kabur, kualitas rendah, teks, watermark",
        "width": 1024,
        "height": 1024,
        "seed": 12345
        # Tambahkan parameter lain sesuai kebutuhan berdasarkan halaman model Replicate
    }
}

start_response = requests.post("<https://api.replicate.com/v1/predictions>", json=payload, headers=headers)
start_response_json = start_response.json()

if start_response.status_code != 201:
    print(f"Kesalahan memulai prediksi: {start_response_json.get('detail')}")
    exit()

prediction_id = start_response_json.get('id')
status_url = start_response_json.get('urls', {}).get('get')

print(f"Prediksi dimulai dengan ID: {prediction_id}")
print(f"URL Status: {status_url}")

# 2. Polling untuk Hasil
output_image_url = None
while True:
    print("Memeriksa status...")
    status_response = requests.get(status_url, headers=headers)
    status_response_json = status_response.json()

    status = status_response_json.get('status')
    if status == 'succeeded':
        output_image_url = status_response_json.get('output') # Biasanya daftar URL
        print("Prediksi berhasil!")
        print(f"Output: {output_image_url}")
        break
    elif status == 'failed' or status == 'canceled':
        print(f"Prediksi gagal atau dibatalkan: {status_response_json.get('error')}")
        break
    elif status in ['starting', 'processing']:
        # Tunggu sebelum mempolling lagi
        time.sleep(5) # Sesuaikan interval polling sesuai kebutuhan
    else:
        print(f"Status tidak dikenal: {status}")
        print(status_response_json)
        break

# Sekarang Anda dapat menggunakan output_image_url

Harga: Replicate mengenakan biaya berdasarkan waktu eksekusi model di perangkat keras mereka. Periksa halaman harga mereka untuk detailnya.

Opsi 2: Fal.ai

Fal.ai adalah platform lain yang fokus pada memberikan inferensi AI yang cepat, skalabel, dan hemat biaya melalui API. Mereka sering menekankan kinerja waktu nyata.

Bagaimana Fal.ai Bekerja:

  1. Autentikasi: Anda memerlukan kredensial API Fal (Key ID dan Key Secret, sering digabungkan sebagai KeyID:KeySecret). Ini dikirim dalam header Authorization, biasanya sebagai Key YourKeyID:YourKeySecret.
  2. Endpoint API: Fal.ai menyediakan URL endpoint langsung untuk fungsi model tertentu.
  3. Format Permintaan: Anda mengirim permintaan POST ke URL endpoint model. Badan permintaan biasanya JSON yang berisi parameter input yang diperlukan oleh model (mirip dengan Replicate: prompt, dll.).
  4. Synchronous vs. Asynchronous: Fal.ai dapat menawarkan keduanya. Untuk tugas yang mungkin memakan waktu lama seperti generasi gambar, mereka mungkin menggunakan:

Contoh Python Konseptual (menggunakan requests - mengasumsikan antrian asinkron):

import requests
import time
import os

FAL_API_KEY = "YOUR_FAL_KEY_ID:YOUR_FAL_KEY_SECRET" # Gunakan variabel lingkungan
MODEL_ENDPOINT_URL = "<https://fal.run/fal-ai/hidream-i1-full>" # Periksa URL yang tepat di Fal.ai

# 1. Kirim Permintaan ke Antrian (Contoh - periksa dokumen Fal untuk struktur yang tepat)
headers = {
    "Authorization": f"Key {FAL_API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    # Parameter biasanya langsung ada dalam payload untuk fungsi tanpa server Fal.ai
    # atau dalam objek 'input' tergantung pada pengaturan. Periksa dokumen!
    "prompt": "Sebuah potret hiper-realistis seorang astronot yang mengapung di luar angkasa, Bumi memantulkan di visir helm",
    "negative_prompt": "kartun, gambar, ilustrasi, sketsa, teks, huruf",
    "seed": 98765
    # Tambahkan parameter lain yang didukung oleh implementasi Fal.ai
}

# Fal.ai mungkin memerlukan penambahan '/queue' atau parameter kueri tertentu untuk asinkron
# Contoh: POST <https://fal.run/fal-ai/hidream-i1-full/queue>
# Periksa dokumentasi mereka! Mengasumsikan endpoint yang mengembalikan URL status:

submit_response = requests.post(f"{MODEL_ENDPOINT_URL}", json=payload, headers=headers, params={"fal_webhook": "OPTIONAL_WEBHOOK_URL"}) # Periksa dokumen untuk parameter kueri seperti webhook

if submit_response.status_code >= 300:
    print(f"Kesalahan mengirim permintaan: {submit_response.status_code}")
    print(submit_response.text)
    exit()

submit_response_json = submit_response.json()

# Respon asinkron Fal.ai mungkin berbeda - bisa mengembalikan request_id atau URL status langsung
# Mengasumsikan bahwa ia mengembalikan URL status mirip dengan Replicate untuk contoh konseptual ini
status_url = submit_response_json.get('status_url') # Atau konstruksi dari request_id, periksa dokumen
request_id = submit_response_json.get('request_id') # Identifikasi alternatif

if not status_url and request_id:
     # Anda mungkin perlu membangun URL status, misalnya <https://fal.run/fal-ai/hidream-i1-full/requests/{request_id}/status>
     # Atau kueri endpoint status umum: <https://fal.run/requests/{request_id}/status>
     print("Perlu membangun URL status atau menggunakan request_id, periksa dokumentasi Fal.ai.")
     exit() # Membutuhkan implementasi spesifik berdasarkan dokumen Fal

print(f"Permintaan telah diajukan. URL Status: {status_url}")

# 2. Polling untuk Hasil (jika asinkron)
output_data = None
while status_url: # Hanya polling jika kita memiliki URL status
    print("Memeriksa status...")
    # Polling mungkin memerlukan autentikasi juga
    status_response = requests.get(status_url, headers=headers)
    status_response_json = status_response.json()

    status = status_response_json.get('status') # Periksa dokumen Fal.ai untuk kunci status ('COMPLETED', 'FAILED', dll.)

    if status == 'COMPLETED': # Status contoh
        output_data = status_response_json.get('response') # Atau 'result', 'output', periksa dokumen
        print("Permintaan selesai!")
        print(f"Output: {output_data}") # Struktur output tergantung pada model di Fal.ai
        break
    elif status == 'FAILED': # Status contoh
        print(f"Permintaan gagal: {status_response_json.get('error')}") # Periksa field error
        break
    elif status in ['IN_PROGRESS', 'IN_QUEUE']: # Status contoh
        # Tunggu sebelum mempolling lagi
        time.sleep(3) # Sesuaikan interval polling
    else:
        print(f"Status tidak dikenal: {status}")
        print(status_response_json)
        break

# Gunakan output_data (yang mungkin berisi URL gambar atau informasi lain)

Harga: Fal.ai biasanya mengenakan biaya berdasarkan waktu eksekusi, sering kali dengan penagihan per detik. Periksa detail harga mereka untuk model dan sumber daya komputasi spesifik.

Uji API HiDream dengan Apidog

Apidog adalah alat desain, pengembangan, dan pengujian API yang kuat. Ini menyediakan antarmuka yang ramah pengguna untuk mengirim permintaan HTTP, memeriksa respons, dan mengelola detail API, menjadikannya ideal untuk menguji API Replicate dan Fal.ai sebelum mengintegrasikannya ke dalam kode.

button

Langkah-langkah untuk Menguji API HiDream-I1-Full menggunakan Apidog:

Langkah 1. Instal dan Buka Apidog: Unduh dan instal Apidog atau gunakan versi webnya. Buat akun jika perlu.

Langkah 2. Buat Permintaan Baru:

Langkah 3. Atur Metode HTTP dan URL:

Langkah 4. Konfigurasi Header:

Tambahkan header Content-Type:

Tambahkan header Authorization:

Untuk Replicate:

Untuk Fal.ai:

Langkah 5. Konfigurasi Badan Permintaan:

Masuk ke tab Body.

Pilih format raw dan pilih JSON dari dropdown.

Tempelkan payload JSON sesuai dengan persyaratan platform.

Contoh Badan JSON untuk Replicate:

{
  "version": "PASTE_MODEL_VERSION_FROM_REPLICATE_PAGE_HERE",
  "input": {
    "prompt": "Sebuah lukisan cat air dari sudut perpustakaan yang nyaman dengan kucing yang sedang tidur",
    "negative_prompt": "fotorealistik, render 3d, seni buruk, cacat",
    "width": 1024,
    "height": 1024,
    "seed": 55555
  }
}

Contoh Badan JSON untuk Fal.ai

{
  "prompt": "Sebuah lukisan cat air dari sudut perpustakaan yang nyaman dengan kucing yang sedang tidur",
  "negative_prompt": "fotorealistik, render 3d, seni buruk, cacat",
  "width": 1024,
  "height": 1024,
  "seed": 55555
  // Parameter lain seperti 'model_name' mungkin diperlukan tergantung pada pengaturan Fal.ai
}

Penting: Rujuk ke dokumentasi spesifik di halaman Replicate atau Fal.ai untuk parameter yang tepat yang diperlukan dan opsional untuk versi model HiDream-I1-Full yang Anda gunakan. Parameter seperti guidance_scale, num_inference_steps, dll., mungkin tersedia.

Langkah 6. Kirim Permintaan:

Polling untuk Hasil (untuk API Asinkron):

Lihat Gambar: Salin URL gambar dari respons akhir yang berhasil dan tempelkan ke browser web Anda untuk melihat gambar yang dihasilkan.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Kesimpulan

HiDream-I1-Full menawarkan kemampuan generasi gambar yang kuat, dan menggunakan API dari platform seperti Replicate atau Fal.ai membuat teknologi ini dapat diakses tanpa mengelola infrastruktur yang kompleks. Dengan memahami alur kerja API (permintaan, polling potensial, respons) dan memanfaatkan alat seperti Apidog untuk pengujian, Anda dapat dengan mudah bereksperimen dengan dan mengintegrasikan generasi gambar AI mutakhir ke dalam proyek Anda.

Ingatlah untuk selalu merujuk pada dokumentasi spesifik di Replicate dan Fal.ai untuk URL endpoint yang paling terbaru, parameter yang diperlukan, metode autentikasi, dan rincian harga, karena ini dapat berubah seiring waktu. Selamat mencoba!

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.