Mayamaya commited on
Commit
1cc0aed
·
1 Parent(s): eb4cfc8

revised all

Browse files
app.py CHANGED
@@ -11,7 +11,6 @@ from collections import defaultdict, Counter
11
  import gradio as gr
12
  from loguru import logger
13
 
14
- # --- Global State (unchanged) ---
15
  # --- Global State (unchanged) ---
16
  GLOBAL_STATE = {
17
  "participant_id": None,
@@ -28,7 +27,6 @@ GLOBAL_STATE = {
28
  "end_time": None,
29
  "current_ranks": {},
30
  "current_absolute_score": None,
31
- # ▼▼▼ 追加 ▼▼▼
32
  "current_absolute_score_worst": None,
33
  }
34
 
@@ -54,7 +52,7 @@ CRITERIA_GUIDANCE_EN = [
54
  IMAGE_LABELS = ['A', 'B', 'C', 'D', 'E']
55
 
56
 
57
- # --- Helper Functions ---
58
  def get_image_path_from_prediction(prediction: dict) -> str:
59
  if not GLOBAL_STATE["image_mapping"]:
60
  logger.error("Image mapping is not loaded.")
@@ -72,7 +70,6 @@ def get_image_path_from_prediction(prediction: dict) -> str:
72
  return os.path.join(GLOBAL_STATE["image_dir"], filename)
73
 
74
 
75
- # ▼▼▼ 2. prompt_categoryを読み込むように修正 ▼▼▼
76
  def load_evaluation_data(participant_id: str):
77
  mapping_path = os.path.join(COMBINED_DATA_DIR, MAPPING_FILENAME)
78
  if not os.path.exists(mapping_path):
@@ -115,7 +112,6 @@ def load_evaluation_data(participant_id: str):
115
  {"prompt": p, "predictions": d["predictions"], "category": d["category"]}
116
  for p, d in merged_data.items() if len(d["predictions"]) == len(CONDITIONS)
117
  ]
118
- # ▲▲▲ END OF UPDATE ▲▲▲
119
 
120
  if not GLOBAL_STATE["all_eval_data"]:
121
  return "<p class='feedback red'>Error: No valid evaluation data could be loaded.</p>", gr.update(
@@ -136,8 +132,7 @@ def load_evaluation_data(participant_id: str):
136
  return done_msg, gr.update(interactive=False, visible=False), gr.update(interactive=True)
137
 
138
 
139
- # --- Core Logic ---
140
-
141
  def _create_button_updates():
142
  updates = []
143
  for img_label in IMAGE_LABELS:
@@ -163,7 +158,6 @@ def handle_absolute_score_click(score):
163
  GLOBAL_STATE["current_absolute_score"] = None
164
  else:
165
  GLOBAL_STATE["current_absolute_score"] = score
166
-
167
  updates = []
168
  for i in range(1, 8):
169
  if i == GLOBAL_STATE["current_absolute_score"]:
@@ -173,13 +167,11 @@ def handle_absolute_score_click(score):
173
  return updates
174
 
175
 
176
- # ▼▼▼ 追加 ▼▼▼
177
  def handle_absolute_score_worst_click(score):
178
  if GLOBAL_STATE["current_absolute_score_worst"] == score:
179
  GLOBAL_STATE["current_absolute_score_worst"] = None
180
  else:
181
  GLOBAL_STATE["current_absolute_score_worst"] = score
182
-
183
  updates = []
184
  for i in range(1, 8):
185
  if i == GLOBAL_STATE["current_absolute_score_worst"]:
@@ -188,8 +180,8 @@ def handle_absolute_score_worst_click(score):
188
  updates.append(gr.update(variant='secondary'))
189
  return updates
190
 
191
- # ▼▼▼ 1. UIフリーズ問題を修正 ▼▼▼
192
 
 
193
 
194
  # ▼▼▼ 修正後の display_current_prompt_and_criterion 関数 ▼▼▼
195
  def display_current_prompt_and_criterion():
@@ -198,10 +190,10 @@ def display_current_prompt_and_criterion():
198
  empty_button_updates = [gr.update(variant='secondary')] * 25
199
  empty_abs_updates = [gr.update(variant='secondary')] * 7
200
  return [
201
- gr.update(value="Finished! / 完了!"),
202
- gr.update(value=""),
203
- gr.update(value=done_msg),
204
- gr.update(value="", visible=False),
205
  *[gr.update(value=None)] * 5,
206
  *empty_button_updates,
207
  gr.update(visible=False), # abs_group_best
@@ -220,8 +212,38 @@ def display_current_prompt_and_criterion():
220
  criterion_name = CRITERIA[criterion_idx]
221
 
222
  progress_text = f"Prompt {GLOBAL_STATE['current_prompt_index'] + 1} / {len(GLOBAL_STATE['all_eval_data'])} - **{criterion_name}**"
223
- prompt_display_text = f"## \"{prompt_text}\""
224
- guidance_text = f"### Please rank the 5 images based on **{CRITERIA_GUIDANCE_EN[criterion_idx]}**.<br>5つの画像を、**「{CRITERIA_GUIDANCE_JP[criterion_idx]}」**を基準にランキング付けしてください。"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
 
226
  if criterion_idx == 0:
227
  GLOBAL_STATE["image_orders"] = {}
@@ -249,7 +271,6 @@ def display_current_prompt_and_criterion():
249
 
250
  button_updates = _create_button_updates()
251
 
252
- # --- Absolute Score (Best) ---
253
  is_alignment_criterion = (criterion_name == "Alignment")
254
  abs_group_update = gr.update(visible=is_alignment_criterion)
255
  saved_abs_score = GLOBAL_STATE["evaluation_results"].get(prompt_text, {}).get("absolute_score")
@@ -260,7 +281,6 @@ def display_current_prompt_and_criterion():
260
  variant = 'primary' if i == GLOBAL_STATE["current_absolute_score"] else 'secondary'
261
  abs_button_updates.append(gr.update(variant=variant))
262
 
263
- # --- Absolute Score (Worst) ---
264
  abs_group_worst_update = gr.update(visible=is_alignment_criterion)
265
  saved_abs_score_worst = GLOBAL_STATE["evaluation_results"].get(prompt_text, {}).get("absolute_score_worst")
266
  GLOBAL_STATE["current_absolute_score_worst"] = saved_abs_score_worst if is_alignment_criterion else None
@@ -272,9 +292,9 @@ def display_current_prompt_and_criterion():
272
 
273
  return [
274
  gr.update(value=progress_text),
 
275
  gr.update(value=prompt_display_text),
276
- gr.update(value=guidance_text),
277
- gr.update(value="", visible=False),
278
  *image_updates,
279
  *button_updates,
280
  abs_group_update,
@@ -287,14 +307,13 @@ def display_current_prompt_and_criterion():
287
  ]
288
 
289
 
290
- # ▼▼▼ 修正後の validate_and_navigate 関数 ▼▼▼
291
  def validate_and_navigate():
292
  ranks = GLOBAL_STATE["current_ranks"]
293
  error_msg = None
294
  criterion_name = CRITERIA[GLOBAL_STATE["current_criterion_index"]]
295
  is_alignment_criterion = (criterion_name == "Alignment")
296
 
297
- # --- Validation ---
298
  if any(r is None for r in ranks.values()):
299
  error_msg = "Please rank all 5 images. / 5つすべての画像を評価してください。"
300
  elif 1 not in ranks.values():
@@ -303,28 +322,24 @@ def validate_and_navigate():
303
  error_msg = "Please provide an absolute score for the BEST matching image (1-7). / 最も一致している画像について、絶対評価(1~7)を選択してください。"
304
  elif is_alignment_criterion and GLOBAL_STATE["current_absolute_score_worst"] is None:
305
  error_msg = "Please provide an absolute score for the WORST matching image (1-7). / 最も一致していない画像について、絶対評価(1~7)を選択してください。"
306
- # ▼▼▼ 変更箇所 ここから ▼▼▼
307
  elif (
308
- is_alignment_criterion
309
- and GLOBAL_STATE["current_absolute_score"] is not None
310
- and GLOBAL_STATE["current_absolute_score_worst"] is not None
311
- and GLOBAL_STATE["current_absolute_score_worst"] > GLOBAL_STATE["current_absolute_score"]
312
  ):
313
  error_msg = (
314
  "The score for the WORST matching image cannot be higher than the score for the BEST matching image.<br>"
315
  "「最も一致していない画像」のスコアが「最も一致している画像」のスコアを上回ることはできません。"
316
  )
317
- # ▲▲▲ 変更箇所 ここまで ▲▲▲
318
 
319
  if error_msg:
320
- # The number of components to update is now 53 (1 tab + 52 eval components)
321
  no_change_updates = [gr.update()] * 53
322
- no_change_updates[4] = gr.update( # error_display is the 5th component (index 4)
323
  value=f"<p class='feedback red' style='font-size: 1.2em; text-align: center;'>{error_msg}</p>",
324
  visible=True)
325
  return no_change_updates
326
 
327
- # ... (Rank tie-breaking validation logic is unchanged) ...
328
  sorted_ranks = sorted(list(ranks.values()))
329
  rank_counts = Counter(sorted_ranks)
330
  i = 0
@@ -335,7 +350,7 @@ def validate_and_navigate():
335
  next_rank = sorted_ranks[i + count]
336
  expected_next_rank = current_rank + count
337
  if next_rank < expected_next_rank:
338
- error_msg = f"Ranking rule violation (tie-breaking). After {count} instance(s) of rank '{current_rank}', the next rank must be >= {expected_next_rank}, but it is '{next_rank}'. / 順位付けのルール違反です。'{current_rank}'位が{count}つあるため、次の順位は{expected_next_rank}位以上である必要がありますが、'{next_rank}'位が入力されています。"
339
  break
340
  i += count
341
  if error_msg:
@@ -344,7 +359,6 @@ def validate_and_navigate():
344
  value=f"<p class='feedback red' style='font-size: 1.2em; text-align: center;'>{error_msg}</p>",
345
  visible=True)
346
  return no_change_updates
347
- # --- End of Validation ---
348
 
349
  prompt_idx = GLOBAL_STATE["shuffled_indices"][GLOBAL_STATE["current_prompt_index"]]
350
  current_data = GLOBAL_STATE["all_eval_data"][prompt_idx]
@@ -378,12 +392,11 @@ def validate_and_navigate():
378
  if GLOBAL_STATE["current_prompt_index"] >= len(GLOBAL_STATE["all_eval_data"]):
379
  GLOBAL_STATE["end_time"] = datetime.now()
380
  eval_panel_updates = display_current_prompt_and_criterion()
381
- # Activate export tab on completion
382
  return [gr.update(interactive=True)] + eval_panel_updates
383
  else:
384
- # Keep export tab state as is
385
  return [gr.update()] + display_current_prompt_and_criterion()
386
 
 
387
  def navigate_previous():
388
  GLOBAL_STATE["current_criterion_index"] -= 1
389
  if GLOBAL_STATE["current_criterion_index"] < 0:
@@ -392,7 +405,8 @@ def navigate_previous():
392
  GLOBAL_STATE["current_prompt_index"] = max(0, GLOBAL_STATE["current_prompt_index"])
393
  return display_current_prompt_and_criterion()
394
 
395
- # ▼▼▼ 修正後の export_results 関数 ▼▼▼
 
396
  def export_results(participant_id, alignment_reason, naturalness_reason, attractiveness_reason, optional_comment):
397
  if not alignment_reason.strip() or not naturalness_reason.strip() or not attractiveness_reason.strip():
398
  error_msg = "<p class='feedback red'>Please fill in the reasoning for all three criteria (Alignment, Naturalness, Attractiveness). / 3つの評価基準(一致度, 自然さ, 魅力度)すべての判断理由を記入してください。</p>"
@@ -428,7 +442,6 @@ def export_results(participant_id, alignment_reason, naturalness_reason, attract
428
  "naturalness_ranks": ranks_data.get("Naturalness", {}),
429
  "attractiveness_ranks": ranks_data.get("Attractiveness", {}),
430
  "alignment_absolute_score": data.get("absolute_score"),
431
- # ▼▼▼ 追加 ▼▼▼
432
  "alignment_absolute_score_worst": data.get("absolute_score_worst")
433
  })
434
 
@@ -467,7 +480,7 @@ def export_results(participant_id, alignment_reason, naturalness_reason, attract
467
  return gr.update(value=filepath, visible=True), status_message
468
 
469
 
470
- ## ▼▼▼ 修正後の create_gradio_interface 関数 ▼▼▼
471
  def create_gradio_interface():
472
  css = """
473
  .gradio-container { font-family: 'Arial', sans-serif; }
@@ -475,24 +488,10 @@ def create_gradio_interface():
475
  .feedback.green { background-color: #e6ffed; color: #2f6f4a; }
476
  .feedback.red { background-color: #ffe6e6; color: #b30000; }
477
  .image-label { font-size: 2.5em; font-weight: bold; margin-bottom: 10px; color: #333; }
478
- .prompt-display { text-align: center; margin-bottom: 5px; padding: 15px; background-color: #f0f8ff; border-radius: 8px; }
479
- .prompt-sub-guidance { text-align: center; font-size: 0.9em; color: #555; margin-top: 5px; margin-bottom: 15px; }
480
- .rank-instruction {
481
- color: #D32F2F;
482
- font-size: 1.1em;
483
- text-align: left;
484
- margin-bottom: 20px;
485
- padding: 15px;
486
- border: 1px solid #f5c6cb;
487
- border-radius: 8px;
488
- background-color: #f8d7da;
489
- line-height: 1.6;
490
- }
491
- .rank-instruction ul { padding-left: 20px; margin: 0; }
492
- .rank-guidance { text-align: center; margin-bottom: 10px; font-size: 1.2em; }
493
  .rank-btn-row { justify-content: center; gap: 5px !important; }
494
- .rank-btn {
495
- min-width: 65px !important;
496
  max-width: 65px !important;
497
  height: 45px !important;
498
  font-size: 1.2em !important;
@@ -514,6 +513,15 @@ def create_gradio_interface():
514
  padding: 15px;
515
  margin-top: 20px;
516
  }
 
 
 
 
 
 
 
 
 
517
  """
518
 
519
  with gr.Blocks(title="Expression Evaluation Experiment", css=css) as app:
@@ -545,6 +553,9 @@ def create_gradio_interface():
545
 
546
  with gr.TabItem("2. Evaluation / 評価", interactive=False) as tab_evaluation:
547
  progress_text = gr.Markdown("Prompt 0 / 0")
 
 
 
548
 
549
  image_components = []
550
  rank_buttons = []
@@ -558,38 +569,14 @@ def create_gradio_interface():
558
  with gr.Row(elem_classes="rank-btn-row"):
559
  rank_list = ["1位", "2位", "3位", "4位", "5位"]
560
  for rank_val in range(1, 6):
561
- btn = gr.Button(str(rank_list[rank_val-1]), variant='secondary', elem_classes="rank-btn")
 
562
  rank_buttons.append(btn)
563
 
564
- prompt_display = gr.Markdown("## \"Prompt Text Here\"", elem_classes="prompt-display")
565
- gr.Markdown(
566
- "<p class='prompt-sub-guidance'>You may use AI or web search for the meaning of the text. However, please do not ask an AI about the emotion of the image itself.<br>意味についてはAIに聞いたりネット検索しても構いません。ただし、画像そのものの感情をAIに尋ねるのを止めてください。</p>")
567
- guidance_display = gr.Markdown("### Guidance", elem_classes="rank-guidance")
568
- error_display = gr.Markdown(visible=False)
569
-
570
- gr.Markdown(
571
- """
572
- <b>ランキングの付け方 / How to Rank:</b>
573
- <ul>
574
- <li><b>全く同じ表情の画像には、同じ順位</b>を付けてください。(Assign the <b>same rank</b> to identical expressions.)</li>
575
- <li><b>少しでも違う表情の画像には、違う順位</b>を付けてください。(Assign <b>different ranks</b> to different expressions.)</li>
576
- <li><b>必ず1位から</b>順位を付けてください。(You <b>must</b> assign a rank of '1' to at least one image.)</li>
577
- <li>同順位がある場合、<b>その人数分だけ次の順位を飛ばしてください</b>。(When you have ties, <b>skip the next rank(s) accordingly</b>.)
578
- <ul>
579
- <li>例1: 1位が2つある場合、次は3位になります (Ex. 1: If there are two '1st' places, the next rank is '3rd'. e.g., <code>1, 1, 3, 4, 5</code>).</li>
580
- <li>例2: 1位が1つ、2位が3つある場合、次は5位になります (Ex. 2: If there is one '1st' and three '2nd' places, the next rank is '5th'. e.g., <code>1, 2, 2, 2, 5</code>).</li>
581
- </ul>
582
- </li>
583
- </ul>
584
- """,
585
- elem_classes="rank-instruction"
586
- )
587
-
588
- # ▼▼▼ 修正: 絶対評価(Best)のUI ▼▼▼
589
  with gr.Group(visible=False, elem_classes="absolute-eval-group") as absolute_eval_group_best:
590
  gr.Markdown("---")
591
  gr.Markdown(
592
- "#### 絶対評価 (Best) / Absolute Score (Best)\n最もテキストと一致している画像について、どのていど一致しているかを評価し��ください。\n(Please evaluate the degree of alignment for the image that **best** matches the text.)")
593
  absolute_score_buttons = []
594
  with gr.Row():
595
  with gr.Column(scale=1):
@@ -603,10 +590,9 @@ def create_gradio_interface():
603
  with gr.Column(scale=1):
604
  gr.Markdown("<p style='text-align: left; margin-top: 10px;'>7 (完全に一致 / Absolutely)</p>")
605
 
606
- # ▼▼▼ 追加: 絶対評価(Worst)のUI ▼▼▼
607
  with gr.Group(visible=False, elem_classes="absolute-eval-group") as absolute_eval_group_worst:
608
  gr.Markdown(
609
- "#### 絶対評価 (Worst) / Absolute Score (Worst)\n最もテキストと一致していない画像について、どのていど一致していないかを評価してください。\n(Please evaluate the degree of alignment for the image that **least** matches the text.)")
610
  absolute_score_worst_buttons = []
611
  with gr.Row():
612
  with gr.Column(scale=1):
@@ -632,11 +618,11 @@ def create_gradio_interface():
632
  with gr.Group():
633
  gr.Markdown("#### Reasoning for Judgments (Required) / 判断理由(必須)")
634
  alignment_reason_box = gr.Textbox(label="Alignment / 一致度", lines=3,
635
- placeholder="Why did you rank them this way for alignment? / なぜ一致度について、このような順位付けをしましたか?")
636
  naturalness_reason_box = gr.Textbox(label="Naturalness / 自然さ", lines=3,
637
- placeholder="Why did you rank them this way for naturalness? / なぜ自然さについて、このような順位付けをしましたか?")
638
  attractiveness_reason_box = gr.Textbox(label="Attractiveness / 魅力度", lines=3,
639
- placeholder="Why did you rank them this way for attractiveness? / なぜ魅力度について、このような順位付けをしましたか?")
640
 
641
  with gr.Group():
642
  gr.Markdown("#### Overall Comments (Optional) / 全体的な感想(任意)")
@@ -651,7 +637,7 @@ def create_gradio_interface():
651
  download_file = gr.File(label="Download JSON", visible=False)
652
  export_status = gr.Markdown()
653
 
654
- # --- Event Handlers ---
655
  def check_and_confirm_id(pid):
656
  pid = pid.strip()
657
  if re.fullmatch(r"P\d{2}", pid):
@@ -664,9 +650,8 @@ def create_gradio_interface():
664
  confirm_id_btn.click(check_and_confirm_id, [participant_id_input], [setup_warning, setup_main_group])
665
  load_data_btn.click(load_evaluation_data, [participant_id_input], [setup_status, load_data_btn, tab_evaluation])
666
 
667
- # ▼▼▼ 修正: all_eval_outputs に新しいUIコンポーネントを追加 ▼▼▼
668
  all_eval_outputs = [
669
- progress_text, prompt_display, guidance_display, error_display, *image_components,
670
  *rank_buttons,
671
  absolute_eval_group_best, *absolute_score_buttons,
672
  absolute_eval_group_worst, *absolute_score_worst_buttons,
@@ -691,7 +676,6 @@ def create_gradio_interface():
691
  absolute_score_buttons
692
  )
693
 
694
- # ▼▼▼ 追加: 新しいボタンのイベントハンドラを接続 ▼▼▼
695
  for i, btn in enumerate(absolute_score_worst_buttons):
696
  btn.click(
697
  partial(handle_absolute_score_worst_click, i + 1),
@@ -700,20 +684,15 @@ def create_gradio_interface():
700
  )
701
 
702
  tab_evaluation.select(display_current_prompt_and_criterion, [], all_eval_outputs)
703
-
704
- # ▼▼▼ 修正: next_btn の出力に tab_export を追加 ▼▼▼
705
  next_btn.click(validate_and_navigate, [], [tab_export, *all_eval_outputs])
706
-
707
  prev_btn.click(navigate_previous, [], all_eval_outputs)
708
 
709
  export_tab_interactive_components = [alignment_reason_box, naturalness_reason_box, attractiveness_reason_box,
710
  optional_comment_box, export_btn]
711
 
712
  def on_select_export_tab():
713
- # end_time is set only when all evaluations are complete
714
  if GLOBAL_STATE.get("end_time"):
715
  return [gr.update(interactive=True)] * 5
716
- # This logic is now handled by next_btn click, but kept as a fallback.
717
  return [gr.update(interactive=False)] * 5
718
 
719
  tab_export.select(on_select_export_tab, [], export_tab_interactive_components)
@@ -727,6 +706,7 @@ def create_gradio_interface():
727
 
728
  return app
729
 
 
730
  if __name__ == "__main__":
731
  os.makedirs(LOG_DIR, exist_ok=True)
732
  log_file_path = os.path.join(LOG_DIR, "evaluation_ui_log_{time}.log")
 
11
  import gradio as gr
12
  from loguru import logger
13
 
 
14
  # --- Global State (unchanged) ---
15
  GLOBAL_STATE = {
16
  "participant_id": None,
 
27
  "end_time": None,
28
  "current_ranks": {},
29
  "current_absolute_score": None,
 
30
  "current_absolute_score_worst": None,
31
  }
32
 
 
52
  IMAGE_LABELS = ['A', 'B', 'C', 'D', 'E']
53
 
54
 
55
+ # --- Helper Functions (unchanged) ---
56
  def get_image_path_from_prediction(prediction: dict) -> str:
57
  if not GLOBAL_STATE["image_mapping"]:
58
  logger.error("Image mapping is not loaded.")
 
70
  return os.path.join(GLOBAL_STATE["image_dir"], filename)
71
 
72
 
 
73
  def load_evaluation_data(participant_id: str):
74
  mapping_path = os.path.join(COMBINED_DATA_DIR, MAPPING_FILENAME)
75
  if not os.path.exists(mapping_path):
 
112
  {"prompt": p, "predictions": d["predictions"], "category": d["category"]}
113
  for p, d in merged_data.items() if len(d["predictions"]) == len(CONDITIONS)
114
  ]
 
115
 
116
  if not GLOBAL_STATE["all_eval_data"]:
117
  return "<p class='feedback red'>Error: No valid evaluation data could be loaded.</p>", gr.update(
 
132
  return done_msg, gr.update(interactive=False, visible=False), gr.update(interactive=True)
133
 
134
 
135
+ # --- Core Logic (unchanged) ---
 
136
  def _create_button_updates():
137
  updates = []
138
  for img_label in IMAGE_LABELS:
 
158
  GLOBAL_STATE["current_absolute_score"] = None
159
  else:
160
  GLOBAL_STATE["current_absolute_score"] = score
 
161
  updates = []
162
  for i in range(1, 8):
163
  if i == GLOBAL_STATE["current_absolute_score"]:
 
167
  return updates
168
 
169
 
 
170
  def handle_absolute_score_worst_click(score):
171
  if GLOBAL_STATE["current_absolute_score_worst"] == score:
172
  GLOBAL_STATE["current_absolute_score_worst"] = None
173
  else:
174
  GLOBAL_STATE["current_absolute_score_worst"] = score
 
175
  updates = []
176
  for i in range(1, 8):
177
  if i == GLOBAL_STATE["current_absolute_score_worst"]:
 
180
  updates.append(gr.update(variant='secondary'))
181
  return updates
182
 
 
183
 
184
+ # --- UI Logic ---
185
 
186
  # ▼▼▼ 修正後の display_current_prompt_and_criterion 関数 ▼▼▼
187
  def display_current_prompt_and_criterion():
 
190
  empty_button_updates = [gr.update(variant='secondary')] * 25
191
  empty_abs_updates = [gr.update(variant='secondary')] * 7
192
  return [
193
+ gr.update(value="Finished! / 完了!"), # progress_text
194
+ gr.update(value=""), # combined_instructions_display
195
+ gr.update(value=""), # prompt_display
196
+ gr.update(value=done_msg, visible=True), # error_display
197
  *[gr.update(value=None)] * 5,
198
  *empty_button_updates,
199
  gr.update(visible=False), # abs_group_best
 
212
  criterion_name = CRITERIA[criterion_idx]
213
 
214
  progress_text = f"Prompt {GLOBAL_STATE['current_prompt_index'] + 1} / {len(GLOBAL_STATE['all_eval_data'])} - **{criterion_name}**"
215
+
216
+ # ▼▼▼ 修正1: プロンプト表示のフォントサイズを3倍に変更 ▼▼▼
217
+ prompt_display_text = f"<p style='font-size: 3em; font-weight: bold;'>テキスト(TEXT): {prompt_text}</p>"
218
+
219
+ # ▼▼▼ 修正2: 統合された指示文を生成(注意文の変更) ▼▼▼
220
+ guidance_part = (
221
+ f"<p style='color: red; font-weight: bold; font-size: 1.1em;'>"
222
+ f"5つの画像を、「{CRITERIA_GUIDANCE_JP[criterion_idx]}」を基準にランキングしてください。<br>"
223
+ f"Please rank the 5 images based on {CRITERIA_GUIDANCE_EN[criterion_idx]}"
224
+
225
+ f"</p>"
226
+ )
227
+ rules_part = (
228
+ "<b>ランキングの方法 / How to Rank:</b>"
229
+ "<ul>"
230
+ "<li><b>全く同じ表情の画像には、同じ順位</b>を付け���ください。(Assign the <b>same rank</b> to identical expressions.)</li>"
231
+ "<li><b>少しでも違う表情の画像には、違う順位</b>を付けてください。(Assign <b>different ranks</b> to different expressions.)</li>"
232
+ "<li><b>必ず1位から</b>順位を付けてください。(You <b>must</b> assign a rank of '1' to at least one image.)</li>"
233
+ "<li>同順位がある場合、<b>その人数分だけ次の順位を飛ばしてください</b>。(When you have ties, <b>skip the next rank(s) accordingly</b>.)"
234
+ "<ul>"
235
+ "<li>例1: 1位が2つある場合、次は3位になります (Ex. 1: If there are two '1st' places, the next rank is '3rd'. e.g., <code>1, 1, 3, 4, 5</code>).</li>"
236
+ "<li>例2: 1位が1つ、2位が3つある場合、次は5位になります (Ex. 2: If there is one '1st' and three '2nd' places, the next rank is '5th'. e.g., <code>1, 2, 2, 2, 5</code>).</li>"
237
+ "</ul></li></ul>"
238
+ )
239
+ ai_note_part = (
240
+ "<p style='font-size: 0.9em; color: #555;'>"
241
+ "設問や英単語の意味についてはAIに質問したり検索したりしても構いません。ただし、画像そのものが示す感情をAIに質問するのはお控えください。<br>"
242
+ "You are welcome to use AI or web search to understand the questions or the meaning of English words. However, please refrain from asking an AI about the emotion shown in the images themselves."
243
+
244
+ "</p>"
245
+ )
246
+ combined_instructions = f"{guidance_part}<hr>{rules_part}<hr>{ai_note_part}"
247
 
248
  if criterion_idx == 0:
249
  GLOBAL_STATE["image_orders"] = {}
 
271
 
272
  button_updates = _create_button_updates()
273
 
 
274
  is_alignment_criterion = (criterion_name == "Alignment")
275
  abs_group_update = gr.update(visible=is_alignment_criterion)
276
  saved_abs_score = GLOBAL_STATE["evaluation_results"].get(prompt_text, {}).get("absolute_score")
 
281
  variant = 'primary' if i == GLOBAL_STATE["current_absolute_score"] else 'secondary'
282
  abs_button_updates.append(gr.update(variant=variant))
283
 
 
284
  abs_group_worst_update = gr.update(visible=is_alignment_criterion)
285
  saved_abs_score_worst = GLOBAL_STATE["evaluation_results"].get(prompt_text, {}).get("absolute_score_worst")
286
  GLOBAL_STATE["current_absolute_score_worst"] = saved_abs_score_worst if is_alignment_criterion else None
 
292
 
293
  return [
294
  gr.update(value=progress_text),
295
+ gr.update(value=combined_instructions),
296
  gr.update(value=prompt_display_text),
297
+ gr.update(value="", visible=False), # Error display
 
298
  *image_updates,
299
  *button_updates,
300
  abs_group_update,
 
307
  ]
308
 
309
 
310
+ # ▼▼▼ 修正後の validate_and_navigate 関数 (変更なし) ▼▼▼
311
  def validate_and_navigate():
312
  ranks = GLOBAL_STATE["current_ranks"]
313
  error_msg = None
314
  criterion_name = CRITERIA[GLOBAL_STATE["current_criterion_index"]]
315
  is_alignment_criterion = (criterion_name == "Alignment")
316
 
 
317
  if any(r is None for r in ranks.values()):
318
  error_msg = "Please rank all 5 images. / 5つすべての画像を評価してください。"
319
  elif 1 not in ranks.values():
 
322
  error_msg = "Please provide an absolute score for the BEST matching image (1-7). / 最も一致している画像について、絶対評価(1~7)を選択してください。"
323
  elif is_alignment_criterion and GLOBAL_STATE["current_absolute_score_worst"] is None:
324
  error_msg = "Please provide an absolute score for the WORST matching image (1-7). / 最も一致していない画像について、絶対評価(1~7)を選択してください。"
 
325
  elif (
326
+ is_alignment_criterion
327
+ and GLOBAL_STATE["current_absolute_score"] is not None
328
+ and GLOBAL_STATE["current_absolute_score_worst"] is not None
329
+ and GLOBAL_STATE["current_absolute_score_worst"] > GLOBAL_STATE["current_absolute_score"]
330
  ):
331
  error_msg = (
332
  "The score for the WORST matching image cannot be higher than the score for the BEST matching image.<br>"
333
  "「最も一致していない画像」のスコアが「最も一致している画像」のスコアを上回ることはできません。"
334
  )
 
335
 
336
  if error_msg:
 
337
  no_change_updates = [gr.update()] * 53
338
+ no_change_updates[4] = gr.update(
339
  value=f"<p class='feedback red' style='font-size: 1.2em; text-align: center;'>{error_msg}</p>",
340
  visible=True)
341
  return no_change_updates
342
 
 
343
  sorted_ranks = sorted(list(ranks.values()))
344
  rank_counts = Counter(sorted_ranks)
345
  i = 0
 
350
  next_rank = sorted_ranks[i + count]
351
  expected_next_rank = current_rank + count
352
  if next_rank < expected_next_rank:
353
+ error_msg = f"Ranking rule violation (tie-breaking). After {count} instance(s) of rank '{current_rank}', the next rank must be >= {expected_next_rank}, but it is '{next_rank}'. / ランキングのルール違反です。'{current_rank}'位が{count}個あるため、次の順位は{expected_next_rank}位以上である必要がありますが、'{next_rank}'位が入力されています。"
354
  break
355
  i += count
356
  if error_msg:
 
359
  value=f"<p class='feedback red' style='font-size: 1.2em; text-align: center;'>{error_msg}</p>",
360
  visible=True)
361
  return no_change_updates
 
362
 
363
  prompt_idx = GLOBAL_STATE["shuffled_indices"][GLOBAL_STATE["current_prompt_index"]]
364
  current_data = GLOBAL_STATE["all_eval_data"][prompt_idx]
 
392
  if GLOBAL_STATE["current_prompt_index"] >= len(GLOBAL_STATE["all_eval_data"]):
393
  GLOBAL_STATE["end_time"] = datetime.now()
394
  eval_panel_updates = display_current_prompt_and_criterion()
 
395
  return [gr.update(interactive=True)] + eval_panel_updates
396
  else:
 
397
  return [gr.update()] + display_current_prompt_and_criterion()
398
 
399
+
400
  def navigate_previous():
401
  GLOBAL_STATE["current_criterion_index"] -= 1
402
  if GLOBAL_STATE["current_criterion_index"] < 0:
 
405
  GLOBAL_STATE["current_prompt_index"] = max(0, GLOBAL_STATE["current_prompt_index"])
406
  return display_current_prompt_and_criterion()
407
 
408
+
409
+ # ▼▼▼ 修正後の export_results 関数 (変更なし) ▼▼▼
410
  def export_results(participant_id, alignment_reason, naturalness_reason, attractiveness_reason, optional_comment):
411
  if not alignment_reason.strip() or not naturalness_reason.strip() or not attractiveness_reason.strip():
412
  error_msg = "<p class='feedback red'>Please fill in the reasoning for all three criteria (Alignment, Naturalness, Attractiveness). / 3つの評価基準(一致度, 自然さ, 魅力度)すべての判断理由を記入してください。</p>"
 
442
  "naturalness_ranks": ranks_data.get("Naturalness", {}),
443
  "attractiveness_ranks": ranks_data.get("Attractiveness", {}),
444
  "alignment_absolute_score": data.get("absolute_score"),
 
445
  "alignment_absolute_score_worst": data.get("absolute_score_worst")
446
  })
