mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-12-16 01:37:04 +08:00
* Add basic support for videos as types 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). * Add optimization to avoid parsing entire video * Improve type declarations to reduce warnings * Make sure bytesIO objects can be read many times * Fix a potential issue when saving long videos * Fix incorrect type annotation * Add a `LoadVideo` node to make testing easier * Refactor new types out of the base comfy folder I've created a new `comfy_api` top-level module. The intention is that anything within this folder would be covered by semver-style versioning that would allow custom nodes to rely on them not introducing breaking changes. * Fix linting issue |
||
|---|---|---|
| .. | ||
| chainner_models | ||
| nodes_advanced_samplers.py | ||
| nodes_align_your_steps.py | ||
| nodes_attention_multiply.py | ||
| nodes_audio.py | ||
| nodes_canny.py | ||
| nodes_cfg.py | ||
| nodes_clip_sdxl.py | ||
| nodes_compositing.py | ||
| nodes_cond.py | ||
| nodes_controlnet.py | ||
| nodes_cosmos.py | ||
| nodes_custom_sampler.py | ||
| nodes_differential_diffusion.py | ||
| nodes_flux.py | ||
| nodes_freelunch.py | ||
| nodes_fresca.py | ||
| nodes_gits.py | ||
| nodes_hidream.py | ||
| nodes_hooks.py | ||
| nodes_hunyuan3d.py | ||
| nodes_hunyuan.py | ||
| nodes_hypernetwork.py | ||
| nodes_hypertile.py | ||
| nodes_images.py | ||
| nodes_ip2p.py | ||
| nodes_latent.py | ||
| nodes_load_3d.py | ||
| nodes_lora_extract.py | ||
| nodes_lotus.py | ||
| nodes_lt.py | ||
| nodes_lumina2.py | ||
| nodes_mahiro.py | ||
| nodes_mask.py | ||
| nodes_mochi.py | ||
| nodes_model_advanced.py | ||
| nodes_model_downscale.py | ||
| nodes_model_merging_model_specific.py | ||
| nodes_model_merging.py | ||
| nodes_morphology.py | ||
| nodes_optimalsteps.py | ||
| nodes_pag.py | ||
| nodes_perpneg.py | ||
| nodes_photomaker.py | ||
| nodes_pixart.py | ||
| nodes_post_processing.py | ||
| nodes_primitive.py | ||
| nodes_rebatch.py | ||
| nodes_sag.py | ||
| nodes_sd3.py | ||
| nodes_sdupscale.py | ||
| nodes_slg.py | ||
| nodes_stable3d.py | ||
| nodes_stable_cascade.py | ||
| nodes_tomesd.py | ||
| nodes_torch_compile.py | ||
| nodes_upscale_model.py | ||
| nodes_video_model.py | ||
| nodes_video.py | ||
| nodes_wan.py | ||
| nodes_webcam.py | ||