Kısaca
Grok resimden videoya API'si, statik bir görüntüyü video klibe dönüştürmek için grok-imagine-video modelini kullanır. Görüntü URL'nizi, bir istemi ve isteğe bağlı ayarları https://api.x.ai/v1/videos/generations adresine POST edersiniz. API hemen bir request_id döndürür. Daha sonra status "done" olana kadar GET /v1/videos/{request_id} adresini yoklarsınız (poll). Süre 1 ila 15 saniye arasında değişir. 480p çıktı için fiyatlandırma saniye başına 0,05 dolardan başlar.
Giriş
28 Ocak 2026'da xAI, genel API erişimi için grok-imagine-video modelini piyasaya sürdü. İlk ay içinde model 1,2 milyar video üretti ve Yapay Analiz metinden videoya liderlik tablosunda bir numara oldu. Resimden videoya dönüştürme, amiral gemisi özelliklerden biri: API'ye bir fotoğraf ve açıklayıcı bir istem verirsiniz, o da fotoğrafı MP4 olarak indirilebilecek kısa bir video klibe dönüştürür.
Bir görevi gönderdiğiniz ve tamamlanmasını beklediğiniz bu eşzamansız akış, birçok geliştiricinin atladığı bir test zorluğu getirir. İlk POST 200 döndürdüğünde entegrasyonunuz bitmiş olmaz. Entegrasyonunuz, yoklama döngüsünün "processing", "done" ve "failed" durumlarını gerçek ağ koşulları altında doğru şekilde ele aldığını onayladığınızda tamamlanır.
Apidog'un Test Senaryoları bu sorunu doğrudan çözer. Zincirleme bir dizi oluşturabilirsiniz: /v1/videos/generations adresine POST yapın, request_id'yi çıkarın, status == "done" olana kadar yoklama isteğini döngüye alın, ardından video URL'sinin mevcut olduğunu onaylayın. Bu kılavuzun ilerleyen kısımlarındaki test anlatımını takip etmek için Apidog'u ücretsiz indirin.
Grok Resimden Videoya API'si Nedir?
Grok resimden videoya API'si, xAI'nin video üretim ürününün bir parçasıdır. grok-imagine-video modeli altında çalışır ve çıktı videonun başlangıç karesi olarak bir resim kabul eder. Model, resim içeriğini ve metin istemini inceler, ardından sahneyi canlandırmak için doğal hareketler üretir.
API uç noktası:
POST https://api.x.ai/v1/videos/generations
Kimlik doğrulama için standart Bearer token kullanılır:
Authorization: Bearer YOUR_XAI_API_KEY
Anahtarınızı xAI konsolundan alabilirsiniz. Aynı API ayrıca metinden videoya dönüştürmeyi (image parametresi olmadan), video uzantılarını ve video düzenlemelerini de destekler.
Resimden Videoya İşlemi Nasıl Çalışır?
İstek gövdesindeki image parametresi, çıktı videonun ilk karesini belirtir. Model resmi değiştirmez, doğrudan o kareden başlar. İlk karedeki her piksel, kaynak resminizden gelir. Model daha sonra isteminize göre o sahnenin zaman içinde nasıl ilerleyeceğini tahmin eder.
Örnek: Bir göl fotoğrafı verin, isteminiz "sabah sisi sürüklenirken su yüzeyinde hafif dalgalar yayılıyor" olsun. Çıktının ilk karesi sizin fotoğrafınızdır; sonraki kareler, su ve sisin canlanmış halini gösterir.
Metinden videoya dönüştürmeden farkı: Model, ilk kareyi kendi başına oluşturmaz, gönderdiğiniz resimden başlar. Böylece başlangıç sahnesi üzerinde tam kontrol sağlanır.
Resimden videoya tercih edin:
- Ürün fotoğraflarınızı veya marka görsellerinizi hareketlendirmek istiyorsanız.
- İlk karede tutarlı bir görsel kimlik gereksiniminiz varsa.
- Hareketin belirli bir sahneye dayalı olmasını istiyorsanız.
Metinden videoya tercih edin:
- Referans bir görüntünüz yoksa.
- Modelin sahne kompozisyonunu kendi başına oluşturmasını istiyorsanız.
- İlk kare hassasiyeti önemli değilse.
Ön Koşullar
Başlamadan önce:
- console.x.ai adresinden xAI hesabı alın.
- xAI konsolundan API anahtarınızı alın ve bir ortam değişkeninde saklayın.
- Python 3.8+ veya Node.js 18+ kurulu olmalı.
- Herkese açık bir resim URL'si veya base64 kodlu bir resim dosyanız olmalı.
Anahtarınızı ortam değişkeni olarak ayarlayın:
export XAI_API_KEY="your_key_here"
Daha üst düzey istemci için xAI Python SDK'sı:
pip install xai-sdk
Ham HTTP çağrıları için ek paket gerekmez (requests/fetch yeterli).
İlk Resimden Videoya İsteğinizi Yapma
Curl Kullanarak
curl -X POST https://api.x.ai/v1/videos/generations \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video",
"prompt": "Gentle waves move across the surface, morning mist rises slowly",
"image": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/24701-nature-natural-beauty.jpg/1280px-24701-nature-natural-beauty.jpg"
},
"duration": 6,
"resolution": "720p",
"aspect_ratio": "16:9"
}'
Yanıt:
{
"request_id": "d97415a1-5796-b7ec-379f-4e6819e08fdf"
}
Video hazır değil; yoklama gereklidir.
Python Kullanarak (Ham İstekler)
import os
import requests
api_key = os.environ["XAI_API_KEY"]
payload = {
"model": "grok-imagine-video",
"prompt": "Gentle waves move across the surface, morning mist rises slowly",
"image": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/24701-nature-natural-beauty.jpg/1280px-24701-nature-natural-beauty.jpg"
},
"duration": 6,
"resolution": "720p",
"aspect_ratio": "16:9"
}
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
response = requests.post(
"https://api.x.ai/v1/videos/generations",
json=payload,
headers=headers
)
data = response.json()
request_id = data["request_id"]
print(f"Job started: {request_id}")
Base64 Resim Kullanarak
Yerel/özel bir dosya için:
import base64
with open("my_image.jpg", "rb") as f:
encoded = base64.b64encode(f.read()).decode("utf-8")
payload["image"] = {
"url": f"data:image/jpeg;base64,{encoded}"
}
Sonuç İçin Yoklama
Video oluşturma eşzamansızdır. request_id ile durum uç noktasını yoklayın:
GET https://api.x.ai/v1/videos/{request_id}
Durumlar:
| Durum | Anlamı |
|---|---|
"processing" |
Video işleniyor |
"done" |
Video hazır, URL yanıtta |
"failed" |
Bir hata oluştu |
Tamamlanmış örnek yanıt:
{
"status": "done",
"video": {
"url": "https://vidgen.x.ai/....mp4",
"duration": 6
},
"progress": 100
}
Tam Python Yoklama Döngüsü
import time
def poll_video(request_id: str, api_key: str, interval: int = 5) -> dict:
url = f"https://api.x.ai/v1/videos/{request_id}"
headers = {"Authorization": f"Bearer {api_key}"}
while True:
response = requests.get(url, headers=headers)
data = response.json()
status = data.get("status")
print(f"Status: {status} | Progress: {data.get('progress', 0)}%")
if status == "done":
return data["video"]
elif status == "failed":
raise RuntimeError(f"Video generation failed for {request_id}")
time.sleep(interval)
# Kullanım
video = poll_video(request_id, api_key)
print(f"Video URL: {video['url']}")
print(f"Süre: {video['duration']}s")
Yoklama aralığını 5 saniye ve üzeri tutun. API'nin dakikada 60 istek limiti vardır.
xAI Python SDK'sını Kullanma
xai-sdk ile eşzamansız desen otomatik olarak yönetilir:
from xai_sdk import Client
import os
client = Client(api_key=os.environ["XAI_API_KEY"])
video = client.video.generate(
model="grok-imagine-video",
prompt="Gentle waves move across the surface, morning mist rises slowly",
image={"url": "https://example.com/landscape.jpg"},
duration=6,
resolution="720p",
aspect_ratio="16:9"
)
print(f"Video URL: {video.url}")
print(f"Süre: {video.duration}s")
SDK, yoklama, hata yönetimi ve durum kontrollerini sizin için yapar.
Çözünürlük, Süre ve En Boy Oranını Kontrol Etme
Grok video API'si çıktı üzerinde tam kontrol sunar.
Süre
duration parametresi 1–15 saniye arası değer alır (varsayılan: 6).
"duration": 10
Daha uzun videolar daha pahalıdır.
Çözünürlük
| Değer | Açıklama |
|---|---|
| "480p" | Varsayılan. Daha ucuz, hızlı üretim. |
| "720p" | Yüksek kalite, daha pahalı. |
"resolution": "720p"
En Boy Oranı
| Değer | Kullanım Durumu |
|---|---|
| "16:9" | Geniş ekran, manzara |
| "9:16" | Dikey, mobil/sosyal medya |
| "1:1" | Kare, küçük resimler |
| "4:3" | Klasik fotoğraf/sunum |
| "3:4" | Portre |
| "3:2" | Standart fotoğraf |
| "2:3" | Uzun portre |
Bir image verdiğinizde, varsayılan olarak kaynak boyutunu kullanır. Farklı bir oran için açıkça belirtin.
Stil Rehberliği için Referans Resimler Kullanma
-
image: Videonun ilk karesi olan kaynak fotoğraf. -
reference_images: Videonun stilini, içeriğini veya görsel bağlamını yönlendiren maksimum 7 resim. Bunlar kare olarak kullanılmaz.
Örnek:
{
"model": "grok-imagine-video",
"prompt": "Temiz beyaz bir yüzeyde yavaşça dönen bir ürün",
"image": {"url": "https://example.com/product-shot.jpg"},
"reference_images": [
{"url": "https://example.com/brand-style-reference-1.jpg"},
{"url": "https://example.com/lighting-reference.jpg"}
],
"duration": 6,
"resolution": "720p"
}
İlk kare product-shot.jpg olur, referans resimler ise stil ve aydınlatmayı yönlendirir.
İlk kare olmadan sadece referanslarla da metinden videoya çıkışı alabilirsiniz.
Videoları Genişletme ve Düzenleme
Bir Videoyu Genişletme
Mevcut bir videoyu uzatmak için:
curl -X POST https://api.x.ai/v1/videos/extensions \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video",
"video_id": "your_original_request_id",
"prompt": "Güneş ışığı içeri girerken sis yükselmeye devam ediyor",
"duration": 5
}'
Yine eşzamansız — yoklama ile ilerleyin.
Bir Videoyu Düzenleme
Mevcut bir videoda düzenleme yapmak için:
curl -X POST https://api.x.ai/v1/videos/edits \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video",
"video_id": "your_original_request_id",
"prompt": "Gökyüzünü derin turuncu tonlarla dramatik bir gün batımına dönüştür"
}'
Genişletme ve düzenleme işlemleri de yoklama gerektirir.
Fiyatlandırma Detayları: 10 Saniyelik Bir Video Ne Kadar Tutar?
| Bileşen | Maliyet |
|---|---|
| Giriş görüntüsü | Resim başına 0,002 $ |
| 480p çıktı | Saniye başına 0,05 $ |
| 720p çıktı | Saniye başına 0,07 $ |
Örnek: 720p'de 10 saniyelik video
- Giriş: 0,002 $
- Çıktı: 10 × 0,07 $ = 0,70 $
- Toplam: 0,702 $
Örnek: 480p'de 6 saniyelik video
- Giriş: 0,002 $
- Çıktı: 6 × 0,05 $ = 0,30 $
- Toplam: 0,302 $
Aynı görüntü URL'sini tekrar kullansanız bile, her istek için giriş ücreti alınır.
Metinden videoya (image yok) 0,002 $ giriş ücreti alınmaz.
Grok Video API Entegrasyonunuzu Apidog ile Nasıl Test Edersiniz?
Eşzamansız desen, klasik tek seferlik istek testlerinin ötesinde bir otomasyon gerektirir. Doğrulanması gerekenler:
- Oluşturma isteği bir
request_iddöndürür. - Yoklama isteği "processing" durumunu doğru yönetir.
- Nihai yanıtta
status == "done"ve boş olmayan bir video URL'si vardır.
Apidog'un Test Senaryoları ile bu akışı otomatikleştirin:
Adım 1: Yeni Test Senaryosu Oluşturun
- Apidog Testler modülünden yeni bir senaryo oluşturun. Örn: "Grok resimden videoya eşzamansız akış".
Adım 2: Oluşturma İsteğini Ekleyin
-
POST isteği ekleyin:
- URL:
https://api.x.ai/v1/videos/generations - Header:
Authorization: Bearer {{xai_api_key}} - Body:
{ "model": "grok-imagine-video", "prompt": "Işık ağaçların arasından süzülürken sudan hafif sis yükseliyor", "image": { "url": "https://example.com/your-test-image.jpg" }, "duration": 6, "resolution": "480p" } - URL:
Adım 3: request_id'yi Çıkarın
- Değişken Çıkarıcı ekleyin:
- Ad:
video_request_id - JSONPath:
$.request_id
- Ad:
Adım 4: Yoklama Döngüsü Oluşturun
- For döngüsü oluşturun, içinde:
- GET isteği:
https://api.x.ai/v1/videos/{{video_request_id}} - Authorization Header:
Bearer {{xai_api_key}} - Değişken Çıkarıcı:
video_status($.status) - Wait: 5000ms
- Break If:
{{video_status}} == "done"
- GET isteği:
Adım 5: Video URL'sini Doğrulayın
- Son bir GET adımı ekleyin.
- Assertion:
$.video.urlboş değil.
Senaryoyu çalıştırın; Apidog tüm akışı otomatikleştirir. CLI ile CI/CD entegrasyonuna da uygundur:
apidog run --scenario grok-video-async-flow --env production
Yaygın Hatalar ve Düzeltmeler
401 Yetkilendirilmemiş
- API anahtarınızı ve Authorization başlığını kontrol edin.
422 İşlenemeyen Varlık
- Gövdeyi ve zorunlu alanları doğrulayın. Görüntü URL'sinin erişilebilir olduğundan emin olun.
Resim URL'si erişilemiyor
- Genel bir CDN veya base64 veri URI'si kullanın.
Durum hep "processing"
- Uzun sürede de tamamlanabilir; 10 dakikadan uzun sürerse yeni istek gönderin.
429 Hız limiti hatası
- Dakikada 60, saniyede 1 istek limitine uyun. Yoklama aralığını artırın.
Base64 yüklemesi reddedildi
- Doğru MIME önekini (
data:image/jpeg;base64,) ekleyin.
En boy oranı uyumsuzluğu
- Kaynak görsel oranını ve
aspect_ratio'yu uyumlu seçin.
Sonuç
Grok resimden videoya API'si, statik bir fotoğraftan kısa, animasyonlu bir klibe doğrudan yol sunar. Fotoğraf ve istemi POST edersiniz, bir request_id alırsınız, bitene kadar yoklarsınız, ardından MP4'ü indirirsiniz. grok-imagine-video modeli Ocak 2026'da liderliğe ulaştı ve ilk ayında 1 milyardan fazla video üretildi.
Eşzamansız yoklama modeli, entegrasyonlarda en çok hata yapılan noktadır. Apidog'un Test Senaryoları ile Değişken Çıkarıcı, kesme koşullu yoklama döngüsü ve son doğrulama adımlarını otomatikleştirerek entegrasyon hatalarını erkenden yakalayabilirsiniz.
Apidog'u ücretsiz kullanarak entegrasyonunuzu oluşturmaya başlayın. Kredi kartı gerekmez.
Sıkça Sorulan Sorular
Grok resimden videoya API'si için hangi model adını kullanmalıyım?
- Model adı
grok-imagine-video'dur. Gövdedemodelalanı olarak iletin.
image ve reference_images parametreleri arasındaki fark nedir?
-
image: Videonun ilk karesini belirler.reference_images: Stil ve içerik rehberliği sağlar, kare olarak kullanılmaz.
Video oluşturma ne kadar sürer?
- 6 saniyelik 480p video genellikle 1–3 dakika, 15 saniyelik 720p video 4–8 dakika sürebilir. Her 5 saniyede bir yoklama önerilir.
Kaynak resim olarak yerel dosya kullanabilir miyim?
- Evet, base64 veri URI'si olarak gönderin:
data:image/jpeg;base64,{encoded_bytes}.
aspect_ratio belirtmezsem ne olur?
-
imagevarsa, oran otomatik olarak görselin doğal oranı olur. Görüntüsüz metinden videoda varsayılan16:9'dur.
10 saniyelik 720p bir video ne kadar?
- Giriş: 0,002 $, çıktı: 10 × 0,07 $ = 0,70 $, toplam: 0,702 $.
Hız limitleri nelerdir?
- Dakikada 60 ve saniyede 1 istek limiti vardır; POST ve GET toplamı için geçerli.
Bir videoyu 15 saniyenin ötesine uzatabilir miyim?
- Evet,
POST /v1/videos/extensionsile ek oluşturma geçişleriyle uzatabilirsiniz. Her uzatma ayrı yoklama gerektirir.

Top comments (0)