NightCafe Creator has been my side project for about 6 months. It's a PWA built with TypeScript, React, Next.js and Firebase; and the style transfer jobs run on Algorithmia.
There are plenty of neural style transfer apps online. Some of the features that set mine apart are:
- Multiple style images with relative weights
- Style masks - clip a style to a certain region of the content image
- Free image search built in (via Pexels)
- No signup required to create (uses Firebase's anonymous users)
There are still a lot of improvements to make - I want to improve and speed up the back end algorithm, add public user accounts and the ability to 'like' creations, along with a never-ending list of smaller things like pagination - which I've avoided adding thus far.
This is probably the most effort I've ever put into a side project. Would love to hear your thoughts and am happy to answer any questions.
I’ve been playing with this for several weeks now and it’s a lot of fun. I was always really intrigued by style transfer algorithms and thus was a great low-barrier way to play around with them.
Is there a way to rotate the original image after uploading? The image I tried originally uploaded sideways so it made doing the mask more difficult. I edited the photo on my phone to rotate it and resubmit it. (my phone didn't show me the photo needed to be adjusted until after I uploaded it)
Love the giraffe image. Although I wonder if your algorithm handles faces well.
There is a huge demand in Instagram for auto touchups. Like improved lighting, smoother skin, vibrant colors, convert to anime etc. Make amateur photos look like they’re taken by pros.
Very cool! I remember working on an evolutionary algorithm at one point to generate CSS versions of images using random fonts, positions and transforms. The results you've got here are very impressive.
Good job. Fun to experiment with!
Nice art works and slick experience. Some suggestions
1. While waiting for the art to be generated, get the user to do a hot-or-not between some existing art to get a better sense of what they like and then generate them something
2. Have a little more feedback on how much longer they'll need to wait while generating
3. Once generated, show the artwork framed and hanging somewhere not just the rendering
4. When a user kicks off a job, kick off a bunch in parallel using some other styles in case the style they pick really doesn't work well.