🔮

【公開】Stable Diffusionで美しい女性のポートレートを描くprompt(呪文)を公開するチュートリアル🚀【入門編】

2022/08/30に公開

せっかく描くなら美しい女性を描きたい!


https://twitter.com/hagakun_yakuzai/status/1564240690451603456?s=20&t=8049moKKtlOa6F1pUxXzDA

Stable Diffusionは歴史上最も重要なAIアートモデルだと言われています
👆の画像は全てStable Diffusionを使って描いた女性たちです。No Named Womensですが、彼女たちは本当に美しい。

Stable Diffusionにはたくさんの導入記事があり、準備万端!って方が非常に多いと思いますが、いざ描こう!と思ったときに、「何をかけばいいんだろう」と悩む方も多いかと思います。この記事はそんな方の背中を押すために捧げます。

美女。それは美しい女性のことです。
美しい女性には、人を癒す効果があります。
美女に囲まれたら、きっと嬉しいですよね。

いろいろ問題を含むことは承知の上で、AIアート界隈が盛り上がるための火付け役を彼女たちにになっていただこうと思います。きっとこの技術が世界を良い方向に進めてくれると信じて。

今回は、せっかくなので美女を描く(撮る?)方法をprompt(呪文)も含めて大公開しちゃおうかなと思います。もっとうまく描けるぞ!という方はコメント欄にぜひ情報を集めてください。あなたの情報がAIアート界隈を引き上げてくれるでしょう。

準備

https://zenn.dev/6uclz1/articles/d7736b06d24f1a
まだStable Diffusionを自由に使える環境を準備できていない方は、6uclz1さんが書いてくれたこの記事を参考にするとすぐに環境構築できるのでオススメ。

設定では、num_inference_steps=50としています。
この数値を上げると精細な画像が生成されるのですが、実行時間が跳ね上がります。
多くの場合においてStable Diffusionではnum_inference_steps=50を上げるよりも、試行回数を増やす方が、良い画像と出会える確率が高くなるというのが個人的な結論です。

num_inference_steps=50でも充分高精細な画像が出力されるので、オススメしておきます。
よいpromptが見つかってから数値を上げる手法もオススメです。

colabを使うにあたって有料版にグレードアップするか迷うと思いますが、無料版でも特に問題なく実行できるかと思います。実行スピードもそこまで差が出るワケではありませんので、実行上限に引っ掛かるまでは無料版で試してよいかと思います。

つよいグラボを持ってる方はローカルでも全然OKです。

基本フォーマットをおさらいする

https://zenn.dev/link/comments/49b4a4cfa59c8e
こちらのスクラップによくまとまっているように、以下のフォーマットが非常に強力です。

<全体のフォーマット><主題><主題の補足><作者><全体の補足><フレーバー>
おすすめの詠唱のリズム
<全体フォーマット>Detailing oil painting of
<主題>The great white castle on deep forest landscape
<英霊>by CASPAR DAVID FRIEDRICH and CLAUDE LORRAIN,
<全体の補足> perfect lighting, golden hour,
<フレーバー> taken with Canon 5D Mk4

しかし、いきなりこのpromptを実行しても、どのワードが絵にどのような影響を与えるかが分かりづらいので、まずはPhoto of womenというpromptを実行してみます

prompt = "Photo of women"

お、おう、、、
まぁ確かに、promptの通りの写真ではあります。でも、僕らが求めたものとは程遠い...

ここが出発点です。

形容詞を追加する

彼女たちにはもっと美しくなってほしいので、beautifulというフレーズを追加してみましょう。

prompt = "Photo of beautiful women"

おぉ、かなり良くなったと思いませんか? かなり可愛くなった気がします。
ただし、よく見ると顔がぐちゃぐちゃです。そして、目が変ですよね。目は難しいパーツの1つで、顔の造形よりもずっと制御するのが困難なのですが、それはまた後で。

この写真どれも、「その辺で撮った感」が凄いと思いませんか?
この感じを解消していきましょう。

写真を撮る方ならよくご存じかと思いますが、人物を被写体とした肖像画や写真のことをポートレート(portrait)と言います。その中でとくに写真のことをPhotographic portraitと呼ぶため、promptに追加してみましょう。

prompt = "Photographic portrait of beautiful women"

まぁ、ポートレートっぽい写真ですね。

しかし、全体的にカメラ感がないと言いますか、ボケ感が物足りなかったり、背景が全く制御できていなかったり、モノクロとカラーがバラバラだったりと、まだまだいい写真とは言えないような感じです。

今度は、カメラに特有の専門用語を追加して、ポートレート感をさらに深めていきましょう

カメラを意識する

先ほどのスクラップにもあったようにカメラの機種やレンズの特性を入れると非常に効果が高いです。

カメラでStable Diffusion界隈において特に人気なのは

  • Canon EOS 5D
  • Nikon D750
  • Sony α7
    これらを抑えておけばいいと思います。

