Spaces:
Running on Zero
Running on Zero
| import os | |
| # cudaMallocAsync bypasses NVML memory queries that fail on MIG GPU instances | |
| os.environ.setdefault("PYTORCH_CUDA_ALLOC_CONF", "backend:cudaMallocAsync") | |
| import gradio as gr | |
| from examples_ui import EXAMPLE_CARDS_HTML, SUGGESTION_CHIPS_HTML, load_example_data | |
| from inference import MAX_SEED, infer | |
| with open("static/app.css") as _f: | |
| css = _f.read() | |
| with open("static/gallery.js") as _f: | |
| gallery_js = _f.read() | |
| with open("static/wire_outputs.js") as _f: | |
| wire_outputs_js = _f.read() | |
| with open("static/run_preprocess.js") as _f: | |
| run_preprocess_js = _f.read() | |
| with open("static/mode_toggle.js") as _f: | |
| mode_toggle_js = _f.read() | |
| with open("templates/app.html") as _f: | |
| app_html = _f.read().format( | |
| example_cards_html=EXAMPLE_CARDS_HTML, | |
| suggestion_chips_html=SUGGESTION_CHIPS_HTML, | |
| ) | |
| with gr.Blocks() as demo: | |
| hidden_images_b64 = gr.Textbox(value="[]", elem_id="hidden-images-b64", elem_classes="hidden-input", container=False) | |
| prompt = gr.Textbox(value="", elem_id="prompt-gradio-input", elem_classes="hidden-input", container=False) | |
| seed = gr.Slider(minimum=0, maximum=MAX_SEED, step=1, value=0, elem_id="gradio-seed", elem_classes="hidden-input", container=False) | |
| randomize_seed = gr.Checkbox(value=True, elem_id="gradio-randomize", elem_classes="hidden-input", container=False) | |
| guidance_scale = gr.Slider(minimum=1.0, maximum=10.0, step=0.1, value=1.2, elem_id="gradio-guidance", elem_classes="hidden-input", container=False) | |
| steps = gr.Slider(minimum=1, maximum=50, step=1, value=3, elem_id="gradio-steps", elem_classes="hidden-input", container=False) | |
| mode = gr.Textbox(value="fast", elem_id="gradio-mode", elem_classes="hidden-input", container=False) | |
| gpu_duration = gr.Slider(minimum=10, maximum=120, step=5, value=30, elem_id="gradio-gpu-duration", elem_classes="hidden-input", container=False) | |
| result = gr.Image(elem_id="gradio-result", elem_classes="hidden-input", container=False, format="png") | |
| example_idx = gr.Textbox(value="", elem_id="example-idx-input", elem_classes="hidden-input", container=False) | |
| example_result = gr.Textbox(value="", elem_id="example-result-data", elem_classes="hidden-input", container=False) | |
| example_load_btn = gr.Button("Load Example", elem_id="example-load-btn") | |
| gr.HTML(app_html) | |
| run_btn = gr.Button("Run", elem_id="gradio-run-btn") | |
| demo.load(fn=None, js=gallery_js) | |
| demo.load(fn=None, js=wire_outputs_js) | |
| demo.load(fn=None, js=mode_toggle_js) | |
| run_btn.click( | |
| fn=infer, | |
| inputs=[hidden_images_b64, prompt, seed, randomize_seed, guidance_scale, steps, mode, gpu_duration], | |
| outputs=[result, seed], | |
| js=run_preprocess_js, | |
| ) | |
| example_load_btn.click( | |
| fn=load_example_data, | |
| inputs=[example_idx], | |
| outputs=[example_result], | |
| queue=False, | |
| ) | |
| if __name__ == "__main__": | |
| demo.queue(max_size=30).launch( | |
| css=css, | |
| mcp_server=True, | |
| ssr_mode=False, | |
| show_error=True, | |
| allowed_paths=["examples"], | |
| ) | |