Extensions/Anymatix
ComfyUI Extension

Anymatix

The nodes Anymatix runs on: URL-addressed model loaders that download what a workflow asks for, plus CLIPSeg, masking, SAM2 coordinates and the save nodes Anymatix reads its results from.

By Anymatix·Created about a year ago·Updated 2 days ago· 0
Anymatix/anymatix-comfy-nodes
Nodes37
On cloudLocal install
CategoryAnymatix, Anymatix/audio
Stars0
Updated2 days ago

Nodes (37)

Anymatix Audio Duration

Read an audio clip's length off the file itself — stop guessing the duration in your workflow

Anymatix
Anymatix Audio Encoder Loader

Load the audio encoder behind Stable Audio and the new audio-generating models

Anymatix
Anymatix Chatterbox pack (from fetcher)

The adapter that feeds a downloaded voice pack into Chatterbox's dropdown without patching Chatterbox

Anymatix/audio
Anymatix Checkpoint Loader

Loads a checkpoint from a path, not a dropdown — the point is the workflow survives being shared

Anymatix
Anymatix CLIP Loader

Load a CLIP text encoder by path — with the built-in recipe list that tells you which one your model actually wants

Anymatix
Anymatix CLIP Loader 2

The exact same CLIP loader as the other one — here's why it exists and which to use

Anymatix
Anymatix CLIPSeg

Describe the thing you want masked and get the mask — 'the cat', 'the sky', done

Anymatix
Anymatix CLIP Vision Loader

Load the vision encoder your image-prompt and IP-Adapter workflows need — by path instead of dropdown

Anymatix
Anymatix ControlNet Loader

Load the ControlNet that keeps your pose, edges or depth honest — path-based, fetcher-friendly

Anymatix
Anymatix Dual CLIP Loader

The two-encoder loader Flux and SDXL actually need — path-based, with the pairing cheat-sheet built in

Anymatix
Anymatix DWPose Estimator

DWPose pose estimation that works fully offline — no surprise Hugging Face calls at run time

ControlNet Preprocessors/Faces and Poses Estimators
Anymatix Fetcher

The heart of the whole Anymatix pack — a node that turns a model URL into a local path

Anymatix
Anymatix Frame Count

Turn 'however long the clip is' into the exact frame count LTX will accept — 8n+1, no rejections

Anymatix
Anymatix HED Soft Edge

HED soft edges from a local checkpoint — the ControlNet preprocessor that never phones home

ControlNet Preprocessors/Line Extractors
Anymatix Image Save

The save node with a format for everything — PNG through OpenEXR, counters, and JSON sidecars

Anymatix
Anymatix Image To Video

Turn a batch of generated frames into an actual VIDEO object — with optional audio attached

Anymatix
Anymatix Latent Upscale Model Loader

Load the model that doubles your image in latent space before the detail pass

Anymatix
Anymatix Lora Loader

A LoRA loader that takes a path and remembers what it loaded — the fetcher's natural partner

loaders
Anymatix Lora Loader Model Only

The LoRA loader for when you don't want to touch the text encoder — and it takes a plain filename

Anymatix
Anymatix LTX Audio Text Encoder Loader

The text encoder behind LTX's audio-video sync — when your video needs to talk

Anymatix
Anymatix LTX Resize To Closest Valid Size

LTX won't run your canvas unless it's a multiple of 64 — this node fixes that for you

Anymatix
Anymatix LTXV Audio VAE Loader

The audio VAE loader for LTX workflows, with a URL instead of a dropdown

Anymatix
Anymatix Mask Image

Multiply by a mask

Anymatix
Anymatix Mask To SAM coord

Turn a mask into SAM click-points, so you can re-segment anything

Anymatix
Anymatix Model Patch Loader

Load a model patch by URL so it's there when the graph finally runs

Anymatix
Anymatix Quadruple CLIP Loader

Four text encoders in one CLIP object — ComfyUI stops at two, this doesn't

Anymatix
Anymatix SAM2 Loader

Load a SAM2 model from a URL — and you'll still need kijai's pack installed

Anymatix
Anymatix Save Animated MP4

Save a VIDEO object as a real MP4, with FFmpeg doing the heavy lifting

Anymatix
Anymatix Save Audio

Write an AUDIO object to a real file — mp3, wav, flac, or aac — without fighting codecs

Anymatix
Anymatix Save Json

Dump anything — tensors included — to a JSON file so something downstream can read it

Anymatix
Anymatix SeedVR2 Load DiT Model

This 'loader' doesn't load anything — it hands config to a SeedVR2 node that lives in the app

Anymatix
Anymatix SeedVR2 Load VAE Model

The SeedVR2 VAE half of the config pair — and why tiling is the knob you'll actually touch

Anymatix
Anymatix Triple CLIP Loader

Load three text encoders into one CLIP — for the models ComfyUI's dual loader can't reach

Anymatix
Anymatix UNET Loader

The UNET/diffusion-model loader that takes a URL instead of a dropdown

Anymatix
Anymatix Upscale Model Loader

The upscale-model loader that actually works with ImageUpscaleWithModel — URL-addressed edition

Anymatix
Anymatix VAE Loader

A VAE loader that takes a path, for workflows whose VAE hasn't downloaded yet

Anymatix
Anymatix Zoe Depth Anything

Fully-offline ZoeDepth depth maps — loads its weights from a local path, never the Hub

Anymatix
Readme

anymatix-comfy-nodes

The ComfyUI nodes Anymatix runs on.

