euiia commited on
Commit
feb54f0
·
verified ·
1 Parent(s): b8a9295

Update deformes4D_engine.py

Browse files
Files changed (1) hide show
  1. deformes4D_engine.py +13 -8
deformes4D_engine.py CHANGED
@@ -125,11 +125,16 @@ class Deformes4DEngine:
125
  video_resolution: int, use_continuity_director: bool,
126
  progress: gr.Progress = gr.Progress()):
127
 
128
- # --- [INÍCIO] Lógica de Controle Dinâmico Baseada em Dois Sliders ---
129
-
130
- # 1. Calcular o total de chunks a serem gerados a partir dos segundos
131
- total_chunks_gerados = max(5, int(round(seconds_per_fragment * 24 / 8)))+1
132
-
 
 
 
 
 
133
  # 2. Calcular o número de chunks a podar com base na porcentagem, com mínimo de 4
134
  trim_chunks = max(4, int(round(total_chunks_gerados * (trim_percent / 100))))
135
 
@@ -139,12 +144,12 @@ class Deformes4DEngine:
139
  logger.warning(f"A poda ({trim_percent}%) era muito grande. Ajustada para {trim_chunks} chunks para deixar 1 chunk de vídeo.")
140
 
141
  # 3. Definir fatias e alvos com base nos cálculos
142
- VIDEO_CHUNK_COUNT = total_chunks_gerados - trim_chunks -2
143
 
144
- HANDLER_CHUNK_INDICES = slice(total_chunks_gerados - 2, total_chunks_gerados)
145
  ECO_CHUNK_INDICES = slice(VIDEO_CHUNK_COUNT, VIDEO_CHUNK_COUNT + 2)
146
 
147
- HANDLER_FRAME_TARGET = ((total_chunks_gerados-2) - VIDEO_CHUNK_COUNT) * 8
148
  FRAMES_TO_GENERATE = (((total_chunks_gerados)-1) * 8) +1
149
  DESTINATION_FRAME_TARGET = FRAMES_TO_GENERATE
150
 
 
125
  video_resolution: int, use_continuity_director: bool,
126
  progress: gr.Progress = gr.Progress()):
127
 
128
+
129
+ # 1. Calcula o número de chunks normalmente
130
+ num_chunks = max(5, int(round(seconds_per_fragment * 3))) # Usando a fórmula simplificada
131
+
132
+ # 2. Verifica se é par e, se for, adiciona 1 para torná-lo ímpar
133
+ if num_chunks % 2 == 0:
134
+ total_chunks_gerados = num_chunks + 2
135
+ else:
136
+ total_chunks_gerados = num_chunks +1
137
+
138
  # 2. Calcular o número de chunks a podar com base na porcentagem, com mínimo de 4
139
  trim_chunks = max(4, int(round(total_chunks_gerados * (trim_percent / 100))))
140
 
 
144
  logger.warning(f"A poda ({trim_percent}%) era muito grande. Ajustada para {trim_chunks} chunks para deixar 1 chunk de vídeo.")
145
 
146
  # 3. Definir fatias e alvos com base nos cálculos
147
+ VIDEO_CHUNK_COUNT = total_chunks_gerados - trim_chunks -1
148
 
149
+ HANDLER_CHUNK_INDICES = slice(total_chunks_gerados - 1, total_chunks_gerados)
150
  ECO_CHUNK_INDICES = slice(VIDEO_CHUNK_COUNT, VIDEO_CHUNK_COUNT + 2)
151
 
152
+ HANDLER_FRAME_TARGET = ((total_chunks_gerados-1) - VIDEO_CHUNK_COUNT) * 8
153
  FRAMES_TO_GENERATE = (((total_chunks_gerados)-1) * 8) +1
154
  DESTINATION_FRAME_TARGET = FRAMES_TO_GENERATE
155