File size: 2,557 Bytes
d0dbbdd
 
 
 
 
 
 
 
 
 
 
 
20698a7
d0dbbdd
06da738
d0dbbdd
 
5e8b132
 
 
 
 
d0dbbdd
5e8b132
 
d0dbbdd
5e8b132
 
d0dbbdd
5e8b132
 
d0dbbdd
 
5e8b132
d0dbbdd
 
 
 
 
9dbb7e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d0dbbdd
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import gradio as gr
from core.settings import *

from .shared import txt2img_ui, img2img_ui, inpaint_ui, outpaint_ui, hires_fix_ui

MAX_DYNAMIC_CONTROLS = 10

def build_ui(event_handler_function):
    ui_components = {}

    with gr.Blocks() as demo:
        gr.Markdown("# ImageGen")
        gr.Markdown(
            "This demo is a streamlined version of the [Comfy web UI](https://github.com/RioShiina47/comfy-webui)'s [ImageGen](https://huggingface.co/spaces/RioShiina/ImageGen) functionality."
        )
        with gr.Tabs(elem_id="tabs_container") as tabs:
            with gr.TabItem("Txt2Img", id=0):
                ui_components.update(txt2img_ui.create_ui())
            
            with gr.TabItem("Img2Img", id=1):
                ui_components.update(img2img_ui.create_ui())

            with gr.TabItem("Inpaint", id=2):
                ui_components.update(inpaint_ui.create_ui())

            with gr.TabItem("Outpaint", id=3):
                ui_components.update(outpaint_ui.create_ui())

            with gr.TabItem("Hires. Fix", id=4):
                ui_components.update(hires_fix_ui.create_ui())

            ui_components["tabs"] = tabs
            ui_components["image_gen_tabs"] = tabs
        
        gr.Markdown("<div style='text-align: center; margin-top: 20px;'>Made by RioShiina with ❤️<br><a href='https://github.com/RioShiina47' target='_blank'>GitHub</a> | <a href='https://huggingface.co/RioShiina' target='_blank'>Hugging Face</a> | <a href='https://civitai.com/user/RioShiina' target='_blank'>Civitai</a></div>")
        
        event_handler_function(ui_components, demo)

        try:
            import mcp_tools as mcp
            if hasattr(mcp, "register_high_level_mcp_apis"):
                mcp.register_high_level_mcp_apis(demo)
                mcp.cleanup_dependencies_api_names(demo)
            elif hasattr(mcp, 'MCP_FUNCTIONS') and isinstance(mcp.MCP_FUNCTIONS, list):
                for func in mcp.MCP_FUNCTIONS:
                    gr.api(func)
                    print(f"✅ Registered MCP API endpoint: '{func.__name__}'")
        except Exception as e:
            print(f"⚠️ Warning registering MCP functions: {e}")

        # Disable API exposure for all atomic UI event handlers
        high_level_names = getattr(mcp, "HIGH_LEVEL_MCP_API_NAMES", set())
        for fn in demo.fns.values():
            if getattr(fn, "api_name", None) not in high_level_names:
                fn.show_api = False

    return demo