Spaces:
Running
Running
Commit
·
5a7f927
1
Parent(s):
263de18
📽️ Fix Overlapping Again, Added A Forceful Upload Every x Frames
Browse files
App.py
CHANGED
@@ -204,6 +204,7 @@ class Upscaler:
|
|
204 |
CurrentFrameIndex = 0
|
205 |
PrevFrame = None
|
206 |
UpscaledPrevFrame = None
|
|
|
207 |
|
208 |
while True:
|
209 |
Ret, Frame = Video.read()
|
@@ -212,7 +213,13 @@ class Upscaler:
|
|
212 |
|
213 |
CurrentFrameIndex += 1
|
214 |
|
215 |
-
ForceFull =
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
|
217 |
if ForceFull:
|
218 |
OutputFrame = self.UpscaleFullFrame(Model, Frame)
|
@@ -224,6 +231,10 @@ class Upscaler:
|
|
224 |
OutputFrame, SimilarityPercentage, Rectangles, RegionLog, UseRegions = self.UpscaleRegions(
|
225 |
Model, Frame, PrevFrame, UpscaledPrevFrame, InputThreshold, InputMinPercentage, InputMaxRectangles, InputPadding, InputSegmentRows, InputSegmentColumns
|
226 |
)
|
|
|
|
|
|
|
|
|
227 |
|
228 |
if Times:
|
229 |
AverageTime = sum(Times) / len(Times)
|
@@ -333,7 +344,7 @@ with App.Blocks(
|
|
333 |
)
|
334 |
InputThreshold = App.Slider(
|
335 |
label='Threshold',
|
336 |
-
value=
|
337 |
minimum=0,
|
338 |
maximum=10,
|
339 |
step=0.5,
|
@@ -360,9 +371,9 @@ with App.Blocks(
|
|
360 |
)
|
361 |
InputMaxRectangles = App.Slider(
|
362 |
label='Max Rectangles',
|
363 |
-
value=
|
364 |
minimum=1,
|
365 |
-
maximum=
|
366 |
step=1,
|
367 |
info='Maximum number of rectangles to consider upscaling the full frame',
|
368 |
interactive=False
|
@@ -370,18 +381,18 @@ with App.Blocks(
|
|
370 |
with App.Row():
|
371 |
InputSegmentRows = App.Slider(
|
372 |
label='Segment Rows',
|
373 |
-
value=
|
374 |
minimum=1,
|
375 |
-
maximum=
|
376 |
step=1,
|
377 |
info='Number of rows to segment the video into for processing',
|
378 |
interactive=False
|
379 |
)
|
380 |
InputSegmentColumns = App.Slider(
|
381 |
label='Segment Columns',
|
382 |
-
value=
|
383 |
minimum=1,
|
384 |
-
maximum=
|
385 |
step=1,
|
386 |
info='Number of columns to segment the video into for processing',
|
387 |
interactive=False
|
@@ -390,7 +401,7 @@ with App.Blocks(
|
|
390 |
label='Full Frame Interval',
|
391 |
value=5,
|
392 |
minimum=1,
|
393 |
-
maximum=
|
394 |
step=1,
|
395 |
info='Force a full-frame upscale every N frames (set to 1 to always upscale full frame)',
|
396 |
interactive=False
|
|
|
204 |
CurrentFrameIndex = 0
|
205 |
PrevFrame = None
|
206 |
UpscaledPrevFrame = None
|
207 |
+
PartialUpscaleCount = 0
|
208 |
|
209 |
while True:
|
210 |
Ret, Frame = Video.read()
|
|
|
213 |
|
214 |
CurrentFrameIndex += 1
|
215 |
|
216 |
+
ForceFull = False
|
217 |
+
if CurrentFrameIndex == 1 or not InputUseRegions:
|
218 |
+
ForceFull = True
|
219 |
+
PartialUpscaleCount = 0
|
220 |
+
elif PartialUpscaleCount >= InputFullFrameInterval:
|
221 |
+
ForceFull = True
|
222 |
+
PartialUpscaleCount = 0
|
223 |
|
224 |
if ForceFull:
|
225 |
OutputFrame = self.UpscaleFullFrame(Model, Frame)
|
|
|
231 |
OutputFrame, SimilarityPercentage, Rectangles, RegionLog, UseRegions = self.UpscaleRegions(
|
232 |
Model, Frame, PrevFrame, UpscaledPrevFrame, InputThreshold, InputMinPercentage, InputMaxRectangles, InputPadding, InputSegmentRows, InputSegmentColumns
|
233 |
)
|
234 |
+
if UseRegions:
|
235 |
+
PartialUpscaleCount += 1
|
236 |
+
else:
|
237 |
+
PartialUpscaleCount = 0
|
238 |
|
239 |
if Times:
|
240 |
AverageTime = sum(Times) / len(Times)
|
|
|
344 |
)
|
345 |
InputThreshold = App.Slider(
|
346 |
label='Threshold',
|
347 |
+
value=2,
|
348 |
minimum=0,
|
349 |
maximum=10,
|
350 |
step=0.5,
|
|
|
371 |
)
|
372 |
InputMaxRectangles = App.Slider(
|
373 |
label='Max Rectangles',
|
374 |
+
value=10,
|
375 |
minimum=1,
|
376 |
+
maximum=16,
|
377 |
step=1,
|
378 |
info='Maximum number of rectangles to consider upscaling the full frame',
|
379 |
interactive=False
|
|
|
381 |
with App.Row():
|
382 |
InputSegmentRows = App.Slider(
|
383 |
label='Segment Rows',
|
384 |
+
value=32,
|
385 |
minimum=1,
|
386 |
+
maximum=64,
|
387 |
step=1,
|
388 |
info='Number of rows to segment the video into for processing',
|
389 |
interactive=False
|
390 |
)
|
391 |
InputSegmentColumns = App.Slider(
|
392 |
label='Segment Columns',
|
393 |
+
value=48,
|
394 |
minimum=1,
|
395 |
+
maximum=64,
|
396 |
step=1,
|
397 |
info='Number of columns to segment the video into for processing',
|
398 |
interactive=False
|
|
|
401 |
label='Full Frame Interval',
|
402 |
value=5,
|
403 |
minimum=1,
|
404 |
+
maximum=100,
|
405 |
step=1,
|
406 |
info='Force a full-frame upscale every N frames (set to 1 to always upscale full frame)',
|
407 |
interactive=False
|