Developer
2026
Generative Modeling, Image Editing, Experimentation
Python, PyTorch, DeepFloyd IF, Diffusers
Individual project
Built a set of image-editing workflows on DeepFloyd IF: SDEdit translation, mask-based inpainting, text-conditioned image editing, visual anagrams, and hybrid images.
The methods and experiment outcomes below preserve the original report.
SDEdit adds noise to an input image before denoising it. The i_start value determines the editing-versus-preservation tradeoff: lower values let the diffusion prior change the source more substantially, while higher values retain more of its original structure.
Within every sweep, read left to right as i_start = 1, 3, 5, 7, 10, and 20. The Campanile series shows the basic control. The web image and hand drawings show how non-photorealistic inputs are projected toward the model's natural-image manifold—dramatic at lower values and more source-faithful at higher values.
Six edits of the same photograph at progressively larger noise-start positions.






The first tile is the input; the remaining tiles are its six SDEdit outcomes.







Input drawing followed by the same six-step edit sweep.







A second drawing tests whether the behavior generalizes to a different sketch.







At each denoising step, pixels outside the mask are reset to the original image, leaving the diffusion model free to generate only the unknown region. The resulting content is constrained by both the surrounding image and the learned image prior. Each sequence is original image, mask, then inpainted result.









Text prompts guide SDEdit toward a new semantic target while i_start still controls structural preservation. The experiments use prompts such as “a drawing of a group of flamingos” and “a painting of the Colosseum.” Low values are dominated by the prompt; high values maintain more of the original image's structure.
Each six-image set is ordered left to right by i_start = 1, 3, 5, 7, 10, and 20, so the transition from prompt-driven to input-driven imagery is visible within a row.


















For visual anagrams, the UNet runs once on the normal image with one prompt and once on a vertically flipped image with a second prompt. The second noise estimate is flipped back and averaged with the first, allowing the image to resolve differently when rotated.
For hybrid images, two prompt-conditioned estimates are separated by frequency using Gaussian blur (kernel 33, σ=2). Low frequencies come from one prompt and high frequencies from the other, combining different identities across viewing scales.





