154 lines
4.5 KiB
Python
154 lines
4.5 KiB
Python
"""
|
||
兼容层:从 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
|
||
|
||
|