# Buat dataset untuk pelatihan

Terdapat banyak dataset di [Hub](https://huggingface.co/datasets?task_categories=task_categories:text-to-image&sort=downloads) untuk melatih model, tetapi jika Anda tidak menemukan dataset yang Anda minati atau ingin menggunakan dataset Anda sendiri, Anda dapat membuat dataset dengan pustaka 🤗 [Datasets](https://huggingface.co/docs/datasets). Struktur dataset bergantung pada tugas yang ingin Anda latih pada model Anda. Struktur dataset paling dasar adalah direktori berisi gambar untuk tugas seperti generasi gambar tanpa syarat. Struktur dataset lainnya mungkin berupa direktori berisi gambar dan file teks yang berisi caption teks yang sesuai untuk tugas seperti generasi gambar dari teks.

Panduan ini akan menunjukkan dua cara untuk membuat dataset untuk finetuning:

- menyediakan folder berisi gambar ke argumen `--train_data_dir`
- unggah dataset ke Hub dan lewati id repositori dataset ke argumen `--dataset_name`

> [!TIP]
> 💡 Pelajari lebih lanjut tentang cara membuat dataset gambar untuk pelatihan dalam panduan [Membuat dataset gambar](https://huggingface.co/docs/datasets/image_dataset).

## Sediakan dataset sebagai folder

Untuk generasi tanpa syarat, Anda dapat menyediakan dataset Anda sendiri sebagai folder berisi gambar. Skrip pelatihan menggunakan builder [`ImageFolder`](https://huggingface.co/docs/datasets/en/image_dataset#imagefolder) dari 🤗 Datasets untuk secara otomatis membangun dataset dari folder tersebut. Struktur direktori Anda harus seperti ini:

```bash
data_dir/xxx.png
data_dir/xxy.png
data_dir/[...]/xxz.png
```

Lewatkan path ke direktori dataset ke argumen `--train_data_dir`, lalu Anda dapat memulai pelatihan:

```bash
accelerate launch train_unconditional.py \
    --train_data_dir <path-to-train-directory> \
    <other-arguments>
```

## Unggah data Anda ke Hub

> [!TIP]
> 💡 Untuk detail dan konteks lebih lanjut tentang membuat dan mengunggah dataset ke Hub, lihat postingan [Image search with 🤗 Datasets](https://huggingface.co/blog/image-search-datasets).

Mulai dengan membuat dataset menggunakan fitur [`ImageFolder`](https://huggingface.co/docs/datasets/image_load#imagefolder), yang membuat kolom `image` berisi gambar yang dikodekan PIL.

Anda dapat menggunakan parameter `data_dir` atau `data_files` untuk menentukan lokasi dataset. Parameter `data_files` mendukung pemetaan file tertentu ke split dataset seperti `train` atau `test`:

```python
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"]}
)
```

Lalu gunakan metode [push_to_hub](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset.push_to_hub) untuk mengunggah dataset ke Hub:

```python
# 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)
```

Sekarang dataset tersedia untuk pelatihan dengan meneruskan nama dataset ke argumen `--dataset_name`:

```bash
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>
```

## Langkah selanjutnya

Sekarang setelah Anda membuat dataset, Anda dapat memasukkannya ke dalam argumen `train_data_dir` (jika dataset Anda bersifat lokal) atau `dataset_name` (jika dataset Anda ada di Hub) dari skrip pelatihan.

Untuk langkah selanjutnya, silakan coba gunakan dataset Anda untuk melatih model untuk [generasi tanpa syarat](unconditional_training) atau [generasi teks-ke-gambar](text2image)!

