2023年12月に最新のMidjourney v6もリリースされた画像生成AI「Midjourney」は、ユーザーが指示したテキストから画像を生成できるAIツールだ。
OpenAIが開発するDALL-E 3や、Stability AIが開発するStable Diffusion 3など、高性能なモデルがひしめき合う競争激しい画像生成AI業界だが、Midjourneyはリアルな写真の描写や、同一キャラクターの一貫した描写などの点で、他社のモデルよりもずっと優れていると思う。
Midjourneyを使えば、簡単に高クオリティの画像生成が可能だが、初見では、「コマンド」や「パラメーター」などの独特のシステムの理解が難しく、若干ハードルが高い。
「パラメーター」とは、プロンプトの最後にハイフンを使って入力される以下のようなテキストのことだ。
Midjourneyでは、DALL-E 3のような単なる文章によるプロンプトだけでなく、--sref 984719874
だとか、--ar 16:9
などのパラメーターをプロンプトに付け加えることができる。
メインのプロンプトで何の画像を生成するかの大まかな指示をした上で、パラメーターを使って、アスペクト比や特定のスタイルなどの高度なコントロールを行うことができるのだ。
しかし、初見では全然何が起きているのか分からない上に、公式の説明書はすべて英語なので、Midjourneyを使ったことがある人でも、イマイチ意味がよく分かっていない人も多いはず。
そこで本記事では、Midjourneyで利用可能な全てのパラメーターについて、初心者にもわかりやすく意味と使い方を解説する。
アスペクト比の変更などの基本的なパラメーターに加え、キャラクターの一貫性を保つためのCharacter Reference、画像のスタイルを統一するためのStyle Referenceなど、より高度なテクニックについても詳しく紹介していく。
同一のキャラクターを様々なシーンで登場させる方法や、作品全体で一貫したスタイルを実現する方法を、実際の作例とともに解説するので、ぜひ参考にしてほしい。
MidjourneyのDiscord版とブラウザ版
Midjourneyのハードルの高さのもう一つの理由が、Discordというチャットアプリ上で画像生成AIを使用する、というクセの強いユーザーインターフェースにある。
チャット画面上で、/imagine woman under water --ar 2:3
などと、/imagine
コマンドに続いて生成したい画像の説明文を打ち込むことで、AIがそのプロンプトに従った画像を生成する仕組みになっている。
この記事で解説するパラメーターも、Discord上で使用する場合には、/imagine
コマンドに続いてチャット画面に打ち込むことで使用する。
幸いにして、近いうちにMidjourneyが遥かに使いやすくなるブラウザ版が正式リリースされる予定である。
記事執筆現在(2024年5月)、Discord版で100枚以上の画像を生成した経験のあるユーザーは、ブラウザ版の「Midjourney Alpha」を使用することができる。
ブラウザ版では、過去に生成した画像に使った--ar
や--sref
などのパラメーターをワンクリックで再利用できたり、リファレンスとして使用する画像の指定やアップロードがブラウザ上で簡単に行えたりと、利便性が大幅に向上する。
この記事で紹介しているパラメーターは、Discord版とブラウザ版、両方で使用できるものだが、解説に使用しているスクリーンショットはブラウザ版だ。
この記事で、Discord版のユーザーも、特に問題なく各パラメーターの使い方を理解できるはずだが、せっかくであれば100枚生成の基準をクリアして、ブラウザ版に移行することをぜひお勧めする。
マスター必須の超重要パラメーター6選
多数存在するMidjourneyのパラメーターの中でも、特に生成される画像のクオリティに影響する重要なパラメーターで、実際によく使うものは数個だけだ。
よく使う必須のパラメーターさえ深く理解しておけば、あとはざっと目を通しておいて、困った時に検索する程度でやり過ごせるだろう。
そこでまずは、Midjourneyで生成する画像をグンとレベルアップするために、絶対に理解すべき・使いこなすべき必須のパラメーター6つを解説していく。
Character Reference (–cref)
Character Referenceは、特定のキャラクターを一貫して描写するためのパラメーターだ。あるキャラクターの画像をリファレンスとして指定することで、そのキャラクターを別の場所や別の状況で描いた画像を生成できる。
使い方は、プロンプトの最後に--cref リファレンス画像のURL
と追加する。リファレンス画像は、Midjourney自身が生成した1キャラクターの画像を使うのが望ましい。複数のリファレンス画像を指定することも可能だ。
それでは実際に、まず女性が一人で写った写真を生成したあと、その中から気に入った人物を選び、その人物を異なるシーンに登場させた画像を生成してみることにする。
まずは、以下のプロンプトでキャラクターを生成する。まだ説明していないパラメーターが色々含まれてしまっているが、今は気にしないで良い。
Young woman with wet dark hair, soft lighting, simple white t-shirt --ar 2:3 --style raw --sref 3417747545 --stylize 500
このプロンプトによって生成された女性の画像4種の中で、最もイメージに近い4枚目の女性を、--cref
コマンドで使用するリファレンスキャラクターとして選んだ。
ここでは、この女性が水に潜っているシーンを描くため、新たに「水中の女性」というプロンプトを与えた上で、4枚目の画像のURLを--cref
コマンドに続けて打ち込む。
(ブラウザ版では過去に生成した画像をクリックして指定する。)
woman under water --ar 2:3 --style raw --sref 3417747545 --stylize 500 --cref **指定画像のImage URL**
すると、見事に最初に生成した4枚目の女性と同一の人物が、水中に潜っている画像が生成された。
最初に生成した画像と同じスタイルパラメーターなどを使用しているため、水中の画像の雰囲気も最初の画像に近くなっているが、全く雰囲気の違う写真に同一人物を登場させることだって可能だ。
例えば、以下のように、ニューヨークの街中など全然関係のない場所を歩かせることだってできる。
リアルな写真でも、アニメ風のイラストでも、同一人物を異なるシーンで描写することができるので、作品作りの幅が大きく広がる。
なお、指定したキャラクターの特徴をどれほど強く考慮するかを、--cw 値
オプションをつけることで、0から100の間で指定できる。
--cw 0
だと顔のみ、--cw 100
だと髪型や服装なども含めてキャラクターを再現する。顔だけを揃えて服装を揃えたくない場合には、低い値にセットする方が良い。
Style Reference (–sref)
Style Referenceは、生成する画像のスタイルや芸術性(aesthetic)を、別の画像をリファレンスとして与えることで、狙ったスタイルに近づけるためのパラメーターだ。
例えば、ファンタジー絵本のような画像を--sref
パラメータで指定すれば、新たに生成される画像も、リファレンスのスタイルに近づき、ファンタジー絵本っぽいタッチの画像になる。
スタイルリファレンスを使用するには、--sref
パラメーターの後に過去に生成した画像などのオンラインで保存されている画像のアドレス(URL)を指定する。スタイル参照は、テキストを含むプロンプトにのみ適用され、画像のみのプロンプトでは使えない。
--sref URL
以下のように、複数のスタイル参照を使うこともできる。
--sref URL1 URL2 URL3
これを使うことで、過去に生成したことのある画像のスタイルと近い画像を安定的に出力し続けることが可能になる。
画像のURLを指定するだけで良いので、自分のお気に入りの写真やイラストに近い雰囲気をMidjourneyで再現することも、より一層容易になる。
また、--sref
パラメータのより重要な使い方として、URLを指定するのではなく、--sref 762351716
というように、数字の列を指定することで、参考画像がなくても、毎回決まったスタイルを使い回し続けることが可能だ。
例えば、Caracter Referenceの項で生成した以下の女性は、実は--sref 3417747545
というsrefコードを与えることで、白貴重の明るい印象の写真に仕上げていた。
srefコードなしでは下段のような女性しか生成できなかったところ、--sref 3417747545
というコードを与えたことで、上段のような雰囲気に近づけた。
このような数字の羅列は、ランダムに試行錯誤して、お気に入りの数字を見つけるしかない。
一度見つけ出した数字は、ずっと使い回すことができるので、Midjourneyユーザーのコミュニティでは、イケてるsrefコードを紹介し合うのがトレンドになっているほどだ。
Xで「sref」と検索すれば、多くのMidjourneyユーザーがスタイルコードと画像をセットで紹介しているので、気に入ったスタイルがあれば、そのsrefコードをどんどんメモしておくと良い(ちなみに上記のsrefコードはこちらのツイートから拝借した)。
--sref random
を使えば、ランダムな数字を画像に適用することができるので、作品作りで行き詰まりを感じたら、とりあえず--sref random
を打ち込んで、ガチャ気分でいい感じのsrefコードが見つからないかを検証してみるのも良いだろう。
ちなみに、Caracter Referenceと同様に、スタイルの適用の強さを、--sw 0
など数値でコントロールすることができる。0から1,000の間の値を指定して、どこまで厳密にスタイルを踏襲するかを指示する。
Style (–style) とスタイルチューナー
Styleは、Midjourneyのデフォルトのスタイルを置き換えるためのパラメーターだ。使い方によっては、--sref
と似たような働きをするが、参考画像は不要である。
頻出の使い方として、--style raw
というパラメーターがある。
raw
スタイルは、Midjourneyが通常自動的に行っている美化・装飾効果をなくし、できるだけ「生」に近い生成を行うモードだ。
プロンプト文で指示した演出を忠実に再現させたい場合など、プロンプトに慣れているユーザーが画像をより細かくコントロールしたい時に適している。
--sref
などを使って特定のスタイルに寄せる際にも、それ以外の装飾効果を消して、よりリファレンスと近づけるために--style raw
を同時に使うことも多い。
また、Style Tunerを使って自分オリジナルのカスタムスタイルコードを作成し、--style <カスタムスタイルコード>
という使い方もある。
Style Tunerは、/tune
コマンドで、たくさんの画像から自分のイメージに近い画像だけを選び、自分の好みを反映したスタイルを作成する機能だ。
当サイトで、過去にスタイルチューナーの使い方を詳しく説明しているのでそちらの記事も参考にして欲しい。
例えば、あらかじめ車が砂漠を疾走しているフラットな印象のスタイルを作成しておいて、プロンプトの最後に--style <カスタムスタイルコード>
を追加することで、類似の画像を続けて生成することなどができる。
ちなみに、--sref random
と同じく、ランダムなスタイルを適用することも可能だ。
プロンプトの最後に--style random
とつけると、スタイルチューナーを自分で作成し好みの画像を選択しなくても、ランダムにスタイルチューナーの結果が作られ、カスタムスタイルコードとなる。
思いがけない効果が得られることがあるので、制作に行き詰まった時などに使うと面白い。
デフォルトでは32種類の選択を行うスタイルチューナーをランダムにコード化するが、--style random-16
、--style random-64
、--style random-128
のように、Style Tunerの長さを指定することもできる。
Stylize (–stylize, –s)
MidjourneyのAIモデルは、芸術性の高い色彩、構図などを好むようにトレーニングされているところ、Stylizeは、そのような学習結果・傾向を、生成する画像にどの程度強く反映するかを指定するパラメーターだ。
--stylize
または--s
の後に数値を指定することで使用するが、デフォルト値は100で、0から1000の整数の数字を指定できる。
値が高いほど、非常に芸術的な画像が作成されるが、プロンプトとの関連性は低くなっていく傾向にある。
例えば以下は、全く同じプロンプトで、Stylizeの値を100から1000まで変化させながら女性を生成してみた例である。高くなるにつれて、背景のボケ感などの演出が強化されていっているのが分かる。
No (–no)
Noは、いわゆる「ネガティブプロンプト」のためのパラメーターだ。通常のプロンプトは、描写してほしいことを書き上げるのに対して、ネガティブプロンプトは、描写しないで欲しいことを列挙することだ。
除外したい要素を--no
の後に指定する。生成された画像から、特定の要素を除外したい場合に使う。例えば、/imagine street --no pedestrian
とすれば、歩行者(pedestrian)のいない道を生成しようとする。
複数の要素を除外したい場合は、--no
の後にカンマ区切りで指定する。--no dogs, cats, birds
のようにすれば、犬、猫、鳥を描写しないように指示できる。
せっかくいい感じの画像が生成されても、これは写って欲しくない、という描写が入ってしまうことはよくあるので、そういった場合に--no
パラメーターが非常に役立つ。
Aspect Ratios (–aspect, –ar)
Aspect Ratiosは、生成される画像のアスペクト比を変更するパラメーターだ。単純ではあるが、これが最も頻繁に利用することのあるパラメーターかもしれない。
アスペクト比とは、画像の幅と高さの比率のことで、1:1や16:9などと表現される。
--aspect 幅:高さ
または--ar 幅:高さ
というパラメーターを使うことで、これを変更できる。Midjourneyのデフォルトのアスペクト比は1:1(正方形)だが、例えば、--ar 16:9
とすれば、横長の画像が生成される。
Midjourneyにおいてよく使うであろうアスペクト比としては、主に以下が挙げられる。生成した画像の用途に応じて変更してみよう。
- –aspect 1:1: デフォルトのアスペクト比
- –aspect 5:4: 一般的なフレームとプリントの比率
- –aspect 3:2: プリント写真で一般的な比率(横向き)
- –aspect 2:3: プリント写真で一般的な比率(縦向き)
- –aspect 7:4: HDテレビ画面やスマートフォン画面に近い比率
- –aspect 16:9: ワイドスクリーンの比率
覚えておくと便利なパラメーター全解説
最も重要なパラメーターは上記の6つで、この先はあまり使用頻度が高くないパラメーターも多いが、辞書的な意味で全てのパラメーターについて解説しておく。
Chaos (–chaos)
Chaosは、生成される画像のバリエーションを変更するパラメーターだ。4つの画像が生成される際に、値が大きいほど、より予想外で独特な画像が含まれるようになる。
Chaosの値は0から100の間で指定する。プロンプトの最後に、--chaos 値
または--c 値
と追加して使う。
デフォルト値は0で、値が小さいほど画像のバリエーションは少なくなり、値が大きいほどバリエーションは増える。
例えば、「宝飾が施された貝殻」の画像を、Chaos値0で生成すると、言葉通りに貝殻の画像が一貫して生成されるが、Chaos値80-90まで引き上げると、貝殻っぽい模様の食器や、指輪などまで登場し、まさに「カオス」となる。
探索的に画像を生成したい時は高めの値を、ある程度方向性が決まっている時は低めの値を使うとよいだろう。
Fast (–fast) / Relax (–relax) / Turbo (–turbo)
Midjourneyには、画像生成時の処理速度を調整するためのFastモードとRelaxモード、さらに超高速のTurboモードがある。
Fastモードでは、GPUリソースを最優先で割り当てられ、高速で画像を生成できる。一方、Relaxモードでは、すぐには画像を生成せず、GPUリソースが空いた時に生成する待機列に入る。したがって、Relaxモードの処理速度は大幅に遅くなる。
利用している料金プランによって、1ヶ月あたりに割り当てられるFastモードを使用できる時間に制限がある。これを「Fast Hours」と呼び、最も安価なBasicプランで3.2時間/月、Standardプランで15時間/月、Proプランで30時間/月となっている。
Basicプランでは、Fast Hoursを超過すると追加でクレジットを購入しない限りもう画像を生成できないが、Standard/Proプランにおいては、速度の遅いRelaxモードを使えば、枚数無制限で画像を生成し続けることができる。
また、本当に急いで画像を生成したい場合には、Turboモードも使うことができる。Turboモードでは、Fastモードの最大4倍の速度で画像を生成できるが、消費するFast Hoursは2倍になる。
これらは、プロンプトの最後に--fast
とか--relax
とか--turbo
などと入力することで切り替えることができる。
Fast Hoursを消費したくなくて、画像生成を待つ時間に余裕があるときは、Relaxモードで画像を生成するようにしてもいいかもしれない。
Image Weight (–iw)
Image Weightは、テキストと画像を組み合わせたプロンプトにおいて、画像とテキストの重要度のバランスを調整するパラメーターだ。
値は0から2の間で指定し、デフォルトは1になっている。値が大きいほど、画像プロンプトの影響が強くなる。
使い方は、プロンプトの最後に--iw 値
と追加する。例えば、/imagine prompt flower.jpg a cake --iw 1.5
とすれば、花の画像を参考にしつつ、ケーキの画像を生成するが、画像プロンプトを重視するので、花の要素がより強く反映される。
Quality (–quality, –q)
Qualityは、画像のレンダリングに費やす時間を調整するパラメーターだ。
値が高いほど、より高精細な画像が生成されるが、その分GPUの使用時間も長くなる。デフォルト値は1で、値が低いほどGPU使用時間は短くなる。
使い方は、プロンプトの最後に--quality 値
または--q 値
と追加する。値は0.25、0.5、1のいずれかを指定する。例えば、--q 0.5
とすれば、デフォルトの半分の時間でレンダリングが行われる。
プロンプトのブラッシュアップをしている途中で、ざっくりとしたイメージを素早く生成したい時は低めの値を設定してFast Hoursを節約しておき、お気に入りの構図が見つかった時点で、細部まで詳細に作り込むためにデフォルトの設定に戻す、といった使い方が考えられる。
Repeat (–repeat, –r)
Repeatは、1つのプロンプトから複数のジョブを作成するパラメーターだ。--repeat
または--r
の後に1から40の間の数値を指定することで、同じプロンプトを何度も素早く実行できる。
使い方は、プロンプトの最後に--repeat 値
または--r 値
と追加する。例えば、--repeat 5
とすれば、同じプロンプトで5回のジョブが実行される。
Repeatは、同じプロンプトで何度も画像を生成したい時に便利だ。ベストな画像を探すために、同じプロンプトで何度も試行錯誤する場合などに活用できる。
ただし、当然ながら、GPUのFast Hoursの消費量も繰り返した分だけ増えるので、使いすぎないように注意は必要だ。
Seed (–seed)
Seedは、画像生成の開始点となるノイズパターンを指定するパラメーターだ。Midjourneyは、テレビの砂嵐のようなランダムなノイズから画像生成を始めるが、そのノイズパターンを決めるのがシード値だ。
シード値は0から4294967295の間の整数で指定する。デフォルトではランダムに決められるが、--seed
パラメーターを使って明示的に指定することもできる。
例えば、--seed 1234
とすれば、シード値1234を使って画像が生成される。
同じシード値と同じプロンプトを使えば、似たような画像が生成される。シード値を固定した上で、プロンプトを細かく変えていくことで、プロンプトの変更が画像にどう影響するかを正確に確認でき、生成結果をより繊細にコントロールできる。
Stop (–stop)
Stopは、画像生成を途中で止めるパラメーターだ。--stop
の後に10から100の間の数値を指定することで、画像生成をその%で中断できる。
Midjourneyで画像を生成すると、通常、生成が100%完了するまでの間に、ぼやっとした画像から、徐々にくっきりしていく過程が見えるはずだ。--stop
を使うことで、その途中で生成を止めることができる。
%が小さいほど、ぼやけて何が写っているのかよく分からない画像になる。
抽象画を作りたい場合など、あえて未完成でぼやけた画像を作りたい時には使えるが、あまり通常時に使用する機会はない。
Tile (–tile)
Tileは、同じ画像を横に並べて無限に繰り返せるようなパターン画像を生成するパラメーターだ。
使い方は、プロンプトの最後に--tile
と追加するだけだ。1枚のタイルを生成してくれて、その画像を横に並べていけば、シームレスにタイルの間がつながっているデザインになる。
Tileは、壁紙などのパターンを作成したい時に便利だ。
Video (–video)
Videoは、画像が生成される過程を動画で保存するパラメーターだ。
使い方は、プロンプトの最後に--video
と追加する。
Discordで画像の生成が完成したら、メールの絵文字(✉️)で返信をすると、Midjourneyボットがダイレクトメッセージに動画のリンクを送ってくれる。
あまり通常は使い所はないが、Midjourneyの動作を人に見せたいとか、画像が生成されていく過程を見たい時に便利だ。どのようにして最終的な画像が出来上がったのかを確認できる。
Weird (–weird, –w)
Weirdは、その名の通り、変な画像を生成したい時に使用するパラメーターだ。不気味な画像、見たことのない画像などが生成される。
プロンプトの最後に--weird <0から3000の数値>
または--w <0から3000の数値>
を追加する。デフォルト値は0で、値が大きいほどよりユニークで予想外の結果になる。
Weirdは、奇妙でエッジの効いた独特の画像を生成したい時に便利で、通常とは違った芸術性を探求できる。ただし、値が大きすぎると、プロンプトとの関連性が遠くなってしまうこともある。
--chaos
パラメーターとも似ているが、--chaos
は、生成される4つの画像同士がどれだけ異なっているか・多様かをコントロールしている。したがって、思いがけない画像が生成される可能性はあるが、「変な」画像が出てくることは少ない。
--weird
パラメーターは、通常のMidjourneyの生成画像に対して、どれだけ「普通じゃないか」をコントロールしているため、より奇妙な画像が生成される。