mirror of
https://github.com/kohya-ss/sd-scripts.git
synced 2026-04-10 06:54:17 +00:00
Merge pull request #2086 from kohya-ss/codex/translate-and-structure-markdown-files
Add English docs with Japanese details
This commit is contained in:
@@ -1,3 +1,85 @@
|
||||
Status: reviewed
|
||||
|
||||
# LoRA Training Guide for FLUX.1 using `flux_train_network.py` / `flux_train_network.py` を用いたFLUX.1モデルのLoRA学習ガイド
|
||||
|
||||
This document explains how to train LoRA models for the FLUX.1 model using `flux_train_network.py` included in the `sd-scripts` repository.
|
||||
|
||||
## 1. Introduction / はじめに
|
||||
|
||||
`flux_train_network.py` trains additional networks such as LoRA on the FLUX.1 model, which uses a transformer-based architecture different from Stable Diffusion. Two text encoders, CLIP-L and T5-XXL, and a dedicated AutoEncoder are used.
|
||||
|
||||
This guide assumes you know the basics of LoRA training. For common options see [train_network.py](train_network.md) and [sdxl_train_network.py](sdxl_train_network.md).
|
||||
|
||||
**Prerequisites:**
|
||||
|
||||
* The repository is cloned and the Python environment is ready.
|
||||
* A training dataset is prepared. See the dataset configuration guide.
|
||||
|
||||
## 2. Differences from `train_network.py` / `train_network.py` との違い
|
||||
|
||||
`flux_train_network.py` is based on `train_network.py` but adapted for FLUX.1. Main differences include required arguments for the FLUX.1 model, CLIP-L, T5-XXL and AE, different model structure, and some incompatible options from Stable Diffusion.
|
||||
|
||||
## 3. Preparation / 準備
|
||||
|
||||
Before starting training you need:
|
||||
|
||||
1. **Training script:** `flux_train_network.py`
|
||||
2. **FLUX.1 model file** and text encoder files (`clip_l`, `t5xxl`) and AE file.
|
||||
3. **Dataset definition file (.toml)** such as `my_flux_dataset_config.toml`.
|
||||
|
||||
## 4. Running the Training / 学習の実行
|
||||
|
||||
Run `flux_train_network.py` from the terminal with FLUX.1 specific arguments. Example:
|
||||
|
||||
```bash
|
||||
accelerate launch --num_cpu_threads_per_process 1 flux_train_network.py \
|
||||
--pretrained_model_name_or_path="<path to FLUX.1 model>" \
|
||||
--clip_l="<path to CLIP-L model>" \
|
||||
--t5xxl="<path to T5-XXL model>" \
|
||||
--ae="<path to AE model>" \
|
||||
--dataset_config="my_flux_dataset_config.toml" \
|
||||
--output_dir="<output directory>" \
|
||||
--output_name="my_flux_lora" \
|
||||
--save_model_as=safetensors \
|
||||
--network_module=networks.lora_flux \
|
||||
--network_dim=16 \
|
||||
--network_alpha=1 \
|
||||
--learning_rate=1e-4 \
|
||||
--optimizer_type="AdamW8bit" \
|
||||
--lr_scheduler="constant" \
|
||||
--sdpa \
|
||||
--max_train_epochs=10 \
|
||||
--save_every_n_epochs=1 \
|
||||
--mixed_precision="fp16" \
|
||||
--gradient_checkpointing \
|
||||
--guidance_scale=1.0 \
|
||||
--timestep_sampling="flux_shift" \
|
||||
--blocks_to_swap=18 \
|
||||
--cache_text_encoder_outputs \
|
||||
--cache_latents
|
||||
```
|
||||
|
||||
### 4.1. Explanation of Key Options / 主要なコマンドライン引数の解説
|
||||
|
||||
The script adds FLUX.1 specific arguments such as guidance scale, timestep sampling, block swapping, and options for training CLIP-L and T5-XXL LoRA modules. Some Stable Diffusion options like `--v2` and `--clip_skip` are not used.
|
||||
|
||||
### 4.2. Starting Training / 学習の開始
|
||||
|
||||
Training begins once you run the command with the required options. Log checking is the same as in `train_network.py`.
|
||||
|
||||
## 5. Using the Trained Model / 学習済みモデルの利用
|
||||
|
||||
After training, a LoRA model file is saved in `output_dir` and can be used in inference environments supporting FLUX.1 (e.g. ComfyUI + Flux nodes).
|
||||
|
||||
## 6. Others / その他
|
||||
|
||||
Additional notes on VRAM optimization, training options, multi-resolution datasets, block selection and text encoder LoRA are provided in the Japanese section.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
|
||||
|
||||
|
||||
# `flux_train_network.py` を用いたFLUX.1モデルのLoRA学習ガイド
|
||||
|
||||
このドキュメントでは、`sd-scripts`リポジトリに含まれる`flux_train_network.py`を使用して、FLUX.1モデルに対するLoRA (Low-Rank Adaptation) モデルを学習する基本的な手順について解説します。
|
||||
@@ -312,4 +394,4 @@ resolution = [512, 512]
|
||||
num_repeats = 1
|
||||
```
|
||||
|
||||
各解像度セクションの`[[datasets.subsets]]`部分は、データセットディレクトリを定義します。各解像度に対して同じディレクトリを指定してください。
|
||||
各解像度セクションの`[[datasets.subsets]]`部分は、データセットディレクトリを定義します。各解像度に対して同じディレクトリを指定してください。</details>
|
||||
|
||||
@@ -1,11 +1,25 @@
|
||||
Status: reviewed
|
||||
|
||||
# LoRA Training Guide for Stable Diffusion 3/3.5 using `sd3_train_network.py` / `sd3_train_network.py` を用いたStable Diffusion 3/3.5モデルのLoRA学習ガイド
|
||||
|
||||
This document explains how to train LoRA (Low-Rank Adaptation) models for Stable Diffusion 3 (SD3) and Stable Diffusion 3.5 (SD3.5) using `sd3_train_network.py` in the `sd-scripts` repository.
|
||||
|
||||
## 1. Introduction / はじめに
|
||||
|
||||
`sd3_train_network.py` trains additional networks such as LoRA for SD3/3.5 models. SD3 adopts a new architecture called MMDiT (Multi-Modal Diffusion Transformer), so its structure differs from previous Stable Diffusion models. With this script you can create LoRA models specialized for SD3/3.5.
|
||||
|
||||
This guide assumes you already understand the basics of LoRA training. For common usage and options, see the [train_network.py guide](train_network.md). Some parameters are the same as those in [`sdxl_train_network.py`](sdxl_train_network.md).
|
||||
|
||||
**Prerequisites:**
|
||||
|
||||
* The `sd-scripts` repository has been cloned and the Python environment is ready.
|
||||
* A training dataset has been prepared. See the [Dataset Configuration Guide](link/to/dataset/config/doc).
|
||||
* SD3/3.5 model files for training are available.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
ステータス:内容を一通り確認した
|
||||
|
||||
# `sd3_train_network.py` を用いたStable Diffusion 3/3.5モデルのLoRA学習ガイド
|
||||
|
||||
このドキュメントでは、`sd-scripts`リポジトリに含まれる`sd3_train_network.py`を使用して、Stable Diffusion 3 (SD3) および Stable Diffusion 3.5 (SD3.5) モデルに対するLoRA (Low-Rank Adaptation) モデルを学習する基本的な手順について解説します。
|
||||
|
||||
## 1. はじめに
|
||||
|
||||
`sd3_train_network.py`は、Stable Diffusion 3/3.5モデルに対してLoRAなどの追加ネットワークを学習させるためのスクリプトです。SD3は、MMDiT (Multi-Modal Diffusion Transformer) と呼ばれる新しいアーキテクチャを採用しており、従来のStable Diffusionモデルとは構造が異なります。このスクリプトを使用することで、SD3/3.5モデルに特化したLoRAモデルを作成できます。
|
||||
|
||||
このガイドは、基本的なLoRA学習の手順を理解しているユーザーを対象としています。基本的な使い方や共通のオプションについては、[`train_network.py`のガイド](train_network.md)を参照してください。また一部のパラメータは [`sdxl_train_network.py`](sdxl_train_network.md) と同様のものがあるため、そちらも参考にしてください。
|
||||
@@ -15,9 +29,20 @@
|
||||
* `sd-scripts`リポジトリのクローンとPython環境のセットアップが完了していること。
|
||||
* 学習用データセットの準備が完了していること。(データセットの準備については[データセット設定ガイド](link/to/dataset/config/doc)を参照してください)
|
||||
* 学習対象のSD3/3.5モデルファイルが準備できていること。
|
||||
</details>
|
||||
|
||||
## 2. `train_network.py` との違い
|
||||
## 2. Differences from `train_network.py` / `train_network.py` との違い
|
||||
|
||||
`sd3_train_network.py` is based on `train_network.py` but modified for SD3/3.5. Main differences are:
|
||||
|
||||
* **Target models:** Stable Diffusion 3 and 3.5 Medium/Large.
|
||||
* **Model structure:** Uses MMDiT (Transformer based) instead of U-Net and employs three text encoders: CLIP-L, CLIP-G and T5-XXL. The VAE is not compatible with SDXL.
|
||||
* **Arguments:** Options exist to specify the SD3/3.5 model, text encoders and VAE. With a single `.safetensors` file, these paths are detected automatically, so separate paths are optional.
|
||||
* **Incompatible arguments:** Stable Diffusion v1/v2 options such as `--v2`, `--v_parameterization` and `--clip_skip` are not used.
|
||||
* **SD3 specific options:** Additional parameters for attention masks, dropout rates, positional embedding adjustments (for SD3.5), timestep sampling and loss weighting.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
`sd3_train_network.py`は`train_network.py`をベースに、SD3/3.5モデルに対応するための変更が加えられています。主な違いは以下の通りです。
|
||||
|
||||
* **対象モデル:** Stable Diffusion 3, 3.5 Medium / Large モデルを対象とします。
|
||||
@@ -25,9 +50,18 @@
|
||||
* **引数:** SD3/3.5モデル、Text Encoder群、VAEを指定する引数があります。ただし、単一ファイルの`.safetensors`形式であれば、内部で自動的に分離されるため、個別のパス指定は必須ではありません。
|
||||
* **一部引数の非互換性:** Stable Diffusion v1/v2向けの引数(例: `--v2`, `--v_parameterization`, `--clip_skip`)はSD3/3.5の学習では使用されません。
|
||||
* **SD3特有の引数:** Text Encoderのアテンションマスクやドロップアウト率、Positional Embeddingの調整(SD3.5向け)、タイムステップのサンプリングや損失の重み付けに関する引数が追加されています。
|
||||
</details>
|
||||
|
||||
## 3. 準備
|
||||
## 3. Preparation / 準備
|
||||
|
||||
The following files are required before starting training:
|
||||
|
||||
1. **Training script:** `sd3_train_network.py`
|
||||
2. **SD3/3.5 model file:** `.safetensors` file for the base model and paths to each text encoder. Single-file format can also be used.
|
||||
3. **Dataset definition file (.toml):** Dataset settings in TOML format. (See the [Dataset Configuration Guide](link/to/dataset/config/doc).) In this document we use `my_sd3_dataset_config.toml` as an example.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
学習を開始する前に、以下のファイルが必要です。
|
||||
|
||||
1. **学習スクリプト:** `sd3_train_network.py`
|
||||
@@ -35,43 +69,107 @@
|
||||
* 単一ファイル形式も使用可能です。
|
||||
3. **データセット定義ファイル (.toml):** 学習データセットの設定を記述したTOML形式のファイル。(詳細は[データセット設定ガイド](link/to/dataset/config/doc)を参照してください)。
|
||||
* 例として`my_sd3_dataset_config.toml`を使用します。
|
||||
</details>
|
||||
|
||||
## 4. 学習の実行
|
||||
## 4. Running the Training / 学習の実行
|
||||
|
||||
Execute `sd3_train_network.py` from the terminal to start training. The overall command-line format is the same as `train_network.py`, but SD3/3.5 specific options must be supplied.
|
||||
|
||||
Example command:
|
||||
|
||||
```bash
|
||||
accelerate launch --num_cpu_threads_per_process 1 sd3_train_network.py \
|
||||
--pretrained_model_name_or_path="<path to SD3 model>" \
|
||||
--clip_l="<path to CLIP-L model>" \
|
||||
--clip_g="<path to CLIP-G model>" \
|
||||
--t5xxl="<path to T5-XXL model>" \
|
||||
--dataset_config="my_sd3_dataset_config.toml" \
|
||||
--output_dir="<output directory for training results>" \
|
||||
--output_name="my_sd3_lora" \
|
||||
--save_model_as=safetensors \
|
||||
--network_module=networks.lora \
|
||||
--network_dim=16 \
|
||||
--network_alpha=1 \
|
||||
--learning_rate=1e-4 \
|
||||
--optimizer_type="AdamW8bit" \
|
||||
--lr_scheduler="constant" \
|
||||
--sdpa \
|
||||
--max_train_epochs=10 \
|
||||
--save_every_n_epochs=1 \
|
||||
--mixed_precision="fp16" \
|
||||
--gradient_checkpointing \
|
||||
--weighting_scheme="sigma_sqrt" \
|
||||
--blocks_to_swap=32
|
||||
```
|
||||
|
||||
*(Write the command on one line or use `\` or `^` for line breaks.)*
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
学習は、ターミナルから`sd3_train_network.py`を実行することで開始します。基本的なコマンドラインの構造は`train_network.py`と同様ですが、SD3/3.5特有の引数を指定する必要があります。
|
||||
|
||||
以下に、基本的なコマンドライン実行例を示します。
|
||||
|
||||
```bash
|
||||
accelerate launch --num_cpu_threads_per_process 1 sd3_train_network.py
|
||||
--pretrained_model_name_or_path="<path to SD3 model>"
|
||||
accelerate launch --num_cpu_threads_per_process 1 sd3_train_network.py
|
||||
--pretrained_model_name_or_path="<path to SD3 model>"
|
||||
--clip_l="<path to CLIP-L model>"
|
||||
--clip_g="<path to CLIP-G model>"
|
||||
--t5xxl="<path to T5-XXL model>"
|
||||
--dataset_config="my_sd3_dataset_config.toml"
|
||||
--output_dir="<output directory for training results>"
|
||||
--output_name="my_sd3_lora"
|
||||
--save_model_as=safetensors
|
||||
--network_module=networks.lora
|
||||
--network_dim=16
|
||||
--network_alpha=1
|
||||
--learning_rate=1e-4
|
||||
--optimizer_type="AdamW8bit"
|
||||
--lr_scheduler="constant"
|
||||
--sdpa
|
||||
--max_train_epochs=10
|
||||
--save_every_n_epochs=1
|
||||
--mixed_precision="fp16"
|
||||
--gradient_checkpointing
|
||||
--weighting_scheme="sigma_sqrt"
|
||||
--clip_g="<path to CLIP-G model>"
|
||||
--t5xxl="<path to T5-XXL model>"
|
||||
--dataset_config="my_sd3_dataset_config.toml"
|
||||
--output_dir="<output directory for training results>"
|
||||
--output_name="my_sd3_lora"
|
||||
--save_model_as=safetensors
|
||||
--network_module=networks.lora
|
||||
--network_dim=16
|
||||
--network_alpha=1
|
||||
--learning_rate=1e-4
|
||||
--optimizer_type="AdamW8bit"
|
||||
--lr_scheduler="constant"
|
||||
--sdpa
|
||||
--max_train_epochs=10
|
||||
--save_every_n_epochs=1
|
||||
--mixed_precision="fp16"
|
||||
--gradient_checkpointing
|
||||
--weighting_scheme="sigma_sqrt"
|
||||
--blocks_to_swap=32
|
||||
```
|
||||
|
||||
※実際には1行で書くか、適切な改行文字(`\` または `^`)を使用してください。
|
||||
</details>
|
||||
|
||||
### 4.1. 主要なコマンドライン引数の解説(`train_network.py`からの追加・変更点)
|
||||
### 4.1. Explanation of Key Options / 主要なコマンドライン引数の解説
|
||||
|
||||
[`train_network.py`のガイド](train_network.md)で説明されている引数に加え、以下のSD3/3.5特有の引数を指定します。共通の引数(`--output_dir`, `--output_name`, `--network_module`, `--network_dim`, `--network_alpha`, `--learning_rate`など)については、上記ガイドを参照してください。
|
||||
Besides the arguments explained in the [train_network.py guide](train_network.md), specify the following SD3/3.5 options. For shared options (`--output_dir`, `--output_name`, etc.), see that guide.
|
||||
|
||||
#### Model Options / モデル関連
|
||||
|
||||
* `--pretrained_model_name_or_path="<path to SD3 model>"` **required** – Path to the SD3/3.5 model.
|
||||
* `--clip_l`, `--clip_g`, `--t5xxl`, `--vae` – Skip these if the base model is a single file; otherwise specify each `.safetensors` path. `--vae` is usually unnecessary unless you use a different VAE.
|
||||
|
||||
#### SD3/3.5 Training Parameters / SD3/3.5 学習パラメータ
|
||||
|
||||
* `--t5xxl_max_token_length=<integer>` – Max token length for T5-XXL. Default `256`.
|
||||
* `--apply_lg_attn_mask` – Apply an attention mask to CLIP-L/CLIP-G outputs.
|
||||
* `--apply_t5_attn_mask` – Apply an attention mask to T5-XXL outputs.
|
||||
* `--clip_l_dropout_rate`, `--clip_g_dropout_rate`, `--t5_dropout_rate` – Dropout rates for the text encoders. Default `0.0`.
|
||||
* `--pos_emb_random_crop_rate=<float>` **[SD3.5]** – Probability of randomly cropping the positional embedding.
|
||||
* `--enable_scaled_pos_embed` **[SD3.5][experimental]** – Scale positional embeddings when training with multiple resolutions.
|
||||
* `--training_shift=<float>` – Shift applied to the timestep distribution. Default `1.0`.
|
||||
* `--weighting_scheme=<choice>` – Weighting method for loss by timestep. Default `uniform`.
|
||||
* `--logit_mean`, `--logit_std`, `--mode_scale` – Parameters for `logit_normal` or `mode` weighting.
|
||||
|
||||
#### Memory and Speed / メモリ・速度関連
|
||||
|
||||
* `--blocks_to_swap=<integer>` **[experimental]** – Swap a number of Transformer blocks between CPU and GPU. More blocks reduce VRAM but slow training. Cannot be used with `--cpu_offload_checkpointing`.
|
||||
|
||||
#### Incompatible or Deprecated Options / 非互換・非推奨の引数
|
||||
|
||||
* `--v2`, `--v_parameterization`, `--clip_skip` – Options for Stable Diffusion v1/v2 that are not used for SD3/3.5.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
[`train_network.py`のガイド](train_network.md)で説明されている引数に加え、以下のSD3/3.5特有の引数を指定します。共通の引数については、上記ガイドを参照してください。
|
||||
|
||||
#### モデル関連
|
||||
|
||||
@@ -83,43 +181,42 @@ accelerate launch --num_cpu_threads_per_process 1 sd3_train_network.py
|
||||
|
||||
#### SD3/3.5 学習パラメータ
|
||||
|
||||
* `--t5xxl_max_token_length=<integer>`
|
||||
* T5-XXL Text Encoderで使用するトークンの最大長を指定します。SD3のデフォルトは`256`です。データセットのキャプション長に合わせて調整が必要な場合があります。
|
||||
* `--apply_lg_attn_mask`
|
||||
* CLIP-LおよびCLIP-Gの出力に対して、パディングトークンに対応するアテンションマスク(ゼロ埋め)を適用します。
|
||||
* `--apply_t5_attn_mask`
|
||||
* T5-XXLの出力に対して、パディングトークンに対応するアテンションマスク(ゼロ埋め)を適用します。
|
||||
* `--clip_l_dropout_rate`, `--clip_g_dropout_rate`, `--t5_dropout_rate`:
|
||||
* 各Text Encoderの出力に対して、指定した確率でドロップアウト(出力をゼロにする)を適用します。過学習の抑制に役立つ場合があります。デフォルトは`0.0`(ドロップアウトなし)です。
|
||||
* `--pos_emb_random_crop_rate=<float>` **[SD3.5向け]**
|
||||
* MMDiTのPositional Embeddingに対してランダムクロップを適用する確率を指定します。[SD3.5M model card](https://huggingface.co/stabilityai/stable-diffusion-3.5-medium) で説明されています。デフォルトは`0.0`です。
|
||||
* `--enable_scaled_pos_embed` **[SD3.5向け]** **[実験的機能]**
|
||||
* マルチ解像度学習時に、解像度に応じてPositional Embeddingをスケーリングします。デフォルトは`False`です。通常は指定不要です。
|
||||
* `--training_shift=<float>`
|
||||
* 学習時のタイムステップ(ノイズレベル)の分布を調整するためのシフト値です。`weighting_scheme`に加えて適用されます。`1.0`より大きい値はノイズの大きい(構造寄り)領域を、小さい値はノイズの小さい(詳細寄り)領域を重視する傾向になります。デフォルトは`1.0`です。通常はデフォルト値で問題ありません。
|
||||
* `--weighting_scheme=<choice>`
|
||||
* 損失計算時のタイムステップ(ノイズレベル)に応じた重み付け方法を指定します。`sigma_sqrt`, `logit_normal`, `mode`, `cosmap`, `uniform` (または`none`) から選択します。SD3の論文では`sigma_sqrt`が使用されています。デフォルトは`uniform`です。通常はデフォルト値で問題ありません。
|
||||
* `--logit_mean`, `--logit_std`, `--mode_scale`:
|
||||
* `weighting_scheme`で`logit_normal`または`mode`を選択した場合に、その分布を制御するためのパラメータです。通常はデフォルト値で問題ありません。
|
||||
* `--t5xxl_max_token_length=<integer>` – T5-XXLで使用するトークンの最大長を指定します。デフォルトは`256`です。
|
||||
* `--apply_lg_attn_mask` – CLIP-L/CLIP-Gの出力にパディング用のマスクを適用します。
|
||||
* `--apply_t5_attn_mask` – T5-XXLの出力にパディング用のマスクを適用します。
|
||||
* `--clip_l_dropout_rate`, `--clip_g_dropout_rate`, `--t5_dropout_rate` – 各Text Encoderのドロップアウト率を指定します。デフォルトは`0.0`です。
|
||||
* `--pos_emb_random_crop_rate=<float>` **[SD3.5向け]** – Positional Embeddingにランダムクロップを適用する確率を指定します。
|
||||
* `--enable_scaled_pos_embed` **[SD3.5向け][実験的機能]** – マルチ解像度学習時に解像度に応じてPositional Embeddingをスケーリングします。
|
||||
* `--training_shift=<float>` – タイムステップ分布を調整するためのシフト値です。デフォルトは`1.0`です。
|
||||
* `--weighting_scheme=<choice>` – タイムステップに応じた損失の重み付け方法を指定します。デフォルトは`uniform`です。
|
||||
* `--logit_mean`, `--logit_std`, `--mode_scale` – `logit_normal`または`mode`使用時のパラメータです。
|
||||
|
||||
#### メモリ・速度関連
|
||||
|
||||
* `--blocks_to_swap=<integer>` **[実験的機能]**
|
||||
* VRAM使用量を削減するために、モデルの一部(MMDiTのTransformerブロック)をCPUとGPU間でスワップする設定です。スワップするブロック数を整数で指定します(例: `32`)。値を大きくするとVRAM使用量は減りますが、学習速度は低下します。GPUのVRAM容量に応じて調整してください。`gradient_checkpointing`と併用可能です。
|
||||
* `--cpu_offload_checkpointing`とは併用できません。
|
||||
* `--blocks_to_swap=<integer>` **[実験的機能]** – TransformerブロックをCPUとGPUでスワップしてVRAMを節約します。`--cpu_offload_checkpointing`とは併用できません。
|
||||
|
||||
#### 非互換・非推奨の引数
|
||||
|
||||
* `--v2`, `--v_parameterization`, `--clip_skip`: Stable Diffusion v1/v2特有の引数のため、SD3/3.5学習では使用されません。
|
||||
* `--v2`, `--v_parameterization`, `--clip_skip` – Stable Diffusion v1/v2向けの引数のため、SD3/3.5学習では使用されません。
|
||||
</details>
|
||||
|
||||
### 4.2. 学習の開始
|
||||
### 4.2. Starting Training / 学習の開始
|
||||
|
||||
After setting the required arguments, run the command to begin training. The overall flow and how to check logs are the same as in the [train_network.py guide](train_network.md#32-starting-the-training--学習の開始).
|
||||
|
||||
## 5. Using the Trained Model / 学習済みモデルの利用
|
||||
|
||||
When training finishes, a LoRA model file (e.g. `my_sd3_lora.safetensors`) is saved in the directory specified by `output_dir`. Use this file with inference environments that support SD3/3.5, such as ComfyUI.
|
||||
|
||||
## 6. Others / その他
|
||||
|
||||
`sd3_train_network.py` shares many features with `train_network.py`, such as sample image generation (`--sample_prompts`, etc.) and detailed optimizer settings. For these, see the [train_network.py guide](train_network.md#5-other-features--その他の機能) or run `python sd3_train_network.py --help`.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
必要な引数を設定し、コマンドを実行すると学習が開始されます。基本的な流れやログの確認方法は[`train_network.py`のガイド](train_network.md#32-starting-the-training--学習の開始)と同様です。
|
||||
|
||||
## 5. 学習済みモデルの利用
|
||||
|
||||
学習が完了すると、指定した`output_dir`にLoRAモデルファイル(例: `my_sd3_lora.safetensors`)が保存されます。このファイルは、SD3/3.5モデルに対応した推論環境(例: ComfyUIなど)で使用できます。
|
||||
|
||||
## 6. その他
|
||||
|
||||
`sd3_train_network.py`には、サンプル画像の生成 (`--sample_prompts`など) や詳細なオプティマイザ設定など、`train_network.py`と共通の機能も多く存在します。これらについては、[`train_network.py`のガイド](train_network.md#5-other-features--その他の機能)やスクリプトのヘルプ (`python sd3_train_network.py --help`) を参照してください。
|
||||
</details>
|
||||
|
||||
@@ -1,4 +1,86 @@
|
||||
ステータス:確認中
|
||||
Status: under review
|
||||
|
||||
# Advanced Settings: Detailed Guide for SDXL LoRA Training Script `sdxl_train_network.py` / 高度な設定: SDXL LoRA学習スクリプト `sdxl_train_network.py` 詳細ガイド
|
||||
|
||||
This document describes the advanced options available when training LoRA models for SDXL (Stable Diffusion XL) with `sdxl_train_network.py` in the `sd-scripts` repository. For the basics, please read [How to Use the LoRA Training Script `train_network.py`](train_network.md) and [How to Use the SDXL LoRA Training Script `sdxl_train_network.py`](sdxl_train_network.md).
|
||||
|
||||
This guide targets experienced users who want to fine tune settings in detail.
|
||||
|
||||
**Prerequisites:**
|
||||
|
||||
* You have cloned the `sd-scripts` repository and prepared a Python environment.
|
||||
* A training dataset and its `.toml` configuration are ready (see the dataset configuration guide).
|
||||
* You are familiar with running basic LoRA training commands.
|
||||
|
||||
## 1. Command Line Options / コマンドライン引数 詳細解説
|
||||
|
||||
`sdxl_train_network.py` inherits the functionality of `train_network.py` and adds SDXL-specific features. Major options are grouped and explained below. For common arguments, see the other guides mentioned above.
|
||||
|
||||
### 1.1. Model Loading
|
||||
|
||||
* `--pretrained_model_name_or_path="<model path>"` (required): specify the base SDXL model. Supports a Hugging Face model ID, a local Diffusers directory or a `.safetensors` file.
|
||||
* `--vae="<VAE path>"`: optionally use a different VAE.
|
||||
* `--no_half_vae`: keep the VAE in float32 even with fp16/bf16 training.
|
||||
* `--fp8_base` / `--fp8_base_unet`: **experimental** load the base model or just the U-Net in FP8 to reduce VRAM (requires PyTorch 2.1+).
|
||||
|
||||
### 1.2. Dataset Settings
|
||||
|
||||
* `--dataset_config="<path to config>"`: specify a `.toml` dataset config. High resolution data and aspect ratio buckets are common for SDXL. Bucket resolution steps must be multiples of 32.
|
||||
|
||||
### 1.3. Output and Saving
|
||||
|
||||
Options match `train_network.py`:
|
||||
|
||||
* `--output_dir`, `--output_name` (both required)
|
||||
* `--save_model_as` (recommended `safetensors`)
|
||||
* `--save_precision`, `--save_every_n_epochs`, `--save_every_n_steps`
|
||||
* `--save_last_n_epochs`, `--save_last_n_steps`
|
||||
* `--save_state`, `--save_state_on_train_end`, `--save_last_n_epochs_state`, `--save_last_n_steps_state`
|
||||
* `--no_metadata`
|
||||
* `--save_state_to_huggingface` and related options
|
||||
|
||||
### 1.4. Network Parameters (LoRA)
|
||||
|
||||
* `--network_module=networks.lora` and `--network_dim` (required)
|
||||
* `--network_alpha`, `--network_dropout`
|
||||
* `--network_args` allows advanced settings such as block-wise dims/alphas and LoRA+ options
|
||||
* `--network_train_unet_only` / `--network_train_text_encoder_only`
|
||||
* `--network_weights` and `--dim_from_weights`
|
||||
|
||||
### 1.5. Training Parameters
|
||||
|
||||
Includes options for learning rate, optimizer, scheduler, mixed precision, gradient accumulation, gradient checkpointing, fused backward pass, resume, and more. See `--help` for details.
|
||||
|
||||
### 1.6. Caching
|
||||
|
||||
Options to cache latents or text encoder outputs in memory or on disk to speed up training.
|
||||
|
||||
### 1.7. Sample Image Generation
|
||||
|
||||
Options to generate sample images periodically during training.
|
||||
|
||||
### 1.8. Logging & Tracking
|
||||
|
||||
TensorBoard and wandb logging related options.
|
||||
|
||||
### 1.9. Regularization and Advanced Techniques
|
||||
|
||||
Various options such as noise offset, multires noise, input perturbation, min-SNR weighting, loss type selection, and masked loss.
|
||||
|
||||
### 1.10. Distributed Training and Others
|
||||
|
||||
General options like random seed, max token length, clip skip, lowram/highvram, data loader workers, config files, and Accelerate/DeepSpeed settings.
|
||||
|
||||
## 2. Other Tips / その他のTips
|
||||
|
||||
Hints on reducing VRAM usage, appropriate learning rates, training time considerations and troubleshooting.
|
||||
|
||||
## 3. Conclusion / おわりに
|
||||
|
||||
`sdxl_train_network.py` offers many options to customize SDXL LoRA training. Refer to `--help`, other documents and the source code for further details.
|
||||
|
||||
<details>
|
||||
<summary>日本語</summary>
|
||||
|
||||
---
|
||||
|
||||
@@ -257,4 +339,7 @@ SDXLは計算コストが高いため、キャッシュ機能が効果的です
|
||||
|
||||
不明な点や詳細については、各スクリプトの `--help` オプションや、リポジトリ内の他のドキュメント、実装コード自体を参照してください。
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
Reference in New Issue
Block a user