Diffusers documentation
学習用のデータセットを作成します
学習用のデータセットを作成します
Hub にはモデルの学習に使用できる多くのデータセットが公開されていますが、興味のあるデータセットが見つからない場合や、独自のデータセットを使用したい場合は、🤗 Datasets ライブラリを使ってデータセットを作成できます。データセットの構造は、モデルを学習させたいタスクによって異なります。最も基本的なデータセットの構造は、無条件画像生成などのタスクにおける画像のディレクトリです。別のデータセットの構造としては、テキストから画像を生成するなどのタスクにおいて、画像のディレクトリとそれに対応するテキストキャプションを含むテキストファイルがあります。
このガイドでは、ファインチューニング用のデータセットを作成する2つの方法をご紹介します。
--train_data_dir引数に画像のフォルダを指定します- Hub にデータセットをアップロードし、データセットのリポジトリ ID を
--dataset_name引数に渡します
💡 学習用の画像データセットの作成方法については、画像データセットの作成ガイドを参照してください。
フォルダとしてデータセットを提供する
無条件生成を行う場合、画像のフォルダとして独自のデータセットを指定できます。学習スクリプトは、🤗 Datasets の ImageFolder ビルダーを使用して、フォルダから自動的にデータセットを構築します。ディレクトリ構造は次のようにしてください。
data_dir/xxx.png data_dir/xxy.png data_dir/[...]/xxz.png
--train_data_dir 引数にデータセットのディレクトリへのパスを渡し、トレーニングを開始できます。
accelerate launch train_unconditional.py \
--train_data_dir <path-to-train-directory> \
<other-arguments>データを Hub にアップロードする
💡 Hub へのデータセットの作成とアップロードに関する詳細な情報や背景については、Image search with 🤗 Datasets の投稿をご覧ください。
ImageFolder機能を使用してデータセットを作成することから始めます。この機能は、PILエンコードされた画像を含むimage列を作成します。
data_dir または data_files パラメータを使用して、データセットの場所を指定できます。data_files パラメータは、train や test などのデータセットの分割に特定のファイルをマッピングすることをサポートしています:
from datasets import load_dataset
# example 1: local folder
dataset = load_dataset("imagefolder", data_dir="path_to_your_folder")
# example 2: local files (supported formats are tar, gzip, zip, xz, rar, zstd)
dataset = load_dataset("imagefolder", data_files="path_to_zip_file")
# example 3: remote files (supported formats are tar, gzip, zip, xz, rar, zstd)
dataset = load_dataset(
"imagefolder",
data_files="https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip",
)
# example 4: providing several splits
dataset = load_dataset(
"imagefolder", data_files={"train": ["path/to/file1", "path/to/file2"], "test": ["path/to/file3", "path/to/file4"]}
)次に、push_to_hub メソッドを使用して、データを Hub にアップロードします:
# assuming you have ran the hf auth login command in a terminal
dataset.push_to_hub("name_of_your_dataset")
# if you want to push to a private repo, simply pass private=True:
dataset.push_to_hub("name_of_your_dataset", private=True)これにより、--dataset_name 引数にデータセット名を渡すことで、データセットが学習に利用可能になります。
accelerate launch --mixed_precision="fp16" train_text_to_image.py \
--pretrained_model_name_or_path="stable-diffusion-v1-5/stable-diffusion-v1-5" \
--dataset_name="name_of_your_dataset" \
<other-arguments>次のステップ
データセットを作成したので、トレーニングスクリプトの train_data_dir(データセットがローカルにある場合)または dataset_name(データセットが Hub にある場合)引数に設定できます。
次のステップとして、無条件生成またはテキストから画像への生成のモデルを、ご自身のデータセットで訓練してみてください。
Update on GitHub