Anymatix is a desktop application for generative image and video work. It drives a ComfyUI it manages itself, and the workflows it ships are addressed by URL rather than by filename: a card says this checkpoint, this LoRA, this VAE, and the node downloads it, verifies it, deduplicates it and hands the loader a path. This pack is that mechanism, plus the save and utility nodes those workflows need.

It is published so that a workflow exported from Anymatix opens in a stock ComfyUI. You do not need Anymatix to use it.

comfy node install anymatix-comfy-nodes

What it gives you

URL-addressed loaders. AnymatixFetcher takes a URL and a model type and returns the local path of the file, downloading it if it is not there. It resumes interrupted transfers, verifies size, computes a SHA-256 and reuses a model it already holds under another URL. Around it sit thin twins of ComfyUI's own loaders — checkpoint, LoRA, VAE, CLIP (single/dual/triple/quadruple), UNET, ControlNet, CLIP-Vision, upscale, model patch, audio encoder, LTX audio VAE and text encoder, latent upscale, SAM2 — which differ from the originals in one respect: they take a path instead of a dropdown, because the file may not have existed when the graph was written.

Save nodes. AnymatixImageSave, AnymatixSaveAnimatedMP4, AnymatixSaveAudio, AnymatixSaveJson — the results Anymatix reads back. AnymatixImageToVideo wraps a batch of frames plus optional audio as a VIDEO.

Utilities. AnymatixCLIPSeg (text-prompted segmentation), AnymatixMaskImage, AnymatixMaskToSAMcoord (a mask becomes SAM point prompts), AnymatixAudioDuration and AnymatixFrameCount (read a length off the file instead of asking for it), AnymatixLTXResizeToClosestValidSize.

Offline preprocessors. AnymatixDWPreprocessor, AnymatixHEDPreprocessor and AnymatixZoeDepthAnythingPreprocessor wrap the comfyui_controlnet_aux implementations but load their weights from a local path, so they work with HF_HUB_OFFLINE=1 and never call the Hub at run time.

Optional siblings

Some nodes wrap other packs. Each is checked when it is used, not at import, so a missing one costs you that node and nothing else:

| node | needs | |---|---| | AnymatixUNETLoaderGGUF | ComfyUI-GGUF | | AnymatixSAM2Loader | ComfyUI-segment-anything-2 | | AnymatixDWPreprocessor, AnymatixHEDPreprocessor | comfyui_controlnet_aux | | AnymatixChatterboxPackFromFetchedName | ComfyUI-Chatterbox |

HTTP routes this pack adds — read this before exposing ComfyUI

Installing this pack registers routes on your ComfyUI server. If you run ComfyUI with --listen, they are reachable by anything that can reach it, with no authentication, exactly like ComfyUI's own routes.

| route | what it does | |---|---| | GET /anymatix/log, /anymatix/resources, /anymatix/cache_size, /anymatix/storage_location, /anymatix/host_compute_metrics | read-only: logs, the model listing, cache size, CPU/GPU load | | GET /anymatix/{output,input,models}/… | serves files from those directories | | POST /anymatix/uploadAsset | writes a file named <sha256>.<ext> into the input dir or a model root; the hash is verified after the write and the name is validated before it | | POST /anymatix/expunge, /anymatix/release_results, /anymatix/cache_gc | delete cached results and input assets | | POST /anymatix/delete_resource | deletes a model file and its sidecar, by URL; restricted to ComfyUI's own model roots | | GET /anymatix/reboot | clears the queue and unloads models (?deep=true also reloads modules) | | POST /anymatix/heartbeat | see below |

The heartbeat cannot stop your machine. Anymatix uses it as a dead-man's switch: if the app stops pinging, the ComfyUI it started exits, and on a rented cloud GPU the pod is stopped so the billing ends. That only ever arms when ANYMATIX_HEARTBEAT_PORT is set, which Anymatix's own launcher does and nothing else does. On your ComfyUI the route answers {"armed": false} and arms nothing.

Cache expiry

Results under output/anymatix/results and hash-named files in input/ are swept on a timer, since both are recomputable. Every interval is an environment variable and 0 disables that half:

| variable | default | |---|---| | ANYMATIX_CACHE_GC_INTERVAL | 600 s (0 disables the sweep entirely) | | ANYMATIX_CACHE_TTL_RESULTS | 86400 s | | ANYMATIX_CACHE_TTL_INPUTS | 3600 s | | ANYMATIX_CACHE_MIN_AGE | 900 s |

Nothing referenced by the queue is ever swept, and serving a result renews it.

Downloads

Large files are fetched in parallel byte ranges when the server supports Range, and fall back to one stream when it does not — which is also the resume path. Bytes accumulate in <name>.part and the file is given its real name only when its size matches what the server declared, so a partial download can never be mistaken for a model. aiohttp and aiofiles make the parallel path available; without them the single stream is used.

We publish no speed numbers here. An earlier version of this file did, and nothing in the repository measured them.

Requirements

ComfyUI, and the packages in pyproject.toml. Everything else this code imports — torch, requests, transformers, spandrel — is already a ComfyUI dependency.

Third-party code

  • poly_decomp.py — the Bayazit convex decomposition, ported from wsilva32/poly_decomp.py; the mask-to-SAM approach follows Glidias/mask2sam.
  • AnymatixSAM2Loader is adapted from DownloadAndLoadSAM2Model in kijai/ComfyUI-segment-anything-2 (Apache 2.0).
  • AnymatixMaskImage reproduces matplotlib's Greys_r ramp from its own control points rather than importing matplotlib.

Licence

GNU General Public License v3.0 — see LICENSE.