447
 
 
480
  return gr.update(value=filepath, visible=True), status_message
481
 
482
 
483
+ # ▼▼▼ 修正後の create_gradio_interface 関数 (変更なし) ▼▼▼
484
  def create_gradio_interface():
485
  css = """
486
  .gradio-container { font-family: 'Arial', sans-serif; }
 
488
  .feedback.green { background-color: #e6ffed; color: #2f6f4a; }
489
  .feedback.red { background-color: #ffe6e6; color: #b30000; }
490
  .image-label { font-size: 2.5em; font-weight: bold; margin-bottom: 10px; color: #333; }
491
+ .prompt-display { text-align: center; margin-bottom: 15px; padding: 10px; background-color: #f0f8ff; border-radius: 8px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
492
  .rank-btn-row { justify-content: center; gap: 5px !important; }
493
+ .rank-btn {
494
+ min-width: 65px !important;
495
  max-width: 65px !important;
496
  height: 45px !important;
497
  font-size: 1.2em !important;
 
513
  padding: 15px;
514
  margin-top: 20px;
515
  }
516
+ .instructions-container {
517
+ padding: 15px;
518
+ border: 1px solid #ccc;
519
+ border-radius: 8px;
520
+ margin-bottom: 20px;
521
+ background-color: #fafafa;
522
+ }
523
+ .instructions-container ul { padding-left: 20px; margin-top: 5px; margin-bottom: 5px; }
524
+ .instructions-container hr { margin: 15px 0; }
525
  """
