Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Huggingface Diffusers DreamBooth Args

From Leeroopedia
Metadata
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_images define prior preservation data.
  • Prior preservation -- --with_prior_preservation (flag), --prior_loss_weight control regularization.
  • Model selection -- --pretrained_model_name_or_path (required), --revision, --variant select 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

Input Contract
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

Output Contract
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

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment