gnosticdev commited on
Commit
ab6a3fb
verified
1 Parent(s): ae19496

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -13
app.py CHANGED
@@ -8,11 +8,15 @@ import logging
8
  import re
9
  import torch
10
  from transformers import GPT2LMHeadModel, GPT2Tokenizer
 
11
 
12
  # Configuraci贸n inicial
13
  logging.basicConfig(level=logging.INFO)
14
  logger = logging.getLogger(__name__)
15
 
 
 
 
16
  PEXELS_API_KEY = os.getenv("PEXELS_API_KEY")
17
 
18
  # Lista de voces v谩lidas
@@ -58,7 +62,7 @@ def generar_guion_largo(tema, custom_script=None):
58
  top_p=0.95,
59
  num_return_sequences=1,
60
  pad_token_id=tokenizer.eos_token_id,
61
- early_stopping=True
62
  )
63
 
64
  guion = tokenizer.decode(outputs[0], skip_special_tokens=True)
@@ -87,14 +91,11 @@ def buscar_videos_pexels(tema, num_videos=4):
87
  headers=headers,
88
  timeout=15
89
  )
90
- videos = response.json().get("videos", [])
91
 
92
- # Filtrar videos de alta calidad
93
- return sorted(
94
- videos,
95
- key=lambda x: (x.get('width', 0) * x.get('height', 0), x.get('duration', 0)),
96
- reverse=True
97
- )[:num_videos]
98
  except Exception as e:
99
  logger.error(f"Error buscando videos: {str(e)}")
100
  return []
@@ -142,6 +143,9 @@ def crear_video(prompt, custom_script, voz_seleccionada, musica=None):
142
  for i, video in enumerate(videos_data):
143
  try:
144
  # Seleccionar la mejor calidad disponible
 
 
 
145
  video_file = max(
146
  video['video_files'],
147
  key=lambda x: x.get('width', 0) * x.get('height', 0)
@@ -166,9 +170,11 @@ def crear_video(prompt, custom_script, voz_seleccionada, musica=None):
166
  logger.error(f"Error procesando video {i}: {str(e)}")
167
 
168
  if not clips:
169
- raise Exception("No se pudieron cargar videos v谩lidos")
 
 
170
 
171
- # 6. Combinar videos con transiciones suaves
172
  final_clip = concatenate_videoclips(clips, method="compose")
173
  final_clip = final_clip.set_audio(audio)
174
 
@@ -197,8 +203,7 @@ def crear_video(prompt, custom_script, voz_seleccionada, musica=None):
197
  codec="libx264",
198
  audio_codec="aac",
199
  threads=4,
200
- preset='fast',
201
- ffmpeg_params=['-crf', '23'] # Calidad balanceada
202
  )
203
 
204
  logger.info(f"Video generado exitosamente: {output_path}")
@@ -216,7 +221,7 @@ def crear_video(prompt, custom_script, voz_seleccionada, musica=None):
216
  if os.path.exists(temp_file):
217
  os.remove(temp_file)
218
 
219
- # Interfaz mejorada sin enable_queue
220
  with gr.Blocks(title="Generador de Videos", theme=gr.themes.Soft()) as app:
221
  gr.Markdown("# 馃幀 GENERADOR AUTOM脕TICO DE VIDEOS")
222
 
 
8
  import re
9
  import torch
10
  from transformers import GPT2LMHeadModel, GPT2Tokenizer
11
+ import warnings
12
 
13
  # Configuraci贸n inicial
14
  logging.basicConfig(level=logging.INFO)
15
  logger = logging.getLogger(__name__)
16
 
17
+ # Suprimir warnings espec铆ficos de transformers
18
+ warnings.filterwarnings("ignore", category=UserWarning, module="transformers")
19
+
20
  PEXELS_API_KEY = os.getenv("PEXELS_API_KEY")
21
 
22
  # Lista de voces v谩lidas
 
62
  top_p=0.95,
63
  num_return_sequences=1,
64
  pad_token_id=tokenizer.eos_token_id,
65
+ # early_stopping=True # Eliminado para evitar warnings
66
  )
67
 
68
  guion = tokenizer.decode(outputs[0], skip_special_tokens=True)
 
91
  headers=headers,
92
  timeout=15
93
  )
 
94
 
95
+ if response.status_code != 200:
96
+ return []
97
+
98
+ return response.json().get("videos", [])[:num_videos]
 
 
99
  except Exception as e:
100
  logger.error(f"Error buscando videos: {str(e)}")
101
  return []
 
143
  for i, video in enumerate(videos_data):
144
  try:
145
  # Seleccionar la mejor calidad disponible
146
+ if 'video_files' not in video or not video['video_files']:
147
+ continue
148
+
149
  video_file = max(
150
  video['video_files'],
151
  key=lambda x: x.get('width', 0) * x.get('height', 0)
 
170
  logger.error(f"Error procesando video {i}: {str(e)}")
171
 
172
  if not clips:
173
+ # Crear video de fondo negro si no hay videos
174
+ clip = ColorClip(size=(1280, 720), color=(0, 0, 0), duration=duracion_total)
175
+ clips = [clip]
176
 
177
+ # 6. Combinar videos
178
  final_clip = concatenate_videoclips(clips, method="compose")
179
  final_clip = final_clip.set_audio(audio)
180
 
 
203
  codec="libx264",
204
  audio_codec="aac",
205
  threads=4,
206
+ preset='fast'
 
207
  )
208
 
209
  logger.info(f"Video generado exitosamente: {output_path}")
 
221
  if os.path.exists(temp_file):
222
  os.remove(temp_file)
223
 
224
+ # Interfaz mejorada
225
  with gr.Blocks(title="Generador de Videos", theme=gr.themes.Soft()) as app:
226
  gr.Markdown("# 馃幀 GENERADOR AUTOM脕TICO DE VIDEOS")
227