🙌

Stable-diffusion-webuiを手探りで使ってみた

2023/03/19に公開

概要

  • 前回導入を行ったStable-diffusionを使って、実際に画像を作成する。

  • それらを通して可愛い子を愛でつつ、大幅に進化したAIがどういったものなのかを把握できればと思う。

  • 様々な私自身の感想と絵を貼っています。少し長くなるため、結果と感想だけ見たい方は目次よりジャンプしてください

※ページ添付する画像はすべてStable-diffusionにより生成されたものです。

前提

  • Stable-diffusionにおいて、いわゆる「呪文」というものが存在することは認識していたが、ひとまず自分の考える形で画像を生成した。

基本操作

  • 前回の導入によって、以下のようなWeb UIが立ち上がる

    • タブや項目や内容がGenerateを実行することでStable-diffusionに流れる

    • 特に大事だと感じた要素

      • Prompt / Negative Prompt
        • 画像生成時にどういった画像を 作成 / 作成しない かを指定する(呪文)
      • Samplingsteps
        • 画像を生成するに当たって、どれだけ深堀りをしていくか
    • その他

      • Batch count
        • 何回画像を生成するか
      • Batch size
        • 1回の実行で何枚画像を生成するか

生成

  • 生成時間について
    • 私の環境では以下の実行時間で生成ができた
      • Sampling steps: 20 => 3秒

      • Sampling steps: 100 => 8秒

      • Sampling steps: 150 => 14秒

      • Batch count: 2

        • Sampling steps: 100 => 10分

ステップ1(お遊び)

  • まずは試してみたかったので、色々指定して確認してみた

ひとまず女の子の生成に強いとされるmodelを入れているので、試しに生成した

  • Prompt: girl
  • Sampling steps: 20

  • 何かと違和感は感じるものの、これだけで割と可愛い感じで既に凄さを感じつつある

可愛い女の子と言えば花がつきものなので、試しにflowerを追加してみた

  • Prompt: girl flower
  • Sampling steps: 20

  • この時点で絵のクオリティとして、完全に私を凌駕しており絵を勉強しないことを決意した
  • 4回生成を回してみたが、大きく破綻するような絵はなかった

オプションを増やしていくとどうなるのか気になったのと、小さめの子が多かったので少し年齢を上げようと、highschool を追加した

  • Prompt: girl flower highschool
  • Sampling steps: 20

  • 8枚生成をしてみたが、先の画像程のクオリティで出力することができなかった
    • 腕の破綻や、目のオッドアイ(破綻とは一概には言えないが)が数枚見られた

知り合いに紫の髪が好きな人がいたため、violet hair を追加した

  • Prompt: girl flower highschool violet hair
  • Sampling steps: 20

  • 7枚生成したが、みんな目が死んでる

  • 何が彼女達をここまで闇に陥れたのか、なんとかして目に光を宿そうと思った

紫の髪の子を知り合いに送ったので、白い髪にした上で目に光を宿そうと以下を指定した

  • Prompt: girl highschool flower silver hair blight eye
  • Sampling steps: 20

  • 4枚生成したが、2枚目が死んでしまったので全員を救うことはできなかった

ここで、Batch countの存在に気づき、試しに数字を2にし、更にSampling countを一気に100にした

  • Prompt: girl highschool flower silver hair blight eye
  • Sampling steps: 100

  • GPUが唸りを上げ、3Dが100%に貼りつき10分を費やして2枚の画像が生成された
  • 後に説明を見たが、2枚を一気に作成しようとしたため、発生した可能性が高そう
  • 何となく絵のクオリティの上昇を感じた

GPUの死を感じ、Batch countを1に戻し再度実行した

  • 今まで見られなかった服の光沢のようなものがあり、複数の同じ絵が混じったためと考えた
  • 目の色は指定していない(目に光を宿してほしかった)が、すべて赤目であり、残念ながら目は死んでいた

白髪は目が死にやすい可能性を考慮し、紫のつり目にしてみた

  • Prompt: girl highschool flower silver hair violet jig eye
  • Sampling steps: 100

  • 5枚ほど生成したが、今までにないような目の尖りが意識されたようなものになった
  • また、紫の目は概ね煌びやかに光っていた

