Upload 3 files
Browse files- README.md +1 -1
- app.py +1 -1
- convert_repo_to_safetensors_gr.py +8 -7
README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
---
|
2 |
-
title: Convert diffusers SDXL repo to single Safetensors
|
3 |
emoji: 🐶
|
4 |
colorFrom: yellow
|
5 |
colorTo: red
|
|
|
1 |
---
|
2 |
+
title: Convert diffusers SDXL repo to single Safetensors V2
|
3 |
emoji: 🐶
|
4 |
colorFrom: yellow
|
5 |
colorTo: red
|
app.py
CHANGED
@@ -5,7 +5,7 @@ os.environ['HF_OUTPUT_REPO'] = 'John6666/safetensors_converting_test'
|
|
5 |
|
6 |
css = """"""
|
7 |
|
8 |
-
with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", css=css) as demo:
|
9 |
gr.Markdown(
|
10 |
f"""
|
11 |
- [A CLI version of this tool is available here](https://huggingface.co/spaces/John6666/convert_repo_to_safetensors/tree/main/local).
|
|
|
5 |
|
6 |
css = """"""
|
7 |
|
8 |
+
with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", fill_width=True, css=css, delete_cache=(60, 3600)) as demo:
|
9 |
gr.Markdown(
|
10 |
f"""
|
11 |
- [A CLI version of this tool is available here](https://huggingface.co/spaces/John6666/convert_repo_to_safetensors/tree/main/local).
|
convert_repo_to_safetensors_gr.py
CHANGED
@@ -21,13 +21,13 @@ def get_token():
|
|
21 |
token = ""
|
22 |
return token
|
23 |
|
24 |
-
def is_repo_exists(repo_id: str):
|
25 |
api = HfApi(token=get_token())
|
26 |
try:
|
27 |
-
if api.repo_exists(repo_id=repo_id): return True
|
28 |
else: return False
|
29 |
except Exception as e:
|
30 |
-
print(f"Error: Failed to connect {repo_id}. {e}")
|
31 |
return True # for safe
|
32 |
|
33 |
# =================#
|
@@ -356,6 +356,7 @@ def convert_diffusers_to_safetensors(model_path, checkpoint_path, dtype="fp16",
|
|
356 |
|
357 |
def download_repo(repo_id, dir_path, progress=gr.Progress(track_tqdm=True)):
|
358 |
try:
|
|
|
359 |
snapshot_download(repo_id=repo_id, local_dir=dir_path, token=get_token())
|
360 |
except Exception as e:
|
361 |
print(f"Error: Failed to download {repo_id}. {e}")
|
@@ -366,11 +367,11 @@ def upload_safetensors_to_repo(filename, repo_id, repo_type, is_private, progres
|
|
366 |
output_filename = Path(filename).name
|
367 |
api = HfApi(token=get_token())
|
368 |
try:
|
369 |
-
if not is_repo_exists(repo_id): api.create_repo(repo_id, repo_type=repo_type, private=is_private)
|
370 |
progress(0, desc="Start uploading...")
|
371 |
api.upload_file(path_or_fileobj=filename, path_in_repo=output_filename, repo_type=repo_type, repo_id=repo_id)
|
372 |
progress(1, desc="Uploaded.")
|
373 |
-
url
|
374 |
except Exception as e:
|
375 |
print(f"Error: Failed to upload to {repo_id}. {e}")
|
376 |
return None
|
@@ -391,11 +392,11 @@ def convert_repo_to_safetensors_multi(repo_id, hf_token, files, urls, dtype="fp1
|
|
391 |
if hf_token: HfFolder.save_token(hf_token)
|
392 |
else: HfFolder.save_token(os.environ.get("HF_TOKEN"))
|
393 |
if not newrepo_id: newrepo_id = os.environ.get("HF_OUTPUT_REPO")
|
394 |
-
file = convert_repo_to_safetensors(repo_id, dtype)
|
395 |
if not urls: urls = []
|
396 |
url = ""
|
397 |
if is_upload:
|
398 |
-
url = upload_safetensors_to_repo(file, newrepo_id, repo_type, is_private)
|
399 |
if url: urls.append(url)
|
400 |
md = ""
|
401 |
for u in urls:
|
|
|
21 |
token = ""
|
22 |
return token
|
23 |
|
24 |
+
def is_repo_exists(repo_id: str, repo_type: str="model"):
|
25 |
api = HfApi(token=get_token())
|
26 |
try:
|
27 |
+
if api.repo_exists(repo_id=repo_id, repo_type=repo_type): return True
|
28 |
else: return False
|
29 |
except Exception as e:
|
30 |
+
print(f"Error: Failed to connect {repo_id} ({repo_type}). {e}")
|
31 |
return True # for safe
|
32 |
|
33 |
# =================#
|
|
|
356 |
|
357 |
def download_repo(repo_id, dir_path, progress=gr.Progress(track_tqdm=True)):
|
358 |
try:
|
359 |
+
progress(0, desc="Start downloading...")
|
360 |
snapshot_download(repo_id=repo_id, local_dir=dir_path, token=get_token())
|
361 |
except Exception as e:
|
362 |
print(f"Error: Failed to download {repo_id}. {e}")
|
|
|
367 |
output_filename = Path(filename).name
|
368 |
api = HfApi(token=get_token())
|
369 |
try:
|
370 |
+
if not is_repo_exists(repo_id, repo_type): api.create_repo(repo_id, repo_type=repo_type, private=is_private)
|
371 |
progress(0, desc="Start uploading...")
|
372 |
api.upload_file(path_or_fileobj=filename, path_in_repo=output_filename, repo_type=repo_type, repo_id=repo_id)
|
373 |
progress(1, desc="Uploaded.")
|
374 |
+
url = hf_hub_url(repo_id=repo_id, repo_type=repo_type, filename=output_filename, token=get_token())
|
375 |
except Exception as e:
|
376 |
print(f"Error: Failed to upload to {repo_id}. {e}")
|
377 |
return None
|
|
|
392 |
if hf_token: HfFolder.save_token(hf_token)
|
393 |
else: HfFolder.save_token(os.environ.get("HF_TOKEN"))
|
394 |
if not newrepo_id: newrepo_id = os.environ.get("HF_OUTPUT_REPO")
|
395 |
+
file = convert_repo_to_safetensors(repo_id, dtype, progress)
|
396 |
if not urls: urls = []
|
397 |
url = ""
|
398 |
if is_upload:
|
399 |
+
url = upload_safetensors_to_repo(file, newrepo_id, repo_type, is_private, progress)
|
400 |
if url: urls.append(url)
|
401 |
md = ""
|
402 |
for u in urls:
|