Programa
En esta entrada del blog, compartiré mi experiencia probando la nueva herramientaAct-One de Runway ML . Te explicaré cómo funciona, utilizando tanto la interfaz web como su API de Python. También hablaré de los resultados que obtuve, que no fueron tan impresionantes como esperaba.
Si sientes curiosidad por Act-One y quieres verlo en acción, ¡sigue leyendo!
¿Quieres iniciarte en la IA Generativa?
Aprende a trabajar con LLMs en Python directamente en tu navegador

¿Qué es Runway Act-One?
Runway Act-One es una herramienta que anima imágenes fijas de personajes utilizando la entrada de vídeo. Veámoslo en acción:
Este vídeo se creó utilizando:
- Un vídeo de un actor humano; y
- Una imagen estática del personaje animado.
A continuación, Runway Act-One anima el personaje para reflejar los movimientos y expresiones faciales del actor humano.

Animar personajes es un proceso sofisticado que sólo pueden hacer desde cero profesionales altamente cualificados. Act-One intenta cambiar las reglas del juego permitiendo a cualquiera animar un personaje simplemente grabándose a sí mismo y proporcionando una imagen fija del personaje que desea animar.
Y no se limita a los personajes animados. También funciona con personajes cinematográficos y realistas. Yambién podemos crear un diálogo convincente creando varios vídeos cortos de los personajes hablando y uniéndolos:
Me he filmado para probar Runway Act-One
Exploremos nosotros mismos el Acto-Uno de la Pasarela. Aunque existe un nivel gratuito, que ofrece 125 créditos y opciones de cola, Act-One no está incluido en este nivel y requiere una suscripción.
Primero, ve a página de inicio de sesión de Runway y conéctate o crea una cuenta. A continuación, suscríbete a uno de sus planes disponibles. Es importante tener en cuenta que, incluso con una suscripción, hay un límite en la cantidad de vídeos que podemos generar. Probé la suscripción mensual de 15 $ que me daba 625 créditos (más los 125 créditos gratuitos para un total de 750 créditos).
Cómo abrir Runway Act-One
Para generar un vídeo con Act-One, haz clic en el botón "Pruébalo ahora" del panel de control.

La interfaz de Act-One es relativamente sencilla de utilizar. En la imagen de abajo puedes verlo:
- En la parte superior, seleccionamos el vídeo conductor, que es el vídeo utilizado para conducir la animación.
- En la parte inferior, seleccionamos la imagen de referencia del personaje que queremos animar.

Probar la Pasarela Act-One animándome a mí mismo
Para probarlo, me grabé poniendo cara de sorpresa y lo probé utilizando su referencia de personaje canino.

El vídeo resultante me pareció aceptable. La expresión facial no es muy pronunciada, pero aún así coincide con la mía.
Hice otros experimentos con el mismo personaje, y Runway Act-One nunca me impresionó. En algunos casos, ni siquiera había expresión alguna. En el ejemplo siguiente, el perro no se movió en absoluto a pesar de mi expresión facial.

No soy actor, así que quizá ese sea el problema. Sin embargo, si el propósito de Act-One es capacitar a cualquiera para animar personajes, aún le queda un largo camino por recorrer antes de que sea realmente utilizable por cualquiera sin experiencia en el sector.
También me resultó imposible utilizar una imagen de personaje personalizada. Generé unos 10 personajes diferentes utilizando Dall-E 3, y Runway falló cada vez al encontrar una cara. He aquí un ejemplo:

Esto me indica que los ejemplos mostrados son selectivos y que el modelo no está listo para el gran público. Sin embargo, lo probé con personajes humanos y funcionó. Por lo tanto, podría darse el caso de que el modelo aún no admita personajes animados personalizados.
He aquí un ejemplo con un personaje humano:

El resultado utilizando un rostro humano fue mucho mejor, y pensé que el resultado era de mayor fidelidad. Sin embargo, este caso de uso parece menos impactante, ya que en su lugar podríamos hacer que el ser humano actuara directamente.
Nota sobre los precios
La duración del vídeo de salida coincidirá con la del vídeo de entrada, y se cargarán créditos en función de la duración del vídeo.
Combinar Act-One con Runway Gen-3 Alpha
A principios de este año, en junio, Runway ML presentó su modelo Gen-3 Alpha, que crea vídeos a partir de una imagen fija y una indicación de texto.
Como Act-One se centra en los primeros planos de rostros, estos dos modelos se complementan. Act-One puede utilizarse para crear diálogos, mientras que Gen-3 Alfa puede generar las escenas entre diálogos.
Genera un vídeo con Gen-3 Alfa
Para cambiar a Gen-3 Alfa, haz clic en el icono "T" de la izquierda (nº 1 en la imagen de abajo).

Las entradas de este modelo son una imagen (nº 2) y una indicación de texto (nº 3). Runway sugiere que la indicación de texto siga este formato:
[camera movement]: [establishing scene]. [additional details].
Por ejemplo:
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.
Lo he probado para animar una foto que hice hace poco. Éstas son las entradas que utilicé:

