Model Releases

Updated OBVPM Timeline Workflow v0.1.4-007

New version of my MiniMax H3 timeline workflow released Some very important bug fixes included, and a lot of improvements. The YouTube video above includes a lot of tips for using the workflow in addi

DGX agentreddit
model-releasesr-stablediffusion

New version of my MiniMax H3 timeline workflow released Some very important bug fixes included, and a lot of improvements. The YouTube video above includes a lot of tips for using the workflow in addition to going over the changes in detail. Below is a complete list of fixes and improvements. Get the workflow and nodes at: https://github.com/chanon/comfyui-obvpm-timeline Important Fixes Upscaling Timelines can now be upscaled even if they have clips that aren't a single continuous generation. Previously a timeline like below might have failed with an error saying the clip's frames "don't fall on the latent grid". Now it upscales fine. So now you can have multiple segments, some extending each other, while others are a hard cut to a different shot from a different root generation, and upscale the whole timeline together. This allows the workflow to be used to compose/edit and upscale timelines with multiple shots. When a timeline has multiple sequences like that, it upscales each sequence separately and then merges them automatically into one file, with black for empty space and the sound de-clicked at the cuts. A timeline with empty space in it also upscales now. In 0.1.1 it failed with "~ 4 does not exist under the output folder". The upscale now follows your cuts: Previously if you generated a 20 second clip and then trimmed it down to 4 seconds, it would still upscale the whole 20 seconds before trimming it down. (What a waste lol.) Now it only upscales those 4 seconds. This applies to all clips you cut (trim) on the timeline, so it should help speed up upscales if you trim a lot. Hand made jump cuts between clips that were green seams are now respected. Previously it would just join them at the green seam. The last clip's cut is respected. Previously it would just include the last clip till the end even if it was cut. Extending and Prepending Prepending into a trimmed clip was broken. When placed on the timeline it repeated the first few frames of the clip on the right instead of flowing into it. (Found while implementing the split.) Smoother joins (fixed detail pop): a new take now takes over one latent step earlier at its join. The video decoder draws the very first and last frames of a file a little differently, so the older clip's frames right at the join never quite matched the new take. This cuts the visible detail change at a join by about a third (the rest is the model redrawing texture, which the upscale removes). Takes you made before keep the join they were cut at. Continue from a very short take: before, if you cut a take very short and tried to extend from there, you got "too short to extend". A take made by extending another clip already holds the frames it continued from, so the extend now reaches back into those for the frames it's missing. They're the exact same latents, so the join doesn't move: the new take still starts right at your cut. Prepends work the same way in the other direction. A clip that wasn't made by extending (your first clip, or a loaded video) still needs at least 39 frames. Prepend close to the end of a clip: works now when the next clip on the timeline is a take that extends it. Otherwise the timeline tells you how many frames are left. Audio Sync Audio sync at joins: Fixed an 8.3 ms skip in the sound at extend joins. It happened when the clip you extend from isn't a multiple of 3 frames long (like 124 or 362 frames). A take's mp4 now has its sound cut on its own frames, so it plays in sync on its own and the join no longer skips. Older takes are corrected when a preview or export is built. Fixed: in the upscale, a take extended from such a cut could skip or repeat 25 ms of sound at its join. Each clip's sound is now placed following the clip it continues, so every join lines up exactly. Fixed: on joins that crossfade, the last few milliseconds before the join (3 to 30 ms) were almost silent in previews and exports. Masked joins without crossfade, the default, weren't affected. Previews rebuild once after updating. Color Colour fix: an important change if you care about colour accuracy. Previously all video files generated were not tagged with a colour matrix, resulting in shifted colours when displayed (greens duller, skin and warm tones redder) in browsers, players and editors. All clips and upscale results are now encoded with and tagged as BT.709, like ComfyUI's own Save Video. Takes saved before keep playing as before. A timeline mixing old and new takes still previews and exports correctly, just a bit slower. Faster Generation VAE Separate VAE model selectors for Generation and Upscale This allows selecting a faster VAE for Generation for faster iteration, while using a higher quality one for Upscale. New default: for Generation, the workflow now defaults to the new fast minimax_h3_video_vae_int8_convrot VAE recently released by ComfyUI, which is 2.7x faster than the previous default. The upscale keeps minimax_h3_video_vae_fp16. Note that the Generation VAE does not affect the quality of the upscale results, as the upscale is done using the latents, not the VAE decoded frames. Model in the Preset, with an Override The Model/Checkpoint is now part of the preset, but can still be overridden. So your saved presets can also specify which model to use. The model the preset uses is displayed in the H3 Model node. And you can still override the model with the H3 Model node (an Override Bundle Values node). When overridden, the model in the preset node shows 'overridden', so there is no confusion about which model is used. Upscaling Upscaling is now set by target megapixels instead of an "upscale factor". upscale_to_megapixels (default 2) replaces upscale_factor. It was a pain trying to figure out the correct factor each time. In most cases you know your target megapixels anyways, so just setting that makes it easier. I've also included an extended Megapixels Resolution Reference table that lists more resolutions and also 4:3 resolutions. Timeline Node Improvements Split clips: a new split button in the middle of the cut row splits the clip under the playhead into two parts of the same file. Each part can be moved, cut or deleted on its own. So the timeline properly supports multiple instances of the same source clip appearing on the timeline. You can then extend/prepend on any edge of any of those parts. The pin row names the part (for example clip_00033.mp4 (part 2/3)), and the new take goes next to that part. You can now split a long clip into 3 parts, delete the middle part, and then regenerate the middle part with a bridge, allowing true ability to 'regenerate' any part of your videos. Both halves play the same file, nothing is re-encoded. An upscale treats a split as a cut. Deleting clips now keeps the remaining clips in place, leaving an empty gap rather than snapping the clips on the right to the clip on the left. You can then use the red X to delete the gap Or use the plus button to create a bridge This makes it easier when you want to re-do a part using the split method above Separate joined clips: clips joined with a green seam couldn't be Ctrl+dragged apart. Now they can: Ctrl+drag the right-hand clip to open empty space between them. Drag it back flush and they join again. Play/Pause with Spacebar: toggles playing and pausing the timeline, so you don't have to use your mouse all the time. Holding Space to pan the canvas still works. Jog with horizontal scroll: if you have an MX Master or a knob assigned to horizontal scroll (or use Shift + wheel), you can now jog through the timeline. It feels quite cool and 'pro' IMO 😎 Should be really useful when checking things in the video The timeline image now updates itself immediately when the timeline changes, for example when a clip is added or deleted, or whenever what's behind the playhead has changed. Durations are now shown with two decimals, so it's clearer whether the next gen will cover the current gap. Fixed: quick play now plays through empty space instead of stopping at the first gap. Presets (Value Presets, comfyui-obvpm) User Presets User presets are saved in your ComfyUI user folder on disk under user/default/obvpm/presets/, one file per preset. This means you can now save presets that persist and are reusable between workflow files. I added this so that when you define presets and then I release a new workflow version, you don't have to recreate your presets again. User presets have a 'star' in front of them. "Workflow presets" come with the workflow. You can still save new presets to the workflow if you want, but they will exist only in that workflow. You can 'hide' any presets you don't want to see on a preset node by unchecking them in the config screen. Export and import presets to share them: export copies or downloads one preset as a small file (the same file as in the presets folder), and import takes several preset files at once. Settings presets: every setting has a tooltip; the turbo LoRA and strength only show when a turbo loader is selected. Generation and Upscale Engine Settings nodes now share the same presets. That means presets defined on one are immediately available to choose on the other. You can 'hide' presets you don't want in the dropdown for either node using the config button Settings that won't be used fade out, depending on whether Upscale is on or not. This makes it easier to see whether Upscale is on and which settings will actually take effect in the next run. Faded settings panels are still editable. The fade is just to show they won't be used in the next Run. Load Settings now works better with the Value Presets node. Instead of showing a blob of JSON for everything, you now see row by row which values actually changed and choose whether or not to apply each of them. Schema and Preset Settings changes are unchecked by default so it doesn't mess up your presets node. Note that the Upscale settings (Upscale Engine Settings and Upscale Options) are now marked as [skip], because generally you Load Settings only when generating clips. Reminder: Load Settings can also restore the reference images you had for the clip's generation. Dropdown filters: on the new Filters page in config, each dropdown field (like the model list) gets an include and an exclude box, so you can cut a long list down to the entries you actually use. A pattern matches anywhere in the name, * stands for anything, and h3/ matches a folder. They're saved with your user presets and only change what the dropdown shows: presets and runs still take any entry. Load Images & Compose and Load Image & Crop Layers can be muted (the eye badge, or the mute pill), so they stay in the list but are left out of the composed image. Presets: save the whole set (the images with their crops, and the settings) as a preset, kept as a file in your user folder and shared by every Load Images & Compose node. Like Value Presets, it shows ✎ modified once something differs from the preset, with save and revert. A new padding setting adds background around the composed image and each separate image. The gap between layers moved to a pill under the Result view. Fixed: it ignored an image list set from outside the node, like the timeline's load settings restoring a take. Load Images & Compose: the layer strip can be resized; an empty node outputs None instead of an error. Workflows load much faster when the input folder holds many images (#22): listing the input folder is about 80x faster (10,000 images: ~20 ms, was 1.75 s), and Load Images & Compose only reads it when you open its picker. Pick from the input folder with search: the add dropdown is now a + from input folder… button that opens a picker with a search box (every word you type must appear in the path, in any order; ↑/↓ and Enter, or a click, add it). Symlinks and Windows junctions inside the input folder are now followed, so an image library linked in from another drive lists and loads like any other folder, as with core's Load Image. A second output, extras: the separate images as a list, the selected image, and the images as a bundle (image_0, image_1, ...). Result Preview New: H3 Live Preview replaces KJNodes' Model Preview Override for the live picture while sampling. It shows the whole clip on the take's own timeline, including the pinned frames at the ends, so you can see whether a join is going wrong while it's still sampling. No frame rate to set: every latent step is held for the frames it covers. It uses taeh3.safetensors in models/vae_approx (or the latent's own colours without one), and encodes on the CPU so sampling never waits for it. The 007 workflow already uses it. New: the Result Preview has its own player bar under the picture instead of the browser's controls drawn over the bottom of the frame. Play/pause, frame step, seek, volume, loop and fullscreen. Click the picture to play or pause, double click for fullscreen, scroll sideways over it to step through, and Space plays or pauses the preview under the mouse (or the selected one). The live picture plays under the same bar and no longer jumps back to the start at every sampling step, so you can watch, pause and seek the whole clip while it generates. A take a run just made starts playing by itself; one shown again when you open the workflow starts paused. Result preview behaves a bit more logically: Dismiss not only dismisses the buttons but also clears the clip from the preview (the take stays on disk). A preview you cleared stays empty when you open the workflow again, until there's a newer take. It no longer creates undo steps, which messed up Undo/Redo, and it keeps nothing in the workflow file (a shared workflow no longer carries your last result). It no longer shows old results. It now only includes the left/right clips up to their cut point on the timeline instead of the whole source clip. The upscale result preview now just shows the actual upscale_0000X.mp4 file instead of writing another preview file, so it starts at once and shows exactly the rendered pixels. Fixed: it liked to log console errors about "The system cannot find the file specified". The live picture while sampling is always on. There used to be a hidden right-click option, Live preview while sampling, stored per save folder, and opening some older workflows switched it off for every workflow saving to that folder. That option is gone. (To go without the live picture, take H3 Live Preview off the model.) A preview now only shows the live frames of its own branch, so the upscale's preview no longer shows the generation's frames. The preview's path input is optional now, so its save node can be switched off for a run (that's how the new 007 workflow switches engines). Fixed: a double click or a drag across a node could cover a whole video with the blue text selection highlight. Videos can't be selected anymore; status lines still can, so you can copy them. New Workflow v0.1.4-007 Needs comfyui-obvpm 0.2.14 or newer and comfyui-obvpm-timeline 0.1.4. The Compatibility Check node tells you if anything is missing or too old. The engines switch on and off as whole groups: a small Mute Group If switch in each engine group (Run when Generating, Run when Upscaling) mutes the engine you're not using for the run, decided from the timeline's upscale toggle before the run starts. So nothing in the other engine starts at all, loaders included, and it shows greyed out. The Megapixels Resolution Reference note beside the timeline shows the width x height each megapixels setting gives at 16:9 and 4:3. Includes the upscale-by-megapixels setting, shared engine presets, the model in the preset with the H3 Model override, and the separate VAEs above. For Workflow Builders (comfyui-obvpm nodes) Value Presets Headings: a ## Title line in the schema puts a heading over the fields below it. Switch fields off per node: nodes sharing one schema don't all need every field. A field switched off is hidden on that node and empty on its bundle. Set to constant, like a Bundle's set: an Unbundle with get (or a KJNodes Get) reads the bundle by name, without a wire. A checkbox in config, with the set_constant field shown last. Choose the preset with a wire (#20): wire a text into the preset input and that preset's saved values run. Handy for testing several presets in a row. If the name is known before the run (a text node, a primitive), the node applies it right away, so its fields show what will run. If it's made during the run (a list, a loop), the node shows which preset ran afterwards. Works with workflow and user presets. An unknown name stops the run and lists the presets. Shared presets by Preset Type Id: nodes with the same Preset Type Id share their presets, both the user presets and the workflow's own (that's how the Generation and Upscale Engine Settings share theirs). Drag to reorder in the schema table (see Bundle and Unbundle below): Shift-drag or Alt+Shift+↑/↓ moves a whole group, a field dropped inside another group joins it, and + add field adds the new field right under the row you're working on instead of at the end. The fade is smarter: a preset read only by a node that never runs (like a display-only preview), or only by nodes a Mute Group If has muted, fades too. And a node that reads a constant by name now counts as using it, so the presets feeding it no longer fade by mistake. Bundle and Unbundle Fewer Get/Set nodes: Bundle and Unbundle can set/get by name themselves. Drag to reorder (#19): rows in the Bundle and Unbundle settings, the Value Presets schema table and Message & Links have a grip to drag them (the ▲▼ buttons stay). Alt+↑/↓ moves the row you're typing in, and plain ↑/↓ moves between rows like a table. Up to 128 fields in Bundle and Unbundle (was 16), so any Value Presets bundle fits one Unbundle. A workflow that uses more than 16 needs this version: an older one drops the pins past 16. Fixed (#18): the Unbundle settings only listed the first 16 fields of a bigger bundle. It now lists all of them. Fixed: on the newest ComfyUI frontends, reordering a Bundle's fields moved the names but not the wires (so a field took another field's value), and reordering an Unbundle's outputs disconnected wires. Both now reconnect the wires properly. In the Bundle and Unbundle settings, Enter now means OK. For node pack developers: a node from another pack can now set a bundle constant itself and name its bundle's fields for the Unbundles that take it apart. Override Bundle Values (new node) Override some of a bundle's values (typically a Value Presets node's) for a run, with the preset's own ranges and choices, or by wiring in a value. The Value Presets node marks the fields that are overridden. The 007 workflow uses it for the H3 Model override. It traces through switches, following the branch a switch will pick when that's known before the run. Mute Group If (new node) Mutes the group it sits in while its value is true (or false, with invert), so nothing in that group runs, loaders included. The value is read before the run (a widget, a Value Presets field, a primitive, the timeline's upscale toggle). If it can't tell, the group stays on. It works inside a subgraph: put the switch and its Get in a subgraph and it controls the group the subgraph sits in. You can paste the same switch subgraph into several groups and it switches all of them. Compatibility Check (in case you missed it) Drop it into your workflow (it has no sockets) and set the minimum ComfyUI and frontend versions and the node packs the workflow needs. When someone opens the workflow, the node says whether their install can run it and names anything missing or too old, with a link to get it. A queued run stops at this node, before anything else runs, while anything fails. Set the rules with the settings (⚙) button in view details: editable tables, or Edit as Text to paste a list, one rule per line (for example comfyui-obvpm >= 0.2.14 https://github.com/chanon/comfyui-obvpm)..) Five kinds of rule: the ComfyUI version, the frontend version, a pack's version (found by its GitHub URL, however it was installed), a node that must be present or must have a certain input (catches a fork that registers the same node with different widgets), and a node or pack that must not be installed (for packs known to break the workflow). A note after # on a rule is shown with the failure, so you can tell people how to fix it. Message & Links: a short text and a list of links shown once the install passes: what to do first, a tutorial video, where to ask for help. Links only open on trusted sites (GitHub, Hugging Face, Civitai, YouTube, Discord, Patreon and a few more), with the real site shown next to each. New in this release: drag the links to reorder them. Copy Report copies the whole install as text for bug reports: ComfyUI, frontend, Nodes 2.0 or classic, Python, torch, OS, every custom node pack with its version and git commit, and the node's results. That's what I ask for in GitHub issues. It's what the 007 workflow uses to check for comfyui-obvpm 0.2.14+ and comfyui-obvpm-timeline 0.1.4. Other Fixes Fixed: the "unexpected audio grid ... assuming no overhang" message in the console for some clip lengths. Nothing was actually wrong with those clips. A base_folder typed with backslashes (projectsmy_project) now works like projects/my_project. The seam menu's list of existing takes now checks where each take joins, and lists the ones that join elsewhere separately, dimmed. Takes extended from a clip in another folder now remember where that clip was, so the Result Preview can show them together. No mctx (#15): clips could show no mctx (and extends fell back to the pixel route, with no loop option) even though their .mctx.safetensors was right beside them. The server now reads it, and a clip without a usable sidecar says why in its tooltip. Fixed: wheel zoom in Nodes 2.0: the wheel over the ruler and Ctrl + wheel over the strip never zoomed there. Fields show as the workflow opens instead of after it finishes loading. A model dropdown whose default file isn't on your install keeps its dropdown (starting on the first entry) instead of turning into a text field. Fixed (#21): editing the schema in the table editor could break it ("has no ':'") when a model field's default file wasn't on your machine, for example when changing that field's type to choice. How to Update Update comfyui-obvpm to 0.2.15 and comfyui-obvpm-timeline to 0.1.4 (ComfyUI Manager, or git pull in each folder in custom_nodes), restart ComfyUI and refresh the browser (F5). Load the new workflow h3_obvpm_timeline_r2v_v0.1.4-007.json from the timeline pack's workflows folder. The Compatibility Check node will tell you if anything is missing or too old. For the faster generation VAE, put minimax_h3_video_vae_int8_convrot.safetensors in ComfyUI/models/vae/ (ComfyUI's post about it). submitted by /u/obvpm [link] [comments]

Source: r/StableDiffusion | 2026-10-13

Loading related sources…