Runway APIで何ができるのか、実際に触ってみた!

はじめに

こんにちは、インターセクトでフロントエンドエンジニアをしている松岡です。

今回は、RunwayAPIのアーリーアクセス権を手に入れたので、実際に使ってみた感想と、このAPIで何ができるのかをご紹介したいと思います。

この記事は、Runwayのウェイティングリストに登録して利用開始を待っている方や、動画生成に興味がある方に向けて作成しています。

Runwayとは

画像や動画、テキストから動画を生成することが可能なサービスを提供しています。2024/10/03日現在、プラットフォーム上でGen-3 Alpha,Gen-3 Alpha Turbo,Gen-2のモデルが利用可能となっております。
今回はRunwayAPIの仕様などについて解説します。

RunwayAPIについて

料金

RunwayAPIの利用料金は、1秒あたり5クレジットが必要です。例えば、5秒の動画を生成する場合は25クレジット、10秒の動画では50クレジットが消費されます。
1クレジットの価格は0.01ドルです。最低購入単位は1000クレジットで、USDまたはJPYで購入可能です。ただし注意点として、1000クレジットをUSDで購入する場合は10ドルですが、JPYでは2,000円になります。
このため、為替レートが1ドル200円を超えない限り、USDで購入する方がお得です。

私は日本円で支払えることに安易に飛びついてしまい、割高な代金を支払うことになりました。笑

仕様

現在利用可能なAPI機能はGen-3 Alpha TurboのImage To Videoのみとなっています。以下がPOSTリクエストの基本構造です。

POSTリクエスト

model: 'gen3a_turbo'
promptImage: string
duration?: 5 | 10
promptText?: string
ratio: '16:9' | '9:16'
seed?: number
watermark?: boolean

プロンプトや画像サイズ、動画の長さなどを指定してリクエストすると、そのリクエストに対応するIDがレスポンスとして返されます。

また、プロントとして使用する画像の比率も16:9もしくは9:16でなければならないようです。これ以外の比率の画像で生成を開始するとエラーになり動画生成ができませんでした。

私はこのAPIを10月2日から使い始めましたが、その翌日には新しいパラメータ(ratio)が追加されるなど頻繁にアップデートされているようです。

GETおよびDELETEリクエスト

POSTリクエストで取得したIDを使用して、以下の情報を含むレスポンスを得ることができます。

id: string
status: RUNNING | SUCCEEDED | FAILD | PENDING | CANCELLED | THROTTLED
createdAt: string
failure?: string
failureCode?: string
output: string[]
progress: number 

GETリクエストでは特定のPOSTリクエストのステータス確認が可能です。ステータスがRUNNINGの場合には進捗状況(0〜1の浮動小数点数)が返されるので、フロントエンドで視覚的に表示できます。

また、ステータスがRUNNING, PENDING, THROTTLEDの場合にはDELETEリクエストを送信してキャンセルすることもできます。

実際にAPIを叩いてみた

APIを叩いてみてどのような成果物が出たのかを簡単に紹介します。

https://vimeo.com/1016459017

promptText

吠えているライオン

Seed

100

ratio

16:9

duration

10

watermark

false

簡単なプロンプトだったのですが、一応吠えていそう?なライオンは出力されました。あくびしているようにも見えますが…
質感に関しては少し不自然な質感ではあります。

https://vimeo.com/1016459475

promptText

宇宙に向かって飛び立つロケット

Seed

100

ratio

16:9

duration

10

watermark

false

質感は非常にリアルで、飛び立つ直前の雰囲気もなんとなく感じられるのですが、実際には全く飛び立っていません。

Seedを変更して再度試してみたところ、カメラの動きが少し変化しただけで、やはり飛び立つことはありませんでした。この点に関してはもう少し工夫が必要かもしれません。AIが「飛び立つ」という動作をうまく捉えられていないのか、画像をロケットとして認識していないのか試行錯誤する必要がありそうです。

https://vimeo.com/1016459680

promptText

電車に乗っている二人の女性。二人は外を眺めています。

seed

100

ratio

16:9

duration

10

watermark

false

外の景色が移り変わる様子はかなりリアルに動画化されていますが、奥の暗い座席部分まで外の景色として描かれてしまいました。

「外を眺めている」というテキストプロンプトに引っ張られているのかと思い、一度それを取り除いて出力してみましたが、それでも奥は外の景色になってしまいました。どうやら、奥が暗すぎてAIが正確に認識できていないようです。

まとめ

現在はまだ調整できるパラメータが少ないため、テキストプロンプトに頼らざるを得ない状況ですが、将来的に調整可能なパラメータが増えれば、より高品質な動画が作成できるのではないかと期待しています。

また、10月2日に使い始めて翌日にはratioが追加されていたことからも、今後さらに多くのパラメータが追加されることが予想されます。

Runway APIが全ユーザーに公開された際には、この情報が少しでも役立てば嬉しいです。

Ryuji Matsuoka

デザインエンジニア