| import argparse |
| import binascii |
| def str_to_bool (OO0O0000OOOOO0OO0 ): |
| if OO0O0000OOOOO0OO0 .lower ()in ('yes','true','t','y','1'): |
| return True |
| elif OO0O0000OOOOO0OO0 .lower ()in ('no','false','f','n','0'): |
| return False |
| else : |
| raise argparse .ArgumentTypeError ('Invalid boolean value: {}'.format (OO0O0000OOOOO0OO0 )) |
| parser =argparse .ArgumentParser () |
| parser .add_argument ('--Version',type =str ) |
| parser .add_argument ('--ControlNet',type =str_to_bool ) |
| args =parser .parse_args () |
| Version =args .Version |
| ControlNet =args .ControlNet |
| import sys |
| import os |
| import base64 |
| import importlib .util |
| from IPython import get_ipython |
| from IPython .display import clear_output |
| import tensorflow as tf |
| print ("TensorFlow version:",tf .__version__ ) |
| if tf .test .gpu_device_name (): |
| print ("GPU is available") |
| else : |
| print ("GPU is NOT available") |
| raise Exception ("\n没有使用GPU,请在代码执行程序-更改运行时类型-设置为GPU!\n如果不能使用GPU,建议更换账号!") |
| w =base64 .b64decode (("d2VidWk=").encode ('ascii')).decode ('ascii') |
| sdw =base64 .b64decode (("c3RhYmxlLWRpZmZ1c2lvbi13ZWJ1aQ==").encode ('ascii')).decode ('ascii') |
| l =base64 .b64decode (("bGF1bmNo").encode ('ascii')).decode ('ascii') |
| wb =f'/content/drive/MyDrive/XL' |
| sai =binascii .a2b_uu ("=<W1A8FQE+61I9F9U<VEO;BUS=&%B:6QI='DM86D`").decode ('utf-8') |
| sd =binascii .a2b_uu ("04W1A8FQE+61I9F9U<VEO;@``").decode ('utf-8') |
| get_ipython ().run_line_magic ('cd','/content') |
| get_ipython ().run_line_magic ('env','TF_CPP_MIN_LOG_LEVEL=1') |
| def gitDownload (O0O0O00OO00OOO00O ,OOOO00O0OO0O0O00O ): |
| if os .path .exists (OOOO00O0OO0O0O00O ): |
| return |
| get_ipython ().system (f'git clone {O0O0O00OO00OOO00O} {OOOO00O0OO0O0O00O}') |
| def installAdditional (): |
| O0OOO0O0OOO0O00O0 =[f'https://github.com/camenduru/sd-{w}-tunnels',f'https://github.com/etherealxx/batchlinks-{w}',f'https://github.com/camenduru/sd-civitai-browser',f'https://github.com/AUTOMATIC1111/{sdw}-rembg',f'https://github.com/thomasasfk/sd-{w}-aspect-ratio-helper',f'https://github.com/hanamizuki-ai/{sdw}-localization-zh_Hans',f'https://github.com/camenduru/{sdw}-catppuccin',f'https://github.com/Physton/sd-{w}-prompt-all-in-one',] |
| for OO0OO0O0O000O0OO0 in O0OOO0O0OOO0O00O0 : |
| O00OOOOOOOOOO0O00 =OO0OO0O0O000O0OO0 .split ('/')[-1 ] |
| if 'github'in OO0OO0O0O000O0OO0 : |
| get_ipython ().system (f'git clone {OO0OO0O0O000O0OO0} {wb}/extensions/{O00OOOOOOOOOO0O00}') |
| get_ipython ().system (f'rm -rf {wb}/embeddings/negative') |
| gitDownload (f'https://huggingface.co/embed/negative',f'{wb}/embeddings/negative') |
| get_ipython ().system (f'rm -rf {wb}/embeddings/negative/.git') |
| get_ipython ().system (f'rm {wb}/embeddings/negative/.gitattributes') |
| gitDownload (f'https://github.com/DominikDoom/a1111-sd-{w}-tagcomplete',f'{wb}/extensions/a1111-sd-{w}-tagcomplete') |
| get_ipython ().system (f'rm -f {wb}/extensions/a1111-sd-{w}-tagcomplete/tags/danbooru.csv') |
| get_ipython ().system (f'wget https://beehomefile.oss-cn-beijing.aliyuncs.com/20210114/danbooru.csv -O {wb}/extensions/a1111-sd-{w}-tagcomplete/tags/danbooru.csv') |
| gitDownload (f'https://github.com/Bing-su/adetailer',f'{wb}/extensions/adetailer') |
| O00O00O000OOO00OO =['control_v11e_sd15_ip2p.pth','control_v11e_sd15_shuffle.pth','control_v11f1e_sd15_tile.pth','control_v11f1p_sd15_depth.pth','control_v11p_sd15_canny.pth','control_v11p_sd15_inpaint.pth','control_v11p_sd15_lineart.pth','control_v11p_sd15_mlsd.pth','control_v11p_sd15_normalbae.pth','control_v11p_sd15_openpose.pth','control_v11p_sd15_scribble.pth','control_v11p_sd15_seg.pth','control_v11p_sd15_softedge.pth','control_v11p_sd15s2_lineart_anime.pth',] |
| get_ipython ().system (f'rm -rf {wb}/extensions/sd-{w}-controlnet') |
| if ControlNet : |
| gitDownload (f'https://github.com/Mikubill/sd-{w}-controlnet',f'{wb}/extensions/sd-{w}-controlnet') |
| for O00OO0OO00OO0OO00 in O00O00O000OOO00OO : |
| get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/{O00OO0OO00OO0OO00} -d {wb}/extensions/sd-{w}-controlnet/models -o {O00OO0OO00OO0OO00}') |
| print ("启用 ControlNet") |
| else : |
| print ("不启用 ControlNet") |
| def initLocal (): |
| get_ipython ().system (f'apt -y update -qq') |
| get_ipython ().system (f'wget https://huggingface.co/gmk123/colab/resolve/main/libtcmalloc_minimal.so.4 -O /content/libtcmalloc_minimal.so.4') |
| get_ipython ().run_line_magic ('env',f'LD_PRELOAD=/content/libtcmalloc_minimal.so.4') |
| get_ipython ().system (f'apt -y install -qq aria2 libcairo2-dev pkg-config python3-dev') |
| get_ipython ().system (f'pip install -q torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2+cu118 torchtext==0.15.2 torchdata==0.6.1 --extra-index-url https://download.pytorch.org/whl/cu118 -U') |
| get_ipython ().system (f'pip install -q xformers==0.0.20 triton==2.0.0 -U') |
| if Version =="XL": |
| get_ipython ().system (f'git clone -b master https://github.com/AUTOMATIC1111/{sdw} /root/main') |
| get_ipython ().system (f'git -C {wb}/repositories/{sai} reset --hard') |
| installAdditional () |
| get_ipython ().system (f'wget -O {wb}/config.json "https://huggingface.co/gmk123/colab/raw/main/config.json"') |
| get_ipython ().system (f'wget -O {wb}/styles.csv "https://huggingface.co/gmk123/colab/raw/main/styles.csv"') |
| OO0OO00OOOOO00O0O =f"{wb}/models/{sd}" |
| get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/chilloutmix/resolve/main/chilloutmix_NiPrunedFp32Fix.safetensors -d {OO0OO00OOOOO00O0O} -o chilloutmix_NiPrunedFp32Fix.safetensors') |
| get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -d {wb}/models/VAE -o vae-ft-mse-840000-ema-pruned.safetensors') |
| get_ipython ().system (f'aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/embed/upscale/resolve/main/4x-UltraSharp.pth -d {wb}/models/ESRGAN -o 4x-UltraSharp.pth') |
| def run (OOOOO0O0O00000OOO ): |
| clear_output () |
| get_ipython ().run_line_magic ('cd',f'{wb}') |
| get_ipython ().system (f'python {OOOOO0O0O00000OOO} --share --api --disable-safe-unpickle --enable-insecure-extension-access --no-download-sd-model --no-half-vae --xformers --disable-console-progressbars --theme dark --cors-allow-origins=*') |
| if os .path .exists (f'{wb}'): |
| run (f'{w}.py') |
| else : |
| initLocal () |
| run (f'{l}.py') |