File size: 8,804 Bytes
2d4b648
 
 
 
 
 
c809148
 
2d4b648
c809148
2d4b648
c809148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import sys #line:1
import os #line:2
from IPython import get_ipython #line:3
from IPython .utils import capture #line:4
from IPython .display import clear_output #line:5
wb =f'/home/studio-lab-user/stable-diffusion-webui'#line:8
def gitDownload (O0O0OO0O00O00O0OO ,O0O00OO00O0O000OO ):#line:11
    if os .path .exists (O0O00OO00O0O000OO ):#line:12
        return #line:13
    get_ipython ().system (f'git clone {O0O0OO0O00O00O0OO} {O0O00OO00O0O000OO}')#line:15
def installAdditional ():#line:18
    OOO0O0O0000O0000O =['https://github.com/AlUlkesh/stable-diffusion-webui-images-browser','https://github.com/etherealxx/batchlinks-webui','https://github.com/camenduru/sd-civitai-browser','https://github.com/thomasasfk/sd-webui-aspect-ratio-helper','https://github.com/fkunn1326/openpose-editor','https://github.com/nonnonstop/sd-webui-3d-open-pose-editor','https://github.com/Physton/sd-webui-prompt-all-in-one','https://github.com/Bing-su/adetailer','https://github.com/picobyte/stable-diffusion-webui-wd14-tagger','https://github.com/Mikubill/sd-webui-controlnet','https://github.com/IDEA-Research/DWPose','https://github.com/Tencent/LightDiffusionFlow','https://github.com/continue-revolution/sd-webui-segment-anything','https://github.com/hanamizuki-ai/stable-diffusion-webui-localization-zh_Hans','https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111',]#line:59
    for OOOO00O0000O0OOOO in OOO0O0O0000O0000O :#line:60
        OO0O0OOOO0O0O0O0O =OOOO00O0000O0OOOO .split ('/')[-1 ]#line:62
        if 'github'in OOOO00O0000O0OOOO :#line:64
            get_ipython ().system (f'git clone --depth 1 {OOOO00O0000O0OOOO} {wb}/extensions/{OO0O0OOOO0O0O0O0O}')#line:65
    get_ipython ().system (f'wget https://raw.githubuserhome/studio-lab-user.com/camenduru/stable-diffusion-webui-scripts/main/run_n_times.py -O {wb}/scripts/run_n_times.py')#line:67
    clear_output ()#line:69
    gitDownload (f'https://huggingface.co/embed/negative',f'{wb}/embeddings/negative')#line:71
    get_ipython ().system (f'rm -rf {wb}/embeddings/negative/.git')#line:72
    get_ipython ().system (f'rm {wb}/embeddings/negative/.gitattributes')#line:73
    gitDownload (f'https://huggingface.co/embed/lora',f'{wb}/models/Lora/positive')#line:75
    get_ipython ().system (f'rm -rf {wb}/models/Lora/positive/.git')#line:76
    get_ipython ().system (f'rm {wb}/models/Lora/positive/.gitattributes')#line:77
    gitDownload (f'https://github.com/DominikDoom/a1111-sd-webui-tagcomplete',f'{wb}/extensions/a1111-sd-webui-tagcomplete')#line:80
    get_ipython ().system (f'rm -rf {wb}/extensions/a1111-sd-webui-tagcomplete/tags/danbooru.csv')#line:81
    get_ipython ().system (f'wget https://huggingface.co/gmk123/colab/raw/main/danbooru.csv -O {wb}/extensions/a1111-sd-webui-tagcomplete/tags/danbooru.csv')#line:82
    gitDownload (f'https://github.com/s0md3v/sd-webui-roop',f'{wb}/extensions/sd-webui-roop')#line:85
    get_ipython ().system (f'pip install -q insightface==0.7.3 onnx')#line:86
    get_ipython ().system (f'mkdir -p {wb}/models/roop')#line:87
    get_ipython ().system (f'wget https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx -O {wb}/models/roop/inswapper_128.onnx')#line:88
    print ('Roop换脸启用')#line:89
import subprocess #line:91
def sync_tmp_folder ():#line:93
    O0O00O0O0OOO00O00 =[['rm','-rf','~/tmp/*','~/tmp','~/stable-diffusion-webui/models/Stable-diffusion/tmp_models','~/stable-diffusion-webui/models/ControlNet','~/stable-diffusion-webui/models/sam'],['ln','-vs','/tmp','~/tmp'],['ln','-vs','/tmp/models','~/stable-diffusion-webui/models/Stable-diffusion/tmp_models'],['ln','-vs','/tmp/ControlNet','~/stable-diffusion-webui/models/ControlNet'],['ln','-vs','/tmp/sam','~/stable-diffusion-webui/models/sam']]#line:100
    for O0000O00O00OOO0OO in O0O00O0O0OOO00O00 :#line:102
        O0OOOOOO00OOO0000 =[os .path .expanduser (OOOO00OO00OO0O0OO )for OOOO00OO00OO0O0OO in O0000O00O00OOO0OO ]#line:103
        subprocess .run (O0OOOOOO00OOO0000 ,check =True )#line:104
