          self.samples = batch[0] if is_preview_iteration else None
          batch = batch[1:]   # Remove full size samples from batch
          if self.use_mask:
              batch = self.compile_mask(batch)
          self.target = batch[1] if is_preview_iteration else None
          return batch
  
      def compile_mask(self, batch):
          """ Compile the mask into training data """
          logger.trace("Compiling Mask: (side: '%s')", self.side)
 
</s> remove         self.samples = batch[0] if is_preview_iteration else None
 </s> add         self.samples = batch[0] if do_preview else None </s> remove     def get_next(self, is_preview_iteration):
 </s> add     def get_next(self, do_preview): </s> remove         batch = self.get_next(is_preview_iteration)
 </s> add         batch = self.get_next(do_preview) </s> remove         is_preview_iteration = False if viewer is None else True
 </s> add         do_preview = False if viewer is None else True
        do_timelapse = False if timelapse_kwargs is None else True </s> remove     def train_one_batch(self, is_preview_iteration):
 </s> add     def train_one_batch(self, do_preview):
        self.target = batch[1] if do_preview else None
          self.samples = batch[0] if is_preview_iteration else None
          batch = batch[1:]   # Remove full size samples from batch
          if self.use_mask:
              batch = self.compile_mask(batch)
        self.target = batch[1] if do_preview else None
          return batch
  
      def compile_mask(self, batch):
          """ Compile the mask into training data """
          logger.trace("Compiling Mask: (side: '%s')", self.side)
keep keep keep keep replace keep keep keep keep keep
 Minor FixedProducerDispatcher changes. Fix timelapse bug 
plugins/train/trainer/_base.py