Space2 / index.html
Phasmanta's picture
git add index.html git commit -m "Updated index.html" git push
b879375
#@title - Instant (Simple)
import requests
import os
import subprocess
cek = subprocess.getoutput('nvidia-smi')
from google.colab.output import eval_js
os.environ['colab_url'] = eval_js("google.colab.kernel.proxyPort(7860, {'cache': false})")
if not 'T4' in cek:
print("[1;32m-----Your colab session is over. Use other google account or wait 12-24 hours-----")
print("-----Sesi colab elu udah habis bro. Saran gw tunggu 12-24 jam atau bikin/pake akun google lain-----")
raise KeyboardInterrupt
#thanks to https://github.com/camenduru for the fork
print('[1;32mInstalling dependencies...')
print('[1;32m(This process will only happen once per session)')
print('[0m')
%cd /content
#!if ! [ -f xformers ]; then pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.16/xformers-0.0.16+814314d.d20230118-cp38-cp38-linux_x86_64.whl; pip install -q --pre triton; touch xformers; fi
if not os.path.isfile('dependencies'):
!gdown http://launchpadlibrarian.net/367274644/libgoogle-perftools-dev_2.5-2.2ubuntu3_amd64.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/google-perftools_2.5-2.2ubuntu3_all.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libtcmalloc-minimal4_2.5-2.2ubuntu3_amd64.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libgoogle-perftools4_2.5-2.2ubuntu3_amd64.deb
!apt install -qq libunwind8-dev
!dpkg -i *.deb
%env LD_PRELOAD=libtcmalloc.so
!rm *.deb
# print("Grabbing pre-built xformers from camenduru's repo")
# url = 'https://api.github.com/repos/camenduru/stable-diffusion-webui-colab/releases/latest'
# response = requests.get(url)
# print("Status code: " + str(response.status_code))
# if response.status_code == 200:
# data = response.json()
# templink = [link for link in [asset['browser_download_url'] for asset in data['assets'] if 'cp39' in asset['name']]]
# xformerlink = templink[0]
# else:
# print("Request failed, loading last updated xformers instead")
# xformerlink = 'https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.17/xformers-0.0.17+b6be33a.d20230315-cp39-cp39-linux_x86_64.whl'
# !pip install -q --pre xformers
!pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 torchtext==0.14.1 torchdata==0.5.1 --extra-index-url https://download.pytorch.org/whl/cu116 -U
!pip install -q xformers==0.0.16 triton==2.0.0 -U
# !pip install -q --pre xformers==0.0.17.dev476 -U
# !pip install -q --pre triton
!touch dependencies
print('[1;32mInstalling webui...')
print('[0m')
!if ! [ -d stable-diffusion-webui ]; then git clone -b v2.1 https://github.com/camenduru/stable-diffusion-webui; touch forkedwebui; fi
%cd stable-diffusion-webui
#AnythingV3 Model & Vae
print('[1;32mDownloading AnythingV3 model...')
print('[0m')
%cd /content/stable-diffusion-webui/models/Stable-diffusion/
!if ! [ -f Anything-V3.0.safetensors ]; then gdown https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp32-pruned.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.safetensors; fi
!if ! [ -f Anything-V3.0.vae.pt ]; then gdown https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt; fi
#webui setup for nai
print('[1;32mSetting UI configs...')
print('[0m')
%cd /content/stable-diffusion-webui
!if [ -f configinstan ]; then rm configinstan; fi
!if ! [ -f configinstanlite ]; then gdown https://pastebin.com/raw/fmN0i5Sd -O /content/stable-diffusion-webui/ui-config.json && gdown https://pastebin.com/raw/amVtB1NW -O /content/stable-diffusion-webui/config.json; fi
!if ! [ -f configinstanlite ]; then mv /content/stable-diffusion-webui/modules/ui.py /content/stable-diffusion-webui/modules/ui_backup.py && gdown https://pastebin.com/raw/pKFWUfLM -O /content/stable-diffusion-webui/modules/ui.py; fi
!touch configinstanlite
#notification bell
!gdown https://github.com/etherealxx/etherportal-webui-colab/raw/master/notification.mp3 -O /content/stable-diffusion-webui/notification.mp3
#foolhardy remacri
! [ ! -d models/ESRGAN ] && mkdir -p models/ESRGAN; [ ! -f models/ESRGAN/4x_foolhardy_Remacri.pth ] && gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/4x_foolhardy_Remacri.pth -O /content/stable-diffusion-webui/models/ESRGAN/4x_foolhardy_Remacri.pth
#extensions
print('[1;32mInstalling extensions...')
print('[0m')
%cd /content/stable-diffusion-webui/extensions
!bash -c 'for repo in camenduru/stable-diffusion-webui-images-browser Extraltodeus/depthmap2mask ddPn08/kohya-sd-scripts-webui arenatemp/stable-diffusion-webui-model-toolkit; do if [ ! -d "repo" && true; fi; done' #DominikDoom/a1111-sd-webui-tagcomplete
!bash -c 'for repo in sd-civitai-browser kohya-sd-scripts-webui stable-diffusion-webui-model-toolkit batchlinks-webui; do if [ -d "
repo && true; fi; done'
#%cd /content/stable-diffusion-webui/extensions/UnivAICharGen
#!git checkout c56b5146049b91cfcd645c62bd356bd0631c4131 .
!git clone -b pre-embedding --single-branch https://github.com/etherealxx/Umi-AI
#badprompt & badartist
%cd /content/stable-diffusion-webui/embeddings/
!if ! [ -f bad_prompt.pt ]; then gdown https://huggingface.co/datasets/Nerfgun3/bad_prompt/resolve/main/bad_prompt_version2.pt -O /content/stable-diffusion-webui/embeddings/bad_prompt.pt; fi
!if ! [ -f bad_artist.pt ]; then gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/bad_artist.pt -O /content/stable-diffusion-webui/embeddings/bad_artist.pt; fi
!if ! [ -f bad_hands.pt ]; then gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/bad-hands-5.pt -O /content/stable-diffusion-webui/embeddings/bad_hands.pt; fi
#some fix
!sed -i -e '''/ prepare_environment()/a\ os.system\(f\"""sed -i -e ''\"s/dict()))/dict())).cuda()/g\"'' /content/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/util.py""")''' /content/stable-diffusion-webui/launch.py
!sed -i -e 's/fastapi==0.90.1/fastapi==0.89.1/g' /content/stable-diffusion-webui/requirements_versions.txt
print('[1;32mInstallation Success!')
print('[1;32mLaunching the webui...')
print('[0m')
%cd /content/stable-diffusion-webui
!python launch.py --ckpt /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.safetensors --vae-path /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt --share --xformers --enable-insecure-extension-access --gradio-queue
#@title - Instant (Advanced)
import requests
import os
import subprocess
cek = subprocess.getoutput('nvidia-smi')
if not 'T4' in cek:
print("[1;32m-----Your colab session is over. Use other google account or wait 12-24 hours-----")
print("-----Sesi colab elu udah habis bro. Saran gw tunggu 12-24 jam atau bikin/pake akun google lain-----")
raise KeyboardInterrupt
from google.colab.output import eval_js
os.environ['colab_url'] = eval_js("google.colab.kernel.proxyPort(7860, {'cache': false})")
#thanks to https://github.com/camenduru for the fork
print('[1;32mInstalling dependencies...')
print('[1;32m(This process will only happen once per session)')
print('[0m')
%cd /content
#!if ! [ -f xformers ]; then pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.16/xformers-0.0.16+814314d.d20230118-cp38-cp38-linux_x86_64.whl; pip install -q --pre triton; touch xformers; fi
if not os.path.isfile('dependencies'):
!gdown http://launchpadlibrarian.net/367274644/libgoogle-perftools-dev_2.5-2.2ubuntu3_amd64.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/google-perftools_2.5-2.2ubuntu3_all.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libtcmalloc-minimal4_2.5-2.2ubuntu3_amd64.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libgoogle-perftools4_2.5-2.2ubuntu3_amd64.deb
!apt install -qq libunwind8-dev
!dpkg -i *.deb
%env LD_PRELOAD=libtcmalloc.so
!rm *.deb
# print("Grabbing pre-built xformers from camenduru's repo")
# url = 'https://api.github.com/repos/camenduru/stable-diffusion-webui-colab/releases/latest'
# response = requests.get(url)
# print("Status code: " + str(response.status_code))
# if response.status_code == 200:
# data = response.json()
# templink = [link for link in [asset['browser_download_url'] for asset in data['assets'] if 'cp39' in asset['name']]]
# xformerlink = templink[0]
# else:
# print("Request failed, loading last updated xformers instead")
# xformerlink = 'https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.17/xformers-0.0.17+b6be33a.d20230315-cp39-cp39-linux_x86_64.whl'
# !pip install -q --pre xformers
!pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 torchtext==0.14.1 torchdata==0.5.1 --extra-index-url https://download.pytorch.org/whl/cu116 -U
!pip install -q xformers==0.0.16 triton==2.0.0 -U
# !pip install -q --pre xformers==0.0.17.dev476 -U
# !pip install -q --pre triton
!touch dependencies
print('[1;32mInstalling webui...')
print('[0m')
!if ! [ -d stable-diffusion-webui ]; then git clone -b v2.1 https://github.com/camenduru/stable-diffusion-webui; touch forkedwebui; fi
%cd stable-diffusion-webui
#AnythingV3 Model & Vae
print('[1;32mDownloading AnythingV3 model...')
print('[0m')
%cd /content/stable-diffusion-webui/models/Stable-diffusion/
!if ! [ -f Anything-V3.0.safetensors ]; then gdown https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp32-pruned.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.safetensors; fi
!if ! [ -f Anything-V3.0.vae.pt ]; then gdown https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt; fi
#webui setup for nai
print('[1;32mSetting UI configs...')
print('[0m')
%cd /content/stable-diffusion-webui
!if [ -f configinstanlite ]; then rm configinstanlite && rm /content/stable-diffusion-webui/modules/ui.py && mv /content/stable-diffusion-webui/modules/ui_backup.py /content/stable-diffusion-webui/modules/ui.py; fi
!if ! [ -f configinstan ]; then gdown https://pastebin.com/raw/gMTvTUUZ -O /content/stable-diffusion-webui/ui-config.json && gdown https://pastebin.com/raw/VviKmfiQ -O /content/stable-diffusion-webui/config.json; fi
!touch configinstan
#notification bell
!gdown https://github.com/etherealxx/etherportal-webui-colab/raw/master/notification.mp3 -O /content/stable-diffusion-webui/notification.mp3
#foolhardy remacri
! [ ! -d models/ESRGAN ] && mkdir -p models/ESRGAN; [ ! -f models/ESRGAN/4x_foolhardy_Remacri.pth ] && gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/4x_foolhardy_Remacri.pth -O /content/stable-diffusion-webui/models/ESRGAN/4x_foolhardy_Remacri.pth
#extensions
print('[1;32mInstalling extensions...')
print('[0m')
%cd /content/stable-diffusion-webui/extensions
!bash -c 'for repo in camenduru/stable-diffusion-webui-images-browser camenduru/sd-civitai-browser Extraltodeus/depthmap2mask ddPn08/kohya-sd-scripts-webui arenatemp/stable-diffusion-webui-model-toolkit etherealxx/batchlinks-webui; do if [ ! -d "
repo" && true; fi; done' #DominikDoom/a1111-sd-webui-tagcomplete
# !git clone -b lora --single-branch https://github.com/etherealxx/sd-civitai-browser
!git clone -b pre-embedding --single-branch https://github.com/etherealxx/Umi-AI
#%cd /content/stable-diffusion-webui/extensions/UnivAICharGen
#!git checkout c56b5146049b91cfcd645c62bd356bd0631c4131 .
#badprompt & badartist
%cd /content/stable-diffusion-webui/embeddings/
!if ! [ -f bad_prompt.pt ]; then gdown https://huggingface.co/datasets/Nerfgun3/bad_prompt/resolve/main/bad_prompt_version2.pt -O /content/stable-diffusion-webui/embeddings/bad_prompt.pt; fi
!if ! [ -f bad_artist.pt ]; then gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/bad_artist.pt -O /content/stable-diffusion-webui/embeddings/bad_artist.pt; fi
!if ! [ -f bad_hands.pt ]; then gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/bad-hands-5.pt -O /content/stable-diffusion-webui/embeddings/bad_hands.pt; fi
#some fix
!sed -i -e '''/ prepare_environment()/a\ os.system\(f\"""sed -i -e ''\"s/dict()))/dict())).cuda()/g\"'' /content/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/util.py""")''' /content/stable-diffusion-webui/launch.py
!sed -i -e 's/fastapi==0.90.1/fastapi==0.89.1/g' /content/stable-diffusion-webui/requirements_versions.txt
print('[1;32mInstallation Success!')
print('[1;32mLaunching the webui...')
print('[0m')
%cd /content/stable-diffusion-webui
!python launch.py --ckpt /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.safetensors --vae-path /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt --share --xformers --enable-insecure-extension-access --gradio-queue
#@title (for mobile/android user, run this first before Instant/Manual)
%%html
Press play on the music player to keep the tab alive (Uses only 13MB of data)
Untuk pengguna mobile, tekan play di musik di bawah
Fungsinya agar bisa make Colabnya lebih lama (make kuota 13MB)
- Manual (Open Dropdown👇)
Run the 1. installation cell
Choose your desired model, then run the 2. Download Model cell (you can repeat this step to download several model before you launch the webui)
Open the dropdown of 3. Run (Choose one👇), then choose one of the two available methods (doesn't matter which one)
#@title 1. Installation
webui_version = "camenduru's fork (stable)" #@param ["camenduru's fork (stable)", "original automatic1111 repo (latest feature, might be buggy)"]
import shutil
import os
import requests
import subprocess
cek = subprocess.getoutput('nvidia-smi')
if not 'T4' in cek:
print("[1;32m-----Your colab session is over. Use other google account or wait 12-24 hours-----")
print("-----Sesi colab elu udah habis bro. Saran gw tunggu 12-24 jam atau bikin/pake akun google lain-----")
raise KeyboardInterrupt
from google.colab.output import eval_js
os.environ['colab_url'] = eval_js("google.colab.kernel.proxyPort(7860, {'cache': false})")
print('[1;32mInstalling dependencies...')
print('[1;32m(This process will only happen once per session)')
print('[0m')
%cd /content
#!if ! [ -f xformers ]; then pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.16/xformers-0.0.16+814314d.d20230118-cp38-cp38-linux_x86_64.whl; pip install -q --pre triton; touch xformers; fi
if not os.path.isfile('dependencies'):
!gdown http://launchpadlibrarian.net/367274644/libgoogle-perftools-dev_2.5-2.2ubuntu3_amd64.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/google-perftools_2.5-2.2ubuntu3_all.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libtcmalloc-minimal4_2.5-2.2ubuntu3_amd64.deb
!gdown https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libgoogle-perftools4_2.5-2.2ubuntu3_amd64.deb
!apt install -qq libunwind8-dev
!dpkg -i *.deb
%env LD_PRELOAD=libtcmalloc.so
!rm *.deb
# print("Grabbing pre-built xformers from camenduru's repo")
# url = 'https://api.github.com/repos/camenduru/stable-diffusion-webui-colab/releases/latest'
# response = requests.get(url)
# print("Status code: " + str(response.status_code))
# if response.status_code == 200:
# data = response.json()
# templink = [link for link in [asset['browser_download_url'] for asset in data['assets'] if 'cp39' in asset['name']]]
# xformerlink = templink[0]
# else:
# print("Request failed, loading last updated xformers instead")
# xformerlink = 'https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.17/xformers-0.0.17+b6be33a.d20230315-cp39-cp39-linux_x86_64.whl'
# !pip install -q --pre xformers
!pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 torchtext==0.14.1 torchdata==0.5.1 --extra-index-url https://download.pytorch.org/whl/cu116 -U
!pip install -q xformers==0.0.16 triton==2.0.0 -U
# !pip install -q --pre xformers==0.0.17.dev476 -U
# !pip install -q --pre triton
!touch dependencies
print('[1;32mInstalling webui...')
print('[0m')
if webui_version=="camenduru's fork (stable)":
!if ! [ -f forkedwebui ]; then echo "cloning from camenduru's fork"; rm -rf stable-diffusion-webui; git clone -b v2.1 https://github.com/camenduru/stable-diffusion-webui; sed -i -e '''/ prepare_environment()/a\ os.system\(f\"""sed -i -e ''\"s/dict()))/dict())).cuda()/g\"'' /content/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/util.py""")''' /content/stable-diffusion-webui/launch.py; sed -i -e 's/fastapi==0.90.1/fastapi==0.89.1/g' /content/stable-diffusion-webui/requirements_versions.txt; touch forkedwebui; fi
else:
!if [ -f forkedwebui ]; then rm forkedwebui; mv '/content/stable-diffusion-webui/models/Stable-diffusion' '/content/temp'; rm -rf stable-diffusion-webui; fi
!if ! [ -d stable-diffusion-webui ]; then echo "cloning from official repo"; git clone https://github.com/automatic1111/stable-diffusion-webui; cp -rf '/content/temp'/* '/content/stable-diffusion-webui/models/Stable-diffusion'; rm -rf '/content/temp'; fi
%cd stable-diffusion-webui
#webui setup for nai
print('[1;32mSetting UI configs...')
print('[0m')
%cd /content/stable-diffusion-webui
!if [ -f configinstanlite ]; then rm configinstanlite && rm /content/stable-diffusion-webui/modules/ui.py && mv /content/stable-diffusion-webui/modules/ui_backup.py /content/stable-diffusion-webui/modules/ui.py; fi
!if ! [ -f configinstan ]; then gdown https://pastebin.com/raw/gMTvTUUZ -O /content/stable-diffusion-webui/ui-config.json && gdown https://pastebin.com/raw/VviKmfiQ -O /content/stable-diffusion-webui/config.json; fi
!touch configinstan
#notification bell
!gdown https://github.com/etherealxx/etherportal-webui-colab/raw/master/notification.mp3 -O /content/stable-diffusion-webui/notification.mp3
#foolhardy remacri
! [ ! -d models/ESRGAN ] && mkdir -p models/ESRGAN; [ ! -f models/ESRGAN/4x_foolhardy_Remacri.pth ] && gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/4x_foolhardy_Remacri.pth -O /content/stable-diffusion-webui/models/ESRGAN/4x_foolhardy_Remacri.pth
#temporaryfix
#extensions
print('[1;32mInstalling extensions...')
print('[0m')
%cd /content/stable-diffusion-webui/extensions
!bash -c 'for repo in camenduru/stable-diffusion-webui-images-browser camenduru/sd-civitai-browser Extraltodeus/depthmap2mask kohya-ss/sd-webui-additional-networks etherealxx/batchlinks-webui; do if [ ! -d "
repo" && true; fi; done' #DominikDoom/a1111-sd-webui-tagcomplete
!git clone -b pre-embedding --single-branch https://github.com/etherealxx/Umi-AI
#%cd /content/stable-diffusion-webui/extensions/UnivAICharGen
#!if [ -f forkedwebui ]; then git checkout c56b5146049b91cfcd645c62bd356bd0631c4131 .; fi
# !git clone -b lora --single-branch https://github.com/etherealxx/sd-civitai-browser
#badprompt & badartist
%cd /content/stable-diffusion-webui/embeddings/
!if ! [ -f bad_prompt.pt ]; then gdown https://huggingface.co/datasets/Nerfgun3/bad_prompt/resolve/main/bad_prompt_version2.pt -O /content/stable-diffusion-webui/embeddings/bad_prompt.pt; fi
!if ! [ -f bad_artist.pt ]; then gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/bad_artist.pt -O /content/stable-diffusion-webui/embeddings/bad_artist.pt; fi
!if ! [ -f bad_hands.pt ]; then gdown https://huggingface.co/etherealxx/whoseisthis/resolve/main/bad-hands-5.pt -O /content/stable-diffusion-webui/embeddings/bad_hands.pt; fi
print('[1;32mInstallation Success!')
print('[0m')
#@title 2. Download Model
Model_to_download="Anythingv3" #@param [ "Anythingv3", "WaifuDiffusion-Vae", "Eimis", "EvtV3", "ACertain", "ElysiumV3", "Wlop-any", "LeafMix", "Abyss7thLayer", "Healys", "LigneClaire", "KriboMix", "InizioSkinjob", "PantyStocking", "WaifuBodyBlenderMix", "StuffyMix", "AbyssOrangeMix2", "AbyssOrangeMix3", "8528", "AmbrosiaFusion", "AniMeth", "AnythingV4.0", "ArchonInstagram", "CounterveitV2.5", "CounterveitV2.2", "CounterveitV2.2", "HD-17", "HDDreamGape", "MomochaMix", "Mozarella", "PadoruDiffusion", "PastelMix", "Protothing", "Shirayuki", "NutMegMix", "KaniAnime", "EverythingMix", "BlossomExtract", "HentaiElysium", "BerryMix", "Systemy-CSR", "ElyOrangeMix", "AnyTwamMix", "DarkberryMix", "Grapefruit", "Mitsudoue"]
#@markdown Confused on what model to choose? Look for examples and comparison [here](https://github.com/etherealxx/etherportal-webui-colab/blob/master/ModelComparison.md).
#@markdown If the download speed is slow (Below 10MiB/s), press the stop button then re-run the cell)
#@markdown If the model you wanted isn't listed, and you have the direct link, paste it to the form below. (Supported link: Huggingface, MEGA)
optional_direct_link='' #@param {type:"string"}
import os
import urllib.request, subprocess, contextlib #these handle mega.nz
from IPython.display import clear_output #this also handle mega.nz
from IPython.utils import capture
import requests
from tqdm import tqdm
folder = '/content/stable-diffusion-webui/models/Stable-diffusion/'
def checkdownloaded(pathx):
if os.path.exists(pathx) or (os.path.exists(os.path.join(folder, 'Anything-V3.0.safetensors')) and Model_to_download=="Anythingv3"):
if pathx.endswith("tmp"):
os.remove(pathx)
else:
print(f'[1;32mThat model is already downloaded.')
print('[0m')
return 2
#civitstuff
checkerpath = os.path.join(folder, 'civitmodel.txt')
alreadythere = False
def checkearlycivit():
alreadythere = False
lines = []
if not os.path.exists(checkerpath):
!touch {checkerpath}
#check for unavailable model first
if os.stat(checkerpath).st_size != 0:
with open(checkerpath, "r") as file:
for line in file:
key, value = line.strip().split(" = ")
modelfile = os.path.join(folder, value)
if os.path.exists(modelfile):
lines.append(line)
if key == Model_to_download:
alreadythere = True
else:
print(f"Seems like {key} model is not found on the model folder.")
print()
with open(checkerpath, "w") as file:
file.writelines(lines)
if alreadythere == True: return 2
def civitgetpath(modelname):
with open(checkerpath, "r") as file:
for line in file:
key, value = line.strip().split(" = ")
if key == modelname:
return os.path.join(folder, value)
def civitwrite(modelname):
towrite = f"{Model_to_download} = {modelname}"
with open(checkerpath, "a") as file:
file.write(towrite + "\n")
#civitstuffend
def download_hf(link):
filename = link.rsplit('/', 1)[-1]
if Model_to_download == 'WaifuDiffusion-Vae':
filename = 'WD-vae.vae.pt'
elif Model_to_download == 'Anythingv3':
filename = 'Anything-V3.0.safetensors'
hfpath = os.path.join(folder, filename)
check = checkdownloaded(hfpath)
if check == 2:
if Model_to_download=='Anythingv3' and not os.path.exists(os.path.join(folder, 'Anything-V3.0.vae.pt')):
!gdown https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt
return
print(f'\033[1;32mDownloading {Model_to_download} Model...\033[0m')
!gdown {link} -O /content/stable-diffusion-webui/models/Stable-diffusion/{filename}
if Model_to_download=='Anythingv3':
!gdown https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -O /content/stable-diffusion-webui/models/Stable-diffusion/Anything-V3.0.vae.pt
print(f'\033[1;32mModel Downloaded.\033[0m')
def download_civit(url):
print(f'\033[1;32mDownloading {Model_to_download} Model...\033[0m')
head_response = requests.head(url)
total = int(head_response.headers.get('Content-Length', 0))
civitcheck = checkearlycivit()
if civitcheck == 2: #model exist
civitpath = civitgetpath(Model_to_download)
downloaded_size = os.path.getsize(civitpath)
if total != 0 and downloaded_size != total:
os.remove(civitpath)
checkearlycivit()
print(f'Removed incomplete download: {Model_to_download}')
else:
print(f'[1;32mThat model is already downloaded.')
print('[0m')
return
downloaded_size = 0
if not civitcheck == 2:
pathtemp = os.path.join(folder, Model_to_download + ".bdgh")
print(f'The model "{Model_to_download}" will be renamed correctly after downloading')
with open(pathtemp, 'wb') as file, tqdm(
desc=pathtemp,
total=total,
unit='iB',
unit_scale=True,
unit_divisor=1024,
initial=downloaded_size,
) as bar:
resp = requests.get(url, stream=True)
for data in resp.iter_content(chunk_size=1024):
size = file.write(data)
bar.update(size)
# Check if the file has been downloaded successfully
downloaded_size = os.path.getsize(pathtemp)
if (total != 0 and downloaded_size != total) or (downloaded_size < 1000):
# Remove the file if it has not been downloaded successfully
os.remove(pathtemp)
print()
if downloaded_size < 1000:
print(f'The model "{Model_to_download}" is probably had the link changed. Contact the owner of this repo.')
else:
print(f'Removed incomplete download: {Model_to_download}')
return
actualfilename = resp.headers['Content-Disposition'].split("filename=")[1].strip('"')
#%cd {folder}
os.rename(pathtemp, os.path.join(folder, actualfilename))
print (f'Model "{Model_to_download}.bdgh" renamed to "{actualfilename}"')
civitwrite(actualfilename)
print(f'\033[1;32mModel Downloaded.\033[0m')
print('[1;32mInstalling webui...')
with capture.capture_output() as cap:
%cd /content
!if ! [ -d stable-diffusion-webui ]; then git clone -b v1.6 https://github.com/camenduru/stable-diffusion-webui; touch forkedwebui; fi
print('[0m')
!if [ -f {folder}'Put Stable Diffusion checkpoints here.txt' ]; then rm {folder}'Put Stable Diffusion checkpoints here.txt'; fi
%cd {folder}
#sfw
if Model_to_download=='Anythingv3':
download_hf('https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp32-pruned.safetensors')
if Model_to_download=='WaifuDiffusion-Vae':
download_hf('https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt')
if Model_to_download=='Eimis':
download_hf('https://huggingface.co/eimiss/EimisAnimeDiffusion_1.0v/resolve/main/EimisAnimeDiffusion_1-0v.ckpt')
if Model_to_download=='EvtV3':
download_hf('https://huggingface.co/haor/Evt_V3/resolve/main/Evt_V3_ema.ckpt')
if Model_to_download=='ACertain':
download_hf('https://huggingface.co/JosephusCheung/ACertainModel/resolve/main/ACertainModel.ckpt')
if Model_to_download=='ElysiumV3':
download_hf('https://huggingface.co/hesw23168/SD-Elysium-Model/resolve/main/Elysium_Anime_V3.safetensors')
if Model_to_download=='Wlop-any':
download_hf('https://huggingface.co/SirVeggie/wlop/resolve/main/wlop-any.ckpt')
if Model_to_download=='LeafMix':
download_hf('https://huggingface.co/etherealxx/anyleaf-temp/resolve/main/Leaf-pruned.safetensors')
if Model_to_download=='Abyss7thLayer':
download_hf('https://huggingface.co/syaimu/7th_Layer/resolve/main/7th_layer/Abyss_7th_layer.ckpt')
if Model_to_download=='Healys':
download_civit('https://civitai.com/api/download/models/1498')
if Model_to_download=='LigneClaire':
download_hf('https://huggingface.co/breakcore2/ligne_claire_anime_diffusion/resolve/main/ligne_claire_anime_diffusion_v1.safetensors')
if Model_to_download=='KriboMix':
download_civit('https://civitai.com/api/download/models/1289')
if Model_to_download=='InizioSkinjob':
download_hf('https://huggingface.co/Cinnamomo/inizio/resolve/main/safetensor/inizio_skinjob.safetensors')
if Model_to_download=='PantyStocking':
download_civit('https://civitai.com/api/download/models/1560')
if Model_to_download=='WaifuBodyBlenderMix':
download_civit('https://civitai.com/api/download/models/1838')
if Model_to_download=='StuffyMix':
download_civit('https://civitai.com/api/download/models/3376')
if Model_to_download=='AbyssOrangeMix2':
download_hf('https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors')
if Model_to_download=='AbyssOrangeMix3':
download_hf('https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3
.safetensors')
if Model_to_download=='8528':
download_hf('https://huggingface.co/ckpt/8528-diffusion/resolve/main/8528d-final.ckpt')
if Model_to_download=='AmbrosiaFusion':
download_hf('https://huggingface.co/NiteStormz/ProtoThing_200/resolve/main/AmbrosiaFusion.ckpt')
if Model_to_download=='AniMeth':
download_hf('https://huggingface.co/Rasgeath/self_made_sauce/resolve/main/AniMeth.safetensors')
if Model_to_download=='AnythingV4.0':
download_hf('https://huggingface.co/andite/anything-v4.0/resolve/main/anything-v4.0-pruned.safetensors')
if Model_to_download=='ArchonInstagram':
download_hf('https://huggingface.co/misobarisic/playground/resolve/main/ArchonInstagram-fp16.ckpt')
if Model_to_download=='CounterveitV2.5':
download_hf('https://huggingface.co/gsdf/Counterfeit-V2.5/resolve/main/Counterfeit-V2.5_pruned.safetensors')
if Model_to_download=='CounterveitV2.2':
download_hf('https://huggingface.co/gsdf/Counterfeit-V2.5/resolve/main/Counterfeit-V2.2.safetensors')
if Model_to_download=='CounterveitV2.2':
download_hf('https://huggingface.co/gsdf/Counterfeit-V2.5/resolve/main/Counterfeit-V2.2.safetensors')
if Model_to_download=='HD-17':
download_hf('https://huggingface.co/Deltaadams/HentaiDiffusion/resolve/main/HD-17.ckpt')
if Model_to_download=='HDDreamGape':
download_hf('https://huggingface.co/Horsebird/HDDream-G/resolve/main/HDDream-Gape.safetensors')
if Model_to_download=='MomochaMix':
download_hf('https://huggingface.co/NoCrypt/momocha-mix/resolve/main/momocha-6E7-0.315-AD-E7-0.15-WS.ckpt')
if Model_to_download=='Mozarella':
download_hf('https://huggingface.co/Rasgeath/self_made_sauce/resolve/main/Mozzarella-pruned.safetensors')
if Model_to_download=='PadoruDiffusion':
download_hf('https://huggingface.co/misobarisic/playground/resolve/main/padoruDiffusion_1.ckpt')
if Model_to_download=='PastelMix':
download_hf('https://huggingface.co/andite/pastel-mix/resolve/main/pastelmix-fp32.safetensors')
if Model_to_download=='Protothing':
download_hf('https://huggingface.co/NiteStormz/ProtoThing_200/resolve/main/ProtoThing_200.ckpt')
if Model_to_download=='Shirayuki':
download_hf('https://huggingface.co/hesw23168/SD_Shirayuki_Model/resolve/main/Shirayuki_Anime_V1-fp16.safetensors')
if Model_to_download=='NutMegMix':
download_hf('https://huggingface.co/acheong08/nutmegmix/resolve/main/nutmegmix.safetensors')
if Model_to_download=='KaniAnime':
download_hf('https://huggingface.co/Rasgeath/self_made_sauce/resolve/main/Kani-anime-pruned.ckpt')
if Model_to_download=='EverythingMix':
download_hf('https://huggingface.co/DrBob2142/Everything/resolve/main/Everything%20V1B.safetensors')
if Model_to_download=='BlossomExtract':
download_hf('https://huggingface.co/NUROISEA/anything-mix/resolve/main/blossom-extract.safetensors')
if Model_to_download=='HentaiElysium':
download_hf('https://huggingface.co/NUROISEA/anything-mix/resolve/main/hentai-elysium-50.safetensors')
#nsfw
if Model_to_download=='BerryMix':
download_hf('https://huggingface.co/misobarisic/berry-mix/resolve/main/berry_mix.ckpt')
if Model_to_download=='Systemy-CSR':
download_hf('https://huggingface.co/etherealxx/systemy-csrmodel-cutesexyrobutts/resolve/main/CSRmodel_1-CSRmodel_0-Weighted_sum-merged.ckpt')
if Model_to_download=='ElyOrangeMix':
download_hf('https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/ElyOrangeMix/ElyOrangeMix.ckpt')
if Model_to_download=='AnyTwamMix':
download_civit('https://civitai.com/api/download/models/4527')
if Model_to_download=='DarkberryMix':
download_civit('https://civitai.com/api/download/models/1992')
if Model_to_download=='Grapefruit':
download_civit('https://civitai.com/api/download/models/6360')
if Model_to_download=='Mitsudoue':
download_civit('https://civitai.com/api/download/models/1454')
#these code below handle mega.nz
def unbuffered(proc, stream='stdout'):
stream = getattr(proc, stream)
with contextlib.closing(stream):
while True:
out = []
last = stream.read(1)
# Don't loop forever
if last == '' and proc.poll() is not None:
break
while last not in newlines:
# Don't loop forever
if last == '' and proc.poll() is not None:
break
out.append(last)
last = stream.read(1)
out = ''.join(out)
yield out
def transfare():
import codecs
decoder = codecs.getincrementaldecoder("UTF-8")()
cmd = ["mega-get", optional_direct_link, folder]
proc = subprocess.Popen(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True,
)
for line in unbuffered(proc):
if not line.startswith("Download"):
print(f"\r{line}", end="")
else:
print(f"\n{line}")
def installmega():
HOME = os.path.expanduser("~")
if not os.path.exists(f"{HOME}/.ipython/ocr.py"):
hCode = "https://raw.githubusercontent.com/biplobsd/" \
"OneClickRun/master/res/ocr.py"
urllib.request.urlretrieve(hCode, f"{HOME}/.ipython/ocr.py")
from ocr import (
runSh,
loadingAn,
)
if not os.path.exists("/usr/bin/mega-cmd"):
loadingAn()
print("Installing MEGA ...")
runSh('sudo apt-get -y update')
runSh('sudo apt-get -y install libmms0 libc-ares2 libc6 libcrypto++6 libgcc1 libmediainfo0v5 libpcre3 libpcrecpp0v5 libssl1.1 libstdc++6 libzen0v5 zlib1g apt-transport-https')
runSh('sudo curl -sL -o /var/cache/apt/archives/MEGAcmd.deb https://mega.nz/linux/MEGAsync/Debian_9.0/amd64/megacmd-Debian_9.0_amd64.deb', output=True)
runSh('sudo dpkg -i /var/cache/apt/archives/MEGAcmd.deb', output=True)
print("MEGA is installed.")
clear_output()
#these code above handle mega.nz
if optional_direct_link!='':
if optional_direct_link.startswith("https://huggingface.co/"):
custom_download = os.path.basename(optional_direct_link)
custom_path = os.path.join(folder,custom_download)
if not os.path.isfile(custom_path):
print(f'[1;32mDownloading {custom_download}')
print('[0m')
!gdown {optional_direct_link} -O {custom_path}
else:
print(f'[1;32mThat custom model is already downloaded.')
print('[0m')
elif optional_direct_link.startswith("https://mega.nz/"):
print(f'[1;32mDownloading from a Mega link')
print('[0m')
installmega()
newlines = ['\n', '\r\n', '\r']
transfare()
files = os.listdir(folder)
for file in files:
if file.endswith('tmp') or file.endswith('bdgh'):
file_path = os.path.join(folder, file)
print(f"Removed incomplete download: {file_path}")
os.remove(file_path)
for root, dirs, files in os.walk(folder):
for file in files:
if file.endswith('.ckpt') or file.endswith('.safetensors'):
checksizepath = os.path.join(root, file)
MB = 1000000 # 1 megabyte = 1000000 bytes
lorapath = '/content/stable-diffusion-webui/models/Lora'
if os.path.getsize(checksizepath) < 200 * MB:
if os.path.getsize(checksizepath) < MB:
os.remove(checksizepath)
print()
print(f'The model {checksizepath} is probably had the link changed. Contact the owner of this repo.')
else:
if not os.path.exists(lorapath):
os.makedirs(lorapath)
os.rename(checksizepath, os.path.join(lorapath, file))
print()
print(f'The model {checksizepath} is probably a Lora, so it is moved to lora folder')
print()
print('[1;32mList of installed models:')
print('[0m')
!ls *.{ckpt,safetensors,pt} {folder} 2>/dev/null
3. Run (Choose one👇)
#@title Run with Gradio
#@markdown ![](https://raw.githubusercontent.com/etherealxx/etherportal-webui-colab/master/images/launchwebui2.jpg)
import subprocess
cek = subprocess.getoutput('nvidia-smi')
if not 'T4' in cek:
print("[1;32m-----Your colab session is over. Use other google account or wait 12-24 hours-----")
print("-----Sesi colab elu udah habis bro. Saran gw tunggu 12-24 jam atau bikin/pake akun google lain-----")
raise KeyboardInterrupt
%cd /content/stable-diffusion-webui/
!python launch.py --share --xformers --enable-insecure-extension-access --gradio-queue --no-half-vae
#@title Run with Localtunnel
#@markdown ![](https://raw.githubusercontent.com/etherealxx/etherportal-webui-colab/master/images/launchwebui3.jpg)
import subprocess
import time
!npm install -g localtunnel
cek = subprocess.getoutput('nvidia-smi')
if not 'T4' in cek:
print("[1;32m-----Your colab session is over. Use other google account or wait 12-24 hours-----")
print("-----Sesi colab elu udah habis bro. Saran gw tunggu 12-24 jam atau bikin/pake akun google lain-----")
raise KeyboardInterrupt
%cd /content/stable-diffusion-webui/
!nohup lt -p 7860 > lt.log 2>&1 &
time.sleep(2)
with open('/content/stable-diffusion-webui/lt.log', 'r') as testwritefile:
print("\033[92m" + "Wait for the model to load and follow this link")
print(testwritefile.read())
print("\033[95m")
!python launch.py --xformers --enable-insecure-extension-access