cedro-blog

Stable Diffusionによる動画生成をGoogle Colabでやってみる

1.はじめに

 文から画像生成をするモデルを使って、出力画像をズームやシフト等をさせ、それを初期値にして文で画像生成することを繰り返すと面白い動画が出来ます。今回ご紹介するのは deforum氏が開発した Stable Diffusion を使った動画生成をするGoogle Colabです。

2.学習済みパラメータのダウンロード

 まず学習済みパラメータをダウンロードします。Hugging Faceからアクセストークンの取得をしてない方は、このブログの「2.アクセストークンの取得」を参考に取得してから下記に進んで下さい。

 このリンクをクリックし、学習済みパラメータ(stable-diffusion-v-1-4-original)の使用申請をします。I have read the Licence and agree with its terms のチェックボックスにチェックを入れ、Access repository をクリックします。

 すると、下記画面が表示されますので、sd-v1-4.ckpt をクリックし学習済みパラメータをダウンロードします。容量は、4.28GBと大きいです。

3.使い方

 非常に多機能なColabですが、デモ動画を作成するための基本操作だけ説明しますので、後は皆さんが色々といじってみて下さい。最初に、このリンクをクリックしてGoogle Colabを開いて下さい。まず、下記を実行します。

  Model and Output Paths まで完了すると、自分の google drive に AI/modelsAI/StableDiffusion というフォルダが作成されます。このAI/models の方に、先程ダウンロードした学習済みパラメータ(sd-v1-4.ckpt)をアップロードします。その後、下記を実行します。

 次に、アニメーションの設定を行います。animetion_mode でどんなアニメーションにするか選択します(Noneを選ぶとアニメーションを行いません)。max_frames でアニメーション全体のフレーム数を設定します。zoom でフレーム毎の拡大率を設定します(0〜1未満に設定するとズームアウトします)。今回はこのまま、実行します。

 次に、画像生成のためのプロンプト(文)を設定します。animation_mode でNoneを設定していると prompts の方が有効となり、None以外の場合は animation_prompts の方が有効になります。1枚の画像だけでアニメーションしたい場合は、animation_prompts の内容を 0:*****の行だけにすればOKです。今回は、このまま実行します。

 それでは、アニメーションのフレーム毎に画像生成を行います。下記を実行します。実行すると、1フレームづつ生成した画像を表示して行きます。

 最後に、作成したフレームを使って動画を作成します。作成した動画は、AI/StableDiffusion/2022-09/StableFun フォルダの中に作成されます。

 ズームインしながら、apple → banana → coconut → durian と画像が変化するアニメーションが出来ました。

 それでは、もう1つやってみましょう。先程と変える部分は、Animation Setting で、max_frames = 100, zoom = “0:(1)”, translation_x = “0:(5)” つまり、全体は100フレームでズームはせず左へスクロールする形にします。

 Prompts は下記のように変更して実行します。

 北斎の「神奈川沖浪裏」の未公開部分が横スクロールする感じで楽しめます(笑)。

 では、また。

(twitter投稿)