Canon機とSony機はMk-Vとか複数回のモデルチェンジをしていますが、AIモデルがモデルを区別しているかは微妙ですし、Mk-Vとかいれない方が学習しているパラメータが多い気がするので僕はあえて入れないスタイルです。

また、レンズの焦点距離は

  • 50mm : かつての標準距離
  • 35mm : iPhoneのカメラ距離
  • 80mm : ボケを深くして背景をグッと圧縮したいときの距離
    などがあります。ただし、これらも正確なmm数をAIが認識しているというより、これらのフレーズが入っているとポートレートっぽくなるくらいの効果なので、いろいろ試してみてください。

ボケ具合はf値で調整します。値が小さい方がボケが深いです。

  • f1.8 : ボケ味深め、高級レンズが多い
  • f4 : ズームレンズでよくある
  • f8 : クッキリ見せたい
  • f22 : 風景など、光が多い場所で全体にピンを合わせたい

まぁいろいろありますが、割と最近のベーシックな組み合わせとしてSony α7, 35mm, f1.8を追加してみます。

prompt = "Photographic portrait of beautiful women, Sony α7, 35mm Lens, f1.8"

かなり良くなったと思いませんか?
背景にボケが加わったこと、髪の描写の繊細さなどがグッと良くなって、色使いもオシャレになりました。

はい、おわりでーす!としてもいいくらいですが、個人的には低コントラストのおしゃれ路線ではなく、もう少し明るい感じの写真にしていきたいのでライティング要素を追加します。

自然光で、半逆光がきれいな時間にgolden hourというフレーズがあるのでこちらも加えてみましょう。

prompt = "Photographic portrait of beautiful women, Sony α7, 35mm Lens, f1.8, golden hour"

ちょっと顔が歪んじゃってますが、やりたいことは達成しています。
斜め後ろから太陽光が入って、髪がきらめいているのが分かるでしょうか。
女性の優しさや温かみを感じられるようなライティング。これが重要です。

とはいえ、顔をもっと整えるための方法もあるのでお伝えしておきます。
styleです。

スタイルをあてる

styleをあてると写真のクオリティが急に上がります。
styleとは、画家、クリエイター、フォトグラファーなどその界隈で有名な人のスタイルを適応するものです。

自分の好きなクリエイターの名前を入れればそれでいいのですが、気を付けることもあります。それは
モデルの学習量が多そうなクリエイターの名前を突っ込むことです。マイナーなクリエイターの名前を入れると、かえって絵全体が歪むことが多いので注意しましょう。

私のお気に入りはDaniel F Gerhartzです。彼は油彩の方なのですが、このpromptではPhotographic portrait of ~を付けているので写真のウェイトを多めにした絵を出力してくれます。

彼は女性の身体を描くのが非常に得意な画家なので、スタイルを適応すると、体についての言及がpromptにないにもかかわらず、体が歪みにくいという特徴もあります。

prompt = "Photographic portrait of beautiful women, Sony α7, 35mm Lens, f1.8, golden hour, by Daniel F Gerhartz"

どうでしょうか。かなりポートレートっぽい美人の写真ができたと思います。

ここまでで十分な美人を高確率で生成することができるため、回数をぶん回していただければきっと好みの女性に出会うことができるでしょう。

もういよいよ終わりにしてもいいと思いますが、もうすこし柔らかい印象の修正を加えてフィニッシュしたいと思います。

微調整のためのprompt design

今のところ、照明についてはgolden hourのみを指定しているため、かなり強めの光が当たっています。軟らかい印象にするためにsoft lightingというフレーズを加えましょう。

また、フィルム写真ならではのノイズを追加することで柔らかさをさらにトッピング。film grainを加えてみます。

着ているものを指定していないので、Daniel F Gerhartzの絵を実写化したら大喜利みたいな感じの写真が量産されています。個人的にもう少しディテールが出た方が好きなのでwearing white lace dressでレースのドレスを着てもらいましょう。

さらに、もっともっときめ細やかなきれいな肌を表現したいと考え、glowing skinを追加しました。glowing skinについては綺麗な肌を出力するのに役立ちますが、顔に変なテクスチャが載ってしまうこともあるので諸刃の剣。僕は時間に余裕のある時に入れるようにしています。

最後に、一眼レフカメラのポートレートのサイズは、3:2なので、height=768, width=512を指定してみました。

prompt = "Photographic portrait of beautiful women wearing white lace dress, glowing skin, Sony α7, 35mm Lens, f1.8, film grain, golden hour, soft lighting, by Daniel F Gerhartz"

おぉ~、美しい女性の誕生です!
もっと凝っていくと女性のお召し物を調整したり、前ボケに何を突っ込むか考えたり、影の入り方を工夫したくなったりしてくると思いますが、あまりにも記事が長くなってしまうので入門編はここまで!

Stable Diffusionを使ったアート作品はこちらのインスタで公開していくので、良かったらフォローしてください。

フォロワーさんが増えたらたぶん中級編とか書くと思います。
よろしくお願いします!

https://www.instagram.com/ai_artist_haga/

Twitterもあるよ🐈
https://twitter.com/hagakun_yakuzai

Discussion