Commit Graph

5797 Commits

Author SHA1 Message Date
Simon Pinfold
620a2a2489 chore: comment cleanup
Comment-Gate: 2 quarantined
2026-08-18 12:11:10 -07:00
Simon Pinfold
4f0622a276 Skip every write for a reference the reset cannot classify
A reference whose path is under no configured root is meant to be left alone
entirely, but needs_verify was decided before the classification guard, so it
was the one write of four that did not skip. Classification now comes first,
which also stops an out-of-view row being counted as changed or unchanged when
the reset did nothing with it either way.

Stamping the version was also the only database access in the runner that could
throw into its caller, so a transient lock while stamping aborted the seeder's
whole scan -- prune, fast phase and enrichment -- over a step whose own writes
were already committed. A failed stamp is now logged and leaves the step
pending, like every other failure there.
2026-08-18 12:11:09 -07:00
Simon Pinfold
0e6145904a Move each new test's claim into the assertion that checks it
A test docstring is read by someone already reading the code; an assertion
message is read by whoever's build just went red.
2026-08-18 11:35:53 -07:00
Simon Pinfold
73325a6c7f chore: comment cleanup
Comment-Gate: 6 quarantined
2026-08-18 11:35:21 -07:00
Simon Pinfold
e7eb7832b9 Do not stamp past references the reset could not classify
A reference whose file is on disk but whose path is under no configured root
was skipped so that a missing extra_model_paths.yaml could not strip tags off
assets that were merely out of view. But the step still finished successfully
and the version was still stamped, so restoring the root repaired nothing: the
step never ran again, and no other path re-derives an existing reference's
loader_path -- the scan only builds specs for paths it has not seen, and the
enricher computes a loader path without writing it back. The guard turned
destroying the data into never repairing it.

A step now reports whether it finished its work, and an unfinished one is not
stamped. A file that is simply gone still does not count as unfinished; that is
the scan's business under its own missing semantics.

Two ordering fixes in the scan around the same call:

The walk is handed the seeder's pause-aware checkpoint rather than a
cancel-only check. The seeder is paused while a prompt runs, so a check that
ignores pause left the reset statting the whole asset table during generation
while the status reported PAUSED.

Cancellation is checked immediately after the reset instead of after the prune.
Cancelling during a long reprojection otherwise fell through into the prune and
temp reconciliation, doing state-mutating work on a scan that had been told to
stop.
2026-08-18 11:34:34 -07:00
Simon Pinfold
eec285286e Let names and assertion messages carry what comments were carrying
Renames so the code states its own invariants: _SINGLETON_ROW_ID for the
one-row version table, get_tag_origins_by_reference so the inner mapping's
direction is in the name, _ROWS_PER_TRANSACTION for what the batch size bounds.

In the tests, a named helper replaces the explanation of why the engine is
shared across sessions, a named constant replaces the empty-string "any unique
hash" sentinel, and each test's claim moves into its assertion message, where
whoever's build just went red will actually read it.
2026-08-18 11:18:37 -07:00
Simon Pinfold
41f4210938 chore: comment cleanup
Comment-Gate: 44 quarantined
2026-08-18 11:17:00 -07:00
Simon Pinfold
e5aa56ef8b Rebuild stale asset records when the assets system is enabled
Alembic migrates the shape of the assets tables. Nothing migrated their
meaning, so a row could be structurally current and still hold values a
superseded rule computed, with no maintenance path that ever repaired it.

loader_path is the clearest case: the column was added to existing databases
with no backfill, and it is only ever written when a reference is first
created. The scan computes it for paths it has not seen before, so every
reference older than the column serves a null loader path forever -- while the
API tells clients to prefer loader_path over name.

A semantics version now records which generation of the derivation logic
produced a database's rows, tracked separately from the Alembic schema version
because the two move independently. Reset steps are numbered and applied in
order from the stored version, each stamped only once it finishes, so an
interrupted run resumes instead of half-applying.

The first step re-derives what a file's location implies -- loader_path, the
backend tags a path carries, and whether the file is there -- and leaves
everything else alone. It reads no file contents: verify_file_unchanged says
whether a row's recorded hash and size still describe the file, and a file that
has moved on is handed to the existing needs_verify path rather than re-read,
so an untouched model library costs one stat per file and no hashing. Manual
tags, user metadata, previews, deletions and job ids are never touched, nor are
references whose file is gone or whose path falls outside every root this
install currently knows about.

