π§ OmniSVG Model Loader
The 17GB gatekeeper β or why your dropdown only says 'Download Required'
- omnisvg_model
Every pack has the one node that's really doing the heavy lifting, and in ComfyUI-OmniSVG it's this one. The loader scans your disk for an OmniSVG installation, loads it into VRAM, and hands you an omnisvg_model that the Text-to-SVG and Image-to-SVG nodes feed on. Nothing else in the pack runs without it - except the two lightweight utility nodes (SVG to Image, SVG Saver), which never touch the model. It's also where the most common "why doesn't this work" moment happens, so read this before anything else.
How it works
When the node is created, it scans ComfyUI/models/omnisvg/ for folders containing config.yaml and pytorch_model.bin, plus a hardcoded fallback at /mnt/storage/OmniSVG-3B (leftover from the author's own setup - harmless if it doesn't exist). Pick a model name and it builds an OmniSVGModelBundle:
- loads the model's
config.yaml - pulls the Qwen2.5-VL-3B-Instruct tokenizer and processor from Hugging Face - an extra multi-gigabyte download that happens silently on your first run
- loads the DeepSVG sketch decoder weights from
pytorch_model.bin - moves everything to CUDA in eval mode
That's the whole thing loaded and pinned in memory. There's an unload_models method in the code, but nothing in the UI calls it - freeing the memory means restarting ComfyUI.
Inputs
- model_name - a dropdown built from whatever the scan found. Here's the trap: with no model downloaded, the list contains exactly one option, "Download Required", and running the graph raises an error telling you where to put the files. It doesn't auto-download; it just points.
Outputs
- omnisvg_model (OMNISVG_MODEL) - wire it into OmniSVG Text to SVG and/or OmniSVG Image to SVG. One loader can feed both.
Getting the model
cd ComfyUI
huggingface-cli download OmniSVG/OmniSVG --local-dir models/omnisvg/OmniSVG-3B
Then restart ComfyUI. The dropdown is built when the node is created, so dropping files in while the app is open won't refresh it.
Where people get burned
- It specifically wants
pytorch_model.bin. When the weights dropped in mid-2025, people quickly converted them to safetensors - but this loader doestorch.load()onpytorch_model.binand throws "pytorch_model.bin not found" if that file is missing. Keep the original.binin the folder. - VRAM is real. The README says 17GB+ for optimal performance, and it means it. Under that, expect CUDA out-of-memory errors at generation time.
- Heavy dependencies.
requirements.txtpullstransformers,qwen-vl-utils,accelerate, andcairosvg- big installs, and they share the same Python environment as every other custom node you own. If another pack pins a conflictingtransformersversion, that's your import error. - The pack itself is young. Single commit, placeholder URLs still in the README's quick-start - a thin wrapper around the upstream OmniSVG repo. It works, but don't expect a mature update cadence.
Install
ComfyUI Manager (search "OmniSVG"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/A043-studios/ComfyUI-OmniSVG
cd ComfyUI-OmniSVG
python install.py
Then do the model download above and restart. Once the model's in place and the loader shows a real name instead of "Download Required", you're past the hard part.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | Download Required | 1 options: Download Required |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| omnisvg_model | OMNISVG_MODEL | β |