Vai al contenuto principale

Guida a Runway Act-One: Mi sono filmato per metterlo alla prova

Scopri come usare Runway Act-One sia dall’interfaccia web che tramite API e come combinarlo con Runway Gen3-Alpha.
· 8 min leggi

Scopri con l'IA

In questo post, condivido la mia esperienza nel testare il nuovo strumento Act-One di Runway ML. Ti mostrerò come funziona, sia tramite l’interfaccia web che con la loro API Python. Parlerò anche dei risultati ottenuti, che non sono stati così impressionanti come speravo.

Se sei curioso di vedere Act-One in azione, continua a leggere!

Che cos’è Runway Act-One?

Runway Act-One è uno strumento che anima immagini statiche di personaggi usando un input video. Vediamolo in azione:

Fonte: Runway

Questo video è stato creato utilizzando:

  1. Un video di un attore umano; e
  2. Un’immagine statica del personaggio da animare.

Runway Act-One poi anima il personaggio per rispecchiare i movimenti e le espressioni facciali dell’attore umano.

Input e output di Act-One.

L’animazione dei personaggi è un processo complesso, che da zero solo professionisti altamente qualificati riescono a realizzare. Act-One prova a cambiare le regole del gioco permettendo a chiunque di animare un personaggio semplicemente registrandosi in video e fornendo un’immagine statica del personaggio che vuole animare.

E non è limitato ai personaggi animati. Funziona anche con personaggi cinematografici e realistici. E possiamo anche creare un dialogo convincente realizzando più brevi video dei personaggi che parlano tra loro e unendoli insieme:

Fonte: Runway

Mi sono filmato per testare Runway Act-One

Proviamo Runway Act-One in prima persona. È disponibile un piano gratuito con 125 crediti e opzioni di coda, ma Act-One non è incluso e richiede un abbonamento.

Per prima cosa vai alla pagina di login di Runway ed effettua l’accesso o crea un account. Poi, sottoscrivi uno dei piani disponibili. È importante notare che, anche con l’abbonamento, c’è un limite al numero di video che possiamo generare. Ho provato l’abbonamento mensile da 15 $ che mi ha dato 625 crediti (più 125 crediti gratuiti per un totale di 750 crediti).

Come aprire Runway Act-One

Per generare un video con Act-One, clicca sul pulsante “Provalo ora” nella dashboard.

Come aprire l’interfaccia web di Act-One.

L’interfaccia di Act-One è piuttosto semplice da usare. Nell’immagine qui sotto puoi vedere che:

  1. In alto selezioniamo il driving video, cioè il video usato per guidare l’animazione.
  2. In basso selezioniamo l’immagine di riferimento del personaggio che vogliamo animare.

Interfaccia Runway ML Act-One con upload del video e selezione del personaggio.

Testare Runway Act-One animando me stesso

Per provarlo, mi sono filmato mentre facevo un’espressione sorpresa e ho usato come riferimento il loro personaggio cane.

Schermo diviso con il volto sorpreso di una persona accanto al muso di un cane cartoon.

Il video risultante l’ho trovato solo discreto. L’espressione facciale non è molto marcata, ma comunque rispecchia la mia.

Ho fatto altri esperimenti con lo stesso personaggio, e Runway Act-One non mi ha mai davvero colpito. In alcuni casi non c’era proprio alcuna espressione. Nell’esempio sotto, il cane non si è mosso per niente nonostante la mia espressione.

Esempio di output non riuscito.

Non sono un attore, quindi forse il problema è quello. Tuttavia, se lo scopo di Act-One è mettere chiunque in grado di animare personaggi, c’è ancora molta strada da fare prima che sia davvero utilizzabile da chi non ha esperienza nel settore.

Ho anche riscontrato impossibile usare un’immagine di personaggio personalizzata. Ho generato circa 10 personaggi diversi con Dall-E 3 e Runway ha fallito ogni volta nel rilevare un volto. Ecco un esempio:

Runway Act-One non riconosce ancora i volti cartoon.

Questo mi fa pensare che gli esempi mostrati siano selezionati ad arte e che il modello non sia pronto per il grande pubblico. Tuttavia, l’ho provato con personaggi umani e ha funzionato. Quindi potrebbe darsi che il modello non supporti ancora personaggi animati personalizzati.

