ritpop commited on
Commit
94b1019
1 Parent(s): bddfa74

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -32
app.py CHANGED
@@ -1,13 +1,61 @@
1
  import os
 
 
 
 
 
 
 
 
 
2
  from sys import executable as pyexecutable
3
  import subprocess
4
  import pathlib
5
  import gc
 
 
 
6
 
7
- def Gitclone(URI:str,ClonePath:str = "") -> int :
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  if(ClonePath == "") :
9
  while True:
 
 
 
 
 
10
  i=subprocess.run([r"git",r"clone",URI])
 
 
 
 
11
  if(i.returncode == 0 ):
12
  del i
13
  gc.collect()
@@ -17,6 +65,13 @@ def Gitclone(URI:str,ClonePath:str = "") -> int :
17
  else:
18
  while True:
19
  i=subprocess.run([r"git",r"clone",URI,ClonePath])
 
 
 
 
 
 
 
20
  if(i.returncode == 0 ):
21
  del i
22
  gc.collect()
@@ -25,20 +80,24 @@ def Gitclone(URI:str,ClonePath:str = "") -> int :
25
  del i
26
  def DownLoad(URI:str,DownloadPath:str,DownLoadFileName:str ) -> int:
27
  while (True):
28
- i=subprocess.run([r"aria2c",r"-c",r"-x" ,r"16", r"-s",r"16", r"-k" ,r"1M" ,r"-m",r"0",r"--enable-mmap=false",r"--console-log-level=error",r"-d",DownloadPath,r"-o",DownLoadFileName,URI]);
29
- if(i.returncode == 0 ):
30
- del i
31
- gc.collect()
32
- return 0
33
- else :
34
- del i
 
 
 
 
35
  user_home =pathlib.Path.home().resolve()
36
  os.chdir(str(user_home))
37
  #clone stable-diffusion-webui repo
38
  print("cloning stable-diffusion-webui repo")
39
  Gitclone(r"https://github.com/AUTOMATIC1111/stable-diffusion-webui.git",str(user_home / r"stable-diffusion-webui"))
40
- os.chdir(str(user_home / r"stable-diffusion-webui"))
41
- os.system("git reset --hard 89f9faa63388756314e8a1d96cf86bf5e0663045")
42
  #
43
 
44
  #install extensions
