Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -511,14 +511,21 @@ with gr.Blocks(
|
|
| 511 |
target_faces_state = gr.State([])
|
| 512 |
|
| 513 |
# --- Блок 1: донор и целевое фото ---
|
|
|
|
| 514 |
with gr.Row(elem_classes=["step-card"]):
|
|
|
|
| 515 |
with gr.Column():
|
| 516 |
step1_title_md = gr.Markdown(TEXTS["ru"]["step1_title"])
|
|
|
|
|
|
|
| 517 |
donor_img = gr.Image(
|
| 518 |
label=TEXTS["ru"]["step1_input_label"],
|
| 519 |
type="numpy",
|
| 520 |
height=420,
|
| 521 |
)
|
|
|
|
|
|
|
|
|
|
| 522 |
with gr.Row():
|
| 523 |
donor_previews = [
|
| 524 |
gr.Image(
|
|
@@ -533,18 +540,25 @@ with gr.Blocks(
|
|
| 533 |
)
|
| 534 |
for _ in range(MAX_PREVIEWS)
|
| 535 |
]
|
|
|
|
| 536 |
donor_choice = gr.Radio(
|
| 537 |
label=TEXTS["ru"]["step1_donor_choice_label"],
|
| 538 |
choices=[],
|
| 539 |
)
|
| 540 |
|
|
|
|
| 541 |
with gr.Column():
|
| 542 |
step2_title_md = gr.Markdown(TEXTS["ru"]["step2_title"])
|
|
|
|
|
|
|
| 543 |
target_img = gr.Image(
|
| 544 |
label=TEXTS["ru"]["step2_input_label"],
|
| 545 |
type="numpy",
|
| 546 |
height=420,
|
| 547 |
)
|
|
|
|
|
|
|
|
|
|
| 548 |
with gr.Row():
|
| 549 |
target_previews = [
|
| 550 |
gr.Image(
|
|
@@ -559,6 +573,7 @@ with gr.Blocks(
|
|
| 559 |
)
|
| 560 |
for _ in range(MAX_PREVIEWS)
|
| 561 |
]
|
|
|
|
| 562 |
target_choices = gr.CheckboxGroup(
|
| 563 |
label=TEXTS["ru"]["step2_target_choices_label"],
|
| 564 |
choices=[],
|
|
|
|
| 511 |
target_faces_state = gr.State([])
|
| 512 |
|
| 513 |
# --- Блок 1: донор и целевое фото ---
|
| 514 |
+
# --- Блок 1: донор и целевое фото ---
|
| 515 |
with gr.Row(elem_classes=["step-card"]):
|
| 516 |
+
# Левая колонка: донор
|
| 517 |
with gr.Column():
|
| 518 |
step1_title_md = gr.Markdown(TEXTS["ru"]["step1_title"])
|
| 519 |
+
|
| 520 |
+
# Большое изображение донора
|
| 521 |
donor_img = gr.Image(
|
| 522 |
label=TEXTS["ru"]["step1_input_label"],
|
| 523 |
type="numpy",
|
| 524 |
height=420,
|
| 525 |
)
|
| 526 |
+
|
| 527 |
+
# Превью найденных лиц донора
|
| 528 |
+
gr.Markdown("**Найденные лица (донор):**")
|
| 529 |
with gr.Row():
|
| 530 |
donor_previews = [
|
| 531 |
gr.Image(
|
|
|
|
| 540 |
)
|
| 541 |
for _ in range(MAX_PREVIEWS)
|
| 542 |
]
|
| 543 |
+
|
| 544 |
donor_choice = gr.Radio(
|
| 545 |
label=TEXTS["ru"]["step1_donor_choice_label"],
|
| 546 |
choices=[],
|
| 547 |
)
|
| 548 |
|
| 549 |
+
# Правая колонка: целевое фото
|
| 550 |
with gr.Column():
|
| 551 |
step2_title_md = gr.Markdown(TEXTS["ru"]["step2_title"])
|
| 552 |
+
|
| 553 |
+
# Большое целевое изображение
|
| 554 |
target_img = gr.Image(
|
| 555 |
label=TEXTS["ru"]["step2_input_label"],
|
| 556 |
type="numpy",
|
| 557 |
height=420,
|
| 558 |
)
|
| 559 |
+
|
| 560 |
+
# Превью найденных лиц на целевом фото
|
| 561 |
+
gr.Markdown("**Найденные лица (цель):**")
|
| 562 |
with gr.Row():
|
| 563 |
target_previews = [
|
| 564 |
gr.Image(
|
|
|
|
| 573 |
)
|
| 574 |
for _ in range(MAX_PREVIEWS)
|
| 575 |
]
|
| 576 |
+
|
| 577 |
target_choices = gr.CheckboxGroup(
|
| 578 |
label=TEXTS["ru"]["step2_target_choices_label"],
|
| 579 |
choices=[],
|