| from copy import deepcopy |
|
|
| import torch.nn as nn |
| from mmengine.registry import Registry |
|
|
|
|
| def build_module(module, builder, **kwargs): |
| """Build module from config or return the module itself. |
| |
| Args: |
| module (Union[dict, nn.Module]): The module to build. |
| builder (Registry): The registry to build module. |
| *args, **kwargs: Arguments passed to build function. |
| |
| Returns: |
| Any: The built module. |
| """ |
| if isinstance(module, dict): |
| cfg = deepcopy(module) |
| for k, v in kwargs.items(): |
| cfg[k] = v |
| return builder.build(cfg) |
| elif isinstance(module, nn.Module): |
| return module |
| elif module is None: |
| return None |
| else: |
| raise TypeError(f"Only support dict and nn.Module, but got {type(module)}.") |
|
|
|
|
| MODELS = Registry( |
| "model", |
| locations=["opensora.models"], |
| ) |
|
|
| SCHEDULERS = Registry( |
| "scheduler", |
| locations=["opensora.schedulers"], |
| ) |
|
|