diffusers-to-sd / hf_utils.py
Yntec's picture
Duplicate from diffusers/sd-to-diffusers
2c6a2ce
from huggingface_hub import get_hf_file_metadata, hf_hub_url, hf_hub_download, scan_cache_dir, whoami, list_models
def get_my_model_names(token):
try:
author = whoami(token=token)
model_infos = list_models(author=author["name"], use_auth_token=token)
return [model.modelId for model in model_infos], None
except Exception as e:
return [], e
def download_file(repo_id: str, filename: str, token: str):
"""Download a file from a repo on the Hugging Face Hub.
Returns:
file_path (:obj:`str`): The path to the downloaded file.
revision (:obj:`str`): The commit hash of the file.
"""
md = get_hf_file_metadata(hf_hub_url(repo_id=repo_id, filename=filename), token=token)
revision = md.commit_hash
file_path = hf_hub_download(repo_id=repo_id, filename=filename, revision=revision, token=token)
return file_path, revision
def delete_file(revision: str):
"""Delete a file from local cache.
Args:
revision (:obj:`str`): The commit hash of the file.
Returns:
None
"""
scan_cache_dir().delete_revisions(revision).execute()
def get_pr_url(api, repo_id, title):
try:
discussions = api.get_repo_discussions(repo_id=repo_id)
except Exception:
return None
for discussion in discussions:
if (
discussion.status == "open"
and discussion.is_pull_request
and discussion.title == title
):
return f"https://huggingface.co/{repo_id}/discussions/{discussion.num}"