すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:EAS で Kohya_ss を使用した LoRA SD モデルのデプロイ

最終更新日:Jan 29, 2026

このトピックでは、Elastic Algorithm Service (EAS) を使用してオープンソースの Kohya_ss サービスをデプロイし、Low-Rank Adaptation (LoRA) モデルをファインチューニングする方法について説明します。AI 画像生成シナリオでは、ファインチューニングされた LoRA モデルを Stable Diffusion (SD) サービスに適用して、生成される画像の品質を向上させることができます。

前提条件

事前準備

  1. OSS コンソールにログインし、同じリージョン内のバケットパスに移動します。例:oss://kohya-demo/kohya/

  2. バケット内に、新しいプロジェクトフォルダを作成します。例:KaraDetroit_loar。このプロジェクトフォルダ内に、ImageLogModel の 3 つのサブフォルダを作成します。JSON 設定ファイルがある場合は、このプロジェクトフォルダにアップロードすることもできます。

    image.png

    • Image:トレーニングデータを保存します。

    • Model:出力モデルファイルを保存します。

    • Log:ログを保存します。

    • SS_config.json:(任意) パラメーターを一括設定するための JSON ファイルです。このファイルを使用すると、フォルダパスや出力モデル名などのパラメーターを変更できます。設定の詳細については、GitHub 上のプロジェクトをご参照ください。サンプル JSON ファイルについては、「SS_config.json」をご参照ください。

  3. 準備した画像を Image フォルダにアップロードします。このチュートリアルでは、100_pic.zip のサンプル画像と説明ファイルを使用します。ファイルをダウンロードして解凍し、生成されたフォルダを OSS にアップロードします。結果は次の図のようになります。

    image.png

    重要
    • サポートされている画像フォーマットは .png.jpg.jpeg.webp.bmp です。

    • 各画像には、同じ名前で拡張子が .txt の対応する説明ファイルが必要です。説明は最初の行に記述する必要があります。複数の説明タグがある場合は、カンマで区切ります。

    • イメージフォルダ名は number_name の形式に従う必要があります。例:100_picnumber は、トレーニング中に各画像が繰り返される回数を指定し、推奨値は 100 以上です。name は、OSS のファイル命名規則に準拠する任意の文字列です。トレーニングステップの合計数は、通常 1,500 以上である必要があります。

      • フォルダに 10 枚の画像が含まれている場合、各画像は 1500 / 10 = 150 回トレーニングされます。フォルダ名の数字は 150 になります。

      • フォルダに 20 枚の画像が含まれている場合、各画像は 1500 / 20 = 75 回トレーニングされ、推奨の 100 回未満です。この場合、フォルダ名の数字は 100 にする必要があります。

Kohya_ss サービスのデプロイ

  1. PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、Elastic Algorithm Service (EAS) をクリックします。

  2. [サービスのデプロイ] をクリックします。[カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。

  3. [カスタムデプロイ] ページで、フォームまたは JSON スクリプトを使用してパラメーターを設定します。

    フォームを使用したパラメーターの設定

    パラメーター

    説明

    基本情報

    サービス名

    サービスにカスタム名を入力します。このチュートリアルでは kohya_ss_demo を使用します。

    環境情報

    デプロイ方法

    [イメージベースのデプロイ] を選択し、[Web アプリケーションを有効化] を選択します。

    イメージ設定

    [Alibaba Cloud イメージ] リストから [Kohya_ss] > [kohya_ss:2.2] を選択します。

    説明

    イメージのバージョンは頻繁に更新されます。サービスをデプロイする際は、最新バージョンを選択してください。

    ストレージのマウント

    OSS マウントタイプを選択し、次のパラメーターを設定します。

    • URI:同じリージョン内の OSS パスを選択します。このチュートリアルでは oss://kohya-demo/kohya/ を使用します。

    • マウントパス:カスタムパスを入力します。このチュートリアルでは /workspace を使用します。

      重要

      [読み取り専用モードを有効化] スイッチは無効のままにしてください。そうしないと、モデルファイルをご利用の OSS バケットに書き込めなくなります。

    コマンド

    イメージを選択すると、このフィールドはシステムによって自動的に入力されます。このチュートリアルでは、python -u kohya_gui.py --listen=0.0.0.0 --server_port=8000 --headless を使用します。

    • --listenアプリケーションを特定のローカル IP アドレスにバインドして、外部リクエストを受信および処理します。

    • --server_port:リッスンするポート番号を指定します。

    リソース情報

    リソースタイプ

    [パブリックリソース] を選択します。

    デプロイリソース

    [インスタンスタイプ] には、コスト効率が最も高い GPU > ml.gu7i.c16m60.1-gu30 を推奨します。このチュートリアルでは、利用可能な最小仕様である ml.gu7i.c8m30.1-gu30 を使用します。

    JSON スクリプトを使用したパラメーターの設定

    [サービス設定] セクションで [編集] をクリックし、JSON スクリプトを設定します。

    サンプル JSON ファイル:

    重要

    4 行目の "name" の値と 18 行目の "oss" の値を実際の値に置き換えてください。

    {
        "metadata":
        {
            "name": "kohya_ss_demo",
            "instance": 1,
            "enable_webservice": true
        },
        "cloud":
        {
            "computing":
            {
                "instance_type": "ecs.gn6e-c12g1.12xlarge",
                "instances": null
            }
        },
        "storage": [
        {
            "oss":
            {
                "path": "oss://kohya-demo/kohya/",
                "readOnly": false
            },
            "properties":
            {
                "resource_type": "model"
            },
            "mount_path": "/workspace"
        }],
        "containers": [
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/kohya_ss:1.2",
            "script": "python -u kohya_gui.py --listen=0.0.0.0 --server_port=8000 --headless",
            "port": 8000
        }]
    }
  4. フォームの設定を確認し、[デプロイ] をクリックします。デプロイが完了するまで数分かかります。[サービスステータス][実行中] に変わると、サービスは正常にデプロイされています。