def run_command (O00O0OOOOOOO0O0OO ,OO000OO0OOOO00O00 ):#line:107
    print (f"Please wait, {OO000OO0OOOO00O00} is loading...")#line:108
    subprocess .run (O00O0OOOOOOO0O0OO ,shell =True ,stdout =subprocess .DEVNULL ,stderr =subprocess .DEVNULL )#line:109
    print (f"{OO000OO0OOOO00O00} ok!")#line:110
def zrok ():#line:113
    try :#line:114
        OOO0OO00000O000OO ="/home/studio-lab-user/.zrok/bin"#line:115
        os .makedirs (OOO0OO00000O000OO ,exist_ok =True )#line:116
        subprocess .run (["curl","-sLO","https://github.com/openziti/zrok/releases/download/v0.4.23/zrok_0.4.23_linux_amd64.tar.gz"],check =True )#line:117
        subprocess .run (["tar","-xzf","zrok_0.4.23_linux_amd64.tar.gz","-C",OOO0OO00000O000OO ,"--wildcards","*zrok"],check =True )#line:118
        os .remove ("zrok_0.4.23_linux_amd64.tar.gz")#line:119
    except Exception as O000000OOO0000OOO :#line:121
        print (f"An error occurred: {O000000OOO0000OOO}")#line:122
def initLocal ():#line:126
    run_command ('conda install -y conda glib psutil gperftools aria2 gdown wget','【 Installing Conda 】')#line:128
    run_command ('conda install -y -n base python=3.10.12','【 Installing Python 3.10 】')#line:129
    run_command ('conda clean -y --all','【 Cleaning Conda 】')#line:130
    run_command ('pip install torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu121','【 Installing Torch 】')#line:131
    run_command ('pip install xformers==0.0.23.post1 triton==2.1.0','【 Installing xformers 】')#line:132
    get_ipython ().system ('pip install -q tqdm')#line:134
    clear_output ()#line:136
    get_ipython ().run_line_magic ('cd','/home/studio-lab-user')#line:137
    with capture .capture_output ()as OOOOOO000OOOOOOOO :#line:140
        def OOOO00000000OO00O (O00000O00O0O0OO0O ,OO00O0O00O00O0OOO ,OOO00OO00OOOO00O0 ):OO0O0O0OO0OO00OO0 =widgets .Button (description =O00000O00O0O0OO0O ,disabled =True ,button_style =OO00O0O00O00O0OOO ,layout =widgets .Layout (min_width =OOO00OO00OOOO00O0 ));display (OO0O0O0OO0OO00OO0 )#line:141
        get_ipython ().system (f'git clone -q --branch master https://github.com/AUTOMATIC1111/stable-diffusion-webui {wb}')#line:143
    with capture .capture_output ()as OOOOOO000OOOOOOOO :#line:145
        get_ipython ().run_line_magic ('cd',f'{wb}')#line:146
        get_ipython ().system ('pip install -q -r requirements.txt')#line:148
    get_ipython ().system (f'pip install -q basicsr')#line:150
    get_ipython ().system (f'pip install -q fake_useragent')#line:151
    sync_tmp_folder ()#line:154
    clear_output ()#line:156
    zrok ()#line:160
    get_ipython ().system (f'wget https://huggingface.co/gmk123/run/raw/main/zrun.py -O {wb}/zrun.py')#line:161
    get_ipython ().system (f'wget https://huggingface.co/gmk123/run/raw/main/zrok.py -O {wb}/zrok.py')#line:162
    installAdditional ()#line:165
    get_ipython ().system (f'rm -rf {wb}/config.json')#line:168
    get_ipython ().system (f'wget -O {wb}/config.json "https://huggingface.co/gmk123/colab/raw/main/config.json"')#line:169
    get_ipython ().system (f'wget -O {wb}/styles.csv "https://huggingface.co/gmk123/colab/raw/main/styles.csv"')#line:170
    clear_output ()#line:172
    get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/192916 -d {wb}/models/Stable-diffusion -o MoyouArtificial_v1060.safetensors')#line:174
    get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -d {wb}/models/VAE -o vae-ft-mse-840000-ema-pruned.safetensors')#line:176
    get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/embed/upscale/resolve/main/4x-UltraSharp.pth -d {wb}/models/ESRGAN -o 4x-UltraSharp.pth')#line:178
wise ="--xformers --enable-insecure-extension-access --theme dark --disable-console-progressbars --upcast-sampling"#line:180
ngrok_token =os .environ .get ('NGROK_TOKEN')#line:183
wise +=f" --ngrok {ngrok_token}"#line:184
def run (OO00000OO0O0O0O0O ):#line:187
    clear_output ()#line:188
    print (f'建议使用第二步:zrok部署,无需魔法,没有流量限制')#line:189
    print (f'Ngrok注意事项:每个账号每月1G流量!需配合魔法使用')#line:190
    get_ipython ().system (f'mkdir -p /tmp/ControlNet')#line:191
    get_ipython ().run_line_magic ('cd',f'{wb}')#line:193
    get_ipython ().system (f'python {OO00000OO0O0O0O0O} {wise}')#line:194
if os .path .exists (f'{wb}'):#line:197
    run (f'webui.py')#line:199
else :#line:200
    initLocal ()#line:202
    run (f'launch.py')#line:205