bbcmc

画像生成AI用ツールの開発などをしています。 何かを改造している事が多いので、関連の事…

bbcmc

画像生成AI用ツールの開発などをしています。 何かを改造している事が多いので、関連の事を書きます。 制作時の調査まとめ等を書くかも。 https://github.com/bbc-mc

マガジン

  • 実験レポ

  • コード読み

  • 調査

最近の記事

  • 固定された記事

[実験レポ] Model Block Merge で、 U-Net の各レイヤーの影響を調べる #1

はじめにModel Block Merge は、従来とはまた違った良い結果を出し得るマージ手法として、一定の評価と期待を得ている。利用した成果も共有され始めており、美しい画像の数々は、日々日々、私の心を癒やし、ディスク領域を圧迫し続けている。(ありがたい事です。絵師様/術師様に感謝) (※この手法は、kohya_ss 様が下記の記事にて提示されたものです。) (※AUTOMATIC氏製 Web UI 用に、上記手法の Extension を作成させて頂きました。) しか

    • [実験レポ] モデル内の各項目の効果をざっくりと調べる

      今回は、モデル内に存在するデータの種類ごとにマージを行い、その影響を観察する。 ※本記事の内容については検討が不十分だが、一旦は公開しておく。 はじめにStable Diffusion のモデル内には色々なキーがあり、それぞれにデータが格納されている。 これらのデータの役割はキー名の末尾を見れば大体わかるのだが、モデルマージ時には特に区別せずに一括で係数をかけている。 しかし、各キーの役割が異なるため、個別に係数をかけて変更することで、役割に応じた変化を及ぼしたマージを行う

      • [調査] Smile Test: Elysium_Anime_V3 問題を調べる #3

        前々回、前回、と「1 token目が無視される」問題について調べてきたが、恐らく破損箇所と修正方法がわかった。 さらに、修正の効果の検証と、修正の副作用についてもまとめた。 クイックまとめ・「1token目が無視される」問題について、モデル内の破損箇所を特定した ・複数の修正方法を確認した(記事内参照) ・修正した場合の影響をまとめた ・モデル内のチェック用 Extension を追記した (06/02) 破損箇所を発見?Arenaさん(sd-tagging-helper

        • [実験レポ] Model Block Merge で、 U-Net の各レイヤーの影響を調べる #2

          前回は層別マージ(階層マージ) を用いて、 Stable Diffusion 1.5 の U-Net 各層での影響力について調べた。 今回は Waifu Diffusion 1.3 について、同様の調査を行う。 前回から時間が空いた間にいろいろな検証が進んでおり今さら感もあるが、個人的興味にまかせてまとめたので、公開する。 実験方法・内容使用ツール 使用ツールは、Merge Block Weighted GUI の機能拡張版。 12/25 実験用の機能「MBW Eac

        • 固定された記事

        [実験レポ] Model Block Merge で、 U-Net の各レイヤーの影響を調べる #1

        • [実験レポ] モデル内の各項目の効果をざっくりと調べる

        • [調査] Smile Test: Elysium_Anime_V3 問題を調べる #3

        • [実験レポ] Model Block Merge で、 U-Net の各レイヤーの影響を調べる #2

        マガジン

        • 実験レポ
          3本
        • コード読み
          2本
        • 調査
          3本

        記事

          (Tips) AddDiff 用の差分を保存しておく "差分抽出" の紹介

          Extension (Merge Block Weighted、以下 MBW) の機能を用いて、Add Difference 用の差分を取り出しておく差分抽出の方法を紹介する。 Add Difference とは世のマージする方々は、Add Difference を用いて「追加で得た表現能力だけを移動させたい」という思いでマージをしていると思う。 Add Difference の配合式は以下のようになっている。 $$ Output = A + M * (B - C) $

          (Tips) AddDiff 用の差分を保存しておく "差分抽出" の紹介

          [調査] Smile Test: Elysium_Anime_V3 問題を調べる #2

          前回の検討の中で、提示されていた再現パターンについて、確認できていなかったので、追加確認を行う。 ※ご指摘ありがとうございます! 超クイックまとめ1.提示してもらった手順で、smileテスト問題は再現した  ・すなわち「Add Difference で、TextEncoder は壊せる」 2.マージ対象は TextEncoder, U-Net, AutoEncoder の全てを含んでいる  (マージ処理内容について勘違いしていた!) 3.Add difference がモデ

          [調査] Smile Test: Elysium_Anime_V3 問題を調べる #2

          (コード読み) Checkpoint Merger について調べる

          AUTOMATIC1111 に標準で付いている Checkpoint Merger の実装について調べる。 ※Checkpoint Merger で使用されているマージ処理について理解が不足していると判明したので、ちゃんと確認しておく。 extras.py run_modelmerger コードはこのあたり。run_modelmerger 関数がマージを処理している。 https://github.com/AUTOMATIC1111/stable-diffusion-

          (コード読み) Checkpoint Merger について調べる

          [調査] Smile Test: Elysium_Anime_V3 問題を調べる #1

          「プロンプトの一つ目のトークン無視」問題が発生!という話を聞いたので調査してみる。 念のため。現在主に利用されているマージ手法では TextEncoder部は破損しない現時点では、 「Add Difference を行うと、TextEncoder が壊れる」は誤り で、 「破損した TextEncoder を持つモデルを A としてマージを行うと、破損部分が引き継がれる」 が正しいと考えられる。 理由は、現在利用されているマージは、AUTO1111 のもの、その基とされる

          [調査] Smile Test: Elysium_Anime_V3 問題を調べる #1

          (コード読み) AUTOMATIC1111 での、モデル読み込み/保存における副作用

          TL;DR日々お世話になっている AUTOMATIC1111氏の Web UI だが、モデルを読み込むときに少し 中身をいじる ので、何をしているのかをまとめておく。 また、保存方法に少し癖があるので、まとめておく。 Note:本記事の確認は 2022/12/24。それ以降の更新については考慮していない。 記載の方針できるだけ、githubのコードの当該行へのリンクをつけるようにする モデルの読み込みモデルは、sd_models.py 内で読み込まれている。 ttps

          (コード読み) AUTOMATIC1111 での、モデル読み込み/保存における副作用