Эх сурвалжийг харах

allow generation to be started with any dimensions specified

AUTOMATIC1111 1 жил өмнө
parent
commit
d67348a0a5

+ 3 - 0
modules/models/sd3/sd3_model.py

@@ -75,3 +75,6 @@ class SD3Inferencer(torch.nn.Module):
 
 
     def add_noise_to_latent(self, x, noise, amount):
     def add_noise_to_latent(self, x, noise, amount):
         return x * (1 - amount) + noise * amount
         return x * (1 - amount) + noise * amount
+
+    def fix_dimensions(self, width, height):
+        return width // 16 * 16, height // 16 * 16

+ 3 - 0
modules/processing.py

@@ -884,6 +884,9 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
         if p.refiner_checkpoint_info is None:
         if p.refiner_checkpoint_info is None:
             raise Exception(f'Could not find checkpoint with name {p.refiner_checkpoint}')
             raise Exception(f'Could not find checkpoint with name {p.refiner_checkpoint}')
 
 
+    if hasattr(shared.sd_model, 'fix_dimensions'):
+        p.width, p.height = shared.sd_model.fix_dimensions(p.width, p.height)
+
     p.sd_model_name = shared.sd_model.sd_checkpoint_info.name_for_extra
     p.sd_model_name = shared.sd_model.sd_checkpoint_info.name_for_extra
     p.sd_model_hash = shared.sd_model.sd_model_hash
     p.sd_model_hash = shared.sd_model.sd_model_hash
     p.sd_vae_name = sd_vae.get_loaded_vae_name()
     p.sd_vae_name = sd_vae.get_loaded_vae_name()