Runway Act-One Nedir?
Runway Act-One, durağan karakter görsellerini video girdisiyle canlandıran bir araçtır. Hadi nasıl çalıştığına bakalım:
Bu video şu şekilde oluşturuldu:
- İnsan oyuncuya ait bir video; ve
- Animasyon karakterinin durağan bir görseli.
Runway Act-One, ardından karakteri insan oyuncunun yüz hareketleri ve mimiklerini yansıtacak şekilde canlandırır.

Karakterleri canlandırmak, sıfırdan yalnızca üst düzey eğitimli profesyonellerin yapabildiği sofistike bir süreçtir. Act-One, kişinin yalnızca kendini kaydedip canlandırmak istediği karakterin durağan görselini sağlayarak herkese karakter canlandırma imkânı sunarak oyunu değiştirmeyi hedefliyor.
Ve bu, animasyon karakterlerle sınırlı değil. Sinematik ve gerçekçi karakterlerde de çalışıyor. Ayrıca, karakterlerin karşılıklı konuştuğu kısa videoları bir araya getirerek etkileyici bir diyalog da oluşturabiliriz:
Runway Act-One'ı Test Etmek İçin Kendimi Çektim
Kendi başımıza Runway Act-One’ı keşfedelim. 125 kredi ve kuyruğa alma seçenekleri sunan bir ücretsiz katman mevcut olsa da, Act-One bu katmana dahil değil ve abonelik gerektiriyor.
Önce Runway’in giriş sayfasına gidin ve giriş yapın veya bir hesap oluşturun. Ardından mevcut planlardan birine abone olun. Abonelik olsa bile oluşturabileceğimiz video sayısının sınırlı olduğunu not etmek önemli. Ben aylık 15 $’lık aboneliği denedim; 625 kredi verdi (artı 125 ücretsiz krediyle toplam 750 kredi).
Runway Act-One nasıl açılır
Act-One ile bir video oluşturmak için paneldeki “Hemen deneyin” düğmesine tıklayın.

Act-One arayüzü kullanması nispeten kolay. Aşağıdaki görselde şunları görebilirsiniz:
- Üst kısımda, animasyonu yönlendirecek sürücü videoyu seçiyoruz.
- Alt kısımda, canlandırmak istediğimiz karakter referans görselini seçiyoruz.

Kendimi canlandırarak Runway Act-One’ı test etmek
Denemek için, şaşırmış bir yüz ifadesiyle kendimi çektim ve köpek karakter referanslarını kullanarak denedim.

Ortaya çıkan videoyu ancak idare eder buldum. Yüz ifadesi çok belirgin değil, ama yine de benimkine uyuyor.
Aynı karakterle başka deneyler de yaptım ve Runway Act-One beni hiç etkilemedi. Bazı durumlarda hiç ifade bile yoktu. Aşağıdaki örnekte, benim yüz ifadem olmasına rağmen köpek hiç hareket etmedi.

Ben oyuncu değilim, belki sorun budur. Ancak Act-One’ın amacı herkesi karakter canlandırabilir hâle getirmekse, sektör deneyimi olmayan herkesin gerçekten kullanabileceği bir noktaya gelmesi için daha yolu var gibi duruyor.
Ayrıca özel karakter görselleri kullanmayı da imkânsız buldum. Dall-E 3 ile yaklaşık 10 farklı karakter ürettim ve Runway her seferinde bir yüz bulmayı başaramadı. İşte bir örnek:

Bu, bana sergilenen örneklerin seçilerek derlendiğini ve modelin genel kullanıma hazır olmadığını düşündürüyor. Yine de insan karakterlerle denedim ve çalıştı. Yani modelin henüz özel animasyon karakterlerini desteklememesi söz konusu olabilir.
İnsan karakterle bir örnek şöyle:

