Skip to content

Releases: Sxela/ComfyWarp

ComfyWarp v0.6.0

08 Feb 23:05
ac22fd2
Compare
Choose a tag to compare

Changelog:

  • Add MakePaths node
  • Add ExtractFlowAndMixConsistencyMaps node
  • Add ApplyMask, ApplyMaskConditional, ApplyMaskLatent, ApplyMaskLatentConditional nodes
  • Fix FrameDataset always extracting frames from a video
  • Fix QueueMany
  • Fix consistency mask format

Detailed Changelog

FrameDataset

Now caches extracted video frames based on output folder existence. If something is wrong, check overwrite option to extract again (each queue call)

MakePaths

Unified node to make output paths

ExtractFlowAndMixConsistencyMaps

Unified node to extract flow and consistency, and mix consistency channels

ApplyMask, ApplyMaskConditional, ApplyMaskLatent, ApplyMaskLatentConditional

Nodes for masking. Conditional nodes allow to apply mask only at some input values (like frame numbers) and use 1st image on the others.

QueueMany

Fixed it to queue 1 job, set queue mode to infinite until the final frame is rendered. After that stop the queue and set the queue mode to default. Previous version queued all the desired frames at the same time, resulting in a huge queue.

ComfyWarp v0.5.0

16 Nov 07:15
Compare
Choose a tag to compare

Changelog:

  • add FixedQueue node
  • add start, end, n-th frame settings to MakeFrameDataset node
  • make 0.5.0 workflow

FixedQueue node

start - frame to begin with
end - frame to end with
current_frame - iterator, showing the current frame, which is being output as the current value. The current value should be plugged into downstream nodes as the source of the current frame number.

Queue Many button

Click to render a set of frames from start to end. Plug end output to your RenderVideo node's render_at_frame input to automatically render video after finishing the end frame.

MakeFrameDataset node changes

start_frame - frame to begin with
end_frame - frame to end with
nth_frame - n-th frame to extract

If you provide a path to a video, only a range of n-th frames between start_frame and end_frame will be extracted.
If you provide a folder or a glob pattern, only a range of n-th frames between start_frame and end_frame will be stored in the dataset.

ComfyWarp v0.4.0

20 Oct 19:57
1944edc
Compare
Choose a tag to compare

Changelog:

  • add Scheduler nodes
  • add flow_blend example pipeline
  • fix SaveFrame not saving frames if it's the last node in the graph
  • fix json blend error for string schedulers
  • remove json blend option for string schedulers
  • fix json schedules not working with int, float schedulers
  • remove efficiency nodes from workflows
  • remove efficiency nodes from installer
  • replace mask compositing in v0.1 workflow with MixConsistencyMaps node
  • add updated workflow files for direct download

Schedulers:

  • SchedulerString
  • SchedulerFloat
  • SchedulerInt

Added Scheduler nodes, by output variable type: string, int, float.
Can be used with any ComfyUI node inputs. For example, for automating parameter testing, scheduling controlnet weights, sampler settings, and prompts.
Require a current frame input to drive the scheduled sampling. Accepts any int as current frame input.

Input formats:

  • single value: value
  • list of consecutive values: [frame1_value, frame_2value, ..., frameN_value]
  • dictionary of keyframe:value pairs: {0: frame1_value, 1: frame2_value, ... N: frameN_Value}
    The dictionary format supports interpolation of values between frames, just like in WarpFusion.

Flow_blend pipeline

Works like its WarpFusion counterpart.
blends previously stylized and warped frame (with cc mask applied) with the corresponding raw video frame. Acts like style opacity. 0 - no style, only raw frame, 1 - only stylized frame, intermediary values - linear interpolation between raw and stylized frame.

ComfyWarp v0.3.0

06 Oct 09:42
f8c7371
Compare
Choose a tag to compare

Changelog

  • Add v0.3.0 example pipeline with RenderVideo, FlowBlend mode for video output
  • Add RenderVideo node
  • Add ffmpeg downloader/finder
  • Make SaveFrame save frames with {frames_folder}{batch_name}%06d.png pattern
  • fix install.bat xformers version
  • fix SaveFrame node not saving frame if being the last node
  • remove efficiency nodes from workflows
  • remove efficiency nodes from the installer
  • replace mask compositing in v0.1 workflow with MixConsistencyMaps node
  • add updated workflows for direct download (codebase is unchanged)

New Contributors

FlowBlend Deflickering pipeline from warp's video output cell

This part smooths out the frames by blending the current stylized output frame and previously stylized and warped output frame, where consistent areas are blended linearly, and inconsistent areas are taken from the current stylized output frame only. This smooths non-moving parts and helps reduce trails on moving parts.

RenderVideo node
Renders a video from frames following the {frames_folder}{batch_name}%06d.png pattern.

Inputs

output_dir:
folder to put the rendered video to. Will be created automatically

frames_input_dir:
folder to get frames from, plug your SaveFrame output dir here

batch_name:
batch name you've set in your SaveFrame node, default - ComfyWarp

first_frame:
start video from that frame, default: 0

last_frame:
end video at that frame, default: -1, means use all available frames

render_at_frame:
frame at which to begin rendering video. Plug your FrameDataset total frame number here or specify manually if you want to render video before diffusing all the frames.

current_frame:
current frame being rendered, used to trigger video render. don't enter manually, Plug your current frame variable here.

fps:
output fps

output_format:
codec to use, h264_mp4, qtrle_mov, prores_mov

use_deflicker:
enable ffmpeg built-in deflicker

Workflow requires efficiencynodes: LucianoCirino/efficiency-nodes-comfyui

Full Changelog: v0.2.0...v0.3.0

ComfyWarp v0.2.0

04 Nov 10:45
Compare
Choose a tag to compare

Changelog:

  • add new v0.2.0 pipeline
  • add LoadFrameFromFolder
  • add LoadFramePairFromDataset
  • add ResizeToFit
  • add SaveFrame
  • add MixConsistencyMaps
  • fix imports
  • set min frame number to 0 in LoadFramePairFromDataset, LoadFrameFromDataset
  • move get_size to frame nodes
  • fix get_size
  • return init frame for frame number -1 for frame loader nodes
  • add lora/cn workflow
  • add installer files

v0.2.0 pipeline

Supports manual loopback img2img
You can loop through the whole folder of your init frames by manually clicking queue prompt in ComfyUI

LoadFrameFromFolder
Used to load rendered frames from the output folder for loopback.
Loads frame from folder. Updates frame list on each call. If there are no frames in the folder, returns init_image.

LoadFramePairFromDataset
Returns 2 frames: current and previous.

ResizeToFit
Resize an image to fit, keeping the aspect ratio.

SaveFrame
Save frame to a folder, using current frame number.

MixConsistencyMaps
Mix consistency maps, blur, dilate.

ComfyWarp v0.1.1

10 Oct 10:00
619b83e
Compare
Choose a tag to compare

Initial release introducing the following nodes:

  • Make frame dataset
  • Load frame from dataset
  • Offset number
  • WarpFrame
  • ExtractOpticalFlow