Langsung ke konten utama

Ringkasan

Generasi video berjalan secara asinkron. Anda mengirim permintaan, menerima task_id dan poll_url, lalu memeriksa status secara berkala sampai hasil akhirnya siap.
Untuk perilaku pengecekan status yang paling andal, gunakan poll_url yang dikembalikan oleh respons pembuatan secara persis.
Jika respons create mengembalikan poll_url, panggil URL tersebut secara persis. Saat URL itu mengarah ke /v1/tasks/{id}, perlakukan itu sebagai endpoint status tetap yang kanonik.
Output audio bergantung pada model. Di LemonData, keluarga Veo 3 akan menyalakan audio secara default ketika output_audio dihilangkan. Jika model mendukung kontrol audio, gunakan output_audio untuk menyalakan atau mematikannya secara eksplisit. Alias camelCase outputAudio juga diterima untuk kompatibilitas.
Untuk integrasi produksi, sebaiknya gunakan URL https publik untuk gambar, video, dan audio. Model yang kompatibel masih menerima URL data:, tetapi muatan base64 yang besar lebih sulit untuk dicoba ulang, diinspeksi, dan di-debug.

Request body

model
string
default:"sora-2"
ID model video. Default API adalah sora-2. Lihat panduan generasi video untuk matriks model publik saat ini dan kemampuan yang didukung.
prompt
string
wajib
Deskripsi teks video yang ingin Anda hasilkan. Field ini wajib untuk sebagian besar model video publik.
operation
string
Operasi video yang akan dijalankan. Kontrak publik mendukung text-to-video, image-to-video, reference-to-video, start-end-to-video, video-to-video, video-extension, audio-to-video, dan motion-control. LemonData bisa menebak operasi berdasarkan input yang Anda kirim, tetapi untuk traffic produksi sebaiknya operation dikirim secara eksplisit.
image_url
string
URL publik dari gambar awal untuk alur image-to-video. Untuk kompatibilitas lintas-model yang paling luas, sebaiknya gunakan image_url.
image
string
Gambar inline dalam bentuk URL data: (misalnya data:image/jpeg;base64,...). Model yang kompatibel mendukung format ini, tetapi dalam praktik produksi image_url biasanya lebih stabil.
reference_images
array
Gambar referensi untuk alur reference-to-video. Anda dapat mengirim hingga 3 item. URL https publik lebih direkomendasikan, walaupun model yang kompatibel juga menerima URL data:.
reference_image_type
string
Field opsional untuk model yang membedakan referensi asset dan style.
video_url
string
URL publik dari video sumber. Field ini diperlukan untuk alur publik video-to-video saat ini dan untuk model motion-control.
audio_url
string
URL audio publik untuk model yang mendukung audio-to-video.
task_id
string
ID tugas dari penyedia untuk beberapa alur lanjutan, ekstensi, atau turunan tertentu.
extend_at
integer
Offset awal khusus model yang dipakai oleh beberapa alur video-extension.
extend_times
string
Pengali atau jumlah pengulangan khusus model yang dipakai oleh beberapa alur video-extension.
duration
integer
Durasi video dalam detik. Nilai yang diizinkan bergantung pada model.
aspect_ratio
string
Rasio aspek, misalnya 16:9, 9:16, atau 1:1.
resolution
string
Resolusi output, misalnya 720p, 1080p, atau 4k. Ketersediaannya bergantung pada model.
output_audio
boolean
Sakelar output audio yang bergantung pada model. Di LemonData, keluarga Veo 3 menggunakan true sebagai default ketika field ini dihilangkan. Alias camelCase outputAudio juga diterima untuk kompatibilitas.
fps
integer
Frame per detik (1-120). Hanya berlaku pada model yang mengekspos kontrol FPS.
negative_prompt
string
Elemen yang ingin dihindari dalam video yang dihasilkan.
seed
integer
Seed acak untuk hasil yang dapat direproduksi.
cfg_scale
number
Kekuatan kepatuhan terhadap prompt (0-20) pada model yang mengekspos kontrol ini.
motion_strength
number
Intensitas gerakan (0-1) pada model yang mengekspos kontrol ini.
start_image
string
URL gambar frame pertama, atau input gambar yang kompatibel, untuk start-end-to-video.
end_image
string
URL gambar frame terakhir, atau input gambar yang kompatibel, untuk start-end-to-video.
size
string
Tingkat ukuran khusus model untuk beberapa model video yang kompatibel dengan OpenAI.
watermark
boolean
Sakelar watermark untuk model yang mengeksposnya secara publik.
effect_type
string
Pemilih efek khusus model untuk alur efek atau editing tertentu.
user
string
Pengidentifikasi unik untuk end-user.

Catatan kompatibilitas

  • Field publik kanonis menggunakan snake_case: reference_images, reference_image_type, dan output_audio.
  • Untuk kompatibilitas, LemonData juga menerima alias camelCase referenceImages, referenceImageType, dan outputAudio.
  • Jika operation tidak dikirim, LemonData akan menebaknya dari input yang tersedia. Meski begitu, untuk produksi tetap disarankan untuk mengirimkannya secara eksplisit.

Praktik terbaik untuk input media

  • Untuk image_url, reference_images, video_url, dan audio_url, sebaiknya gunakan URL https publik.
  • Jika memungkinkan, hindari mencampur base64 inline dan URL jarak jauh dalam permintaan yang sama.
  • Jika Anda menggunakan signed URL, pastikan masa berlakunya cukup panjang untuk menutupi coba ulang dan pembuatan tugas asinkron.

Respons