LoRA モデルのファインチューニング

  1. サービスリストで対象のサービスを見つけ、[概要] 列の [Web アプリケーション] をクリックして、Kohya_ss サービスの UI を開きます。

  2. [LoRA (LoRA)] を選択します。

    image

  3. [設定ファイル] を設定します。このステップは任意です。SS_config.json ファイルがない場合は、このステップをスキップしてください。

    image

    説明

    設定ファイルのパスは、フォームを使用したパラメーターの設定ステップで指定した [マウントパス]、OSS で作成したフォルダのパス、および SS_config.json ファイルを結合して作成されます。このチュートリアルでのパスは次のとおりです。

    /workspace/KaraDetroit_loar/SS_config.json

  4. [ソースモデル] を設定します。このチュートリアルでは、[checkpoint] よりも安全な [safetensors] を使用します。

    image

  5. [フォルダ] を設定します。OSS で作成した ImageLogModel フォルダのパスを入力し、出力ファイル名を指定します。

    image

    パラメーター

    説明

    イメージフォルダ

    トレーニング画像を含むフォルダへのパスです。このパスは、サービス設定[マウントパス] と OSS の Image フォルダパスを結合したものです。このチュートリアルでのパスは /workspace/KaraDetroit_loar/Image です。

    ログフォルダ

    ログが保存されるフォルダへのパスです。このパスは、サービス設定[マウントパス] と OSS の Log フォルダパスを結合したものです。このチュートリアルでのパスは /workspace/KaraDetroit_loar/Log です。

    出力フォルダ

    出力モデルが保存されるフォルダへのパスです。このパスは、サービス設定[マウントパス] と OSS の Model フォルダパスを結合したものです。このチュートリアルでのパスは /workspace/KaraDetroit_loar/Model です。

    モデル出力名

    出力モデルファイルの名前です。例:my_model

  6. [パラメーター] を設定します。サンプル値については、事前準備セクションで言及されている SS_config.json の内容をご参照ください。

    パラメーター

    説明

    LoRA タイプ

    LoRA のタイプ:

    • LoCONResBlockTransformer など、SD のすべてのレイヤーを調整できます。

    • LoHA:同じサイズでより多くの情報を処理します。

    LoRA ネットワークの重み

    任意。モデルのトレーニングを継続する場合、最後にトレーニングされた LoRA ファイルを選択します。

    トレーニングバッチサイズ

    トレーニングバッチのサイズです。値が大きいほど、より多くの GPU メモリ (VRAM) が必要になります。

    エポック

    トレーニングエポックの数です。1 エポックで全てのデータが 1 回トレーニングされます。必要に応じてパラメーターを設定します。ほとんどの場合、次のようになります。

    • Kohya での総トレーニングセッション数 = トレーニングに使用される画像数 × 繰り返し回数 × トレーニングエポック数 / トレーニングバッチ数

    • Web UI での総トレーニングセッション数 = トレーニングに使用される画像数 × 繰り返し回数

    クラスイメージを使用する場合、Kohya と WebUI の両方で総トレーニングステップ数が 2 倍になり、Kohya でモデルが保存される回数が半分になります。

    N エポックごとに保存

    N エポックごとにチェックポイントを保存します。例えば、2 に設定すると、2 エポックごとにトレーニング結果が保存されます。

    キャプション拡張機能

    任意。キャプションファイルの拡張子です。例:.txt

    混合精度

    混合精度の設定で、GPU のパフォーマンスに依存します。オプションは nofp16bf16 です。30 GB 以上の VRAM を持つ GPU の場合、bf16 が推奨されます。

    精度の保存

    保存精度。[混合精度] と同じです。

    コアあたりの CPU スレッド数

    コアあたりの CPU スレッド数です。選択したインスタンスと要件に基づいて調整します。

    学習率

    学習率です。デフォルトは 0.0001 です。

    学習率スケジューラ

    学習率スケジューラです。cosinecosine with restart などの関数を必要に応じて選択します。

    学習率ウォームアップ (ステップの %)

    学習ウォームアップステップの数です。デフォルトは 10 です。ウォームアップが不要な場合は 0 に設定します。

    オプティマイザー

    オプティマイザーです。必要に応じて選択します。デフォルトは AdamW8bit です。DAdaptation は自動最適化を提供します。

    最大解像度

    最大解像度です。画像のディメンションに基づいて設定します。

    ネットワークランク (ディメンション)

    モデルの複雑さです。ほとんどのシナリオでは 128 の値で十分です。

    ネットワークアルファ

    この値は通常、[ネットワークランク (ディメンション)] 以下です。一般的な設定は、ネットワークランク 128、ネットワークアルファ 64 です。

    畳み込み次元

    & 畳み込みアルファ

    畳み込みディメンションで、LoRA ファインチューニングの範囲に影響します。選択した [LoRA タイプ] に基づいて調整します。

    Kohya の公式推奨事項:

    • LoCondim <= 64 および alpha = 1 (またはそれ以下) に設定します。

    • LoHAdim <= 32 および alpha = 1 に設定します。

    Clip skip

    CLIP モデルでスキップするレイヤーの数です。値の範囲は 1 から 12 です。値が小さいほど、オリジナルまたは入力画像に近い画像が生成されます。

    • リアルなモデルの場合は 1 を選択します。

    • アニメスタイルのモデルの場合は 2 を選択します。

    n ステップごとにサンプリング

    N ステップごとにサンプル画像を保存します。

    サンプルプロンプト

    次のパラメーターを使用します。

    • --n:プロンプトまたはネガティブプロンプト。

    • --w:画像の幅。

    • --h:画像の高さ。

    • --d:画像のシード。

    • --l:Classifier Free Guidance (CFG) スケール。プロンプトと画像生成の関連性を示します。

    • --s:反復ステップ数。

  7. ページの下部にある [トレーニングを開始] をクリックしてトレーニングを開始します。image

  8. [Elastic Algorithm Service (EAS)] ページで、サービスリスト内の対応するサービス名をクリックします。[ログ] をクリックして、トレーニングの進捗をリアルタイムで表示します。

    image

    ログに model saved が表示されたら、トレーニングは完了です。

    image.png

  9. トレーニングが完了したら、設定したモデル出力ディレクトリ (Model) で生成された LoRA モデルファイルを見つけます。例:my_model.safetensors

    image.png

