v2.4.0 — 20 utility nodes: dataset prep, media I/O, video/image/data toolkits - #78
Merged
Conversation
…/data toolkits) Everything between local assets and fal endpoints, under FAL/Utils: - Dataset: Images → Training ZIP URL (LoRA caption layout), Folder → ZIP URL, Video → Frame Dataset ZIP URL, Batch Caption Images (parallel VLM, wires straight into the trainers). trainer_node's zip helper refactored onto shared ArchiveUtils. - Load: Load Image from URL (multi-URL batching), Load Audio from URL, Load Image Folder, Upload Folder as ZIP URL. - Video (PyAV/cv2, verified against real encoded fixtures): Extract Frames (efficient last-frame seek for image-to-video chaining), Trim (keyframe remux, no re-encode), Concat (normalizes resolution/fps), Mux Audio + Video, Video → Audio. - Image: Image Grid with Labels, Resize to fal Preset (cover/contain/stretch), Image ↔ Base64. - Data: JSON Extract (dot/bracket paths over result_json outputs), Prompt Lines cycler, Text Template. av added to dependencies (lazy imports keep the pack loading without it). Review fixes: folder zips log file count/bytes and enforce configurable [archive] caps before uploading to the CDN; batch captioning re-raises ComfyUI cancellation instead of recording empty captions; malformed JSON paths return the default instead of raising; string "false" parses as boolean False; cold-start balance checks collapse to a single API call. 9 new tests (100 total).
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Twenty nodes under
FAL/Utilscovering everything between a user's assets and a fal endpoint — dataset prep, media loading, and output post-processing — so fal workflows need no third-party utility packs.Dataset (
FAL/Utils/Dataset)The full LoRA pipeline in three nodes: Load Image Folder → Batch Caption Images (parallel VLM) → Images → Training ZIP URL → any trainer. Plus Folder→ZIP and Video→Frame-Dataset ZIP. The trainer's internal zip helper is refactored onto the same shared
ArchiveUtils.Load (
FAL/Utils/Load)Load Image from URL (comma-separated batching), Load Audio from URL, Load Image Folder (patterns, sorting, caps), Upload Folder as ZIP URL.
Video (
FAL/Utils/Video)Extract Frames (efficient last-frame seek — chain into any image-to-video model for endless extension), Trim (keyframe remux, no re-encode), Concat (auto resolution/fps normalization), Mux Audio + Video (marry TTS/music output to generated video), Video → Audio. Verified against real encoded fixtures (durations, resolutions, FFT-checked audio round trips).
Image + Data (
FAL/Utils/Image,FAL/Utils/Data)Labeled Image Grid, Resize to fal Presets (cover/contain/stretch), Image ↔ Base64, JSON Extract (dot/bracket path queries over any
result_jsonoutput), Prompt Lines cycler, Text Template.Review (adversarial pass, findings fixed)
[archive]caps (max_files,max_total_mb) — no more silent bulk reads"false"→ boolean FalseTest plan
avadded to deps with lazy imports (pack loads without it)