diffusers
diffusers copied to clipboard
DummyObjects are impeding PyCharm
I'm subclassing StableDiffusionPipeline (because it seems like that's the intended way to make a DiffusionPipeline that is still able to take advantage of StableDiffusionPipeline's methods to enable attention slicing, decode latents, etc.), and I've noticed a distinct lack of help from the IDE when it comes to attributes and arguments that I know this class has.
I think that's because when I hit "go to definition" of the StableDiffusionPipeline I'm using as a superclass, it brings me to this https://github.com/huggingface/diffusers/blob/0b7225e91852df668ce85a7f7a670c00272c9ed0/src/diffusers/utils/dummy_torch_and_transformers_objects.py#L127-L139
no defined arguments to the class __init__
, no indication that it's an ancestor of DiffusionPipeline, no __call__
method, none of the documentation or type hits that you've so diligently included in your code.
Should I be importing directly from the full path diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion.StableDiffusionPipeline
instead of diffusers.StableDiffusionPipeline
?
If so, please remove the diffusers.StableDiffusionPipeline
stunt double so that I'm not presented with two options when autocompleting and left to probably pick the wrong one.
If so, please remove the
diffusers.StableDiffusionPipeline
stunt double so that I'm not presented with two options when autocompleting and left to probably pick the wrong one.
It's actually worse than that, it seems PyCharm assumes the one higher-up in the namespace is the right one, why wouldn't it be? so it doesn't even give me the option of picking the right one. It's always the wrong one and I have to manually correct it.
+1, this negatively affects my performance as well :( The workaround I'm currently using is to provide an explicit type hint upon an instantiation of a pipeline:
So, it's not just me then? :P
Thanks for the issue! We should indeed look into this :-)
I'm not using PyCharm, but @anton-l @patil-suraj I think you've noticed similar problems?
Also cc @sgugger if I remember correctly we had a similar issue in transformers
a while back - do you remember how we fixed it? :-)
Found the transformers solution, didn't know it was already addressed there: https://github.com/huggingface/transformers/pull/16578 Assigning to myself as the only pycharm user on the team :sweat_smile:
Assigning to myself as the only pycharm user on the team 😅
The same thing happens to me in VSCode :) Happy to learn that there's a solution!
Yes, the PR mentioned above fixes all editors normally, and will make them point to the dummy objects when the framework is not installed, and the real ones when it is :-)
Should be fixed now, and scheduled for this week's release!