はじめに
Stable Diffusionのモデルは様々なバリエーションが生まれていて、どれを選んで良いかわからないというのが現状です。比較しようにもいちいち試すのが面倒で、civitaiのサンプルを見て良さそうと思って実際に使ってみると見本通りに画像が生成できないといったことが日常茶飯事です。
Stable Diffusionモデル比較の難しいところは、モデルによって呪文(プロンプト)にコツがあるので、同じ呪文(プロンプト)で比較しても、それぞれのモデルの強みが活きないところです。そこで、「日本人美女に適したモデルを求めて」と題して人気モデルを1つずつ掘り下げてみて、日本人美女を作るのに適したモデルを決めることにしてみました。
今回は、civitaiで人気No.1モデルのDreamShaperです。
DreamShaperとは
DreamShaperは写真やイラストなど多岐に渡るスタイルを生成することができるAIです。多くのStable Diffusionの派生系のAIは実写かイラストに特化していることが多いですが、DreamShaperはどちらも生成できることが特徴です。幅広い種類の画像が生成できるにも関わらず、高い品質で画像生成ができるためcivitaiでは人気No.1モデルとなっております。
準備
それでは、DreamShaperを使っていきます。まずは、DreamShaper本体をダウンロードします。本記事執筆時点でのバージョンは7です。
また、DreamShaperのサンプルの呪文(プロンプト)を見てみると、BadDreamとUnrealistic Dreamというembeddingが利用されていることが多いです。そのためBadDreamとUnrealistic Dreamを導入することにします。
以下のcivitaiからダウンロードしてStable Diffusion WEB UIのルートのembeddings配下にダウンロードしたBadDream.ptを配置します。BadDreamにはUnrealistic Dreamも含まれています。
DreamShaper7を試す。
「日本人美女に適したモデルを求めて」シリーズでは、次の3つのテーマで調査を行うことにします。
- ステージの上で踊る20歳の日本のアイドルと声援をおくる観客
- 教室で、放課後に椅子に座る18歳の制服姿の日本の女子学生
- 渋谷の中で写真を撮る20歳のK-POPアイドル
日本人美女なのに3.を加えたのは、韓国人女性を生成して、比較することで日本人と韓国人を見分けて生成できているかを確認するためです。
ステージの上で踊る日本のアイドルと声援をおくる観客
まずはcivitaiのサンプル画像で良い画像の呪文(プロンプト)をベースに呪文(プロンプト)を作成してみました。
prompt:
(masterpiece), (extremely intricate:1.3), (realistic), portrait of a girl, professional photograph of a dancing Japanese idol 20 years old woman on stage detailed in front of a cheering audience, sharp focus, dramatic, award winning, cinematic lighting, (film grain, blurry background, blurry foreground, bokeh, depth of field, sunset, motion blur:1.3),
Negative Prompt:
BadDream, (UnrealisticDream:1.3)
生成結果:
実写画像の呪文(プロンプト)をもとに作成したのですが、臨場感はありますが、色々と問題がありますね。
- 20歳と指定したのに子供っぽい
- 実写というより3Dやアニメ
- 中国の民族衣装みたい
上記の問題点を踏まえて次のように修正
- Negative PromptにChinese dress,paintings, sketch, painting, cartoon, 3d, anime, drawingを追加
Prompt:
(masterpiece), (extremely intricate:1.3), (realistic), portrait of a girl, professional photograph of a dancing Japanese idol 20 years old woman on stage detailed in front of a cheering audience, sharp focus, dramatic, award winning, cinematic lighting, (film grain, blurry background, blurry foreground, bokeh, depth of field, sunset, motion blur:1.3),
Negative Prompt:
BadDream, (UnrealisticDream:1.3),Chinese dress,paintings, sketch, painting, cartoon, 3d, anime, drawing
問題点については多少、改善はしましたが微妙ですね。いっそのことPromptをシンプルにしてみます。
Prompt:
Photo of a dancing Japanese idol 20 years old woman on stage in front of a cheering audience,idol uniform,
Negative Prompt:
BadDream, (UnrealisticDream:1.3),Chinese dress,paintings, sketch, painting, cartoon, 3d, anime, drawing
求めている画像に近づいてきましたがあと少しです。
- cheeringに引っ張られてチアガールっぽくなっている
- 顔をもう少し綺麗にしたい。よく見ると怖い。
- 実写に近づけたい
ということで呪文(プロンプト)を調整しました。
- cheringを呪文(プロンプト)から削除
- Promptにbeautifulを追加
- Negative Promptの3dやanimeを1.5にして強調することで3Dっぽくなるのを防ぐ
Prompt:
Photo of a dancing beautiful Japanese idol 20 years old woman on stage in front of a audience,idol uniform,
Negative Prompt:
BadDream, (UnrealisticDream:1.3),Chinese dress,(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing
思ったより、実写画像を作るのが難しいですね。まだ問題が解決しなさそうなので、呪文(プロンプト)を修正しました。
- realistic,photo-realisticを呪文(プロンプト)に追加
- UnrealisticDreamの強度を2に変更
- childをネガティブ呪文(プロンプト)に追加
- ugly face, unclear eyes, bad mouthを追加
Prompt:
realistic,photo-realistic,Photo of a dancing beautiful Japanese idol 20 years old woman on stage in front of a audience,idol uniform,
Negative Prompt:
BadDream, (UnrealisticDream:2),Chinese dress,(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing,child, ugly face, unclear eyes, bad mouth
これ以上は呪文(プロンプト)の改善が難しいのでここまでにします。解像度の関係もありそうなので縦横を入れ替えてみます。
目がつぶれにくくなったので、縦長のほうが得意な気もします。しかし、子供っぽさと3D感がなかなか抜けにくい印象です。
教室で、放課後に椅子に座る18歳の制服姿の日本の女子学生
Prompt:
realistic,photo-realistic,Photo of a beautiful Japanese 18 years old woman sitting on chair in class room,school uniform,after school,
Negative Prompt:
BadDream, (UnrealisticDream:2),(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing,child, ugly face, unclear eyes, bad mouth
アイドル画像を生成したときよりは実写に近づいた気がしますね。ただし気になった点としては
- 足が変な画像が生成されている
- 少し子供っぽい
- 韓国人風
そこで呪文(プロンプト)を調整しました。
- ネガティブ呪文(プロンプト)にbad anatomy, extra legsを追加
- 18 years→ 20years
- Korean womanを追加
Prompt:
realistic,photo-realistic,Photo of a beautiful Japanese 20 years old woman sitting on chair in class room,school uniform,after school,
Negative Prompt:
BadDream, (UnrealisticDream:2),(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing,child, ugly face, unclear eyes, bad mouth, bad anatomy, extra legs, Korean woman
よくよく見ると目が変な画像もありますが、半分ぐらいは及第点の画像なのでこれで呪文(プロンプト)の調整を終わります。最後に解像度を変更して縦のバージョンも確認します。
縦長だと、かなり高い品質で生成されていると思いました。目が潰れてしまう問題点は画像の解像度も大きく影響しているようです。
渋谷の中で写真を撮る20歳のK-POPアイドル
Prompt:
realistic,photo-realistic,Photo of a beautiful 20 years old k-pop idol woman in Shibuya.
Negative Prompt:
BadDream, (UnrealisticDream:2),(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing,child, ugly face, unclear eyes, bad mouth,bad anatomy, extra legs
こちらも3D感が強く出てしまいました。k-popかKoreanどっちか迷ったので、Koreanにした場合についても試しました。
Prompt:
realistic,photo-realistic,Photo of a beautiful 20 years old Korean idol woman in Shibuya.
Negative Prompt:
BadDream, (UnrealisticDream:2),(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing,child, ugly face, unclear eyes, bad mouth,bad anatomy, extra legs
個人的にはKorean idolほうがイメージに近い気がします。
DreamShaperでリアルな肌を実現する
これは記事執筆後に発見したTipsですが、以下の呪文(プロンプト)を追加することで自然な肌に近づきます。
natural skin texture, hyperrealism, soft light, sharp
例えば、渋谷の中で写真を撮る20歳のK-POPアイドルの例がわかりやすいので試してみます。
Prompt:
realistic,photo-realistic,Photo of a beautiful 20 years old Korean idol woman in Shibuya.natural skin texture, hyperrealism, soft light, sharp
Negative Prompt:
BadDream, (UnrealisticDream:2),(paintings, sketch, painting, cartoon, 3d: 1.5), anime, drawing,child, ugly face, unclear eyes, bad mouth,bad anatomy, extra legs
構図が肌に着目してはしまいますが、3Dぽさが薄れて自然な感じに近づきましたね。
DreamShaperで実写画像を生成したいときの呪文(プロンプト)
- Negative PromptはBadDream, UnrealisticDreamを使う
- ネガティブ呪文(プロンプト)のembeddingsは用意されているけれど、一般的なネガティブ呪文(プロンプト)も入れたほうが良い。
- 実写画像を作る際はrealistic,photo-realistic,natural skin texture, hyperrealism, soft light, sharp
まとめ
DreamShaper7の良い点
- ネガティブ呪文(プロンプト)が少なく済む。
- 汎用的なモデルなので色々な画像が生成できる。
DreamShaper7の苦労したポイント
- アジア系女性の生成しようとすると、どうしても子供っぽくなる。
- 実写というよりも、3D画像のような、2.5次元に近い画像が生成されやすい。
結論
DreamShaper7は日本人女性画像を生成するのには、あまり向かない印象です。次回はepiCRealismを試してみます。
コメント