526
 
527
  with gr.Blocks(title="Expression Evaluation Experiment", css=css) as app:
 
553
 
554
  with gr.TabItem("2. Evaluation / 評価", interactive=False) as tab_evaluation:
555
  progress_text = gr.Markdown("Prompt 0 / 0")
556
+ combined_instructions_display = gr.Markdown("", elem_classes="instructions-container")
557
+ prompt_display = gr.Markdown("", elem_classes="prompt-display")
558
+ error_display = gr.Markdown(visible=False)
559
 
560
  image_components = []
561
  rank_buttons = []
 
569
  with gr.Row(elem_classes="rank-btn-row"):
570
  rank_list = ["1位", "2位", "3位", "4位", "5位"]
571
  for rank_val in range(1, 6):
572
+ btn = gr.Button(str(rank_list[rank_val - 1]), variant='secondary',
573
+ elem_classes="rank-btn")
574
  rank_buttons.append(btn)
575
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
576
  with gr.Group(visible=False, elem_classes="absolute-eval-group") as absolute_eval_group_best:
577
  gr.Markdown("---")
578
  gr.Markdown(
579
+ "#### 絶対評価 (Best) / Absolute Score (Best)\n最もテキストと一致している画像について、どの程度一致しているかを評価してください。\n(Please evaluate the degree of alignment for the image that **best** matches the text.)")
580
  absolute_score_buttons = []
581
  with gr.Row():
582
  with gr.Column(scale=1):
 
590
  with gr.Column(scale=1):
591
  gr.Markdown("<p style='text-align: left; margin-top: 10px;'>7 (完全に一致 / Absolutely)</p>")
592
 
 
593
  with gr.Group(visible=False, elem_classes="absolute-eval-group") as absolute_eval_group_worst:
594
  gr.Markdown(
595
+ "#### 絶対評価 (Worst) / Absolute Score (Worst)\n最もテキストと一致していない画像について、どの程度一致しているかを評価してください。\n(Please evaluate the degree of alignment for the image that **least** matches the text.)")
596
  absolute_score_worst_buttons = []
597
  with gr.Row():
598
  with gr.Column(scale=1):
 
618
  with gr.Group():
619
  gr.Markdown("#### Reasoning for Judgments (Required) / 判断理由(必須)")
620
  alignment_reason_box = gr.Textbox(label="Alignment / 一致度", lines=3,
621
+ placeholder="Why did you rank them this way for alignment? / なぜ一致度について、このようなランキングにしましたか?")
622
  naturalness_reason_box = gr.Textbox(label="Naturalness / 自然さ", lines=3,
623
+ placeholder="Why did you rank them this way for naturalness? / なぜ自然さについて、このようなランキングにしましたか?")
624
  attractiveness_reason_box = gr.Textbox(label="Attractiveness / 魅力度", lines=3,
625
+ placeholder="Why did you rank them this way for attractiveness? / なぜ魅力度について、このようなランキングにしましたか?")
626
 
