メインコンテンツへスキップ
見出し画像

AIが考える空トークンと入力された空トークンは違う説

    なぜこれを書こうと思ったのか

    単純にキッカケはこれです。
    あと先に言っておくと、これは個人的推測が入っているので間違っていても俺の責任にしてほしくないのだ。
    みんなも検証するといいのだ🥰

    BREAKは単純に箱の切り替えなのでクオリティを上げるわけではない。

    ってことで思い出したのがwakame戦法なのですが、これはこれで意外と影響するよね?ってことで , で埋めればいいのではということでやってみました。
    ←は通常|, で埋めた→#AIイラスト #AIart #endlessMix pic.twitter.com/Nu8XkbjB05

    — Tea@AI Creator (@wims_Tea) June 4, 2023

    上のツイ見てもらったら分かる通り、左は適当に生成した1girlさんと右は「,」で75トークン埋まるまで入れて出してみた結果なのだ。
    元々はBREAKってクオリティ上げるわけではなく残りトークンを空で埋めてくれる予約語みたいなものであるということを前ツイで言ってたんだけど、芋づる式にwakameを思い出したからなのだ。

    先に結論


    AIが考える空トークンと入力された空トークンは違う

    です。
    まずは結果である画像を見てみましょう。
    設定は以下を固定とします。

    Negative prompt: EasyNegative, [ :(negative_hand-neg:1.2):15 ], (worst quality, low quality:1.4), (extra fingers, deformed hands, polydactyl:1.5), text, nsfw Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 11, Seed: 3202290292, Size: 512x768, Denoising strength: 0.55, Clip skip: 2, Hires upscale: 2, Hires steps: 10, Hires upscaler: Latent (nearest-exact),

    1girl

    画像

    1girl+BREAK

    画像

    1girl+空トークンで埋めた場合

    画像

    上記3つの画像は1girl単体で出したもの、1girl+BREAKで出したもの、そして1girl+空トークンで埋めた物の3つであるが、先の2つである1girl単体とBREAK併用は全く同じ画像が出るという結果になったのだ。
    これはBREAKという予約語は空トークンをAIが勝手に埋めるけども、その空トークン自体に意味はないということである。
    つまり……

    1girl === 1girl BREAK

    というわけなのです。
    では考察に入っていきます。

    理由:人間の解釈とAIの解釈が違うから

    僕たち人間から見た場合、BREAKで空トークンを埋めるのも人力で埋めるのもそこに違いはないのですが、AIの解釈では違うんじゃないかということです。

    BREAKは現在の75トークンの空きを全て空トークンで埋める性質がある。
    これは以下の画像の右上を見てほしい。

    画像
    画像

    1girlのみだと2/75トークン「1」「girl」の合計2に対して、BREAKを入れただけで75/75と全部埋まっているのである。
    これで分かる通り、BREAKは空トークンで埋めるということが理解できたと思うんだけど、次は人力で埋めた画像を見てほしい。

    画像

    これを見て馬鹿だろうと思った人はその通りなのだけど、右上をちゃんと空トークンで埋めたのだ。
    僕ら人間はBREAKで埋めたのも「,」で75/75となるように埋めたのも同じであるんだけど、AIでは解釈が違うのだ。

    その理由が、AIは

    人が入力したプロンプトを意味のあるものとして解釈するから

    である。

    予約語である「BREAK」と「AND」を除いて、入力されたものはプロンプトとして受け取るので、空トークンも意味のあるものとしてAIが解釈しているから結果が違うのではないかというわけだ。
    だから1・2枚目と3枚目では生成された結果が違うのだ。

    もしAIが埋めた空トークンと入力された空トークンが同じであるならば、3枚目も同じ結果にならないとおかしいのだ。

    そもそも1girlだけでは情報が不足している。
    「1」「girl」は『一人の女の子』と受け取ったとして

    ・どの様な容姿なのか?
    ・年齢層は?
    ・背景は?
    ・どういう表情なのか?
    ・何をしているのか?

    と圧倒的に不足している情報をAIが学習モデルにそって考えて出してくれているのだ。
    なので入力された空トークンである「,」も何か意味があるのだろうと解釈して生成物に反映させているんじゃないかなと思う。

    だからこそ3枚目である生成物は1枚目と2枚目と違った物になったんじゃないかと考察している。
    というかそうじゃないと説明つかないのだ🤔

    これは一重に『AI自身が空トークンを埋めた』か『人間が空トークンを埋めた』の違いであり、AI自身が自分で埋めたものは無視するけど人間が埋めたものは意味あるものとして解釈するのだろう。

    ということでここまで書いたのですが、この辺りで飽きがきてしまったので考察はここまでということで。
    僕の言いたかったことはこれで分かったでしょうか。

    それでは、次回の考察があるまで。
    それではー!🐱

    追記:2023.06.06.14:19

    とーふさんとの会話で、この可能性もあるよなと思いまして。

    もしくは見た目上75/75となっているだけで処理内部的にBREAKは残りのトークン数をSKIPさせて、入力されたトークン数のみ換算するので、2トークン(1girlのみの場合)として処理しているのかのどちらかだと思ってます🤔

    — Tea@AI Creator (@wims_Tea) June 6, 2023


     
     
    画像生成AIのマージモデルを配信している人、最近は拡張機能もリリース中。 amazonアソシエイトプログラムに参加しています。 気に入っていただけたら、コーヒー代のご支援をお願いします☕ 🔗 https://ko-fi.com/wimstea

    あなたへのおすすめ