Skip to content

Conversation

@anujonthemove
Copy link

@anujonthemove anujonthemove commented May 13, 2025

This PR updates the build_sam2() function to use Hydra’s recommended initialize_config_dir() pattern, resolving configuration loading issues and enabling flexible, reusable model initialization.


Key Changes:

  • Replaces compose()-only approach with initialize_config_dir() to support loading configs from custom local paths (config_root).
  • Adds check and clearing of existing Hydra state to prevent GlobalHydra already initialized runtime errors.

📌 How can this help:

  • Custom Config Support:
    The original code assumed Hydra could locate the config via its default search path, which failed for local or container-mounted configs. This change enables users to explicitly specify the root directory for config files.

  • Hydra Reinitialization Error Fix:
    In scripts or interactive sessions (e.g., notebooks, demos), Hydra throws a GlobalHydra is already initialized error when reused. This patch handles such cases safely.

  • Improved Portability:
    The updated implementation ensures reliable config loading across environments, including containers, distributed jobs, and non-Hydra CLI contexts.

@anujonthemove anujonthemove changed the title fix: use initialize_config_dir to support custom Hydra config roots and prevent reinitialization errors Fix Hydra config loading to support custom config paths and prevent reinitialization errors May 13, 2025
@rentainhe rentainhe requested a review from Copilot May 13, 2025 06:28
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes Hydra config loading issues by using initialize_config_dir to support custom config paths and prevent reinitialization errors.

  • Implements proper Hydra initialization by clearing GlobalHydra state before configuration loading.
  • Adds a config_root parameter in build_sam2 for user-specified configuration directory paths.
  • Updates the demo script to match the new local configuration path structure.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
sam2/build_sam.py Refactors build_sam2 to use initialize_config_dir, clears GlobalHydra if already initialized, and adds a config_root parameter.
grounded_sam2_local_demo.py Updates SAM2_MODEL_CONFIG to reflect the new local config path format.
Comments suppressed due to low confidence (1)

sam2/build_sam.py:118

  • The variable 'config_file' is referenced in the compose() call but is not defined in the function signature. Consider adding 'config_file' as an explicit parameter to avoid potential runtime errors.
cfg = compose(config_name=config_file, overrides=hydra_overrides_extra)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant