|
|
|
|
|
import os |
|
import sys |
|
import subprocess |
|
import argparse |
|
from pathlib import Path |
|
|
|
def run_command(command): |
|
print(f"Running: {command}") |
|
process = subprocess.Popen(command, shell=True) |
|
process.wait() |
|
if process.returncode != 0: |
|
print(f"Command failed: {command}") |
|
sys.exit(1) |
|
|
|
def main(): |
|
parser = argparse.ArgumentParser(description="Setup NeuroNest project") |
|
parser.add_argument("--download", action="store_true", help="Download checkpoint") |
|
args = parser.parse_args() |
|
|
|
|
|
dirs = ["app", "utils", "utils/contrast", "configs", "data"] |
|
for dir_path in dirs: |
|
os.makedirs(dir_path, exist_ok=True) |
|
|
|
if args.download: |
|
|
|
checkpoint_dir = "data/oneformer_ade20k_swin_large" |
|
if not os.path.exists(checkpoint_dir): |
|
print(f"Creating checkpoint directory: {checkpoint_dir}") |
|
os.makedirs(checkpoint_dir, exist_ok=True) |
|
|
|
if not os.path.exists(f"{checkpoint_dir}/model_final.pth"): |
|
print("Downloading OneFormer ADE20K checkpoint...") |
|
|
|
if subprocess.call("which git-lfs", shell=True, stdout=subprocess.DEVNULL) == 0: |
|
run_command("git lfs install") |
|
run_command(f"git clone https://huggingface.co/shi-labs/oneformer_ade20k_swin_large {checkpoint_dir}") |
|
else: |
|
|
|
run_command("pip install huggingface_hub") |
|
run_command(f"python -c \"from huggingface_hub import snapshot_download; snapshot_download('shi-labs/oneformer_ade20k_swin_large', local_dir='{checkpoint_dir}')\"") |
|
|
|
print("✅ Setup complete!") |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|