| from typing import Optional | |
| import gradio as gr | |
| import quantize | |
| from huggingface_hub import HfApi, login | |
| def run(model_id: str, model_version: str, additional_args: str, token: Optional[str] = None) -> str: | |
| if model_id == "": | |
| return "Please enter model_id." | |
| login(token=token) | |
| api = HfApi(token=token) | |
| quantize.quantize(api=api, model_id=model_id, model_version=model_version, additional_args=additional_args) | |
| DESCRIPTION = """ | |
| Simple utility tool to quantize diffusion models and convert them to CoreML. | |
| """ | |
| title="Quantize model and convert to CoreML" | |
| with gr.Blocks(title=title) as demo: | |
| description = gr.Markdown(f"""# {title}""") | |
| description = gr.Markdown(DESCRIPTION) | |
| with gr.Row() as r: | |
| with gr.Column() as c: | |
| model_id = gr.Text(max_lines=1, label="ID of output repo") | |
| model_version = gr.Text(max_lines=1, label="Version of model to convert", value="stabilityai/sd-turbo") | |
| additional_args = gr.Text(max_lines=1, label="Additional Args (optional)") | |
| token = gr.Text(max_lines=1, label="Your HuggingFace write token") | |
| with gr.Row() as c: | |
| clean = gr.ClearButton() | |
| submit = gr.Button("Submit", variant="primary") | |
| with gr.Column() as d: | |
| output = gr.Markdown() | |
| submit.click(run, inputs=[model_id, model_version, additional_args, token], outputs=output, concurrency_limit=1) | |
| demo.queue(max_size=10).launch(show_api=True) |