File size: 2,228 Bytes
d0ba07f
 
 
 
c5900d7
d0ba07f
96cd1bf
8a71b8a
d0ba07f
 
fb1a9a7
96cd1bf
fb1a9a7
 
8a71b8a
fb1a9a7
 
 
 
 
 
18362de
fb1a9a7
 
 
8a71b8a
fb1a9a7
 
 
 
 
 
18362de
fb1a9a7
 
8a71b8a
fb1a9a7
8a71b8a
fb1a9a7
18362de
fb1a9a7
 
8a71b8a
fb1a9a7
c5900d7
fb1a9a7
 
96cd1bf
fb1a9a7
96cd1bf
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
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