MarkdownとBullet Journal

いわゆるプログラマーのつぶやき

AI画像生成は同じ絵が出るか

同一条件でSEED=1, 2, 3 の違い

他人と同じ絵が出る可能性

色んな作品を見ている中で、ふと自分が生成したのと全く同じ絵がどこかでUPされてたりするのかなと考えた。そこで同一の絵になる可能性を絵に変化を与えるパラメータなどを整理して少し実証してみた。

AI画像生成の絵の差を生むパラメータは下記がある。記載リストは影響が大きい順に記載した。

全く異なる絵になるパラメータなど

  1. プロンプトの違い(txt2img、img2img)
  2. 入力画像の違い(img2img)
  3. ツールの違い(MidJourney、DALL E-2、Stable Diffusion)
  4. モデルの違い(Ver違い、 Waifuなど違う学習モデル)
  5. SEEDの違い(32bit)
  6. variation seed(32bit)
  7. サンプラー手法の違い(似た様な絵になる場合もある)

似たような絵になるパラメータなど

8.CFG SCALEの違い(0 - 20、異なる絵になる場合もある)

9.STEP数の違い(10 - 150)

Stable Diffusion(AUTOMATIC1111)とDreamStudioの差

まずはパラメータを全て一致させて、Stable Diffusionをcolabやローカルで実行できるAUTOMATIC1111と、webサービス版であるDreamStudioを比較した。

  1. プロンプト:cute cat ear maid
  2. 入力画像:なし
  3. ツール:Stable Diffusion
  4. モデル:Stable Diffusion1.4
  5. SEED:1
  6. variation seed:OFF
  7. サンプラー:LMS
  8. CFG SCALE:7
  9. STEP数:20

ところが期待に反して両者は微妙に異なる絵になった。そこでAUTOMATIC1111のSTEP数を20から50に変えたら何となく近い絵になったが、やはり同一ではない(左手が描かれて猫の目の下の影も異なる)。STEP数20の場合はネコがおにぎりみたいだ。

続いてDreamStudioに一致するSTEP数があるか探ったが、1つずつ変化させても微妙に違う絵になる。

左からDreamStudio、AUTO1111のSTEP:50、STEP:20

合わせてCFG SCALEを7から6及び8に変えてみても、やはり微妙に異なる絵になる。

CFG SCALE 7, 6, 8

サンプラー手法もDreamStudioとAUTO1111では明らかな差が出た。AUTO1111では全く異なる絵が出る手法でもDreamStudioはあまり変わらないなどの差が出た(DDIM,PLMS)。

予想通りseedを変えると全く違う絵になる。トップの絵はseedのみ1,2,3と変えたもの。

seedを1のまま、オプションであるVariation seedを変えるとまた全く異なる絵になる(seed=Variation seedの時は差がでない)。以下はseedを1にしてVariation seedを2,3,4と変化させたもの。なおVariation seedの影響度パラメータも3つあるなど極めて複雑だ。

SEEDを1固定で、Variation seedを2, 3, 4 に変更

なお、cute cat ear maidに対して、わずかな言葉の違いも試した

  • a cute cat ear maid :わずかに異なる絵になった
  • the cute cat ear maid :わずかに異なる絵になった(a よりも差は大きい)
  • pretty cat ear maid :全く異なる絵になった
  • cat ear maid :全く異なる絵になった

元々seedは32bit、つまり42億通りの異なる絵がランダムに生成される訳で、その他のパラメータを考えると同一の絵が生まれる可能性はかなり低いのだろう。

実証を行うには余りにも膨大なパラメータがあるという事を再認識した。なんとも中途半端な結果だが自分なりに納得した。