          self.images: Dict[Literal["a", "b"], List[np.ndarray]] = {}
          self._coverage_ratio = coverage_ratio
          logger.debug("Initialized %s", self.__class__.__name__)
  
      def toggle_mask_display(self) -> None:
          """ Toggle the mask overlay on or off depending on user input. """
          if not (self._model.config["learn_mask"] or self._model.config["penalized_mask_loss"]):
 
</s> remove     def __init__(self, model: "ModelBase", coverage_ratio: float) -> None:
        logger.debug("Initializing %s: model: '%s', coverage_ratio: %s)",
                     self.__class__.__name__, model, coverage_ratio)
 </s> add     def __init__(self,
                 model: "ModelBase",
                 coverage_ratio: float,
                 mask_opacity: int,
                 mask_color: str) -> None:
        logger.debug("Initializing %s: model: '%s', coverage_ratio: %s, mask_opacity: %s, "
                     "mask_color: %s)",
                     self.__class__.__name__, model, coverage_ratio, mask_opacity, mask_color) </s> remove         if not self._config["penalized_mask_loss"] or int(self._config[f"{area}_multiplier"]) <= 1:
 </s> add         multiplier = self._config[f"{area}_multiplier"]
        assert isinstance(multiplier, int)
        if not self._config["penalized_mask_loss"] or multiplier <= 1: </s> remove         logger.trace("Loading latest preview")  # type:ignore
 </s> add         logger.trace("Loading latest preview")  # type:ignore[attr-defined] </s> remove         num_images = min(image_count, int(self._config.get("preview_images", 14)))
 </s> add         num_images = self._config.get("preview_images", 14)
        assert isinstance(num_images, int)
        num_images = min(image_count, num_images) </s> remove         self._config: Dict[str, Union[str, float, int, bool, None]] = {}
 </s> add         self._config: Dict[str, "ConfigValueType"] = {}
        self._mask_opacity = mask_opacity / 100.0
        self._mask_color = np.array(hex_to_rgb(mask_color))[..., 2::-1] / 255.
          self.images: Dict[Literal["a", "b"], List[np.ndarray]] = {}
          self._coverage_ratio = coverage_ratio
        self._mask_opacity = mask_opacity / 100.0
        self._mask_color = np.array(hex_to_rgb(mask_color))[..., 2::-1] / 255.
          logger.debug("Initialized %s", self.__class__.__name__)
  
      def toggle_mask_display(self) -> None:
          """ Toggle the mask overlay on or off depending on user input. """
          if not (self._model.config["learn_mask"] or self._model.config["penalized_mask_loss"]):
keep add keep keep keep keep keep
 Preview - Allow mask color/opacity configuration
  - typing: lib.config
  - docs: lib.config
  - bugfix: popup_configure - keep assets on top 
plugins/train/trainer/_base.py