Wat is Runway Act-One?
Runway Act-One is een tool die stilstaande karakterafbeeldingen animeert met behulp van video-input. Laten we het in actie zien:
Deze video is gemaakt met:
- Een video van een menselijke acteur; en
- Een statische afbeelding van het animatiepersonage.
Runway Act-One animeert vervolgens het personage zodat het de gezichtsbewegingen en -uitdrukkingen van de menselijke acteur weerspiegelt.

Personages animeren is een complex proces dat alleen hoogopgeleide professionals vanaf nul kunnen doen. Act-One probeert dit te doorbreken door iedereen in staat te stellen een personage te animeren door simpelweg zichzelf op te nemen en een stilstaande afbeelding van het gewenste personage aan te leveren.
En het is niet beperkt tot animatiepersonages. Het werkt ook voor cinematische en realistische karakters. En we kunnen ook een overtuigende dialoog maken door meerdere korte video’s van de personages te creëren die over en weer praten en die aan elkaar te plakken:
Ik filmde mezelf om Runway Act-One te testen
Laten we Runway Act-One zelf verkennen. Er is een gratis laag beschikbaar met 125 credits en wachtrijopties, maar Act-One is daarin niet inbegrepen en vereist een abonnement.
Ga eerst naar de inlogpagina van Runway en log in of maak een account aan. Abonneer je vervolgens op een van de beschikbare plannen. Let erop dat er zelfs met een abonnement een limiet zit aan het aantal video’s dat je kunt genereren. Ik probeerde het abonnement van $15 per maand, wat me 625 credits gaf (plus 125 gratis credits voor in totaal 750 credits).
Hoe open je Runway Act-One
Om een video met Act-One te genereren, klik je op de knop “Try it now” op het dashboard.

De Act-One-interface is redelijk eenvoudig te gebruiken. In de afbeelding hieronder zie je dat:
- Bovenaan selecteren we de ‘driving video’, de video die de animatie aanstuurt.
- Onderaan selecteren we de referentieafbeelding van het personage dat we willen animeren.

Runway Act-One testen door mezelf te animeren
Om het te proberen, filmde ik mezelf terwijl ik een verbaasd gezicht trok en testte ik het met hun hondenkarakter als referentie.

De resulterende video vond ik maar zo-zo. De gezichtsuitdrukking is niet heel uitgesproken, maar hij komt wel overeen met de mijne.
Ik deed andere experimenten met hetzelfde personage, maar Runway Act-One heeft me nooit echt overtuigd. In sommige gevallen was er zelfs helemaal geen uitdrukking. In het onderstaande voorbeeld bewoog de hond helemaal niet, ondanks mijn gezichtsuitdrukking.

Ik ben geen acteur, dus misschien ligt het daaraan. Maar als het doel van Act-One is om iedereen personages te laten animeren, dan is er nog een lange weg te gaan voordat het echt bruikbaar is voor mensen zonder ervaring in het vak.
Ook bleek het onmogelijk om een eigen karakterafbeelding te gebruiken. Ik heb ongeveer 10 verschillende personages gegenereerd met Dall-E 3, en Runway kon telkens geen gezicht vinden. Hier is een voorbeeld:

Dit geeft mij de indruk dat de getoonde voorbeelden zorgvuldig geselecteerd zijn en dat het model nog niet klaar is voor het grote publiek. Ik probeerde het echter met menselijke karakters en dat werkte wel. Het kan dus zijn dat het model nog geen eigen animatiepersonages ondersteunt.
Hier is een voorbeeld met een menselijk personage:

