mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-12-17 18:13:01 +08:00
rm debug log
This commit is contained in:
parent
532eb01f0a
commit
2c5b9da6c4
@ -61,7 +61,6 @@ import math
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from comfy.model_patcher import ModelPatcher
|
from comfy.model_patcher import ModelPatcher
|
||||||
from comfy.model_management import get_free_memory
|
|
||||||
|
|
||||||
class ModelType(Enum):
|
class ModelType(Enum):
|
||||||
EPS = 1
|
EPS = 1
|
||||||
@ -305,15 +304,8 @@ class BaseModel(torch.nn.Module):
|
|||||||
if k.startswith(unet_prefix):
|
if k.startswith(unet_prefix):
|
||||||
to_load[k[len(unet_prefix):]] = sd.pop(k)
|
to_load[k[len(unet_prefix):]] = sd.pop(k)
|
||||||
|
|
||||||
free_cpu_memory = get_free_memory(torch.device("cpu"))
|
|
||||||
logging.debug(f"load model weights start, free cpu memory size {free_cpu_memory/(1024*1024*1024)} GB")
|
|
||||||
logging.debug(f"model destination device {next(self.diffusion_model.parameters()).device}")
|
|
||||||
to_load = self.model_config.process_unet_state_dict(to_load)
|
to_load = self.model_config.process_unet_state_dict(to_load)
|
||||||
logging.debug(f"load model {self.model_config} weights process end")
|
m, u = self.diffusion_model.load_state_dict(to_load, strict=False)
|
||||||
# replace tensor with mmap tensor by assign
|
|
||||||
m, u = self.diffusion_model.load_state_dict(to_load, strict=False, assign=True)
|
|
||||||
free_cpu_memory = get_free_memory(torch.device("cpu"))
|
|
||||||
logging.debug(f"load model {self.model_config} weights end, free cpu memory size {free_cpu_memory/(1024*1024*1024)} GB")
|
|
||||||
if len(m) > 0:
|
if len(m) > 0:
|
||||||
logging.warning("unet missing: {}".format(m))
|
logging.warning("unet missing: {}".format(m))
|
||||||
|
|
||||||
|
|||||||
@ -533,18 +533,11 @@ class LoadedModel:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def model_unload(self, memory_to_free=None, unpatch_weights=True):
|
def model_unload(self, memory_to_free=None, unpatch_weights=True):
|
||||||
logging.debug(f"model_unload: {self.model.model.__class__.__name__}")
|
|
||||||
logging.debug(f"memory_to_free: {memory_to_free/(1024*1024*1024)} GB")
|
|
||||||
logging.debug(f"unpatch_weights: {unpatch_weights}")
|
|
||||||
logging.debug(f"loaded_size: {self.model.loaded_size()/(1024*1024*1024)} GB")
|
|
||||||
logging.debug(f"offload_device: {self.model.offload_device}")
|
|
||||||
|
|
||||||
if memory_to_free is None:
|
if memory_to_free is None:
|
||||||
# free the full model
|
# free the full model
|
||||||
memory_to_free = self.model.loaded_size()
|
memory_to_free = self.model.loaded_size()
|
||||||
|
|
||||||
available_memory = get_free_memory(self.model.offload_device)
|
available_memory = get_free_memory(self.model.offload_device)
|
||||||
logging.debug(f"before unload, available_memory of offload device {self.model.offload_device}: {available_memory/(1024*1024*1024)} GB")
|
|
||||||
|
|
||||||
mmap_mem_threshold = get_mmap_mem_threshold_gb() * 1024 * 1024 * 1024 # this is reserved memory for other system usage
|
mmap_mem_threshold = get_mmap_mem_threshold_gb() * 1024 * 1024 * 1024 # this is reserved memory for other system usage
|
||||||
if memory_to_free > available_memory - mmap_mem_threshold or memory_to_free < self.model.loaded_size():
|
if memory_to_free > available_memory - mmap_mem_threshold or memory_to_free < self.model.loaded_size():
|
||||||
@ -553,22 +546,15 @@ class LoadedModel:
|
|||||||
partially_unload = False
|
partially_unload = False
|
||||||
|
|
||||||
if partially_unload:
|
if partially_unload:
|
||||||
logging.debug("Do partially unload")
|
|
||||||
freed = self.model.partially_unload(self.model.offload_device, memory_to_free)
|
freed = self.model.partially_unload(self.model.offload_device, memory_to_free)
|
||||||
logging.debug(f"partially_unload freed vram: {freed/(1024*1024*1024)} GB")
|
|
||||||
if freed < memory_to_free:
|
if freed < memory_to_free:
|
||||||
logging.warning(f"Partially unload not enough memory, freed {freed/(1024*1024*1024)} GB, memory_to_free {memory_to_free/(1024*1024*1024)} GB")
|
logging.debug(f"Partially unload not enough memory, freed {freed/(1024*1024*1024)} GB, memory_to_free {memory_to_free/(1024*1024*1024)} GB")
|
||||||
else:
|
else:
|
||||||
logging.debug("Do full unload")
|
|
||||||
self.model.detach(unpatch_weights)
|
self.model.detach(unpatch_weights)
|
||||||
logging.debug("Do full unload done")
|
|
||||||
self.model_finalizer.detach()
|
self.model_finalizer.detach()
|
||||||
self.model_finalizer = None
|
self.model_finalizer = None
|
||||||
self.real_model = None
|
self.real_model = None
|
||||||
|
|
||||||
available_memory = get_free_memory(self.model.offload_device)
|
|
||||||
logging.debug(f"after unload, available_memory of offload device {self.model.offload_device}: {available_memory/(1024*1024*1024)} GB")
|
|
||||||
|
|
||||||
if partially_unload:
|
if partially_unload:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
@ -622,7 +608,6 @@ def minimum_inference_memory():
|
|||||||
return (1024 * 1024 * 1024) * 0.8 + extra_reserved_memory()
|
return (1024 * 1024 * 1024) * 0.8 + extra_reserved_memory()
|
||||||
|
|
||||||
def free_memory(memory_required, device, keep_loaded=[]):
|
def free_memory(memory_required, device, keep_loaded=[]):
|
||||||
logging.debug("start to free mem")
|
|
||||||
cleanup_models_gc()
|
cleanup_models_gc()
|
||||||
unloaded_model = []
|
unloaded_model = []
|
||||||
can_unload = []
|
can_unload = []
|
||||||
@ -660,7 +645,6 @@ def free_memory(memory_required, device, keep_loaded=[]):
|
|||||||
return unloaded_models
|
return unloaded_models
|
||||||
|
|
||||||
def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimum_memory_required=None, force_full_load=False):
|
def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimum_memory_required=None, force_full_load=False):
|
||||||
logging.debug(f"start to load models")
|
|
||||||
cleanup_models_gc()
|
cleanup_models_gc()
|
||||||
global vram_state
|
global vram_state
|
||||||
|
|
||||||
@ -682,7 +666,6 @@ def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimu
|
|||||||
models_to_load = []
|
models_to_load = []
|
||||||
|
|
||||||
for x in models:
|
for x in models:
|
||||||
logging.debug(f"start loading model to vram: {x.model.__class__.__name__}")
|
|
||||||
loaded_model = LoadedModel(x)
|
loaded_model = LoadedModel(x)
|
||||||
try:
|
try:
|
||||||
loaded_model_index = current_loaded_models.index(loaded_model)
|
loaded_model_index = current_loaded_models.index(loaded_model)
|
||||||
|
|||||||
@ -1466,7 +1466,6 @@ def load_diffusion_model_state_dict(sd, model_options={}, metadata=None):
|
|||||||
logging.warning("{} {}".format(diffusers_keys[k], k))
|
logging.warning("{} {}".format(diffusers_keys[k], k))
|
||||||
|
|
||||||
offload_device = model_management.unet_offload_device()
|
offload_device = model_management.unet_offload_device()
|
||||||
logging.debug(f"loader load model to offload device: {offload_device}")
|
|
||||||
unet_weight_dtype = list(model_config.supported_inference_dtypes)
|
unet_weight_dtype = list(model_config.supported_inference_dtypes)
|
||||||
if model_config.quant_config is not None:
|
if model_config.quant_config is not None:
|
||||||
weight_dtype = None
|
weight_dtype = None
|
||||||
|
|||||||
@ -61,8 +61,6 @@ def load_torch_file(ckpt, safe_load=False, device=None, return_metadata=False):
|
|||||||
metadata = None
|
metadata = None
|
||||||
if ckpt.lower().endswith(".safetensors") or ckpt.lower().endswith(".sft"):
|
if ckpt.lower().endswith(".safetensors") or ckpt.lower().endswith(".sft"):
|
||||||
try:
|
try:
|
||||||
if not DISABLE_MMAP:
|
|
||||||
logging.debug(f"load_torch_file of safetensors into mmap True")
|
|
||||||
with safetensors.safe_open(ckpt, framework="pt", device=device.type) as f:
|
with safetensors.safe_open(ckpt, framework="pt", device=device.type) as f:
|
||||||
sd = {}
|
sd = {}
|
||||||
for k in f.keys():
|
for k in f.keys():
|
||||||
@ -83,7 +81,6 @@ def load_torch_file(ckpt, safe_load=False, device=None, return_metadata=False):
|
|||||||
else:
|
else:
|
||||||
torch_args = {}
|
torch_args = {}
|
||||||
if MMAP_TORCH_FILES:
|
if MMAP_TORCH_FILES:
|
||||||
logging.debug(f"load_torch_file of torch state dict into mmap True")
|
|
||||||
torch_args["mmap"] = True
|
torch_args["mmap"] = True
|
||||||
|
|
||||||
if safe_load or ALWAYS_SAFE_LOAD:
|
if safe_load or ALWAYS_SAFE_LOAD:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user