627
  with gr.Group():
628
  gr.Markdown("#### Overall Comments (Optional) / 全体的な感想(任意)")
 
637
  download_file = gr.File(label="Download JSON", visible=False)
638
  export_status = gr.Markdown()
639
 
640
+ # --- Event Handlers (unchanged) ---
641
  def check_and_confirm_id(pid):
642
  pid = pid.strip()
643
  if re.fullmatch(r"P\d{2}", pid):
 
650
  confirm_id_btn.click(check_and_confirm_id, [participant_id_input], [setup_warning, setup_main_group])
651
  load_data_btn.click(load_evaluation_data, [participant_id_input], [setup_status, load_data_btn, tab_evaluation])
652
 
 
653
  all_eval_outputs = [
654
+ progress_text, combined_instructions_display, prompt_display, error_display, *image_components,
655
  *rank_buttons,
656
  absolute_eval_group_best, *absolute_score_buttons,
657
  absolute_eval_group_worst, *absolute_score_worst_buttons,
 
676
  absolute_score_buttons
677
  )
678
 
 
679
  for i, btn in enumerate(absolute_score_worst_buttons):
680
  btn.click(
681
  partial(handle_absolute_score_worst_click, i + 1),
 
684
  )
685
 
686
  tab_evaluation.select(display_current_prompt_and_criterion, [], all_eval_outputs)
 
 
687
  next_btn.click(validate_and_navigate, [], [tab_export, *all_eval_outputs])
 
688
  prev_btn.click(navigate_previous, [], all_eval_outputs)
689
 
690
  export_tab_interactive_components = [alignment_reason_box, naturalness_reason_box, attractiveness_reason_box,
691
  optional_comment_box, export_btn]
692
 
693
  def on_select_export_tab():
 
694
  if GLOBAL_STATE.get("end_time"):
695
  return [gr.update(interactive=True)] * 5
 
696
  return [gr.update(interactive=False)] * 5
697
 
698
  tab_export.select(on_select_export_tab, [], export_tab_interactive_components)
 
706
 
707
  return app
708
 
709
+
710
  if __name__ == "__main__":
711
  os.makedirs(LOG_DIR, exist_ok=True)
712
  log_file_path = os.path.join(LOG_DIR, "evaluation_ui_log_{time}.log")
logs/evaluation_ui_log_2025-07-30_17-22-55_355099.log ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ 2025-07-30 17:23:11.312 | INFO | __main__:load_evaluation_data:82 - Successfully loaded image mapping. Image directory: ./combined_data\lapwing\images
2
+ 2025-07-30 17:23:11.339 | INFO | __main__:load_evaluation_data:130 - Loaded and merged data for 28 prompts.
logs/evaluation_ui_log_2025-07-30_17-24-13_896139.log ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ 2025-07-30 17:24:33.918 | INFO | __main__:load_evaluation_data:82 - Successfully loaded image mapping. Image directory: ./combined_data\lapwing\images
2
+ 2025-07-30 17:24:33.919 | INFO | __main__:load_evaluation_data:130 - Loaded and merged data for 2 prompts.
3
+ 2025-07-30 17:25:07.255 | INFO | __main__:validate_and_navigate:384 - Saved rank for P:P99, Prompt:'sad', Criterion:Alignment, Ranks:{'LLM-based': 5, 'w_o_Proto_Loss': 2, 'Ours': 2, 'w_o_Tuning': 1, 'w_o_HitL': 4}
4
+ 2025-07-30 17:25:27.280 | INFO | __main__:validate_and_navigate:384 - Saved rank for P:P99, Prompt:'sad', Criterion:Naturalness, Ranks:{'w_o_Tuning': 1, 'w_o_HitL': 4, 'Ours': 2, 'w_o_Proto_Loss': 2, 'LLM-based': 5}
5
+ 2025-07-30 17:25:51.255 | INFO | __main__:validate_and_navigate:384 - Saved rank for P:P99, Prompt:'sad', Criterion:Attractiveness, Ranks:{'Ours': 2, 'w_o_Proto_Loss': 2, 'LLM-based': 5, 'w_o_Tuning': 1, 'w_o_HitL': 4}
6
+ 2025-07-30 17:26:08.090 | INFO | __main__:validate_and_navigate:384 - Saved rank for P:P99, Prompt:'happy', Criterion:Alignment, Ranks:{'w_o_Tuning': 5, 'w_o_Proto_Loss': 1, 'Ours': 1, 'w_o_HitL': 4, 'LLM-based': 1}
7
+ 2025-07-30 17:26:22.237 | INFO | __main__:validate_and_navigate:384 - Saved rank for P:P99, Prompt:'happy', Criterion:Naturalness, Ranks:{'w_o_HitL': 5, 'LLM-based': 1, 'w_o_Proto_Loss': 1, 'w_o_Tuning': 4, 'Ours': 1}
8
+ 2025-07-30 17:26:31.796 | INFO | __main__:validate_and_navigate:384 - Saved rank for P:P99, Prompt:'happy', Criterion:Attractiveness, Ranks:{'LLM-based': 1, 'w_o_HitL': 4, 'w_o_Proto_Loss': 1, 'Ours': 1, 'w_o_Tuning': 5}
9
+ 2025-07-30 17:26:43.784 | INFO | __main__:export_results:467 - Successfully exported results to: ./results\P99\evaluation_results_P99_20250730_172643.json
results/P99/LLM-based/P99_LLM-based_all_predictions.jsonl CHANGED
@@ -1,28 +1,2 @@
1
  {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "にこり"}, "blendshape_index": {"0": 1, "1": 3}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
2
  {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "困る"}, "blendshape_index": {"0": 4, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
3
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "angry", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
4
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "surprised", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "上"}, "blendshape_index": {"0": 3, "1": 4}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
5
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "disgusted", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "困る"}, "blendshape_index": {"0": 4, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
6
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "fearful", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "困る"}, "blendshape_index": {"0": 3, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
7
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "neutral", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "none"}, "blendshape_index": {"0": -1, "1": -1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
8
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "contempt", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
9
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "anger", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
10
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "annoyed", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
11
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "calm down", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "真面目"}, "blendshape_index": {"0": 2, "1": 0}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
12
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "envy", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "困る"}, "blendshape_index": {"0": 4, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
13
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "fear", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "困る"}, "blendshape_index": {"0": 3, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
14
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "fun", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "にこり"}, "blendshape_index": {"0": 1, "1": 3}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
15
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "irritated", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
16
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "rage", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
17
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "success", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "にこり"}, "blendshape_index": {"0": 1, "1": 3}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
18
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "champion", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "にこり"}, "blendshape_index": {"0": 1, "1": 3}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
19
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "achievement", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "にこり"}, "blendshape_index": {"0": 1, "1": 3}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
20
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "danger", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
21
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "violent", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
22
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "assault", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
23
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "despised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
24
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "compromised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "困る"}, "blendshape_index": {"0": 4, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
25
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "endured", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "困る"}, "blendshape_index": {"0": 4, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
26
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "peace", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "none"}, "blendshape_index": {"0": 2, "1": -1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
27
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "meditation", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "none"}, "blendshape_index": {"0": 2, "1": -1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
28
- {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "faith", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "真面目"}, "blendshape_index": {"0": 2, "1": 0}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
 
1
  {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "にこり"}, "blendshape_index": {"0": 1, "1": 3}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
2
  {"participant_id": "P99", "condition": "LLM-based", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "困る"}, "blendshape_index": {"0": 4, "1": 1}, "blendshape_confidence": {"0": 1.0, "1": 1.0}}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
results/P99/Ours/P99_Ours_all_predictions.jsonl CHANGED
@@ -1,28 +1,2 @@
1
  {"participant_id": "P99", "condition": "Ours", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.8829594850540161, "1": 0.918801486492157}}}
2
  {"participant_id": "P99", "condition": "Ours", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9188652038574219, "1": 0.9860095977783203}}}
3
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "angry", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9934472441673279, "1": 0.9964340925216675}}}
4
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "surprised", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "上"}, "blendshape_index": {"0": 3, "1": 4}, "blendshape_confidence": {"0": 0.9867932200431824, "1": 0.40988487005233765}}}
5
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "disgusted", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9183335900306702, "1": 0.9852670431137085}}}
6
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "fearful", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "none"}, "blendshape_index": {"0": 6, "1": -1}, "blendshape_confidence": {"0": 0.9025203585624695, "1": 0.8258314728736877}}}
7
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "neutral", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "none"}, "blendshape_index": {"0": -1, "1": -1}, "blendshape_confidence": {"0": 0.9684476256370544, "1": 0.9315744638442993}}}
8
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "contempt", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "上"}, "blendshape_index": {"0": -1, "1": 4}, "blendshape_confidence": {"0": 0.738766074180603, "1": 0.3185594081878662}}}
9
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "anger", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.99409419298172, "1": 0.9966574907302856}}}
10
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "annoyed", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 0, "1": 6}, "blendshape_confidence": {"0": 0.9798097610473633, "1": 0.9802103638648987}}}
11
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "calm down", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9884201288223267, "1": 0.9626672267913818}}}
12
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "envy", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "にこり"}, "blendshape_index": {"0": 5, "1": 3}, "blendshape_confidence": {"0": 0.9306393265724182, "1": 0.4057946801185608}}}
13
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "fear", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "none"}, "blendshape_index": {"0": 6, "1": -1}, "blendshape_confidence": {"0": 0.8775139451026917, "1": 0.8733732104301453}}}
14
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "fun", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.8810413479804993, "1": 0.9187805652618408}}}
15
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "irritated", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "怒り"}, "blendshape_index": {"0": 0, "1": 2}, "blendshape_confidence": {"0": 0.9913926124572754, "1": 0.9711134433746338}}}
16
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "rage", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": -1, "1": 7}, "blendshape_confidence": {"0": 0.9819115400314331, "1": 0.9587745666503906}}}
17
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "success", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "none"}, "blendshape_index": {"0": 2, "1": -1}, "blendshape_confidence": {"0": 0.7905964851379395, "1": 0.7364094257354736}}}
18
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "champion", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": -1, "1": 6}, "blendshape_confidence": {"0": 0.225070059299469, "1": 0.2288871556520462}}}
19
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "achievement", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.84685879945755, "1": 0.9233157634735107}}}
20
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "danger", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9890667200088501, "1": 0.9955976605415344}}}
21
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "violent", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.991489052772522, "1": 0.9950138926506042}}}
22
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "assault", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.9711559414863586, "1": 0.9611696600914001}}}
23
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "despised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9023531675338745, "1": 0.9861067533493042}}}
24
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "compromised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.9876964688301086, "1": 0.9633303880691528}}}
25
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "endured", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.9792107939720154, "1": 0.9455814957618713}}}
26
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "peace", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9869998097419739, "1": 0.9589342474937439}}}
27
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "meditation", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.987371563911438, "1": 0.9588003754615784}}}
28
- {"participant_id": "P99", "condition": "Ours", "text_prompt": "faith", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "none"}, "blendshape_index": {"0": 6, "1": -1}, "blendshape_confidence": {"0": 0.8768095374107361, "1": 0.7420511245727539}}}
 
1
  {"participant_id": "P99", "condition": "Ours", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.8829594850540161, "1": 0.918801486492157}}}
2
  {"participant_id": "P99", "condition": "Ours", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9188652038574219, "1": 0.9860095977783203}}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
results/P99/evaluation_results_P99_20250730_172643.json ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "participant_id": "P99",
4
+ "export_timestamp": "2025-07-30T17:26:43.784967",
5
+ "total_prompts_evaluated": 2,
6
+ "evaluation_duration_seconds": 117.877614,
7
+ "reasoning": {
8
+ "alignment": "AAAA",
9
+ "naturalness": "BBB",
10
+ "attractiveness": "CCC"
11
+ },
12
+ "optional_comment": "DDD"
13
+ },
14
+ "results": [
15
+ {
16
+ "prompt": "happy",
17
+ "prompt_category": "basic_emotion",
18
+ "image_order_alignment": [
19
+ "w_o_Tuning",
20
+ "w_o_Proto_Loss",
21
+ "Ours",
22
+ "w_o_HitL",
23
+ "LLM-based"
24
+ ],
25
+ "image_order_naturalness": [
26
+ "w_o_HitL",
27
+ "LLM-based",
28
+ "w_o_Proto_Loss",
29
+ "w_o_Tuning",
30
+ "Ours"
31
+ ],
32
+ "image_order_attractiveness": [
33
+ "LLM-based",
34
+ "w_o_HitL",
35
+ "w_o_Proto_Loss",
36
+ "Ours",
37
+ "w_o_Tuning"
38
+ ],
39
+ "alignment_ranks": {
40
+ "w_o_Tuning": 5,
41
+ "w_o_Proto_Loss": 1,
42
+ "Ours": 1,
43
+ "w_o_HitL": 4,
44
+ "LLM-based": 1
45
+ },
46
+ "naturalness_ranks": {
47
+ "w_o_HitL": 5,
48
+ "LLM-based": 1,
49
+ "w_o_Proto_Loss": 1,
50
+ "w_o_Tuning": 4,
51
+ "Ours": 1
52
+ },
53
+ "attractiveness_ranks": {
54
+ "LLM-based": 1,
55
+ "w_o_HitL": 4,
56
+ "w_o_Proto_Loss": 1,
57
+ "Ours": 1,
58
+ "w_o_Tuning": 5
59
+ },
60
+ "alignment_absolute_score": 6,
61
+ "alignment_absolute_score_worst": 1
62
+ },
63
+ {
64
+ "prompt": "sad",
65
+ "prompt_category": "basic_emotion",
66
+ "image_order_alignment": [
67
+ "LLM-based",
68
+ "w_o_Proto_Loss",
69
+ "Ours",
70
+ "w_o_Tuning",
71
+ "w_o_HitL"
72
+ ],
73
+ "image_order_naturalness": [
74
+ "w_o_Tuning",
75
+ "w_o_HitL",
76
+ "Ours",
77
+ "w_o_Proto_Loss",
78
+ "LLM-based"
79
+ ],
80
+ "image_order_attractiveness": [
81
+ "Ours",
82
+ "w_o_Proto_Loss",
83
+ "LLM-based",
84
+ "w_o_Tuning",
85
+ "w_o_HitL"
86
+ ],
87
+ "alignment_ranks": {
88
+ "LLM-based": 5,
89
+ "w_o_Proto_Loss": 2,
90
+ "Ours": 2,
91
+ "w_o_Tuning": 1,
92
+ "w_o_HitL": 4
93
+ },
94
+ "naturalness_ranks": {
95
+ "w_o_Tuning": 1,
96
+ "w_o_HitL": 4,
97
+ "Ours": 2,
98
+ "w_o_Proto_Loss": 2,
99
+ "LLM-based": 5
100
+ },
101
+ "attractiveness_ranks": {
102
+ "Ours": 2,
103
+ "w_o_Proto_Loss": 2,
104
+ "LLM-based": 5,
105
+ "w_o_Tuning": 1,
106
+ "w_o_HitL": 4
107
+ },
108
+ "alignment_absolute_score": 6,
109
+ "alignment_absolute_score_worst": 1
110
+ }
111
+ ]
112
+ }
results/P99/w_o_HitL/P99_w_o_HitL_all_predictions.jsonl CHANGED
@@ -1,28 +1,2 @@
1
  {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "none"}, "blendshape_index": {"0": 3, "1": -1}, "blendshape_confidence": {"0": 0.9955354928970337, "1": 0.48252469301223755}}}
2
  {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9925839900970459, "1": 0.9879806637763977}}}
3
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "angry", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9901167750358582, "1": 0.9958637952804565}}}
4
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "surprised", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 3, "1": 6}, "blendshape_confidence": {"0": 0.9973410964012146, "1": 0.8971224427223206}}}
5
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "disgusted", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9930424690246582, "1": 0.9849758744239807}}}
6
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "fearful", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 4, "1": 6}, "blendshape_confidence": {"0": 0.9604305624961853, "1": 0.5642914175987244}}}
7
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "neutral", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "none"}, "blendshape_index": {"0": -1, "1": -1}, "blendshape_confidence": {"0": 0.948350727558136, "1": 0.7772430181503296}}}
8
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "contempt", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "none"}, "blendshape_index": {"0": 3, "1": -1}, "blendshape_confidence": {"0": 0.9248173832893372, "1": 0.808703601360321}}}
9
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "anger", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9907746911048889, "1": 0.9962483048439026}}}
10
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "annoyed", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9843609929084778, "1": 0.9936684966087341}}}
11
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "calm down", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "困る"}, "blendshape_index": {"0": 0, "1": 1}, "blendshape_confidence": {"0": 0.8480381965637207, "1": 0.36084139347076416}}}
12
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "envy", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "none"}, "blendshape_index": {"0": 5, "1": -1}, "blendshape_confidence": {"0": 0.9658690094947815, "1": 0.8019410371780396}}}
13
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "fear", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 4, "1": 6}, "blendshape_confidence": {"0": 0.9659411907196045, "1": 0.5346943736076355}}}
14
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "fun", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 3, "1": 6}, "blendshape_confidence": {"0": 0.9964733719825745, "1": 0.601479709148407}}}
15
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "irritated", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9969378709793091, "1": 0.9883919358253479}}}
16
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "rage", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 6, "1": 7}, "blendshape_confidence": {"0": 0.512029230594635, "1": 0.9891716837882996}}}
17
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "success", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 0, "1": 6}, "blendshape_confidence": {"0": 0.7897265553474426, "1": 0.29503968358039856}}}
18
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "champion", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 3, "1": 7}, "blendshape_confidence": {"0": 0.7256515026092529, "1": 0.8692778944969177}}}
19
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "achievement", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "none"}, "blendshape_index": {"0": 3, "1": -1}, "blendshape_confidence": {"0": 0.994852602481842, "1": 0.8096010684967041}}}
20
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "danger", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 6, "1": 7}, "blendshape_confidence": {"0": 0.6568341255187988, "1": 0.9906275272369385}}}
21
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "violent", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.5889117121696472, "1": 0.9689963459968567}}}
22
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "assault", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.5944083333015442, "1": 0.9854176044464111}}}
23
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "despised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.992882490158081, "1": 0.9865531325340271}}}
24
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "compromised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "怒り"}, "blendshape_index": {"0": 4, "1": 2}, "blendshape_confidence": {"0": 0.683573305606842, "1": 0.8146002888679504}}}
25
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "endured", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "none"}, "blendshape_index": {"0": 5, "1": -1}, "blendshape_confidence": {"0": 0.9586669206619263, "1": 0.8098506331443787}}}
26
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "peace", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "困る"}, "blendshape_index": {"0": 0, "1": 1}, "blendshape_confidence": {"0": 0.8249197602272034, "1": 0.34819987416267395}}}
27
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "meditation", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "困る"}, "blendshape_index": {"0": 0, "1": 1}, "blendshape_confidence": {"0": 0.8307234644889832, "1": 0.31552064418792725}}}
28
- {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "faith", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "none"}, "blendshape_index": {"0": 4, "1": -1}, "blendshape_confidence": {"0": 0.9788743853569031, "1": 0.5678081512451172}}}
 
1
  {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "none"}, "blendshape_index": {"0": 3, "1": -1}, "blendshape_confidence": {"0": 0.9955354928970337, "1": 0.48252469301223755}}}
2
  {"participant_id": "P99", "condition": "w_o_HitL", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9925839900970459, "1": 0.9879806637763977}}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
results/P99/w_o_Proto_Loss/P99_w_o_Proto_Loss_all_predictions.jsonl CHANGED
@@ -1,28 +1,2 @@
1
  {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.857072114944458, "1": 0.9783397912979126}}}
2
  {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9462782144546509, "1": 0.9948987364768982}}}
