gnosticdev commited on
Commit
4a872de
·
verified ·
1 Parent(s): a7ffcfa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -71
app.py CHANGED
@@ -811,7 +811,7 @@ def crear_video(prompt_type, input_text, musica_file=None):
811
  logger.warning(f"No se pudo eliminar directorio temporal {temp_dir_intermediate}: {str(e)}")
812
 
813
  def run_app(prompt_type, prompt_ia, prompt_manual, musica_file):
814
- logger.info("="*80)
815
  logger.info("SOLICITUD RECIBIDA EN INTERFAZ")
816
 
817
  input_text = prompt_ia if prompt_type == "Generar Guion con IA" else prompt_manual
@@ -855,43 +855,44 @@ def run_app(prompt_type, prompt_ia, prompt_manual, musica_file):
855
  finally:
856
  logger.info("Fin del handler run_app.")
857
  return output_video, output_file, status_msg
858
- with gr.Column():
859
- video_output = gr.Video(
860
- label="Previsualización del Video Generado",
861
- interactive=False,
862
- height=400
863
- )
864
- file_output = gr.File(
865
- label="Descargar Archivo de Video",
866
- interactive=False,
867
- visible=False
868
- )
869
- status_output = gr.Textbox(
870
- label="Estado",
871
- interactive=False,
872
- show_label=False,
873
- placeholder="Esperando acción...",
874
- value="Esperando entrada..."
875
- )
876
- progress_bar = gr.Slider(
877
- visible=False,
878
- interactive=False,
879
- label="Progreso",
880
- minimum=0,
881
- maximum=100
882
- )
 
883
 
884
  prompt_type.change(
885
  lambda x: (gr.update(visible=x == "Generar Guion con IA"),
886
- gr.update(visible=x == "Usar Mi Guion")),
887
  inputs=prompt_type,
888
  outputs=[ia_guion_column, manual_guion_column]
889
  )
890
 
891
  generate_btn.click(
892
  lambda: (
893
- None,
894
- None,
895
  gr.update(value="⏳ Procesando... Esto puede tomar varios minutos.", interactive=False),
896
  gr.update(visible=True, value=0)
897
  ),
@@ -909,47 +910,10 @@ def run_app(prompt_type, prompt_ia, prompt_manual, musica_file):
909
  gr.Markdown("### Instrucciones:")
910
  gr.Markdown("""
911
  1. **Clave API de Pexels:** Asegúrate de haber configurado la variable de entorno `PEXELS_API_KEY` con tu clave.
912
- 2. Para usar tu propio guion: Selecciona "Usar Mi Guion" y escribe tu texto completo
913
- 3. Para generar guion automático: Selecciona "Generar Guion con IA" y escribe un tema breve
914
- 4. Opcional: Sube un archivo de audio para música de fondo
915
- 5. Haz clic en "Generar Video" y espera el resultado (puede tardar varios minutos)
916
  """)
917
  gr.Markdown("---")
918
- gr.Markdown("Desarrollado con ❤️ usando Python, Gradio, MoviePy y modelos de IA")
919
-
920
- if __name__ == "__main__":
921
- logger.info("Verificando dependencias críticas...")
922
- try:
923
- from moviepy.editor import ColorClip
924
- try:
925
- temp_clip = ColorClip((100,100), color=(255,0,0), duration=0.1)
926
- temp_clip.close()
927
- logger.info("Clips base de MoviePy (como ColorClip) creados y cerrados exitosamente. FFmpeg parece accesible.")
928
- except Exception as e:
929
- logger.critical(f"Fallo al crear clip base de MoviePy. A menudo indica problemas con FFmpeg/ImageMagick. Error: {e}", exc_info=True)
930
-
931
- except Exception as e:
932
- logger.critical(f"Fallo al importar MoviePy. Asegúrate de que está instalado. Error: {e}", exc_info=True)
933
-
934
- logger.info("Iniciando aplicación Gradio...")
935
- try:
936
- app.queue(
937
- concurrency_count=1,
938
- max_size=3,
939
- api_open=False
940
- ).launch(
941
- debug=True,
942
- share=True,
943
- server_name="0.0.0.0",
944
- server_port=7860,
945
- show_error=True,
946
- prevent_thread_lock=True,
947
- enable_queue=True,
948
- inline=False,
949
- auth=None,
950
- auth_message=None,
951
- show_tips=False
952
- )
953
- except Exception as e:
954
- logger.critical(f"No se pudo iniciar la app: {str(e)}", exc_info=True)
955
- raise
 
811
  logger.warning(f"No se pudo eliminar directorio temporal {temp_dir_intermediate}: {str(e)}")
812
 
813
  def run_app(prompt_type, prompt_ia, prompt_manual, musica_file):
814
+ logger.info("=" * 80)
815
  logger.info("SOLICITUD RECIBIDA EN INTERFAZ")
816
 
817
  input_text = prompt_ia if prompt_type == "Generar Guion con IA" else prompt_manual
 
855
  finally:
856
  logger.info("Fin del handler run_app.")
857
  return output_video, output_file, status_msg
858
+
859
+ with gr.Column():
860
+ video_output = gr.Video(
861
+ label="Previsualización del Video Generado",
862
+ interactive=False,
863
+ height=400
864
+ )
865
+ file_output = gr.File(
866
+ label="Descargar Archivo de Video",
867
+ interactive=False,
868
+ visible=False
869
+ )
870
+ status_output = gr.Textbox(
871
+ label="Estado",
872
+ interactive=False,
873
+ show_label=False,
874
+ placeholder="Esperando acción...",
875
+ value="Esperando entrada..."
876
+ )
877
+ progress_bar = gr.Slider(
878
+ visible=False,
879
+ interactive=False,
880
+ label="Progreso",
881
+ minimum=0,
882
+ maximum=100
883
+ )
884
 
885
  prompt_type.change(
886
  lambda x: (gr.update(visible=x == "Generar Guion con IA"),
887
+ gr.update(visible=x == "Usar Mi Guion")),
888
  inputs=prompt_type,
889
  outputs=[ia_guion_column, manual_guion_column]
890
  )
891
 
892
  generate_btn.click(
893
  lambda: (
894
+ None,
895
+ None,
896
  gr.update(value="⏳ Procesando... Esto puede tomar varios minutos.", interactive=False),
897
  gr.update(visible=True, value=0)
898
  ),
 
910
  gr.Markdown("### Instrucciones:")
911
  gr.Markdown("""
912
  1. **Clave API de Pexels:** Asegúrate de haber configurado la variable de entorno `PEXELS_API_KEY` con tu clave.
913
+ 2. Para usar tu propio guion: Selecciona "Usar Mi Guion" y escribe tu texto completo.
914
+ 3. Para generar guion automático: Selecciona "Generar Guion con IA" y escribe un tema breve.
915
+ 4. Opcional: Sube un archivo de audio para música de fondo.
916
+ 5. Haz clic en "Generar Video" y espera el resultado (puede tardar varios minutos).
917
  """)
918
  gr.Markdown("---")
919
+ gr