Spaces:
Sleeping
Sleeping
Tu Nombre commited on
Commit ·
7512f9d
1
Parent(s): dd74709
fix: prompt manual de escenas respetado en LTX y Leonardo
Browse files- app.py +4 -0
- leonardo_service.py +5 -3
app.py
CHANGED
|
@@ -503,6 +503,10 @@ async def ep_video(request: Request):
|
|
| 503 |
print(f"[Fenix] Nicho detectado: {nicho_detectado}", flush=True)
|
| 504 |
escenas = generar_clips_escenas(escenas, nicho=nicho_detectado)
|
| 505 |
# Lista de (material, segundos) de cada escena, en orden
|
|
|
|
|
|
|
|
|
|
|
|
|
| 506 |
escenas_data = [(e.get("material",""), int(e.get("segundos",5) or 5)) for e in escenas]
|
| 507 |
material_escenas = [m for m,s in escenas_data if m]
|
| 508 |
try:
|
|
|
|
| 503 |
print(f"[Fenix] Nicho detectado: {nicho_detectado}", flush=True)
|
| 504 |
escenas = generar_clips_escenas(escenas, nicho=nicho_detectado)
|
| 505 |
# Lista de (material, segundos) de cada escena, en orden
|
| 506 |
+
# Pasar el prompt visual del usuario a cada escena para que los servicios lo usen
|
| 507 |
+
for e in escenas:
|
| 508 |
+
if e.get("prompt","").strip() and not e.get("prompt_manual","").strip():
|
| 509 |
+
e["prompt_manual"] = e["prompt"].strip()
|
| 510 |
escenas_data = [(e.get("material",""), int(e.get("segundos",5) or 5)) for e in escenas]
|
| 511 |
material_escenas = [m for m,s in escenas_data if m]
|
| 512 |
try:
|
leonardo_service.py
CHANGED
|
@@ -61,10 +61,12 @@ def _crear_prompt_groq(texto, tema_global):
|
|
| 61 |
except: pass
|
| 62 |
return texto
|
| 63 |
|
| 64 |
-
def _post_generar(prompt_visual):
|
| 65 |
url = f"{_BASE_URL}/generations-text-to-video"
|
|
|
|
|
|
|
| 66 |
payload = {
|
| 67 |
-
"prompt":
|
| 68 |
"width": 720,
|
| 69 |
"height": 1280
|
| 70 |
}
|
|
@@ -130,7 +132,7 @@ def generar_clips_escenas(escenas):
|
|
| 130 |
prompt_visual = prompt_manual if prompt_manual else _crear_prompt_groq(txt, tema_global)
|
| 131 |
print(f"[Cerebro-Prompt Escena {i+1}]: {prompt_visual}", flush=True)
|
| 132 |
|
| 133 |
-
job_id, estado = _post_generar(prompt_visual)
|
| 134 |
if estado == "ok" and job_id:
|
| 135 |
clip = _poll_descargar(job_id, f"leonardo_clip_{i}.mp4")
|
| 136 |
if clip:
|
|
|
|
| 61 |
except: pass
|
| 62 |
return texto
|
| 63 |
|
| 64 |
+
def _post_generar(prompt_visual, es_manual=False):
|
| 65 |
url = f"{_BASE_URL}/generations-text-to-video"
|
| 66 |
+
sufijo_auto = ", ethereal spiritual, divine golden light, sacred geometry, 4k cinematic, ultra detailed, volumetric fog"
|
| 67 |
+
prompt_final = prompt_visual if es_manual else prompt_visual + sufijo_auto
|
| 68 |
payload = {
|
| 69 |
+
"prompt": prompt_final,
|
| 70 |
"width": 720,
|
| 71 |
"height": 1280
|
| 72 |
}
|
|
|
|
| 132 |
prompt_visual = prompt_manual if prompt_manual else _crear_prompt_groq(txt, tema_global)
|
| 133 |
print(f"[Cerebro-Prompt Escena {i+1}]: {prompt_visual}", flush=True)
|
| 134 |
|
| 135 |
+
job_id, estado = _post_generar(prompt_visual, es_manual=bool(prompt_manual))
|
| 136 |
if estado == "ok" and job_id:
|
| 137 |
clip = _poll_descargar(job_id, f"leonardo_clip_{i}.mp4")
|
| 138 |
if clip:
|