Photo-Filter-2.0 / components.py
eienmojiki's picture
Update Gradio app with multiple files
c5900d7 verified
import gradio as gr
from registry import registry
def create_filter_controls():
"""Create controls for each filter"""
controls = {}
control_components = {}
for filter_name in registry.filters:
params = registry.params_map.get(filter_name, {})
with gr.Column(visible=filter_name == "Original") as filter_group:
filter_controls_list = []
if params:
for param_name, config in params.items():
if config['type'] == int:
slider = gr.Slider(
minimum=config.get('min', 1),
maximum=config.get('max', 100),
value=config['default'],
label=f"🎚️ {param_name.replace('_', ' ').title()}",
step=config.get('step', 1),
interactive=True
)
filter_controls_list.append(slider)
elif config['type'] == float:
slider = gr.Slider(
minimum=config.get('min', 0.1),
maximum=config.get('max', 10.0),
step=config.get('step', 0.1),
value=config['default'],
label=f"🎚️ {param_name.replace('_', ' ').title()}",
interactive=True
)
filter_controls_list.append(slider)
elif config['type'] == bool:
checkbox = gr.Checkbox(
value=config['default'],
label=f"☑️ {param_name.replace('_', ' ').title()}",
interactive=True
)
filter_controls_list.append(checkbox)
else:
gr.Markdown("*✨ This filter has no custom parameters - Just click 'Apply' to use it!*")
controls[filter_name] = filter_group
control_components[filter_name] = filter_controls_list
return controls, control_components