見出し画像

別のWEBUIを始めてから「ComfyUI」を始める人向けのLoRA等の設定方法

私は、a1111を初めて、そこからEasySdxWebUiでforgeを利用し、そこからComfyUIを始めています。
最初のころは、それぞれのWEBUIにcheckPointやLoRAを入れていますが、結構なストレージを利用していましたが、連携することで使い回せます。
今回は、別のWEBUIで取得したcheckPointやLoRAをCofyUIで利用する方法を紹介します。

LoRAやcheckPointは、事前にWEBUIにDLしたものをリンクさせて、ComfyUIで利用

a1111などのWEEBUIのcheckPointやLoRAなどリンクさせるファイルがあります。
下記の場所に「extra_model_paths.yaml.example」があります。

C:\~ComfyUI_windows_portable\ComfyUI/extra_model_paths.yaml.example

extra_model_paths.yaml.example のファイルで .exampleを削除して拡張yaml形式にします。

extra_model_paths.yaml

extra_model_paths.yamlの中を変更することでa1111やEasySdxWebUiからLoRAやcheckPointを呼び込んだりできます。
私は、C直下に置いているのでケースになりますので base_pathは適宜変更してください。

Stable diffusion a1111を使っていた向けのComfyUIへのLoRaやcheckPointの連携

a111:
    base_path: C:~\stable-diffusion-webui/
    checkpoints: models/Stable-diffusion
    configs: models/Stable-diffusion
    vae: models/VAE
    loras: |
         models/Lora
         models/LyCORIS
    upscale_models: |
                  models/ESRGAN
                  models/RealESRGAN
                  models/SwinIR
    embeddings: embeddings
    hypernetworks: models/hypernetworks
    controlnet: models/ControlNet

EasySdxWebUiを使っていた人向けのComfyUIへのLoRAやcheckPointの連携

EasySdxlWebUi:
    base_path: C:\EasySdxlWebUi/

    checkpoints: SdxlWebUi/Model
    configs: SdxlWebUi
    vae: SdxlWebUi/Vae
    loras: |
            SdxlWebUi/Lora
            SdxlWebUi/LyCORIS
    upscale_SdxlWebUi: |
                    SdxlWebUi/Upscaler
                    SdxlWebUi/RealESRGAN
                    SdxlWebUi/SwinIR
    embeddings: embeddings
    hypernetworks: SdxlWebUi/hypernetworks
    controlnet: SdxlWebUi/ControlNet

ワイルドカードだけ設定がない

そもそもワイルドカードを使うには、「ComfyUI Manager」からImpact Packをインストールして利用できます。
そのため、デフォルトではないものは設定に存在しないので自分でシンボルリックリンク作成する必要があります。

batファイルを作成してシンボルリックリンク

調べながら実施して何とかできました。
ComyUIのワイルカードの階層は下記になります。

C:\~ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\wildcards

batファイルを作成し、シンボルリックリンクできましたが、作成完了時に「Access is denied」のエラーがでます。
ただシンボルリックリンク作成できるので良しとします。
そんため、自作batファイルの中身を紹介しますが、自己責任でお願いします。
改良したいー!

上記の階層にwildcards.batファイルを作りコードを入れます。
中身に下記をいれます。

@echo off
chcp 65001 >nul

rem 管理者権限で実行されているか確認
openfiles >nul 2>&1 || (
    echo Please run this batch file as an administrator.
    pause
    exit /b
)

rem ドラッグアンドドロップで渡された引数を取得
set source=%~1
set target="%~dp0wildcards"

rem シンボリックリンクを作成
if not exist "%target%" (
    mklink /D %target% %source% >nul 2>&1
    if %errorlevel% == 0 (
        echo Symbolic link created: %target% -> %source%
    )
) else (
    echo Symbolic link already exists: %target% -> %source%
)

pause >nul

次にwildcards.batのショートカットを作り、プロパティのショートカットで詳細設定で管理者として実行にチェックをいれる。
ショートカットで作成したwildcards.batにドラッグアンドドロップでa1111またはEasySdxWebUiにあるwildcardsフォルダーを入れることで、シンボルリックリンク作成され、ComyUIでワイルカード利用することができるようになります。
ComyUIでワイルドカードを使うには、ImpactWildcardProcessorのノードを利用してください。

手動でやりたい場合は、フリーソフトのLink Shell ExtensionでGUIで簡単に作成できます。

batファイルは同じコードでどの場所にあっても置くだけで、今現在の場所を把握し、ドラッグアンドドロップでシンボルリックリンク作成できるものにしたかったです。

サポートしていただけると飛び跳ねて喜びます。