File size: 1,236 Bytes
61cc64e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e7d76ff
 
61cc64e
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""Gradio UI handlers and helpers."""
from __future__ import annotations

import gradio as gr

from .config import logger
from .jobs import get_jobs_table, get_queue_info, jobs, jobs_lock
from .models import extract_zip, list_models


def upload_model(zip_file, model_name):
    """Handle model upload."""
    if not zip_file:
        return "⚠️ No file provided.", gr.update(), gr.update()
    from pathlib import Path
    name = (model_name or "").strip() or Path(zip_file).stem
    try:
        extract_zip(zip_file, name)
        models = list_models()
        return (
            f"✅ Model **{name}** loaded successfully.",
            gr.update(choices=models, value=name),
            gr.update(value=[[m] for m in models]),
        )
    except Exception as exc:
        logger.exception("Model upload failed")
        return f"❌ Error: {exc}", gr.update(), gr.update()


def refresh_models():
    """Refresh the models list."""
    models = list_models()
    default_value = models[0] if models else None
    return gr.update(value=[[m] for m in models]), gr.update(choices=models, value=default_value)


def toggle_autotune(enabled):
    """Toggle autotune slider visibility."""
    return gr.update(visible=enabled)