File size: 6,282 Bytes
ceeafb1 1291827 12ae06e ceeafb1 12ae06e ceeafb1 f9b46d8 c1d0017 ceeafb1 5642a74 ceeafb1 5642a74 ceeafb1 f9b46d8 1291827 0540f3c 12ae06e 4424587 5642a74 4424587 0540f3c 5642a74 0540f3c 5642a74 0540f3c 5642a74 0540f3c 4424587 5642a74 4424587 1291827 4424587 5642a74 4424587 12ae06e ceeafb1 f9b46d8 1291827 5642a74 0540f3c a3f8f07 0540f3c 5642a74 0540f3c 5642a74 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 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "JKTCrY9LU7Oq"
},
"outputs": [],
"source": [
"##~ LAUNCH CODE | BY: ANXETY ~##\n",
"\n",
"import os\n",
"import re\n",
"import time\n",
"import json\n",
"import requests\n",
"import subprocess\n",
"import cloudpickle as pickle\n",
"from datetime import timedelta\n",
"from IPython.display import clear_output\n",
"\n",
"\n",
"# Setup Env\n",
"env = os.getenv('ENV_NAME')\n",
"root_path = os.getenv('ROOT_PATH')\n",
"webui_path = os.getenv('WEBUI_PATH')\n",
"free_plan = os.getenv('FREE_PLAN')\n",
"\n",
"\n",
"def load_settings():\n",
" SETTINGS_FILE = f'{root_path}/settings.json'\n",
" if os.path.exists(SETTINGS_FILE):\n",
" with open(SETTINGS_FILE, 'r') as f:\n",
" return json.load(f)\n",
" return {}\n",
"\n",
"settings = load_settings()\n",
"ngrok_token = settings.get('ngrok_token', \"\")\n",
"zrok_token = settings.get('zrok_token', \"\")\n",
"commandline_arguments = settings.get('commandline_arguments', \"\")\n",
"change_webui = settings.get('change_webui', \"\")\n",
"\n",
"\n",
"# ========================== OTHER ==========================\n",
"def is_package_installed(package_name):\n",
" try:\n",
" subprocess.run([\"npm\", \"ls\", \"-g\", package_name], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
" return True\n",
" except subprocess.CalledProcessError:\n",
" return False\n",
"\n",
"lt_tunnel = is_package_installed('localtunnel')\n",
"\n",
"\n",
"# ======================== TUNNEL V2 ========================\n",
"print('Please Wait...')\n",
"\n",
"def get_public_ip(version='ipv4'):\n",
" try:\n",
" url = f'https://api64.ipify.org?format=json&{version}=true'\n",
" response = requests.get(url)\n",
" return response.json().get('ip', 'N/A')\n",
" except Exception as e:\n",
" print(f\"Error getting public {version} address:\", e)\n",
"\n",
"# Check if public IP is already saved, if not then get it\n",
"public_ip_file = f\"{root_path}/public_ip.txt\"\n",
"if os.path.exists(public_ip_file):\n",
" with open(public_ip_file, 'r') as file:\n",
" public_ipv4 = file.read().strip()\n",
"else:\n",
" public_ipv4 = get_public_ip(version='ipv4')\n",
" with open(public_ip_file, 'w') as file:\n",
" file.write(public_ipv4)\n",
"\n",
"tunnel_class = pickle.load(open(f\"{root_path}/new_tunnel\", \"rb\"), encoding=\"utf-8\")\n",
"tunnel_port = 1834\n",
"tunnel = tunnel_class(tunnel_port)\n",
"tunnel.add_tunnel(command=\"cl tunnel --url localhost:{port}\", name=\"cl\", pattern=re.compile(r\"[\\w-]+\\.trycloudflare\\.com\"))\n",
"\n",
"if lt_tunnel:\n",
" 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.\")\n",
"\n",
"if zrok_token:\n",
" !zrok enable {zrok_token} &> /dev/null\n",
" tunnel.add_tunnel(command=\"zrok share public http://localhost:{port}/ --headless\", name=\"zrok\", pattern=re.compile(r\"[\\w-]+\\.share\\.zrok\\.io\"))\n",
"\n",
"clear_output()\n",
"\n",
"\n",
"# ================= Automatic Fixing Path V3 ================\n",
"paths_to_check = {\n",
" \"tagger_hf_cache_dir\": f\"{webui_path}/models/interrogators/\",\n",
" \"ad_extra_models_dir\": f\"{webui_path}/models/adetailer/\",\n",
" \"sd_checkpoint_hash\": \"\",\n",
" \"sd_model_checkpoint\": \"\",\n",
" \"sd_vae\": \"None\"\n",
"}\n",
"\n",
"config_path = f'{webui_path}/config.json'\n",
"\n",
"if os.path.exists(config_path):\n",
" with open(config_path, 'r') as file:\n",
" config_data = json.load(file)\n",
"\n",
" for key, value in paths_to_check.items():\n",
" if key in config_data and config_data[key] != value:\n",
" sed_command = f\"sed -i 's|\\\"{key}\\\": \\\".*\\\"|\\\"{key}\\\": \\\"{value}\\\"|' {config_path}\"\n",
" os.system(sed_command)\n",
"\n",
"\n",
"with tunnel:\n",
" %cd {webui_path}\n",
"\n",
" commandline_arguments += f' --port={tunnel_port}'\n",
" if ngrok_token:\n",
" commandline_arguments += f' --ngrok {ngrok_token}'\n",
" if env != \"Google Colab\":\n",
" commandline_arguments += f' --encrypt-pass={tunnel_port} --api'\n",
"\n",
" if change_webui == 'A1111':\n",
" commandline_arguments += ' --xformers'\n",
" else:\n",
" commandline_arguments += ' --disable-xformers --opt-sdp-attention --cuda-stream --pin-shared-memory'\n",
"\n",
" !COMMANDLINE_ARGS=\"{commandline_arguments}\" python launch.py\n",
"\n",
"start_colab = float(open(f'{webui_path}/static/colabTimer.txt', 'r').read())\n",
"time_since_start = str(timedelta(seconds=time.time()-start_colab)).split('.')[0]\n",
"print(f\"\\n⌚️ \\033[0mYou have been conducting this session for - \\033[33m{time_since_start}\\033[0m\\n\\n\")\n",
"\n",
"if zrok_token:\n",
" !zrok disable &> /dev/null"
]
}
]
} |