Text to video vs image to video: lima mode API dijelaskan
Kebanyakan model video menerima lebih dari sekadar prompt. Anda bisa mulai dari gambar, menetapkan frame pertama dan terakhir, mengirim gambar referensi untuk karakter dan produk, atau bekerja dari klip yang sudah ada. Panduan ini menjelaskan setiap mode, kapan memakainya, dan cara memanggilnya.
Lima mode sekilas
Setiap mode memakai endpoint yang sama, POST /v1/generations. Yang berubah adalah input yang Anda kirim di samping prompt.
| Mode | Yang Anda kirim | Cocok untuk |
|---|---|---|
| Text to video | a prompt | menjelajahi ide, b-roll, adegan yang tidak punya gambarnya |
| Image to video | frame awal sebagai image_url, plus prompt | menganimasikan foto produk, karya seni, dan gambar diam dengan tampilan yang persis |
| Frame pertama dan terakhir | image_url dan end_image_url, plus prompt | transisi, reveal, dan shot yang harus berakhir pada gambar tertentu |
| Gambar referensi | beberapa gambar sebagai image_urls, plus prompt | menjaga karakter, produk, dan tempat tetap konsisten di berbagai shot |
| Video to video | klip sumber, plus prompt | mengubah gaya atau mengolah ulang rekaman yang sudah Anda miliki |
Tidak semua model mendukung semua mode. Tabel dukungan di bawah mencakup model utama, dan halaman setiap model di halaman model mencantumkan tugasnya.
Text to video
Text to video adalah mode paling sederhana: Anda mendeskripsikan shot dan model menentukan sisanya, mulai dari wajah dan set hingga warna dan framing. Kebebasan itu berguna saat Anda menjelajahi ide atau butuh rekaman generik, seperti b-roll, establishing shot, atau latar abstrak.
Ini mode yang salah jika video harus menampilkan sesuatu yang spesifik: produk Anda, logo Anda, orang tertentu, atau tata letak yang harus sesuai panduan merek. Setiap generasi mengarang detail itu dari awal, sehingga dua klip dari prompt yang sama tidak akan identik.
Prompt teks yang baik mencakup subjek, aksi, latar, kamera, dan cahaya, serta suara jika model menghasilkannya. Panduan Seedance 2.0 kami punya lebih banyak tips prompt.
Image to video
Dengan image to video, gambar Anda menjadi frame pertama. Semua yang ada di dalamnya (produk, wajah, komposisi, dan warna) tetap sejak awal, dan prompt hanya perlu menjelaskan apa yang terjadi selanjutnya. Ini mode untuk menganimasikan foto produk, ilustrasi, dan key art, serta untuk shot apa pun yang tampilannya harus persis.
Alur kerja yang umum adalah membuat gambar diam lebih dulu dengan model gambar seperti Nano Banana Pro atau GPT Image 2, menyempurnakannya, lalu menganimasikannya. Gambar diam lebih murah dan lebih cepat diiterasi daripada video.
Ini request image to video untuk Seedance 2.0: klip 720p berdurasi 5 detik dengan suara, seharga $0.75. Rasio aspek adaptive menyesuaikan frame dengan bentuk gambar Anda.
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"input": {
"prompt": "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
"image_url": "https://example.com/coffee.jpg",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "adaptive",
"audio": true
},
"max_cost_usd": 2
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "seedance-2.0",
"input": {
"prompt": "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
"image_url": "https://example.com/coffee.jpg",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "adaptive",
"audio": True,
},
"max_cost_usd": 2,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "seedance-2.0",
input: {
prompt: "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
image_url: "https://example.com/coffee.jpg",
resolution: "720p",
duration: 5,
aspect_ratio: "adaptive",
audio: true,
},
max_cost_usd: 2,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);Deskripsikan gerakan, bukan gambarnya: model sudah bisa melihatnya. "Uap naik dan cangkir diangkat" bekerja lebih baik daripada mengulang "cangkir kopi putih di atas meja kayu".
Frame awal dan akhir
Tambahkan end_image_url dan model menghasilkan gerakan di antara dua gambar pilihan Anda. Karena akhirnya sudah ditetapkan, mode ini cocok untuk transisi antar adegan, shot sebelum dan sesudah, reveal produk, dan klip yang harus menyambung mulus ke klip berikutnya. Untuk loop, coba gambar yang sama di kedua ujung.
Kedua frame harus berupa akhir yang masuk akal dari satu shot: adegan, framing, dan cahaya yang sama. Jika terlalu berbeda, model harus mengarang perubahan besar dalam beberapa detik, dan hasilnya jadi kurang terprediksi. Klip Kling 3.0 1080p berdurasi 5 detik tanpa suara ini berharga $0.60:
{
"model": "kling-3.0",
"input": {
"prompt": "Time-lapse: the empty plot fills with a small wooden cabin as the camera holds still, clouds racing overhead",
"image_url": "https://example.com/plot-empty.jpg",
"end_image_url": "https://example.com/plot-cabin.jpg",
"resolution": "1080p",
"duration": 5,
"audio": false
},
"max_cost_usd": 1
}Seedance 2.5, Seedance 2.0, Seedance 2.0 Mini, Veo 3.1, Veo 3.1 Fast, Veo 3.1 Lite, Kling 3.0, Kling 3.0 Omni, Wan 3.0, dan Grok Imagine Video 1.5 mencantumkan frame pertama dan terakhir di katalog. Hailuo 2.3 menerima frame awal tetapi tanpa frame akhir.
Gambar referensi
Gambar referensi bukanlah frame. Model memakainya untuk mempelajari seperti apa seseorang, produk, atau tempat itu, lalu menempatkannya ke shot baru yang dijelaskan prompt. Itu membuat referensi menjadi mode untuk konsistensi: karakter yang sama di sepuluh shot, atau produk yang sama di berbagai latar.
Kirim gambar sebagai image_urls dan rujuk masing-masing berdasarkan posisinya di prompt, misalnya "wanita dari gambar pertama memegang tas dari gambar kedua". Batasnya tergantung model: Seedance 2.5 menerima hingga 30, Wan 3.0 hingga 10, Seedance 2.0 hingga 9, Seedance 2.0 Mini hingga 9, Veo 3.1 Fast hingga 3, dan Veo 3.1 Lite hingga 3. Di model Seedance, kirim frame atau referensi dalam satu request, jangan keduanya.
Request Veo 3.1 Fast 720p berdurasi 8 detik dengan suara ini berharga $0.80:
{
"model": "veo-3.1-fast",
"input": {
"prompt": "The man from the first image walks into the bakery from the second image, picks up a loaf and smiles at the camera. Bell over the door, quiet chatter.",
"image_urls": [
"https://example.com/man.jpg",
"https://example.com/bakery.jpg"
],
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 1.5
}Video to video
Video to video dimulai dari klip yang sudah Anda miliki. Sumber memandu gerakan dan timing, dan prompt menjelaskan apa yang harus berubah: gaya baru, latar baru, atau detail yang berbeda. Cocok untuk mengubah gaya rekaman nyata, mengolah ulang generasi sebelumnya, atau mempertahankan sebuah penampilan sambil mengubah tampilannya.
Di antara model dalam panduan ini, Seedance 2.5, Kling 3.0 Omni, dan Wan 3.0 mencantumkan video to video, dan Kling 3.0 Motion Control juga bekerja dari video sumber. Input untuk klip sumber berbeda-beda per model, jadi periksa halaman modelnya sebelum Anda membangun di atasnya.
Job dengan input video dihargai berbeda pada beberapa model. Di Seedance 2.5, detik yang ditagih adalah output ditambah klip input, dengan tarif with video input yang lebih rendah: klip 720p 10 detik yang dibuat dari sumber 10 detik berharga $3.00, dibanding $2.50 untuk klip yang sama dari prompt. Kling 3.0 Omni mencantumkan tarifnya sendiri untuk job dengan input video, $0.13 per detik pada 720p.
Model mana yang mendukung mode mana
Dari katalog Revana per Oktober 2026:
| Model | Teks | Gambar | Pertama dan terakhir | Referensi | Video |
|---|---|---|---|---|---|
| Seedance 2.5 | yes | yes | yes | yes | yes |
| Seedance 2.0 | yes | yes | yes | yes | no |
| Seedance 2.0 Mini | yes | yes | yes | yes | no |
| Veo 3.1 | yes | yes | yes | no | no |
| Veo 3.1 Fast | yes | yes | yes | yes | no |
| Veo 3.1 Lite | yes | yes | yes | yes | no |
| Kling 3.0 | yes | yes | yes | no | no |
| Kling 3.0 Omni | yes | yes | yes | yes | yes |
| Wan 3.0 | yes | yes | yes | yes | yes |
| Hailuo 2.3 | yes | yes | no | no | no |
| Grok Imagine Video 1.5 | yes | yes | yes | yes | no |
Apakah mode memengaruhi harga?
Umumnya tidak. Model video ditagih berdasarkan detik output, resolusi, dan pada beberapa model, suara. Klip Seedance 2.0 720p berdurasi 5 detik berharga $0.75 baik dimulai dari prompt maupun dari gambar, dan menambahkan frame akhir atau gambar referensi tidak mengubah harga katalog. Pengecualiannya adalah input video, seperti dibahas di atas.
Harga setiap job ditahan dari saldo prabayar Anda saat Anda mengirimnya dan ditagih hanya jika job berhasil. Halaman harga mencantumkan semua tarif.
Cara memilih mode
- Belum punya aset: mulai dengan text to video, atau buat gambar diam dengan model gambar lalu animasikan.
- Tampilan harus persis: image to video, dari frame yang sudah Anda setujui.
- Akhir shot penting: frame pertama dan terakhir.
- Karakter atau produk yang sama di banyak shot: gambar referensi.
- Sudah punya rekaman: video to video.
Field atau nilai yang tidak didukung model ditolak dengan 422 sebelum ada yang ditagih, sehingga mode yang salah tidak memakan biaya. Referensi field lengkap: dokumentasi.
Siap mencoba? Dapatkan kunci API dan kirim request pertama Anda.
Pertanyaan yang sering diajukan
Apa perbedaan antara text to video dan image to video?
Text to video bekerja hanya dari prompt, sehingga model mengarang semua yang ada di shot. Image to video memakai gambar Anda sebagai frame pertama, sehingga tampilannya tetap dan prompt hanya menjelaskan gerakannya.
Apakah image to video lebih mahal daripada text to video?
Tidak menurut harga katalog. Model video ditagih berdasarkan detik output, resolusi, dan pada beberapa model, suara. Klip Seedance 2.0 720p berdurasi 5 detik berharga $0.75 dengan cara apa pun per Oktober 2026.
Apa itu frame pertama dan terakhir?
Anda mengirim gambar awal sebagai image_url dan gambar akhir sebagai end_image_url, lalu model menghasilkan gerakan di antara keduanya. Berguna untuk transisi, reveal, dan loop.
Berapa banyak gambar referensi yang bisa saya kirim?
Tergantung modelnya: Seedance 2.5 hingga 30, Wan 3.0 hingga 10, Seedance 2.0 hingga 9, Seedance 2.0 Mini hingga 9, Veo 3.1 Fast hingga 3, dan Veo 3.1 Lite hingga 3.
Bisakah saya menggabungkan frame awal dengan gambar referensi?
Tidak di model Seedance: kirim frame atau referensi dalam satu request, jangan keduanya.
Model mana yang mendukung video to video?
Di antara model utama, Seedance 2.5, Kling 3.0 Omni, dan Wan 3.0 mencantumkan video to video, begitu juga Kling 3.0 Motion Control. Halaman model mencantumkan tugas untuk setiap model.
Coba semua mode dengan satu kunci
Job teks, gambar, frame, dan referensi semuanya memakai request yang sama di Revana. Kredit prabayar mulai dari $10.