fix framepack video save

Signed-off-by: vladmandic <mandic00@live.com>
This commit is contained in:
vladmandic
2026-01-28 09:47:17 +01:00
parent 264a9f02d7
commit 8f0e46516d
4 changed files with 61 additions and 13 deletions
+1
View File
@@ -40,6 +40,7 @@
- use base steps as-is for non sd/sdxl models
- ui css fixes for modernui
- support lora inside prompt selector
- framepack video save
## Update for 2026-01-22
+29 -11
View File
@@ -309,16 +309,18 @@ def worker(
break
total_generated_frames, _video_filename = save_video(
None,
history_pixels,
mp4_fps,
mp4_codec,
mp4_opt,
mp4_ext,
mp4_sf,
mp4_video,
mp4_frames,
mp4_interpolate,
p=None,
pixels=history_pixels,
audio=None,
binary=None,
mp4_fps=mp4_fps,
mp4_codec=mp4_codec,
mp4_opt=mp4_opt,
mp4_ext=mp4_ext,
mp4_sf=mp4_sf,
mp4_video=mp4_video,
mp4_frames=mp4_frames,
mp4_interpolate=mp4_interpolate,
pbar=pbar,
stream=stream,
metadata=metadata,
@@ -327,7 +329,23 @@ def worker(
except AssertionError:
shared.log.info('FramePack: interrupted')
if shared.opts.keep_incomplete:
save_video(None, history_pixels, mp4_fps, mp4_codec, mp4_opt, mp4_ext, mp4_sf, mp4_video, mp4_frames, mp4_interpolate=0, stream=stream, metadata=metadata)
save_video(
p=None,
pixels=history_pixels,
audio=None,
binary=None,
mp4_fps=mp4_fps,
mp4_codec=mp4_codec,
mp4_opt=mp4_opt,
mp4_ext=mp4_ext,
mp4_sf=mp4_sf,
mp4_video=mp4_video,
mp4_frames=mp4_frames,
mp4_interpolate=0,
pbar=pbar,
stream=stream,
metadata=metadata,
)
except Exception as e:
shared.log.error(f'FramePack: {e}')
errors.display(e, 'FramePack')
+13 -1
View File
@@ -1,6 +1,7 @@
from .abnorsett_scheduler import ABNorsettScheduler
from .bong_tangent_scheduler import BongTangentScheduler
from .common_sigma_scheduler import CommonSigmaScheduler
from .deis_scheduler_alt import DEISMultistepScheduler
from .etdrk_scheduler import ETDRKScheduler
from .langevin_dynamics_scheduler import LangevinDynamicsScheduler
from .lawson_scheduler import LawsonScheduler
@@ -58,15 +59,19 @@ from .variants import (
SineSigmaScheduler,
SmoothstepSigmaScheduler,
SphericalFlowScheduler,
DEIS1MultistepScheduler,
DEIS2MultistepScheduler,
DEIS3MultistepScheduler,
)
__all__ = [
__all__ = [ # noqa: RUF022
# Base
"RESUnifiedScheduler",
"RESMultistepScheduler",
"RESMultistepSDEScheduler",
"RESSinglestepScheduler",
"RESSinglestepSDEScheduler",
"DEISMultistepScheduler",
"ETDRKScheduler",
"LawsonScheduler",
"ABNorsettScheduler",
@@ -122,6 +127,9 @@ __all__ = [
"RESU3SScheduler",
"RESU5SScheduler",
"RESU6SScheduler",
"DEIS1MultistepScheduler",
"DEIS2MultistepScheduler",
"DEIS3MultistepScheduler",
]
BASE = [
@@ -130,6 +138,7 @@ BASE = [
("RES Multistep SDE", RESMultistepSDEScheduler),
("RES Singlestep", RESSinglestepScheduler),
("RES Singlestep SDE", RESSinglestepSDEScheduler),
("DEIS Multistep", DEISMultistepScheduler),
("ETDRK", ETDRKScheduler),
("Lawson", LawsonScheduler),
("ABNorsett", ABNorsettScheduler),
@@ -190,4 +199,7 @@ VARIANTS = [
("RES-U 3S", RESU3SScheduler),
("RES-U 5S", RESU5SScheduler),
("RES-U 6S", RESU6SScheduler),
("DEIS 1 Multistep", DEIS1MultistepScheduler),
("DEIS 2 Multistep", DEIS2MultistepScheduler),
("DEIS 3 Multistep", DEIS3MultistepScheduler),
]
+18 -1
View File
@@ -3,6 +3,7 @@ from .common_sigma_scheduler import CommonSigmaScheduler
from .etdrk_scheduler import ETDRKScheduler
from .lawson_scheduler import LawsonScheduler
from .pec_scheduler import PECScheduler
from .deis_scheduler_alt import DEISMultistepScheduler
from .res_multistep_scheduler import RESMultistepScheduler
from .res_multistep_sde_scheduler import RESMultistepSDEScheduler
from .res_singlestep_scheduler import RESSinglestepScheduler
@@ -244,7 +245,7 @@ class PEC2H3SScheduler(PECScheduler):
# Riemannian Flow Variants
class EuclideanFlowScheduler(RiemannianFlowScheduler):
def __init__(self, **kwargs):
kwargs["metric_type"] = "RiemannianFlowScheduler"
kwargs["metric_type"] = "euclidean"
super().__init__(**kwargs)
@@ -295,3 +296,19 @@ class SmoothstepSigmaScheduler(CommonSigmaScheduler):
def __init__(self, **kwargs):
kwargs["profile"] = "smoothstep"
super().__init__(**kwargs)
## DEIS Multistep Variants
class DEIS1MultistepScheduler(DEISMultistepScheduler):
def __init__(self, **kwargs):
kwargs["order"] = "1"
super().__init__(**kwargs)
class DEIS2MultistepScheduler(DEISMultistepScheduler):
def __init__(self, **kwargs):
kwargs["order"] = "2"
super().__init__(**kwargs)
class DEIS3MultistepScheduler(DEISMultistepScheduler):
def __init__(self, **kwargs):
kwargs["order"] = "3"
super().__init__(**kwargs)