27 lines
775 B
Python
27 lines
775 B
Python
import importlib
|
|
from functools import partialmethod
|
|
|
|
|
|
def instantiate_object(cls_path: str, *args, **kwargs):
|
|
class_ = get_class(cls_path, *args, **kwargs)
|
|
obj = class_()
|
|
return obj
|
|
|
|
|
|
def get_class(cls_path: str, *args, **kwargs):
|
|
module_name = ".".join(cls_path.split(".")[:-1])
|
|
module = importlib.import_module(module_name)
|
|
|
|
class_ = getattr(module, cls_path.split(".")[-1])
|
|
class_.__init__ = partialmethod(class_.__init__, *args, **kwargs)
|
|
return class_
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
class_ = get_class(
|
|
"diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteScheduler")
|
|
scheduler = class_.from_config("stabilityai/stable-diffusion-2-1",
|
|
subfolder="scheduler")
|
|
print(scheduler)
|