Spaces:
Runtime error
Runtime error
import os | |
import time | |
import sys | |
import fileinput | |
from IPython.display import clear_output | |
from subprocess import getoutput | |
from IPython.utils import capture | |
from pyngrok import ngrok, conf | |
import base64 | |
blasphemy=base64.b64decode(("d2VidWk=")).decode('ascii') | |
Previous_Session="" #@param{type: 'string'} | |
#@markdown - Leave empty if you want to use the current trained model. | |
Use_Custom_Path = False #@param {type:"boolean"} | |
try: | |
INSTANCE_NAME | |
INSTANCET=INSTANCE_NAME | |
except: | |
pass | |
#@markdown - if checked, an input box will ask the full path to a desired model. | |
if Previous_Session!="": | |
INSTANCET=Previous_Session | |
INSTANCET=INSTANCET.replace(" ","_") | |
if Use_Custom_Path: | |
try: | |
INSTANCET | |
del INSTANCET | |
except: | |
pass | |
try: | |
INSTANCET | |
if Previous_Session!="": | |
path_to_trained_model='/content/gdrive/MyDrive/Fast-Dreambooth/Sessions/'+Previous_Session+"/"+Previous_Session+'.ckpt' | |
else: | |
path_to_trained_model=SESSION_DIR+"/"+INSTANCET+'.ckpt' | |
except: | |
print('[1;31mIt seems that you did not perform training during this session [1;32mor you chose to use a custom path,\nprovide the full path to the model (including the name of the model):\n') | |
path_to_trained_model=input() | |
while not os.path.exists(path_to_trained_model): | |
print("[1;31mThe model doesn't exist on you Gdrive, use the file explorer to get the path : ") | |
path_to_trained_model=input() | |
fgitclone = "git clone --depth 1" | |
with capture.capture_output() as cap: | |
if not os.path.exists('/content/gdrive/MyDrive'): | |
!mkdir -p /content/gdrive/MyDrive | |
if not os.path.exists('/content/gdrive/MyDrive/sd/stablediffusion'): | |
!wget -q -O /content/sd_rep.tar.zst https://huggingface.co/TheLastBen/dependencies/resolve/main/sd_rep.tar.zst | |
!tar -C /content/gdrive/MyDrive --zstd -xf /content/sd_rep.tar.zst | |
!rm /content/sd_rep.tar.zst | |
clear_output() | |
with capture.capture_output() as cap: | |
%cd /content/gdrive/MyDrive/sd | |
!git clone -q --branch master https://github.com/AUTOMATIC1111/stable-diffusion-$blasphemy | |
%cd stable-diffusion-$blasphemy | |
!mkdir cache | |
!sed -i 's@~/.cache@/content/gdrive/MyDrive/sd/stable-diffusion-{blasphemy}/cache@' /usr/local/lib/python3.10/dist-packages/transformers/utils/hub.py | |
clear_output() | |
!git reset --hard | |
time.sleep(1) | |
!rm webui.sh | |
!git pull | |
!git fetch --unshallow | |
!git checkout a9eab236d7e8afa4d6205127904a385b2c43bb24 | |
with capture.capture_output() as cap: | |
if not os.path.exists('/tools/node/bin/lt'): | |
!npm install -g localtunnel | |
Ngrok_token = "" #@param {type:"string"} | |
#@markdown - Input your ngrok token if you want to use ngrok server. | |
Use_localtunnel = False #@param {type:"boolean"} | |
User = "" #@param {type:"string"} | |
Password= "" #@param {type:"string"} | |
#@markdown - Add credentials to your Gradio interface (optional). | |
auth=f"--gradio-auth {User}:{Password}" | |
if User =="" or Password=="": | |
auth="" | |
with capture.capture_output() as cap: | |
%cd modules | |
!wget -q -O paths.py https://github.com/TheLastBen/fast-stable-diffusion/raw/5632d2ef7fffd940976538d270854ec4faf26855/AUTOMATIC1111_files/paths.py | |
!wget -q -O extras.py https://github.com/AUTOMATIC1111/stable-diffusion-$blasphemy/raw/a9eab236d7e8afa4d6205127904a385b2c43bb24/modules/extras.py | |
!wget -q -O sd_models.py https://github.com/AUTOMATIC1111/stable-diffusion-$blasphemy/raw/a9eab236d7e8afa4d6205127904a385b2c43bb24/modules/sd_models.py | |
!wget -q -O /usr/local/lib/python3.10/dist-packages/gradio/blocks.py https://github.com/TheLastBen/fast-stable-diffusion/raw/7ff88eaa1fb4997bacd9845bd487f9a14335d625/AUTOMATIC1111_files/blocks.py | |
%cd /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/ | |
!sed -i "s@os.path.splitext(checkpoint_file)@os.path.splitext(checkpoint_file); map_location='cuda'@" /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/modules/sd_models.py | |
!sed -i 's@ui.create_ui().*@ui.create_ui();shared.demo.queue(concurrency_count=999999,status_update_rate=0.1)@' /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/webui.py | |
!sed -i "s@map_location='cpu'@map_location='cuda'@" /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/modules/extras.py | |
!sed -i 's@print(\"No module.*@@' /content/gdrive/MyDrive/sd/stablediffusion/ldm/modules/diffusionmodules/model.py | |
!sed -i 's@\"quicksettings\": OptionInfo(.*@"quicksettings": OptionInfo("sd_model_checkpoint, sd_vae, CLIP_stop_at_last_layers, inpainting_mask_weight, initial_noise_multiplier", "Quicksettings list"),@' /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/modules/shared.py | |
share='' | |
if Ngrok_token!="": | |
ngrok.kill() | |
srv=ngrok.connect(7860, pyngrok_config=conf.PyngrokConfig(auth_token=Ngrok_token) , bind_tls=True).public_url | |
for line in fileinput.input('/usr/local/lib/python3.10/dist-packages/gradio/blocks.py', inplace=True): | |
if line.strip().startswith('self.server_name ='): | |
line = f' self.server_name = "{srv[8:]}"\n' | |
if line.strip().startswith('self.protocol = "https"'): | |
line = ' self.protocol = "https"\n' | |
if line.strip().startswith('if self.local_url.startswith("https") or self.is_colab'): | |
line = '' | |
if line.strip().startswith('else "http"'): | |
line = '' | |
sys.stdout.write(line) | |
elif Use_localtunnel: | |
with capture.capture_output() as cap: | |
share='' | |
%cd /content | |
!nohup lt --port 7860 > srv.txt 2>&1 & | |
time.sleep(2) | |
!grep -o 'https[^ ]*' /content/srv.txt >srvr.txt | |
time.sleep(2) | |
srv= getoutput('cat /content/srvr.txt') | |
for line in fileinput.input('/usr/local/lib/python3.10/dist-packages/gradio/blocks.py', inplace=True): | |
if line.strip().startswith('self.server_name ='): | |
line = f' self.server_name = "{srv[8:]}"\n' | |
if line.strip().startswith('self.protocol = "https"'): | |
line = ' self.protocol = "https"\n' | |
if line.strip().startswith('if self.local_url.startswith("https") or self.is_colab'): | |
line = '' | |
if line.strip().startswith('else "http"'): | |
line = '' | |
sys.stdout.write(line) | |
!rm /content/srv.txt /content/srvr.txt | |
%cd /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy | |
else: | |
share='--share' | |
configf="--api --disable-safe-unpickle --enable-insecure-extension-access --no-half-vae --opt-sdp-attention --no-download-sd-model --disable-console-progressbars" | |
clear_output() | |
if os.path.isfile(path_to_trained_model): | |
!python /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/webui.py $share --ckpt "$path_to_trained_model" $auth $configf | |
else: | |
!python /content/gdrive/MyDrive/sd/stable-diffusion-$blasphemy/webui.py $share --ckpt-dir "$path_to_trained_model" $auth $configf |