mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-25 15:55:18 +00:00
Add type annotation UnetWrapperFunction (#3531)
* Add type annotation UnetWrapperFunction * nit * Add types.py
This commit is contained in:
parent
8508df2569
commit
7718ada4ed
@ -6,6 +6,8 @@ import uuid
|
|||||||
|
|
||||||
import comfy.utils
|
import comfy.utils
|
||||||
import comfy.model_management
|
import comfy.model_management
|
||||||
|
from comfy.types import UnetWrapperFunction
|
||||||
|
|
||||||
|
|
||||||
def apply_weight_decompose(dora_scale, weight):
|
def apply_weight_decompose(dora_scale, weight):
|
||||||
weight_norm = (
|
weight_norm = (
|
||||||
@ -117,7 +119,7 @@ class ModelPatcher:
|
|||||||
if disable_cfg1_optimization:
|
if disable_cfg1_optimization:
|
||||||
self.model_options["disable_cfg1_optimization"] = True
|
self.model_options["disable_cfg1_optimization"] = True
|
||||||
|
|
||||||
def set_model_unet_function_wrapper(self, unet_wrapper_function):
|
def set_model_unet_function_wrapper(self, unet_wrapper_function: UnetWrapperFunction):
|
||||||
self.model_options["model_function_wrapper"] = unet_wrapper_function
|
self.model_options["model_function_wrapper"] = unet_wrapper_function
|
||||||
|
|
||||||
def set_model_denoise_mask_function(self, denoise_mask_function):
|
def set_model_denoise_mask_function(self, denoise_mask_function):
|
||||||
|
32
comfy/types.py
Normal file
32
comfy/types.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import torch
|
||||||
|
from typing import Callable, Protocol, TypedDict, Optional, List
|
||||||
|
|
||||||
|
|
||||||
|
class UnetApplyFunction(Protocol):
|
||||||
|
"""Function signature protocol on comfy.model_base.BaseModel.apply_model"""
|
||||||
|
|
||||||
|
def __call__(self, x: torch.Tensor, t: torch.Tensor, **kwargs) -> torch.Tensor:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class UnetApplyConds(TypedDict):
|
||||||
|
"""Optional conditions for unet apply function."""
|
||||||
|
|
||||||
|
c_concat: Optional[torch.Tensor]
|
||||||
|
c_crossattn: Optional[torch.Tensor]
|
||||||
|
control: Optional[torch.Tensor]
|
||||||
|
transformer_options: Optional[dict]
|
||||||
|
|
||||||
|
|
||||||
|
class UnetParams(TypedDict):
|
||||||
|
# Tensor of shape [B, C, H, W]
|
||||||
|
input: torch.Tensor
|
||||||
|
# Tensor of shape [B]
|
||||||
|
timestep: torch.Tensor
|
||||||
|
c: UnetApplyConds
|
||||||
|
# List of [0, 1], [0], [1], ...
|
||||||
|
# 0 means unconditional, 1 means conditional
|
||||||
|
cond_or_uncond: List[int]
|
||||||
|
|
||||||
|
|
||||||
|
UnetWrapperFunction = Callable[[UnetApplyFunction, UnetParams], torch.Tensor]
|
Loading…
Reference in New Issue
Block a user