From a88e02b18576283b1ff25a4b564548c5dc42cbf6 Mon Sep 17 00:00:00 2001 From: comfyanonymous Date: Mon, 1 Jun 2026 13:05:25 -0400 Subject: [PATCH 1/3] ComfyUI v0.23.0 --- comfyui_version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/comfyui_version.py b/comfyui_version.py index 0bb0f780c5e7..19e8f8cfcb15 100644 --- a/comfyui_version.py +++ b/comfyui_version.py @@ -1,3 +1,3 @@ # This file is automatically generated by the build process when version is # updated in pyproject.toml. -__version__ = "0.22.0" +__version__ = "0.23.0" diff --git a/pyproject.toml b/pyproject.toml index 1e449b4a31f3..e118800e537d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ComfyUI" -version = "0.22.0" +version = "0.23.0" readme = "README.md" license = { file = "LICENSE" } requires-python = ">=3.10" From e785f0d212731e7f0f4b8c1638c58ab7df6f16b7 Mon Sep 17 00:00:00 2001 From: comfyanonymous <121283862+comfyanonymous@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:35:26 -0700 Subject: [PATCH 2/3] Some cast/dtype fixes for the birefnet and dino3 models. (#14217) --- comfy/background_removal/birefnet.py | 2 +- comfy/clip_vision.py | 5 ----- comfy/image_encoders/dino3.py | 4 +--- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/comfy/background_removal/birefnet.py b/comfy/background_removal/birefnet.py index df54b2b90e61..78a80246ea8c 100644 --- a/comfy/background_removal/birefnet.py +++ b/comfy/background_removal/birefnet.py @@ -105,7 +105,7 @@ def forward(self, x, mask=None): relative_position_bias = self.relative_position_bias_table[self.relative_position_index.long().view(-1)].view( self.window_size[0] * self.window_size[1], self.window_size[0] * self.window_size[1], -1) # Wh*Ww,Wh*Ww,nH - relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Ww + relative_position_bias = comfy.ops.cast_to_input(relative_position_bias.permute(2, 0, 1).contiguous(), attn) # nH, Wh*Ww, Wh*Ww attn = attn + relative_position_bias.unsqueeze(0) if mask is not None: diff --git a/comfy/clip_vision.py b/comfy/clip_vision.py index 337575191808..ce8924a11ef4 100644 --- a/comfy/clip_vision.py +++ b/comfy/clip_vision.py @@ -2,7 +2,6 @@ import os import json import logging -import torch import comfy.ops import comfy.model_patcher @@ -50,10 +49,6 @@ def __init__(self, json_config): self.load_device = comfy.model_management.text_encoder_device() offload_device = comfy.model_management.text_encoder_offload_device() self.dtype = comfy.model_management.text_encoder_dtype(self.load_device) - if self.model_type == "dinov3" and self.dtype == torch.float16: - # DINOv3's activations borderline fits fp16, preferring bf16 if available for better stability #TODO: further fp16 tests in practice - if comfy.model_management.should_use_bf16(self.load_device, prioritize_performance=True): - self.dtype = torch.bfloat16 self.model = model_class(config, self.dtype, offload_device, comfy.ops.manual_cast) self.model.eval() diff --git a/comfy/image_encoders/dino3.py b/comfy/image_encoders/dino3.py index 9bd42a66b2f7..014d1d29a66b 100644 --- a/comfy/image_encoders/dino3.py +++ b/comfy/image_encoders/dino3.py @@ -166,9 +166,8 @@ def __init__(self, hidden_size, num_register_tokens, num_channels, patch_size, d def forward(self, pixel_values, bool_masked_pos=None): batch_size = pixel_values.shape[0] - target_dtype = self.patch_embeddings.weight.dtype - patch_embeddings = self.patch_embeddings(pixel_values.to(dtype=target_dtype)) + patch_embeddings = self.patch_embeddings(pixel_values) patch_embeddings = patch_embeddings.flatten(2).transpose(1, 2) if bool_masked_pos is not None: @@ -244,7 +243,6 @@ def get_input_embeddings(self): return self.embeddings.patch_embeddings def forward(self, pixel_values, bool_masked_pos=None, **kwargs): - pixel_values = pixel_values.to(self.embeddings.patch_embeddings.weight.dtype) hidden_states = self.embeddings(pixel_values, bool_masked_pos=bool_masked_pos) position_embeddings = self.rope_embeddings(pixel_values) From 06b710aa685947f3be69da1c95216e63433f5cd1 Mon Sep 17 00:00:00 2001 From: comfyanonymous <121283862+comfyanonymous@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:35:52 -0700 Subject: [PATCH 3/3] Fix issue with triposplat preview and old offloading mode. (#14218) --- comfy_extras/nodes_triposplat.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/comfy_extras/nodes_triposplat.py b/comfy_extras/nodes_triposplat.py index 021b669fd54f..5646d611bd95 100644 --- a/comfy_extras/nodes_triposplat.py +++ b/comfy_extras/nodes_triposplat.py @@ -233,7 +233,9 @@ def callback(step, x0, x, total_steps): return try: if not state["loaded"]: - comfy.model_management.load_models_gpu([vae.patcher], memory_required=memory_required) + loaded_models = comfy.model_management.loaded_models(only_currently_used=True) + loaded_models.append(vae.patcher) + comfy.model_management.load_models_gpu(loaded_models, memory_required=memory_required) state["loaded"] = True img = decode_x0_to_image(vae, x0, cfg) if state["pbar"] is None: