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