ステップ2

  • 一通り作成して何となく満足したので、挙動について確認することにした

Sampling stepsを減らすことによる処理の変化を確認するため 1 にした

  • Prompt: girl highschool flower silver hair violet jig eye
  • Sampling steps: 1

  • なにも分からないが紫を意識した何かを取り入れようとしていることはわかる
  • ある画像をそのまま一つ取り込んでいるというわけではなく、あくまでstepが1であるということがここから把握できた

Sampling stepsを5に増やし、画像がどのように作成されるか確認した

  • Prompt: girl highschool flower silver hair violet jig eye
  • Sampling steps: 5

  • この時点でおおよその姿は形作られることがある
  • とはいえ、まだかなり淡いためstepsとしては不足している状況と考えられた

Sampling stepsを10に増やし、画像がどのように作成されるか確認した

  • Prompt: girl highschool flower silver hair violet jig eye
  • Sampling steps: 10

  • 少し淡いが、姿と服装など一通りは形作られた
  • 最低限のステップ数はこの辺りになると考えた。

年齢の指定を外しどういった影響を受けるか確認した

  • Prompt: girl flower silver hair blight jig eye
  • Sampling steps: 100

  • 2枚しか生成しなかったが、2枚とも highschool より若返りを感じた
  • 白髪はおそらく若い絵が多い可能性が高い

ゴスロリ可愛いなって思ったので gothic を追加した

  • Prompt: girl flower silver hair blight jig eyes gothic wear
  • Sampling steps: 100

  • ひぃ...見ないで...

gothicを消しつつ、かなり似た絵が散見されたので、条件を減らすことで絵の範囲を増やそうと考えた

  • Prompt: girl flower silver hair blight jig eyes
  • Sampling steps: 100

  • 若干まだ目のゴシック要素が残っているが、少し安心できる

さらに減らした結果、急に雰囲気が変わった

  • Prompt: girl flower silver hair blight eyes
  • Sampling steps: 100

  • まぁ...間違えては...いない...?
  • 他3枚生成したが、似たような絵が続いた。
    • jigやhighschoolを消しただけだが、大きく雰囲気の変わる要素だった可能性がある。
      • girl flower silver hair blight jig eyes
      • girl highschool flower silver hair blight eye

  • 生成の大きなルートとして、2パターンあるのがこの条件のよう
    • この後4枚の生成はすべてこちらの雰囲気に変わった

大きく条件を減らし、生成に任せた

  • Prompt: girl flower
  • Sampling steps: 100

  • 可愛いが目が死んだ。目は特に詳細に指定してあげる必要がありそう。
    • 色が混ざるためか?

固有名詞を試した

  • Prompt: Genshin Impact Keqing
    • 原神インパクト 刻晴
  • Sampling steps: 100

  • とはいえ雰囲気はある。おそらく主人公(男)とパイモンなどが混じった結果だろう。

そっとGirlを追加した

  • Prompt: Genshin Impact Keqing girl
  • Sampling steps: 100

  • 多少...雰囲気はある
  • とはいえ、他と比べるとかなり違和感を感じる生成になった

キャラの名前のみに絞って生成をし直した

  • Prompt: Keqing
  • Sampling steps: 100

  • 刻晴というよりは胡桃に近い

  • 絵としてのクオリティはかなり高くはあるが、再現性はない

  • 3枚生成したが、どれも刻晴というよりは胡桃に近い

  • Prompt: 胡桃

    • 原神インパクト 胡桃
  • Sampling steps: 100

  • これはどちらかと言うと刻晴

  • とはいえ、総合してチャイナ服と雰囲気は全部の生成に共通して発現した

指定なしで複数生成を行った

  • Prompt:
  • Sampling steps: 100



  • 全体的に色が多く、物が散らばることが多かった
  • 再現性は皆無に等しい(勿論シード値を固定すれば再現する)

  • ついに人らしきものが消えた

風景の生成について試した

  • Prompt: nature
  • Sampling steps: 100


  • 多少良し悪しはあれど、「自然」という単語のみで生成できて良いものではないように感じた
  • 元々の自然もある種の乱数として捉えると、より自然に近いのかもしれない

全体的に山っぽかったので山ガールを試した

  • Prompt: nature girl
  • Sampling steps: 100

  • カバン辺りから漂う怪しさはあるが、想像した山ガールに近い感覚を感じた

