ivanoctaviogaitansantos commited on
Commit
de3e3ef
·
verified ·
1 Parent(s): b5407a3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -21
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, no solo "``````"
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
- prompt_outputs = [gr.Textbox(label=f"Prompt {i+1}", lines=5, interactive=False, show_copy_button=False)
 
142
  for i in range(PROMPT_COUNT)]
143
 
144
  button = gr.Button("Generate 5 Prompts")
145
 
146
- # Define el layout con acordeones y botones de copia
147
  with gr.Row():
148
  with gr.Column():
149
  gr.Markdown("## Generated Prompts")
150
 
151
- # Itera para crear 5 acordeones, uno para cada prompt
152
  for i in range(PROMPT_COUNT):
153
- # Usamos el título del acordeón para dar un resumen del prompt (opcional, podrías usar solo "Prompt N")
154
  with gr.Accordion(f"Prompt #{i+1} (Click para ver y copiar)", open=False):
155
- # El Textbox para el prompt, que es uno de los elementos en prompt_outputs
156
  prompt_outputs[i].render()
157
 
158
- # Botón de copia para el prompt
159
- # Gradio soporta show_copy_button=True en Textbox, pero para un control más explícito:
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.