Runwayの「Gen-3 Alpha Turbo」のAPIを呼んで動画をAI生成してみた

[Supership](https://supership.jp/)の名畑です。[ダンダダン](https://anime-dandadan.com/)は[OP](https://www.youtube.com/watch?v=Nw_XzGZ35As)も本編も[ED](https://www.youtube.com/watch?v=s8SSPUQvUzI)もこれぞアニメーションというクオリティで毎週楽しみすぎる。

## はじめに

[Runway](https://runwayml.com/)というプラットフォームで、動画生成AI **Gen-3-Alpha** が提供されています。過去記事「[動画生成AI「Gen-3 Alpha」のImage to Videoで画像を動画に変換してみたらやっぱり自然すぎて恐くなりもした](https://qiita.com/nabata/items/4976abc57c4504edd377)」でも取り上げました。

**Gen-3-Alpha**の低コスト版である**Gen-3 Alpha Turbo**のWeb APIの提供が開始されましたので呼んでみました、というのが今回の記事となります。

> We are excited to announce the launch of our new API, providing developers with access to our Gen-3 Alpha Turbo model for integration into various applications and products. This release represents a significant step forward in making advanced AI capabilities more accessible to a broader range of developers, businesses and creatives.
> 
> 参考：[Runway News | Introducing the Runway API for Gen-3 Alpha Turbo](https://runwayml.com/news/introducing-the-runway-api)


## Waitlist登録

現在はAPIアクセスするためにWaitlistへの登録が必要です。

[Google Form](https://forms.gle/eHDQQawT8QGKWHDC7)が用意されており、メアド、名前、会社名、ユースケース、月の生成動画数を答えます。

![gen3-api-image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/923f84d0-5d08-d2bb-2139-e91a66e9d51b.png)

回答後、権限付与の連絡を待ちます。

私は申し込んで約10日でアクセス許可のメールが届きました。

許可が付与された後、申し込み時のメールアドレスでログインすると、Organization名の入力が求められます。

![gen3-api-image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/e1de2664-5905-38c6-4bd5-a92ac19d3d2a.png)

## クレジット購入

現在、動画生成は5秒で0.25ドル、10秒で0.50ドルかかります。

![gen3-api-image3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/97328bd0-a7cb-9516-6b59-9d6f306842b7.png)

クレジットの購入はBillingのページから可能です。最低10.0ドル(1000クレジット)となります。10ドルで5秒動画なら40個、10秒動画なら20個が作れます。

値段について最新の情報は[Price](https://docs.dev.runwayml.com/#price)をご覧ください。

## API Keyの作成

![gen3-api-image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/9510b37a-1aff-98a7-77bc-66a9e2c92a14.png)

API Keysのページから作成できます。

作成時にモーダルでAPI Keyが表示されるのですが

> Securely copy the key above and store it in a safe place. Once you close this modal, the key will not be displayed again.

と注意喚起されます。つまり、後からAPI Keyを確認することはできませんので、ご注意ください。

## 環境

私の端末のOSは[macOS 14 Sonoma](https://www.apple.com/jp/macos/sonoma/)です。

今回もPythonで書きます。

```shell-session
$ python --version
Python 3.12.2
```

[quickstart](https://docs.dev.runwayml.com/guides/quickstart/)に従い、SDKをインストールしておきます。

```shell-session
$ pip install runwayml
Collecting runwayml
  Downloading runwayml-2.0.0-py3-none-any.whl (71 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.2/71.2 kB 3.5 MB/s eta 0:00:00
     
中略

Installing collected packages: runwayml
Successfully installed runwayml-2.0.0
```

先ほどのAPI Keyを環境変数に保存します。私の環境での設定ファイルはzshrcです。

```shell-session
$ open ~/.zshrc
```

**RUNWAYML\_API\_SECRET**という環境変数名にします。

```shell-session
export RUNWAYML_API_SECRET=ここに取得したAPI Keyを書く
```

環境変数名を間違えると実行時に以下のエラーが出ますのでご注意ください。

> The api\_key client option must be set either by passing api_key to the client or by setting the RUNWAYML\_API\_SECRET environment variable

## 元画像

今回はこちらの画像を元にして動画を生成します。

![gen-3_original_image.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/69f7c0ad-77dd-b534-e7c8-a92404e445a3.jpeg)

**FLUX 1.1 [pro]** で生成した画像となります。サイズは1280x768です。**Gen-3 Alpha Turbo**のデフォルト比率が**16:9**のため、それに合わせました。

**FLUX 1.1 [pro]** について詳しくは過去記事「[Stable Diffusionのオリジナル開発陣による画像生成AIモデル最新版FLUX 1.1 [pro]のWeb APIを呼んでいくつかの画像を生成してみた](https://qiita.com/nabata/items/1bea5313df7398041b4b)」をどうぞ。

元画像はAPI呼び出し時にURLを渡すため、適当な場所にアップロードしてください。

## 動画生成

では実際に動画を生成してみます。

基本的には[quickstart](https://docs.dev.runwayml.com/guides/quickstart/)のコードをそのままですが、プロンプトとして「**A Japanese woman is smiling happily**」と指定しました。訳すと「**幸せそうに笑っている日本人女性**」です。

また、指定可能なパラメータの追加など、コメント文の変更はしています。

より詳しくは[API Reference](https://docs.dev.runwayml.com/api/)をご覧ください。

```python
import time
from runwayml import RunwayML

client = RunwayML()

# 動画生成を呼び出し
task = client.image_to_video.create(
    model='gen3a_turbo',
    prompt_image='画像urlをここに書く',
    prompt_text='A Japanese woman is smiling happily',  # 512文字以下
    # seed=0,  # デフォルト ランダム値
    # watermark=True,  # デフォルト False
    # duration=5,  # デフォルト 10
    # ratio="9:16"  # デフォルト "16:9"
)
task_id = task.id

# 完了確認
time.sleep(10)  # 待ち
task = client.tasks.retrieve(task_id)
while task.status not in ['SUCCEEDED', 'FAILED']:
    time.sleep(10)  # 待ち
    task = client.tasks.retrieve(task_id)

print('Task complete:', task)
```

生成が完了すると、動画のurlが出力されます。

生成結果は以下です。

<iframe width="560" height="315" src="https://www.youtube.com/embed/KWMH-NT-mGE?si=Tpp4nY3xYhvt_S29" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

指示通りの動画が無事生成されました。素晴らしいです。ちょっと動きが恐いけど。

## 最後に

生成AI周りの進化と競争が本当に激しすぎる。

いつまでこの流れは続くのだろう。

## 宣伝

[SupershipのQiita Organization](https://qiita.com/organizations/supership-inc)を合わせてご覧いただけますと嬉しいです。他のメンバーの記事も多数あります。

Supershipではプロダクト開発やサービス開発に関わる方を絶賛募集しております。
興味がある方は[Supership株式会社 採用サイト](https://supership.jp/recruit/)よりご確認ください。