hafriedlander / stable-diffusion-grpcserver

An implementation of a server for the Stability AI Stable Diffusion API
Apache License 2.0
172 stars 23 forks source link

AttributeError: 'PNDMScheduler' object has no attribute 'set_format' #19

Closed jesse-lane-ai closed 1 year ago

jesse-lane-ai commented 1 year ago

Hi,

I'm trying to run your server from a Colab notebook. Getting this error:

Traceback (most recent call last): File "/usr/local/bin/sdgrpcserver", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.9/dist-packages/sdgrpcserver/server.py", line 99, in main manager = EngineManager(engines, enable_mps=args.enable_mps, vram_optimisation_level=args.vram_optimisation_level, nsfw_behaviour=args.nsfw_behaviour) File "/usr/local/lib/python3.9/dist-packages/sdgrpcserver/manager.py", line 210, in __init__ self.loadPipelines() File "/usr/local/lib/python3.9/dist-packages/sdgrpcserver/manager.py", line 267, in loadPipelines pipe=self.buildPipeline(engine) File "/usr/local/lib/python3.9/dist-packages/sdgrpcserver/manager.py", line 249, in buildPipeline pipeline=UnifiedPipeline.from_pretrained( File "/usr/local/lib/python3.9/dist-packages/diffusers/pipeline_utils.py", line 647, in from_pretrained model = pipeline_class(**init_kwargs) File "/usr/local/lib/python3.9/dist-packages/sdgrpcserver/pipeline/unified_pipeline.py", line 94, in __init__ scheduler = scheduler.set_format("pt") AttributeError: 'PNDMScheduler' object has no attribute 'set_format'

Looking through Diffusers issues I saw that back in September they changed how their schedulers function. And I read your reply that you simply pointed your functions to use the older scheduler_utils.py.

Any insight is appreciated.

jesse-lane-ai commented 1 year ago

I "fixed" this error by rolling back Diffusers to 0.3.0.

hafriedlander commented 1 year ago

Hi. As you've discovered, in general grpcserver will only work with the exact version of Diffusers that's in the pyproject.toml (because they keep changing the APIs). LMK if you find some version where that isn't true.