Mightys/Notebook_Scripts
02.7k
1#!/usr/bin/env python32"""3install_forge_classic.py4Script standalone que reproduce todo el setup de tu celda Jupyter5(enlaces, dependencias, extensiones, wheel de SageAttention, etc.)6"""7 8import os9import subprocess10import shutil11from pathlib import Path12 13ROOT = Path("/teamspace/studios/this_studio").expanduser().resolve()14FORGE_DIR = ROOT / "sd-webui-forge-classic"15EXT_DIR = FORGE_DIR / "extensions"16 17# ---------- helpers ----------18def run(cmd: str, cwd: Path | None = None, capture: bool = False) -> None:19 """Ejecuta un comando shell y muestra salida en tiempo real."""20 print(f"+ {cmd}")21 subprocess.run(cmd, shell=True, check=False, cwd=cwd)22 23def clone(repo: str, depth: int | None = None) -> None:24 """Clona un repo en EXT_DIR."""25 cmd = f"git clone {repo}"26 if depth:27 cmd = f"git clone --depth {depth} {repo}"28 run(cmd, cwd=EXT_DIR)29 30# ---------- main ----------31def main() -> None:32 os.chdir(ROOT)33 34 # 1. download_magic.py & temp_dir.py35 run("wget -q https://huggingface.co/datasets/Mightys/Notebook_Scripts/resolve/main/scripts/download_magic.py")36 run("wget -q https://huggingface.co/datasets/Mightys/Notebook_Scripts/resolve/main/scripts/temp_dir.py")37 38 # 2. clonar forge-classic si no existe39 if not FORGE_DIR.exists():40 run("git clone https://github.com/MightyCrimsonX/sd-webui-forge-classic.git")41 42 # 3. PyTorch + extras43 run("uv pip install torch==2.9.1 torchvision==0.24.1 xformers==0.0.33.post2 triton==3.5.1 "44 "--index-url https://download.pytorch.org/whl/cu128 --no-progress")45 46 # 4. ui-config.json y styles.csv47 run("wget -q --show-progress https://huggingface.co/datasets/WhiteAiZ/sd-webui-forge-classic/resolve/main/ui-config.json "48 "-O sd-webui-forge-classic/ui-config.json")49 run("wget -q --show-progress https://huggingface.co/datasets/WhiteAiZ/sd-webui-forge-classic/resolve/main/styles.csv "50 "-O sd-webui-forge-classic/styles.csv")51 52 # 5. extensiones53 EXT_DIR.mkdir(exist_ok=True)54 repos = [55 "https://github.com/pamparamm/sd-perturbed-attention",56 "https://github.com/gutris1/sd-image-encryption",57 "https://github.com/yankooliveira/sd-webui-photopea-embed.git",58 "https://github.com/gutris1/sd-hub",59 "https://github.com/Haoming02/sd-forge-couple",60 "https://github.com/gutris1/sd-civitai-browser-plus-plus",61 "https://github.com/AlUlkesh/stable-diffusion-webui-images-browser",62 "https://github.com/DominikDoom/a1111-sd-webui-tagcomplete",63 "https://github.com/Bing-su/adetailer",64 "https://github.com/NoCrypt/sd-fast-pnginfo",65 "https://github.com/viyiviyi/stable-diffusion-webui-zoomimage",66 "https://github.com/gutris1/sd-simple-dimension-preset",67 ]68 for r in repos:69 clone(r, depth=1)70 71 # 6. sistema + aria272 run("sudo apt update -qq")73 run("sudo apt install aria2 -q")74 75 # 7. paquetes extra76 run("uv pip install gdown clip gradio==3.41.2 ultralytics==8.3.216 insightface --no-progress")77 78 # 8. SageAttention wheel79 wheel = "sageattention-2.1.2-cp312-cp312-linux_x86_64.whl"80 run(f"wget -q --show-progress https://huggingface.co/datasets/WhiteAiZ/T4_SageAttention2_For_Google_Colab/resolve/main/python%203.12/{wheel}")81 run(f"uv pip install {wheel}")82 Path(wheel).unlink(missing_ok=True)83 84 # 9. limpieza85 run("rm -rf ~/.cache")86 87 # 10. on_start.sh (opcional)88 lightning_studio = ROOT / ".lightning_studio"89 lightning_studio.mkdir(exist_ok=True)90 run("wget -q https://huggingface.co/datasets/Mightys/Notebook_Scripts/resolve/main/scripts/on_start.sh -O .lightning_studio/on_start.sh")91 92 print("\n🎉 Instalación completada.")93 94if __name__ == "__main__":95 main()