674 Commits
Author SHA1 Message Date
z 973075279e docs(brand): add hero banner 2026-06-28 20:21:49 -07:00
z caa5c1c440 chore(brand): dynamic hero banner 2026-06-28 20:21:47 -07:00
Antje WorringandClaude Opus 4.8 d060c20ff5 docs: tidy LLM.md indexes; CLAUDE.md -> LLM.md symlink convention
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 10:12:03 -07:00
Hanzo DevandGitHub 249bb50669 Merge branch 'Kosinkadink:main' into main 2026-06-03 12:53:50 -07:00
Antje WorringandClaude Opus 4.8 6394f809b8 Add Claude Code project docs (CLAUDE.md, LLM.md)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:44:14 -07:00
4ee72c065d fix(metadata): stop double-stringifying prompt in MP4 metadata
`Video Combine` stored `video_metadata["prompt"] = json.dumps(prompt)`
while every other field is stored as a raw object. `ffmpeg_process`
then runs `json.dumps` on each value, so `prompt` ends up double-
encoded in the embedded MP4 metadata.

Match the `extra_pnginfo` branch and store the raw object. The PNG
metadata path on line 354 is unchanged.

The original double-wrap was an intentional workaround for JSON's
stricter NaN handling (per @AustinMroz). It predates the
consumer-facing schema introduced in #627 and is no longer needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 21:38:39 -07:00
Austin Mroz a6879b8388 On mp4 audio creation, force copy metadata fields
Since `prompt` and `workflow` are non-standard metadata fields for mp4
files, they require an additional flag during the audio pass to ensure
the metadata is copied.
2026-05-11 13:10:34 -07:00
Terry JiaandAustinMroz 2984ec4c4b Fix audio preview sizing in vueNodes mode 2026-04-06 09:07:00 -07:00
Austin Mroz 449839959f Display error if duplicate install detected
Detection may not be the most reliable if one of the duplicates is not
seeing updates and happens to install first. I'll keep pondering a more
reliable way to do this. The only ideas that come to mind are a little
too hacky and unsafe for my current standards.
2026-03-17 10:08:33 -07:00
Austin Mroz 59529f50e6 Fix no-js warning, crash on duplicate install 2026-03-17 10:08:33 -07:00
Terry JiaandAustinMroz 993082e4f2 fix vueNodes/node 2.0 display issue 2026-01-12 00:42:29 -08:00
silveroxidesandAustinMroz c67ff3ef37 Fix for improper metadata saving which caused errors during playback with video players lile mpc-hc 2026-01-10 15:26:37 -08:00
Austin Mroz 3234937ff5 Add auth headers when used on cloud 2025-12-17 14:23:30 -08:00
Austin Mroz 537f3a0226 Fix latent previews on older versions 2025-11-27 09:58:49 -08:00
AustinMrozandGitHub 4f804bb23f Merge 1.7.8 2025-11-26 09:40:13 -08:00
Austin Mroz b9cc3f23aa Merge batch manager fix 2025-11-26 09:32:31 -08:00
Austin Mroz 2571e60a1c Hopefully fix flux2 latent previews 2025-11-26 09:20:57 -08:00
Austin Mroz 4bc8d33127 Fix sizing of animated preview in vue mode 2025-11-25 14:05:46 -08:00
Austin Mroz a206b3443c Fix SelectLatest
Fix a mistaken usage of this from a hasty prior pass on subgraph
compatibility.