長年使われ続けた固有名詞でどうなるか試した

  • Prompt: hatsune
    • 初音ミク
  • Sampling steps: 100

  • 原神のキャラと比較すると再現度がかなり高い
  • 大元の絵の量が多いこともあるが、「初音ミク」を構成するものがわかりやすいのかもしれない

銃の名前を冠するキャラの生成を試した

  • Prompt: hk416
    • ドールズフロントライン(HK416)
  • Sampling steps: 100

  • ニュアンスはかなり正しいキャラが出た

  • 銃の形が不安定ではあるが、AR15ハンドガードに近いものも見れるため、HK416に近い銃も生成されている

  • Prompt: mp7

    • ドールズフロントライン(MP7)
  • Sampling steps: 100

  • 一方でこちらはかなり怪しい
  • サインのようなものまで生成されているため、AIが参考とする絵がかなり少ないのではと推察している
    • MP7がかなり大きめの銃になってしまっているため、人物を構築するに当たってのオプションと同じく、こういったものも細かく指定してあげる必要がありそう

最後に先人達の呪文を解禁し、どういったものが生成できるのか試した


  • 複数回試したがどれもかなりクオリティの高いものが生成された

  • 下の絵に関してPromptは200を超えており、毎回背景と人物が同時にうまく生成された

  • Promptについてはお借りしたものではあるので、ここでの記載は一応控えておきます

感想

生成についての感想

  • 画像生成のAIについて、大きく誤解していたこと

    • 膨大なデータの中からPromptの指定に従って、生成元となるデータを絞りこみ、それを元として生成すると考えていたが、サンプリングを減らした画像の挙動から、検索条件によって絞りこみつつ、複数の選択肢を元に自身で生成しているように感じた。

    • 検索条件を大きく絞り込むと、元のデータが限られ同じポーズや背景や顔の輪郭は発現しやすかった。

  • 固有名詞は難しいのではないかと考えたが、ものによってはうまく生成できることもある

    • 初音ミクなどの世界的にも絵の数が多いような絵は生成しやすい
    • 原神などの、ゲーム名のみだと、どのキャラを生成すべきか悩み、キャラが混じりオリジナルキャラが生まれやすい。(とはいえ今回は八重神子の力が強いようには感じた)
    • 漢字や日本語のPromptも多少は対応できる
    • 一方、MP7やHK416など銃の名前を冠するキャラなどは、多少銃自体の絵に寄ってしまうため、生成にはうまく条件を指定してあげる必要がありそう

個人の感想

  • 少なくとも私より大幅にうまい絵が3 ~ 14秒でポンポン作成されることに、驚きと絵を描く人に対しての冒涜とまでは言わないが、罪悪感のようなものを感じた

  • 絵だけではなく、現時点ではこちらから指定したものをAIが処理して提供してくれているが、これをAIが提案するようになった時、情報の海による洪水が起きるように感じた。

    • 例えばAIが提案したものをAIが受け取り、更に別の情報が生まれることで沢山の情報が溢れ、人は把握できないが、AIは把握しているもの。というものが出来ていくのでは無いかと感じた。
    • 現状で言えば、AIは別の発想などは難しいように思うが、論理思考の分野がある程度進めば、水平思考の分野も研究が進み、発想の転換による、より高度な提案などもしてくれようになるだろうと思う。
  • ヒロインがAIのATRIというゲームがあり、その中で描かれていた、人を模倣することによりAIが人以上に人として活動する未来。が間近に迫っているような気がして恐ろしさと期待感の二つを感じる。

  • エンジニアという職業に現状のAIを当てはめた時、プログラムを書くことは今後減っていくのだろうと感じた。しかしながら要件をうまく整理し、適切な言語としてAIに受け渡す箇所は今後も数多く場面としては現れるように思う。それも長くは続かないかもしれないが。(最終的には作りたいものがあれば、AIが勝手にこちらの意図を把握した上で細かいところまで補完できる可能性もあると感じるため)

    • また、日本に限らずかもしれないが、テスターという「人間による確認」はある一定の需要を生むかもしれない。AIの進化によってテストがすべてAIで実行できたとしても。

Discussion