Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
renzhc
diffusers_dcu
Commits
02cdd683
Commit
02cdd683
authored
Jun 09, 2022
by
patil-suraj
Browse files
genric logic to get load method for custom model
parent
74d2da99
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
7 deletions
+14
-7
src/diffusers/pipeline_utils.py
src/diffusers/pipeline_utils.py
+14
-7
No files found.
src/diffusers/pipeline_utils.py
View file @
02cdd683
...
...
@@ -125,18 +125,25 @@ class DiffusionPipeline(ConfigMixin):
init_kwargs
=
{}
# get all importable classes to get the load method name for custom models/components
# here we enforce that custom models/components should always subclass from base classes in tansformers and diffusers
all_importable_classes
=
{}
for
library
in
LOADABLE_CLASSES
:
all_importable_classes
.
update
(
LOADABLE_CLASSES
[
library
])
for
name
,
(
library_name
,
class_name
)
in
init_dict
.
items
():
# if the model is not in diffusers or transformers, we need to load it from the hub
# assumes that it's a subclass of ModelMixin
if
library_name
==
module_candidate_name
:
class_obj
=
get_class_from_dynamic_module
(
cached_folder
,
module
,
class_name
,
cached_folder
)
load_method_name
=
"from_pretrained"
# since it's not from a library, we need to check class candidates for all importable classes
importable_classes
=
all_importable_classes
class_candidates
=
{
c
:
class_obj
for
c
in
all_importable_classes
}
else
:
importable_classes
=
LOADABLE_CLASSES
[
library_name
]
library
=
importlib
.
import_module
(
library_name
)
class_obj
=
getattr
(
library
,
class_name
)
importable_classes
=
LOADABLE_CLASSES
[
library_name
]
class_candidates
=
{
c
:
getattr
(
library
,
c
)
for
c
in
importable_classes
.
keys
()}
load_method_name
=
None
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment