mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2026-09-06 22:47:15 +08:00
This PR adds support for VIDEO as first-class types. In order to avoid unnecessary costs, VIDEO outputs must implement the `VideoInput` ABC, but their implementation details can vary. Included are two implementations of this type which can be returned by other nodes: * `VideoFromFile` - Created with either a path on disk (as a string) or a `io.BytesIO` containing the contents of a file in a supported format (like .mp4). This implementation won't actually load the video unless necessary. It will also avoid re-encoding when saving if possible. * `VideoFromComponents` - Created from an image tensor and an optional audio tensor. Currently, only h264 encoded videos in .mp4 containers are supported for saving, but the plan is to add additional encodings/containers in the near future (particularly .webm).
Comfy Typing
Type hinting for ComfyUI Node development
This module provides type hinting and concrete convenience types for node developers. If cloned to the custom_nodes directory of ComfyUI, types can be imported using:
from comfy.comfy_types import IO, ComfyNodeABC, CheckLazyMixin
class ExampleNode(ComfyNodeABC):
@classmethod
def INPUT_TYPES(s) -> InputTypeDict:
return {"required": {}}
Full example is in examples/example_nodes.py.
Types
A few primary types are documented below. More complete information is available via the docstrings on each type.
IO
A string enum of built-in and a few custom data types. Includes the following special types and their requisite plumbing:
ANY:"*"NUMBER:"FLOAT,INT"PRIMITIVE:"STRING,FLOAT,INT,BOOLEAN"
ComfyNodeABC
An abstract base class for nodes, offering type-hinting / autocomplete, and somewhat-alright docstrings.


