Intriguing and nice writeup. This however tries to encode all the hidden painter's knowledge. Would it be easier to generate realistic images from paintings and use these pairs to finetune an image generation model?
yogthos•Aug 5, 2026
You can already use genAI to do similar things. The whole point, however, was to see what I could do using traditional techniques. The other benefit is that it's something you can run locally without needing a lot of resources, and have full control over the shape of the output. You can also combine this with generative models, and have a model generate a picture, then have this repaint it. Ultimately the point was to have some fun and play around with combining these techniques.
jszymborski•Aug 5, 2026
From the article
> In the days of generative image models, it's still fun to see what can be achieved using traditional image transformation techniques.
> But the really fun part of the project was in combining a number of techniques, such as Perlin noise, wavelets, and edge detection, that I played around with previously in isolation. All these different tricks came together for this project, making it possible to build something greater than the sum of its parts. I find these are the most rewarding types of experiments where you can build on things you've previously learned and combine them in novel ways to make something new and unexpected. I hope you enjoyed the journey as much as I did working on the project.
shen•Aug 5, 2026
I’d suggest for the examples to pick images that are not mostly bokeh.
yogthos•Aug 5, 2026
I used my own photos for the input, I find images with the subject isolated to be more visually pleasing, hence most of my photos are in this style. But there wouldn't be any difference to the algorithm if the image was full of detail as you can see with my photo of Hong Kong at the end.
claiir•Aug 5, 2026
Very cool
yogthos•Aug 5, 2026
Thanks, it was a really fun thread to pull on. :)
jszymborski•Aug 5, 2026
Super impressive results, and an awesome write up. Thanks :)
yogthos•Aug 5, 2026
Glad you liked it!
mkaic•Aug 5, 2026
I investigated a gradient-descent-based concept adjacent to this back in like 2023 [0] inspired by the original 3DGS paper, I was pretty happy with the results I got with back-to-front alpha-blending and polar-coordinate gaussians for variable-curvature brush strokes. One of these days I should add another example gif to the repo besides just the Mona Lisa one that's currently there, but that's the only one I've got at the moment unfortunately.
Neat, watching it paint as an animation is pretty fun.
swiftcoder•Aug 5, 2026
The effect looks decent in the foreground of some pictures, particularly the wolf and the cat. It really exaggerates the depth of field in the background, though, and those areas feel like someone ran a posterise after a blur, rather than brush strokes. Might just be a side effect of the author's predilection for bokeh, I guess. The Tokyo shot looks good throughout.
yogthos•Aug 5, 2026
It was more of a stylistic choice on my part. I could add more layers to flesh out background details. And it's Hong Kong actually. :)
6 Comments
> In the days of generative image models, it's still fun to see what can be achieved using traditional image transformation techniques.
> But the really fun part of the project was in combining a number of techniques, such as Perlin noise, wavelets, and edge detection, that I played around with previously in isolation. All these different tricks came together for this project, making it possible to build something greater than the sum of its parts. I find these are the most rewarding types of experiments where you can build on things you've previously learned and combine them in novel ways to make something new and unexpected. I hope you enjoyed the journey as much as I did working on the project.
[0] https://github.com/mkaic/painterbot