Joker5514's picture
Update app.py
3c6303c verified
Raw
History Blame Contribute Delete
2.1 kB
import os, io, requests, gradio as gr
from huggingface_hub import HfApi
TOKEN = os.environ.get("HF_TOKEN", "")
DEST_REPO = "Joker5514/models"
DEST_TYPE = "dataset"
MODELS = [
{"filename": "rnnoise_suppressor.onnx",
"url": "https://huggingface.co/niobures/RNNoise/resolve/main/models/rnnoise.onnx",
"min_bytes": 100_000},
{"filename": "demucs_v4_quantized.onnx",
"url": "https://huggingface.co/MrCitron/demucs-v4-onnx/resolve/main/htdemucs.onnx",
"fallback": "https://huggingface.co/timcsy/demucs-web-onnx/resolve/main/demucs.onnx",
"min_bytes": 10_000_000},
{"filename": "bsrnn_vocals.onnx",
"url": "https://huggingface.co/facebook/bsrnn/resolve/main/bsrnn_vocals.onnx",
"fallback": "https://huggingface.co/Randell/bsrnn-onnx/resolve/main/bsrnn_vocals.onnx",
"min_bytes": 5_000_000},
]
def upload_models():
if not TOKEN: return "ERROR: HF_TOKEN not set"
api = HfApi(token=TOKEN)
results = []
for m in MODELS:
try:
try:
r = requests.get(m["url"], timeout=300); r.raise_for_status(); data = r.content
if len(data) < m["min_bytes"]: raise ValueError("too small")
src = m["url"]
except:
r = requests.get(m.get("fallback", m["url"]), timeout=300); r.raise_for_status(); data = r.content
src = m.get("fallback", m["url"])
api.upload_file(path_or_fileobj=io.BytesIO(data), path_in_repo=m["filename"],
repo_id=DEST_REPO, repo_type=DEST_TYPE,
commit_message=f"Upload real ONNX: {m['filename']} ({len(data):,} bytes)")
results.append(f"SUCCESS {m['filename']} ({len(data)/1e6:.1f} MB) from {src}")
except Exception as e:
results.append(f"FAILED {m['filename']}: {e}")
return "\n\n".join(results)
with gr.Blocks() as demo:
gr.Markdown("# ONNX Model Uploader\nDownloads real models and uploads to Joker5514/models")
gr.Button("Upload Real ONNX Models", variant="primary").click(upload_models, outputs=gr.Textbox(lines=15))
demo.launch()