Update app.py
Browse files
app.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
-
import os
|
|
|
2 |
import sys
|
3 |
from dotenv import load_dotenv
|
4 |
from applio import *
|
@@ -7,11 +8,13 @@ sys.path.append(now_dir)
|
|
7 |
load_dotenv()
|
8 |
load_dotenv("sha256.env")
|
9 |
|
|
|
|
|
|
|
10 |
if sys.platform == "darwin":
|
11 |
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
|
12 |
|
13 |
from infer.modules.vc import VC, show_info, hash_similarity
|
14 |
-
from infer.modules.uvr5.modules import uvr
|
15 |
from infer.lib.train.process_ckpt import (
|
16 |
change_info,
|
17 |
extract_small_model,
|
@@ -799,6 +802,84 @@ def change_f0_method(f0method8):
|
|
799 |
return {"visible": visible, "__type__": "update"}
|
800 |
|
801 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
802 |
|
803 |
|
804 |
|
|
|
1 |
+
import os, shutil
|
2 |
+
import subprocess, glob
|
3 |
import sys
|
4 |
from dotenv import load_dotenv
|
5 |
from applio import *
|
|
|
8 |
load_dotenv()
|
9 |
load_dotenv("sha256.env")
|
10 |
|
11 |
+
|
12 |
+
|
13 |
+
|
14 |
if sys.platform == "darwin":
|
15 |
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
|
16 |
|
17 |
from infer.modules.vc import VC, show_info, hash_similarity
|
|
|
18 |
from infer.lib.train.process_ckpt import (
|
19 |
change_info,
|
20 |
extract_small_model,
|
|
|
802 |
return {"visible": visible, "__type__": "update"}
|
803 |
|
804 |
|
805 |
+
def show_available(filepath,format=None):
|
806 |
+
if format:
|
807 |
+
print(f"Format: {format}")
|
808 |
+
files = []
|
809 |
+
for file in os.listdir(filepath):
|
810 |
+
if file.endswith(format):
|
811 |
+
print(f"Matches format: {file}")
|
812 |
+
files.append(file)
|
813 |
+
else:
|
814 |
+
print(f"Does not match format: {file}")
|
815 |
+
print(f"Matches: {files}")
|
816 |
+
if len(files) < 1:
|
817 |
+
return ['']
|
818 |
+
return files
|
819 |
+
if len(os.listdir(filepath)) < 1:
|
820 |
+
return ['']
|
821 |
+
return os.listdir(filepath)
|
822 |
+
|
823 |
+
|
824 |
+
def download_from_url(url, model):
|
825 |
+
if model =='':
|
826 |
+
try:
|
827 |
+
model = url.split('/')[-1].split('?')[0]
|
828 |
+
except:
|
829 |
+
return "You need to name your model. For example: My-Model", {"choices":show_available("assets/weights"),"__type__":"update"}
|
830 |
+
url=url.replace('/blob/main/','/resolve/main/')
|
831 |
+
model=model.replace('.pth','').replace('.index','').replace('.zip','')
|
832 |
+
print(f"Model name: {model}")
|
833 |
+
if url == '':
|
834 |
+
return "URL cannot be left empty.", {"choices":show_available("assets/weights"),"__type__":"update"}
|
835 |
+
url = url.strip()
|
836 |
+
zip_dirs = ["zips", "unzips"]
|
837 |
+
for directory in zip_dirs:
|
838 |
+
if os.path.exists(directory):
|
839 |
+
shutil.rmtree(directory)
|
840 |
+
os.makedirs("zips", exist_ok=True)
|
841 |
+
os.makedirs("unzips", exist_ok=True)
|
842 |
+
zipfile = model + '.zip'
|
843 |
+
zipfile_path = './zips/' + zipfile
|
844 |
+
try:
|
845 |
+
if url.endswith('.pth'):
|
846 |
+
subprocess.run(["wget", url, "-O", f'./assets/weights/{model}.pth'])
|
847 |
+
return f"Sucessfully downloaded as {model}.pth", {"choices":show_available("assets/weights"),"__type__":"update"}
|
848 |
+
elif url.endswith('.index'):
|
849 |
+
if not os.path.exists(f'./logs/{model}'): os.makedirs(f'./logs/{model}')
|
850 |
+
subprocess.run(["wget", url, "-O", f'./logs/{model}/added_{model}.index'])
|
851 |
+
return f"Successfully downloaded as added_{model}.index", {"choices":show_available("assets/weights"),"__type__":"update"}
|
852 |
+
if "drive.google.com" in url:
|
853 |
+
subprocess.run(["gdown", url, "--fuzzy", "-O", zipfile_path])
|
854 |
+
elif "mega.nz" in url:
|
855 |
+
m = Mega()
|
856 |
+
m.download_url(url, './zips')
|
857 |
+
else:
|
858 |
+
subprocess.run(["wget", url, "-O", zipfile_path])
|
859 |
+
for filename in os.listdir("./zips"):
|
860 |
+
if filename.endswith(".zip"):
|
861 |
+
zipfile_path = os.path.join("./zips/",filename)
|
862 |
+
shutil.unpack_archive(zipfile_path, "./unzips", 'zip')
|
863 |
+
for root, dirs, files in os.walk('./unzips'):
|
864 |
+
for file in files:
|
865 |
+
file_path = os.path.join(root, file)
|
866 |
+
if file.endswith(".index"):
|
867 |
+
os.mkdir(f'./logs/{model}')
|
868 |
+
shutil.copy2(file_path,f'./logs/{model}')
|
869 |
+
elif "G_" not in file and "D_" not in file and file.endswith(".pth"):
|
870 |
+
shutil.copy(file_path,f'./assets/weights/{model}.pth')
|
871 |
+
elif filename.endswith(".pth"):
|
872 |
+
shutil.copy2(os.path.join("./zips/",filename),f'./assets/weights/{model}.pth')
|
873 |
+
elif filename.endswith(".index"):
|
874 |
+
os.mkdir(f'./logs/{model}')
|
875 |
+
shutil.copy2(os.path.join("./zips/",filename),f'./logs/{model}/')
|
876 |
+
else:
|
877 |
+
return "No zipfile found.", {"choices":show_available("assets/weights"),"__type__":"update"}
|
878 |
+
shutil.rmtree("zips")
|
879 |
+
shutil.rmtree("unzips")
|
880 |
+
return "Success.", {"choices":show_available("assets/weights"),"__type__":"update"}
|
881 |
+
except:
|
882 |
+
return "There's been an error.", {"choices":show_available("assets/weights"),"__type__":"update"}
|
883 |
|
884 |
|
885 |
|