It runs at the start of a scan, before anything reads or extends those rows. A
database already at the current version costs one indexed row read.
2026-08-17 23:32:51 -07:00
Simon Pinfold
cc0fc21fea Keep temp-directory assets visible while their files exist (#15510)
* Keep temp-directory assets visible while their files exist

Assets written to the temp directory were flagged as missing and dropped
from GET /api/assets, even with the file sitting on disk. One list of
directories was answering two different questions -- where the scanner
looks for new files, and which files ComfyUI considers its own -- and
temp belongs only in the second, so every temp reference was disowned by
the prune that runs at startup and on POST /api/assets/prune.

Ownership now covers temp. Discovery still does not: the temp directory
is wiped before the scan runs, and assets written there are already
registered with a hash, mime type and dimensions, so walking it would
find nothing. Temp references are instead reconciled against the
filesystem directly, so a temp file that really is gone is still retired
rather than lingering as a broken entry.

get_prefixes_for_root becomes get_scan_prefixes_for_root so the two
questions are told apart by name rather than by comment.

* Cover the unhashed temp asset in the reconciliation tests

The existing temp tests all registered hashed assets, so they never
exercised the path an unhashed asset takes when its file is gone: the
orphaned rows are removed rather than kept as missing, exactly as under
any other root.
2026-08-17 22:57:55 -07:00
Silver
e5a38e3f7b feat(minimax): support prompt embeddings (#15697) 2026-08-18 00:25:38 -04:00
comfyanonymous
8e869efc87 Add support for taeh3. (#15695) 2026-08-17 23:20:28 -04:00
Barish Ozbay
ff6c8a8af1 Support per-token video and audio latent noise masks on MiniMax-H3 (#15375) 2026-08-17 23:18:18 -04:00
Daxiong (Lin)
c1739380c6 chore: update workflow templates to v0.11.43 (#15690) 2026-08-18 01:11:10 +08:00
Alexander Piskun
edd2ddb0e6 [Partner Nodes] feat(ByteDance): add 1080p resolution to Seedance 2.5 (#15684)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2026-08-17 20:59:40 +04:00
Alexander Piskun
7d39997e9f [Partner Nodes] feat(FishAudio): implement basic nodes (#15612)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2026-08-17 20:34:20 +04:00
Christian Byrne
0d80858061 Forward node class attributes into schema for dataset nodes (#15683) 2026-08-16 23:19:53 -07:00
Alexander Piskun
784462cbbd Remove kling-v2 from Kling Image Generation node (#15676) 2026-08-17 08:37:50 +03:00
comfyanonymous
0696f61dce Allow regular single image Empty Latent Image node to be used with H3. (#15677) 2026-08-16 21:34:39 -04:00
Alexander Piskun
b963f4ad21 [Partner Nodes] feat(x-comfy-credits): remove custom price extractor logic (#15655)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2026-08-16 15:30:58 +04:00
comfyanonymous
aaabf34258 Add MiniMax Music 3 to readme. (#15656) 2026-08-15 19:34:53 -04:00
Alexander Piskun
37ac9ff44f fix(tests): accept Python 3.14 math error messages (#15645)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2026-08-15 22:43:20 +04:00
Christian Byrne
a9ab2b62da [Partner Nodes] Stop adding an opaque alpha channel to API node images (#15369)
* Stop adding an opaque alpha channel to API node images

bytesio_to_image_tensor converted every downloaded image to RGBA, so nodes
whose API returns no transparency still emitted a 4 channel IMAGE. Keep the
alpha when the decoded image has one, stay RGB when it does not.

---------

Signed-off-by: bigcat88 <bigcat88@icloud.com>
Co-authored-by: bigcat88 <bigcat88@icloud.com>
2026-08-15 21:27:24 +04:00
Alexander Piskun
0f1fa67ad8 [Partner Nodes] feat(ByteDance): add Seedance 2.5 task_type for video extension (#15579)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2026-08-15 07:37:17 +03:00
comfyanonymous
a7365071e4 Enable dynamic vram by default on ROCm 7.14 and higher. (#15633) 2026-08-14 20:34:40 -04:00
Jukka Seppänen
55b6a9b11d Fix thinking handling (#15611) 2026-08-14 15:17:18 -04:00
Daxiong (Lin)
1c6d8d45b3 chore: update embedded docs to v0.5.10 (#15613) 2026-08-14 10:31:38 -07:00
Jukka Seppänen
7fe8a61385 Speedup Gemma4 text generation (CORE-371) (#15054) 2026-08-13 21:12:55 -04:00
Comfy Org PR Bot
a779de4d89 Bump comfyui-frontend-package to 1.49.6 (#15526)
Co-authored-by: Alexis Rolland <alexisrolland@hotmail.com>
2026-08-13 16:55:28 -07:00
Comfy Org PR Bot
8f37cf8c83 chore(openapi): sync shared API contract from cloud@94d0f1b (#15041)
Co-authored-by: mattmillerai <7741082+mattmillerai@users.noreply.github.com>
Co-authored-by: Matt Miller <mattmiller@comfy.org>
2026-08-13 13:22:05 -07:00
Barish Ozbay
e01fb4c56b Add MiniMaxH3AddGuide for anchoring image and audio guides at any frame (#15439) 2026-08-13 15:55:36 -04:00
comfyanonymous
03fa4e48ba Fix minimax music not working on non dynamic vram. (#15588) 2026-08-13 15:47:44 -04:00
comfyanonymous
2f35f4a081 ComfyUI v0.33.0 v0.33.0 2026-08-13 13:20:22 -04:00
rattus
ddbaa87528 minimax: early detect qkv vs q,k,v (#15581)
avoid a commit charge surge on non-dynamic windows due to double linear
creation.
2026-08-13 13:08:08 -04:00
Daxiong (Lin)
86aedfd943 chore: update workflow templates to v0.11.41 (#15578) 2026-08-13 12:23:02 -04:00
rattus
af3d2153a7 llama: fix non-local x path (#15580) 2026-08-13 12:21:26 -04:00
Alexander Piskun
e535e59e13 [Partner Nodes] feat(Bria): add GenFill, Eraser, Expand and Increase Resolution nodes (#15572)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2026-08-13 19:18:12 +03:00
rattus
efd4e951a0 Implement Minimax Music 3 + Core Support for Cuda Graphs (#15570) 2026-08-13 12:10:08 -04:00
Alexander Piskun
12666983cb [Partner Nodes] feat(MiniMax): add ContextIR and Regenerate nodes (#15471)
Signed-off-by: bigcat88 <bigcat88@icloud.com>
2026-08-13 17:46:08 +03:00
comfyanonymous
b323a345bb Update comfy-kitchen package version to 0.2.31 (#15564) 2026-08-12 23:01:31 -04:00
Alexander Brown
addd479729 Fix Generate Text ignoring thinking=false on Gemma4 E2B/E4B (#15278) 2026-08-12 22:44:14 -04:00
Alex Harper
2220d111c8 Query pytorch for aotriton support instead of listing its lib directory (#15412) 2026-08-12 21:40:11 -04:00
comfyanonymous
6b30dc2068 Don't disable dynamic vram on WSL. (#15562) 2026-08-12 21:39:00 -04:00
comfyanonymous
725e6ec606 Support anima tunes with extra blocks. (#15555) 2026-08-12 16:22:50 -04:00
comfyanonymous
bd34f338ac Fix float64 device in ltx diffusion decoder. (#15516) 2026-08-12 03:55:08 -04:00
Christian Byrne
26d7f85568 Fix PreviewAny escaping non-ASCII text in dict and list previews (#15513) 2026-08-11 23:42:35 -07:00
Robin Huang
945ffca32e chore: replace api nodes -> partner nodes in README (#15519) 2026-08-11 23:21:08 -07:00
Daxiong (Lin)
1108f2ac5e chore: update workflow templates to v0.11.40 (#15522) 2026-08-11 22:24:24 -07:00
Jukka Seppänen
27bca654eb Fix KSamplerAdvanced with add_noise disabled on nested latents (#15447) 2026-08-11 17:58:00 -04:00
comfyanonymous
c2bcbecd82 ComfyUI v0.32.0 v0.32.0 2026-08-11 16:46:59 -04:00
comfyanonymous
024cbc5fc1 Remove potentially problematic process_tokens method. (#15507) 2026-08-11 16:45:52 -04:00