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(
1616    label : str  =  "" ,
1717    checkboxes = True ,
1818    allow_none = True ,
19+     tooltip : dict [E , str ] =  None ,
20+     tooltip_placement : str  =  "top" ,
1921):
2022    try :
2123        deprecated  =  enum_cls ._deprecated ()
@@ -27,8 +29,14 @@ def enum_multiselect(
2729        if  e  in  deprecated  and  e .name  not  in   value :
2830            continue 
2931        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 
3240
3341    if  checkboxes :
3442        if  label :
@@ -41,7 +49,18 @@ def render(name):
4149            if  inner_key  not  in   gui .session_state :
4250                gui .session_state [inner_key ] =  name  in  selected 
4351
44-             gui .checkbox (enum_labels .get (name ), key = inner_key )
52+             enum_obj  =  enum_lookup [name ]
53+             tooltip_text  =  tooltip .get (enum_obj ) or  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 )
4564
4665            if  gui .session_state .get (inner_key ):
4766                ret_val .append (name )
Original file line number Diff line number Diff line change @@ -96,6 +96,13 @@ def _deprecated(cls):
9696}
9797
9898
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+ 
99106class  Img2ImgModels (Enum ):
100107    flux_pro_kontext  =  "FLUX.1 Pro Kontext (fal.ai)" 
101108
Original file line number Diff line number Diff line change @@ -101,6 +101,8 @@ def related_workflows(self) -> list:
101101        ]
102102
103103    def  render_form_v2 (self ):
104+         from  daras_ai_v2 .stable_diffusion  import  model_pricing_tooltips 
105+ 
104106        gui .text_area (
105107            """ 
106108            #### 👩💻 Prompt 
@@ -118,10 +120,6 @@ def render_form_v2(self):
118120        gui .caption (
119121            """ 
120122            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 
125123            """ 
126124        )
127125
@@ -131,9 +129,12 @@ def render_form_v2(self):
131129        [Check out our prompt guide](https://docs.google.com/presentation/d/1RaoMP0l7FnBZovDAR42zVmrUND9W5DW6eWet-pi6kiE/edit#slide=id.g210b1678eba_0_26). 
132130        """ 
133131        )
132+ 
134133        selected_models  =  enum_multiselect (
135134            Text2ImgModels ,
136135            key = "selected_models" ,
136+             tooltip = model_pricing_tooltips ,
137+             tooltip_placement = "right" ,
137138        )
138139        if  selected_models  and  set (selected_models ) <=  {Text2ImgModels .flux_1_dev .name }:
139140            loras_input ()
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments