# Flux LRM Architecture ## Data Path 1. Dataset returns pairwise examples: - caption - image_0, image_1 - preference labels label_0, label_1 - timestep tensor for each image in pair 2. Tokenization: - tokenizer -> input_ids for CLIP text encoder - tokenizer_2 -> input_ids_2 for T5 text encoder 3. Image preprocessing: - Resize/crop/normalize to model input resolution. ## Model Path 1. Text branch - CLIP text encoder produces pooled prompt embeddings. - T5 encoder produces sequence prompt embeddings. - Pooled CLIP output is projected to reward text embedding space. 2. Image branch - VAE encodes images into latent tensors. - Noise is sampled and mixed with latents using flow-style sigma schedule. - Latents are packed into Flux token format. - Flux transformer predicts token outputs conditioned on text embeddings. - Token outputs are pooled and projected to reward image embedding space. 3. Reward scoring - Normalize text/image embeddings. - Pairwise logits are computed with learnable temperature (logit_scale). - Criterion computes pairwise preference loss. ## Training Control - Task orchestrates train/eval loops and metric reporting. - Accelerator manages distributed setup, mixed precision, checkpointing. - Hydra config composes model/dataset/criterion/task/optimizer/scheduler groups. ## Notes - Flux schnell guidance is typically 0.0. - Dual text encoders are trainable by default (unless explicitly frozen).