ComfyUI Node

Get e621/e6ai Post

The furry booru fetch with species tags built in

By DraconicDragon·Created 2 years ago·Updated 3 months ago· 7
Get e621/e6ai Post
    • IMAGE
    • GENERAL_TAGS
    • CHARACTER_TAGS
    • CONTRIBUTOR_TAGS
    • COPYRIGHT_TAGS
    • ARTIST_TAGS
    • SPECIES_TAGS
    • META_TAGS
    • ORIGINAL_WIDTH
    • ORIGINAL_HEIGHT
    url
    img_sizesample
    format_tagstrue
    trailing_commafalse
    exclude_tagstrue
    user_excluded_tagsconditional dnp, sound_warning, unknown_artist, third-party_edit, anonymous_artist, e621, e621 post recursion, e621_comment, patreon, patreon logo, patreon username, instagram username, text, dialogue

    e621 is the furry booru, and it's the reason this pack exists. Its tag scheme has species as a first-class category - something Danbooru simply doesn't have - and its dense, tag-everything culture is what gave Pony and NoobAI their anatomy and NSFW coverage in the first place. Get e621/e6ai Post is the node that turns an e621 post URL into an image, categorized tags, and dimensions, with species handled properly instead of dumped into general.

    One thing worth knowing before you dive in: e621 itself bans AI-generated uploads. Its AI-art sibling site e6ai.net is where that content lives, and this node handles both - the e6ai handler even maps its director tag (that site's stand-in for artist) onto the ARTIST_TAGS output so nothing gets lost. If you're pulling your own generations for prompt study, use e6ai URLs; if you want the full furry archive, e621.

    How it works

    The handler covers e621.net, e926.net, and e6ai.net, fetches the post's JSON, and reads the tag object per category: general, character, contributor, copyright, artist, species, meta. Dimensions come from the file metadata, and for the image it uses e621's size scheme - original maps to the full file, and everything below sample (180x180, 360x360, 720x720) maps to preview, because that's all e621 serves. Requests go out with a browser User-Agent via curl_cffi, which e621's API expects.

    Inputs and outputs that matter

    • url - the post URL. That's really the whole setup; no API key exists here.
    • img_size - sample is the default and is plenty for prompting. original if you actually want the source file for upscaling or reference.
    • format_tags - on by default: underscores to spaces, parens escaped.
    • trailing_comma - appends a comma to the last tag per output, for when you're gluing tag lists into a longer prompt.
    • exclude_tags - ships with a blocklist tuned for e621 housekeeping (conditional dnp, sound_warning, patreon, text, dialogue and the like), the tags you never want in a prompt.

    The outputs: IMAGE, GENERAL_TAGS, CHARACTER_TAGS, CONTRIBUTOR_TAGS, COPYRIGHT_TAGS, ARTIST_TAGS, SPECIES_TAGS, META_TAGS, plus ORIGINAL_WIDTH and ORIGINAL_HEIGHT. The species split is the reason to pick this node over the generic one - for furry models, SPECIES_TAGS is real signal, not noise.

    Install

    Standard, like the rest of the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/DraconicDragon/ComfyUI_e621_booru_toolkit
    

    restart ComfyUI (or search the pack in ComfyUI Manager). Dependencies: requests, pillow, curl_cffi. Light.

    Gotchas

    e621 rate-limits unauthenticated API access, so don't queue hundreds of these at once - space them out or the fetches start failing with the console showing the request error. The note about contributor: e621 added a contributor tag category in late 2024; it's returned because it's in the API, but it's mostly irrelevant for generation, so don't be confused by a mostly-empty CONTRIBUTOR_TAGS. And yes, NSFW content - you're on e621, you know what you clicked.

    CategoryBooru Toolkit/Posts

    Inputs (6)

    NameTypeDefaultDescription
    urlSTRINGEnter the booru post URL
    img_sizeCOMBOsampleSelect the image size variant to output through 'IMAGE'. Choose 'none' to output a blank image. For e6, anything below sample will be 'preview'
    format_tagsBOOLEANtrueFormat tags for prompt use. Removes underscores and adds backslashes to brackets
    trailing_commaBOOLEANfalseAppends a comma to the last tag in each output
    exclude_tagsBOOLEANtrueToggle exclusion of tags from output
    user_excluded_tagsSTRINGconditional dnp, sound_warning, unknown_artist, third-party_edit, anonymous_artist, e621, e621 post recursion, e621_comment, patreon, patreon logo, patreon username, instagram username, text, dialogueComma separated list of tags to exclude for output (they can include underscores or spaces, with or without backslashes)

    Outputs (10)

    NameTypeDescription
    IMAGEIMAGE
    GENERAL_TAGSSTRING
    CHARACTER_TAGSSTRING
    CONTRIBUTOR_TAGSSTRING
    COPYRIGHT_TAGSSTRING
    ARTIST_TAGSSTRING
    SPECIES_TAGSSTRING
    META_TAGSSTRING
    ORIGINAL_WIDTHINT
    ORIGINAL_HEIGHTINT