Implementation:Huggingface Diffusers DreamBooth Args
| Knowledge Sources | |
|---|---|
| Domains | |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
The argument parsing configuration for DreamBooth LoRA training, implemented as the parse_args function. This pattern defines all command-line parameters that control instance data paths, class data paths, prompt templates, prior preservation settings, and training hyperparameters for DreamBooth personalization.
Description
The parse_args function uses Python's argparse module to define the full configuration surface for DreamBooth LoRA fine-tuning. It groups parameters into several logical categories:
- Instance data configuration --
--instance_data_dir(required),--instance_prompt(required) define the subject images and prompt template. - Class data configuration --
--class_data_dir,--class_prompt,--num_class_imagesdefine prior preservation data. - Prior preservation --
--with_prior_preservation(flag),--prior_loss_weightcontrol regularization. - Model selection --
--pretrained_model_name_or_path(required),--revision,--variantselect the base model. - Training hyperparameters -- learning rate, batch size, epochs, gradient accumulation, LoRA rank, etc.
- Validation --
--validation_prompt,--num_validation_images,--validation_epochs.
The function enforces validation constraints: when --with_prior_preservation is set, both --class_data_dir and --class_prompt are required. It also prevents conflicting flags such as --train_text_encoder with --pre_compute_text_embeddings.
Usage
Invoke as part of the DreamBooth LoRA training script entry point:
from examples.dreambooth.train_dreambooth_lora import parse_args
args = parse_args()
# or with explicit arguments for testing:
args = parse_args(input_args=["--pretrained_model_name_or_path", "runwayml/stable-diffusion-v1-5",
"--instance_data_dir", "./my_dog",
"--instance_prompt", "a photo of sks dog"])
Code Reference
Source Location
- Repository:
huggingface/diffusers - File:
examples/dreambooth/train_dreambooth_lora.py(lines 214--565)
Signature
def parse_args(input_args=None) -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Simple example of a training script.")
parser.add_argument("--pretrained_model_name_or_path", type=str, required=True, ...)
parser.add_argument("--instance_data_dir", type=str, required=True, ...)
parser.add_argument("--instance_prompt", type=str, required=True, ...)
parser.add_argument("--class_data_dir", type=str, default=None, ...)
parser.add_argument("--class_prompt", type=str, default=None, ...)
parser.add_argument("--with_prior_preservation", default=False, action="store_true", ...)
parser.add_argument("--prior_loss_weight", type=float, default=1.0, ...)
parser.add_argument("--num_class_images", type=int, default=100, ...)
parser.add_argument("--rank", type=int, default=4, ...)
parser.add_argument("--train_text_encoder", action="store_true", ...)
# ... additional arguments for resolution, lr, optimizer, etc.
if input_args is not None:
args = parser.parse_args(input_args)
else:
args = parser.parse_args()
return args
Import
import argparse
I/O Contract
Inputs
| Name | Type | Default | Description |
|---|---|---|---|
input_args |
Optional[List[str]] | None |
Optional list of argument strings. When None, reads from sys.argv.
|
--instance_data_dir |
str | (required) | Path to folder containing instance (subject) images. |
--instance_prompt |
str | (required) | Text prompt with identifier token, e.g., "a photo of sks dog".
|
--class_data_dir |
str | None |
Path to folder containing class-prior images. Required when --with_prior_preservation is set.
|
--class_prompt |
str | None |
Generic class prompt, e.g., "a photo of dog". Required when --with_prior_preservation is set.
|
--with_prior_preservation |
bool | False |
Flag to enable prior preservation loss during training. |
--num_class_images |
int | 100 |
Minimum number of class images for prior preservation. Additional images are generated if needed. |
--prior_loss_weight |
float | 1.0 |
Weighting factor for the prior preservation loss term. |
--rank |
int | 4 |
Dimension of the LoRA update matrices. |
--sample_batch_size |
int | 4 |
Batch size for sampling class images during prior image generation. |
Outputs
| Name | Type | Description |
|---|---|---|
| return | argparse.Namespace |
Parsed argument namespace containing all configuration values for the DreamBooth training run. |
Usage Examples
Example 1: Basic DreamBooth LoRA without Prior Preservation
accelerate launch train_dreambooth_lora.py \
--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5" \
--instance_data_dir="./data/my_dog" \
--instance_prompt="a photo of sks dog" \
--output_dir="./output/dreambooth-lora" \
--resolution=512 \
--train_batch_size=4 \
--learning_rate=5e-4 \
--max_train_steps=400 \
--rank=4
Example 2: DreamBooth LoRA with Prior Preservation
accelerate launch train_dreambooth_lora.py \
--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5" \
--instance_data_dir="./data/my_dog" \
--instance_prompt="a photo of sks dog" \
--class_data_dir="./data/dog_class" \
--class_prompt="a photo of dog" \
--with_prior_preservation \
--prior_loss_weight=1.0 \
--num_class_images=200 \
--output_dir="./output/dreambooth-lora-prior" \
--resolution=512 \
--train_batch_size=4 \
--learning_rate=5e-4 \
--max_train_steps=800 \
--rank=4 \
--train_text_encoder