AIで再現性の高い絵を描く方法
お疲れさまです。
皆さんAIに絵を描いて貰うときに恐らく一番思うこと『同じ絵を再現して描いて貰いたい』
そのコツをお教えします(*`・ω・)ゞ
コツは3つです
1 余計な情報や指示を長く書かない
2 英語で指示する
3 AND構文やBREAK構文で強調する
余計な情報や指示を長く書かない
例えば次のゲームキャラを模倣して描かせたいとします

色々な特徴ありますよね
とりあえず全部詰め込みますか
大きくしっかりとした目です
目頭はくっきりとしていて、視線を鋭くする。
目尻は角度があり、決意や攻撃性を感じさせる。
瞳の色は赤色で、黒い瞳孔が中央に位置している。
瞳の大きさは大きく、感情を強調している。
髪の形はスパイキーな形状で、動きや活力を感じさせる。
髪の色は金色です
輪郭は鮮明で力強い。
鼻の造形は小さく、やや上向き。
口の造形は開いており、歯を食いしばった決意や攻撃性を示す表情。
眉毛は太く、下向きに角度がついており、強い感情を感じさせる。
肌の色は肌色。
表情は決意や攻撃性を感じさせる強い表情。
このキャラクターは黒い鎧を身にまとい、額に黒いタトゥーのようなマークがあり
これで作成して貰うとどうなるか

後半部分ほぼ指示を無視されてるのわかりますか?黒い鎧とか完全にないですね
原因は長すぎるんですね。
AIはスペースや改行まで含めて判断します。
なので改行とかなくして余計な情報消しましょう。
眉毛とか鼻の造形とかそこまで重要ではないはずです。消して重要な情報だけにしましょう
キャラの表情は決意や攻撃性を感じさせる強い表情
髪型は中位の長さで所々外に跳ねている髪型。個々の髪の束がさまざまな方向に飛び出し、滑らかでやや波打っている。鮮やかな黄金色で動きとエネルギーを感じさせるもの。髪の毛は逆立てず自然に下ろしている
髪色は黄色
額は青色の紋章のようなもの
服装は紺色の鎧を着ている
背景はシンプルな背景

大分よくなりましたね😆
では、これで完成?何回か描いて貰いましょう😆
2回目
あれーー?

3回目
ええええ

どんどんずれていきますね😅
15回目

やっと少し戻ってきましたね
ただ絵を描いて貰うため15回もやり直すのは大変ですよね😅
なので次はこの絵を安定して描いて貰うための方法を紹介します
英語で指示する
なぜ英語で指示するのか?
それはAIツールを作ってる会社が海外だからです。そもそも日本語は曖昧な表現が多すぎてぶれます。
では先ほどの指示を英語にしましょう、
え?できない?
誰でもできますよ
AIにこう言えばいいんです
『次の文を英語にして』
英語にして貰ったのが次の内容です
**Character Features**:
- **Gender**: Boy
- **Facial Expression**: Youthful but with a strong expression that conveys determination and aggressiveness
- **Hairstyle**: Medium length, with parts sticking out. The hair strands fly in various directions, smooth with slight waves, naturally down. Includes a cowlick (one strand standing up)
- **Hair Color**: Yellow
- **Forehead and Below the Right Eye**: Purple curse-like marks (one vertical mark below the right eye)
- **Left Hand**: Holding a one-handed sword with a curse-like design
- **Clothing**: Wearing rugged dark blue
Hand**: Holding a one-handed sword with a curse-like design
**Style and Background**:
- **Style**: Anime touch
- **Background**: Simple background
1回目め

2回目め

どうですか?大分ぶれなくなりましたよね😆
大まかにはこれでいけますね
でも鎧の指示とかはまだ無視されてますね
では次は細部まで指示を聞かせる方法です
AND構文やBREAK構文で強調する(上級)
かなり難しい話になりますが
参考記事
私なりの解釈で簡単に解説しますと
AND文
前後の文の優先度を同じにします
どういうことかというと
そもそもAIは文の後半につれて指示の優先度が下がります。
キャラの表情は決意や攻撃性を感じさせる強い表情 ⇒優先度10
髪型は中位の長さで所々外に跳ねている個々の髪の束がさまざまな方向に飛び出し、滑らかでやや波打っている。鮮やかな黄金色で動きとエネルギーを感じさせるもの。髪の毛は逆立てず自然に下ろしている ⇒優先度5
髪色は黄色 ⇒優先度2
額は青色の紋章のようなもの ⇒優先度2
服装は紺色の鎧を着ている ⇒優先度1
背景はシンプルな背景 ⇒優先度1
わかりますでしょうか?
最後の方の服装は優先度が1になってますよね?なので無視される確率が高いです。優先度が低いほど無視される確率があがります。
これをAND文で書き直すとこうなります
キャラの表情は決意や攻撃性を感じさせる強い表情 ⇒優先度10
髪型は中位の長さで所々外に跳ねている個々の髪の束がさまざまな方向に飛び出し、滑らかでやや波打っている。鮮やかな黄金色で動きとエネルギーを感じさせるもの。髪の毛は逆立てず自然に下ろしている ⇒優先度5
AND
髪色は黄色 ⇒優先度5
AND
額は青色の紋章 ⇒優先度5
AND
服装は紺色の鎧を着ている ⇒優先度5
AND
背景はシンプルな背景 ⇒優先度5
これで髪色と額と服装と背景が等価な優先度になります
服装が無視される確率が減るということです。
※ただしANDつけまくればいいというわけでなく、同じ優先度ありすぎると
それはそれで混乱します
BREAK文
優先度を1度リセットするイメージです
髪色は黄色 ⇒優先度5
BREAK
額は青色の紋章 ⇒優先度10
BREAKの後からリセットして見直すので
優先度がまたあがります
じゃあ全部BREAKにすればいいのでは?
BREAK つけまくると、逆にBREAK文を付ける前の箇所がぐちゃぐちゃになったりしますね
適切な箇所に付けるのが大事です。
()で囲む
()で文を囲むと単純に優先度が
1.2倍されます
(髪色は黄色) ⇒優先度1.2倍
:数字で任意の倍率にできます
(髪色は黄色:1.8) ⇒優先度1.8倍
構文を使用してプロンプトを修正
ではBREAK文を使って鎧の所を再現性高くしてみましょう
**Character Features**:
- **Proportions**: Approximately 130cm tall, with the physique of an elementary school child
- **Gender**: Boy
- **Facial Expression**: Youthful but with a strong expression that conveys determination and aggressiveness
- **Hairstyle**: Medium length, with parts sticking out. The hair strands fly in various directions, smooth with slight waves, naturally down. Includes a cowlick (one strand standing up)
- **Hair Color**: Yellow
- **Forehead and Below the Right Eye**: Purple curse-like marks (one vertical mark below the right eye)
BREAK
(- **Clothing**:Wearing rugged dark blue:1.8)
Hand**: Holding a one-handed sword with a curse-like design


どうですか?😆鎧が安定して描けてますよね。
これでも安定しないときはあるのでプロンプトの微調整が必要ですね
これを極めて応用すると
これぐらい再現性あげて描くこともできますよ( *´艸`)



まとめ
指示は短くまとめよう
指示は英語でしよう
AND文やBREAK文で強調しよう
ピクセルアート編はこちらから!!
👇
イラスト作成のお仕事始めました
こういう絵やプロンプトを作成します!!!
👇
普段はこういう勉強関連の事してます
👇
