Stable Diffusionの独自マージモデル使用中に高確率でロゴ混入問題(私だけかも)が発生した
はじめに・・・
今回の件で、各モデルで検証した結果を書きますが、決して特定のモデルを非難等する気は全くありません。彼らのおかげで、全く絵を描けない私が生成という形で絵を出せているのですから。
ただ、もし同じような経験をしている人がいたら、解決の糸口等を共有できたらという気持ちで書いていることはご理解ください。
発端と目的
最近、進歩が早くて賑やかなAI界隈。
そんな中で神とまで崇められちゃう3つのモデル、chilled_remix_v1vae、 BreakDomainRealistic_M1808、そしてBRAV5。(実際には他にも素晴らしいモデルがたくさんあります😅)
「その3つの良いとこ取りができたら、スゴイのできるんじゃね?」
と、ちょっと前に覚えたSuper Mergerで独自配合でモデルを作ってみました。
結果として、かなり良いところまではできたのですが、生成していると、下のように画像にロゴやテキスト、ウォーターマーク(添付参照)が入るようになってしまいました😭
私は拡張機能のDynamic PromptsのWild cardを利用して自動生成を行っているのですが、ロゴやテキスト、ウォーターマークが入っているのを「作品」としてアップするのは、個人的にはいかがなものかと思っています。(ここは生成者さんごとの考えがあると思いますので、あくまで私の場合です。)
でも、ロゴを毎回全チェックして消すとなると、自動生成でジャンジャン作っている分、大変な事態になってしまいます(笑)
なので、まずは原因を特定し、対策方法の検討をしたいと思います。
検証方法
以下のモデルで各100枚ずつの生成を行い、ロゴ等の入っている枚数をカウントして比較する。
・独自のマージモデル(以降のモデルを全て独自配合でマージ)
・chilled_remix_v1vae
・BreakDomainRealistic_M1808
・BRAV5プロンプトには生成する絵に一定の方向性はあるものを使用する。
生成する絵のプロンプトはPrompt Editingのwild cardを使用してランダムに生成する。
画像サイズは以下とする。
横:512pixel
縦:683pixel
実施結果
以下が実施結果の画像になります。
うん、画像があることだけしか分からないですよね😂
画像に裸やセンシティブが混ざってしまうので、巣のままでは公開不可能なのでスミマセンm(_ _"m)
で、ロゴ、テキスト、ウォーターマークが入っている画像の枚数をかぞえてみました。(順序はマージした順です)
Chilled_remix_v1vae:0枚
BreakDomainRealistic_M1807:1枚
BRAV5:29枚
独自マージモデル:11枚
BRAが29枚!(;゚Д゚)
と、とりあえず、各モデルの特徴でも書いて落ち着こう。
閑話休題:各モデルの紹介
ここまで読んだ方にはするまでもないかもですが・・・
chilled_remix
鎖城郎郭@AI錬成画師 (@sazyou_roukaku)さんが作られたモデルで、詳細はリンク先を読んでみた方が早いですが、ChilloutMixに似た雰囲気を出せるそれはもう優秀なモデルです。私もかなり使わせていただいています。
BreakDomainRealistic_M1808
こちらはBD(@br_d)さんが作られたモデルです。2次元系ですが、とにかくプロンプトに対する反応が凄く、ちょっとしたワードで物凄く精緻な画像を出力してくれます。個人的な感想としては「語力の無い私の気持ちに応えてくれるモデル」です!
ちなみにMのあとの番号はマージ回数とのこと。凄すぎ・・・
BRAV5
こちらはPleaseBanKai(@PleaseBanKai)さんが作成されたモデルでとーってもリアルなアジア系の人の画像を生成できます。こちらだけは他のモデルのマージではなく1から学習したとのことだったと思います。(もう凄すぎて意味わかんないw)
※ この辺りを正確に知っている方、もし間違っていたらお手数ですが、ご指摘くださると助かりますm(_ _"m)
さて、一通り説明したところで・・・
事実は受け止めよう😅
とりあえず、BRAV5モデルが原因で増えたということは事実のようです。
後は分析して対策をどう考えるかだ。
補足情報
i2iで必死にロゴ消しをしていた時に、Twitterで仲良くさせていただいている方々に話を聞けたので、ちょっとまとめておきたいと思います。
BRAV5および使用したマージモデルを使っているけれど、発生頻度はごくわずか(100枚に1枚くらい?)
彼らと私のベースとなる画像サイズは以下の通り。
私・・・512pixel x 683pixel
Aさん・・・768pixel x 512pixel
Bさん・・・512pixel x 512pixel
(Bさんは直接確認は取っていないがアップする画像から合っていると思われる。)
こうしてみると、私だけが雑誌やポスターのサイズに近い。。。
しかも発生した画像を見ると、たまにロゴとかの上下が切れている感じがあるんだよね🙄
横とかでも生成するんですが、確かにその場合は発生率低い気がする🤔
分析
約3割という数字を見るに、何かのちょっとしたミスということは無いかと思います。そこから考えられるのは・・・
通常、仕事で学習データをインプットするときはロゴを消すというような話を聞いたことがあります(うろ覚えでスミマセン💦)
これをやっていないのではないかということです。
ちなみに、他のモデルは基本的にマージがメインなので、ロゴが混入するかは学習元次第ということになります。
間違ってはいけないのは、PleaseBanKaiさんはあくまで趣味で作ってくださって、それをみんなが使えたら良いだろうと善意で使わせてくれていることです。なので、感謝をすることがあっても、ロゴが入ったからと言って苦情を言ったりすることはお門違いです。
と、書いたは良いけど、実際どうにかしないと自分も困っちゃう😅
ちょっと気になるのが私のマージモデルとの枚数差。
私のマージモデルが11枚。VRAV5が29枚、その差が約3倍。
U-NET層の階層モデルの各マージ比率で近いところはないかということ。
(調査中・・・)
どうやらM00層という画像の全体感を決める層で同じような配合比率を見つけました。これ、解決の糸口になるかな・・・(比率の公開は秘伝のタレなので許してください。と言っても倍率から考えたら分かっちゃうでしょうけど。)ちなみにU-NET層については以下が詳しいです。
対策案
さて、ここまで来たところで、私の薄っぺら~い現状の知識で以下のような対策案が浮かびました。
画像サイズを変える。
モデルのマージ配分を変更する。
違うモデルをマージする。
ネガティブ・プロンプトに「text:2, logo:2, water mark:2」などの強いネガティブを追加する。
1については聞いた話からすると、効果はあると思います。私の場合いくつかの画像サイズを状況で使い分けるのですが、たしかに変えた場合の発生頻度は低く感じました。ただ、これに妥協してしまうと表現したい形から離れてしまうので、あまり意味がありません。
2についてですが、これはもうやってみないと分かりません。ただ、ある程度の場所の特定はできているので、ひたすら試すだけになります。一番怖いのはM00の配合率を0にしても出てきた場合。こうなると、それっぽいところを手あたり次第に試す必要があるので、どれだけかかるやら・・・
あと、配合率を変えることで思った絵が出なくなる可能性もあり、悩ましいところです。
3については正直論外。BRAをマージしてから明らかに手や足の精度が上がっているので、変更する時点で成功率を捨てることになるので、それならchilled_remix_v1vaeとBreakDomainRealisticだけにします。
4については今、こうして記事を作成している間にも生成しているのですが、ヒット率自体はまあまあ良さそう。ただし、ネガティブプロンプトも完ぺきではないことと、強くすることで他のネガティブに影響が出てしまうので出力される絵が気づかないところで変わっている可能性があるということになります。
結論
とりあえず、対策案2または4を実施するのが現実的な線じゃないかなと思います。私はとりあえず、2が実行できるまでは4を対症療法的に使うかな。
最後に
初めての記事で読みづらいかとは思いますが、誰かの役に立ってくれれば!