Spaces:
Sleeping
Sleeping
File size: 3,297 Bytes
0eac613 e8c3fc8 0eac613 e8c3fc8 0eac613 e8c3fc8 2c77f68 0927694 2c77f68 0927694 2c77f68 0927694 e8c3fc8 0927694 2c77f68 0927694 2c77f68 0927694 2c77f68 0927694 2c77f68 0927694 2c77f68 0927694 2c77f68 6ed4ca6 2c77f68 e8c3fc8 3af2576 e8c3fc8 3af2576 e8c3fc8 3af2576 e8c3fc8 3af2576 e8c3fc8 3af2576 e8c3fc8 |
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
import gradio as gr
models = [
{"name": "Claudfuen 1", "url": "claudfuen/photorealistic-fuen-v1"},
{"name": "Deliberate", "url": "Masagin/Deliberate"},
{"name": "Seek Art Mega", "url": "coreco/seek.art_MEGA"},
{"name": "Realistic Vision 1.4", "url": "SG161222/Realistic_Vision_V1.4"},
{"name": "Dreamshaper", "url": "Lykon/DreamShaper"},
]
current_model = models[0]
text_gen = gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link")
models2 = []
for model in models:
model_url = f"models/{model['url']}"
loaded_model = gr.Interface.load(model_url, live=True, preprocess=True)
models2.append(loaded_model)
def text_it(inputs, text_gen=text_gen):
return text_gen(inputs)
def set_model(current_model_index):
global current_model
current_model = models[current_model_index]
return gr.update(label=f"{current_model['name']}")
def send_it(inputs, model_choice):
proc = models2[model_choice]
return proc(inputs)
css = """
<style>
.searchable-dropdown {
position: relative;
}
.searchable-dropdown input {
width: 100%;
padding: 0.5rem;
border-radius: 5px;
border: 1px solid #ccc;
}
.searchable-dropdown select {
width: 100%;
padding: 0.5rem;
border-radius: 5px;
border: 1px solid #ccc;
position: absolute;
top: 0;
left: 0;
opacity: 0;
pointer-events: none;
}
</style>
"""
def make_dropdown_searchable(dropdown_id):
script = f"""
<script>
function makeDropdownSearchable(dropdownId) {{
const input = document.getElementById(dropdownId);
input.addEventListener("input", function() {{
const value = this.value.toLowerCase();
const options = Array.from(document.querySelectorAll(`#${dropdownId} option`));
let found = false;
for (let i = 0; i < options.length; i++) {{
const option = options[i];
const text = option.text.toLowerCase();
const match = text.includes(value);
option.style.display = match ? "block" : "none";
if (match) {{
found = true;
}}
}}
if (value && !found) {{
const firstOption = options[0];
if (firstOption) {{
firstOption.selected = true;
}}
}}
}});
}}
makeDropdownSearchable("{dropdown_id}");
</script>
"""
return gr.outputs.HTML(script)
with gr.Interface(
fn=text_it,
inputs="text",
outputs="text",
css=css,
capture_session=True
) as iface:
model_dropdown = gr.outputs.Dropdown(
label="Choose Model",
choices=[m["name"] for m in models],
type="index",
value=current_model["name"],
interactive=True,
component_id="model_dropdown"
)
make_dropdown_searchable("model_dropdown")
iface.inputs.insert(0, model_dropdown)
iface.layout["top"] = ["inputs", "outputs", "model_dropdown"]
iface.layout["heights"] = ["200px", "auto", "40px"]
iface.launch()
|