Commit Graph

257 Commits (cc6f9500a1b972e9dca14e769f4b70a8927ffa43)

Author SHA1 Message Date
Daxiong (Lin) 6045c11d8b
chore: update workflow templates to v0.9.59 (#13507) 2026-04-21 20:45:25 -07:00
Comfy Org PR Bot 102773cd2c
Bump comfyui-frontend-package to 1.42.14 (#13493) 2026-04-21 11:35:45 -07:00
Comfy Org PR Bot e75f775ae8
Bump comfyui-frontend-package to 1.42.12 (#13489) 2026-04-21 00:43:11 -07:00
Octopus 543e9fba64
fix: pin SQLAlchemy>=2.0 in requirements.txt (fixes #13036) (#13316) 2026-04-20 15:30:23 -07:00
Daxiong (Lin) f8d92cf313
chore: update workflow templates to v0.9.57 (#13455) 2026-04-17 12:16:39 -05:00
Daxiong (Lin) 7ce3f64c78
Update workflow templates to v0.9.54 (#13412) 2026-04-14 17:35:27 -07:00
Comfy Org PR Bot c16db7fd69
Bump comfyui-frontend-package to 1.42.11 (#13398) 2026-04-14 14:13:35 -04:00
Daxiong (Lin) fed4ac031a
chore: update workflow templates to v0.9.50 (#13399) 2026-04-14 14:24:37 +08:00
Daxiong (Lin) 559501e4b8
chore: update workflow templates to v0.9.47 (#13385) 2026-04-12 23:19:09 -07:00
Daxiong (Lin) b920bdd77d
chore: update workflow templates to v0.9.45 (#13353) 2026-04-10 15:50:40 -04:00
comfyanonymous 3d4aca8084
Bump comfyui-frontend-package version to 1.42.10 (#13346) 2026-04-09 21:56:49 -04:00
Daxiong (Lin) 8cbbea8f6a
chore: update workflow templates to v0.9.44 (#13290) 2026-04-05 13:31:11 +08:00
Daxiong (Lin) eb0686bbb6
Update template to 0.9.43 (#13265) 2026-04-02 23:52:10 -07:00
Daxiong (Lin) 7d437687c2
chore: update workflow templates to v0.9.41 (#13242) 2026-03-31 20:23:25 -07:00
ComfyUI Wiki 85b7495135
chore: update workflow templates to v0.9.39 (#13196) 2026-03-27 10:13:02 -07:00
ComfyUI Wiki 359559c913
chore: update workflow templates to v0.9.38 (#13176) 2026-03-26 12:07:38 -07:00
comfyanonymous c2862b24af
Update templates package version. (#13141) 2026-03-24 17:36:12 -04:00
comfyanonymous 2d4970ff67
Update frontend version to 1.42.8 (#13126) 2026-03-23 20:43:41 -04:00
Alexander Brown b67ed2a45f
Update comfyui-frontend-package version to 1.41.21 (#13035) 2026-03-18 16:36:39 -04:00
ComfyUI Wiki 379fbd1a82
chore: update workflow templates to v0.9.26 (#13012) 2026-03-16 21:53:18 -07:00
comfyanonymous 4941cd046e
Update comfyui-frontend-package to version 1.41.20 (#12954) 2026-03-14 19:53:31 -04:00
rattus 4c4be1bba5
comfy-aimdo 0.2.12 (#12941)
comfy-aimdo 0.2.12 fixes support for non-ASCII filepaths in the new
mmap helper.
2026-03-14 07:53:00 -07:00
rattus 7810f49702
comfy aimdo 0.2.11 + Improved RAM Pressure release strategies - Windows speedups (#12925)
* Implement seek and read for pins

Source pins from an mmap is pad because its its a CPU->CPU copy that
attempts to fully buffer the same data twice. Instead, use seek and
read which avoids the mmap buffering while usually being a faster
read in the first place (avoiding mmap faulting etc).

* pinned_memory: Use Aimdo pinner

The aimdo pinner bypasses pytorches CPU allocator which can leak
windows commit charge.

* ops: bypass init() of weight for embedding layer

This similarly consumes large commit charge especially for TEs. It can
cause a permanement leaked commit charge which can destabilize on
systems close to the commit ceiling and generally confuses the RAM
stats.

* model_patcher: implement pinned memory counter

Implement a pinned memory counter for better accounting of what volume
of memory pins have.

* implement touch accounting

Implement accounting of touching mmapped tensors.

* mm+mp: add residency mmap getter

* utils: use the aimdo mmap to load sft files

* model_management: Implement tigher RAM pressure semantics

Implement a pressure release on entire MMAPs as windows does perform
faster when mmaps are unloaded and model loads free ramp into fully
unallocated RAM.

Make the concept of freeing for pins a completely separate concept.
Now that pins are loadable directly from original file and don' touch
the mmap, tighten the freeing budget to just the current loaded model
- what you have left over. This still over-frees pins, but its a lot
better than before.

So after the pins are freed with that algorithm, bounce entire MMAPs
to free RAM based on what the model needs, deducting off any known
resident-in-mmap tensors to the free quota to keep it as tight as
possible.

* comfy-aimdo 0.2.11

Comfy aimdo 0.2.11

* mm: Implement file_slice path for QT

* ruff

* ops: put meta-tensors in place to allow custom nodes to check geo
2026-03-13 22:18:08 -04:00
Comfy Org PR Bot 6cd35a0c5f
Bump comfyui-frontend-package to 1.41.19 (#12923) 2026-03-13 14:31:25 -04:00
Christian Byrne 8d9faaa181
Update requirements.txt (#12910) 2026-03-12 18:14:59 -04:00
ComfyUI Wiki 712411d539
chore: update workflow templates to v0.9.21 (#12908) 2026-03-12 12:16:54 -07:00
comfyanonymous 8f9ea49571
Bump comfy-kitchen version to 0.2.8 (#12895) 2026-03-12 00:17:31 -04:00
Comfy Org PR Bot 9ce4c3dd87
Bump comfyui-frontend-package to 1.41.16 (#12894)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-11 18:16:30 -07:00
Comfy Org PR Bot abc87d3669
Bump comfyui-frontend-package to 1.41.15 (#12891)
---------

Co-authored-by: Alexander Brown <DrJKL0424@gmail.com>
2026-03-11 17:04:51 -04:00
rattus 980621da83
comfy-aimdo 0.2.10 (#12890)
Comfy Aimdo 0.2.10 fixes the aimdo allocator hook for legacy cudaMalloc
consumers. Some consumers of cudaMalloc assume implicit synchronization
built in closed source logic inside cuda. This is preserved by passing
through to cuda as-is and accouting after the fact as opposed to
integrating these hooks with Aimdos VMA based allocator.
2026-03-11 08:49:38 -07:00
ComfyUI Wiki 814dab9f46
Update workflow templates to v0.9.18 (#12857) 2026-03-09 22:03:22 -04:00
rattus 7723f20bbe
comfy-aimdo 0.2.9 (#12840)
Comfy-aimdo 0.2.9 fixes a context issue where if a non-main thread does
a spurious garbage collection, cudaFrees are attempted with bad
context.

Some new APIs for displaying aimdo stats in UI widgets are also added.
These are purely additive getters that dont touch cuda APIs.
2026-03-08 16:17:40 -04:00
Luke Mino-Altherr 29b24cb517
refactor(assets): modular architecture + async two-phase scanner & background seeder (#12621) 2026-03-07 20:37:25 -05:00
ComfyUI Wiki 6ac8152fc8
chore: update workflow templates to v0.9.11 (#12821) 2026-03-06 23:54:09 -08:00
comfyanonymous afc00f0055
Fix requirements version. (#12817) 2026-03-06 20:10:53 -05:00
Dante e544c65db9
feat: add Math Expression node with simpleeval evaluation (#12687)
* feat: add EagerEval dataclass for frontend-side node evaluation

Add EagerEval to the V3 API schema, enabling nodes to declare
frontend-evaluated JSONata expressions. The frontend uses this to
display computation results as badges without a backend round-trip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add Math Expression node with JSONata evaluation

Add ComfyMathExpression node that evaluates JSONata expressions against
dynamically-grown numeric inputs using Autogrow + MatchType. Sends
input context via ui output so the frontend can re-evaluate when
the expression changes without a backend round-trip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: register nodes_math.py in extras_files loader list

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address CodeRabbit review feedback

- Harden EagerEval.validate with type checks and strip() for empty strings
- Add _positional_alias for spreadsheet-style names beyond z (aa, ab...)
- Validate JSONata result is numeric before returning
- Add jsonata to requirements.txt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: remove EagerEval, scope PR to math node only

Remove EagerEval dataclass from _io.py and eager_eval usage from
nodes_math.py. Eager execution will be designed as a general-purpose
system in a separate effort.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use TemplateNames, cap inputs at 26, improve error message

Address Kosinkadink review feedback:
- Switch from Autogrow.TemplatePrefix to Autogrow.TemplateNames so input
  slots are named a-z, matching expression variables directly
- Cap max inputs at 26 (a-z) instead of 100
- Simplify execute() by removing dual-mapping hack
- Include expression and result value in error message

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: add unit tests for Math Expression node

Add tests for _positional_alias (a-z mapping) and execute() covering
arithmetic operations, float inputs, $sum(values), and error cases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: replace jsonata with simpleeval for math evaluation

jsonata PyPI package has critical issues: no Python 3.12/3.13 wheels,
no ARM/Apple Silicon wheels, abandoned (last commit 2023), C extension.

Replace with simpleeval (pure Python, 3.4M downloads/month, MIT,
AST-based security). Add math module functions (sqrt, ceil, floor,
log, sin, cos, tan) and variadic sum() supporting both sum(values)
and sum(a, b, c). Pin version to >=1.0,<2.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: update tests for simpleeval migration

Update JSONata syntax to Python syntax ($sum -> sum, $string -> str),
add tests for math functions (sqrt, ceil, floor, sin, log10) and
variadic sum(a, b, c).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: replace MatchType with MultiType inputs and dual FLOAT/INT outputs

Allow mixing INT and FLOAT connections on the same node by switching
from MatchType (which forces all inputs to the same type) to MultiType.
Output both FLOAT and INT so users can pick the type they need.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: update tests for mixed INT/FLOAT inputs and dual outputs

Add assertions for both FLOAT (result[0]) and INT (result[1]) outputs.
Add test_mixed_int_float_inputs and test_mixed_resolution_scale to
verify the primary use case of multiplying resolutions by a float factor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: make expression input multiline and validate empty expression

- Add multiline=True to expression input for better UX with longer expressions
- Add empty expression validation with clear "Expression cannot be empty." message

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: add tests for empty expression validation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address review feedback — safe pow, isfinite guard, test coverage

- Wrap pow() with _safe_pow to prevent DoS via huge exponents
  (pow() bypasses simpleeval's safe_power guard on **)
- Add math.isfinite() check to catch inf/nan before int() conversion
- Add int/float converters to MATH_FUNCTIONS for explicit casting
- Add "calculator" search alias
- Replace _positional_alias helper with string.ascii_lowercase
- Narrow test assertions and add error path + function coverage tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update requirements.txt

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com>
Co-authored-by: Christian Byrne <abolkonsky.rem@gmail.com>
2026-03-05 18:51:28 -08:00
ComfyUI Wiki 5073da57ad
chore: update workflow templates to v0.9.10 (#12793) 2026-03-05 10:22:38 -08:00
rattus 6481569ad4
comfy-aimdo 0.2.7 (#12791)
Comfy-aimdo 0.2.7 fixes a crash when a spurious cudaAsyncFree comes in
and would cause an infinite stack overflow (via detours hooks).

A lock is also introduced on the link list holding the free sections
to avoid any possibility of threaded miscellaneous cuda allocations
being the root cause.
2026-03-05 09:04:24 -08:00
ComfyUI Wiki da29b797ce
Update workflow templates to v0.9.8 (#12788) 2026-03-05 07:23:23 -08:00
ComfyUI Wiki c8428541a6
chore: update workflow templates to v0.9.7 (#12780) 2026-03-05 03:58:25 -05:00
ComfyUI Wiki c5fe8ace68
chore: update workflow templates to v0.9.6 (#12778) 2026-03-05 02:37:35 -05:00
rattus 8811db52db
comfy-aimdo 0.2.6 (#12764)
Comfy Aimdo 0.2.6 fixes a GPU virtual address leak. This would manfiest
as an error after a number of workflow runs.
2026-03-04 12:12:37 -08:00
rattus 9b85cf9558
Comfy Aimdo 0.2.5 + Fix offload performance in DynamicVram (#12754)
* ops: dont unpin nothing

This was calling into aimdo in the none case (offloaded weight). Whats worse,
is aimdo syncs for unpinning an offloaded weight, as that is the corner case of
a weight getting evicted by its own use which does require a sync. But this
was heppening every offloaded weight causing slowdown.

* mp: fix get_free_memory policy

The ModelPatcherDynamic get_free_memory was deducting the model from
to try and estimate the conceptual free memory with doing any
offloading. This is kind of what the old memory_memory_required
was estimating in ModelPatcher load logic, however in practical
reality, between over-estimates and padding, the loader usually
underloaded models enough such that sampling could send CFG +/-
through together even when partially loaded.

So don't regress from the status quo and instead go all in on the
idea that offloading is less of an issue than debatching. Tell the
sampler it can use everything.
2026-03-04 07:49:13 -08:00
ComfyUI Wiki f1f8996e15
chore: update workflow templates to v0.9.5 (#12732) 2026-03-02 09:13:42 -08:00
rattus 7175c11a4e
comfy aimdo 0.2.4 (#12727)
Comfy Aimdo 0.2.4 fixes a VRAM buffer alignment issue that happens in
someworkflows where action is able to bypass the pytorch allocator
and go straight to the cuda hook.
2026-03-01 22:21:41 -08:00
rattus c0d472e5b9
comfy-aimdo 0.2.3 (#12720) 2026-03-01 11:14:56 -08:00
comfyanonymous 9d0e114ee3
PyOpenGL-accelerate is not necessary. (#12692) 2026-02-27 23:34:58 -05:00
ComfyUI Wiki 88d05fe483
chore: update workflow templates to v0.9.4 (#12664) 2026-02-26 15:52:45 -05:00
Christian Byrne eb8737d675
Update requirements.txt (#12642) 2026-02-25 18:30:48 -08:00
rattus 0467f690a8
comfy aimdo 0.2.2 (#12635)
Comfy Aimdo 0.2.2 moves the cuda allocator hook from the cudart API to
the cuda driver API on windows. This is needed to handle Windows+cu13
where cudart is statically linked.
2026-02-25 16:50:05 -05:00