# Dokumentasi API Seni Reve

Selamat datang di API generasi gambar Reve Art. Layanan ini menyediakan kemampuan generasi gambar bertenaga AI tercanggih melalui API REST sederhana.

## Pengantar Reve Image 1.0

Reve Image 1.0 adalah model generasi teks-ke-gambar unggulan kami, yang dirancang dengan fokus pada:

- Kepatuhan prompt yang unggul
- Kualitas estetika yang tinggi
- Rendering tipografi yang akurat
- Generasi teks-ke-gambar yang intuitif

Model ini dirancang untuk menghasilkan hasil berkualitas tinggi tanpa memerlukan keahlian rekayasa prompt tingkat lanjut, sehingga dapat diakses oleh pemula maupun pengguna berpengalaman. Anda dapat mencobanya secara gratis di [Buat Gambar](https://reve-art.com/dashboard/create).

## Kasus Penggunaan

API Seni Reve dapat diintegrasikan ke dalam berbagai aplikasi:

- Pembuatan Konten: Menghasilkan visual unik untuk blog, artikel, dan media sosial
- E-commerce: Membuat mockup dan variasi produk
- Desain & Pembuatan Prototipe: Memvisualisasikan konsep desain dengan cepat
- Gaming & Hiburan: Menghasilkan aset game dan desain karakter
- Pendidikan: Membuat materi dan ilustrasi pendidikan

## Autentikasi

Semua permintaan API memerlukan autentikasi menggunakan kunci API.

Tambahkan kunci API ke header Otorisasi:

```bash
curl -X POST https://reve-art.com/v1/reve-image/generate \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{"prompt": "your prompt here", "aspect_ratio": "1:1"}'

Cara Mendapatkan Kunci API

Silakan login dan tambahkan kunci-api Anda di halaman Dashboard > Kunci API.

Kemudian gunakan kunci-api untuk menghasilkan gambar.

Hasilkan Gambar

Titik akhir generasi gambar memungkinkan Anda untuk membuat gambar dari deskripsi teks. Anda dapat mengontrol berbagai aspek dari proses generasi melalui parameter.

Praktik Terbaik

  1. Rekayasa Prompt

    • Spesifik dan deskriptif dalam prompt Anda
    • Gunakan istilah artistik untuk panduan gaya
    • Sertakan detail tentang pencahayaan, perspektif, dan suasana hati
  2. Pemilihan Rasio Aspek

    • Pilih berdasarkan kasus penggunaan yang dimaksud
    • 1:1 untuk postingan media sosial
    • 16:9 untuk presentasi/spanduk
    • 9:16 untuk konten seluler
  3. Generasi Asinkron

    • Gunakan async=true untuk generasi yang lebih lama
    • Implementasikan polling status untuk pengalaman pengguna yang lebih baik

POST /v1/images/generate

Tubuh Permintaan

{
  "prompt": "string",           // Wajib: Prompt pembuatan gambar
  "negative_prompt": "string",  // Opsional: Hal-hal yang harus dihindari dalam gambar
  "aspect_ratio": "string",    // Wajib: Rasio aspek gambar (default: "1:1")
  "async": boolean             // Opsional: Generasi asinkron (default: false)
}

Rasio Aspek

Rasio aspek gambar. Rasio yang didukung: "1:1", "16:9", "4:3", "3:4", "9:16", "2:3", "3:2".

Respons Sinkron

{
  "id": "img_123",
  "status": "completed",
  "url": "https://cdn.reve-art.com/img_123.png",
  "metadata": {
    "prompt": "your prompt",
    "width": 1024,
    "height": 1024,
    "created_at": "2024-01-01T00:00:00Z"
  }
}

Respons Asinkron

{
  "id": "img_123",
  "status": "pending"
}

Contoh Penggunaan

Python:

import requests

api_key = "your_api_key"
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

response = requests.post(
    "https://api.reve-art.com/v1/reve-image/generate",
    headers=headers,
    json={
        "prompt": "a beautiful sunset over mountains",
        "aspect_ratio": "16:9"
    }
)

if response.ok:
    result = response.json()
    print(f"Image URL: {result['url']}")
else:
    print(f"Error: {response.text}")

Node.js:

async function generateImage(prompt: string) {
  const response = await fetch("https://api.reve-art.com/v1/reve-image/generate", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      prompt,
      aspect_ratio: "1:1",
      async: true,
    }),
  });

  if (!response.ok) {
    throw new Error(`Failed to generate image: ${response.statusText}`);
  }

  const result = await response.json();
  
  if (result.status === "pending") {
    // Polling for completion
    return await checkImageStatus(result.id);
  }

  return result;
}

Periksa Status Gambar

GET /v1/reve-image/status/image_id

Respons

{
  "id": "img_123",
  "status": "completed",
  "url": "https://cdn.reve-art.com/img_123.png",
  "metadata": {
    "prompt": "original prompt",
    "width": 1024,
    "height": 1024,
    "model": "text2image_v1",
    "created_at": "2024-01-01T00:00:00Z"
  }
}

Contoh Penggunaan

async function checkImageStatus(imageId: string) {
  const response = await fetch(
    `https://reve-art.com/v1/reve-image/status/${imageId}/`,
    {
      headers: {
        "Authorization": `Bearer ${apiKey}`,
      },
    }
  );

  if (!response.ok) {
    throw new Error(`Failed to check status: ${response.statusText}`);
  }

  return await response.json();
}

Batas Laju

Permintaan API dibatasi oleh paket langganan Anda dan kredit yang tersedia.

  • Setiap generasi gambar membutuhkan 1 kredit
  • Paket gratis: 3 kredit disertakan
  • Paket dasar: 100 kredit per bulan
  • Batas laju: 10 permintaan per menit
  • Jika Anda membutuhkan lebih banyak kredit, silakan tingkatkan paket Anda atau beli lebih banyak kredit.