colab/StableDiffusion.ipynb

112 lines
11 KiB
Plaintext

import os
import asyncio
import subprocess
from google.colab.output import eval_js
!pip install nest-asyncio
import nest_asyncio
nest_asyncio.apply()
async def async_system_command(cmd):
'''异步执行系统命令'''
print("run command: " + cmd)
process = await asyncio.create_subprocess_shell(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
stdout, stderr = await process.communicate()
outStr, errStr = stdout.decode(), stderr.decode()
print(outStr, errStr)
return outStr, errStr
async def async_command_group(urls):
'''并发执行多个命令'''
tasks = []
for url in urls:
task = asyncio.ensure_future(async_system_command(url))
tasks.append(task)
await asyncio.gather(*tasks)
print("命令组执行完成...")
async def main():
await async_command_group([
"apt -y update -qq",
"wget http://launchpadlibrarian.net/367274644/libgoogle-perftools-dev_2.5-2.2ubuntu3_amd64.deb",
"wget https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/google-perftools_2.5-2.2ubuntu3_all.deb",
"wget https://launchpad.net/ubuntu/+source/google-perftools/2.5-2.2ubuntu3/+build/14795286/+files/libtcmalloc-minimal4_2.5-2.2ubuntu3_amd64.deb",
"wget 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
!pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 -U
await async_command_group([
"apt -y install -qq aria2",
"pip install -q --pre xformers==0.0.17.dev476 -U",
"pip install -q --pre triton",
])
%cd /content
!git clone -b v2.1 https://github.com/camenduru/stable-diffusion-webui
await async_command_group([
"wget https://raw.githubusercontent.com/camenduru/stable-diffusion-webui-scripts/main/run_n_times.py -O /content/stable-diffusion-webui/scripts/run_n_times.py",
"git clone https://github.com/deforum-art/deforum-for-automatic1111-webui /content/stable-diffusion-webui/extensions/deforum-for-automatic1111-webui",
"git clone https://github.com/AlUlkesh/stable-diffusion-webui-images-browser /content/stable-diffusion-webui/extensions/stable-diffusion-webui-images-browser",
"git clone https://github.com/camenduru/stable-diffusion-webui-huggingface /content/stable-diffusion-webui/extensions/stable-diffusion-webui-huggingface",
"git clone -b v2.0 https://github.com/camenduru/sd-civitai-browser /content/stable-diffusion-webui/extensions/sd-civitai-browser",
"git clone https://github.com/kohya-ss/sd-webui-additional-networks /content/stable-diffusion-webui/extensions/sd-webui-additional-networks",
"git clone https://github.com/Mikubill/sd-webui-controlnet /content/stable-diffusion-webui/extensions/sd-webui-controlnet",
"git clone https://github.com/circlecloud/a1111-sd-webui-tagcomplete /content/stable-diffusion-webui/extensions/a1111-sd-webui-tagcomplete",
"git clone https://github.com/Coyote-A/ultimate-upscale-for-automatic1111 /content/stable-diffusion-webui/extensions/ultimate-upscale-for-automatic1111",
"git clone https://github.com/camenduru/openpose-editor /content/stable-diffusion-webui/extensions/openpose-editor",
"git clone https://github.com/camenduru/sd-webui-tunnels /content/stable-diffusion-webui/extensions/sd-webui-tunnels",
"git clone https://github.com/VinsonLaro/stable-diffusion-webui-chinese /content/stable-diffusion-webui/extensions/stable-diffusion-webui-chinese",
])
%cd /content/stable-diffusion-webui
!git reset --hard
await async_command_group([
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_canny-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_canny-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_depth-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_hed-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_hed-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_mlsd-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_mlsd-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_normal-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_normal-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_openpose-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_scribble-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_seg-fp16.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models -o control_seg-fp16.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/hand_pose_model.pth -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose -o hand_pose_model.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/body_pose_model.pth -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose -o body_pose_model.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/dpt_hybrid-midas-501f0c75.pt -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/midas -o dpt_hybrid-midas-501f0c75.pt",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/mlsd_large_512_fp32.pth -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/mlsd -o mlsd_large_512_fp32.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/mlsd_tiny_512_fp32.pth -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/mlsd -o mlsd_tiny_512_fp32.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/network-bsds500.pth -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/hed -o network-bsds500.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/ckpt/ControlNet/resolve/main/upernet_global_small.pth -d /content/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/uniformer -o upernet_global_small.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/andite/pastel-mix/resolve/main/pastelmix-fp16.ckpt -d /content/stable-diffusion-webui/models/Stable-diffusion -o pastelmix-fp16.ckpt",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -d /content/stable-diffusion-webui/models/Stable-diffusion -o pastelmix-fp16.vae.pt",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/andite/pastel-mix/resolve/main/pastelmix-fp32.ckpt -d /content/stable-diffusion-webui/models/Stable-diffusion -o pastelmix-fp32.ckpt",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -d /content/stable-diffusion-webui/models/Stable-diffusion -o pastelmix-fp32.vae.pt",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/SakerLy/chilloutmix_NiPrunedFp32Fix/resolve/main/chilloutmix_NiPrunedFp32Fix.safetensors -d /content/stable-diffusion-webui/models/Stable-diffusion/ChilloutMix -o chilloutmix_NiPrunedFp32Fix.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/dadadadadatou/KbrDollLikeness/resolve/main/chilloutmix_Ni.safetensors -d /content/stable-diffusion-webui/models/Stable-diffusion/ChilloutMix -o chilloutmix_Ni.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/dadadadadatou/KbrDollLikeness/resolve/main/japaneseDollLikeness_v10.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-additional-networks/models/lora -o japaneseDollLikeness_v10.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/dadadadadatou/KbrDollLikeness/resolve/main/koreanDollLikeness_v15.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-additional-networks/models/lora -o koreanDollLikeness_v15.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/dadadadadatou/KbrDollLikeness/resolve/main/taiwanDollLikeness_v10.safetensors -d /content/stable-diffusion-webui/extensions/sd-webui-additional-networks/models/lora -o taiwanDollLikeness_v10.safetensors",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_caption_capfilt_large.pth -d /content/stable-diffusion-webui/models/BLIP -o model_base_caption_capfilt_large.pth",
"aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://github.com/AUTOMATIC1111/TorchDeepDanbooru/releases/download/v1/model-resnet_custom_v3.pt -d /content/stable-diffusion-webui/models/torch_deepdanbooru -o model-resnet_custom_v3.pt",
])
os.environ['colab_url'] = eval_js("google.colab.kernel.proxyPort(7860, {'cache': false})")
asyncio.run(main())
!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
!mkdir /content/stable-diffusion-webui/extensions/deforum-for-automatic1111-webui/models
!echo '{"localization": "chinese-all-0306", "sd_model_checkpoint": "ChilloutMix/chilloutmix_Ni.safetensors", "sd_checkpoint_hash": "7234b76e423f010b409268386062a4111c0da6adebdf3a9b1a825937bdf17683"}' > config.json
!python launch.py --share --xformers --enable-insecure-extension-access --theme dark --gradio-queue --cloudflared --no-half-vae