Carlex22222 commited on
Commit
44cbdba
·
verified ·
1 Parent(s): a1db91a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -16
app.py CHANGED
@@ -2,11 +2,11 @@
2
  #
3
  # Copyright (C) August 4, 2025 Carlos Rodrigues dos Santos
4
  #
5
- # Versão 7.0.0 (Llama Scout Integration)
6
  #
7
- # Esta versão substitui o especialista VQA pelo Llama-4-Scout, um MLLM
8
- # mais poderoso, e ajusta a UI para focar na análise de movimento de vídeo,
9
- # consolidando a interface final da aplicação.
10
 
11
  import gradio as gr
12
  import yaml
@@ -21,7 +21,7 @@ import json
21
  import aduc_framework
22
  from aduc_framework.types import PreProductionParams, ProductionParams
23
  # Importamos o novo e final especialista de visão
24
- from aduc_framework.managers.llama_scout_manager import llama_scout_manager_singleton
25
 
26
  # --- CONFIGURAÇÃO DE TEMA E LOGGING ---
27
  cinematic_theme = gr.themes.Base(
@@ -136,15 +136,15 @@ def run_audio_wrapper(source_video, audio_prompt, global_prompt, progress=gr.Pro
136
 
137
  def analyze_video_wrapper(source_video):
138
  if not source_video: raise gr.Error("Nenhum vídeo final foi gerado para ser analisado.")
139
- yield "Analisando o movimento do vídeo com Llama Scout... (Isso pode levar um momento)"
140
- analysis = llama_scout_manager_singleton.analyze_video_movement(video_path=source_video)
141
  yield analysis
142
 
143
  def answer_images_wrapper(image_paths, question):
144
- if not image_paths: raise gr.Error("Nenhuma imagem de referência foi carregada para ser analisada.")
145
  if not question or not question.strip(): raise gr.Error("Por favor, digite uma pergunta.")
146
- yield "Analisando as imagens de referência com Llama Scout..."
147
- all_answers = [f"--- Imagem {i+1} ---\nResposta: {llama_scout_manager_singleton.answer_on_image(path, question)}\n" for i, path in enumerate(image_paths)]
148
  yield "\n".join(all_answers)
149
 
150
  def get_log_content():
@@ -194,18 +194,16 @@ with gr.Blocks(theme=cinematic_theme, css="style.css") as demo:
194
  audio_prompt_input = gr.Textbox(label="Prompt de Áudio Detalhado (Opcional)", lines=2, placeholder="Descreva os sons, efeitos e música.")
195
  run_audio_button = gr.Button("Gerar Áudio", variant="secondary")
196
 
197
-
198
- with gr.Accordion("📸 Grupo das Keyframes", open=True):
199
- keyframe_gallery = gr.Gallery(label="Keyframes Gerados", visible=True, object_fit="contain", height="auto", type="filepath")
200
-
201
- final_video_output = gr.Video(label="Filme Final (Resultado da Última Etapa)", visible=True, interactive=False)
202
 
 
 
203
 
204
  with gr.Accordion("🧬 DNA Digital da Geração (JSON)", open=False):
205
  storyboard_output = gr.JSON(label="Roteiro Gerado (Storyboard)")
206
  generation_data_output = gr.JSON(label="Estado de Geração Completo")
207
 
208
- with gr.Accordion("🔬 Etapa de Análise Multimodal (Llama Scout)", open=False):
209
  with gr.Blocks():
210
  gr.Markdown("### Analisar Movimento do Vídeo Final")
211
  gr.Markdown("Peça ao especialista para descrever a ação, movimento e narrativa que se desenrolam através dos frames do vídeo.")
 
2
  #
3
  # Copyright (C) August 4, 2025 Carlos Rodrigues dos Santos
4
  #
5
+ # Versão 7.1.0 (Qwen2-VL Integration)
6
  #
7
+ # Esta versão substitui o especialista de visão anterior pelo Qwen2-VL, um
8
+ # MLLM de código aberto, e ajusta a UI e as chamadas de função para refletir
9
+ # essa nova integração.
10
 
11
  import gradio as gr
12
  import yaml
 
21
  import aduc_framework
22
  from aduc_framework.types import PreProductionParams, ProductionParams
23
  # Importamos o novo e final especialista de visão
24
+ from aduc_framework.managers.qwen_vl_manager import qwen_vl_manager_singleton
25
 
26
  # --- CONFIGURAÇÃO DE TEMA E LOGGING ---
27
  cinematic_theme = gr.themes.Base(
 
136
 
137
  def analyze_video_wrapper(source_video):
138
  if not source_video: raise gr.Error("Nenhum vídeo final foi gerado para ser analisado.")
139
+ yield "Analisando o movimento do vídeo com Qwen2-VL... (Isso pode levar um momento)"
140
+ analysis = qwen_vl_manager_singleton.analyze_video_movement(video_path=source_video)
141
  yield analysis
142
 
143
  def answer_images_wrapper(image_paths, question):
144
+ if not image_paths: raise gr.Error("Nenhuma imagem de referência foi carregada.")
145
  if not question or not question.strip(): raise gr.Error("Por favor, digite uma pergunta.")
146
+ yield "Analisando as imagens de referência com Qwen2-VL..."
147
+ all_answers = [f"--- Imagem {i+1} ---\nResposta: {qwen_vl_manager_singleton.answer_on_image(path, question)}\n" for i, path in enumerate(image_paths)]
148
  yield "\n".join(all_answers)
149
 
150
  def get_log_content():
 
194
  audio_prompt_input = gr.Textbox(label="Prompt de Áudio Detalhado (Opcional)", lines=2, placeholder="Descreva os sons, efeitos e música.")
195
  run_audio_button = gr.Button("Gerar Áudio", variant="secondary")
196
 
197
+ final_video_output = gr.Video(label="Filme Final (Resultado da Última Etapa)", visible=False, interactive=False)
 
 
 
 
198
 
199
+ with gr.Accordion("Grupo das Keyframes", open=False):
200
+ keyframe_gallery = gr.Gallery(label="Keyframes Gerados", visible=True, object_fit="contain", height="auto", type="filepath")
201
 
202
  with gr.Accordion("🧬 DNA Digital da Geração (JSON)", open=False):
203
  storyboard_output = gr.JSON(label="Roteiro Gerado (Storyboard)")
204
  generation_data_output = gr.JSON(label="Estado de Geração Completo")
205
 
206
+ with gr.Accordion("🔬 Etapa de Análise Multimodal (Qwen2-VL)", open=False):
207
  with gr.Blocks():
208
  gr.Markdown("### Analisar Movimento do Vídeo Final")
209
  gr.Markdown("Peça ao especialista para descrever a ação, movimento e narrativa que se desenrolam através dos frames do vídeo.")