@Szabolcs I may be barking up the wrong tree, but here goes: A while ago I dealt with a similar issue when assigning colors to the 6-membered mult. tbl for S3. To brief things down, Josef Albers (en.wikipedia.org/wiki/Josef_Albers) may be of use.
@Szabolcs In image processing something similar is used in the farthest point segmentation. It is basically simple: You use a metric color space. Start with a random color and select then a color that is as far away as possible in the color-space. The third color needs to be the one that is the farthest away from both points and so on.
Although Solve method is clearly not optimal, I think it shows how avoiding explicit usage of brute force (exhaustive search) is quite plausible and can make much larger queries easy to implement: mathematica.stackexchange.com/a/161022/3056
I was a bit pessimistic on Solve on this, but I guess some sort of Diophantine equation solver helps a lot in this case.
Sometimes it seems solutions to similar problems are really found only by exhaustive search through all discrete candidates...
Is there an image processing functions that can increase/decrease saturation, like in an image processing program?
I can convert to a colour space like HSB and scale the second channel. Is there any other way? It doesn't really matter how it's done precisely. It's only for aesthetic purposes.