Nodes/comfyui-game-assets-maker/Aseprite Animation Tags
ComfyUI Node

Aseprite Animation Tags

Frame tags without opening Aseprite

By quinteroac·Created 4 months ago·Updated 4 months ago· 20
Aseprite Animation Tags
    • animation_json
    • merged_aseprite_json
    • json_path
    • report
    frame_count4
    animation_count1
    animation_tags[{"name":"idle","from":0,"to":3,"direction":"forward","color":"#000000ff"}]
    save_jsontrue
    filename_prefixaseprite_animation_tags
    aseprite_json

    In Aseprite, animation tags are how you say "these frames, in this order, looping this way, are the idle animation." GameAssets_AsepriteAnimationTags writes exactly those tags - meta.frameTags in Aseprite's exported JSON - without you ever opening Aseprite. If you already have a sprite atlas and just need the animation metadata bolted on, this is the node.

    It's from comfyui-game-assets-maker, the pack quinteroac shared on r/comfyui as playground nodes for GPT Image 2 sprite generation. It overlaps with Aseprite Animation Atlas, but they're for different moments: that node builds frames and tags together; this one adds tags to an atlas you already have (or produces tags standalone).

    How it works

    You set the total frame_count and animation_count, and the frontend replaces the raw JSON with one editable block per animation - name, first frame, last frame, direction, and color. Directions use Aseprite's real exported values: forward, reverse, or pingpong. Changing frame_count or animation_count rebuilds the widgets on the fly.

    The useful mode is when you feed it an existing atlas through the optional aseprite_json input. It then returns a merged JSON: your original frames plus the new meta.frameTags, ready for any engine or importer that reads animations from Aseprite frame tags. That's the mode you'll actually want for real projects - the other mode just emits the tags payload on its own.

    Inputs

    • frame_count - total frames on the sheet; the tag from/to fields are indices into this.
    • animation_count - how many tag widgets to show.
    • animation_tags - the hidden JSON the widgets write, defaulting to one idle tag (0..3, forward).
    • aseprite_json (optional) - paste or wire in an existing atlas to merge tags into it.
    • save_json / filename_prefix - whether to write the merged JSON to ComfyUI's output directory and what to call it.

    Outputs

    animation_json (just the frameTags payload), merged_aseprite_json (the original atlas + tags, when you fed one in), json_path, and report (the resolved tag list). The merged JSON is what you want to save or hand to your engine.

    Installing

    ComfyUI Manager (search "comfyui-game-assets-maker") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/quinteroac/ComfyUI-GameAssetsMaker.git
    cd ComfyUI-GameAssetsMaker
    pip install -r requirements.txt
    

    Then restart. The only dependency is opencv-python - no models, no downloads.

    Where people get burned

    The tag from/to are inclusive frame indices, and there's no clamping between tags - two tags can overlap and the node won't complain. If your idle is frames 0–3 and run is frames 4–7, that's fine; if you fat-finger run to 2–7, you'll find out in the preview or the engine, not here. Also, "Animation" vs "Visual Novel" matters in the sibling atlas nodes, but this one is agnostic - it just writes tags, so it works on either kind of sheet.

    CategoryGame Assets/Aseprite

    Inputs (6)

    NameTypeDefaultDescription
    frame_countINT41–10000
    animation_countINT11–128
    animation_tagsSTRING[{"name":"idle","from":0,"to":3,"direction":"forward","color":"#000000ff"}]
    save_jsonBOOLEANtrue
    filename_prefixSTRINGaseprite_animation_tags
    aseprite_jsonoptSTRING

    Outputs (4)

    NameTypeDescription
    animation_jsonSTRING
    merged_aseprite_jsonSTRING
    json_pathSTRING
    reportSTRING