Y éste es el resultado:
Me gustó el resultado. La luz se ve bien cuando el barco se aleja del sol, y el movimiento del agua es suave.
Sin embargo, el resultado es bastante diferente de lo que imaginé en un principio. Éste es, sin duda, uno de los principales problemas para los creadores de vídeo: la incapacidad de controlar cada detalle de una escena, cosa que sí es posible con los métodos tradicionales de creación de películas. Si esta limitación persiste, los futuros directores que utilicen IA podrían verse limitados a escenas generadas por la IA en lugar de poder realizar su visión original.
Combinar con primeros planos de Act-One
En este caso, podemos combinar creativamente tres videoclips distintos.
En primer lugar, tenemos un vídeo de un barco moviéndose por el agua. Este clip establece el escenario y proporciona el contexto para las acciones posteriores.
A continuación, podríamos tener un primer plano de un personaje de pie en la orilla, con la mirada fija en el barco y expresando un sentimiento de añoranza.
Por último, tenemos un vídeo del barco alejándose de la orilla, visto desde el punto de vista del personaje. Este tercer clip proporciona una sensación de movimiento y progresión.
Uso de la API Runway ML con Python
Runway ML también ofrece una API para utilizar sus modelos fuera de la interfaz web. Aunque admite Gen-3 Alpha Turbo, parece que Act-One aún no está disponible. Esta guía cubrirá los aspectos básicos del uso de la API, que seguirán siendo los mismos una vez que Act-One esté disponible.
Crear la clave API
Para empezar, necesitamos crear una cuenta de desarrollador y generar una clave API.
Navega hasta la página del desarrollador y haz clic en el botón de inicio de sesión. Si no tienes una cuenta, podrás crear una allí.

Una vez creada la cuenta, ve a la página "Claves API" y haz clic en "Nueva clave API":

Se abrirá una ventana emergente que te pedirá el nombre de la clave. Podemos dejarlo vacío y hacer clic en "Crear".

Después, se muestra la clave y podemos copiarla. Ten en cuenta que, por motivos de seguridad, ésta es la única vez que se mostrará la clave, así que asegúrate de copiarla. Si se pierde por algún motivo, siempre podemos borrarla y crear una nueva.

Precios
La API Runway ML no ofrece un nivel gratuito. Para experimentar con él, debemos añadir créditos a nuestra cuenta. El precio es idéntico al de la interfaz web: 0,25 $ por un vídeo de 5 segundos y 0,50 $ por uno de 10 segundos.
Es importante tener en cuenta que los créditos de la API son distintos de los de una cuenta de suscripción, por lo que estos créditos no pueden utilizarse para generar vídeos a través de la interfaz web y viceversa.
Configurar
Runway ML proporciona una biblioteca Python llamada runwayml que debemos instalar para interactuar con la API. Para instalarlo, utiliza el comando
pip install runwayml
Para acceder a la API, la clave API debe establecerse como una variable de entorno llamada RUNWAYML_API_SECRET. Podemos hacerlo utilizando el siguiente comando:
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)
Para ver el resultado, tenemos que esperar a que se complete la tarea. Podemos acceder al estado de la tarea utilizando task.status. El estado será igual a la cadena ”SUCCEEDED” una vez que el vídeo se haya generado correctamente.
Podemos acceder a la URL del vídeo utilizando task.output. Ten en cuenta que este campo es una lista de salidas. Por defecto, se genera un único vídeo, por lo que la URL del vídeo será task.output[0].
Aquí tienes un sencillo script que imprime la URL del vídeo dado el identificador de la tarea:
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}")
Este es el vídeo que generamos a partir de la foto:
Una vez más, esperaba que el resultado fuera diferente. Me gusta cómo gira el cielo, emulando un time-lapse nocturno. Sin embargo, las estrellas fugaces son muy poco realistas. El primer plano también pierde realismo a medida que avanza el vídeo. Un bonito detalle que me pareció fueron los reflejos en el agua.
Opciones avanzadas
Repasemos algunas opciones que tenemos al generar vídeos con la API. Para más detalles, consulta la página de documentación de Runway.
Runway ML admite vídeos con una duración de 5 o 10 segundos. Por defecto, genera un vídeo de 10 segundos. Esto puede establecerse utilizando el parámetro duration, de la siguiente manera:
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,
)
Por defecto, los vídeos se generan con una relación de aspecto de 16:9. También podemos ponerlo en modo vertical especificando una relación de aspecto 9:16 mediante el parámetro 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”,
)
En cuanto al modelo, parece que, en el momento de escribir esto, el único modelo disponible en la API es gen3a_turbo.
Cargar una foto local
En el ejemplo anterior, hemos utilizado una URL de imagen para especificar la imagen que queremos utilizar. También podemos utilizar un archivo local de nuestro ordenador leyéndolo como una URI de datos.
A continuación se muestra una función de Python que utiliza los paquetes base64 y mimetypes para hacerlo. Ambos paquetes están incorporados, por lo que no es necesario instalarlos.
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
Aquí tienes un ejemplo de cómo construir una petición utilizando la función image_to_data_uri() para cargar la imagen:
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.",
)
Conclusión
En esta entrada de blog, exploramos Act-One de Runway ML, una herramienta diseñada para simplificar la animación de personajes. Cubrimos su funcionalidad básica, cómo utilizarlo a través de la interfaz web y su integración con la API de Python. También profundizamos en el modelo Gen-3 Alpha de Runway para generar vídeos a partir de imágenes fijas.
Como he mencionado antes, mis experimentos personales con Act-One no estuvieron totalmente a la altura de los pulidos ejemplos proporcionados por Runway ML. Los resultados carecían de la vivacidad y expresividad que esperaba, lo que indicaba que el modelo podría estar aún en fase de desarrollo o requerir una mayor aportación profesional. Además, la imposibilidad de utilizar personajes animados personalizados era un inconveniente importante.
A pesar de estas limitaciones, Act-One y Gen-3 Alpha de Runway ML muestran el apasionante potencial de la IA en la creación y animación de vídeo. Si quieres leer más sobre la generación de vídeo con IA, te recomiendo estas entradas de blog:



