Ricercar commited on
Commit
3e0a995
β€’
1 Parent(s): 83ab75d

functional update for summary

Browse files
Files changed (1) hide show
  1. pages/Summary.py +34 -22
pages/Summary.py CHANGED
@@ -91,10 +91,13 @@ class DashboardApp:
91
  # self.podium_expander(tag, n=len(st.session_state.modelVersion_standings[tag]), summary_mode='edit')
92
 
93
  with tab2:
94
- st.write('## Detailed information of all selected models')
95
  detailed_info = pd.merge(pd.DataFrame(st.session_state.modelVersion_standings[tag], columns=['modelVersion_id', 'ranking_score']), self.roster, on='modelVersion_id')
96
 
 
 
97
  st.data_editor(detailed_info, hide_index=False, disabled=True)
 
98
 
99
  def podium_expander(self, tag, example_prompts, n=3, summary_mode: ['display', 'edit'] = 'display'):
100
 
@@ -105,20 +108,22 @@ class DashboardApp:
105
  model_id, model_name, modelVersion_name, url = self.roster[self.roster['modelVersion_id'] == modelVersion_id][['model_id', 'model_name', 'modelVersion_name', 'modelVersion_url']].values[0]
106
 
107
  icon = 'πŸ₯‡'if i == 0 else 'πŸ₯ˆ' if i == 1 else 'πŸ₯‰' if i == 2 else '🎈'
108
- podium_display = st.columns([1, 14])
109
  with podium_display[0]:
110
  if summary_mode == 'display':
111
  st.title(f'{icon}')
112
  elif summary_mode == 'edit':
113
- moveup = st.button('⬆', key=f'moveup_{modelVersion_id}', help='Move this model up', disabled=i == 0, on_click=self.switch_order, args=(tag, i, i - 1))
114
- movedown = st.button('⬇', key=f'movedown_{modelVersion_id}', help='Move this model down', disabled=i == n - 1, on_click=self.switch_order, args=(tag, i, i + 1))
 
115
  with podium_display[1]:
116
  title_display = st.columns([3, 1, 1, 1])
117
  with title_display[0]:
118
  st.write(f'##### {model_name}, {modelVersion_name}')
119
  # st.write(f'Ranking Score: {winning_times}')
120
  with title_display[1]:
121
- image_display = st.selectbox('image display', ['Featured', 'All Images'], key=f'image_display_{modelVersion_id}', label_visibility='collapsed')
 
122
 
123
  with title_display[2]:
124
  st.link_button('Download Model', url, use_container_width=True)
@@ -127,7 +132,9 @@ class DashboardApp:
127
  # st.write(f'[Civitai Page](https://civitai.com/models/{model_id}?modelVersionId={modelVersion_id}), [Model Download Link]({url}), Ranking Score: {winning_times}')
128
  # with st.expander(f'**{icon} {model_name}, [{modelVersion_name}](https://civitai.com/models/{model_id}?modelVersionId={modelVersion_id})**, Ranking Score: {winning_times}'):
129
 
130
- if image_display == 'Featured':
 
 
131
  example_images = self.promptBook[self.promptBook['prompt_id'].isin(example_prompts) & (self.promptBook['modelVersion_id']==modelVersion_id)]['image_id'].values
132
  example_images = [f"https://modelcofferbucket.s3-accelerate.amazonaws.com/{image}.png" for image in example_images]
133
  clickable_images(
@@ -135,11 +142,12 @@ class DashboardApp:
135
  img_style={"margin": "5px", "height": "100px"}
136
  )
137
 
138
- elif image_display == 'All Images':
 
139
  # with st.expander(f'Show Images'):
140
  images = self.promptBook[self.promptBook['modelVersion_id'] == modelVersion_id]['image_id'].values
141
 
142
- safety_check = st.toggle('Include potentially unsafe or offensive images', value=False, key=modelVersion_id)
143
  unsafe_prompts = json.load(open('data/unsafe_prompts.json', 'r'))
144
  # merge dict values into one list
145
  unsafe_prompts = [item for sublist in unsafe_prompts.values() for item in sublist]
@@ -168,8 +176,9 @@ class DashboardApp:
168
  st.write('---')
169
 
170
  def switch_order(self, tag, current, target):
171
- st.session_state.modelVersion_standings[tag][current], st.session_state.modelVersion_standings[tag][target] = st.session_state.modelVersion_standings[tag][target], st.session_state.modelVersion_standings[tag][current]
172
-
 
173
 
174
  def score_calculator(self, results, db_table):
175
  modelVersion_standings = {}
@@ -217,18 +226,21 @@ class DashboardApp:
217
  else:
218
  tag = self.sidebar(tags, mode)
219
  self.leaderboard(tag, db_table)
220
- #
221
- # comment = st.chat_input('Please leave your comments here.', key='comment')
222
- # if comment:
223
- # commenttime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
224
- # curser = RANKING_CONN.cursor()
225
- # # parse the comment to at most 300 to avoid SQL injection
226
- # for i in range(0, len(comment), 300):
227
- # curser.execute(f"INSERT INTO comments (username, timestamp, comment, commenttime) VALUES ('{st.session_state.user_id[0]}', '{st.session_state.user_id[1]}', '{comment[i:i+300]}', '{commenttime}')")
228
- # RANKING_CONN.commit()
229
- # curser.close()
230
- #
231
- # st.toast('Thanks for your feedback! We will take it into consideration in our future work.')
 
 
 
232
 
233
 
234
  if __name__ == "__main__":
 
91
  # self.podium_expander(tag, n=len(st.session_state.modelVersion_standings[tag]), summary_mode='edit')
92
 
93
  with tab2:
94
+ st.write('**Detailed information of all selected models**')
95
  detailed_info = pd.merge(pd.DataFrame(st.session_state.modelVersion_standings[tag], columns=['modelVersion_id', 'ranking_score']), self.roster, on='modelVersion_id')
96
 
97
+ detailed_info = detailed_info[['model_name', 'modelVersion_name', 'model_download_count', 'tag', 'baseModel']]
98
+
99
  st.data_editor(detailed_info, hide_index=False, disabled=True)
100
+ st.caption('You can click the header to sort the table by that column.')
101
 
102
  def podium_expander(self, tag, example_prompts, n=3, summary_mode: ['display', 'edit'] = 'display'):
103
 
 
108
  model_id, model_name, modelVersion_name, url = self.roster[self.roster['modelVersion_id'] == modelVersion_id][['model_id', 'model_name', 'modelVersion_name', 'modelVersion_url']].values[0]
109
 
110
  icon = 'πŸ₯‡'if i == 0 else 'πŸ₯ˆ' if i == 1 else 'πŸ₯‰' if i == 2 else '🎈'
111
+ podium_display = st.columns([1, 14], gap='medium')
112
  with podium_display[0]:
113
  if summary_mode == 'display':
114
  st.title(f'{icon}')
115
  elif summary_mode == 'edit':
116
+ settop = st.button('πŸ”', key=f'settop_{modelVersion_id}', help='Set this model to the top', disabled=i == 0, on_click=self.switch_order, args=(tag, i, 0), use_container_width=True)
117
+ moveup = st.button('⬆', key=f'moveup_{modelVersion_id}', help='Move this model up', disabled=i == 0, on_click=self.switch_order, args=(tag, i, i - 1), use_container_width=True)
118
+ movedown = st.button('⬇', key=f'movedown_{modelVersion_id}', help='Move this model down', disabled=i == n - 1, on_click=self.switch_order, args=(tag, i, i + 1), use_container_width=True)
119
  with podium_display[1]:
120
  title_display = st.columns([3, 1, 1, 1])
121
  with title_display[0]:
122
  st.write(f'##### {model_name}, {modelVersion_name}')
123
  # st.write(f'Ranking Score: {winning_times}')
124
  with title_display[1]:
125
+ # image_display = st.selectbox('image display', ['Featured', 'All Images'], key=f'image_display_{modelVersion_id}', label_visibility='collapsed')
126
+ image_display = st.checkbox('Show all images', key=f'image_display_{modelVersion_id}')
127
 
128
  with title_display[2]:
129
  st.link_button('Download Model', url, use_container_width=True)
 
132
  # st.write(f'[Civitai Page](https://civitai.com/models/{model_id}?modelVersionId={modelVersion_id}), [Model Download Link]({url}), Ranking Score: {winning_times}')
133
  # with st.expander(f'**{icon} {model_name}, [{modelVersion_name}](https://civitai.com/models/{model_id}?modelVersionId={modelVersion_id})**, Ranking Score: {winning_times}'):
134
 
135
+
136
+
137
+ if not image_display:
138
  example_images = self.promptBook[self.promptBook['prompt_id'].isin(example_prompts) & (self.promptBook['modelVersion_id']==modelVersion_id)]['image_id'].values
139
  example_images = [f"https://modelcofferbucket.s3-accelerate.amazonaws.com/{image}.png" for image in example_images]
140
  clickable_images(
 
142
  img_style={"margin": "5px", "height": "100px"}
143
  )
144
 
145
+ else:
146
+ st.toast('🐌 It may take a while to load all images. Please be patient.')
147
  # with st.expander(f'Show Images'):
148
  images = self.promptBook[self.promptBook['modelVersion_id'] == modelVersion_id]['image_id'].values
149
 
150
+ safety_check = st.checkbox('Include potentially unsafe or offensive images', value=False, key=modelVersion_id)
151
  unsafe_prompts = json.load(open('data/unsafe_prompts.json', 'r'))
152
  # merge dict values into one list
153
  unsafe_prompts = [item for sublist in unsafe_prompts.values() for item in sublist]
 
176
  st.write('---')
177
 
178
  def switch_order(self, tag, current, target):
179
+ # st.session_state.modelVersion_standings[tag][current], st.session_state.modelVersion_standings[tag][target] = st.session_state.modelVersion_standings[tag][target], st.session_state.modelVersion_standings[tag][current]
180
+ # insert the current before the target
181
+ st.session_state.modelVersion_standings[tag].insert(target, st.session_state.modelVersion_standings[tag].pop(current))
182
 
183
  def score_calculator(self, results, db_table):
184
  modelVersion_standings = {}
 
226
  else:
227
  tag = self.sidebar(tags, mode)
228
  self.leaderboard(tag, db_table)
229
+
230
+ with st.sidebar:
231
+ with st.form('overall_feedback'):
232
+ comment = st.text_area('Please leave your comments here.', key='comment')
233
+ submit_feedback = st.form_submit_button('Submit Feedback')
234
+ if submit_feedback:
235
+ commenttime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
236
+ curser = RANKING_CONN.cursor()
237
+ # parse the comment to at most 300 to avoid SQL injection
238
+ for i in range(0, len(comment), 300):
239
+ curser.execute(f"INSERT INTO comments (username, timestamp, comment, commenttime) VALUES ('{st.session_state.user_id[0]}', '{st.session_state.user_id[1]}', '{comment[i:i+300]}', '{commenttime}')")
240
+ RANKING_CONN.commit()
241
+ curser.close()
242
+
243
+ st.toast('Thanks for your feedback! We will take it into consideration in our future work.')
244
 
245
 
246
  if __name__ == "__main__":