Panduan

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 generasi video
ModeYang Anda kirimCocok untuk
Text to videoa promptmenjelajahi ide, b-roll, adegan yang tidak punya gambarnya
Image to videoframe awal sebagai image_url, plus promptmenganimasikan foto produk, karya seni, dan gambar diam dengan tampilan yang persis
Frame pertama dan terakhirimage_url dan end_image_url, plus prompttransisi, reveal, dan shot yang harus berakhir pada gambar tertentu
Gambar referensibeberapa gambar sebagai image_urls, plus promptmenjaga karakter, produk, dan tempat tetap konsisten di berbagai shot
Video to videoklip sumber, plus promptmengubah 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.

cURL
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"
Python
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.js
// 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:

Body permintaan
{
  "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:

Body permintaan
{
  "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:

Mode generasi yang didukung setiap model
ModelTeksGambarPertama dan terakhirReferensiVideo
Seedance 2.5yesyesyesyesyes
Seedance 2.0yesyesyesyesno
Seedance 2.0 Miniyesyesyesyesno
Veo 3.1yesyesyesnono
Veo 3.1 Fastyesyesyesyesno
Veo 3.1 Liteyesyesyesyesno
Kling 3.0yesyesyesnono
Kling 3.0 Omniyesyesyesyesyes
Wan 3.0yesyesyesyesyes
Hailuo 2.3yesyesnonono
Grok Imagine Video 1.5yesyesyesyesno

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.