mirror of
https://github.com/vladmandic/automatic
synced 2026-09-20 01:31:13 +02:00
add new VAE encoding strategy during HR fix
This commit is contained in:
+12
-1
@@ -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
|
||||
|
||||
@@ -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() }),
|
||||
|
||||
Reference in New Issue
Block a user