
階層マージ支援ツール「Merge Assist Guide Companion(MAGiC)」v1.0.1リリースのお知らせ
はじめに
今回は、Super Mergerの階層マージ作業を支援するツールを作成しましたので、使い方や機能説明、ダウンロードについてお伝えしていければと思います。
MAGiCとは?
Merge Assist Guide Companionの頭文字を取って、命名しています。
この階層マージ支援ツールは、AUTOMATIC1111版WebUIの拡張機能の一つである「Super Merger」に特化した支援ツールになります。
日々この拡張機能は更新が続けられており、非常に人気のあるモデルマージ拡張機能になります。
使い方については、以下の記事を参照してください。
Changelog
2023.07.29
本記事 初版公開
MAGiC - Merge Assist Guide Companion_(Light)_ver1.0
MAGiC - Merge Assist Guide Companion_(Advanced)_ver1.0 公開2023.07.30
・LICENSEファイル内の著作権表記不備を修正
・ファイル整合性を確認できるよう、SHA256ハッシュ記載2023.08.15
MAGiC - Merge Assist Guide Companion_(Light)_ver1.0.1
MAGiC - Merge Assist Guide Companion_(Advanced)_ver1.0.1 公開
・一部レイアウトの修正
・軽微なバグの修正
機能紹介
MAGiCの機能紹介をします。
MAGiCには、以下機能を搭載しています。
マージモデルメモ
- マージの基本的な方向性やモデル名を設定することができます。マージモード設定
- このツールで使用するマージ表のModeとCalc項目で表示する、リストボックスの一覧を設定できます。モデル一覧取得
- 使用モデルの一覧を自動取得及び手動取得が行えます。マージプリセット情報の閲覧
- マージプリセット情報の閲覧が可能です。マージプリセット情報の編集、保存(Advanced版のみ)
- マージプリセット情報の編集、保存が可能です。マージ履歴の取得(Advanced版のみ)
- Super Mergerで管理しているマージ履歴を取得し表示します。モデルマージ表
- 現在作成しているモデルの階層マージメモを保存できます。
- モデル一覧の自動取得を行い、リストボックス形式で選択できます。
- Mode、Calcの一覧をSettingsより取得し、リストボックス形式で選択できます。
- マージプリセットの一覧を取得し、リストボックス形式で選択すると、各層のWeight項目に自動入力されます。
- コピーしたい行を選択するか、自動採番されるMerge IDを入力し、コピーボタンを押すことで各層のWeightをカンマ区切り形式に変換し、コピーします。要素マージ/Adjustマージ表(Advanced版のみ)
- 現在作成しているモデルの階層マージメモを保存できます。
- モデル一覧の自動取得を行い、リストボックス形式で選択できます。
- コピーしたい行を選択するか、自動採番されるMerge IDを入力し、コピーボタンを押すことで各層のWeightをカンマ区切り形式に変換し、コピーします。ライセンス管理
- ライセンスに関するフリーのメモです。ご自由にお使い頂けます。
動作要件
動作要件は、基本的にMicrosoft Office 2021に準じます。
Microsoft Office 2007以降がインストールされていること。
OS:Windows 10/11
CPU:1.6 GHz、2 コア以上のCPU
Mem:4 GB (64 bit)、2 GB (32 bit)
空き容量:4 GB の空きディスク領域
画面解像度:1280 x 768 の画面解像度
xlsm形式の取り扱いが開始したのがOffice2007以降で、かつ基本的なライブラリのみの使用であるため、Office2007以降より本ツールは動作すると思われます。(動作未確認)
MAGiCの使い方
MAGiCの基本的な使い方についてご紹介します。
ここで説明する内容、使用する画像は全てAdvanced版のものです。
1.基本設定を行う
初回起動時、Settingsシートが立ち上がります。

まず、[Macro settings] の [Basic settings] を設定しましょう。

ここには、各種必要なフォルダパスを絶対パス形式で指定します。

次に [Model settings] です。
Model settingsはモデル一覧を定期間隔で自動取得するかを設定します。
デフォルト設定は、自動検索が「有効」、自動検索間隔が「30分」です。

各々の使い方によって、設定を変えてください。
自動検索を「無効」にすると、モデル一覧が手動更新でしか行われなくなります。

次に [Merge history settings] です。(Advanced版のみ)
この項目は、Advanced版のみしかありません。
Model settingsと同様、マージ履歴を定期間隔で自動取得するか設定します。
デフォルト設定は、自動検索が「有効」、自動検索間隔が「30分」です。

次に [Language] です。
表示言語は英語、日本語の2種類からお選び頂けます。
デフォルト設定は、「English(英語)」です。

適時、各々の環境に応じて変更してください。


Macro settingsの項目が全て完了したら、[ Apply ]をクリックしてください。

