1.プロンプトから動画を作成するColabとSpaceが公開まとめ
・プロンプトとネガティブプロンプトからビデオを作成可能なモデルがDiffusersとAutomatic1111向けに公開された
・Stable Diffusionで作成した連続したイラストを動画化する実装はあったが今回の動画は背景がチカチカしない
・コンセプトアートはStable Diffusion、シナリオ補助はGPT-4。AIに手伝って貰えば一人で動画を簡単に作成できる時代
2.text-2-videoとは?
Stable Diffusionなどの拡散モデル用のライブラリであるDiffusersで最初のtext-2-video、つまり、文章(プロンプトとネガティブプロンプト)を使ってビデオを作成する実装が公開されました。
まだ動画自体はかなりガタガタする事がありますが、セットアップが完全にできればGPUメモリが6GBでも動くとの事で、GPUメモリが12GBでのRTX 3060では問題なく動いています、すごい!そして、ColabとSpaceも公開されているのでどなたでも動かす事ができます。(下部リンクよりご覧ください)
なお、ほぼ同時期にAutomatic1111でもdeforum-art/sd-webui-modelscope-text2videoという同じく文章から動画を作成するの拡張機能を公開された方がおられます。両者の関係性は調べ切れてませんが、こちらは4GBでも動く報告があるそうです、凄い!
過去にもStable Diffusionで作成した連続したイラストを動画化する実装などはありましたが、背景がチカチカして見える事があり、目が疲れてしまう事があったのですが、こちらは大変スムーズな動画が出来る事があります。
それでは早速、動かしてみたサンプルです。
WBCで投打で大活躍するショーヘイ・オータニ
うむ、確かに言葉通りに解釈するとこういう動画になりますね。
WBCで優勝した選手がグラウンドで歓喜しているシーン
こちらも文字通りグラウンドという単語が文字通り受け取られてしまってますね。
宇宙での戦艦の戦闘シーン
小型ロボットの歩行シーン
新海誠スタイルのスケートシーン
宮崎駿スタイルの浮遊シーン
Shutterstockのロゴがかなり目立ってしまうケースがありますが、ネガティブプロンプトに指定しても消せないようでした。
人間が崩れたり、ふにゃふにゃしてしまったりしますが、上手く構成を考えれば、これで一本の動画は作れてしまいそうなポテンシャルを感じました。
という事で、Twitterで流行っている薩摩ホグワーツネタに便乗させて頂いたのが以下の動画です。(最近発売されたホグワーツ・レガシーと言うゲームの舞台は、ハリーポッターの前の時代の1800年代で、ちょうど薩英戦争の辺りなので、薩摩藩からホグワーツに留学にいった生徒がいたら、というMemeです)
ModelScope Text to Video Synthesis sample.
Thanks to the open source community and everyone who made this Satsuma Hogwarts Meme possible.#薩摩ホグワーツ #aivideo #HarryPotter #AIart #Aiイラスト #stablediffusion #multimodalart pic.twitter.com/AVSR1Z3HtG— webbigdata (@webbigdata) March 24, 2023
コンセプトアートは、Stable Diffusion、シナリオはGPT-4です。AIに手伝って貰ったら一人で動画を簡単に作成できる時代が来てますね。
Diffusersでセットアップした際のメモ
Conda環境のセットアップ
conda create -n i2v conda activate i2v pip install torch==2.0.0 git+https://github.com/huggingface/diffusers transforme rs==4.27.2 accelerate imageio[ffmpeg]
サンプルスクリプト
import torch from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler from diffusers.utils import export_to_video from base64 import b64encode pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16") pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) pipe.enable_model_cpu_offload() pipe.enable_vae_slicing() prompt = 'Advertising video for robot animation in the 1980s.' video_duration_seconds = 3 num_frames = video_duration_seconds * 10 video_frames = pipe(prompt, negative_prompt="low quality", num_inference_steps=25, num_frames=num_frames).frames video_path = export_to_video(video_frames, "./test.mp4")
3.プロンプトから動画を作成するColabとSpaceが公開関連リンク
1)huggingface.co
multimodalart / diffusers_text_to_video(Colab)
damo-vilab / modelscope-text-to-video-synthesis(Space)
2)github.com
deforum-art / sd-webui-modelscope-text2video