İnsan yüzü kullanınca sonuç çok daha iyiydi ve çıktının doğruluğu daha yüksekti. Ancak bu kullanım senaryosu daha az etkileyici görünüyor; zira insanın doğrudan oynamasını sağlayabiliriz.
Fiyatlandırmaya dair bir not
Çıktı video uzunluğu, girdi videosuyla eşleşir ve harcanan krediler videonun uzunluğuna göre düşülür.
Act-One'ı Runway Gen-3 Alpha ile Birleştirmek
Runway ML bu yıl Haziran ayında, durağan bir görsel ve metin istemine dayalı videolar oluşturan Gen-3 Alpha modelini tanıttı.
Act-One yüz yakın planlarına odaklandığı için bu iki model birbirini tamamlıyor. Act-One diyalogları oluşturmak için, Gen-3 Alpha ise diyaloglar arasındaki sahneleri üretmek için kullanılabilir.
Gen-3 Alpha ile bir video üretin
Gen-3 Alpha’ya geçmek için soldaki “T” simgesine tıklayın (aşağıdaki görselde #1).

Bu modelin girdileri bir görsel (#2) ve bir metin istemidir (#3). Runway, metin isteminin şu formatı takip etmesini öneriyor:
[camera movement]: [establishing scene]. [additional details].
Örneğin:
Low-angle static shot: The camera is angled up at a woman wearing all orange as she stands in a tropical rainforest with colorful flora. The dramatic sky is overcast and gray.
Yakın zamanda çektiğim bir fotoğrafı canlandırmak için denedim. Kullandığım girdiler şunlardı:

Ve sonuç şöyleydi:
Sonucu beğendim. Tekne güneşten uzaklaştıkça ışık hoş görünüyor ve suyun hareketi akıcı.
Ancak sonuç, başlangıçta hayal ettiğimden oldukça farklı. Bu kesinlikle video üreticilerinin başlıca sorunlarından biri: sahnedeki her detayı kontrol edememek; bu, geleneksel film yapım yöntemlerinde mümkün. Bu sınırlama devam ederse, gelecekte yapay zekâ kullanan yönetmenler, özgün vizyonlarını gerçekleştirmek yerine yapay zekâ tarafından üretilen sahnelerle sınırlı kalabilir.
Act-One’dan yakın planlarla birleştirin
Bu örnekte, üç farklı video klibini yaratıcı şekilde birleştirebiliriz.
Önce, suda ilerleyen bir teknenin videosu var. Bu klip mekânı kurar ve sonraki eylemler için bağlam sağlar.
Ardından, kıyıda duran bir karakterin, tekneye sabitlenmiş ve özlem duygusunu ifade eden bakışına yakın plan bir çekim olabilir.
Son olarak, karakterin bakış açısından, teknenin kıyıdan uzaklaştığı bir video. Bu üçüncü klip hareket ve ilerleme hissi verir.
Runway ML API’sini Python ile Kullanma
Runway ML, modellerini web arayüzü dışında kullanmak için bir API de sunuyor. Gen-3 Alpha Turbo’yu desteklese de, görünen o ki Act-One henüz mevcut değil. Bu kılavuz, API’yi kullanmanın temellerini kapsıyor; Act-One kullanıma açıldığında da aynı kalacaktır.
API anahtarını oluşturma
Başlamak için bir geliştirici hesabı oluşturup bir API anahtarı üretmemiz gerekiyor.
Şuraya gidin: geliştirici sayfası ve giriş düğmesine tıklayın. Hesabınız yoksa oradan oluşturabilirsiniz.

Hesap oluşturulduktan sonra, “API Keys” sayfasına gidin ve “New API key”e tıklayın:

Bu, anahtarın adını soran bir açılır pencere açacak. Boş bırakıp “Create”e tıklayabiliriz.

Ardından anahtar görüntülenir ve kopyalayabiliriz. Güvenlik nedeniyle anahtar yalnızca bu anda görüntüleneceğinden, kopyaladığınızdan emin olun. Herhangi bir nedenle kaybolursa, silebilir ve yenisini oluşturabiliriz.

Fiyatlandırma
Runway ML API ücretsiz bir katman sunmuyor. Deney yapmak için hesabımıza kredi eklememiz gerekiyor. Fiyatlandırma, web arayüzüyle aynıdır: 5 saniyelik video için 0,25 $, 10 saniyelik video için 0,50 $.
API kredilerinin abonelik hesabındaki kredilerden farklı olduğunu ve bu kredilerin web arayüzü üzerinden video üretmek için kullanılamayacağını, bunun tersi yönde de geçerli olmadığını not etmek önemlidir.
Kurulum
Runway ML, API ile etkileşim kurmak için yüklememiz gereken runwayml adlı bir Python kütüphanesi sağlar. Yüklemek için şu komutu kullanın:
pip install runwayml
API’ye erişmek için, API anahtarının RUNWAYML_API_SECRET adlı bir ortam değişkeni olarak ayarlanması gerekir. Bunu şu komutla yapabiliriz:
export RUNWAYML_API_SECRET=api_key
```Replacing api_key with the key created above.
Generating a videoRecently, I took this photo of the night sky:
Source: Instagram @fran.a.photo
I wanted to try out runwayml to see if it could generate a time-lapse video from the photo. To generate a video from an image using the API, we:
Import and initialize RunwayML client. Note that we don’t need to provide the API key as it is automatically loaded from the environment variable we set up before.Call the image_to_video.create() method from the client, providing the name of the model, the image URL, and the prompt.Store the task into a variable and print its identifier so that we can retrieve the video later. This is important as it seems that their API doesn’t have any way to list the past tasks. Without it, we’ll pay the generation credits but won’t have a way to get our video.```python
from runwayml import RunwayML
url = "https://i.ibb.co/LC7Kfrq/Z72-5415.jpg"
client = RunwayML()
task = client.image_to_video.create(
model="gen3a_turbo",
prompt_image=url,
prompt_text="Camera slowly zooms out: Astrophotography time-lapse featuring shooting stars.",
)
print(task.id)
Sonucu görmek için görevin tamamlanmasını beklememiz gerekir. Görevin durumuna task.status ile erişebiliriz. Durum, video başarıyla üretildiğinde ”SUCCEEDED” dizesine eşit olacaktır.
Video URL’sine task.output ile erişebiliriz. Bu alanın bir çıktı listesi olduğunu unutmayın. Varsayılan olarak tek bir video üretilir, dolayısıyla video URL’si task.output[0] olacaktır.
Görev tanımlayıcısı verildiğinde video URL’sini yazdıran basit bir betik şöyle:
from runwayml import RunwayML
task_id = "af0a95ed-b0ff-4120-aecd-2473d7a42891"
client = RunwayML()
task = client.tasks.retrieve(id=task_id)
if task.status == "SUCCEEDED":
print(task.output[0])
else:
print(f"Video not ready, status={task.status}")
Fotoğraftan ürettiğimiz video şöyle:
Yine, sonucun farklı görünmesini bekliyordum. Gecenin hızlandırılmış çekimini taklit eder şekilde gökyüzünün dönüşünü beğendim. Ancak kayan yıldızlar çok gerçekçi değil. Ön plan da video ilerledikçe daha az gerçekçi hâle geliyor. Güzel bir detay ise sudaki yansımalar olmuş.
Gelişmiş seçenekler
API ile video üretirken sahip olduğumuz birkaç seçeneğe bakalım. Daha fazla detay için Runway dokümantasyon sayfasına göz atın.
Runway ML, 5 veya 10 saniye süreli videoları destekler. Varsayılan olarak 10 saniyelik video üretir. Bunu duration parametresiyle şu şekilde ayarlayabiliriz:
task = client.image_to_video.create(
model="gen3a_turbo",
prompt_image=url,
prompt_text="Camera slowly zooms out: Astrophotography time-lapse featuring shooting stars.",
duration=5,
)
Varsayılan olarak videolar 16:9 en-boy oranıyla üretilir. ratio parametresine 9:16 vererek dikey moda da ayarlayabiliriz:
task = client.image_to_video.create(
model="gen3a_turbo",
prompt_image=url,
prompt_text="Camera slowly zooms out: Astrophotography time-lapse featuring shooting stars.",
ratio=”9:16”,
)
Modele gelince, bu yazı yazılırken API’de mevcut olan tek modelin gen3a_turbo olduğu anlaşılıyor.
Yerel bir fotoğrafı yüklemek
Yukarıdaki örnekte, kullanmak istediğimiz görseli belirtmek için bir görsel URL’si kullandık. Bilgisayarımızdaki yerel bir dosyayı da bir veri URI’si olarak okuyarak kullanabiliriz.
Aşağıda bunu yapmak için base64 ve mimetypes paketlerini kullanan bir Python fonksiyonu yer alıyor. Her iki paket de yerleşiktir, bu yüzden yüklemeye gerek yok.
def image_to_data_uri(image_path):
mime_type, _ = mimetypes.guess_type(image_path)
with open(image_path, "rb") as img_file:
img_data = img_file.read()
b64_encoded = base64.b64encode(img_data).decode("utf-8")
data_uri = f"data:{mime_type};base64,{b64_encoded}"
return data_uri
Görseli yüklemek için image_to_data_uri() fonksiyonunu kullanarak bir isteğin nasıl oluşturulacağına dair bir örnek:
task = client.image_to_video.create(
model="gen3a_turbo",
prompt_image=image_to_data_uri("nightsky.jpg"),
prompt_text="Camera slowly zooms out: Astrophotography time-lapse featuring shooting stars.",
)
Sonuç
Bu blog yazısında, karakter animasyonunu basitleştirmek için tasarlanmış Runway ML'in Act-One aracını inceledik. Temel işlevselliğini, web arayüzü üzerinden nasıl kullanılacağını ve Python API’siyle entegrasyonunu ele aldık. Ayrıca durağan görsellerden video üretmek için Runway’in Gen-3 Alpha modeline de değindik.
Daha önce belirttiğim gibi, Act-One ile yaptığım kişisel denemeler Runway ML’in sunduğu cilalı örneklerle tam olarak örtüşmedi. Sonuçlar beklediğim canlılık ve ifade gücünden yoksundu; bu da modelin hâlâ geliştirilmekte olduğunu ya da daha profesyonel girdiye ihtiyaç duyduğunu düşündürüyor. Ayrıca, özel animasyon karakterlerini kullanamamak önemli bir dezavantajdı.
Bu sınırlamalara rağmen, Runway ML’in Act-One ve Gen-3 Alpha araçları yapay zekânın video üretimi ve animasyondaki heyecan verici potansiyelini sergiliyor. Yapay zekâ ile video üretimi hakkında daha fazla okumak isterseniz, şu blog yazılarını öneririm:


Bu blog yazısında, Runway ML'in yeni Act-One aracını test etme deneyimimi paylaşacağım. Nasıl çalıştığını, hem web arayüzünü hem de Python API’sini kullanarak adım adım göstereceğim. Ayrıca beklediğim kadar etkileyici olmayan sonuçlardan da bahsedeceğim.
Act-One hakkında meraklıysanız ve onu iş başında görmek istiyorsanız, okumaya devam edin!