Developer
2026
Generative Modeling, Model Implementation, Training
Python, PyTorch, DeepFloyd IF, Diffusers
Individual project
This project explores the DeepFloyd IF diffusion model through text-to-image generation, forward noising, denoising, iterative sampling, and classifier-free guidance.
The implementation choices, parameter sweeps, observations, and visual results below reflect the original report.
With random seed 88 and provided T5 prompt embeddings, I generated a walking building, a painting of the Colosseum, and desalination infrastructure occupied by flamingos. Each prompt is evaluated at 5, 20, and 100 inference steps.
Read each row from left to right as increasing denoising steps: 5, 20, then 100. Five steps produced muted or incomplete scenes; 20 improved coherence; and 100 gave the Colosseum more detail and gave the flamingo scene more architectural context. The walking-building prompt remained difficult at every setting.
The first-stage outputs establish the composition and semantic content before upsampling.









These are the corresponding stage-2 outputs, with stage 2 fixed at 20 steps.









The forward process adds scaled Gaussian noise to the Campanile test image. At t=250 the building remains recognizable; at t=500 it is severely degraded; and at t=750 it is close to pure noise.
Gaussian blur establishes why a classical baseline is insufficient: it softens low-noise inputs but cannot recover structure at higher noise levels. The DeepFloyd UNet one-step estimate is substantially better at t=250, but loses detail at t=500 and t=750. Iterative DDPM denoising, using strided timesteps from 990 to 0 with stride 30, progressively restores a sharper and more coherent image.

















Starting iterative denoising from pure noise produces recognizable but somewhat incoherent images. Classifier-free guidance (CFG) with γ=7 combines conditional and unconditional noise estimates, producing sharper, more coherent samples that better follow the prompt. The comparison below preserves both output sets.