3
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "angry", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9993799924850464, "1": 0.9989461302757263}}}
4
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "surprised", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "びっくり", "Eye Brow": "真面目"}, "blendshape_index": {"0": 3, "1": 0}, "blendshape_confidence": {"0": 0.9913455247879028, "1": 0.864502489566803}}}
5
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "disgusted", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9513380527496338, "1": 0.9959030747413635}}}
6
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "fearful", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "真面目"}, "blendshape_index": {"0": 6, "1": 0}, "blendshape_confidence": {"0": 0.9989352822303772, "1": 0.9337480068206787}}}
7
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "neutral", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "none"}, "blendshape_index": {"0": -1, "1": -1}, "blendshape_confidence": {"0": 0.9624476432800293, "1": 0.4305327236652374}}}
8
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "contempt", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9994403719902039, "1": 0.9996170997619629}}}
9
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "anger", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9993559718132019, "1": 0.9988413453102112}}}
10
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "annoyed", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 0, "1": 6}, "blendshape_confidence": {"0": 0.9998692274093628, "1": 0.9998729228973389}}}
11
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "calm down", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.999714195728302, "1": 0.9999082088470459}}}
12
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "envy", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.9988638162612915, "1": 0.5486642122268677}}}
13
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "fear", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "真面目"}, "blendshape_index": {"0": 6, "1": 0}, "blendshape_confidence": {"0": 0.9982534050941467, "1": 0.941937267780304}}}
14
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "fun", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.5580471754074097, "1": 0.9738865494728088}}}
15
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "irritated", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "怒り"}, "blendshape_index": {"0": 0, "1": 2}, "blendshape_confidence": {"0": 0.9998677968978882, "1": 0.9999879598617554}}}
16
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "rage", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": -1, "1": 7}, "blendshape_confidence": {"0": 0.9556686282157898, "1": 0.9913602471351624}}}
17
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "success", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.9657526612281799, "1": 0.9810805916786194}}}
18
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "champion", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.9621233344078064, "1": 0.9804757237434387}}}
19
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "achievement", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.966451108455658, "1": 0.9806578159332275}}}
20
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "danger", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.9937561750411987, "1": 0.9963276982307434}}}
21
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "violent", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9988694787025452, "1": 0.9984512329101562}}}
22
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "assault", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.9951441287994385, "1": 0.996715784072876}}}
23
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "despised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9212708473205566, "1": 0.9962344765663147}}}
24
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "compromised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "真面目"}, "blendshape_index": {"0": 6, "1": 0}, "blendshape_confidence": {"0": 0.9983739852905273, "1": 0.9489043951034546}}}
25
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "endured", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.9979373216629028, "1": 0.7368946671485901}}}
26
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "peace", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9995680451393127, "1": 0.9997628331184387}}}
27
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "meditation", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "真面目"}, "blendshape_index": {"0": 0, "1": 0}, "blendshape_confidence": {"0": 0.9996834993362427, "1": 0.9998527765274048}}}
28
- {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "faith", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "怒り"}, "blendshape_index": {"0": 2, "1": 2}, "blendshape_confidence": {"0": 0.5842269659042358, "1": 0.7885485887527466}}}
 
1
  {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "none"}, "blendshape_index": {"0": 1, "1": -1}, "blendshape_confidence": {"0": 0.857072114944458, "1": 0.9783397912979126}}}
2
  {"participant_id": "P99", "condition": "w_o_Proto_Loss", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "笑い", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 1, "1": 6}, "blendshape_confidence": {"0": 0.9462782144546509, "1": 0.9948987364768982}}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
results/P99/w_o_Tuning/P99_w_o_Tuning_all_predictions.jsonl CHANGED
@@ -1,28 +1,2 @@
1
  {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.5656874179840088, "1": 0.587822437286377}}}
2
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 0, "1": 6}, "blendshape_confidence": {"0": 0.49758368730545044, "1": 0.881377637386322}}}
3
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "angry", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 5, "1": 7}, "blendshape_confidence": {"0": 0.7024096846580505, "1": 0.9571686387062073}}}
4
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "surprised", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.6473039388656616, "1": 0.6241310238838196}}}
5
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "disgusted", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.9167402982711792, "1": 0.9840804934501648}}}
6
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "fearful", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 2, "1": 6}, "blendshape_confidence": {"0": 0.8649620413780212, "1": 0.8262342810630798}}}
7
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "neutral", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.9152483344078064, "1": 0.8729645609855652}}}
8
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "contempt", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "怒り"}, "blendshape_index": {"0": 2, "1": 2}, "blendshape_confidence": {"0": 0.5805065631866455, "1": 0.6281013488769531}}}
9
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "anger", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 5, "1": 7}, "blendshape_confidence": {"0": 0.7506015300750732, "1": 0.945537269115448}}}
10
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "annoyed", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 5, "1": 7}, "blendshape_confidence": {"0": 0.8491242527961731, "1": 0.8375992178916931}}}
11
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "calm down", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "怒り"}, "blendshape_index": {"0": 2, "1": 2}, "blendshape_confidence": {"0": 0.6149319410324097, "1": 0.6593886613845825}}}
12
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "envy", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 5, "1": 7}, "blendshape_confidence": {"0": 0.9379934072494507, "1": 0.48363927006721497}}}
13
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "fear", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "怒り"}, "blendshape_index": {"0": 0, "1": 2}, "blendshape_confidence": {"0": 0.5811231732368469, "1": 0.5288116931915283}}}
14
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "fun", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.6222245097160339, "1": 0.4919931888580322}}}
15
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "irritated", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 0, "1": 6}, "blendshape_confidence": {"0": 0.5047039985656738, "1": 0.8154596090316772}}}
16
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "rage", "prompt_category": "nuanced_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 2, "1": 7}, "blendshape_confidence": {"0": 0.5938590168952942, "1": 0.9473985433578491}}}
17
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "success", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "下"}, "blendshape_index": {"0": 5, "1": 5}, "blendshape_confidence": {"0": 0.7538629174232483, "1": 0.7491976022720337}}}
18
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "champion", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "none", "Eye Brow": "下"}, "blendshape_index": {"0": -1, "1": 5}, "blendshape_confidence": {"0": 0.5761227607727051, "1": 0.7323084473609924}}}
19
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "achievement", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "none"}, "blendshape_index": {"0": 5, "1": -1}, "blendshape_confidence": {"0": 0.8863269090652466, "1": 0.4595271646976471}}}
20
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "danger", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.7954729795455933, "1": 0.9560970067977905}}}
21
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "violent", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 0, "1": 7}, "blendshape_confidence": {"0": 0.6612104177474976, "1": 0.9520323276519775}}}
22
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "assault", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 4, "1": 7}, "blendshape_confidence": {"0": 0.6521270275115967, "1": 0.9032843708992004}}}
23
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "despised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 2, "1": 6}, "blendshape_confidence": {"0": 0.761615514755249, "1": 0.8073769211769104}}}
24
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "compromised", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.7742058634757996, "1": 0.7452492117881775}}}
25
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "endured", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browDownAngry"}, "blendshape_index": {"0": 5, "1": 7}, "blendshape_confidence": {"0": 0.6713556051254272, "1": 0.6093238592147827}}}
26
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "peace", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "じと目", "Eye Brow": "下"}, "blendshape_index": {"0": 4, "1": 5}, "blendshape_confidence": {"0": 0.7654731869697571, "1": 0.4338940978050232}}}
27
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "meditation", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "なごみ", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 2, "1": 6}, "blendshape_confidence": {"0": 0.561039924621582, "1": 0.6305902600288391}}}
28
- {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "faith", "prompt_category": "zero_shot_emotion", "prediction": {"blendshape_names": {"Eyes": "irisShrink", "Eye Brow": "下"}, "blendshape_index": {"0": 6, "1": 5}, "blendshape_confidence": {"0": 0.7023880481719971, "1": 0.6855201125144958}}}
 
1
  {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "happy", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "irisSwap", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 5, "1": 6}, "blendshape_confidence": {"0": 0.5656874179840088, "1": 0.587822437286377}}}
2
+ {"participant_id": "P99", "condition": "w_o_Tuning", "text_prompt": "sad", "prompt_category": "basic_emotion", "prediction": {"blendshape_names": {"Eyes": "まばたき", "Eye Brow": "browArcDown"}, "blendshape_index": {"0": 0, "1": 6}, "blendshape_confidence": {"0": 0.49758368730545044, "1": 0.881377637386322}}}