import os import subprocess import gradio as gr # Clone A1111 Web UI only if not already cloned if not os.path.exists("stable-diffusion-webui"): subprocess.run( ["git", "clone", "https://github.com/AUTOMATIC1111/stable-diffusion-webui.git"], check=True, ) os.chdir("stable-diffusion-webui") # Install necessary dependencies subprocess.run(["pip", "install", "-r", "requirements.txt"], check=True) # Ensure CPU mode is enabled os.environ["CUDA_VISIBLE_DEVICES"] = "-1" # Download a smaller SD model to fit CPU constraints (e.g., SD 1.5 EMA-only) MODEL_PATH = "models/Stable-diffusion/sd-v1-5-ema.ckpt" MODEL_NAME = "sd-v1-5-ema.ckpt" MODEL_API = "https://civitai.com/api/download/models/11745?type=Model&format=SafeTensor&size=full&fp=fp16" if not os.path.exists(MODEL_PATH): os.makedirs("models/Stable-diffusion", exist_ok=True) subprocess.run( ["wget", "-O", MODEL_PATH, MODEL_API], check=True, ) # Launch web UI with CPU mode def launch_webui(): os.system( "python webui.py --listen --share --no-half --precision full --disable-nan-check --use-cpu all --skip-torch-cuda-test" ) # Create a simple Gradio interface def start(): return ( "Stable Diffusion A1111 (CPU Mode) is running! Click the link to open the UI." ) interface = gr.Interface(fn=start, inputs=[], outputs="text") interface.launch()