Nodes/ComfyUI DCI/Deb Packager
ComfyUI Node

Deb Packager

Turn your generated icons into an installable Linux package

By zccrs·Created about a year ago·Updated 11 months ago· 2
Deb Packager
    • Saved Deb Path
    • File List
    Local Directory
    File Filter*.dci
    Include Subdirectoriestrue
    Install Target Path/usr/share/dsg/icons
    Output Directory
    Base Deb Path
    Package Name
    Package Version
    Maintainer Name
    Maintainer Email
    Package Description
    Symlink CSV Path
    File Permissions644

    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 .deb is 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 apt happier.
    • Base Deb Path - inherit metadata from an existing package and auto-bump its version.
    • Symlink CSV Path - a CSV mapping source_name → target_names to 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 .deb files 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 Directory and File Filter.
    • Install Target Path matters. Packaging icons to /usr/share/dsg/icons when 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.

    CategoryDCI/Files

    Inputs (13)

    NameTypeDefaultDescription
    Local DirectorySTRING
    File FilterSTRING*.dci
    Include SubdirectoriesBOOLEANtrue
    Install Target PathSTRING/usr/share/dsg/icons
    Output DirectorySTRING
    Base Deb PathoptSTRING
    Package NameoptSTRING
    Package VersionoptSTRING
    Maintainer NameoptSTRING
    Maintainer EmailoptSTRING
    Package DescriptionoptSTRING
    Symlink CSV PathoptSTRING
    File PermissionsoptSTRING644

    Outputs (2)

    NameTypeDescription
    Saved Deb PathSTRING
    File ListSTRING_LIST