diff --git a/scripts/tilediffusion.py b/scripts/tilediffusion.py index 55aded2..18f7e32 100644 --- a/scripts/tilediffusion.py +++ b/scripts/tilediffusion.py @@ -423,7 +423,7 @@ class Script(scripts.Script): flag_noise_inverse = hasattr(p, "init_images") and len(p.init_images) > 0 and noise_inverse if flag_noise_inverse: - print('warn: noise inversion only supports the Euler sampler, switch to it sliently...') + print('warn: noise inversion only supports the "Euler" sampler, switch to it sliently...') name = 'Euler' p.sampler_name = 'Euler' if name is None: print('>> name is empty') @@ -457,16 +457,18 @@ class Script(scripts.Script): self.delegate = delegate - info = ( - f"{method.value} hooked into {name!r} sampler, " + - f"Tile size: {tile_width}x{tile_height}, " + - f"Tile batches: {len(self.delegate.batched_bboxes)}, " + - f"Batch size: {tile_batch_size}." - ) + info = ' '.join([ + f"{method.value} hooked into {name!r} sampler," + + f"Tile size: {delegate.tile_h}x{delegate.tile_w}," + + f"Tile count: {delegate.num_tiles}," + + f"Batch size: {delegate.tile_bs}," + + f"Tile batches: {len(delegate.batched_bboxes)}." + ]) exts = [ - f"NoiseInv" if flag_noise_inverse else None, - f"RegionCtrl" if enable_bbox_control else None, - f"ContrlNet" if self.controlnet_script else None, + "NoiseInv" if flag_noise_inverse else None, + "RegionCtrl" if enable_bbox_control else None, + "ContrlNet" if self.controlnet_script else None, + "StableSR" if self.stablesr_script else None, ] ext_info = ', '.join([e for e in exts if e]) if ext_info: ext_info = f' (ext: {ext_info})' diff --git a/tile_methods/abstractdiffusion.py b/tile_methods/abstractdiffusion.py index 96d484a..2ec7ed4 100644 --- a/tile_methods/abstractdiffusion.py +++ b/tile_methods/abstractdiffusion.py @@ -53,6 +53,8 @@ class AbstractDiffusion: self.enable_grid_bbox: bool = False self.tile_w: int = None self.tile_h: int = None + self.tile_bs: int = None + self.num_tiles: int = None self.num_batches: int = None self.batched_bboxes: List[List[BBox]] = [] @@ -187,9 +189,10 @@ class AbstractDiffusion: # weights basically indicate how many times a pixel is painted bboxes, weights = split_bboxes(self.w, self.h, self.tile_w, self.tile_h, overlap, self.get_tile_weights()) self.weights += weights - self.num_batches = math.ceil(len(bboxes) / tile_bs) - BS = math.ceil(len(bboxes) / self.num_batches) # optimal_batch_size - self.batched_bboxes = [bboxes[i*BS:(i+1)*BS] for i in range(self.num_batches)] + self.num_tiles = len(bboxes) + self.num_batches = math.ceil(self.num_tiles / tile_bs) + self.tile_bs = math.ceil(len(bboxes) / self.num_batches) # optimal_batch_size + self.batched_bboxes = [bboxes[i*self.tile_bs:(i+1)*self.tile_bs] for i in range(self.num_batches)] @grid_bbox def get_tile_weights(self) -> Union[Tensor, float]: