diff --git a/diffusers_holder.py b/diffusers_holder.py index f603ff5..c01e92c 100644 --- a/diffusers_holder.py +++ b/diffusers_holder.py @@ -43,16 +43,15 @@ class DiffusersHolder(): self.negative_prompt = "" self.guidance_scale = 5.0 self.num_inference_steps = 30 - + # Check if valid pipe self.pipe = pipe self.device = str(pipe._execution_device) self.init_types() - + self.width_latent = self.pipe.unet.config.sample_size self.height_latent = self.pipe.unet.config.sample_size - - + def init_types(self): assert hasattr(self.pipe, "__class__"), "No valid diffusers pipeline found." assert hasattr(self.pipe.__class__, "__name__"), "No valid diffusers pipeline found." @@ -65,29 +64,28 @@ class DiffusersHolder(): prompt_embeds = self.pipe._encode_prompt("test", self.device, 1, True) self.dtype = prompt_embeds.dtype - def set_num_inference_steps(self, num_inference_steps): self.num_inference_steps = num_inference_steps if self.use_sd_xl: self.pipe.scheduler.set_timesteps(self.num_inference_steps, device=self.device) - - def set_dimensions(self, width, height): + def set_dimensions(self, size_output): + width, height = size_output s = self.pipe.vae_scale_factor if width is None: - self.width_latent = self.pipe.unet.config.sample_size + self.width_latent = self.pipe.unet.config.sample_size self.width_img = self.width_latent * self.pipe.vae_scale_factor else: self.width_img = int(round(width / s) * s) self.width_latent = int(self.width_img / s) - + if height is None: - self.height_latent = self.pipe.unet.config.sample_size + self.height_latent = self.pipe.unet.config.sample_size self.height_img = self.width_latent * self.pipe.vae_scale_factor else: self.height_img = int(round(height / s) * s) self.height_latent = int(self.height_img / s) - + print(f"set_dimensions to width={width} and height={height}") def set_negative_prompt(self, negative_prompt): r"""Set the negative prompt. Currenty only one negative prompt is supported @@ -503,19 +501,6 @@ class DiffusersHolder(): else: return list_latents_out -#%% - -""" -steps: - x get controlnet vanilla running. - - externalize conditions - - have conditions as input (use one list) - - include latent blending - - test latent blending - - have lora and latent blending - -""" - #%% @@ -543,22 +528,4 @@ if __name__ == "__main__": - - # %% - - """ - OPEN - - rename text encodings to conditionings - - other examples - - kill upscaling? or keep? - - cleanup - - ldh - - sdh class - - diffusion holder - - check linting - - check docstrings - - fix readme - """ - - diff --git a/latent_blending.py b/latent_blending.py index 70b2811..57b16a4 100644 --- a/latent_blending.py +++ b/latent_blending.py @@ -107,15 +107,19 @@ class LatentBlending(): self.dt_per_diff = 0 self.spatial_mask = None self.lpips = lpips.LPIPS(net='alex').cuda(self.device) - + self.set_prompt1("") self.set_prompt2("") - - def set_dimensions(self, width=None, height=None): - self.dh.set_dimensions(width, height) - - + def set_dimensions(self, size_output=None): + r""" + sets the size of the output video. + Args: + size_output: tuple + width x height + Note: the size will get automatically adjusted to be divisable by 32. + """ + self.dh.set_dimensions(size_output) def set_guidance_scale(self, guidance_scale): r"""