riven / ui custom.txt
suppcuti's picture
Upload ui custom.txt
bbbf5f7
# @title ## **Custom Download Corner**
import os
import shutil
%store -r
# @markdown Fill in the URL fields with the links to the files you want to download. Separate multiple URLs with a comma.
# @markdown Example: `url1, url2, url3`
os.chdir(root_dir)
custom_download_list = []
custom_model_url = "https://civitai.com/api/download/models/7425,https://civitai.com/api/download/models/11745,https://civitai.com/api/download/models/40248" # @param {'type': 'string'}
custom_vae_url = "https://huggingface.co/WarriorMama777/OrangeMixs/blob/main/VAEs/orangemix.vae.pt,https://huggingface.co/hakurei/waifu-diffusion-v1-4/blob/main/vae/kl-f8-anime2.ckpt" # @param {'type': 'string'}
custom_embedding_url = "https://huggingface.co/yesyeahvh/bad-hands-5/blob/main/bad-hands-5.pt,https://huggingface.co/datasets/Nerfgun3/bad_prompt/blob/main/bad_prompt_version2.pt,https://huggingface.co/embed/EasyNegative/blob/main/EasyNegative.safetensors,https://huggingface.co/nick-x-hacker/bad-artist/resolve/main/bad-artist-anime.pt, https://huggingface.co/nick-x-hacker/bad-artist/resolve/main/bad-artist.pt, " # @param {'type': 'string'}
custom_LoRA_url = "https://huggingface.co/suppcuti/riven/blob/main/Sigma99-Magallan.safetensors,https://huggingface.co/suppcuti/riven/blob/main/Kindred.safetensors,https://huggingface.co/suppcuti/riven/blob/main/riven-v1.2.safetensors" # @param {'type': 'string'}
custom_hypernetwork_url = "" # @param {'type': 'string'}
custom_control_url = "" # @param {'type': 'string'}
custom_extensions_url = "" # @param {'type': 'string'}
custom_components_url = "" # @param {'type': 'string'}
custom_upscaler_url = "" # @param {'type': 'string'}
def extract(url, dst):
if not url.startswith("/content/"):
filename = os.path.basename(url)
zipfile = os.path.join(dst, filename)
else:
zipfile = url
if url.endswith(".zip"):
if os.path.exists(zipfile):
!unzip -j -o {zipfile} -d "{dst}"
os.remove(zipfile)
elif url.endswith(".tar.lz4"):
if os.path.exists(zipfile):
!tar -xI lz4 -f {zipfile} --directory={dst}
os.remove(zipfile)
else:
pass
def download(url_list, dst_dir, download_list, is_extensions):
downloaded = []
for url in tqdm(url_list, desc="Downloading Custom URLs"):
if url:
url = url.strip()
download_list.append(url)
basename = os.path.basename(url)
with capture.capture_output() as cap:
if is_extensions:
os.chdir(extensions_dir)
!git clone {url}
elif url.startswith("/content/drive/MyDrive/"):
shutil.copy(url, dst_dir)
elif url.startswith("https://drive.google.com"):
if "folders" in url:
!gdown --folder "{url}" -O {dst_dir} --fuzzy -c
else:
!gdown "{url}" -O {dst_dir} --fuzzy -c
elif url.startswith("https://huggingface.co/"):
if "/blob/" in url:
url = url.replace("/blob/", "/resolve/")
hf_token = "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"
user_header = f'"Authorization: Bearer {hf_token}"'
!aria2c --console-log-level=error --summary-interval=10 --header={user_header} -c -x 16 -k 1M -s 16 -d {dst_dir} -o {basename} {url}
else:
!aria2c --console-log-level=error --summary-interval=10 -c -x 16 -k 1M -s 16 -d {dst_dir} {url}
extract(url, dst_dir)
del cap
downloaded.append((basename, dst_dir))
custom_download_list = []
custom_dirs = {
custom_model_url: models_dir,
custom_vae_url: vaes_dir,
custom_embedding_url: embeddings_dir,
custom_LoRA_url: lora_dir,
custom_hypernetwork_url: hypernetworks_dir,
custom_control_url: control_dir,
custom_extensions_url: extensions_dir,
custom_components_url: components_dir,
custom_upscaler_url: esrgan_dir,
}
print(f"Downloading...")
start_time = time.time()
for custom_url in [
custom_model_url,
custom_vae_url,
custom_embedding_url,
custom_LoRA_url,
custom_hypernetwork_url,
custom_control_url,
custom_extensions_url,
custom_components_url,
custom_upscaler_url,
]:
if custom_url:
urls = custom_url.split(",")
download(
urls,
custom_dirs[custom_url],
custom_download_list,
custom_url == custom_extensions_url,
)
end_time = time.time()
elapsed_time = int(end_time - start_time)
if elapsed_time < 60:
print(f"\nDownload completed. Took {elapsed_time} sec")
else:
mins, secs = divmod(elapsed_time, 60)
print(f"\nDownload completed. Took {mins} mins {secs} sec")
print("All is done! Go to the next step")