また、ここまで設定が完了したら、ファイル自体も上書き保存してください。
上書き保存せずに消すと、この項目の設定がファイルに保存されません。
2.モデル一覧を取得する
次にモデル一覧の取得を行います。
[Models]シートに移りましょう。
Refreshボタンを押すことで、WebUI上のモデル格納フォルダより、ファイル一覧を取得します。
ここは、後述する[Merge Weight]シートのModel A/B/Cの選択項目のリストデータとして必要です。

Clearボタンを押すことで、取得したモデル一覧情報を削除することができます。

3.マージプリセット情報の取得・編集する
次にマージプリセット情報を取得します。
[Merge Presets]シートへ移りましょう。
Refreshボタンを押すことで、WebUI上のモデル格納フォルダより、ファイル一覧を取得します。

Super Merger内の[scripts\mbwpresets.txt]を取得し、保存されているマージプリセットを取得しています。
お好きなマージプリセットを追記して、[Save]ボタンを押すことで、マージプリセットを編集・保存することができます。(Advanced版のみ)


4.マージ表を作成・管理する
次は、このツールのメイン機能になります。
[Merge Weight]シートへ移りましょう。

ここでは、階層マージにおけるマージ比率などを管理することができます。
試しに、作成してみましょう。
Model A/B/Cはモデル一覧からリスト取得しており、リストボックス形式で選択できます。
Mode、CalcはSettingsシートの[マージ設定]から取得しています。
PresetはMerge Presetsシートよりリストを取得しています。
選択すると、各層のWeightへ自動反映されます。

では、マージ比率をコピーしてみます。
初めに、Merge ID「1」をコピーしてみましょう。
まず、Merge ID「1」の行のセルを選択してください。選択する列はどこでも構いません。
そして、[Merge Weight Copy]ボタンをクリックしてみましょう。

Weightボックスの中に表示されている形式でコピーが完了しています。
あとは、Super Mergerのmbw weightへ貼り付けなどを行ってください。
コピーする手順として、もう一つ方法があります。
それは、Merge IDを指定してコピーする方法です。
では、Merge ID「2」をコピーしてみましょう。
まず、Merge IDボックスへ「2」と入力しましょう。
そして、[Merge Weight Copy]ボタンをクリックしてみましょう。

同じく、Weightボックスの中に表示されている形式でコピーが完了しています。
あとは、Super Mergerのmbw weightへ貼り付けなどを行ってください。
5.要素マージ/Adjustマージ表を作成・管理する(Advanced版のみ)
次は、要素マージ/Adjustマージ表の作成・管理です。
この機能は、Advanced版のみに実装しています。
通常の階層マージでは使いませんが、微調整などで要素マージをする際やAdjustを利用する場合は、「4.マージ表を作成・管理する」方法と同様の使い方でお使い頂けます。
では、早速マージ表を作成してみましょう。

では、行選択方式でコピーしてみます。
Merge ID「1」をコピーしてみましょう。

あとは、Super MergerのElemental Mergeへ貼り付けなどを行ってください。
続いて、Merge ID指定方式でコピーしてみます。
Merge ID「2」をコピーしてみましょう。

同じく、Super MergerのElemental Mergeへ貼り付けなどを行ってください。
6.マージ履歴の確認(Advanced版のみ)
次にマージ履歴の確認をしてみます。
この機能は、Advanced版のみに実装しています。
[Merge History]シートへ移りましょう。
ここでは、Super Mergerのマージ履歴(mergehistory.csv)を自動的に取得して表示しています。

編集機能などは現在実装していません。
実際にSuper Mergerで作業した内容を、WebUIを開くことなく確認することができます。
また、Excelのフィルタ機能を使い、特定の文字列を含んだものだけ絞り込んで表示することもできます。
7.ライセンスの管理
次にライセンスの管理を行います。
[License]シートへ移りましょう。
ここは、基本的に皆さんがお好きに使ってください。
マージに使用するモデルのメモだったり、サブライセンスのメモなどにお使いください。

8.マージ表の保存
これまで行ってきた作業をOutputします。
[Settings]シートへ移りましょう。
次に、マージモデルメモ(Merge Memo)にモデルの情報を入力していきましょう。

今回は例として、モデル名を「MAGiC」、ファイル形式を「safetensors」、モデル形式を「fp16」とします。

ここまで完成したら、[Output]ボタンをクリックしましょう。

出力が完了すると、本ツールと同一の階層にファイルが保存されます。

EX.マージのModeとCalcを管理する
Super Mergerは日々更新されています。
それに伴い、様々なマージモードや算出モードが追加されます。
その為、新しいModeやCalcが追加された場合は、以下の方法で追加できます。
では、[Settings]シートを開き、[Merge Settings]項目を確認しましょう。

[Merge Settings]項目のModeとCalcに、それぞれ追加されたモードを入力してください。
この項目は、マージ表のリストボックスのみに使用しています。
使用上の注意点と制限
編集領域の制限
本ツールはExcel VBAで作成されており、ツールのレイアウトの変更や誤操作による意図しない変更によって、マクロが正常に動作しなくなるのを防ぐ為に、各シートに保護を施しております。
その為、編集できる範囲を限定しておりますので、空いているセルなどにメモ書きなどはできないようになっています。

