cedro-blog

VQ-GAN+CLIPを使って、文から動画を作成する

1.はじめに

 今回ご紹介するのは、文から画像を生成する VQ-GAN+CLIP を使って、文から動画を作成する仕組みです。

*この仕組みの開発者は、vadim epstein 氏です。

2.VQ-GAN+CLIPで動画とは?

 昨年年初のDALL-Eの発表以降、文から画像を生成する VQ-GAN+CLIP の様々なモデルが提案されていますが、これ使って面白い動画を作ってやろうという今回のモチベーションです。

 VQ-GAN+CLIPは、「VQ-GANの出力画像」「文」の類似度をCLIPで求め、その類似度が高くなるようVQ-GANのパラメータを更新します。このサイクルを繰り返すことによって、文から画像を生成します。

 ここで、VQ-GANの出力画像を毎回少しづつ「ズームアップ+シフト」したものに置き換えると、連続した広がりのある世界を移動しながら見るような動画が作成できます。

 そして、「ズームアップ+シフト」に加え、「画像の回転」「画像を構成する物体の深度推定を元にした3D効果(近くのものは大きく拡大し、遠くのものはあまり拡大しない)」を加えると、さらに興味深い動画が作成できます。

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、google colab で割り当てられたGPUを確認します。ここで注意したいのは、T4/P4/P100のどれかが割り当てられていることを確認することです。K80が割り当てられた場合は、迷わず「ランタイム/ランタイムを接続解除して削除」をクリックして、再度トライして下さい。K80でも動きますが、めっちゃ遅いです。

 

 次に、セットアップを行います。

 

 それでは動画を作成してみましょう。contentに文章、styleにスタイルを記入します。ここでは、contentは「Pollinations is a system designed to produce joy in the form of honey.(受粉は、蜂蜜の形で喜びを生み出すように設計されたシステムです)」、styleは「Illustration by Ernst Haeckel(エルンスト・ヘッケルによるイラスト)」で実行します。

  resumeをONにすると、自分のPCから画像をアップロードし、その画像からスタートさせることができます。rotationをONにすると画像を少しづつ回転させます。three_dをONにすると画面内の物体を深度推定し3D効果を付けます。ここでは、resume「OFF」、rotation「ON」、three_d「ON」です。

 動画が完成すると、自動的に動画を表示・ダウンロードします(ブラウザは必ずgoogle chromeを使って下さい)。もし、ダウンロードしない場合は、aphantasiaフォルダに動画が保存されていますので、手動でダウンロードして下さい。

https://cedro3.com/wp-content/uploads/2022/05/Pollinations_is_a_system_designed_to_produce.mp4

 

 もう1つやってみましょう。今度は、contentは「blizzard village at sunset painting」、styleは「digital art」、resume「OFF」、rotation「OFF」、three_d「ON」です。

https://cedro3.com/wp-content/uploads/2022/05/blizzard_village_at_sunset_painting-2.mp4

 

 指定画像からスタートさせる例もやってみましょうか。指定画像は、下記のモナリザを使います。

KIMU69.TIFF

 contentは「Steempunk Mona Lisa」、styleは「digital art」、resume「ON」、rotation「OFF」、three_d「ON」です。

https://cedro3.com/wp-content/uploads/2022/05/Steampunk_Mona_Lisa.mp4

 VQ-GAN+CLIPを使って面白い動画を作成してやろうという発想が素晴らしいですね。指定画像から、スタートできるのも便利。創造性が刺激されます!

 では、また。

(オリジナルgithub)https://github.com/eps696/aphantasia