From 8c657407bcd164cf402750aff046376d7f1e50ef Mon Sep 17 00:00:00 2001 From: Silversith Date: Thu, 6 Apr 2023 09:22:01 +0200 Subject: [PATCH] Update Comfy UI.ipynb --- comfy_extras/Comfy UI.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comfy_extras/Comfy UI.ipynb b/comfy_extras/Comfy UI.ipynb index 337ee7f9d..d7dbdc848 100644 --- a/comfy_extras/Comfy UI.ipynb +++ b/comfy_extras/Comfy UI.ipynb @@ -1 +1 @@ -{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"gF1S6DImECxb"},"outputs":[],"source":["import re\n","from IPython.utils import io\n","clone_comfy_ui = True #@param {type:\"boolean\"}\n","\n","if clone_comfy_ui:\n"," with io.capture_output() as captured:\n"," !git clone https://github.com/Silversith/ComfyUI\n"," %cd ComfyUI\n"," !pip install xformers -r requirements.txt\n","\n"," !wget http://launchpadlibrarian.net/367274644/libgoogle-perftools-dev_2.5-2.2ubuntu3_amd64.deb\n"," !apt-get -y install -qq aria2\n","\n"," output_text = captured.stdout\n","\n"," # Use regex to find URLs in the captured output\n"," errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n"," # Display each URL as a clickable link\n"," for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"yfhr6Kry5nus"},"outputs":[],"source":["import re\n","from IPython.utils import io\n","custom_nodes = False #@param {type:\"boolean\"}\n","WAS_node_suite = True #@param {type:\"boolean\"}\n","\n","if custom_nodes:\n"," with io.capture_output() as captured:\n"," %cd custom_nodes # Start getting the latest updates from Github for the extensions.\n"," !git clone https://github.com/lilly1987/ComfyUI_node_Lilly.git\n"," %cd ComfyUI_node_Lilly\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes.git\n"," %cd Derfuu_ComfyUI_ModdedNodes\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/WASasquatch/was-node-suite-comfyui.git\n"," %cd was-node-suite-comfyui\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git\n"," %cd ComfyUI-Custom-Scripts\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/Fannovel16/FN16-ComfyUI-nodes.git\n"," %cd FN16-ComfyUI-nodes\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/omar92/ComfyUI-extra-nodes---quality-of-life.git\n"," %cd ComfyUI-extra-nodes---quality-of-life\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/guoyk93/yk-node-suite-comfyui.git\n"," %cd yk-node-suite-comfyui\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/gamert/ComfyUI_tagger.git\n"," %cd ComfyUI_tagger\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes.git\n"," %cd ComfyUI-Custom-Nodes\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/Davemane42/ComfyUI_Dave_CustomNode.git\n"," %cd ComfyUI_Dave_CustomNode\n"," !git pull\n"," %cd ../\n","\n"," %cd ../web/extensions\n"," !git clone https://github.com/diffus3/ComfyUI-extensions ./web/extensions/diffus3\n","\n"," %cd ../../script_examples\n"," !git clone https://github.com/lilly1987/ComfyUI-script.git\n"," !git clone https://github.com/lilly1987/ComfyUI_script2.git\n","\n","\n","if WAS_node_suite:\n"," with io.capture_output() as captured:\n"," !git -C /content/ComfyUI/custom_nodes clone https://github.com/WASasquatch/was-node-suite-comfyui/ \n","\n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n","# Display each URL as a clickable link\n","for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"SktLkvOS-lzN"},"outputs":[],"source":["import re\n","from IPython.utils import io\n","# SD2_1_models = True #@param {type:\"boolean\"}\n","T2I_OPTION = 't2iadapter_depth_sd14v1.pth' #@param['None', 't2iadapter_depth_sd14v1.pth', 't2iadapter_seg_sd14v1.pth', 't2iadapter_sketch_sd14v1.pth', 't2iadapter_keypose_sd14v1.pth', 't2iadapter_openpose_sd14v1.pth', 't2iadapter_color_sd14v1.pth', 't2iadapter_canny_sd14v1.pth', '/t2iadapter_style_sd14v1.pth']\n","CONTROLNET_OPTION = 'control_depth-fp16.safetensors' #@param['None', 'control_depth-fp16.safetensors', 'control_scribble-fp16.safetensors', 'control_openpose-fp16.safetensors']\n","MODEL_OPTION1 = 'dreamshaper_331BakedVae.safetensors' \t#@param['None', 'dreamshaper_331BakedVae.safetensors', 'revAnimated_v11.safetensors', 'chilloutmix_NiPrunedFp32Fix.safetensors', 'AbyssOrangeMix2_hard.safetensors', 'meowMixRealistic_prunedFp16FIXED.safetensors', 'neverendingDreamNED_bakedVae.safetensors']\n","MODEL_OPTION2 = 'neverendingDreamNED_bakedVae.safetensors' \t#@param['None', 'dreamshaper_331BakedVae.safetensors', 'revAnimated_v11.safetensors', 'chilloutmix_NiPrunedFp32Fix.safetensors', 'AbyssOrangeMix2_hard.safetensors', 'meowMixRealistic_prunedFp16FIXED.safetensors', 'neverendingDreamNED_bakedVae.safetensors']\n","LORA_OPTION1 = 'ShinyEyesStyle.safetensors' \t#@param['None', 'ShinyEyesStyle.safetensors', 'oversizedShirt_v10.safetensors', 'inniesBetterVaginas_v11.safetensors', 'negligee_v10.safetensors', 'gin00pussy_.safetensors', 'charturnerbetaLora_charturnbetalora.safetensors', 'epiNoiseoffset_v2.safetensors', 'epiNoiseoffset_v2Pynoise.safetensors', 'poseFixingHelper_posev4.safetensors', 'realSpreadPussy_sppSpreadpussyWV1.safetensors']\n","LORA_OPTION2 = 'epiNoiseoffset_v2.safetensors' \t#@param['None', 'ShinyEyesStyle.safetensors', 'oversizedShirt_v10.safetensors', 'inniesBetterVaginas_v11.safetensors', 'negligee_v10.safetensors', 'gin00pussy_.safetensors', 'charturnerbetaLora_charturnbetalora.safetensors', 'epiNoiseoffset_v2.safetensors', 'epiNoiseoffset_v2Pynoise.safetensors', 'poseFixingHelper_posev4.safetensors', 'realSpreadPussy_sppSpreadpussyWV1.safetensors']\n","UPSCALE_MODEL = '4x-UltraSharp.pth' #@param['None', 'RealESRGAN_x2.pth', 'RealESRGAN_x4.pth', '4x-UltraSharp.pth', '4x_RealisticRescaler_100000_G.pth']\n","download_vae = True #@param {type:\"boolean\"}\n","download_negative_embed = True #@param {type:\"boolean\"}\n","\n","with io.capture_output() as captured:\n"," if T2I_OPTION != 'None':\n"," # T2I-Adapter\n"," if T2I_OPTION == 't2iadapter_depth_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_seg_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_sketch_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_keypose_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_openpose_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_color_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_canny_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n","\n"," # T2I Styles Model\n"," if T2I_OPTION == '/t2iadapter_style_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n"," !wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n","\n"," if CONTROLNET_OPTION != 'None':\n"," # ControlNet\n"," if CONTROLNET_OPTION == 'control_depth-fp16.safetensors':\n"," !wget -c https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors -P ./models/controlnet/\n"," !cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n"," if CONTROLNET_OPTION == 'control_scribble-fp16.safetensors':\n"," !wget -c https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors -P ./models/controlnet/\n"," !cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n"," if CONTROLNET_OPTION == 'control_openpose-fp16.safetensors':\n"," !wget -c https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -P ./models/controlnet/\n"," !cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n","\n"," if MODEL_OPTION1 != 'None':\n"," # Checkpoints\n"," if MODEL_OPTION1 == 'dreamshaper_331BakedVae.safetensors' or MODEL_OPTION2 == 'dreamshaper_331BakedVae.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/5636?type=Model&format=SafeTensor' -d ./models/checkpoints/ -o dreamshaper_331BakedVae.safetensors\n"," if MODEL_OPTION1 == 'revAnimated_v11.safetensors' or MODEL_OPTION2 == 'revAnimated_v11.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/19575?type=Model&format=SafeTensor' -d ./models/checkpoints/ -o revAnimated_v11.safetensors\n"," if MODEL_OPTION1 == 'chilloutmix_NiPrunedFp32Fix.safetensors' or MODEL_OPTION2 == 'chilloutmix_NiPrunedFp32Fix.safetensors':\n"," !wget -c https://huggingface.co/SakerLy/chilloutmix_NiPrunedFp32Fix/resolve/main/chilloutmix_NiPrunedFp32Fix.safetensors -P ./models/checkpoints/ -nc\n"," if MODEL_OPTION1 == 'meowMixRealistic_prunedFp16FIXED.safetensors' or MODEL_OPTION2 == 'meowMixRealistic_prunedFp16FIXED.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/21758' -d ./models/checkpoints/ -o meowMixRealistic_prunedFp16FIXED.safetensors\n"," if MODEL_OPTION1 == 'AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors' or MODEL_OPTION2 == 'AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors':\n"," !wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/ -nc\n"," if MODEL_OPTION1 == 'neverendingDreamNED_bakedVae.safetensors' or MODEL_OPTION2 == 'neverendingDreamNED_bakedVae.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/11925?type=Pruned%20Model&format=SafeTensor' -d ./models/checkpoints/ -o neverendingDreamNED_bakedVae.safetensors\n","\n"," if download_vae:\n"," # VAE\n"," !wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n"," #!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n"," #!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n","\n"," if download_negative_embed:\n"," #Embeddings\n"," !wget -c https://huggingface.co/datasets/Nerfgun3/bad_prompt/resolve/main/bad_prompt_version2.pt -P ./models/embeddings\n"," !wget -c https://huggingface.co/yesyeahvh/bad-hands-5/resolve/main/bad-hands-5.pt -P ./models/embeddings\n","\n"," if LORA_OPTION1 != 'None':\n"," # Loras\n"," if LORA_OPTION1 == 'ShinyEyesStyle.safetensors' or LORA_OPTION2 == 'ShinyEyesStyle.safetensors': \n"," !pip install --upgrade --no-cache-dir gdown\n"," !gdown 1MQBNdwqgTJCFa5wOg6FBq0-Hc9z-sGvH -O ./models/loras/ShinyEyesStyle.safetensors\n"," if LORA_OPTION1 == 'oversizedShirt_v10.safetensors' or LORA_OPTION2 == 'oversizedShirt_v10.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/12504 -d ./models/loras -o oversizedShirt_v10.safetensors\n"," if LORA_OPTION1 == 'inniesBetterVaginas_v11.safetensors' or LORA_OPTION2 == 'inniesBetterVaginas_v11.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/12873 -d ./models/loras -o inniesBetterVaginas_v11.safetensors\n"," if LORA_OPTION1 == 'negligee_v10.safetensors' or LORA_OPTION2 == 'negligee_v10.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/11979 -d ./models/loras -o negligee_v10.safetensors\n"," if LORA_OPTION1 == 'gin00pussy_.safetensors' or LORA_OPTION2 == 'gin00pussy_.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/10490 -d ./models/loras -o gin00pussy_.safetensors\n"," if LORA_OPTION1 == 'charturnerbetaLora_charturnbetalora.safetensors' or LORA_OPTION2 == 'charturnerbetaLora_charturnbetalora.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/8527 -d ./models/loras -o charturnerbetaLora_charturnbetalora.safetensors\n"," if LORA_OPTION1 == 'epiNoiseoffset_v2.safetensors' or LORA_OPTION2 =='epiNoiseoffset_v2.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/16576?type=Model&format=SafeTensor' -d ./models/loras -o epiNoiseoffset_v2.safetensors\n"," if LORA_OPTION1 == 'epiNoiseoffset_v2Pynoise.safetensors' or LORA_OPTION2 == 'epiNoiseoffset_v2Pynoise.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/18445?type=Model&format=SafeTensor' -d ./models/loras -o epiNoiseoffset_v2Pynoise.safetensors\n"," if LORA_OPTION1 == 'poseFixingHelper_posev4.safetensors' or LORA_OPTION2 == 'poseFixingHelper_posev4.safetensors': \n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/20974 -d ./models/loras -o poseFixingHelper_posev4.safetensors\n"," if LORA_OPTION1 == 'realSpreadPussy_sppSpreadpussyWV1.safetensors' or LORA_OPTION2 == 'realSpreadPussy_sppSpreadpussyWV1.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/30420 -d ./models/loras -o realSpreadPussy_sppSpreadpussyWV1.safetensors\n","\n"," # ESRGAN upscale model\n"," if UPSCALE_MODEL == 'RealESRGAN_x2.pth':\n"," !wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n"," if UPSCALE_MODEL == 'RealESRGAN_x4.pth':\n"," !wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n"," if UPSCALE_MODEL == '4x-UltraSharp.pth':\n"," !wget -c https://huggingface.co/WuLing/SD-WebUI-TW/resolve/main/ESRGAN/4x-UltraSharp.pth -P ./models/upscale_models/\n"," if UPSCALE_MODEL == '4x_RealisticRescaler_100000_G.pth':\n"," !wget -c https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x_RealisticRescaler_100000_G.pth -P ./models/upscale_models/\n","\n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n","# Display each URL as a clickable link\n","for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"Xq3MHlKwpdsN"},"outputs":[],"source":["import re\n","run_elFinder = False #@param {type:\"boolean\"}\n","if run_elFinder:\n"," %store -r\n"," !pip -q install --upgrade gallery-dl gdown imjoy-elfinder\n","\n"," import threading\n"," from google.colab import output\n"," from imjoy_elfinder.app import main\n"," thread = threading.Thread(target=main, args=[[\"--root-dir=/content\", \"--port=8765\", \"--thumbnail\"]])\n"," thread.start()\n"," output.serve_kernel_port_as_window(8765)\n"," \n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n","# Display each URL as a clickable link\n","for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"fD6Cmdp1Pf8X"},"outputs":[],"source":["from IPython.utils import io\n","import re\n","\n","start_cloudflared_tunnel = True #@param {type:\"boolean\"}\n","if start_cloudflared_tunnel:\n"," with io.capture_output() as captured:\n"," !wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O /content/cloudflared-linux-amd64 && chmod 777 /content/cloudflared-linux-amd64\n"," import atexit, requests, subprocess, time, re, os\n"," from random import randint\n"," from threading import Timer\n"," from queue import Queue\n"," def cloudflared(port, metrics_port, output_queue):\n"," atexit.register(lambda p: p.terminate(), subprocess.Popen(['/content/cloudflared-linux-amd64', 'tunnel', '--url', f'http://127.0.0.1:{port}', '--metrics', f'127.0.0.1:{metrics_port}'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT))\n"," attempts, tunnel_url = 0, None\n"," while attempts < 10 and not tunnel_url:\n"," attempts += 1\n"," time.sleep(3)\n"," try:\n"," tunnel_url = re.search(\"(?Phttps?:\\/\\/[^\\s]+.trycloudflare.com)\", requests.get(f'http://127.0.0.1:{metrics_port}/metrics').text).group(\"url\")\n"," except:\n"," pass\n"," if not tunnel_url:\n"," raise Exception(\"Can't connect to Cloudflare Edge\")\n"," output_queue.put(tunnel_url)\n"," output_queue, metrics_port = Queue(), randint(8100, 9000)\n"," thread = Timer(2, cloudflared, args=(8188, metrics_port, output_queue))\n"," thread.start()\n"," thread.join()\n"," tunnel_url = output_queue.get()\n"," os.environ['webui_url'] = tunnel_url\n"," print(tunnel_url)\n","\n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","urls = re.findall(r'(?Phttps?:\\/\\/[^\\s]+.trycloudflare.com)', output_text)\n","\n","# Display each URL as a clickable link\n","for url in urls:\n"," print(url)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"la6-KZRupgtJ"},"outputs":[],"source":["import subprocess\n","import threading\n","import time\n","import socket\n","from IPython.utils import io\n","\n","start_local_tunnel = True #@param {type:\"boolean\"}\n","if start_local_tunnel:\n"," \n"," !npm install -g localtunnel\n","\n"," def capture_output(cmd):\n"," \"\"\"Capture the output of a command as it's running.\"\"\"\n"," proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n"," while True:\n"," line = proc.stdout.readline().decode().strip()\n"," if not line:\n"," break\n"," yield line\n","\n"," with io.capture_output() as captured:\n"," def iframe_thread(port):\n"," while True:\n"," time.sleep(0.5)\n"," sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n"," result = sock.connect_ex(('127.0.0.1', port))\n"," if result == 0:\n"," break\n"," sock.close()\n"," print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\")\n"," p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n"," for line in p.stdout:\n"," print(line.decode(), end='')\n","\n"," threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n"," !python main.py --dont-print-server"]}],"metadata":{"accelerator":"GPU","colab":{"provenance":[{"file_id":"1Qk6OATak14Hv3MLdJRh7_aANKbXXgi4Z","timestamp":1678998068703}]},"gpuClass":"standard","kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file +{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"gF1S6DImECxb"},"outputs":[],"source":["import re\n","from IPython.utils import io\n","clone_comfy_ui = True #@param {type:\"boolean\"}\n","\n","if clone_comfy_ui:\n"," with io.capture_output() as captured:\n"," !git clone https://github.com/Silversith/ComfyUI\n"," %cd ComfyUI\n"," !pip install xformers -r requirements.txt\n","\n"," !wget http://launchpadlibrarian.net/367274644/libgoogle-perftools-dev_2.5-2.2ubuntu3_amd64.deb\n"," !apt-get -y install -qq aria2\n","\n"," output_text = captured.stdout\n","\n"," # Use regex to find URLs in the captured output\n"," errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n"," # Display each URL as a clickable link\n"," for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"yfhr6Kry5nus"},"outputs":[],"source":["import re\n","from IPython.utils import io\n","custom_nodes = False #@param {type:\"boolean\"}\n","WAS_node_suite = True #@param {type:\"boolean\"}\n","\n","if custom_nodes:\n"," with io.capture_output() as captured:\n"," %cd custom_nodes # Start getting the latest updates from Github for the extensions.\n"," !git clone https://github.com/lilly1987/ComfyUI_node_Lilly.git\n"," %cd ComfyUI_node_Lilly\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes.git\n"," %cd Derfuu_ComfyUI_ModdedNodes\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/WASasquatch/was-node-suite-comfyui.git\n"," %cd was-node-suite-comfyui\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git\n"," %cd ComfyUI-Custom-Scripts\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/Fannovel16/FN16-ComfyUI-nodes.git\n"," %cd FN16-ComfyUI-nodes\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/omar92/ComfyUI-extra-nodes---quality-of-life.git\n"," %cd ComfyUI-extra-nodes---quality-of-life\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/guoyk93/yk-node-suite-comfyui.git\n"," %cd yk-node-suite-comfyui\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/gamert/ComfyUI_tagger.git\n"," %cd ComfyUI_tagger\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes.git\n"," %cd ComfyUI-Custom-Nodes\n"," !git pull\n"," %cd ../\n"," !git clone https://github.com/Davemane42/ComfyUI_Dave_CustomNode.git\n"," %cd ComfyUI_Dave_CustomNode\n"," !git pull\n"," %cd ../\n","\n"," %cd ../web/extensions\n"," !git clone https://github.com/diffus3/ComfyUI-extensions ./web/extensions/diffus3\n","\n"," %cd ../../script_examples\n"," !git clone https://github.com/lilly1987/ComfyUI-script.git\n"," !git clone https://github.com/lilly1987/ComfyUI_script2.git\n","\n","\n","if WAS_node_suite:\n"," with io.capture_output() as captured:\n"," !git -C /content/ComfyUI/custom_nodes clone https://github.com/WASasquatch/was-node-suite-comfyui/ \n","\n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n","# Display each URL as a clickable link\n","for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"SktLkvOS-lzN"},"outputs":[],"source":["import re\n","from IPython.utils import io\n","# SD2_1_models = True #@param {type:\"boolean\"}\n","T2I_OPTION = 't2iadapter_depth_sd14v1.pth' #@param['None', 't2iadapter_depth_sd14v1.pth', 't2iadapter_seg_sd14v1.pth', 't2iadapter_sketch_sd14v1.pth', 't2iadapter_keypose_sd14v1.pth', 't2iadapter_openpose_sd14v1.pth', 't2iadapter_color_sd14v1.pth', 't2iadapter_canny_sd14v1.pth', '/t2iadapter_style_sd14v1.pth']\n","CONTROLNET_OPTION = 'control_depth-fp16.safetensors' #@param['None', 'control_depth-fp16.safetensors', 'control_scribble-fp16.safetensors', 'control_openpose-fp16.safetensors']\n","MODEL_OPTION1 = 'dreamshaper_331BakedVae.safetensors' \t#@param['None', 'dreamshaper_331BakedVae.safetensors', 'revAnimated_v11.safetensors', 'chilloutmix_NiPrunedFp32Fix.safetensors', 'AbyssOrangeMix2_hard.safetensors', 'meowMixRealistic_prunedFp16FIXED.safetensors', 'neverendingDreamNED_bakedVae.safetensors']\n","MODEL_OPTION2 = 'neverendingDreamNED_bakedVae.safetensors' \t#@param['None', 'dreamshaper_331BakedVae.safetensors', 'revAnimated_v11.safetensors', 'chilloutmix_NiPrunedFp32Fix.safetensors', 'AbyssOrangeMix2_hard.safetensors', 'meowMixRealistic_prunedFp16FIXED.safetensors', 'neverendingDreamNED_bakedVae.safetensors']\n","LORA_OPTION1 = 'ShinyEyesStyle.safetensors' \t#@param['None', 'ShinyEyesStyle.safetensors', 'oversizedShirt_v10.safetensors', 'inniesBetterVaginas_v11.safetensors', 'negligee_v10.safetensors', 'gin00pussy_.safetensors', 'charturnerbetaLora_charturnbetalora.safetensors', 'epiNoiseoffset_v2.safetensors', 'epiNoiseoffset_v2Pynoise.safetensors', 'poseFixingHelper_posev4.safetensors', 'realSpreadPussy_sppSpreadpussyWV1.safetensors']\n","LORA_OPTION2 = 'epiNoiseoffset_v2.safetensors' \t#@param['None', 'ShinyEyesStyle.safetensors', 'oversizedShirt_v10.safetensors', 'inniesBetterVaginas_v11.safetensors', 'negligee_v10.safetensors', 'gin00pussy_.safetensors', 'charturnerbetaLora_charturnbetalora.safetensors', 'epiNoiseoffset_v2.safetensors', 'epiNoiseoffset_v2Pynoise.safetensors', 'poseFixingHelper_posev4.safetensors', 'realSpreadPussy_sppSpreadpussyWV1.safetensors']\n","UPSCALE_MODEL = '4x-UltraSharp.pth' #@param['None', 'RealESRGAN_x2.pth', 'RealESRGAN_x4.pth', '4x-UltraSharp.pth', '4x_RealisticRescaler_100000_G.pth']\n","download_vae = True #@param {type:\"boolean\"}\n","download_negative_embed = True #@param {type:\"boolean\"}\n","\n","with io.capture_output() as captured:\n"," if T2I_OPTION != 'None':\n"," # T2I-Adapter\n"," if T2I_OPTION == 't2iadapter_depth_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_seg_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_sketch_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_keypose_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_openpose_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_color_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n"," if T2I_OPTION == 't2iadapter_canny_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n","\n"," # T2I Styles Model\n"," if T2I_OPTION == '/t2iadapter_style_sd14v1.pth':\n"," !wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n"," !wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n","\n"," if CONTROLNET_OPTION != 'None':\n"," # ControlNet\n"," if CONTROLNET_OPTION == 'control_depth-fp16.safetensors':\n"," !wget -c https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors -P ./models/controlnet/\n"," !cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n"," if CONTROLNET_OPTION == 'control_scribble-fp16.safetensors':\n"," !wget -c https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors -P ./models/controlnet/\n"," !cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n"," if CONTROLNET_OPTION == 'control_openpose-fp16.safetensors':\n"," !wget -c https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -P ./models/controlnet/\n"," !cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n","\n"," if MODEL_OPTION1 != 'None':\n"," # Checkpoints\n"," if MODEL_OPTION1 == 'dreamshaper_331BakedVae.safetensors' or MODEL_OPTION2 == 'dreamshaper_331BakedVae.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/5636?type=Model&format=SafeTensor' -d ./models/checkpoints/ -o dreamshaper_331BakedVae.safetensors\n"," if MODEL_OPTION1 == 'revAnimated_v11.safetensors' or MODEL_OPTION2 == 'revAnimated_v11.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/19575?type=Model&format=SafeTensor' -d ./models/checkpoints/ -o revAnimated_v11.safetensors\n"," if MODEL_OPTION1 == 'chilloutmix_NiPrunedFp32Fix.safetensors' or MODEL_OPTION2 == 'chilloutmix_NiPrunedFp32Fix.safetensors':\n"," !wget -c https://huggingface.co/SakerLy/chilloutmix_NiPrunedFp32Fix/resolve/main/chilloutmix_NiPrunedFp32Fix.safetensors -P ./models/checkpoints/ -nc\n"," if MODEL_OPTION1 == 'meowMixRealistic_prunedFp16FIXED.safetensors' or MODEL_OPTION2 == 'meowMixRealistic_prunedFp16FIXED.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/21758' -d ./models/checkpoints/ -o meowMixRealistic_prunedFp16FIXED.safetensors\n"," if MODEL_OPTION1 == 'AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors' or MODEL_OPTION2 == 'AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors':\n"," !wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/ -nc\n"," if MODEL_OPTION1 == 'neverendingDreamNED_bakedVae.safetensors' or MODEL_OPTION2 == 'neverendingDreamNED_bakedVae.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/11925?type=Pruned%20Model&format=SafeTensor' -d ./models/checkpoints/ -o neverendingDreamNED_bakedVae.safetensors\n","\n"," if download_vae:\n"," # VAE\n"," !wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n"," #!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n"," #!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n","\n"," if download_negative_embed:\n"," #Embeddings\n"," !wget -c https://huggingface.co/datasets/Nerfgun3/bad_prompt/resolve/main/bad_prompt_version2.pt -P ./models/embeddings\n"," !wget -c https://huggingface.co/yesyeahvh/bad-hands-5/resolve/main/bad-hands-5.pt -P ./models/embeddings\n","\n"," if LORA_OPTION1 != 'None':\n"," # Loras\n"," if LORA_OPTION1 == 'ShinyEyesStyle.safetensors' or LORA_OPTION2 == 'ShinyEyesStyle.safetensors': \n"," !pip install --upgrade --no-cache-dir gdown\n"," !gdown 1MQBNdwqgTJCFa5wOg6FBq0-Hc9z-sGvH -O ./models/loras/ShinyEyesStyle.safetensors\n"," if LORA_OPTION1 == 'oversizedShirt_v10.safetensors' or LORA_OPTION2 == 'oversizedShirt_v10.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/12504 -d ./models/loras -o oversizedShirt_v10.safetensors\n"," if LORA_OPTION1 == 'inniesBetterVaginas_v11.safetensors' or LORA_OPTION2 == 'inniesBetterVaginas_v11.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/12873 -d ./models/loras -o inniesBetterVaginas_v11.safetensors\n"," if LORA_OPTION1 == 'negligee_v10.safetensors' or LORA_OPTION2 == 'negligee_v10.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/11979 -d ./models/loras -o negligee_v10.safetensors\n"," if LORA_OPTION1 == 'gin00pussy_.safetensors' or LORA_OPTION2 == 'gin00pussy_.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/10490 -d ./models/loras -o gin00pussy_.safetensors\n"," if LORA_OPTION1 == 'charturnerbetaLora_charturnbetalora.safetensors' or LORA_OPTION2 == 'charturnerbetaLora_charturnbetalora.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/8527 -d ./models/loras -o charturnerbetaLora_charturnbetalora.safetensors\n"," if LORA_OPTION1 == 'epiNoiseoffset_v2.safetensors' or LORA_OPTION2 =='epiNoiseoffset_v2.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/16576?type=Model&format=SafeTensor' -d ./models/loras -o epiNoiseoffset_v2.safetensors\n"," if LORA_OPTION1 == 'epiNoiseoffset_v2Pynoise.safetensors' or LORA_OPTION2 == 'epiNoiseoffset_v2Pynoise.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M 'https://civitai.com/api/download/models/18445?type=Model&format=SafeTensor' -d ./models/loras -o epiNoiseoffset_v2Pynoise.safetensors\n"," if LORA_OPTION1 == 'poseFixingHelper_posev4.safetensors' or LORA_OPTION2 == 'poseFixingHelper_posev4.safetensors': \n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/20974 -d ./models/loras -o poseFixingHelper_posev4.safetensors\n"," if LORA_OPTION1 == 'realSpreadPussy_sppSpreadpussyWV1.safetensors' or LORA_OPTION2 == 'realSpreadPussy_sppSpreadpussyWV1.safetensors':\n"," !aria2c --conditional-get --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/30420 -d ./models/loras -o realSpreadPussy_sppSpreadpussyWV1.safetensors\n","\n"," # ESRGAN upscale model\n"," if UPSCALE_MODEL == 'RealESRGAN_x2.pth':\n"," !wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n"," if UPSCALE_MODEL == 'RealESRGAN_x4.pth':\n"," !wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n"," if UPSCALE_MODEL == '4x-UltraSharp.pth':\n"," !wget -c https://huggingface.co/WuLing/SD-WebUI-TW/resolve/main/ESRGAN/4x-UltraSharp.pth -P ./models/upscale_models/\n"," if UPSCALE_MODEL == '4x_RealisticRescaler_100000_G.pth':\n"," !wget -c https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x_RealisticRescaler_100000_G.pth -P ./models/upscale_models/\n","\n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n","# Display each URL as a clickable link\n","for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"Xq3MHlKwpdsN"},"outputs":[],"source":["import re\n","run_elFinder = False #@param {type:\"boolean\"}\n","if run_elFinder:\n"," %store -r\n"," !pip -q install --upgrade gallery-dl gdown imjoy-elfinder\n","\n"," import threading\n"," from google.colab import output\n"," from imjoy_elfinder.app import main\n"," thread = threading.Thread(target=main, args=[[\"--root-dir=/content\", \"--port=8765\", \"--thumbnail\"]])\n"," thread.start()\n"," output.serve_kernel_port_as_window(8765)\n"," \n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","errors = re.findall(r'(?i)err(or)?.*', output_text)\n","\n","# Display each URL as a clickable link\n","for error in errors:\n"," print(error)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"fD6Cmdp1Pf8X"},"outputs":[],"source":["from IPython.utils import io\n","import re\n","\n","start_cloudflared_tunnel = True #@param {type:\"boolean\"}\n","if start_cloudflared_tunnel:\n"," with io.capture_output() as captured:\n"," !wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O /content/cloudflared-linux-amd64 && chmod 777 /content/cloudflared-linux-amd64\n"," import atexit, requests, subprocess, time, re, os\n"," from random import randint\n"," from threading import Timer\n"," from queue import Queue\n"," def cloudflared(port, metrics_port, output_queue):\n"," atexit.register(lambda p: p.terminate(), subprocess.Popen(['/content/cloudflared-linux-amd64', 'tunnel', '--url', f'http://127.0.0.1:{port}', '--metrics', f'127.0.0.1:{metrics_port}'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT))\n"," attempts, tunnel_url = 0, None\n"," while attempts < 10 and not tunnel_url:\n"," attempts += 1\n"," time.sleep(3)\n"," try:\n"," tunnel_url = re.search(\"(?Phttps?:\\/\\/[^\\s]+.trycloudflare.com)\", requests.get(f'http://127.0.0.1:{metrics_port}/metrics').text).group(\"url\")\n"," except:\n"," pass\n"," if not tunnel_url:\n"," raise Exception(\"Can't connect to Cloudflare Edge\")\n"," output_queue.put(tunnel_url)\n"," output_queue, metrics_port = Queue(), randint(8100, 9000)\n"," thread = Timer(2, cloudflared, args=(8188, metrics_port, output_queue))\n"," thread.start()\n"," thread.join()\n"," tunnel_url = output_queue.get()\n"," os.environ['webui_url'] = tunnel_url\n"," print(tunnel_url)\n","\n","output_text = captured.stdout\n","\n","# Use regex to find URLs in the captured output\n","urls = re.findall(r'(?Phttps?:\\/\\/[^\\s]+.trycloudflare.com)', output_text)\n","\n","# Display each URL as a clickable link\n","for url in urls:\n"," print(url)"]},{"cell_type":"code","execution_count":null,"metadata":{"cellView":"form","id":"la6-KZRupgtJ"},"outputs":[],"source":["import subprocess\n","import threading\n","import time\n","import socket\n","from IPython.utils import io\n","\n","start_local_tunnel = True #@param {type:\"boolean\"}\n","if start_local_tunnel:\n"," \n"," !npm install -g localtunnel\n","\n"," def capture_output(cmd):\n"," \"\"\"Capture the output of a command as it's running.\"\"\"\n"," proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n"," while True:\n"," line = proc.stdout.readline().decode().strip()\n"," if not line:\n"," break\n"," yield line\n","\n"," with io.capture_output() as captured:\n"," def iframe_thread(port):\n"," while True:\n"," time.sleep(0.5)\n"," sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n"," result = sock.connect_ex(('127.0.0.1', port))\n"," if result == 0:\n"," break\n"," sock.close()\n"," print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\")\n"," p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n"," for line in p.stdout:\n"," print(line.decode(), end='')\n","\n"," threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n"," !python main.py --dont-print-server"]}],"metadata":{"accelerator":"GPU","colab":{"provenance":[{"file_id":"1ss42wChy5FsDmm6ol0bXZQmdrlbr3Qsx","timestamp":1680765577824},{"file_id":"1Qk6OATak14Hv3MLdJRh7_aANKbXXgi4Z","timestamp":1678998068703}]},"gpuClass":"standard","kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file