File size: 5,180 Bytes
2d1ecea |
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 |
{
"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",
"from datetime import timedelta\n",
"\n",
"\n",
"# ================= DETECT ENV =================\n",
"def detect_environment():\n",
" free_plan = (os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES') / (1024. ** 3) <= 20)\n",
" environments = {\n",
" 'COLAB_GPU': ('Google Colab', \"/root\" if free_plan else \"/content\"),\n",
" 'KAGGLE_URL_BASE': ('Kaggle', \"/kaggle/working/content\")\n",
" }\n",
"\n",
" for env_var, (environment, path) in environments.items():\n",
" if env_var in os.environ:\n",
" return environment, path, free_plan\n",
"\n",
"env, root_path, free_plan = detect_environment()\n",
"webui_path = f\"{root_path}/sdw\"\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",
" settings = json.load(f)\n",
" return settings\n",
"\n",
"settings = load_settings()\n",
"ngrok_token = settings['ngrok_token']\n",
"zrok_token = settings['zrok_token']\n",
"commandline_arguments = settings['commandline_arguments']\n",
"\n",
"\n",
"# ======================== TUNNEL ========================\n",
"import cloudpickle as pickle\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",
" data = response.json()\n",
" public_ip = data['ip']\n",
" return public_ip\n",
" except Exception as e:\n",
" print(f\"Error getting public {version} address:\", e)\n",
"\n",
"public_ipv4 = get_public_ip(version='ipv4')\n",
"\n",
"tunnel_class = pickle.load(open(f\"{root_path}/new_tunnel\", \"rb\"), encoding=\"utf-8\")\n",
"tunnel_port= 1769\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",
"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",
"''' add zrok tunnel '''\n",
"if zrok_token:\n",
" get_ipython().system('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",
"# ======================== TUNNEL ========================\n",
"\n",
"\n",
"# automatic fixing path V2\n",
"!sed -i 's#\"tagger_hf_cache_dir\": \".*models/interrogators\"#\"tagger_hf_cache_dir\": \"{root_path}/sdw/models/interrogators\"#' {webui_path}/config.json\n",
"!sed -i 's#\"additional_networks_extra_lora_path\": \".*models/Lora/\"#\"additional_networks_extra_lora_path\": \"{root_path}/sdw/models/Lora/\"#' {webui_path}/config.json\n",
"# ---\n",
"!sed -i 's/\"sd_checkpoint_hash\": \".*\"/\"sd_checkpoint_hash\": \"\"/g; s/\"sd_model_checkpoint\": \".*\"/\"sd_model_checkpoint\": \"\"/g; s/\"sd_vae\": \".*\"/\"sd_vae\": \"None\"/g' {webui_path}/config.json\n",
"\n",
"\n",
"with tunnel:\n",
" %cd {webui_path}\n",
" commandline_arguments += f\" --port=1769\"\n",
"\n",
" if ngrok_token:\n",
" commandline_arguments += ' --ngrok ' + ngrok_token\n",
" if env != \"Google Colab\":\n",
" commandline_arguments += f\" --encrypt-pass=1769\"\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[0mВы проводите эту сессию в течение - \\033[33m{time_since_start}\\033[0m\\n\\n\")"
]
}
]
} |