Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -55,9 +55,16 @@ ethics_list = "\n".join(
|
|
| 55 |
[f"• {p}" for p in VOYEUR_SPECIALIST_CONFIG["ethical_principles"]]
|
| 56 |
)
|
| 57 |
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
SYSTEM_PROMPT_BASE = f"""Eres {VOYEUR_SPECIALIST_CONFIG['role']}.
|
| 63 |
|
|
@@ -106,7 +113,7 @@ def infer(user_text: str) -> str:
|
|
| 106 |
return output
|
| 107 |
|
| 108 |
# ============================================
|
| 109 |
-
# INTERFAZ DE USUARIO CON GRADIO (
|
| 110 |
# ============================================
|
| 111 |
|
| 112 |
def get_system_config_ui() -> str:
|
|
@@ -137,7 +144,7 @@ def get_system_config_ui() -> str:
|
|
| 137 |
</div>
|
| 138 |
"""
|
| 139 |
|
| 140 |
-
# CSS personalizado
|
| 141 |
CUSTOM_CSS = """
|
| 142 |
body {
|
| 143 |
font-family: 'Inter', sans-serif;
|
|
@@ -174,8 +181,16 @@ button:hover {
|
|
| 174 |
}
|
| 175 |
"""
|
| 176 |
|
| 177 |
-
|
|
|
|
|
|
|
|
|
|
| 178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 179 |
# Fila Principal para el Título
|
| 180 |
with gr.Row():
|
| 181 |
# Etiqueta de firma "BATUTO-ART" (pequeña y dorada)
|
|
@@ -218,7 +233,7 @@ with gr.Blocks(css=CUSTOM_CSS, title="Voyeur Prompt Generator") as demo:
|
|
| 218 |
)
|
| 219 |
|
| 220 |
# COLUMNA DERECHA: Interacción Principal
|
| 221 |
-
with gr.Column(scale=2, min_width=400,
|
| 222 |
|
| 223 |
gr.Markdown("### 💬 Escribe tu visión fotográfica")
|
| 224 |
|
|
@@ -228,7 +243,7 @@ with gr.Blocks(css=CUSTOM_CSS, title="Voyeur Prompt Generator") as demo:
|
|
| 228 |
placeholder="Ej: Quiero una foto de una sommelier muy elegante con medias de red ajustándose el liguero en el sótano de una bodega antigua."
|
| 229 |
)
|
| 230 |
|
| 231 |
-
btn = gr.Button("✨ Generar Prompt VOYEUR ✨"
|
| 232 |
|
| 233 |
gr.Markdown("### 📜 Prompt de Output (Exclusivamente en Inglés)")
|
| 234 |
|
|
@@ -243,5 +258,4 @@ with gr.Blocks(css=CUSTOM_CSS, title="Voyeur Prompt Generator") as demo:
|
|
| 243 |
btn.click(fn=infer, inputs=inp, outputs=out)
|
| 244 |
|
| 245 |
if __name__ == "__main__":
|
| 246 |
-
demo.launch()
|
| 247 |
-
|
|
|
|
| 55 |
[f"• {p}" for p in VOYEUR_SPECIALIST_CONFIG["ethical_principles"]]
|
| 56 |
)
|
| 57 |
|
| 58 |
+
# defensiva en caso de que los módulos data no tengan el contenido esperado
|
| 59 |
+
def safe_join(lst, max_items=10):
|
| 60 |
+
try:
|
| 61 |
+
return ", ".join(lst[:max_items])
|
| 62 |
+
except Exception:
|
| 63 |
+
return ""
|
| 64 |
+
|
| 65 |
+
professions_str = safe_join(PROFESSIONS, 20)
|
| 66 |
+
thongs_str = safe_join(LACE_THONG_STYLES, 10)
|
| 67 |
+
hosiery_str = safe_join(HOSIERY_STYLES, 10)
|
| 68 |
|
| 69 |
SYSTEM_PROMPT_BASE = f"""Eres {VOYEUR_SPECIALIST_CONFIG['role']}.
|
| 70 |
|
|
|
|
| 113 |
return output
|
| 114 |
|
| 115 |
# ============================================
|
| 116 |
+
# INTERFAZ DE USUARIO CON GRADIO (CORRECCIÓN)
|
| 117 |
# ============================================
|
| 118 |
|
| 119 |
def get_system_config_ui() -> str:
|
|
|
|
| 144 |
</div>
|
| 145 |
"""
|
| 146 |
|
| 147 |
+
# CSS personalizado (se inyecta en la página con <style>, no via gr.Blocks css=)
|
| 148 |
CUSTOM_CSS = """
|
| 149 |
body {
|
| 150 |
font-family: 'Inter', sans-serif;
|
|
|
|
| 181 |
}
|
| 182 |
"""
|
| 183 |
|
| 184 |
+
# ----------------------------------------
|
| 185 |
+
# Construcción de la UI sin usar `css=` en Blocks
|
| 186 |
+
# ----------------------------------------
|
| 187 |
+
with gr.Blocks(title="Voyeur Prompt Generator") as demo:
|
| 188 |
|
| 189 |
+
# Inyectar CSS personalizado como HTML <style>
|
| 190 |
+
demo.add_component(
|
| 191 |
+
gr.HTML(f"<style>{CUSTOM_CSS}</style>")
|
| 192 |
+
)
|
| 193 |
+
|
| 194 |
# Fila Principal para el Título
|
| 195 |
with gr.Row():
|
| 196 |
# Etiqueta de firma "BATUTO-ART" (pequeña y dorada)
|
|
|
|
| 233 |
)
|
| 234 |
|
| 235 |
# COLUMNA DERECHA: Interacción Principal
|
| 236 |
+
with gr.Column(scale=2, min_width=400, elem_classes=["main-panel"]):
|
| 237 |
|
| 238 |
gr.Markdown("### 💬 Escribe tu visión fotográfica")
|
| 239 |
|
|
|
|
| 243 |
placeholder="Ej: Quiero una foto de una sommelier muy elegante con medias de red ajustándose el liguero en el sótano de una bodega antigua."
|
| 244 |
)
|
| 245 |
|
| 246 |
+
btn = gr.Button("✨ Generar Prompt VOYEUR ✨")
|
| 247 |
|
| 248 |
gr.Markdown("### 📜 Prompt de Output (Exclusivamente en Inglés)")
|
| 249 |
|
|
|
|
| 258 |
btn.click(fn=infer, inputs=inp, outputs=out)
|
| 259 |
|
| 260 |
if __name__ == "__main__":
|
| 261 |
+
demo.launch()
|
|
|