Skip to content

Conversation

@rfan-debug
Copy link

Changes

  • Make enable/disable idempotent through an _enabled flag.

Existing issues

In the current code, if you call helper.enable() twice, it will fail into an infinite recursion as the following:

---------------------------------------------------------------------------
RecursionError                            Traceback (most recent call last)
Cell In[23], line 5
      3 helper.enable()
      4 # Generate Image
----> 5 deepcache_image = pipe(
      6     prompt,
      7     output_type='pt'
      8 ).images[0]

File [~/miniconda3/envs/ml-train/lib/python3.10/site-packages/torch/utils/_contextlib.py:116](http://localhost:8888/lab/tree/workspace/ai_experiments/miniconda3/envs/ml-train/lib/python3.10/site-packages/torch/utils/_contextlib.py#line=115), in context_decorator.<locals>.decorate_context(*args, **kwargs)
    113 @functools.wraps(func)
    114 def decorate_context(*args, **kwargs):
    115     with ctx_factory():
--> 116         return func(*args, **kwargs)

File [~/miniconda3/envs/ml-train/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py:1000](http://localhost:8888/lab/tree/workspace/ai_experiments/miniconda3/envs/ml-train/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py#line=999), in StableDiffusionPipeline.__call__(self, prompt, height, width, num_inference_steps, timesteps, sigmas, guidance_scale, negative_prompt, num_images_per_prompt, eta, generator, latents, prompt_embeds, negative_prompt_embeds, ip_adapter_image, ip_adapter_image_embeds, output_type, return_dict, cross_attention_kwargs, guidance_rescale, clip_skip, callback_on_step_end, callback_on_step_end_tensor_inputs, **kwargs)
    997 latent_model_input = self.scheduler.scale_model_input(latent_model_input, t)
    999 # predict the noise residual
-> 1000 noise_pred = self.unet(
   1001     latent_model_input,
   1002     t,
   1003     encoder_hidden_states=prompt_embeds,
   1004     timestep_cond=timestep_cond,
   1005     cross_attention_kwargs=self.cross_attention_kwargs,
   1006     added_cond_kwargs=added_cond_kwargs,
   1007     return_dict=False,
   1008 )[0]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant