[diffusion][bugfix] Separate Diffusers hooks from model metadata (#6749)
Signed-off-by: david6666666 <530634352@qq.com> Signed-off-by: Gao Han <hgaoaf@connect.ust.hk> Co-authored-by: Gao Han <hgaoaf@connect.ust.hk>
This commit is contained in:
1 parent
73893e73ea
commit
9a88d2d21d
11 files changed
+232
-12
No files matched your search
@@ -685,6 +685,19 @@ def resolve_model_class_name(
|
||||
return None
|
||||
|
||||
|
||||
def uses_diffusers_adapter(od_config: object) -> bool:
|
||||
"""Return whether execution uses the Diffusers adapter backend.
|
||||
|
||||
A custom pipeline takes precedence over ``diffusion_load_format`` in the
|
||||
worker, so adapter-specific behavior must only apply when no custom
|
||||
pipeline override is configured.
|
||||
"""
|
||||
return (
|
||||
getattr(od_config, "custom_pipeline_args", None) is None
|
||||
and getattr(od_config, "diffusion_load_format", "default") == "diffusers"
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class OmniDiffusionConfig:
|
||||
# Model and path configuration (for convenience)
|
||||
@@ -1317,10 +1330,6 @@ class OmniDiffusionConfig:
|
||||
|
||||
from vllm_omni.diffusion.utils.hf_utils import get_diffusion_model_index
|
||||
|
||||
# Default model_class_name for diffusers adapter
|
||||
if self.model_class_name is None and self.diffusion_load_format == "diffusers":
|
||||
self.model_class_name = "DiffusersAdapterPipeline"
|
||||
|
||||
assert self.model is not None
|
||||
try:
|
||||
config_dict = get_diffusion_model_index(
|
||||
@@ -1330,6 +1339,8 @@ class OmniDiffusionConfig:
|
||||
if config_dict is not None:
|
||||
if self.model_class_name is None:
|
||||
self.model_class_name = config_dict.get("_class_name", None)
|
||||
if self.model_class_name is None and self.diffusion_load_format == "diffusers":
|
||||
self.model_class_name = "DiffusersAdapterPipeline"
|
||||
self.update_multimodal_support()
|
||||
|
||||
# Skip transformer config loading for diffusers adapter
|
||||
@@ -1370,6 +1381,8 @@ class OmniDiffusionConfig:
|
||||
# Skip transformer config loading for diffusers adapter
|
||||
# (non-DiT models don't have a separate transformer folder/config)
|
||||
if self.diffusion_load_format == "diffusers":
|
||||
if self.model_class_name is None:
|
||||
self.model_class_name = "DiffusersAdapterPipeline"
|
||||
self.set_tf_model_config(TransformerConfig())
|
||||
logger.warning(
|
||||
"Could not find a valid pipeline index per Diffusers format. "
|
||||
|
||||
Reference in new issue
Block a user