1. A computer-implemented method for generating a color palette, the computer-implemented method comprising: under control of a hardware computing device configured with specific computer-executable instructions, obtaining a color image; obtaining a plurality of palette generation criteria applicable to generating a color palette, wherein the color palette is generated based, at least in part, on the color image; generating a plurality of palette candidates corresponding to the color image, wherein individual palette candidates of the plurality of palette candidates are generated based, at least in part, on distinct palette generation criteria of the plurality of palette generation criteria, wherein the individual palette candidates each include a plurality of palette colors derived from a plurality of representative colors associated with the color image; identifying a color palette from the plurality of palette candidates based, at least in part, on a relationship between an attribute associated with each of the plurality of palette candidates to a criterion of the plurality of palette generation criteria; and storing the identified color palette with associated metadata, wherein the associated metadata indicates a relationship between at least two palette colors of the plurality of palette colors as visually depicted in the color image.