File tree Expand file tree Collapse file tree 3 files changed +34
-7
lines changed Expand file tree Collapse file tree 3 files changed +34
-7
lines changed Original file line number Diff line number Diff line change @@ -16,6 +16,8 @@ def enum_multiselect(
16
16
label : str = "" ,
17
17
checkboxes = True ,
18
18
allow_none = True ,
19
+ tooltip : dict [E , str ] | None = None ,
20
+ tooltip_placement : str = "top" ,
19
21
):
20
22
try :
21
23
deprecated = enum_cls ._deprecated ()
@@ -27,8 +29,14 @@ def enum_multiselect(
27
29
if e in deprecated and e .name not in value :
28
30
continue
29
31
enums .append (e )
30
- enum_names = [e .name for e in enums ]
31
- enum_labels = {e .name : _default_format_func (e ) for e in enums }
32
+
33
+ enum_names = []
34
+ enum_labels = {}
35
+ enum_lookup = {}
36
+ for e in enums :
37
+ enum_names .append (e .name )
38
+ enum_labels [e .name ] = _default_format_func (e )
39
+ enum_lookup [e .name ] = e
32
40
33
41
if checkboxes :
34
42
if label :
@@ -41,7 +49,18 @@ def render(name):
41
49
if inner_key not in gui .session_state :
42
50
gui .session_state [inner_key ] = name in selected
43
51
44
- gui .checkbox (enum_labels .get (name ), key = inner_key )
52
+ enum_obj = enum_lookup [name ]
53
+ tooltip_text = tooltip .get (enum_obj ) if tooltip else None
54
+
55
+ if tooltip_text :
56
+ gui .checkbox (
57
+ enum_labels .get (name ),
58
+ key = inner_key ,
59
+ help = tooltip_text ,
60
+ tooltip_placement = tooltip_placement ,
61
+ )
62
+ else :
63
+ gui .checkbox (enum_labels .get (name ), key = inner_key )
45
64
46
65
if gui .session_state .get (inner_key ):
47
66
ret_val .append (name )
Original file line number Diff line number Diff line change @@ -96,6 +96,13 @@ def _deprecated(cls):
96
96
}
97
97
98
98
99
+ model_pricing_tooltips = {
100
+ Text2ImgModels .dall_e_3 : "15 Cr" ,
101
+ Text2ImgModels .gpt_image_1 : "3, 10 or 40 Cr" ,
102
+ Text2ImgModels .nano_banana : "8 Cr" ,
103
+ }
104
+
105
+
99
106
class Img2ImgModels (Enum ):
100
107
flux_pro_kontext = "FLUX.1 Pro Kontext (fal.ai)"
101
108
Original file line number Diff line number Diff line change @@ -101,6 +101,8 @@ def related_workflows(self) -> list:
101
101
]
102
102
103
103
def render_form_v2 (self ):
104
+ from daras_ai_v2 .stable_diffusion import model_pricing_tooltips
105
+
104
106
gui .text_area (
105
107
"""
106
108
#### 👩💻 Prompt
@@ -118,10 +120,6 @@ def render_form_v2(self):
118
120
gui .caption (
119
121
"""
120
122
Each selected model costs 2 credits ($.02) / image except where noted.
121
-
122
- Dalle-3: 15 Cr
123
- Nano banana: 8 Cr
124
- GPT-image: 3, 10 or 40 Cr
125
123
"""
126
124
)
127
125
@@ -131,9 +129,12 @@ def render_form_v2(self):
131
129
[Check out our prompt guide](https://docs.google.com/presentation/d/1RaoMP0l7FnBZovDAR42zVmrUND9W5DW6eWet-pi6kiE/edit#slide=id.g210b1678eba_0_26).
132
130
"""
133
131
)
132
+
134
133
selected_models = enum_multiselect (
135
134
Text2ImgModels ,
136
135
key = "selected_models" ,
136
+ tooltip = model_pricing_tooltips ,
137
+ tooltip_placement = "right" ,
137
138
)
138
139
if selected_models and set (selected_models ) <= {Text2ImgModels .flux_1_dev .name }:
139
140
loras_input ()
You can’t perform that action at this time.
0 commit comments