          self._action_command = tk.StringVar()
          self._generate_command = tk.StringVar()
          self._console_clear = tk.BooleanVar()
          self._refresh_graph = tk.BooleanVar()
          self._update_preview = tk.BooleanVar()
          self._analysis_folder = tk.StringVar()
  
          self._initialize_variables()
          logger.debug("Initialized %s", self.__class__.__name__)
  
 
</s> remove         modified = tk.DoubleVar()
        modified.set(None)

 </s> add  </s> remove     def __init__(self) -> None:
        logger.debug("Initializing %s", self.__class__.__name__)
        self._pathpreview = os.path.join(PATHCACHE, "preview")
        self._pathoutput: Optional[str] = None
        self._batch_mode = False
        self._previewoutput: Optional[Tuple[Image.Image, ImageTk.PhotoImage]] = None
        self._previewtrain: Dict[str, List[Union[Image.Image,
                                                 ImageTk.PhotoImage,
                                                 None,
                                                 float]]] = {}
        self._previewcache: Dict[str, Union[None, float, np.ndarray, List[str]]] = dict(
            modified=None,  # cache for extract and convert
            images=None,
            filenames=[],
            placeholder=None)
        self._errcount = 0
        self._icons = self._load_icons()
 </s> add     logger.debug("Getting images: '%s'", image_path)
    if not os.path.isdir(image_path):
        logger.debug("Folder does not exist")
        return []
    files = [os.path.join(image_path, f)
             for f in os.listdir(image_path) if f.lower().endswith((".png", ".jpg"))]
    logger.debug("Image files: %s", files)
    return files


class PreviewTrain():
    """ Handles the loading of the training preview image(s) and adding to the display buffer

    Parameters
    ----------
    cache_path: str
        Full path to the cache folder that contains the preview images
    """
    def __init__(self, cache_path: str) -> None:
        logger.debug("Initializing %s: (cache_path: '%s')", self.__class__.__name__, cache_path)
        self._buffer = PreviewBuffer()
        self._cache_path = cache_path
        self._modified: float = 0.0
        self._error_count: int = 0 </s> remove         self._set_key_bindings()
 </s> add         self._set_key_bindings(is_standalone) </s> remove         if is_standalone:
 </s> add         if self._is_standalone:
          self._action_command = tk.StringVar()
          self._generate_command = tk.StringVar()
          self._console_clear = tk.BooleanVar()
          self._refresh_graph = tk.BooleanVar()

          self._analysis_folder = tk.StringVar()
  
          self._initialize_variables()
          logger.debug("Initialized %s", self.__class__.__name__)
  
keep keep keep keep replace keep keep keep keep keep
 GUI - Preview updates
  - Training preview. Embed preview pop-out window
  - Bugfix - convert/extract previews 
lib/gui/utils/config.py