Het resultaat met een menselijk gezicht was veel beter, en ik vond de output van hogere kwaliteit. Toch lijkt dit gebruik minder impactvol, omdat we de mens ook gewoon direct kunnen laten acteren.
Een opmerking over de prijs
De lengte van de uitvoervideo komt overeen met de invoervideo, en er worden credits in rekening gebracht afhankelijk van de lengte van de video.
Act-One combineren met Runway Gen-3 Alpha
Eerder dit jaar, in juni, introduceerde Runway ML het Gen-3 Alpha-model, dat video’s maakt op basis van een stilstaande afbeelding en een tekstprompt.
Omdat Act-One focust op close-ups van gezichten, vullen deze twee modellen elkaar aan. Met Act-One kun je dialogen maken, terwijl Gen-3 Alpha de scènes tussen de dialogen kan genereren.
Een video genereren met Gen-3 Alpha
Om over te schakelen naar Gen-3 Alpha, klik je op het “T”-pictogram links (#1 in de afbeelding hieronder).

De inputs voor dit model zijn een afbeelding (#2) en een tekstprompt (#3). Runway raadt aan dat de tekstprompt dit format volgt:
[camera movement]: [establishing scene]. [additional details].
Bijvoorbeeld:
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.
Ik probeerde er een foto mee te animeren die ik onlangs heb genomen. Dit zijn de inputs die ik gebruikte:

En hier is het resultaat:
Ik vond het resultaat geslaagd. Het licht ziet er mooi uit terwijl de boot van de zon af vaart, en de beweging van het water is vloeiend.
Toch is het resultaat behoorlijk anders dan ik oorspronkelijk voor ogen had. Dat is zeker een van de grootste problemen voor videomakers: het onvermogen om elk detail in een scène te controleren, wat met traditionele filmproductiemethoden wel kan. Als deze beperking blijft bestaan, zouden toekomstige regisseurs die AI gebruiken zich beperkt kunnen voelen tot door AI gegenereerde scènes in plaats van hun oorspronkelijke visie te kunnen realiseren.
Combineren met close-ups uit Act-One
In dit geval kunnen we op een creatieve manier drie verschillende videoclips combineren.
Allereerst hebben we een video van een boot die over het water beweegt. Deze clip zet de setting neer en geeft context voor de volgende acties.
Vervolgens kunnen we een close-up tonen van een personage dat op de oever staat, zijn blik gericht op de boot en een gevoel van verlangen uitdrukkend.
Tot slot hebben we een video van de boot die van de kust wegvaart, gezien vanuit het perspectief van het personage. Deze derde clip geeft een gevoel van beweging en voortgang.
De Runway ML-API gebruiken met Python
Runway ML biedt ook een API om de modellen buiten de webinterface te gebruiken. Hoewel Gen-3 Alpha Turbo wordt ondersteund, lijkt Act-One nog niet beschikbaar. Deze gids behandelt de basis van het gebruik van de API, die hetzelfde zal blijven zodra Act-One beschikbaar komt.
De API-sleutel aanmaken
Om te beginnen moeten we een ontwikkelaarsaccount aanmaken en een API-sleutel genereren.
Ga naar de ontwikkelaarspagina en klik op de login-knop. Als je nog geen account hebt, kun je er daar een aanmaken.

Zodra het account is aangemaakt, ga je naar de pagina “API Keys” en klik je op “New API key”:

Er verschijnt een pop-up waarin wordt gevraagd naar de naam van de sleutel. We kunnen dit leeg laten en op “Create” klikken.

Daarna wordt de sleutel weergegeven en kunnen we hem kopiëren. Houd er rekening mee dat dit om veiligheidsredenen de enige keer is dat de sleutel zichtbaar is, dus zorg dat je hem kopieert. Als hij om wat voor reden dan ook kwijt raakt, kunnen we hem altijd verwijderen en een nieuwe aanmaken.

Prijzen
De Runway ML-API heeft geen gratis laag. Om ermee te experimenteren, moeten we credits toevoegen aan ons account. De prijzen zijn gelijk aan die van de webinterface: $0,25 voor een video van 5 seconden en $0,50 voor een video van 10 seconden.
Belangrijk om te weten: API-credits staan los van die van een abonnement, dus deze credits kun je niet gebruiken om video’s via de webinterface te genereren en andersom.
Setup
Runway ML biedt een Python-bibliotheek genaamd runwayml die we moeten installeren om met de API te communiceren. Installeer deze met het commando:
pip install runwayml
Om toegang te krijgen tot de API moet de API-sleutel worden ingesteld als een omgevingsvariabele met de naam RUNWAYML_API_SECRET. Dat kan met het volgende commando:
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)
Om het resultaat te zien, moeten we wachten tot de taak is voltooid. We kunnen de status van de taak opvragen met task.status. De status is gelijk aan de string ”SUCCEEDED” zodra de video succesvol is gegenereerd.
We kunnen de video-URL benaderen via task.output. Merk op dat dit veld een lijst met outputs is. Standaard wordt één video gegenereerd, dus de video-URL staat op task.output[0].
Hier is een eenvoudig script dat de video-URL print op basis van de taak-ID:
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}")
Dit is de video die we uit de foto hebben gegenereerd:
Opnieuw zag ik het resultaat graag anders. Ik vind het mooi hoe de hemel draait, als in een nachtelijke timelapse. Maar de vallende sterren ogen erg onrealistisch. Ook de voorgrond wordt minder realistisch naarmate de video vordert. Een leuk detail vond ik wel de reflecties op het water.
Geavanceerde opties
Laten we enkele opties doornemen die we hebben bij het genereren van video’s met de API. Voor meer details, bekijk de Runway-documentatiepagina.
Runway ML ondersteunt video’s met een duur van 5 of 10 seconden. Standaard wordt een video van 10 seconden gegenereerd. Dit kun je instellen met de parameter duration, zoals hier:
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,
)
Standaard worden video’s met een 16:9-beeldverhouding gegenereerd. We kunnen ook de staande modus gebruiken door een 9:16-verhouding op te geven met de parameter ratio:
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”,
)
Wat het model betreft, lijkt het erop dat op het moment van schrijven het enige beschikbare model in de API gen3a_turbo is.
Een lokale foto laden
In het bovenstaande voorbeeld gebruikten we een afbeeldings-URL om de afbeelding te specificeren die we willen gebruiken. We kunnen ook een lokaal bestand op onze computer gebruiken door het te lezen als een data-URI.
Hieronder staat een Python-functie die de pakketten base64 en mimetypes gebruikt om dit te doen. Beide pakketten zijn ingebouwd, dus installeren is niet nodig.
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
Hier is een voorbeeld van hoe je een request opstelt met de functie image_to_data_uri() om de afbeelding te laden:
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.",
)
Conclusie
In dit blogbericht hebben we Act-One van Runway ML verkend, een tool die bedoeld is om karakteranimatie te vereenvoudigen. We hebben de basisfunctionaliteit behandeld, hoe je het gebruikt via de webinterface en de integratie met de Python-API. We hebben ook gekeken naar het Gen-3 Alpha-model van Runway voor het genereren van video’s uit stilstaande beelden.
Zoals ik eerder aangaf, voldeden mijn persoonlijke experimenten met Act-One niet helemaal aan de gelikte voorbeelden van Runway ML. De resultaten misten de levendigheid en expressiviteit die ik verwachtte, wat erop wijst dat het model mogelijk nog in ontwikkeling is of meer professionele input vereist. Bovendien was het onvermogen om eigen animatiepersonages te gebruiken een flinke tegenvaller.
Ondanks deze beperkingen laten Act-One en Gen-3 Alpha van Runway ML de spannende mogelijkheden van AI in videoproductie en animatie zien. Wil je meer lezen over AI-videogeneratie? Dan raad ik deze blogposts aan:


In dit blogbericht deel ik mijn ervaring met het testen van de nieuwe Act-One-tool van Runway ML. Ik laat je zien hoe het werkt, zowel via de webinterface als via hun Python-API. Ook bespreek ik de resultaten die ik kreeg, die minder indrukwekkend waren dan ik had gehoopt.
Ben je nieuwsgierig naar Act-One en wil je het in actie zien? Lees dan vooral verder!