Stable Diffusion メモ (7) promptの最大長について

prompt(一部では呪文という言い方もありますね)の最大長について、日本語で書いてある記事がなかったので調べて記録(あったらひとえに自分のググり能力の低さゆえ…)

 

ここに書いてある内容によると、

github.com

 

  • prompt の長さは文字数ではなく、"token"という単位で数えられる
  • prompt は 75 tokens 以下である必要がある。それを超えると切り捨てられる。
  • "token"とは、大まかに言えば単語、句読点、Unicode文字である

とのこと。

なおtoken以外にもいろいろ書いてあって、prompt関連だと

  • promptは大文字と小文字を区別しない
  • AIが理解できるtokenは約3万個(これは1600年代から使われていない奇妙な単語を知らないことを意味する)
  • 同じprompt、同じSeed、同じModifier(Width, Height, Sampling Steps, CFG Scale, Samplerなどなど) を指定すると同じ画像が出る
    • このため絵をちょっと変えようと思ったらSeedを固定してpromptやModifierを少しずつ変えるのがお勧め

とのこと。へー、というかこのページ、各種情報のリンクとかめっちゃまとまってますな…

 

tokenってどうやって測るの

ようわからんけども、promptの文字列をどうtokenとして刻んでいくはどうもモデルによって決まっているらしい。

簡単な方法は、promptが長すぎると削ったことを警告してくれるUIを使うことだろうと思う。ローカルで動かす実装として自分が知っているのは↓のWebUIです。

github.com

このWebUIで絵を出力すると、promptが長すぎる場合にこのようなwarningが出ます。

warningが出なくなるまでtokenを削ればよいということになります、のでいろいろ試行錯誤しましょう。単語を削ったり記号を削ったり… warningは出なくなったけど絵が自分の好みではなくなったとかいう沼が待っているとかいないとか…