comfyanonymous
f266b8d352
Move LTXAV av embedding connectors to diffusion model. ( #12569 )
2026-02-21 22:29:58 -05:00
Christian Byrne
b6cb30bab5
chore: tune CodeRabbit config to limit review scope and disable for drafts ( #12567 )
...
* chore: tune CodeRabbit config to limit review scope and disable for drafts
- Add tone_instructions to focus only on newly introduced issues
- Add global path_instructions entry to ignore pre-existing issues in moved/reformatted code
- Disable draft PR reviews (drafts: false) and add WIP title keywords
- Disable ruff tool to prevent linter-based outside-diff-range comments
Addresses feedback from maintainers about CodeRabbit flagging pre-existing
issues in code that was merely moved or de-indented (e.g., PR #12557 ),
which can discourage community contributions and cause scope creep.
Amp-Thread-ID: https://ampcode.com/threads/T-019c82de-0481-7253-ad42-20cb595bb1ba
* chore: add 'DO NOT MERGE' to ignore_title_keywords
Amp-Thread-ID: https://ampcode.com/threads/T-019c82de-0481-7253-ad42-20cb595bb1ba
2026-02-21 18:32:15 -08:00
Christian Byrne
ee72752162
Add category to Normalized Attention Guidance node ( #12565 )
2026-02-21 19:51:21 -05:00
Alexander Brown
7591d781a7
fix: specify UTF-8 encoding when reading subgraph files ( #12563 )
...
On Windows, Python defaults to cp1252 encoding when no encoding is
specified. JSON files containing UTF-8 characters (e.g., non-ASCII
characters) cause UnicodeDecodeError when read with cp1252.
This fixes the error that occurs when loading blueprint subgraphs
on Windows systems.
https://claude.ai/code/session_014WHi3SL9Gzsi3U6kbSjbSb
Co-authored-by: Claude <noreply@anthropic.com >
2026-02-21 15:05:00 -08:00
rattus
0bfb936ab4
comfy-aimdo 0.2 - Improved pytorch allocator integration ( #12557 )
...
Integrate comfy-aimdo 0.2 which takes a different approach to
installing the memory allocator hook. Instead of using the complicated
and buggy pytorch MemPool+CudaPluggableAlloctor, cuda is directly hooked
making the process much more transparent to both comfy and pytorch. As
far as pytorch knows, aimdo doesnt exist anymore, and just operates
behind the scenes.
Remove all the mempool setup stuff for dynamic_vram and bump the
comfy-aimdo version. Remove the allocator object from memory_management
and demote its use as an enablment check to a boolean flag.
Comfy-aimdo 0.2 also support the pytorch cuda async allocator, so
remove the dynamic_vram based force disablement of cuda_malloc and
just go back to the old settings of allocators based on command line
input.
2026-02-21 10:52:57 -08:00
pythongosssss
602b2505a4
add support for pyopengl < 3.1.4 where the size parameter does not exist ( #12555 )
2026-02-21 06:14:57 -08:00
Christian Byrne
04a55d5019
fix: swap essentials_category from CLIPTextEncode to PrimitiveStringMultiline ( #12553 )
...
Remove CLIPTextEncode from Basics essentials category and add
PrimitiveStringMultiline (String Multiline) in its place.
Amp-Thread-ID: https://ampcode.com/threads/T-019c7efb-d916-7244-8c43-77b615ba0622
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-20 23:46:46 -08:00
Christian Byrne
5fb8f06495
feat: add essential subgraph blueprints ( #12552 )
...
Add 24 non-cloud essential blueprints from comfyui-wiki/Subgraph-Blueprints.
These cover common workflows: text/image/video generation, editing,
inpainting, outpainting, upscaling, depth maps, pose, captioning, and more.
Cloud-only blueprints (5) are excluded and will be added once
client-side distribution filtering lands.
Amp-Thread-ID: https://ampcode.com/threads/T-019c6f43-6212-7308-bea6-bfc35a486cbf
2026-02-20 23:40:13 -08:00
Terry Jia
5a182bfaf1
update glsl blueprint with gradient ( #12548 )
...
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-20 23:02:36 -08:00
Terry Jia
f394af8d0f
feat: add gradient-slider display mode for FLOAT inputs ( #12536 )
...
* feat: add gradient-slider display mode for FLOAT inputs
* fix: use precise type annotation list[list[float]] for gradient_stops
Amp-Thread-ID: https://ampcode.com/threads/T-019c7eea-be2b-72ce-a51f-838376f9b7a7
---------
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
Co-authored-by: bymyself <cbyrne@comfy.org >
2026-02-20 22:52:32 -08:00
Arthur R Longbottom
aeb5bdc8f6
Fix non-contiguous audio waveform crash in video save ( #12550 )
...
Fixes #12549
2026-02-20 23:37:55 -05:00
comfyanonymous
64953bda0a
Update nightly installation command for ROCm ( #12547 )
2026-02-20 21:32:05 -05:00
Christian Byrne
b254cecd03
chore: add CodeRabbit configuration for automated code review ( #12539 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019c7915-2abf-743c-9c74-b93d87d63055
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-20 00:25:54 -08:00
Alexander Piskun
1bb956fb66
[API Nodes] add ElevenLabs nodes ( #12207 )
...
* feat(api-nodes): add ElevenLabs API nodes
* added price badge for ElevenLabsInstantVoiceClone node
---------
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-19 22:12:28 -08:00
pythongosssss
96d6bd1a4a
Add GLSL shader node using PyOpenGL ( #12148 )
...
* adds support for executing simple glsl shaders
using moderngl package
* tidy
* Support multiple outputs
* Try fix build
* fix casing
* fix line endings
* convert to using PyOpenGL and glfw
* remove cpu support
* tidy
* add additional support for egl & osmesa backends
* fix ci
perf: only read required outputs
* add diagnostics, update mac initialization
* GLSL glueprints + node fixes (#12492 )
* Add image operation blueprints
* Add channels
* Add glow
* brightness/contrast
* hsb
* add glsl shader update system
* shader nit iteration
* add multipass for faster blur
* more fixes
* rebuild blueprints
* print -> logger
* Add edge preserving blur
* fix: move _initialized flag to end of GLContext.__init__
Prevents '_vao' attribute error when init fails partway through
and subsequent calls skip initialization due to early _initialized flag.
* update valid ranges
- threshold 0-100
- step 0+
* fix value ranges
* rebuild node to remove extra inputs
* Fix gamma step
* clamp saturation in colorize instead of wrapping
* Fix crash on 1x1 px images
* rework description
* remove unnecessary f
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
Co-authored-by: Hunter Senft-Grupp <hunter@comfy.org >
2026-02-19 23:22:13 -05:00
comfyanonymous
5f2117528a
Force min length 1 when tokenizing for text generation. ( #12538 )
2026-02-19 22:57:44 -05:00
comfyanonymous
0301ccf745
Small cleanup and try to get qwen 3 work with the text gen. ( #12537 )
2026-02-19 22:42:28 -05:00
Christian Byrne
4d172e9ad7
feat: mark 429 widgets as advanced for collapsible UI ( #12197 )
...
* feat: mark 429 widgets as advanced for collapsible UI
Mark widgets as advanced across core, comfy_extras, and comfy_api_nodes
to support the new collapsible advanced inputs section in the frontend.
Changes:
- 267 advanced markers in comfy_extras/
- 162 advanced markers in comfy_api_nodes/
- All files pass python3 -m py_compile verification
Widgets marked advanced (hidden by default):
- Scheduler internals: sigma_max, sigma_min, rho, mu, beta, alpha
- Sampler internals: eta, s_noise, order, rtol, atol, h_init, pcoeff, etc.
- Memory optimization: tile_size, overlap, temporal_size, temporal_overlap
- Pipeline controls: add_noise, start_at_step, end_at_step
- Timing controls: start_percent, end_percent
- Layer selection: stop_at_clip_layer, layers, block_number
- Video encoding: codec, crf, format
- Device/dtype: device, noise_device, dtype, weight_dtype
Widgets kept basic (always visible):
- Core params: strength, steps, cfg, denoise, seed, width, height
- Model selectors: ckpt_name, lora_name, vae_name, sampler_name
- Common controls: upscale_method, crop, batch_size, fps, opacity
Related: frontend PR #11939
Amp-Thread-ID: https://ampcode.com/threads/T-019c1734-6b61-702e-b333-f02c399963fc
* fix: remove advanced=True from DynamicCombo.Input (unsupported)
Amp-Thread-ID: https://ampcode.com/threads/T-019c1734-6b61-702e-b333-f02c399963fc
* fix: address review - un-mark model merge, video, image, and training node widgets as advanced
Per comfyanonymous review:
- Model merge arguments should not be advanced (all 14 model-specific merge classes)
- SaveAnimatedWEBP lossless/quality/method should not be advanced
- SaveWEBM/SaveVideo codec/crf/format should not be advanced
- TrainLoraNode options should not be advanced (7 inputs)
Amp-Thread-ID: https://ampcode.com/threads/T-019c322b-a3a8-71b7-9962-d44573ca6352
* fix: un-mark batch_size and webcam width/height as advanced (should stay basic)
Amp-Thread-ID: https://ampcode.com/threads/T-019c3236-1417-74aa-82a3-bcb365fbe9d1
---------
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-19 19:20:02 -08:00
Yourz
5632b2df9d
feat: add essentials_category ( #12357 )
...
* feat: add essentials_category field to node schema
Amp-Thread-ID: https://ampcode.com/threads/T-019c2b25-cd90-7218-9071-03cb46b351b3
* feat: add ESSENTIALS_CATEGORY to core nodes
Marked nodes:
- Basic: LoadImage, SaveImage, LoadVideo, SaveVideo, Load3D, CLIPTextEncode
- Image Tools: ImageScale, ImageInvert, ImageBatch, ImageCrop, ImageRotate, ImageBlur
- Image Tools/Preprocessing: Canny
- Image Generation: LoraLoader
- Audio: LoadAudio, SaveAudio
Amp-Thread-ID: https://ampcode.com/threads/T-019c2b25-cd90-7218-9071-03cb46b351b3
* Add ESSENTIALS_CATEGORY to more nodes
- SaveGLB (Basic)
- GetVideoComponents (Video Tools)
- TencentTextToModelNode, TencentImageToModelNode (3D)
- RecraftRemoveBackgroundNode (Image Tools)
- KlingLipSyncAudioToVideoNode (Video Generation)
- OpenAIChatNode (Text Generation)
- StabilityTextToAudio (Audio)
Amp-Thread-ID: https://ampcode.com/threads/T-019c2b69-81c1-71c3-8096-450a39e20910
* fix: correct essentials category for Canny node
Amp-Thread-ID: https://ampcode.com/threads/T-019c7303-ab53-7341-be76-a5da1f7a657e
Co-authored-by: Amp <amp@ampcode.com >
* refactor: replace essentials_category string literals with constants
Amp-Thread-ID: https://ampcode.com/threads/T-019c7303-ab53-7341-be76-a5da1f7a657e
Co-authored-by: Amp <amp@ampcode.com >
* refactor: revert constants, use string literals for essentials_category
Amp-Thread-ID: https://ampcode.com/threads/T-019c7303-ab53-7341-be76-a5da1f7a657e
Co-authored-by: Amp <amp@ampcode.com >
* fix: update basics
---------
Co-authored-by: bymyself <cbyrne@comfy.org >
Co-authored-by: Amp <amp@ampcode.com >
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-19 19:00:26 -08:00
Alexander Piskun
2687652530
fix(api-nodes): force Gemini to return uncompressed images ( #12516 )
2026-02-19 04:10:39 -08:00
Jukka Seppänen
6d11cc7354
feat: Add basic text generation support with native models, initially supporting Gemma3 ( #12392 )
2026-02-18 20:49:43 -05:00
comfyanonymous
f262444dd4
Add simple 3 band equalizer node for audio. ( #12519 )
2026-02-18 18:36:35 -05:00
Alexander Piskun
239ddd3327
fix(api-nodes): add price badge for Rodin Gen-2 node ( #12512 )
2026-02-17 23:15:23 -08:00
Hunter
83dd65f23a
fix: use glob matching for Gemini image MIME types ( #12511 )
...
gemini-3-pro-image-preview nondeterministically returns image/jpeg
instead of image/png. get_image_from_response() hardcoded
get_parts_by_type(response, "image/png"), silently dropping JPEG
responses and falling back to torch.zeros (all-black output).
Add _mime_matches() helper using fnmatch for glob-style MIME matching.
Change get_image_from_response() to request "image/*" so any image
format returned by the API is correctly captured.
2026-02-18 00:03:54 -05:00
Terry Jia
8ad38d2073
BBox widget ( #11594 )
...
* Boundingbox widget
* code improve
---------
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
2026-02-17 17:13:39 -08:00
Comfy Org PR Bot
6c14f129af
Bump comfyui-frontend-package to 1.39.14 ( #12494 )
...
* Bump comfyui-frontend-package to 1.39.13
* Update requirements.txt
---------
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
2026-02-17 13:41:34 -08:00
rattus
58dcc97dcf
ops: limit return of requants ( #12506 )
...
This check was far too broad and the dtype is not a reliable indicator
of wanting the requant (as QT returns the compute dtype as the dtype).
So explictly plumb whether fp8mm wants the requant or not.
2026-02-17 15:32:27 -05:00
comfyanonymous
19236edfa4
ComfyUI v0.14.1
v0.14.1
2026-02-17 13:28:06 -05:00
ComfyUI Wiki
73c3f86973
chore: update workflow templates to v0.8.43 ( #12507 )
2026-02-17 13:25:55 -05:00
Alexander Piskun
262abf437b
feat(api-nodes): add Recraft V4 nodes ( #12502 )
2026-02-17 13:25:44 -05:00
Alexander Piskun
5284e6bf69
feat(api-nodes): add "viduq3-turbo" model and Vidu3StartEnd node; fix the price badges ( #12482 )
2026-02-17 10:07:14 -08:00
chaObserv
44f8598521
Fix anima LLM adapter forward when manual cast ( #12504 )
2026-02-17 07:56:44 -08:00
comfyanonymous
fe52843fe5
ComfyUI v0.14.0
v0.14.0
2026-02-17 00:39:54 -05:00
comfyanonymous
c39653163d
Fix anima preprocess text embeds not using right inference dtype. ( #12501 )
2026-02-17 00:29:20 -05:00
comfyanonymous
18927538a1
Implement NAG on all the models based on the Flux code. ( #12500 )
...
Use the Normalized Attention Guidance node.
Flux, Flux2, Klein, Chroma, Chroma radiance, Hunyuan Video, etc..
2026-02-16 23:30:34 -05:00
Jedrzej Kosinski
8a6fbc2dc2
Allow control_after_generate to be type ControlAfterGenerate in v3 schema ( #12187 )
2026-02-16 22:20:21 -05:00
Alex Butler
b44fc4c589
add venv* to gitignore ( #12431 )
2026-02-16 22:16:19 -05:00
comfyanonymous
4454fab7f0
Remove code to support RMSNorm on old pytorch. ( #12499 )
2026-02-16 20:09:24 -05:00
ComfyUI Wiki
1978f59ffd
chore: update workflow templates to v0.8.42 ( #12491 )
2026-02-16 17:33:43 -05:00
comfyanonymous
88e6370527
Remove workaround for old pytorch. ( #12480 )
2026-02-15 20:43:53 -05:00
rattus
c0370044cd
MPDynamic: force load flux img_in weight (Fixes flux1 canny+depth lora crash) ( #12446 )
...
* lora: add weight shape calculations.
This lets the loader know if a lora will change the shape of a weight
so it can take appropriate action.
* MPDynamic: force load flux img_in weight
This weight is a bit special, in that the lora changes its geometry.
This is rather unique, not handled by existing estimate and doesn't
work for either offloading or dynamic_vram.
Fix for dynamic_vram as a special case. Ideally we can fully precalculate
these lora geometry changes at load time, but just get these models
working first.
2026-02-15 20:30:09 -05:00
rattus
ecd2a19661
Fix lora Extraction in offload conditions (+ dynamic_vram mode) ( #12479 )
...
* lora_extract: Add a trange
If you bite off more than your GPU can chew, this kinda just hangs.
Give a rough indication of progress counting the weights in a trange.
* lora_extract: Support on-the-fly patching
Use the on-the-fly approach from the regular model saving logic for
lora extraction too. Switch off force_cast_weights accordingly.
This gets extraction working in dynamic vram while also supporting
extraction on GPU offloaded.
2026-02-15 20:28:51 -05:00
Alexander Piskun
2c1d06a4e3
feat(api-nodes): add Bria RMBG nodes ( #12465 )
...
Co-authored-by: Jedrzej Kosinski <kosinkadink1@gmail.com >
2026-02-15 17:22:30 -08:00
Alexander Piskun
e2c71ceb00
feat(api-nodes-Tencent): add ModelTo3DUV, 3DTextureEdit, 3DParts nodes ( #12428 )
...
* feat(api-nodes-Tencent): add ModelTo3DUV, 3DTextureEdit, 3DParts nodes
* add image output to TencentModelTo3DUV node
* commented out two nodes
* added rate_limit check to other hunyuan3d nodes
2026-02-15 05:33:18 -08:00
Jedrzej Kosinski
596ed68691
Node Replacement API ( #12014 )
2026-02-15 02:12:30 -08:00
Alexander Piskun
ce4a1ab48d
chore(api-nodes): remove "gpt-4o" model ( #12467 )
2026-02-15 01:31:59 -08:00
comfyanonymous
e1ede29d82
Remove unsafe pickle loading code that was used on pytorch older than 2.4 ( #12473 )
...
ComfyUI hasn't started on pytorch 2.4 since last month.
2026-02-14 22:53:52 -05:00
Christian Byrne
df1e5e8514
Update frontend package to 1.38.14 ( #12469 )
2026-02-14 11:01:10 -08:00
krigeta
dc9822b7df
Add working Qwen 2512 ControlNet (Fun ControlNet) support ( #12359 )
2026-02-13 22:23:52 -05:00
comfyanonymous
712efb466b
Add left padding to LTXAV text encoder. ( #12456 )
2026-02-13 21:56:54 -05:00