Goal
auto setup stable diffusion environment under aliyun virtual gpu instance
Scripts
#!/bin/bash
# system
apt-get update -q && apt-get -y upgrade -q
# install packages
apt-get -y install -q curl git jq python3 python3-pip python3-venv python3-dev tmux unzip wget zip p7zip-full nfs-client
# aliyun setup nvidia driver
acs-plugin-manager --exec --plugin grid_driver_install
# nfs mount(fast prepare data and models)
mkdir /mnt/shared
mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport location.cn-guangzhou.nas.aliyuncs.com:/ /mnt/shared
# download and extract stable diffusion
mkdir /data && cd /data
7z x /mnt/shared/scys/sd.7z
cd sd
cp /mnt/shared/scys/sd_models/* models/Stable-diffusion
7z x /mnt/shared/scys/sd_venv.7z
# prepare python env(first time)
# pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple
# 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://mirror.sjtu.edu.cn/pytorch-wheels
# pip install -q xformers==0.0.20 triton==2.0.0 gradio_client==0.2.7
# pip install -q -i https://mirrors.aliyun.com/pypi/simple/ tb-nightly cython
wget -q https://iscys.com/github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x cloudflared-linux-amd64
nohup ./cloudflared-linux-amd64 tunnel --url http://127.0.0.1:7860 2>&1 > /tmp/cloudflared.log &
sleep 3s && grep -o 'https://.*\.trycloudflare.com' /tmp/cloudflared.log | head -n 1 | xargs -I {} echo "Your tunnel url {}"
# install zerotier
# curl -s https://install.zerotier.com | bash
# zerotier-cli join [ZONE_ID]
# install docker
#curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh --mirror aliyun
#docker up -d ollama:ollama
# optional: install ollama
# export HTTPS_PROXY=http://proxy_host:port
# curl -fsSL https://ollama.com/install.sh | sh
# remove aliyun aegis
wget http://update.aegis.aliyun.com/download/uninstall.sh && chmod +x uninstall.sh &&./uninstall.sh
wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh && chmod +x quartz_uninstall.sh && ./quartz_uninstall.sh
sudo rm -r /usr/local/aegis
sudo systemctl disable aliyun.service
sudo rm /usr/sbin/aliyun-service
sudo rm /usr/sbin/aliyun-service.backup
sudo rm /usr/sbin/aliyun_installer
sudo rm /etc/systemd/system/aliyun.service
sudo rm /lib/systemd/system/aliyun.service
rm uninstall.sh quartz_uninstall.sh
TODO
- add docker support
- add zerotier support
- send shared url to email
- setup systemd service for stable diffusion