ファインチューニング済み LoRA モデルの Stable Diffusion での使用

LoRA モデルをファインチューニングした後、Stable Diffusion WebUI サービスの適切なディレクトリにアップロードして画像を生成できます。Stable Diffusion サービスのデプロイ方法については、「EAS を使用した数クリックでの AI 画像生成のための Stable Diffusion のデプロイ」をご参照ください。

次のセクションでは、LoRA モデルを [SD Web アプリケーション] にアップロードする方法について説明します。

SD Web アプリケーション (クラスター版)

  1. Stable Diffusion WebUI イメージを設定します。-cluster バージョン (例:stable-diffusion-webui:4.2-cluster-webui) を選択する必要があります。

  2. 次のパラメーターを [コマンド] に追加します。

    • --lora-dir:任意。

      • --lora-dir が指定されていない場合、各ユーザーのモデルファイルは分離されます。サービスは {OSS-path}/data-{current-user-ID}/models/Lora ディレクトリからのみモデルファイルをロードします。

      • --lora-dir が指定されている場合、サービスは指定されたディレクトリと {OSS-path}/data-{current-user-ID}/models/Lora ディレクトリの両方から、すべてのユーザーのモデルファイルをロードします。例:--lora-dir /code/stable-diffusion-webui/data-oss/models/Lora

    • --data-dir {OSS マウントパス}。例:--data-dir /code/stable-diffusion-webui/data-oss

  3. LoRA モデルファイルを {OSS-path}/data-{current-user-ID}/models/Lora ディレクトリにアップロードします。例:oss://bucket-test/data-oss/data-1596******100/models/Lora

    image.png

    説明

    サービスは起動後、OSS バケット内に /data-{current-user-ID}/models/Lora パスを自動的に作成します。したがって、モデルファイルはサービスが起動した後にのみアップロードしてください。{current-user-ID} は、コンソールの右上隅にあるプロファイルアバターをクリックして確認できます。

    image.png

SD Web アプリケーション (基本版)

  1. Stable Diffusion WebUI イメージを設定します。非 -cluster バージョン (例:stable-diffusion-webui:4.2-standard) を選択する必要があります。

  2. 次のパラメーターを [コマンド] に追加します:--data-dir {OSS-mount-path}。例:--data-dir /code/stable-diffusion-webui/data-oss

  3. LoRA モデルファイルを {OSS-path}/models/Lora ディレクトリにアップロードします。例:oss://bucket-test/data-oss/models/Lora

    image.png

    説明

    サービスは起動後、マウントされた OSS バケット内に /models/Lora パスを自動的に作成します。このパスは手動で作成しないでください。したがって、モデルファイルはサービスが起動した後にのみアップロードしてください。