Ensure options can't be uninitialized in SelectLatest
2025-11-25 14:05:42 -08:00
Austin Mroz f2a18a1f86 Skip preview update if all parameters unchanged 2025-11-25 14:05:34 -08:00
patientxandGitHub ae85dc37e6 Enhance requeue functions for ComfyUI version compatibility
Updated requeue_workflow_unchecked and requeue_workflow functions to handle both old and new ComfyUI versions with 5 and 6 value tuples.
2025-11-25 01:15:40 +03:00
应元东andGitHub 8923bd836b fix ffv1 color/alpha shift (#581)
* Add 'gbra' to alpha channel regex check

* Add input color depth 16bit option to ffv1-mkv.json

* use rgba64le by default in ffv1-mkv.json
2025-11-02 23:28:40 -08:00
ed laneandAustinMroz 8550981384 Fix video duration calculation in ffmpeg_frame_generator
Changed hours-to-seconds multiplier from 360 to 3600 when parsing
Duration timestamp. This fixes incorrect duration values for videos.
2025-10-27 08:59:46 -07:00
Hanzo Dev a02bc130f8 Add Hanzo ecosystem README with links and documentation 2025-10-22 14:12:12 -07:00
Christopher AndersonandAustinMroz 6e7f638675 Handle potential undefined displayValue in VHS.core.js 2025-10-16 10:55:35 -07:00
neflowandAustinMroz 08e8df15db Pass frame_rate to gifski -r. 2025-09-28 22:06:44 -07:00
Austin Mroz 0edce8ef7c Add safety check for existance to server endpoints 2025-09-17 18:19:01 -07:00
Austin Mroz 8450df1a8b Allow shift+tab to edit previous widget 2025-09-17 18:19:01 -07:00
Austin Mroz 1355e8c69f Support Animated latent previews on subgraph nodes
Code gets a little messy, but this should handle also handle a
hypothetical future with animated previews for concurrent execution,
while still properly cleaning up after itself once a workflow ceases
execution.

Swapping workflows still causes previews to cease display. I don't know
a clean solution for this.
2025-09-16 23:07:41 -07:00
Austin Mroz dabda5423a Add preview to LoadAudio nodes
Resolves #541
2025-09-07 20:11:47 -07:00
Austin Mroz 2372cebde1 Cleanup app.graph references for subgraph compat 2025-09-07 20:11:47 -07:00
Austin Mroz 8e4d79471b Disable serialization of animated preview widgets 2025-08-07 09:53:50 -05:00
AustinMrozandGitHub f20b356f68 Merge version 1.7.3 2025-08-07 08:57:57 -05:00
Austin Mroz 7e9bea5336 Fix unclosed file handle
The query video endpoint failed to container after completion. This has
been fixed.

Resolves #526
2025-08-07 08:51:49 -05:00
Austin Mroz c017071cc3 Wan22 vae rate info, frontend fixes
Added rate information for the Wan22 vae. This is only used for the 5b
model and the only change is a slight reduction in the preview rate.

Fixed being unable to quickly update multiple frontend widget values
with tab.

Fixed an incorrect default modulus for which forced inconvenient
dimensions for the Load Image node.
2025-08-07 08:40:00 -05:00
Austin Mroz 9cdacf6363 Add test case for loading and saving of audio 2025-07-28 01:44:19 -05:00
Austin Mroz 330bce6c3c Fix misplaced gifski audio workaround
The audio input was changed to be discarded when outputting to the
gifski format since gifs do not support audio and other non-audio
supporting formats will silently ignore audio when it cannot be embedded.
This fix was mistakenly added outside the appropriate conditional block
and instead discarded all audio. This was not intended

Resolves #521
2025-07-28 01:22:38 -05:00
Austin Mroz f1c513a563 Fix node reference missed from refactor 2025-07-26 22:27:57 -05:00
AustinMrozandGitHub 9c5407f2a8 Merge 1.7.0 2025-07-26 15:59:14 -05:00
Austin Mroz eb36470be4 Fix missed step multiplier adjustment
The step calculated from frame rate for start_time on load video ffmpeg
nodes has now been adjusted to not have an unneeded x10 multiplier

TODO: reconsider if this creates overly undesirable breakage if VHS
frontend code is not used.
2025-07-26 15:54:58 -05:00
Austin Mroz 9601d8792e Add bgra as known pixfmt with alpha
Quick workaround for improved compatibility with ffv1
2025-07-26 15:53:25 -05:00
Austin Mroz 97a57e38a8 Round tensors when converting to int
This has been long considered. Special thanks to Mel for providing
additional insight.
2025-07-26 15:49:56 -05:00
Austin Mroz 285568f530 Use libvpx-vp9 for main decode too
An extra pass was added to the ffmpeg_frame_generation code to properly
detect and handle alpha when loading vp9 videos. This early commit
allowed for correct detection, but then failed to apply the decoder to
the main pass, so no alpha was output. This has been fixed.
2025-07-26 15:38:20 -05:00
Austin Mroz be11f43838 Remove global vpx codec context
Since codec contexts have state, reusing them is dangerous.
2025-07-26 15:24:34 -05:00
Austin Mroz 253251fa5c Fix latent preview race cond, subgraphs interop
Since the subgraph utils aren't exposed from core, a small stub function
is just re implemented in VHS.

Execution state seems be robust enough to trust core to clear this
state, but it's initially set to 0 by VHS now to ensure the preview
display doesn't race the message that the node is being processed.

Unfortunately, the lack of ability to determine if a node is actually
running means swapping the active workflow once again breaks the display
of previews. I don't see a way to fix this without changes to core.

While disappointing as a maintainer, the fix never being rolled out
means this isn't a loss of functionality to end users.
2025-07-26 12:20:14 -05:00
Austin Mroz f01332d42c Fix animated latent previews
Resolves #516

This functions so long as multiple nodes aren't providing latent
previews at once. I will need to take time to consider if such
functionality would even be desirable.

Does not resolve subgraphs. Graph traversal functions don't appear to be
exposed, so I'll most likely need to re-implement myself, but I need to
take the time to exhaustively verify first.
2025-07-26 01:38:31 -05:00
Austin Mroz 229642349b Merge FFV1 2025-07-25 01:18:00 -05:00
Austin Mroz 3b2fb5f518 Fix incorrect time base in query video 2025-07-24 22:45:24 -05:00
Austin Mroz a3d66b6736 Merge upload-progress 2025-07-24 21:59:59 -05:00
Austin Mroz 8b62aa458d Ignore audio for gifski output format.
Gifs do not support audio. Rather than crashing, VHS will now ignore any
audio input when outputting to the gifski format. Thanks Mel.
2025-07-24 20:44:21 -05:00