fix console log to show the computed real tile settings

pull/356/head
Kahsolt 2023-10-18 11:38:34 +08:00
parent 64b32f8383
commit 56374bcbb0
2 changed files with 18 additions and 13 deletions

View File

@ -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})'

View File

@ -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]: