diff --git a/scripts/tileglobal.py b/scripts/tileglobal.py index f7752b4..f1e0fe8 100644 --- a/scripts/tileglobal.py +++ b/scripts/tileglobal.py @@ -126,7 +126,7 @@ class Script(scripts.Script): def process(self, p: Processing, enabled: bool, method: str, - keep_input_size: bool, + keep_input_size: bool, window_size:int, overlap: int, tile_batch_size: int, scale_factor: float, noise_inverse: bool, noise_inverse_steps: int, noise_inverse_retouch: float, noise_inverse_renoise_strength: float, noise_inverse_renoise_kernel: int, @@ -146,7 +146,6 @@ class Script(scripts.Script): # store canvas size settings if hasattr(p, "init_images"): p.init_images_original_md = [img.copy() for img in p.init_images] - p.width_original_md = p.width p.height_original_md = p.height p.current_scale_num = 1 diff --git a/tile_methods/demofusion.py b/tile_methods/demofusion.py index 8bac7bd..758ccfe 100644 --- a/tile_methods/demofusion.py +++ b/tile_methods/demofusion.py @@ -285,7 +285,7 @@ class DemoFusion(AbstractDiffusion): current_num += len(bboxes) if current_num > (self.global_num_tiles//2) and (current_num-self.global_tile_bs) < (self.global_num_tiles//2): res = len(bboxes) - (current_num - self.global_num_tiles//2) - x_in_i = torch.cat([x_in[:,:,bbox[1]+jitter_range:end:self.p.current_scale_num,bbox[0]+jitter_range:end:self.p.current_scale_num] if idx (self.global_num_tiles//2): x_in_i = torch.cat([x_in_g[:,:,bbox[1]+jitter_range:end:self.p.current_scale_num,bbox[0]+jitter_range:end:self.p.current_scale_num] for bbox in bboxes],dim=0) else: @@ -345,7 +345,9 @@ class DemoFusion(AbstractDiffusion): def get_noise(self, x_in:Tensor, sigma_in:Tensor, cond_in:Dict[str, Tensor], step:int) -> Tensor: # NOTE: The following code is analytically wrong but aesthetically beautiful cond_in_original = cond_in.copy() - self.repeat_3 = True - - return self.sample_one_step_local(x_in, sigma_in, cond_in_original) + self.cosine_factor = 0.5 * (1 + torch.cos(torch.pi *torch.tensor(((self.p.current_step + 1) / (self.t_enc+1))))) + jitter_range = self.jitter_range + _,_,H,W = x_in.shape + x_in_ = F.pad(x_in,(jitter_range, jitter_range, jitter_range, jitter_range),'constant',value=0) + return self.sample_one_step(x_in_, sigma_in, cond_in_original)[:,:,jitter_range:jitter_range+H,jitter_range:jitter_range+W]