Repository navigation
FreeVideo 0.4.24 - #526
Merged
Merged
FreeVideo 0.4.24#526
Conversation
A video already unloads ComfyUI's own idle models before it starts. Pictures and the prompt model did not, and the picture budget did not count them, so a native workflow's model could keep a picture out of memory until ComfyUI was restarted. Both now send ComfyUI's own unload command first (only when a native model is loaded and no native prompt is running), keep the idle video engine during that unload, and the picture budget counts that memory. Picture failure reports record what was unloaded.
A guide reference can carry "keep_source_audio": true. After a successful run the finished MP4 is remuxed: the video stream is copied packet by packet and the audio stream is replaced by the guide clip own audio, trimmed or padded with silence to the video length. The flag needs a guide clip with an audio stream, is validated at request read, and does not enter the conditioning cache key. Requests without it are unchanged.
A failed keep_source_audio remux no longer fails the run: the generated video stays untouched, the temporary file is removed, and the report records keep_source_audio_failed with a short reason while success stays true.
Ship the agent skill with the install-skill command; payload is .txt files the published launcher accepts and install writes SKILL.md and references/*.md
Restore deleted tokenizer files from the pinned local source checkout before encoding and during Repair, and explain missing encoder files in both languages. Use the installer's recorded Git when no other Git is available and restore long file lists in batches. Preserve the existing Windows long-path checks.
…nd bound the decoder cache Keep the small-first-pass eight-head extension to requests without LoRA, bound the decoder cache by the request RAM budget. The Windows small first pass takes eight heads up to 12.25 s only when no LoRA is loaded; LoRA requests keep the 243-frame limit. Correct the comment on which paths keep 243. The decoder's converted-layer cache now also stays inside the request's own RAM budget and reads cgroup limits through the shared hardware helper, so it can neither trip an explicit budget nor raise the peak later plans treat as demonstrated. Narrow the recorded capability table tolerance to the two moved entries. Add tests for cache release, consumer errors, concurrent first use and re-admission.
install-skill runs without loading the image libraries, so a deep Windows folder can install the agent skill.
install-skill stages in a fresh folder beside the destination and never writes through a leftover staging link.
Keep a foreign module's arguments out of the lock holder report, say the file is open rather than held, and give the deadline test room.
… before the next pass allocates
A resident process now holds the converted decoder layers in a store that outlives one decode, so the next request reads no layer from disk. The store belongs to one checkpoint identity, and is released when host memory is short, when models are made room for, and on clear.
The mismatch message ends with one instruction, counts files that differ only in permissions in singular or plural, and says they do not block installation. A failed rename no longer names a guessed cause, and the recovery message says where the previous files are now. Cleanup of earlier set-aside folders skips a parent folder that cannot be listed.
…ene code A yes/no check first; a no, an unreadable answer or an invalid choice means no white model. Colour, speed, camera height and field of view are applied to the chosen template by a fixed wrapper. Only templates whose video was measured to follow the white model are selectable (the cat scene).
…gent is connected
The early unload of idle ComfyUI models only frees memory ahead of time; the request's own memory check still decides. An exception there is now logged and the request continues.
…ched, early steps default 3
A part that continues a video is now at least 5 s instead of 10 s. The planner still prefers continuing parts of 10 s or longer and falls back to parts of 5 s or longer only when the length or this device's single-run limit leaves no other way, so lengths such as 15-19 s and 29 s are no longer refused as unsplittable and devices that cannot make 10 s at once can continue videos. A video with a continuing part shorter than 10 s has at most 4 parts; with the first-frame reference, or when every continuing part is 10 s or longer, it keeps 8. The planner, chain store, runner, ComfyUI chain node, Agent and editor all read these numbers from one shared file (web/chain_rules.js), and the runner and Agent refuse a video with too many short parts with a matching error code. Editor: - A new continuation starts at 5 s on Mac and on devices that cannot make 10 s at once, and at 10 s otherwise; dragging a video's end continues it by at least 5 s. - Requests the backend would refuse (too many parts, too many short parts, parts too short) are blocked before they are sent, with the same message. - The model gains a setter for a continuation's length that moves later planned parts with it and checks the whole video against the limits. The tutorial, how-to page, Agent guide and Agent documentation describe the new limits.
…ed with the built-in AI White-model no-fit sentence names the next step, attach button is disabled with the built-in AI, guide entry added.
On Windows, Git reads a dependency checkout's settings from .git\config by its ordinary path. When that path is past the limit, Git cannot tell whether FreeVideo made the folder, and a fresh copy in the same place could not be read either. Such a folder in the vendor folder is now reported before anything is downloaded or renamed: the error names the folder, says its path is too long for Git to read, and asks to install FreeVideo in a folder with a shorter path, such as D:\FreeVideo. The folder is left unchanged. The failure card shows this as the existing long-path card with the folder named, in English and Chinese. A folder whose settings Git can read is judged as before, even when Git refuses the deep folder itself, so a real version difference is still reported as one.
Let only a missing encoder stop the pre-encoding check, and keep other machine settings when prefetch restores readiness.
… length - The shortest continued part reads the same everywhere: "Each continued part must be at least 5 seconds." - Dragging a continued part longer says its new length in tenths of a second, and adds the shortest-part rule when it was raised to that. - The parts limit with short parts names one continuous shot, in the editor, the planner, the chain runner and the Agent errors alike.
…afely Dependency checkouts are now compared by file content only. Every Git check runs with core.filemode and core.autocrlf turned off for that command, so a copy, restore or drive that changes permission bits, or a global line-ending setting, no longer makes a pinned checkout look edited. With a sparse checkout, the status check covers only the sparse paths, so a file that appears outside them is ignored. The deep-path Windows branch uses the same settings. Git now reads the repository in the dependency folder itself: discovery stops at its parent folder and inherited GIT_DIR-style variables are dropped, so a folder that lost .git/refs no longer reports the HEAD of an enclosing repository. Reading HEAD from the file follows a symbolic reference to its commit, through the loose ref or packed-refs. When a dependency folder that FreeVideo created in its vendor folder (same sparse patterns, or no or the same origin) holds a different version or changed content, the fresh copy is cloned and verified first. The old folder is then renamed to <name>.replaced-<time> and kept, and the new copy takes its place. If a rename fails, the old folder is left or put back in place and the error says so. Only the latest set-aside folder is kept, and only folders FreeVideo marked itself are removed. Folders FreeVideo did not create, such as a ComfyUI the user works in, are never replaced. Otherwise the error names the folder and says what differs: an unreadable version, a different version, the files with changed content, and how many files differ only in permissions.
install-skill keeps the installed skill folder readable by other users after staging in a private temporary folder.
A reference video can be marked as a guide with "guide": true. It is packed as a silent clip that shares the target time origin, so a source clip can drive the motion while a reference image supplies the character. Guides are validated, enter the cache key, skip soundtrack extraction and prompt-model video input, and are applied in both sampling passes and refinement. Keyframes combined with references are converted into guide references instead of being refused. Requests without a guide are unchanged.
The shared description now holds only what stays the same in every part: people, place, lighting, framing, style and background sound. An answer that copies the story or the spoken lines into it, leaves the first part empty, or answers in another language is asked again instead of being repeated in every part. An opening action left only in the shared text moves to the first part, a part that repeats an earlier one carries on quietly, and a short story continues with something new without adding speech. Without the prompt model, or when no usable split comes back, the description's sentences go to the parts in order instead of every part using the whole description. A part with no sentence of its own carries on without speech. Resuming after a busy or out-of-memory split still splits again. Splitting stops as soon as the model starts its answer over, instead of writing until the token limit and asking again.
Generating while the download confirmation is open or the download is running no longer waits for it: the download is paused, the parts are split by sentence, and Retry resumes the download later.
…ort as interrupted Keep a running chain block's report id and mark a restarted run's report as interrupted, on top of the persisted report index.
…oo, and drop lone surrogates
…ve fails The failed-step message read the kernel report from a fixed file name, so a failure of the GPU check that runs first when moving to int8 lost its per-check reasons. The message now reads the report the command was told to write, and falls back to the old file.
…he LAN access proxy LAN requests from a phone reached ComfyUI with a hop header that the server could not verify, so Agent endpoints answered 403 local_only.
…hrough tool help and call Agent MCP lists the common tools in full and reaches the large ones through freevideo_tool_help and freevideo_call; freevideo_wait waits up to 45 seconds.
Picking an earlier video in Recent videos now offers a Reuse settings button in its action row. It fills the video's prompt, picture size and duration back into the creation panel; seed, quality, second pass and media stay as they are. - A new read-only library route returns the prompt saved in the video's folder; the button appears only when a prompt was kept and differs from what the panel holds. - When the panel held something different, the button turns into "Filled in - Undo" for 10 seconds and Undo restores the previous prompt, size and duration; editing any of them first withdraws it.
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.
0.4.24: A person in a source video can be replaced with the character in a person image; reference videos can be used for depth only; the built-in AI sets up a white-model scene from one sentence; an earlier video's prompt and settings can be reused; decoding on cards with less video memory is quicker.