  
          if self.arguments.preview:
              print('Using live preview')
              while True:
                  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
          else:
              input() # TODO how to catch a specific key instead of Enter?
  
          print("Exit requested! The trainer will complete its current cycle, save the models and quit (it can take up a couple of seconds depending on your training speed). If you want to kill it now, press Ctrl + c")
 
</s> remove                 trainer.train_one_step(epoch, self.show if save_iteration else None)
 </s> add                 trainer.train_one_step(epoch, self.show if (save_iteration or self.save_now) else None) </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)
                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:
  
          if self.arguments.preview:
              print('Using live preview')
              while True:
                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:
                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:
                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:
                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:
                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:
                      break
          else:
              input() # TODO how to catch a specific key instead of Enter?
  
          print("Exit requested! The trainer will complete its current cycle, save the models and quit (it can take up a couple of seconds depending on your training speed). If you want to kill it now, press Ctrl + c")
keep keep keep keep replace replace replace replace replace 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