必須項目未記入による制限
Settingsシートの必須項目である各種のフォルダパスが正しいものでなかったり、空白であったりした場合、取得エラーなどを防止する為、シート遷移を制限しています。


マクロコードの表示制限と注意喚起
本ツールはVBAマクロを使用しております。
その為、悪意のあるプログラムへ改変することを防ぐ為に、マクロコードの表示を制限しています。
但し、対策を講じてもExcel VBAである以上、リバースエンジニアリングは容易な為、本記事以外で公開している、本ツールに極めて類似したツールの取り扱いには、十分にご注意ください。
ツールの機能比較
MAGiCは以下2種類リリースしており、適用されている機能に差分があります。
MAGiC Light
MAGiC Lightは、一般公開用です。
将来的に訪れるメンテナンスを考慮し、改廃を極力抑えたバージョンになります。
新機能の追加は今後予定されておらず、動作に及ぼす致命的なバグがあった際のみ対応します。
MAGiC Advanced
MAGiC Advancedは、メンバーシップ(30個メンバー)限定配布用です。
主に搭載されている機能がフルに使えます。
新機能の追加や、メンテナンスなどはこちらをメインに行っていきます。

トラブルシューティング
コピーしたマージ比率がカンマしか表示されない
以下の原因が考えられます。
Merge IDボックスに、該当のマージ比率が存在しない
Merge IDボックスが無記入かつ、空白セルを選択している
マージ比率をコピーした際にエラーが発生する
数字以外の文字列(スペース含む)を入力している場合、以下のダイアログが表示されます。

DataObject:SetText 引数が無効と表示される

Elemental Merge Weightにおいて、「Elemental Block/Adjust」項目が空白であることが原因です。
必ず、Elemental MergeかAdjustを選択してください。
正しいパスを指定しているのにmodelsのパスではないか、modelsが見つからない

Modelのフォルダパス内のカレントフォルダにモデルファイルがなく、サブフォルダのみしかない場合に発生します。
このプログラムは、カレントフォルダ内のモデルデータ拡張子を参照し、モデルデータの有無を確認しているため、カレントフォルダ内に何もないとエラーが返されます。
トラブルシューティングに載っていない例外エラーが発生した

トラブルシューティングに載っていない例外エラーが発生した際は、
Description
Error Number
どのような操作で発生したか
を記載の上、私の方までご一報ください。
ライセンス
本ツールは、Microsoft Office 2021を使用して作成されております。
ベースソフトウェアであるMicrosoft Office製品に関しては、以下ライセンスが適用されております。
Microsoft License Term (English)
Microsoft License Term (日本語)
本ツールのソースコードは、MPL 2.0ライセンスを適用しています。
適用範囲は本ツールのソースコード部分になりますので、本ツールを使用し作成された二次生成物(マージモデル)に関しては、製作者はいかなる権利も主張しません。
Mozilla Public License Version 2.0 (English)
Mozilla Public License Version 2.0 (日本語)
MAGiC - Merge Assist Guide Companion
Copyright 2023 konapieces
Released under the MPL v2.0
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
If a copy of the MPL was not distributed with this file, You can obtain one at
https://mozilla.org/MPL/2.0/.
免責事項
本ツールを使用し、生成した二次生成物で発生した損害については、製作者はいかなる責任も負いません。
リバースエンジニアリングによって発生した損害について、製作者はいかなる責任も負いません。
正規のダウンロード先以外から入手した本ツール、もしくは本ツールに類似したソフトウェアにおいて発生した損害について、製作者はいかなる責任も負いません。
製作者の想定を超えた利用、ソースコードの改変を行い発生した損害について、製作者はいかなる責任も負いません。
犯罪への利用や医療用などの専門的な用途への使用、不法行為などで発生した損害について、製作者はいかなる責任も負いません。
ライセンス不履行による過失については、製作者は一切の責任を負いません。
ハッシュ値の確認
本ツールが、正規のものか確認する為に、SHA256形式のハッシュ値を記載しました。
この作業は必須ではありませんが、心配な方、確認される方はお使いください。
Windowsでの確認方法は以下です。
コマンドプロンプトを立ち上げて、以下コマンドを入力します。
certutil -hashfile "本ツールのファイルパス" SHA256
ダウンロードの項目に各xlsmファイルのハッシュ値を記載していますので、上記コマンドで出力したハッシュ値を比較してください。
ダウンロード(MAGiC Light)
Latest Version
SHA256:4174fd53eaf479d6634b9014a4e7cea0777881b894f8dde96e9b1c4f247a2d96
Old Version
SHA256:82c9aa9868fc79ede8b551a259e6a4438e81b225125e97d8092f55e4b2df4107
この記事が参加している募集
よろしければサポートお願いします!✨ 頂いたサポート費用は活動費(電気代や設備費用)に使わさせて頂きます!✨