Ecco un esempio con un personaggio umano:

Esempio di Act-One con volti umani.

Il risultato con un volto umano è stato molto migliore, e mi è sembrato di qualità superiore. Tuttavia, questo caso d’uso è meno di impatto, dato che potremmo semplicemente far recitare direttamente la persona.

Nota sui prezzi

La durata del video in output corrisponderà a quella del video di input e i crediti verranno scalati in base alla lunghezza del video.

Combinare Act-One con Runway Gen-3 Alpha

A giugno di quest’anno, Runway ML ha introdotto il modello Gen-3 Alpha, che crea video a partire da un’immagine statica e un prompt testuale.

Poiché Act-One si concentra sui primi piani dei volti, i due modelli si completano. Act-One può essere usato per creare dialoghi, mentre Gen-3 Alpha può generare le scene tra un dialogo e l’altro.

Generare un video con Gen-3 Alpha

Per passare a Gen-3 Alpha, clicca sull’icona “T” a sinistra (n. 1 nell’immagine sotto).

Animare immagini con Gen-3 Alpha.

Gli input per questo modello sono un’immagine (n. 2) e un prompt testuale (n. 3). Runway suggerisce che il prompt segua questo formato:

[camera movement]: [establishing scene]. [additional details].

Per esempio:

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.

L’ho provato per animare una foto che ho scattato di recente. Ecco gli input che ho usato:

Esempio di input per Gen-3 Alpha.

E questo è il risultato:

Video generato con Runway Gen-3 Alpha

Il risultato mi è piaciuto. La luce è gradevole mentre la barca si allontana dal sole e il movimento dell’acqua è fluido.

Tuttavia, il risultato è piuttosto diverso da quello che avevo immaginato. Questo è sicuramente uno dei principali problemi per i videomaker: l’impossibilità di controllare ogni dettaglio di una scena, cosa invece possibile con i metodi tradizionali. Se questo limite dovesse persistere, i futuri registi che useranno l’AI potrebbero ritrovarsi vincolati alle scene generate dall’AI, senza poter realizzare appieno la propria visione.

Combinare con i primi piani di Act-One

In questo caso, possiamo combinare creativamente tre clip distinte.

Per prima cosa, abbiamo un video di una barca che si muove sull’acqua. Questa clip imposta l’ambientazione e fornisce il contesto per le azioni successive.

Poi, potremmo avere un primo piano di un personaggio in piedi sulla riva, lo sguardo fisso sulla barca ed espressione di nostalgia.

Infine, un video della barca che si allontana dalla riva, visto dal punto di vista del personaggio. Questa terza clip dà un senso di movimento e progressione.

Usare la API di Runway ML con Python

Runway ML offre anche una API per usare i suoi modelli al di fuori dell’interfaccia web. Sebbene supporti Gen-3 Alpha Turbo, sembra che Act-One non sia ancora disponibile. Questa guida copre le basi d’uso della API, che resteranno le stesse quando Act-One sarà disponibile.

Creare la chiave API

Per iniziare, dobbiamo creare un account developer e generare una chiave API.

Vai alla pagina per sviluppatori e clicca sul pulsante di login. Se non hai un account, potrai crearne uno lì.

Screenshot della pagina developer di Runway ML con il pulsante Login.

Una volta creato l’account, vai alla pagina “API Keys” e clicca su “New API key”:

Screenshot della pagina developer di Runway ML che mostra la sezione API Keys.

Si aprirà un pop-up che chiede il nome della chiave. Possiamo lasciarlo vuoto e cliccare su “Create”.

Creazione della chiave API.

Copia della chiave API.

Prezzi

La API di Runway ML non offre un piano gratuito. Per sperimentarla dobbiamo aggiungere crediti all’account. I prezzi sono identici a quelli dell’interfaccia web: 0,25 $ per un video da 5 secondi e 0,50 $ per uno da 10 secondi. 

È importante notare che i crediti della API sono distinti da quelli dell’abbonamento: non possono essere usati per generare video via interfaccia web e viceversa. 

Setup

Runway ML fornisce una libreria Python chiamata runwayml che dobbiamo installare per interagire con la API. Per installarla, usa il comando:

pip install runwayml

