Live data from Hacker News

Show HN: Colormind – Color schemes via Generative Adversarial Networks

colormind.io

41–50 of 55 posts

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#41
post #23

Earlier quoted context omitted.

I'm not 100% fond of the layout suggestions, but I have to admit there's a peaceful balance in them.

Yeah, statistical models just give you the most probable result (in terms of the data we train it on), so if you are a creative person, you probably won't find it useful.

Hmm, a model could also give you multiple very different designs to help you see more possibilities

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#42
post #26

Earlier quoted context omitted.

Good point, just blindly select several "harmonious" colors are not hard at all. But as some folks pointed out, if we want to also consider the context (where the colors will be used, is it a button? or background? or text?), deep learning is definitely a good fit.

Do you have any evidence that ML is a good fit? You seem so sure.

the choice of a CNN makes more sense if you think of a color palette as an extremely low-resolution image rather than a basket of colors.

positioning in a palette matters because colors are perceived relatively.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#43
post #42

Earlier quoted context omitted.

Do you have any evidence that ML is a good fit? You seem so sure.

the choice of a CNN makes more sense if you think of a color palette as an extremely low-resolution image rather than a basket of colors. positioning in a palette matters because colors are perceived relatively.

But all of this can be easily modeled statically and has been. If you desire randomized results, consult a PRNG. This is more, "ML is really cool, what can we apply it to," than "ML provides a better solution to this problem." IMHO.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#44
post #38

Earlier quoted context omitted.

My question as well. There are several other great implementations of a color pallet generator which use color theory rules. My bet is that the GAN, in this instance, boils down to little more than a pseudorandom number generator.

I think color theory alone isn't enough to produce good color palettes. eg. try going to https://color.adobe.com and choose one of the color rules, then go to https://color.adobe.com/explore and compare with user-contributed palettes. There's a huge difference imo. As for why a GAN specifically, I talk a bit about that in one of the blog posts. Neural nets trained with L1/L2 loss tend to produce "averaged" colors, du…

You could solve the averaging problem by applying the L1/L2 trained net to exponential color gradients rather than linear ones. By doing so you are telling the NN that humans care about exponential changes in color because that's how our eyes work. E.g. we notice if you double the amount of green but probably not if you just increment it.

I think there are rather simple solutions to these types of problems. But sometimes everything looks like a nail.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#46
post #38

Earlier quoted context omitted.

My question as well. There are several other great implementations of a color pallet generator which use color theory rules. My bet is that the GAN, in this instance, boils down to little more than a pseudorandom number generator.

I think color theory alone isn't enough to produce good color palettes. eg. try going to https://color.adobe.com and choose one of the color rules, then go to https://color.adobe.com/explore and compare with user-contributed palettes. There's a huge difference imo. As for why a GAN specifically, I talk a bit about that in one of the blog posts. Neural nets trained with L1/L2 loss tend to produce "averaged" colors, du…

Why neural nets though? It seems like total overkill compared to simpler statistics.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#47
post #46
post #38

Earlier quoted context omitted.

I think color theory alone isn't enough to produce good color palettes. eg. try going to https://color.adobe.com and choose one of the color rules, then go to https://color.adobe.com/explore and compare with user-contributed palettes. There's a huge difference imo. As for why a GAN specifically, I talk a bit about that in one of the blog posts. Neural nets trained with L1/L2 loss tend to produce "averaged" colors, du…

Why neural nets though? It seems like total overkill compared to simpler statistics.

GANs are good at generating plausible images given a set of examples, which is exactly what we're doing here.

A statistical approach might work, but you'd be essentially interpolating your existing samples. A GAN is capable of generating novel solutions.

The crux of the issue is that despite just having 5 colors, the solution space is huge (256^15), and most of the search space is junk. The difficult part is identifying what looks good, and classically this is just called color theory. The problem is that color theory is a leaky abstraction that doesn't capture what intuitively "looks good" and is largely used as a starting point for ideas rather than something that gives useable palettes. Hence the popularity of user-submitted and curated sites like coolors and the old kuler site.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#48

sorry for the stupid question, but how do you "apply" color palettes? i mean, sure they look great as colorful columns, but how do you put them into UI? let say Bootstrap. i tried using 1st color for button, 2nd color for "success" label, etc. it ended up ugly.

You typically want to choose 1 or 2 of the colors to base 90% of the theme around, and then use use rest for accents. You usually can't just distribute them evenly or you'll end up with a mess.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#49
post #47
post #46

Earlier quoted context omitted.

Why neural nets though? It seems like total overkill compared to simpler statistics.

GANs are good at generating plausible images given a set of examples, which is exactly what we're doing here. A statistical approach might work, but you'd be essentially interpolating your existing samples. A GAN is capable of generating novel solutions. The crux of the issue is that despite just having 5 colors, the solution space is huge (256^15), and most of the search space is junk. The difficult part is identify…

You are right that 256^15 is a large search space. This number implies a 24bit color scheme.

    (2^24)^5 = 256^15
Many of the colors in the 2^24 range are similar which is why most of the linear search space is boring. Our eyes don't care much about #f67368 vs #f67468 but we do care about #f67368 vs #f6e668. Why?

  0x73 x 2 = 0xe6
Instead of blindly incrementing RGB color values, look at colors which differ by powers of 2. For example, choose 15 random values between 0 and 8. Let's call them c0 to c14. Then assign those numbers to your color pallet as 8-bit RGB values as follows.

    Color0: R=2^c0, G=2^c1, B=2^c2
    . . .
    Color5: R=2^c12, G=2^c13, B=2^c14
Rounding 2^8 down to 255. You will find non-boring color schemes because the search space better fits how our eyes see color. This new search space is only 9^15 which is just less than 2^48, far less than 2^120 and a lot more interesting.

You could also search the HSV color space in this way and you don't have to only look at powers of two. Consider for, example powers of 1.25. The point is that by organizing your search, you will find interesting colors pallets easily.

I'm betting that your GANs already encode some sort of exponential search based on how you trained them vs your initial attempt using L1/L2.

Re: Show HN: Colormind – Color schemes via Generative Adversarial Networks

#50
post #23

Earlier quoted context omitted.

I'm not 100% fond of the layout suggestions, but I have to admit there's a peaceful balance in them.

Yeah, statistical models just give you the most probable result (in terms of the data we train it on), so if you are a creative person, you probably won't find it useful.

Sounds like it would be ideal for situations where you want the layout itself to be as neutral and out-of-the-way as possible, since these are judgement biased by normalisation.
Post reply on HN