              for epoch in range(0, 1000000):
  
                  save_iteration = epoch % self.arguments.save_interval == 0
  
                  trainer.train_one_step(epoch, self.show if save_iteration else None)
  
                  if save_iteration:
                      model.save_weights()
  
                  if self.stop:
 
</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) </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         print("[%s] [#%d] loss_A: %f, loss_B: %f"  % (time.strftime("%H:%M:%S"), iter, loss_A, loss_B))
 </s> add         print("[{0}] [#{1:05d}] loss_A: {2:.5f}, loss_B: {3:.5f}".format(time.strftime("%H:%M:%S"), iter, loss_A, loss_B))

                trainer.train_one_step(epoch, self.show if (save_iteration or self.save_now) else None)
              for epoch in range(0, 1000000):
  
                  save_iteration = epoch % self.arguments.save_interval == 0
  
                trainer.train_one_step(epoch, self.show if (save_iteration or self.save_now) else None)
  
                  if save_iteration:
                      model.save_weights()
  
                  if self.stop:
keep keep keep keep 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