Per accedere alla API, la chiave deve essere impostata come variabile d’ambiente chiamata RUNWAYML_API_SECRET. Possiamo farlo con il comando seguente:

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)

Per vedere il risultato, dobbiamo attendere che l’attività sia completata. Possiamo accedere allo stato dell’attività usando task.status. Lo stato sarà uguale alla stringa ”SUCCEEDED” quando il video sarà stato generato con successo.

Possiamo accedere all’URL del video tramite task.output. Nota che questo campo è una lista di output. Per impostazione predefinita viene generato un solo video, quindi l’URL del video sarà task.output[0].

Ecco uno script semplice che stampa l’URL del video dato l’identificatore dell’attività:

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 non pronto, status={task.status}")

Questo è il video che abbiamo generato a partire dalla foto:

Video generato con Runway Gen-3 Alpha

Ancora una volta, mi aspettavo un risultato diverso. Mi piace come il cielo ruota, emulando un time-lapse notturno. Tuttavia, le stelle cadenti sono molto poco realistiche. Anche il primo piano perde realismo con l’avanzare del video. Un dettaglio carino, però, sono i riflessi sull’acqua.

Opzioni avanzate

Vediamo alcune opzioni disponibili quando generiamo video con la API. Per maggiori dettagli, consulta la pagina di documentazione di Runway.

Runway ML supporta video di durata pari a 5 o 10 secondi. Per impostazione predefinita genera un video da 10 secondi. Questo può essere impostato tramite il parametro duration, ad esempio:

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,
)

Per impostazione predefinita, i video sono generati con rapporto 16:9. Possiamo impostare il formato verticale specificando 9:16 con il parametro 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”,
)

Per quanto riguarda il modello, al momento in cui scrivo sembra che l’unico disponibile nella API sia gen3a_turbo.

Caricare una foto locale

Nell’esempio sopra abbiamo usato un URL per indicare l’immagine. Possiamo anche usare un file locale sul computer leggendolo come data URI.

Qui sotto c’è una funzione Python che usa i pacchetti base64 e mimetypes per farlo. Entrambi sono integrati, quindi non serve installarli. 

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

Ecco un esempio di come costruire una richiesta usando la funzione image_to_data_uri() per caricare l’immagine:

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.",
)

Conclusione

In questo post abbiamo esplorato Act-One di Runway ML, uno strumento pensato per semplificare l’animazione di personaggi. Abbiamo visto le funzionalità di base, come usarlo dall’interfaccia web e come integrarlo con la API Python. Abbiamo anche approfondito il modello Gen-3 Alpha di Runway per generare video a partire da immagini statiche.

Come accennato, i miei esperimenti con Act-One non sono stati all’altezza degli esempi rifiniti condivisi da Runway ML. I risultati mancavano della vivacità e dell’espressività che mi aspettavo, il che suggerisce che il modello sia ancora in sviluppo o richieda input più professionali. Inoltre, l’impossibilità di usare personaggi animati personalizzati è stata una limitazione rilevante. 

Nonostante questi limiti, Act-One e Gen-3 Alpha di Runway ML mostrano il potenziale entusiasmante dell’AI nella creazione video e nell’animazione. Se vuoi leggere di più sulla generazione video con AI, ti consiglio questi post:

François Aubry

Autore

François Aubry

Ingegnere full‑stack e fondatore di CheapGPT. Insegnare è sempre stata la mia passione. Fin dai primi anni da studente, cercavo con entusiasmo occasioni per fare da tutor e aiutare altri studenti. Questa passione mi ha portato a intraprendere un dottorato, durante il quale ho anche svolto il ruolo di assistente alla didattica a supporto del mio percorso accademico. In quegli anni ho trovato enorme soddisfazione nell'ambiente tradizionale dell'aula, creando connessioni e facilitando l'apprendimento. Con l'avvento delle piattaforme di apprendimento online, però, ho riconosciuto il potenziale trasformativo dell'educazione digitale. Di fatto, ho partecipato attivamente allo sviluppo di una di queste piattaforme nella nostra università. Sono profondamente impegnato a integrare i principi dell'insegnamento tradizionale con metodologie digitali innovative. La mia passione è creare corsi non solo coinvolgenti e informativi, ma anche accessibili a chi apprende in questa era digitale.

Argomenti

Correlato