見出し画像

Midjourneyのプロンプトをチャットで生成するbotを作った



この記事はなに?

 Discordでチャット形式でMidjourneyのプロンプトを作成・修正してくれるbotを作ったよ。


はじめに

 みなさん、Midjourney使ってますか?

https://www.midjourney.com/home

 私は趣味で小説を書いたりするのですが、その時に挿絵などを入れたいなとよく思います。
 そんな時に、Midjourneyはとても便利です。
 普通、自分の書いた小説に絵をつけるには、自分が描くか、友人に描いててもらうか、イラストレーターに依頼するかしかありません。
 でも、私は絵が描けないし、絵がうまい友人もいない、イラストレーターに依頼しようにも、そもそもこんな自分の小説なんかに絵をつけてもらっていいのか?とそんなことを思ってしまって、なかなか依頼できません。

 しかし、画像生成AIは違います。
 こんなに気軽に画像を頼んで、しかもかなりのクオリティで出してくれるなんてすごすぎる!

 Stable Diffusionもいいのですが、やはりMidjourneyは操作が簡単なのと、そこまでプロンプトを練らなくてもいい感じの絵が出てくるので重宝しています。

 この記事では、私がMidjourneyを使って不便だと思ったところを、botを作って改善したので共有しようと思います。
 一言で言うと、チャットでMidjourneyのプロンプトを生成したい!ということです。

 githubにコードを上げているのでよかったら使ってください。


動機

 Midjourneyを使うと、簡単で綺麗な画像を作ってくれるが、プロンプトの作成はめんどくさい。

 一番手っ取り早いのはChatGPTに「〇〇の絵を描くMidjourneyのプロンプトを書いて」と言う。
 詳細な単語まで出力してくれるので自分で考えるよりも遥かにいいプロンプトを作成してくれる。

 ただ、これの欠点はいちいち修正のたびにChatGPTにお伺いを立てなければならないことだ。

 例えば、「ビーチに犬がいる画像」を描くために、ChatGPTにプロンプトを出力してもらったものの、出て来た画像に不満があった。犬の種類や、天候、人の有無など、想定と違うことはよくある。
 そこで、画像を修正しなければならないが、この場合、もう一度ChatGPTを開いて、さっきの画像から「天候を雨にしてください」というような指示を出して、新しいプロンプトを作ってもらう必要がある。

 これはめんどくさい。
 よって、Botを使って、この作業をそのままDiscord上でできないか、というのが今回の動機だ。
 結果、私の画像生成ライフは一層充実したものとなった。

実際の使用例

 botにメンションすると、プロンプトが送られてくるので、それをMidjourneyで生成する。

私:「月の爆撃機」

Bot:「A surreal scene depicting a futuristic bomber aircraft flying over the lunar landscape. The aircraft is sleek and metallic, with intricate designs and glowing lights reflecting the harsh light of the moon's surface. Below, the moon is characterized by a rugged terrain of craters and dust, illuminated by the eerie glow of distant stars. In the background, Earth's blue and green hues can barely be seen on the horizon, contrasting sharply with the gray vastness of the lunar surface. The bomber emits a trail of colorful vapor, creating a striking visual against the stark blackness of space, evoking a sense of adventure and exploration in this otherworldly setting.」

 月の爆撃機、とBotにメンションすると、英語でプロンプトを生成し、それを返してくれる。以下の写真で言うと、「MIDアシスト」というのが今回作ったBotのことだ。
 Botのメッセージをコピペし(コードブロックなので右上をクリックすればいい)、それをMidjourneyにつっこんで生成する。

使用例1

 以下が実際に生成された絵だ。


月の爆撃機

 確かにそれっぽい。元ネタはもちろんブルーハーツの曲だ。あの曲好きすぎる。

 で、ここでプロンプトを修正してもらう。
 爆撃機の形がゴツゴツしているので滑らかな感じにしたい。

私:「この爆撃機は流線型のフォルムをしています」

Bot:「A dynamic scene featuring a sleek, aerodynamic bomber aircraft soaring over the rugged lunar landscape. The aircraft's smooth and streamlined form glistens under the soft lunar light, with futuristic details and glowing accents adding to its high-tech aesthetic. Below, the moon’s surface is marked by deep craters and fine dust, casting shadows that enhance the sense of depth. In the distance, Earth can be glimpsed on the horizon, a small sphere of muted browns and greens, symbolizing its parched state. The bomber leaves behind a brilliant trail of colorful vapor that contrasts vividly with the stark gray of the moon and the dark void of space, evoking a sense of motion and daring adventure in this surreal, cosmic environment.」


使用例2

 そして以下の画像が生成された。


月の爆撃機 流線型のフォルム

 滑らかな爆撃機になった。
 これならさっきよりも、もっと高速に宇宙空間を駆け抜けるだろう。


実際の運用

 私は載せているgithubのコードをgoogle cloudのCompute Engineで常時起動している。
 そうすることで、外出中でもスマホからこのbotを呼び出して使うことが出来るからだ。
 bot自体は複雑な処理はしないのでCompute Engineの無料枠でやっていけそう。一週間たったが請求は0円だった。

この記事が気に入ったらサポートをしてみませんか?