deforum stable diffusion × Midjourneyでアニメーションを作る際のプロンプトのコツ

## 最終的なアウトプット

<iframe width="560" height="315" src="https://www.youtube.com/embed/fvsQDPKu-5Q" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

## 素材集め

まず最初に舞台を設定するために，[画像とprompt（テキスト）の組み合わせを取り扱うサイト](https://prompthero.com/midjourney-prompts)があって，そこから自分の思い描く舞台をピックアップしました．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1771055/6232d720-60d5-254f-8277-e70e34248304.png)

そのサイトでは画像とprompt（テキスト）がセットになっているので，箇条書きでpromptをまとめます．promptの例は以下のようなものです．

```
The City of Atlantis, Beautiful palace, Exquisit architecture, Reflections, Lush vegitation, Atmosphere, Spectacular details, Dramatic lighting, Epic composition, Wide angle, Low angle, by Miyazaki, Nausicaa Ghibli, Breath of The Wild
```

ここでの目的は全体の絵のクオリティをあげることです．背景のプロンプトをざっくり書いてしまうとあまりいい見た目にならないので，AIに認識してもらうため背景を細かく示してあげる必要があります．

## ストーリー作り

次にストーリーをいれます．というのは前述のprompt集めだけだと絵のクオリティがあがるだけでアニメーションのコマごとの流れがないからです．

ストーリーを作るのも自分には面倒だったので，[ChatGPT](https://chat.openai.com/chat) に「エルデンリングとジブリを組み合わせてストーリーを箇条書きにして書いて」と質問しました．もう少し具体的に聞いてみてもよかったかもしれません．

![eldenring.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1771055/a841287b-e016-31d9-1bfb-8fa151cc1058.png)

## 最終的なプロンプト

上記の内容をもとにプロンプトをくっつけます．自分の場合は↓のような組み合わせにしました．

- ChatGPTでもらったストーリーの文言
    - 例:The protagonist, Elden, is a ordinary boy living in the world of Eldenring.
- 共通にいれたいストーリーの文言
    - 例: Eldenring
- 背景のプロンプト
    - 例：The City of Atlantis, Beautiful palace, Exquisit architecture, Reflections, Lush vegitation, Atmosphere, Spectacular details, Dramatic lighting, Epic composition, Wide angle, Low angle
- 共通に入れたい背景の文言
    - 例：by Miyazaki, Nausicaa Ghibli, Breath of The Wild
- 生成画像のスタイル
    - 例：mdjrny-v4 style

ここで，さきほど作成したプロンプト以外にもいくつかいれたものがあるので紹介します．

共通にいれたいストーリーの文言は，登場するキャラクター(The protagonist, Elden)という名前で必ず入れるようにしました．これによってコマが変わっても同じ登場人物が現れるようになるはずです．

共通に入れたい背景の文言は，コマごとの背景に一貫性を持たせたかったので，`by Miyazaki, Nausicaa Ghibli, Breath of The Wild` と入れています．

最後の `mdjrny-v4 style` という文言はモデルデータをStable Diffusionではなく，今回は [Openjourney](https://huggingface.co/prompthero/openjourney) と呼ばれるMidjourneyのコピーモデルに変更しているので，それに必要な文言になっています．これにより絵のクオリティがMidjourneyレベルまで上がります．

ちなみに，Openjourneyは，MidJourneyの画像集とプロンプトをもとに学習して再構築したオープンソースのモデル -> 実質 MidJourneyのコピーと思ってよいです．


## モデルをOpenJourneyに差し替える方法

Deforum Stable DiffusionのSetup -> Select and Load Modelの箇所で以下のようにcustom_checkpoint_pathで OpenJourneyのモデルデータのパスを指定し，model_checkpointをcustomとする，だけです．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1771055/302b48d0-df4c-3cb3-c371-dfeae341d6b5.png)

モデルデータは[OpenJouneyのリンク](https://huggingface.co/prompthero/openjourney/tree/main)

mdjrny-v4.ckpt があるのでそれをダウンロード後，自身のGoogle Driveにいれておくだけです． `AI/models/` に入れることが多いので各自フォルダを作っていれて使ってください．

![スクリーンショット 2022-12-10 184520.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1771055/a81262af-06d8-f414-43f8-cd65905bf000.png)



## 最後に

DeforumのパラメータのTipsなどはまた別の記事で紹介します．
ぜひ、フォローよろしくお願いいたします！

- [Twitterアカウント](https://twitter.com/supertask_jp)
- [YouTubeアカウント](https://www.youtube.com/c/TasukuTAKAHASHI)