Spaces:
Runtime error
Runtime error
| import os | |
| from subprocess import getoutput | |
| # Welcome to the world of python madness! | |
| # Debugging with Verbose mode on... | |
| os.system(f'echo "Checking Python Version"') | |
| os.system(f"python --version") | |
| os.system(f'echo "Starting verbose diagnostic setup for stable-diffusion-webui..."') | |
| # Clone repository | |
| os.system(f'echo "Cloning Stable Diffusion WebUI repository from darkstorm2150..."') | |
| os.system(f"git clone https://github.com/darkstorm2150/stable-diffusion-webui /home/user/app/stable-diffusion-webui") | |
| # Set working directory | |
| os.system(f'echo "Setting working directory to stable-diffusion-webui root folder..."') | |
| os.chdir("/home/user/app/stable-diffusion-webui") | |
| # Patch environment | |
| os.system(f'echo "Downloading environment patch script..."') | |
| os.system(f"wget https://raw.githubusercontent.com/darkstorm2150/webui/refs/heads/main/env_patch.py -O /home/user/app/env_patch.py") | |
| os.system(f"sed -i -e '/import image_from_url_text/r /home/user/app/env_patch.py' /home/user/app/stable-diffusion-webui/modules/ui.py") | |
| # Gradio shadowRoot fix | |
| os.system(f'echo "Fixing Gradio shadowRoot access in script.js for Hugging Face compatibility..."') | |
| os.system(f'''sed -i -e "s/document.getElementsByTagName('gradio-app')\\[0\\].shadowRoot/!!document.getElementsByTagName('gradio-app')[0].shadowRoot ? document.getElementsByTagName('gradio-app')[0].shadowRoot : document/g" /home/user/app/stable-diffusion-webui/script.js''') | |
| # Progress bar settings | |
| os.system(f'echo "Enabling progress bars in UI for better user feedback..."') | |
| os.system(f"sed -i -e 's/ show_progress=False,/ show_progress=True,/g' /home/user/app/stable-diffusion-webui/modules/ui.py") | |
| # Queue settings | |
| os.system(f'echo "Modifying webui.py to enable queuing for async processing..."') | |
| os.system(f"sed -i -e 's/shared.demo.launch/shared.demo.queue().launch/g' /home/user/app/stable-diffusion-webui/webui.py") | |
| os.system(f'echo "Disabling queuing for input components to reduce latency..."') | |
| os.system(f"sed -i -e 's/inputs=\\[component\\],/&\\n queue=False,/g' /home/user/app/stable-diffusion-webui/modules/ui.py") | |
| os.system(f'echo "Disabling queuing for token counter outputs..."') | |
| os.system(f"sed -i -e 's/outputs=\\[token_counter\\]/outputs=[token_counter], queue=False/g' /home/user/app/stable-diffusion-webui/modules/ui.py") | |
| # ----------------------------Patch UI Header for Hugging Face Spaces---------------------------- | |
| os.system(f'echo "Downloading header_patch.py to customize UI header banners..."') | |
| os.system(f"wget https://raw.githubusercontent.com/darkstorm2150/webui/refs/heads/main/header_patch.py -O /home/user/app/header_patch.py") | |
| os.system(f'echo "Injecting header_patch.py content into modules/ui.py under the demo section..."') | |
| os.system(f"sed -i -e '/demo:/r /home/user/app/header_patch.py' /home/user/app/stable-diffusion-webui/modules/ui.py") | |
| # --------------------------------------------------------------------------------------------- | |
| # Handle shared vs. non-shared UI setup with verbose logging | |
| if "IS_SHARED_UI" in os.environ: | |
| os.system(f'echo "IS_SHARED_UI IS ENABLED: Loading shared configurations..."') | |
| # Download shared UI configuration files | |
| os.system(f"echo 'Downloading shared-config.json for UI settings...'") | |
| os.system(f"wget https://raw.githubusercontent.com/darkstorm2150/webui/refs/heads/main/shared-config.json -O /home/user/app/shared-config.json") | |
| os.system(f"echo 'Downloading shared-ui-config.json for layout preferences...'") | |
| os.system(f"wget https://raw.githubusercontent.com/darkstorm2150/webui/refs/heads/main/shared-ui-config.json -O /home/user/app/shared-ui-config.json") | |
| # Launch WebUI with shared settings | |
| os.system(f'echo "Starting WebUI with shared configurations..."') | |
| os.system(f"python launch.py --disable-console-progressbars --enable-console-prompts --ui-config-file /home/user/app/shared-ui-config.json --ui-settings-file /home/user/app/shared-config.json --cors-allow-origins huggingface.co,hf.space --no-progressbar-hiding --use-cpu all --no-half") | |
| else: | |
| os.system(f'echo "IS_SHARED_UI IS DISABLED: Setting up custom environment..."') | |
| # Download custom scripts | |
| os.system(f'echo "Installing run_n_times.py script for batch processing..."') | |
| os.system(f"wget https://raw.githubusercontent.com/darkstorm2150/webui/refs/heads/main/run_n_times.py -O /home/user/app/stable-diffusion-webui/scripts/run_n_times.py") | |
| # Install extensions | |
| os.system(f'echo "Installing image browser extension for managing outputs..."') | |
| os.system(f"git clone https://github.com/yfszzx/stable-diffusion-webui-images-browser /home/user/app/stable-diffusion-webui/extensions/stable-diffusion-webui-images-browser") | |
| os.system(f'echo "Installing Deforum animation extension..."') | |
| os.system(f"git clone https://github.com/deforum-art/deforum-for-automatic1111-webui /home/user/app/stable-diffusion-webui/extensions/deforum-for-automatic1111-webui") | |
| # Load Protogen model | |
| os.system(f'echo "Downloading OpenGen v1.0 Stable Diffusion model..."') | |
| os.system(f"wget -q https://huggingface.co/darkstorm2150/OpenGen/resolve/main/OpenGen%20v1.0.safetensors -O /home/user/app/stable-diffusion-webui/models/Stable-diffusion/OpenGen_v1.0.safetensors") | |
| # Install CPU-specific dependencies | |
| os.system(f'echo "Uninstalling any existing torch, torchvision, and xformers..."') | |
| os.system(f'pip uninstall -y torch torchvision xformers') | |
| os.system(f'echo "Installing CPU version of PyTorch..."') | |
| os.system(f'pip install torch torchvision --no-cache-dir') | |
| os.system(f'echo "Verifying PyTorch installation..."') | |
| os.system("python -c 'import torch; print(\"PyTorch:\", torch.__version__, \"(CPU version)\")'") | |
| # Launch WebUI with CPU-specific settings | |
| os.chdir('/home/user/app/stable-diffusion-webui') | |
| os.system("python launch.py --ui-config-file /home/user/app/shared-ui-config.json --ui-settings-file /home/user/app/shared-config.json --disable-console-progressbars --enable-console-prompts --cors-allow-origins huggingface.co,hf.space --no-progressbar-hiding --api --skip-torch-cuda-test --use-cpu all --no-half") |