File size: 4,247 Bytes
ceeafb1 1291827 12ae06e ceeafb1 12ae06e ceeafb1 f9b46d8 c1d0017 f9b46d8 ceeafb1 5642a74 ceeafb1 5642a74 ceeafb1 f9b46d8 1291827 0540f3c 12ae06e 4424587 5642a74 4424587 0540f3c 5642a74 0540f3c 5642a74 0540f3c 5642a74 0540f3c 4424587 5642a74 4424587 1291827 4424587 12ae06e ceeafb1 f9b46d8 1291827 5642a74 0540f3c a3f8f07 0540f3c 5642a74 0540f3c 5642a74 0540f3c ceeafb1 4424587 ceeafb1 12ae06e ceeafb1 12ae06e 4424587 12ae06e ceeafb1 f7c0346 0540f3c 4424587 ceeafb1 12ae06e ceeafb1 |
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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
##~ LAUNCH CODE | BY: ANXETY ~##
import os
import re
import time
import json
import requests
import subprocess
import cloudpickle as pickle
from datetime import timedelta
from IPython.display import clear_output
# Setup Env
env = os.getenv('ENV_NAME')
root_path = os.getenv('ROOT_PATH')
webui_path = os.getenv('WEBUI_PATH')
free_plan = os.getenv('FREE_PLAN')
def load_settings():
SETTINGS_FILE = f'{root_path}/settings.json'
if os.path.exists(SETTINGS_FILE):
with open(SETTINGS_FILE, 'r') as f:
return json.load(f)
return {}
settings = load_settings()
ngrok_token = settings.get('ngrok_token', "")
zrok_token = settings.get('zrok_token', "")
commandline_arguments = settings.get('commandline_arguments', "")
change_webui = settings.get('change_webui', "")
# ========================== OTHER ==========================
def is_package_installed(package_name):
try:
subprocess.run(["npm", "ls", "-g", package_name], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return True
except subprocess.CalledProcessError:
return False
lt_tunnel = is_package_installed('localtunnel')
# ======================== TUNNEL V2 ========================
print('Please Wait...')
def get_public_ip(version='ipv4'):
try:
url = f'https://api64.ipify.org?format=json&{version}=true'
response = requests.get(url)
return response.json().get('ip', 'N/A')
except Exception as e:
print(f"Error getting public {version} address:", e)
# Check if public IP is already saved, if not then get it
public_ip_file = f"{root_path}/public_ip.txt"
if os.path.exists(public_ip_file):
with open(public_ip_file, 'r') as file:
public_ipv4 = file.read().strip()
else:
public_ipv4 = get_public_ip(version='ipv4')
with open(public_ip_file, 'w') as file:
file.write(public_ipv4)
tunnel_class = pickle.load(open(f"{root_path}/new_tunnel", "rb"), encoding="utf-8")
tunnel_port = 1834
tunnel = tunnel_class(tunnel_port)
tunnel.add_tunnel(command="cl tunnel --url localhost:{port}", name="cl", pattern=re.compile(r"[\w-]+\.trycloudflare\.com"))
if lt_tunnel:
tunnel.add_tunnel(command="lt --port {port}", name="lt", pattern=re.compile(r"[\w-]+\.loca\.lt"), note="Password : " + "\033[32m" + public_ipv4 + "\033[0m" + " rerun cell if 404 error.")
if zrok_token:
get_ipython().system('zrok enable {zrok_token} &> /dev/null')
tunnel.add_tunnel(command="zrok share public http://localhost:{port}/ --headless", name="zrok", pattern=re.compile(r"[\w-]+\.share\.zrok\.io"))
clear_output()
# ================= Automatic Fixing Path V3 ================
paths_to_check = {
"tagger_hf_cache_dir": f"{webui_path}/models/interrogators/",
"ad_extra_models_dir": f"{webui_path}/models/adetailer/",
"sd_checkpoint_hash": "",
"sd_model_checkpoint": "",
"sd_vae": "None"
}
config_path = f'{webui_path}/config.json'
if os.path.exists(config_path):
with open(config_path, 'r') as file:
config_data = json.load(file)
for key, value in paths_to_check.items():
if key in config_data and config_data[key] != value:
sed_command = f"sed -i 's|\"{key}\": \".*\"|\"{key}\": \"{value}\"|' {config_path}"
os.system(sed_command)
with tunnel:
get_ipython().run_line_magic('cd', '{webui_path}')
commandline_arguments += f' --port={tunnel_port}'
if ngrok_token:
commandline_arguments += f' --ngrok {ngrok_token}'
if env != "Google Colab":
commandline_arguments += f' --encrypt-pass={tunnel_port} --api'
if change_webui == 'A1111':
commandline_arguments += ' --xformers'
else:
commandline_arguments += ' --disable-xformers --opt-sdp-attention --cuda-stream --pin-shared-memory'
get_ipython().system('COMMANDLINE_ARGS="{commandline_arguments}" python launch.py')
start_colab = float(open(f'{webui_path}/static/colabTimer.txt', 'r').read())
time_since_start = str(timedelta(seconds=time.time()-start_colab)).split('.')[0]
print(f"\n⌚️ \033[0mВы проводите эту сессию в течение - \033[33m{time_since_start}\033[0m\n\n")
if zrok_token:
get_ipython().system('zrok disable &> /dev/null')
|