Files
hfut-bishe/python_server/config_loader.py
2026-04-07 20:55:30 +08:00

154 lines
4.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
兼容层:从 Python 配置模块中构造 zoe_loader 需要的 ZoeConfig。
后端其它代码尽量只依赖这里的函数,而不直接依赖 config.py 的具体结构,
便于以后扩展。
"""
from model.Depth.zoe_loader import ZoeConfig
from model.Depth.depth_anything_v2_loader import DepthAnythingV2Config
from model.Depth.dpt_loader import DPTConfig
from model.Depth.midas_loader import MiDaSConfig
from config import AppConfig, DEFAULT_CONFIG
def load_app_config() -> AppConfig:
"""
当前直接返回 DEFAULT_CONFIG。
如未来需要支持多环境 / 覆盖配置,可以在这里加逻辑。
"""
return DEFAULT_CONFIG
def build_zoe_config_from_app(app_cfg: AppConfig | None = None) -> ZoeConfig:
"""
将 AppConfig.depth 映射为 ZoeConfig供 zoe_loader 使用。
如果未显式传入 app_cfg则使用全局 DEFAULT_CONFIG。
"""
if app_cfg is None:
app_cfg = load_app_config()
return ZoeConfig(
model=app_cfg.depth.zoe_model,
device=app_cfg.depth.device,
)
def build_depth_anything_v2_config_from_app(
app_cfg: AppConfig | None = None,
) -> DepthAnythingV2Config:
"""
将 AppConfig.depth 映射为 DepthAnythingV2Config。
"""
if app_cfg is None:
app_cfg = load_app_config()
return DepthAnythingV2Config(
encoder=app_cfg.depth.da_v2_encoder,
device=app_cfg.depth.device,
)
def build_dpt_config_from_app(app_cfg: AppConfig | None = None) -> DPTConfig:
if app_cfg is None:
app_cfg = load_app_config()
return DPTConfig(
model_type=app_cfg.depth.dpt_model_type,
device=app_cfg.depth.device,
)
def build_midas_config_from_app(app_cfg: AppConfig | None = None) -> MiDaSConfig:
if app_cfg is None:
app_cfg = load_app_config()
return MiDaSConfig(
model_type=app_cfg.depth.midas_model_type,
device=app_cfg.depth.device,
)
def get_depth_backend_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.depth.backend
def get_inpaint_backend_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.inpaint.backend
def get_sdxl_base_model_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.inpaint.sdxl_base_model
def get_controlnet_base_model_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.inpaint.controlnet_base_model
def get_controlnet_model_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.inpaint.controlnet_model
def get_animation_backend_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.backend
def get_animatediff_root_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.animate_diff_root
def get_animatediff_pretrained_model_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.pretrained_model_path
def get_animatediff_inference_config_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.inference_config
def get_animatediff_motion_module_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.motion_module
def get_animatediff_dreambooth_model_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.dreambooth_model
def get_animatediff_lora_model_from_app(app_cfg: AppConfig | None = None) -> str:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.lora_model
def get_animatediff_lora_alpha_from_app(app_cfg: AppConfig | None = None) -> float:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.lora_alpha
def get_animatediff_without_xformers_from_app(app_cfg: AppConfig | None = None) -> bool:
if app_cfg is None:
app_cfg = load_app_config()
return app_cfg.animation.without_xformers