Update app.py
Browse files
app.py
CHANGED
|
@@ -2,8 +2,6 @@ import random
|
|
| 2 |
import gradio as gr
|
| 3 |
from typing import Optional, Dict, Any, List
|
| 4 |
|
| 5 |
-
# --- Clase PromptGenerator (Sin cambios relevantes a la lógica, solo corrección del return) ---
|
| 6 |
-
|
| 7 |
class PromptGenerator:
|
| 8 |
def __init__(self):
|
| 9 |
self.ROLES = [
|
|
@@ -116,7 +114,7 @@ class PromptGenerator:
|
|
| 116 |
f"Pose: {pose}. Scene: {setting}. Atmosphere: {atmosphere}. "
|
| 117 |
f"{self.TECHNICAL_DETAILS}"
|
| 118 |
)
|
| 119 |
-
# CORRECCIÓN: Devolver el prompt real
|
| 120 |
return prompt
|
| 121 |
|
| 122 |
def generate_five_prompts(self) -> List[str]:
|
|
@@ -138,36 +136,26 @@ with gr.Blocks() as demo:
|
|
| 138 |
gr.Markdown("# Hyperrealistic Full-Body Prompt Generator")
|
| 139 |
|
| 140 |
# Crea una lista de Textbox para mostrar cada prompt individualmente
|
| 141 |
-
|
|
|
|
| 142 |
for i in range(PROMPT_COUNT)]
|
| 143 |
|
| 144 |
button = gr.Button("Generate 5 Prompts")
|
| 145 |
|
| 146 |
-
# Define el layout con acordeones
|
| 147 |
with gr.Row():
|
| 148 |
with gr.Column():
|
| 149 |
gr.Markdown("## Generated Prompts")
|
| 150 |
|
| 151 |
-
# Itera para crear 5 acordeones
|
| 152 |
for i in range(PROMPT_COUNT):
|
| 153 |
-
#
|
| 154 |
with gr.Accordion(f"Prompt #{i+1} (Click para ver y copiar)", open=False):
|
| 155 |
-
#
|
| 156 |
prompt_outputs[i].render()
|
| 157 |
|
| 158 |
-
#
|
| 159 |
-
#
|
| 160 |
-
# Alternativa simple: usa el show_copy_button=True en el Textbox de arriba
|
| 161 |
-
# Para mantener la estética que pides:
|
| 162 |
-
gr.Textbox(value="", label="Copiar Prompt", elem_classes=["hidden"], show_copy_button=True, interactive=False, value=prompt_outputs[i].value)
|
| 163 |
-
|
| 164 |
-
# Nota: El Textbox renderizado dentro del Accordion ya tiene el valor del prompt_outputs[i]
|
| 165 |
-
# La forma más limpia es usar la propiedad nativa show_copy_button=True en el Textbox.
|
| 166 |
-
# He actualizado el Textbox inicial (prompt_outputs) para incluirlo.
|
| 167 |
-
|
| 168 |
-
# ¡Mejor y más simple!: Usaremos show_copy_button=True en el Textbox de arriba.
|
| 169 |
-
# Actualicé la definición de `prompt_outputs` para usar `show_copy_button=True`.
|
| 170 |
-
pass
|
| 171 |
|
| 172 |
# La acción del botón: llama a la función de generación y asigna la lista de resultados
|
| 173 |
# a la lista de Textboxes creados.
|
|
|
|
| 2 |
import gradio as gr
|
| 3 |
from typing import Optional, Dict, Any, List
|
| 4 |
|
|
|
|
|
|
|
| 5 |
class PromptGenerator:
|
| 6 |
def __init__(self):
|
| 7 |
self.ROLES = [
|
|
|
|
| 114 |
f"Pose: {pose}. Scene: {setting}. Atmosphere: {atmosphere}. "
|
| 115 |
f"{self.TECHNICAL_DETAILS}"
|
| 116 |
)
|
| 117 |
+
# CORRECCIÓN: Devolver el prompt real.
|
| 118 |
return prompt
|
| 119 |
|
| 120 |
def generate_five_prompts(self) -> List[str]:
|
|
|
|
| 136 |
gr.Markdown("# Hyperrealistic Full-Body Prompt Generator")
|
| 137 |
|
| 138 |
# Crea una lista de Textbox para mostrar cada prompt individualmente
|
| 139 |
+
# Se añade show_copy_button=True para el botón de copia fácil
|
| 140 |
+
prompt_outputs = [gr.Textbox(label=f"Prompt {i+1}", lines=5, interactive=False, show_copy_button=True)
|
| 141 |
for i in range(PROMPT_COUNT)]
|
| 142 |
|
| 143 |
button = gr.Button("Generate 5 Prompts")
|
| 144 |
|
| 145 |
+
# Define el layout con acordeones
|
| 146 |
with gr.Row():
|
| 147 |
with gr.Column():
|
| 148 |
gr.Markdown("## Generated Prompts")
|
| 149 |
|
| 150 |
+
# Itera para crear 5 acordeones
|
| 151 |
for i in range(PROMPT_COUNT):
|
| 152 |
+
# El componente gr.Accordion se usa para crear la estructura de acordeón.
|
| 153 |
with gr.Accordion(f"Prompt #{i+1} (Click para ver y copiar)", open=False):
|
| 154 |
+
# Renderiza el Textbox correspondiente dentro del acordeón.
|
| 155 |
prompt_outputs[i].render()
|
| 156 |
|
| 157 |
+
# La línea errónea se ha ELIMINADO.
|
| 158 |
+
# El botón de copia está en el Textbox de arriba.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
|
| 160 |
# La acción del botón: llama a la función de generación y asigna la lista de resultados
|
| 161 |
# a la lista de Textboxes creados.
|