Spaces:
Configuration error
Configuration error
File size: 2,094 Bytes
aebc1d4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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) |