Architecture
SD3/SD3.5 use the MMDiT (Multimodal Diffusion Transformer) architecture:- MMDiT — replaces the UNet. Processes both image and text representations jointly in a bidirectional attention framework, enabling tighter image-text alignment.
- Three text encoders — all three run in parallel; their outputs are pooled and concatenated:
- CLIP-L — OpenAI CLIP ViT-L/14.
- CLIP-G — OpenCLIP ViT-G/14.
- T5-XXL — large language model encoder for long, complex prompts.
- VAE — not compatible with SDXL’s VAE.
Versions
Required model files
SD3 and SD3.5 models are distributed in two formats: Single-file format (recommended): A single.safetensors file containing the MMDiT, all text encoders, and the VAE. When you provide this file via --pretrained_model_name_or_path, the individual component paths (--clip_l, --clip_g, --t5xxl, --vae) are detected automatically.
Separate files: If you have individual component files, specify each path explicitly:
Available training methods
LoRA training
Usesd3_train_network.py with --network_module=networks.lora_sd3:
SD3.5-specific options
SD3.5 adds two extra parameters for positional embedding handling during multi-resolution training:--pos_emb_random_crop_rate=<float>— probability of randomly cropping the positional embedding. Helps the model generalize across resolutions.--enable_scaled_pos_embed(experimental) — scales positional embeddings to match training resolution. Use when training at multiple resolutions.
Per-layer LoRA rank control
You can set different LoRA ranks for each component of the MMDiT using--network_args:
0 disables LoRA for that layer. The verbose=True flag prints the effective rank for each layer during training.
You can also apply LoRA to the conditioning layers with emb_dims (six values, one per layer):
context_embedder, t_embedder, x_embedder, y_embedder, final_layer_adaLN_modulation, final_layer_linear.
Selective block training
Usetrain_block_indices to restrict which MMDiT blocks receive LoRA updates:
all to train all blocks (default) or none to train no blocks.
Memory and speed options
Key training parameters
Incompatible options
The following arguments are for SD 1.x/2.x and must not be used with SD3/SD3.5:--v2,--v_parameterization,--clip_skip
