Deb Packager
Turn your generated icons into an installable Linux package
- Saved Deb Path
- File List
This is the node that makes the whole pack a product rather than a toy. Deb Packager takes a folder of icon files and wraps them into a standard Debian package (.deb) that dpkg and apt can install. You generate icons in ComfyUI, assemble them into DCI files, and end with something you can sudo dpkg -i onto a real Linux desktop. That's a satisfying arc.
How it works: it scans a local directory for files matching a glob, stages them under an install target path, generates the package metadata (control file, md5sums, correct directory entries), and assembles the final .deb with a pure-Python ar implementation - no dpkg-deb on the system required. It even supports a Base Deb Path: point it at an existing .deb and it inherits that package's control metadata, auto-incrementing the version. Symlinks are handled too - a CSV of alias mappings becomes real symlinks inside the package.
Required inputs:
- Local Directory - where your icons live.
- File Filter - default
*.dci; glob with comma/semicolon multi-pattern support. - Include Subdirectories - default on; recursive scan.
- Install Target Path - default
/usr/share/dsg/icons. This is where the files land in the package - i.e., where a desktop icon engine looks for them. - Output Directory - where the
.debis written; blank falls back to ComfyUI's output folder.
Optional inputs worth knowing:
- Package Name / Version / Maintainer Name / Maintainer Email / Package Description - the control metadata. All blank is allowed (sensible defaults get filled in), but a real maintainer field makes
apthappier. - Base Deb Path - inherit metadata from an existing package and auto-bump its version.
- Symlink CSV Path - a CSV mapping
source_name → target_namesto create alias symlinks. - File Permissions - default
644, octal string.
Outputs: Saved Deb Path (the full path to the generated package) and File List (every path packed, useful for verification).
Installing
Part of comfyui-dci - Pillow and numpy, nothing exotic:
cd ComfyUI/custom_nodes
git clone https://github.com/zccrs/comfyui-dci
cd comfyui-dci && pip install -r requirements.txt
Or ComfyUI Manager → "DCI Image Export Extension" → restart. Under DCI / Files.
Where people get burned - read this one
- Old packages may be invalid. The repo's own fix notes document a real bug where generated
.debfiles were rejected by dpkg with a format-version error, and a January 2025 symlink-position fix. If you generated packages before those fixes, regenerate them - the current code produces dpkg-clean output, but stale archives from older versions won't install. That's the single biggest foot-gun in this pack. - Empty scans "warn" rather than fail. If the filter matches nothing, you get a warning string as the path and an empty list - check your
Local DirectoryandFile Filter. Install Target Pathmatters. Packaging icons to/usr/share/dsg/iconswhen your desktop looks in a different DSG-compliant location means an "installed" package that does nothing visible. Verify where your icon engine expects icons.
For packaging icon themes into something a package manager can actually deliver to a user's desktop, this is the payoff node of the entire pack. The rest of comfyui-dci makes the icons; this ships them.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| Local Directory | STRING | — | |
| File Filter | STRING | *.dci | — |
| Include Subdirectories | BOOLEAN | true | — |
| Install Target Path | STRING | /usr/share/dsg/icons | — |
| Output Directory | STRING | — | |
| Base Deb Pathopt | STRING | — | |
| Package Nameopt | STRING | — | |
| Package Versionopt | STRING | — | |
| Maintainer Nameopt | STRING | — | |
| Maintainer Emailopt | STRING | — | |
| Package Descriptionopt | STRING | — | |
| Symlink CSV Pathopt | STRING | — | |
| File Permissionsopt | STRING | 644 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| Saved Deb Path | STRING | — |
| File List | STRING_LIST | — |