add new VAE encoding strategy during HR fix

This commit is contained in:
cool-bigdogs-tshirt
2023-06-02 19:35:57 -05:00
parent 5f2bdba818
commit 3889e5a5b0
2 changed files with 13 additions and 1 deletions
+12 -1
View File
@@ -922,7 +922,18 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing):
decoded_samples = torch.from_numpy(np.array(batch_images))
decoded_samples = decoded_samples.to(shared.device)
decoded_samples = 2. * decoded_samples - 1.
samples = self.sd_model.get_first_stage_encoding(self.sd_model.encode_first_stage(decoded_samples))
if shared.opts.sd_vae_sliced_encode:
samples = torch.stack([
self.sd_model.get_first_stage_encoding(
self.sd_model.encode_first_stage(torch.unsqueeze(decoded_sample, 0))
)[0]
for decoded_sample
in decoded_samples
])
else:
samples = self.sd_model.get_first_stage_encoding(
self.sd_model.encode_first_stage(decoded_samples)
)
image_conditioning = self.img2img_image_conditioning(decoded_samples, samples)
shared.state.nextjob()
img2img_sampler_name = self.sampler_name
+1
View File
@@ -282,6 +282,7 @@ options_templates.update(options_section(('sd', "Stable Diffusion"), {
"sd_checkpoint_cache": OptionInfo(0, "Model checkpoints to cache in RAM", gr.Slider, {"minimum": 0, "maximum": 10, "step": 1}),
"sd_vae_checkpoint_cache": OptionInfo(0, "VAE checkpoints to cache in RAM", gr.Slider, {"minimum": 0, "maximum": 10, "step": 1}),
"sd_vae": OptionInfo("Automatic", "Select VAE", gr.Dropdown, lambda: {"choices": shared_items.sd_vae_items()}, refresh=shared_items.refresh_vae_list),
"sd_vae_sliced_encode": OptionInfo(False, "During HR fix, encode each image in a batch separately"),
"stream_load": OptionInfo(False, "When loading models attempt stream loading optimized for slow or network storage"),
"model_reuse_dict": OptionInfo(False, "When loading models attempt to reuse previous model dictionary"),
"cross_attention_optimization": OptionInfo(cross_attention_optimization_default, "Cross-attention optimization method", gr.Radio, lambda: {"choices": shared_items.list_crossattention() }),