@@ -49,31 +108,18 @@ DownLoad(r"https://huggingface.co/embed/upscale/resolve/main/4x-UltraSharp.pth",
49
  while True:
50
  if(subprocess.run([r"wget",r"https://raw.githubusercontent.com/camenduru/stable-diffusion-webui-scripts/main/run_n_times.py",r"-O",str(user_home / r"stable-diffusion-webui" / r"scripts" / r"run_n_times.py")]).returncode == 0):
51
  break
52
- #Gitclone(r"https://github.com/deforum-art/deforum-for-automatic1111-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"deforum-for-automatic1111-webui" ))
53
- #Gitclone(r"https://github.com/BlafKing/sd-civitai-browser-plus",str(user_home / r"stable-diffusion-webui" / r"extensions"/ r"sd-civitai-browser-plus"))
54
- Gitclone(r"https://github.com/camenduru/stable-diffusion-webui-huggingface",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-huggingface"))
55
- #Gitclone(r"https://github.com/bbc-mc/sdweb-merge-board",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sdweb-merge-board"))
56
- Gitclone(r"https://github.com/etherealxx/batchlinks-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"batchlinks-webui"))
57
- Gitclone(r"https://github.com/kohya-ss/sd-webui-additional-networks",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-additional-networks"))
58
- Gitclone(r"https://github.com/Akegarasu/sd-webui-model-converter",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-model-converter"))
59
- Gitclone(r"https://github.com/hako-mikan/sd-webui-supermerger",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-supermerger"))
60
- Gitclone(r"https://github.com/bbc-mc/sdweb-merge-block-weighted-gui",str(user_home / r"stable-diffusion-webui" / r"extensions"/ r"sdweb-merge-block-weighted-gui"))
61
-
62
- #Gitclone(r"https://github.com/Mikubill/sd-webui-controlnet",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-controlnet"))
63
- #Gitclone(r"https://github.com/fkunn1326/openpose-editor",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"openpose-editor"))
64
- Gitclone(r"https://github.com/jexom/sd-webui-depth-lib",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-depth-lib"))
65
- Gitclone(r"https://github.com/hnmr293/posex",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"posex"))
66
- #Gitclone(r"https://github.com/nonnonstop/sd-webui-3d-open-pose-editor",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-3d-open-pose-editor"))
67
- #中文本地化的请解除下一行的注释
68
- #Gitclone(r"https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN.git",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-localization-zh_CN"))
69
- #Gitclone(r"https://github.com/DominikDoom/a1111-sd-webui-tagcomplete.git" , str(user_home / r"stable-diffusion-webui" / r"extensions" / r"a1111-sd-webui-tagcomplete"))
70
- Gitclone(r"https://github.com/camenduru/sd-webui-tunnels",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-tunnels"))
71
  #Gitclone(r"https://github.com/etherealxx/batchlinks-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"batchlinks-webui"))
72
- Gitclone(r"https://github.com/catppuccin/stable-diffusion-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-catppuccin"))
 
 
 
 
73
 
 
 
 
74
  #Gitclone(r"https://github.com/KohakuBueleaf/a1111-sd-webui-locon",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"a1111-sd-webui-locon" ))
75
- #Gitclone(r"https://github.com/AUTOMATIC1111/stable-diffusion-webui-rembg",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-rembg"))
76
- #Gitclone(r"https://github.com/ashen-sensored/stable-diffusion-webui-two-shot",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-two-shot"))
77
  #Gitclone(r"https://github.com/camenduru/sd_webui_stealth_pnginfo",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd_webui_stealth_pnginfo"))
78
 
79
  os.chdir(user_home / r"stable-diffusion-webui")
 
1
  import os
2
+ if os.environ.get("SPACES_ZERO_GPU") is not None:
3
+ import spaces
4
+ else:
5
+ class spaces:
6
+ @staticmethod
7
+ def GPU(func):
8
+ def wrapper(*args, **kwargs):
9
+ return func(*args, **kwargs)
10
+ return wrapper
11
  from sys import executable as pyexecutable
12
  import subprocess
13
  import pathlib
14
  import gc
15
+ from huggingface_hub import hf_hub_download
16
+ import re
17
+ import urllib.parse
18
 
19
+ @spaces.GPU
20
+ def fake_gpu():
21
+ pass
22
+
23
+ def split_hf_url(url: str):
24
+ try:
25
+ s = list(re.findall(r'^(?:https?://huggingface.co/)(?:(datasets)/)?(.+?/.+?)/\w+?/.+?/(?:(.+)/)?(.+?.\w+)(?:\?download=true)?$', url)[0])
26
+ if len(s) < 4: return "", "", "", ""
27
+ repo_id = s[1]
28
+ repo_type = "dataset" if s[0] == "datasets" else "model"
29
+ subfolder = urllib.parse.unquote(s[2]) if s[2] else None
30
+ filename = urllib.parse.unquote(s[3])
31
+ return repo_id, filename, subfolder, repo_type
32
+ except Exception as e:
33
+ print(e)
34
+
35
+ def download_hf_file(directory, url):
36
+ repo_id, filename, subfolder, repo_type = split_hf_url(url)
37
+ try:
38
+ if subfolder is not None: hf_hub_download(repo_id=repo_id, filename=filename, subfolder=subfolder, repo_type=repo_type, local_dir=directory)
39
+ else: hf_hub_download(repo_id=repo_id, filename=filename, repo_type=repo_type, local_dir=directory)
40
+ print(f"Downloading: {url}")
41
+ return True
42
+ except Exception as e:
43
+ print(f"Failed to download: {e}")
44
+ return False
45
+
46
+ def Gitclone(URI:str,ClonePath:str = "",HASH:str = "") -> int :
47
  if(ClonePath == "") :
48
  while True:
49
+ try:
50
+ user_home =pathlib.Path.home().resolve()
51
+ os.chdir(str(user_home))
52
+ except Exception:
53
+ pass
54
  i=subprocess.run([r"git",r"clone",URI])
55
+ try:
56
+ if HASH: os.system(f"git reset --hard {HASH}")
57
+ except Exception:
58
+ pass
59
  if(i.returncode == 0 ):
60
  del i
61
  gc.collect()
 
65
  else:
66
  while True:
67
  i=subprocess.run([r"git",r"clone",URI,ClonePath])
68
+ try:
69
+ os.chdir(ClonePath)
70
+ if HASH: os.system(f"git reset --hard {HASH}")
71
+ user_home =pathlib.Path.home().resolve()
72
+ os.chdir(str(user_home))
73
+ except Exception:
74
+ pass
75
  if(i.returncode == 0 ):
76
  del i
77
  gc.collect()
 
80
  del i
81
  def DownLoad(URI:str,DownloadPath:str,DownLoadFileName:str ) -> int:
82
  while (True):
83
+ if "huggingface.co" in URI:
84
+ success=download_hf_file(DownloadPath, URI)
85
+ if success: return 0
86
+ else:
87
+ i=subprocess.run([r"aria2c",r"-c",r"-x" ,r"16", r"-s",r"16", r"-k" ,r"1M" ,r"-m",r"0",r"--enable-mmap=false",r"--console-log-level=error",r"-d",DownloadPath,r"-o",DownLoadFileName,URI]);
88
+ if(i.returncode == 0 ):
89
+ del i
90
+ gc.collect()
91
+ return 0
92
+ else :
93
+ del i
94
  user_home =pathlib.Path.home().resolve()
95
  os.chdir(str(user_home))
96
  #clone stable-diffusion-webui repo
97
  print("cloning stable-diffusion-webui repo")
98
  Gitclone(r"https://github.com/AUTOMATIC1111/stable-diffusion-webui.git",str(user_home / r"stable-diffusion-webui"))
99
+ #os.chdir(str(user_home / r"stable-diffusion-webui"))
100
+ #os.system("git reset --hard 89f9faa63388756314e8a1d96cf86bf5e0663045")
101
  #
102
 
103
  #install extensions
 
108
  while True:
109
  if(subprocess.run([r"wget",r"https://raw.githubusercontent.com/camenduru/stable-diffusion-webui-scripts/main/run_n_times.py",r"-O",str(user_home / r"stable-diffusion-webui" / r"scripts" / r"run_n_times.py")]).returncode == 0):
110
  break
111
+ #Gitclone(r"https://github.com/camenduru/stable-diffusion-webui-huggingface",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-huggingface"))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  #Gitclone(r"https://github.com/etherealxx/batchlinks-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"batchlinks-webui"))
113
+ #Gitclone(r"https://github.com/kohya-ss/sd-webui-additional-networks",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-additional-networks"))
114
+ #Gitclone(r"https://github.com/Akegarasu/sd-webui-model-converter",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-model-converter"))
115
+ ##Gitclone(r"https://github.com/hako-mikan/sd-webui-supermerger",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-supermerger"))
116
+ #Gitclone(r"https://github.com/tmzint/sd-webui-supermerger",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-supermerger"))
117
+ #Gitclone(r"https://github.com/bbc-mc/sdweb-merge-block-weighted-gui",str(user_home / r"stable-diffusion-webui" / r"extensions"/ r"sdweb-merge-block-weighted-gui"))
118
 
119
+ #Gitclone(r"https://github.com/camenduru/sd-webui-tunnels",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd-webui-tunnels"))
120
+ #Gitclone(r"https://github.com/etherealxx/batchlinks-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"batchlinks-webui"))
121
+ #Gitclone(r"https://github.com/catppuccin/stable-diffusion-webui",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"stable-diffusion-webui-catppuccin"))
122
  #Gitclone(r"https://github.com/KohakuBueleaf/a1111-sd-webui-locon",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"a1111-sd-webui-locon" ))
 
 
123
  #Gitclone(r"https://github.com/camenduru/sd_webui_stealth_pnginfo",str(user_home / r"stable-diffusion-webui" / r"extensions" / r"sd_webui_stealth_pnginfo"))
124
 
125
  os.chdir(user_home / r"stable-diffusion-webui")