civitaiarchive commited on
Commit
98f4346
·
1 Parent(s): e33603e

Add civitai-to-hf-uploader

Browse files
Files changed (1) hide show
  1. app.py +22 -3
app.py CHANGED
@@ -44,7 +44,14 @@ def get_files_by_username(username):
44
  for model in data['items']:
45
  for version in model['modelVersions']:
46
  for file in version['files']:
47
- output[str(model['id']) + '/' + str(version['id']) + '/' + file['name']] = file['downloadUrl']
 
 
 
 
 
 
 
48
 
49
  metadata = data.get('metadata', {})
50
  url = metadata.get('nextPage', None)
@@ -82,15 +89,27 @@ def process_url(url, profile, user_repo_id, oauth_token, folder):
82
  downloaded_files = {}
83
  total_files = len(files)
84
  current_file = 1
85
- for dl_path, download_url in files.items():
86
  try:
 
87
  filename = dl_path.split('/')[-1]
88
  gr.Info(f"Downloading {filename} ({current_file}/{total_files})")
89
  download_file(download_url, dl_path, folder)
90
  # Upload the model and card
91
  gr.Info(f"Uploading {filename} ({current_file}/{total_files})")
 
 
 
 
 
 
 
 
 
 
 
92
  upload_folder(
93
- folder_path=os.path.join(folder, os.path.dirname(dl_path)),
94
  repo_id=user_repo_id,
95
  repo_type="model",
96
  path_in_repo=os.path.dirname(dl_path),
 
44
  for model in data['items']:
45
  for version in model['modelVersions']:
46
  for file in version['files']:
47
+ output[str(model['id']) + '/' + str(version['id']) + '/' + file['name']] = {
48
+ 'downloadUrl': file['downloadUrl'],
49
+ 'modelId': model['name'] + ' - ' + version['name'],
50
+ 'modelUrl': f"https://civitai.com/models/{model['id']}?modelVersionId={version['id']}",
51
+ 'author': model['creator']['username'],
52
+ 'authorUrl': f"https://civitai.com/user/{model['creator']['username']}",
53
+ 'mirrorUrl': f"https://civitaiarchive.com/models/{model['id']}?modelVersionId={version['id']}",
54
+ }
55
 
56
  metadata = data.get('metadata', {})
57
  url = metadata.get('nextPage', None)
 
89
  downloaded_files = {}
90
  total_files = len(files)
91
  current_file = 1
92
+ for dl_path, data in files.items():
93
  try:
94
+ download_url = data['downloadUrl']
95
  filename = dl_path.split('/')[-1]
96
  gr.Info(f"Downloading {filename} ({current_file}/{total_files})")
97
  download_file(download_url, dl_path, folder)
98
  # Upload the model and card
99
  gr.Info(f"Uploading {filename} ({current_file}/{total_files})")
100
+ base_folder = os.path.join(folder, os.path.dirname(dl_path))
101
+
102
+ # Create README.md file
103
+ readme = f"""
104
+ Author: [{data['author']}]({data['authorUrl']})
105
+ Model: [{data['modelUrl']}]({data['modelUrl']})
106
+ Mirror: [{data['mirrorUrl']}]({data['mirrorUrl']})
107
+ """
108
+ with open(os.path.join(base_folder, "README.md"), "w") as f:
109
+ f.write(readme)
110
+
111
  upload_folder(
112
+ folder_path=base_folder,
113
  repo_id=user_repo_id,
114
  repo_type="model",
115
  path_in_repo=os.path.dirname(dl_path),