                              default=False,
                              help="Writes the training result to a file even on preview mode.")
          parser = self.add_optional_arguments(parser)
          parser.set_defaults(func=self.process_arguments)
  
      def add_optional_arguments(self, parser):
          # Override this for custom arguments
          return parser
 
</s> remove                 for name, image in self.preview_buffer.items():
                    cv2.imshow(name, image)

                key = cv2.waitKey(1000)
                if key == ord('\n') or key == ord('\r'):
 </s> add                 try:
                    for name, image in self.preview_buffer.items():
                        cv2.imshow(name, image)

                    key = cv2.waitKey(1000)
                    if key == ord('\n') or key == ord('\r'):
                        break
                    if key == ord('s'):
                        self.save_now = True
                except KeyboardInterrupt: </s> remove         variant = "Original" # TODO Pass as argument
        
 </s> add  </s> remove         model = PluginLoader.get_model(variant)(self.arguments.model_dir)
 </s> add         model = PluginLoader.get_model(self.arguments.trainer)(self.arguments.model_dir) </s> remove         trainer = PluginLoader.get_trainer(variant)(model, images_A, images_B)
 </s> add         trainer = PluginLoader.get_trainer(self.arguments.trainer)(model,
                                                                   images_A,
                                                                   images_B,
                                                                   batch_size=self.arguments.batch_size)
        parser.add_argument('-t', '--trainer',
                            type=str, choices=("Original","LowMem"),
                            default="Original",
                            help="Select which trainer to use, LowMem for cards < 2gb.")
        parser.add_argument('-bs', '--batch-size',
                            type=int,
                            default=64,
                            help="Batch size, as a power of 2 (64, 128, 256, etc)")
                              default=False,
                              help="Writes the training result to a file even on preview mode.")
        parser.add_argument('-t', '--trainer',
                            type=str, choices=("Original","LowMem"),
                            default="Original",
                            help="Select which trainer to use, LowMem for cards < 2gb.")
        parser.add_argument('-bs', '--batch-size',
                            type=int,
                            default=64,
                            help="Batch size, as a power of 2 (64, 128, 256, etc)")
          parser = self.add_optional_arguments(parser)
          parser.set_defaults(func=self.process_arguments)
  
      def add_optional_arguments(self, parser):
          # Override this for custom arguments
          return parser
keep add keep keep keep keep keep keep
 added batch-size cli argumet.
neatened up train.py and added LowMem trainer option.
Added save_now/show key to preview. 
scripts/train.py