prompt(呪文)解説

Last-modified: 2023-05-11 (木) 20:40:32

時間のない人向け

  • promptに書き込む英語が分からん。
  • promptに入れた要素が出てこない。
    • 強調する。
      • (NovalAIの場合) 中括弧で囲う。 例:huge breasts→{huge breasts}→{{huge breasts}}
      • (1111の場合) 丸括弧で囲う。 例:huge breasts→(huge breasts)→((huge breasts))
    • CFG Scaleの値を上げる。
      • DezgoではGuidanceという項目がこれに相当する。デフォルト値7
      • NovelAIではScaleと名前になっている。デフォルト値11
  • 余計な要素が入っている

Prompt(呪文)とは

  • 出力する画像のおおまかな方向性を決定するパラメータ
    • おおまかなのであまり細かい指定(指の向きや腰の角度など)はできない
    • 人物の属性(金髪ツインテやツリ目等)や行為(食事やパンチ)をpromptで指定し
      詳細な構図はimg2imgで落書きを読ませたり、openposeで指定するのが基本。
  • 呪文は万能ではない
    • 上述の通り、細かい指定はできない。
      • Controlnet1.1からはopenposeで指・顔の操作ができるようになったので細かい指定に役立つ。
    • モデルが学習していない単語・要素・キャラは出せない/出しづらい
      • 有志が作成したLoRAやTIの学習データを利用する。もしくは自分で学習してLoRAやTIを作成する。
    • Promptにvery high resolution(高解像度化)やultra detailed(微細化)を入れても限界がある。
      promptの調整で足掻くよりも、手っ取り早く効果が出る他の方法を試す方が良い
      • より大きな画像サイズで出力する。WidthとHeightを大きくする。Hires.fixやimg2imgを使用する
      • 別のVAEを使用する
      • InpaintのInpaint area=Only maskedを利用して、任意の部分(顔や瞳など)を高精細に描き直させる
      • 拡張機能Detection Detailerを導入して利用する

Negative Prompt(ネガティブプロンプト)とは

  • Negative Promptは書いて欲しくないものを指定する、下記は例。
    • 低品質テンプレ:画像の全体としての美しさが向上する
      • shit, bad, bad proportions, bad shadow, bad anatomy disfigured, bad shoes, bad gloves, bad animal ears, poorly drawn, anatomical nonsense, five fingers, ugly, simple background, lowers, polar lowres, standard quality, bad feet hand finger leg eye,
    • 異物排除テンプレ:元絵の画像の四隅に入っているロゴやテキストを出力してしまうので、これを防ぐ。
      • qr code, ui, artist name, text error, text font ui, bar code, bad digit, liquid digit, missing digit, multiple digit, fused digit, extra digt, extra digits, extra digit, gross, watermark, title,
    • 奇形テンプレ:背中から3本目の手が生えたり、頭が2つあったりなどの奇形を防ぐ。
      • bad feet hand finger leg eye, one hand with more than 5 fingers, abnormal fingers, too many fingers, lose finger, multiple finger, mutated hands and fingers, fused fingers, fusion finger, incorrect limb, arthropod limbs, malformed limbs, boken limb, missing limbs, multiple limbs, missing limb, extra limbs, extra penises, extra calf, extra shoes, extra feet, extra thighs, extra knee, extra mouth, extra ears, extra animal ears, extra eyes, extra breasts, extra digit, extra fingers, extra hands, extra limbs, extra legs, extra arms
    • お好みで指定
      • 例えば髪にリボンを付けたくない場合、Promptにno ribonを入れるより、NegativePromptにribonを入れるほうが消えやすい。
      • 背景にある2の窓の風景が違う(片方は山、もう片方は都会とかの)場合、片方の風景をNegativePromptに入れて統一する。
  • NegativePromptの設定はほとんど必須だが、入力内容が長大になりがちなのでまとめたプラグイン(embeddings,埋め込みモデル)が出回っている。
    ただし元絵の画風への影響もあるため、比較したほうが良い。
  • 注意点
    • Negative Promptは尖った部分を削って均していくようなモノであり、絵の安定性と引き換えに自由度が減る。
      なのであまり見かけないような絵、例えばモンスター娘や異常なレベルの巨乳などの特殊な体型、特殊なポーズ、特殊なシチュエーションなどが出にくくなったりする。
      Promptを調整しても望みの絵が出ない、出づらいという場合はNegative Promptを消して試してみるのもいいかもしれない。

