model-test2 / app.py
alidev2002's picture
Update app.py
8f0a629 verified
import gradio as gr
import os
import subprocess
import zipfile
import requests
from huggingface_hub import hf_hub_download, login
hf_token = os.getenv("HF_TOKEN")
login(token=hf_token)
BASE_DIR = os.getcwd()
SDCPP_DIR = os.path.join(BASE_DIR, "sdcpp")
# =========================
# 1. دانلود stable-diffusion.cpp
# =========================
def setup_sdcpp():
if not os.path.exists(SDCPP_DIR):
os.makedirs(SDCPP_DIR, exist_ok=True)
zip_url = "https://github.com/leejet/stable-diffusion.cpp/releases/download/master-586-c97702e/sd-master-c97702e-bin-Linux-Ubuntu-24.04-x86_64.zip"
zip_path = os.path.join(BASE_DIR, "sdcpp.zip")
print("Downloading stable-diffusion.cpp...")
r = requests.get(zip_url)
with open(zip_path, "wb") as f:
f.write(r.content)
print("Extracting...")
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(SDCPP_DIR)
os.remove(zip_path)
# chmod
subprocess.run(["chmod", "+x", f"{SDCPP_DIR}/sd-cli"])
# =========================
# 2. دانلود مدل‌ها
# =========================
def setup_models():
print("Downloading models...")
model_path = hf_hub_download(
repo_id="unsloth/Z-Image-Turbo-GGUF",
filename="z-image-turbo-Q4_K_M.gguf"
)
vae_path = hf_hub_download(
repo_id="black-forest-labs/FLUX.1-schnell",
filename="ae.safetensors"
)
llm_path = hf_hub_download(
repo_id="unsloth/Qwen3-4B-Instruct-2507-GGUF",
filename="Qwen3-4B-Instruct-2507-Q4_K_M.gguf"
)
return model_path, vae_path, llm_path
MODEL_PATH, VAE_PATH, LLM_PATH = None, None, None
# =========================
# 3. inference
# =========================
def generate(prompt):
output_path = os.path.join(BASE_DIR, "output.png")
cmd = [
f"{SDCPP_DIR}/sd-cli",
"-m", MODEL_PATH,
"--vae", VAE_PATH,
"--llm", LLM_PATH,
"-p", prompt,
"--steps", "6",
"--cfg-scale", "1.0",
"-o", output_path
]
env = os.environ.copy()
env["LD_LIBRARY_PATH"] = SDCPP_DIR
print("Running:", " ".join(cmd))
subprocess.run(cmd, env=env, check=True)
return output_path
# =========================
# init
# =========================
setup_sdcpp()
MODEL_PATH, VAE_PATH, LLM_PATH = setup_models()
# =========================
# UI
# =========================
demo = gr.Interface(
fn=generate,
inputs=gr.Textbox(label="Prompt"),
outputs=gr.Image(label="Generated Image"),
title="Z-Image Turbo GGUF (CPU)"
)
demo.launch()