              value.
          """
          retval: Dict[Literal["a", "b"], Generator[BatchType, None, None]] = {}
          for side in get_args(Literal["a", "b"]):
              logger.debug("Setting preview feed: (side: '%s')", side)
              preview_images = min(max(num_images, 2), 16)
              batchsize = min(len(self._images[side]), preview_images)
              retval[side] = self._load_generator(side,
 
</s> remove             preview_images = int(self._config.get("preview_images", 14))
            preview_images = min(max(preview_images, 2), 16)
 </s> add             preview_images = min(max(num_images, 2), 16) </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"] = {} </s> remove               config: Optional["ConfigType"] = None,
 </s> add               config: Optional[Dict[str, "ConfigValueType"]] = None,
        num_images = self._config.get("preview_images", 14)
        assert isinstance(num_images, int)
              value.
          """
          retval: Dict[Literal["a", "b"], Generator[BatchType, None, None]] = {}
        num_images = self._config.get("preview_images", 14)
        assert isinstance(num_images, int)
          for side in get_args(Literal["a", "b"]):
              logger.debug("Setting preview feed: (side: '%s')", side)
              preview_images = min(max(num_images, 2), 16)
              batchsize = min(len(self._images[side]), preview_images)
              retval[side] = self._load_generator(side,
keep 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