呪文の有無の影響

  • 「prompt matrix」を使って呪文の影響を調べる

順番の影響

(参考) PART3 -プロンプトの工夫で指定色が混ざるのを防ぐ方法- - Defblog(デフブログ)

未知の呪文を得る

  • 画像から呪文を逆算する
    • (1111) img2imgタブ → 画像を読み込ませた後、Interrogate CLIPボタンを押す
    • (1111) img2imgタブ → 画像を読み込ませた後、Interrogate Deep Booruボタンを押す
    • Web上で利用できる、DeepDanbooruのデモ
      https://huggingface.co/spaces/hysts/DeepDanbooru

基本的なプロンプトの構造

  • 構造
     順番が決まっているわけではないが、絵の出力にpromptの順番が影響すること(最初の方の単語が強い影響を持つ)
    あと順番通りにしたほうが頭を使わなくていいので楽。
    • 品質
      • masterpiece, best quality, 4k, 8k, high quality, very high resolution,
    • 被写体(身体特徴含む)
      • 1girl, shiny skin, big breasts,
    • 頭部特徴
      • straight hair, long hair, black hair, no hair accessory,
    • 服装
      • indigo school swimsuit
    • シチュエーション
    • 背景
      • outdoor, beach, sea, summer
  • 書き換え用メモ
    • 出典 https://rentry.org/hdgpromptassist#tag-ideas-hdgpa-edition
      • nsfw指定、品質系呪文、角度・構図、対象キャラの属性、背景・場所、ポーズ・表情
    • こっちの方が良い?
      • nsfw指定、品質系呪文、(必要なら)画風、人数、カメラ視点、身体属性、頭部属性、表情、服装、行動(ポーズ等)、背景、その他

コメント

  • deepLも使えますけど、ChatGPTに英語圏のスラングや、簡単な英語に訳して貰うとめっちゃ捗るのでオススメです -- 2023-04-02 (日) 02:07:20
  • ChatGPTに頼むとき予め(すくみず,ねこみみ,)のような書式で英語で頼む!っていえばマジのコピペだけで済むので楽  -- 2023-04-10 (月) 14:06:19
  • 今更言うのもなんですが、1111でのプロンプト強調・緩和は(XXXX:1.3)のようにコロンと数値で倍率をかけてあげるやり方が界隈では主流というか推奨されているみたいですね。二重括弧だとプロンプトを正しく認識してくれない可能性がある場合があるそうです。緩和させたい場合はマイナスの値ではなく0.8などのように1以下です。(×0.8倍になる) 小数点第二位以下での入力も効くみたいですがどの位まで有効かはわかりません。 -- 2023-04-14 (金) 13:19:02
    • 上級編のほうに普通に書いてありましたね・・・!失礼しました。 -- 2023-04-14 (金) 13:25:22
  • 今週ComfyUIの創始者と有能拡張開発者がプロンプトの事で超絶喧嘩して喧嘩別れしそうで非常に悲しいのだが、その喧嘩内容が高度過ぎてめっちゃ勉強になった。A1111ではプロンプトの強調構文がちょっと微妙な数式で平均化される事で合計で1になるように計算されるらしい。その結果、一つのプロンプトの強調変更で全体に影響が波及してしまう……が、何か誰も良く解んないけど何故かそれで最終結果がいい感じで上手くいくのでそのまま放置されてるらしい。そんでComfyUIの創始者は良く解んないのは美しくないしそもそも構文が反映されてないっちゅー事やんけって事でそのまま協調数値がストレートに出る方式を採用している…ぽい。でもその結果凄いピーキーな調整を求められてるやんけA1111みたいにしろって喧嘩が始まって喧嘩別れに終わりそうなんだが、その結果まぁまぁ落ち着いて派から新しいプロンプト解釈方式が産まれそうになっている模様。多分来週には産まれている…… -- 2023-04-15 (土) 11:09:33

短縮URL生成