code: def sample_color(
      strategy: str, rng: np.random.RandomState = default_rng()
  ) -> Tuple[Optional[str], color.Color]:
      """Sample a random color according to a given strategy.
  
      Args:
        strategy (str): One of
        * "clevr": Sample one of the 8 colors used in the CLEVR dataset.
          (blue, brown, cyan, gray, green, purple, red, and yellow)
        * "uniform_hue": Sample a color with value and saturation equal to one and a random hue.
        * specific color name: Do not sample randomly; Instead return the requested color directly.
          Can be one of aqua, black, blue, fuchsia, green, gray, lime, maroon, navy, olive, purple,
          red, silver, teal, white, or yellow.
  
      """
      if strategy == "gray":
          return "gray", color.get_color("gray")
      elif strategy == "clevr":
          color_label = rng.choice(list(CLEVR_COLORS.keys()))
          return color_label, CLEVR_COLORS[color_label]
      elif strategy == "uniform_hue":
          return None, random_hue_color(rng=rng)
      else:
          raise ValueError(
              f"Unknown color sampling strategy {strategy}"
          )
  
file_path: kubric/kubric/randomness.py
imports: import numpy
  import pyquaternion
  from typing import Optional, Tuple
  from kubric.core import color
  from kubric.core import objects
label_desc: Use image node_id 9 for calling a global function with example usage: sample_color(strategy, rng) and returns: str,  color, color_label,  CLEVR_COLORS, None,  random_hue_color