id
string
Identifier tugas asinkron kanonik. Saat id dan task_id sama-sama ada, perlakukan keduanya sebagai identitas tugas yang sama.
task_id
string
Pengidentifikasi tugas unik untuk pengecekan status.
poll_url
string
URL pengecekan status yang direkomendasikan untuk tugas ini. Gunakan path ini secara persis saat memeriksa status.
status
string
Status awal: pending.
created
integer
Unix timestamp saat tugas dibuat.
model
string
Model yang digunakan.
curl -X POST "https://api.lemondata.cc/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "A cat walking through a garden, cinematic lighting",
    "operation": "text-to-video",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "model": "sora-2",
  "created": 1706000000
}

Image to video

response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "hailuo-2.3-standard",
        "prompt": "The scene begins from the provided image and adds gentle natural motion.",
        "operation": "image-to-video",
        "image_url": "https://example.com/image.jpg",
        "duration": 6,
        "aspect_ratio": "16:9"
    }
)

Reference to video

Jika model mendukung conditioning berbasis gambar referensi, gunakan operation=reference-to-video. Dalam kontrak publik LemonData, referensi dikirim melalui reference_images.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "veo3.1",
        "prompt": "Keep the same subject identity, palette, and framing while adding subtle natural motion.",
        "operation": "reference-to-video",
        "reference_images": [
            "https://example.com/ref-a.jpg",
            "https://example.com/ref-b.jpg"
        ],
        "reference_image_type": "asset",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)

Kontrol frame awal dan akhir

Gunakan start_image dan end_image untuk mengontrol frame pertama dan frame terakhir.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "viduq2-pro",
        "prompt": "Smooth transition from day to night",
        "operation": "start-end-to-video",
        "start_image": "https://example.com/day.jpg",
        "end_image": "https://example.com/night.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
    }
)

Video to video

Jika model menerima video yang sudah ada sebagai input utama, gunakan operation=video-to-video.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "topaz-video-upscale",
        "operation": "video-to-video",
        "video_url": "https://example.com/source.mp4",
        "prompt": "Upscale the clip while preserving the original motion.",
        "resolution": "1080p"
    }
)

Motion control

Jika model membutuhkan gambar subjek sekaligus video referensi gerakan, gunakan operation=motion-control. LemonData akan menormalkan bentuk publik image_url + video_url ke kontrak upstream yang sesuai.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "kling-3.0-motion-control",
        "operation": "motion-control",
        "prompt": "Keep the subject stable while following the motion reference.",
        "image_url": "https://example.com/subject.png",
        "video_url": "https://example.com/motion.mp4",
        "resolution": "720p"
    }
)

Ketersediaan audio-to-video dan video-extension saat ini

Kontrak publik LemonData menerima audio-to-video dan video-extension untuk alur khusus model tertentu. Namun, dalam inventaris model publik yang umumnya diaktifkan pada build dokumentasi ini, belum ada model yang secara luas diaktifkan dan secara publik mengiklankan dua kemampuan tersebut. Sebelum mengintegrasikan alur ini, cek ketersediaan terbaru melalui Models API atau halaman model.

Inventaris model video publik yang sedang aktif

Daftar ini diselaraskan dengan inventaris model video publik yang aktif pada build dokumentasi ini. Untuk kondisi terbaru, gunakan Models API.

OpenAI

ModelOperasi publik
sora-2Teks ke video, image-to-video
sora-2-proTeks ke video, image-to-video
sora-2-pro-storyboardImage-to-video

Kuaishou

ModelOperasi publik
kling-3.0-motion-controlMotion control
kling-3.0-videoTeks ke video, image-to-video, start-end-to-video
kling-v2.5-turbo-proTeks ke video, image-to-video, start-end-to-video
kling-v2.5-turbo-stdTeks ke video, image-to-video
kling-v2.6-proTeks ke video, image-to-video, start-end-to-video
kling-v2.6-stdTeks ke video, image-to-video
kling-v3.0-proTeks ke video, image-to-video, start-end-to-video
kling-v3.0-stdTeks ke video, image-to-video, start-end-to-video
kling-video-o1-proTeks ke video, image-to-video, reference-to-video, start-end-to-video, video-to-video
kling-video-o1-stdTeks ke video, image-to-video, reference-to-video, start-end-to-video, video-to-video

Google

ModelOperasi publik
veo3Teks ke video, image-to-video
veo3-fastTeks ke video, image-to-video
veo3-proTeks ke video, image-to-video
veo3.1Teks ke video, image-to-video, reference-to-video, start-end-to-video
veo3.1-fastTeks ke video, image-to-video, reference-to-video, start-end-to-video
veo3.1-proTeks ke video, image-to-video, start-end-to-video

ByteDance

ModelOperasi publik
seedance-1.5-proTeks ke video, image-to-video

MiniMax

ModelOperasi publik
hailuo-2.3-fastImage-to-video
hailuo-2.3-proTeks ke video, image-to-video
hailuo-2.3-standardTeks ke video, image-to-video

Alibaba

ModelOperasi publik
wan-2.2-plusTeks ke video, image-to-video
wan-2.5Teks ke video, image-to-video
wan-2.6Teks ke video, image-to-video, reference-to-video

Shengshu

ModelOperasi publik
viduq2Teks ke video, reference-to-video
viduq2-proImage-to-video, reference-to-video, start-end-to-video
viduq2-pro-fastImage-to-video, start-end-to-video
viduq2-turboImage-to-video, start-end-to-video
viduq3-proTeks ke video, image-to-video, start-end-to-video
viduq3-turboTeks ke video, image-to-video, start-end-to-video

xAI

ModelOperasi publik
grok-imagine-image-to-videoImage-to-video
grok-imagine-text-to-videoTeks ke video
grok-imagine-upscaleVideo-to-video

Lainnya

ModelOperasi publik
topaz-video-upscaleVideo-to-video