Spaces:
Configuration error
Configuration error
| import requests | |
| from urllib.parse import urlparse | |
| from urllib.parse import parse_qs | |
| from modules.model_loader import load_file_from_url | |
| from modules.config import paths_checkpoints, path_loras | |
| def download_from_civitai(c_url): | |
| allowed_types = ['Checkpoint', 'LORA'] | |
| save_loactions = { | |
| 'Checkpoint': paths_checkpoints[0], | |
| 'LORA': path_loras | |
| } | |
| #c_url = "https://civitai.com/models/133005/juggernaut-xl" | |
| parsed_url = urlparse(c_url) | |
| model_id = parsed_url.path.split('/')[parsed_url.path.split('/').index('models') + 1] | |
| model_version_id = parse_qs(parsed_url.query).get('modelVersionId') | |
| url = "https://civitai.com/api/v1/models/" + model_id | |
| response = requests.get(url) | |
| if response.status_code != 200: | |
| raise RuntimeError('model not found') | |
| data = response.json() | |
| model_type = data.get('type') | |
| if model_type not in allowed_types: | |
| raise RuntimeError('model is not a checkpoint or LoRA') | |
| model_versions = data.get('modelVersions') | |
| selected_version = None | |
| if model_version_id: | |
| for model_version in model_versions: | |
| if str(model_version.get('id')) == model_version_id[0]: | |
| selected_version = model_version | |
| else: | |
| selected_version = model_versions[0] | |
| if selected_version is None: | |
| raise RuntimeError("this version doesn't exist") | |
| files = selected_version.get('files') | |
| primary_file = None | |
| for f in files: | |
| if f.get('primary'): | |
| primary_file = f | |
| download_url = primary_file.get('downloadUrl') | |
| filename = primary_file.get('name')+".1" | |
| model_name = data.get('name') | |
| selected_version_name = selected_version.get('name') | |
| print(f'downloading {model_name} ({model_type} version {selected_version_name})') | |
| print(f'from {download_url} to {save_loactions[model_type]}/{filename}') | |
| load_file_from_url( | |
| url=download_url, | |
| model_dir=save_loactions[model_type], | |
| file_name=filename | |
| ) | |
| return filename | |
| url = "https://civitai.com/models/128397" | |
| download_from_civitai(url) |