@@ -26,7 +26,7 @@ def log_huggingface_whoami():
2626 except Exception as e :
2727 logger .error (f"❌ Unable to verify Hugging Face authentication: { e } " )
2828
29- def download_weights (repo_id : str , filenames : list [str ]):
29+ def download_weights (repo_id : str , filenames : list [str ], revision : str | None = None ):
3030 log_huggingface_whoami ()
3131 # Create destination path
3232 dest_dir = os .path .join ("models" , repo_id .replace ("/" , "_" ))
@@ -35,7 +35,11 @@ def download_weights(repo_id: str, filenames: list[str]):
3535 for filename in filenames :
3636 logger .info (f"📥 Downloading { filename } from { repo_id } on Hugging Face Hub..." )
3737 try :
38- path = hf_hub_download (repo_id = repo_id , filename = filename )
38+ path = hf_hub_download (
39+ repo_id = repo_id ,
40+ filename = filename ,
41+ revision = revision or None ,
42+ )
3943 # Move and rename
4044 dest_path = os .path .join (dest_dir , filename )
4145 shutil .copy (path , dest_path )
@@ -68,5 +72,10 @@ def download_weights(repo_id: str, filenames: list[str]):
6872 default = ["pytorch_model.bin" , "config.json" ],
6973 help = "List of filenames to download (space-separated)"
7074 )
75+ parser .add_argument (
76+ "--revision" ,
77+ default = None ,
78+ help = "Optional immutable model revision/commit to pin downloads"
79+ )
7180 args = parser .parse_args ()
72- download_weights (args .repo_id , args .filenames )
81+ download_weights (args .repo_id , args .filenames , args . revision )
0 commit comments