Nodes/Raffle/Raffle
ComfyUI Node

Raffle

Raffle picks real Danbooru tag sets, not random tags

By rainlizard·Created about a year ago·Updated 3 days ago· 40
Raffle
    • Raffled output
    • Unfiltered
    • Debug info
    seed0
    use_generalfalse
    use_questionablefalse
    use_sensitivetrue
    use_explicittrue
    taglists_must_include1girl
    filter_out_tagsmonochrome, greyscale, cross-section, cervix, cervical_penetration, uterus, x-ray, internal_cumshot, lactation, forced_lactation, male_lactation, projectile_lactation, lactation_through_clothes, breast_milk, male_focus, male_penetrated, interracial, dark-skinned_male, gaping, extreme_gaping, prolapse, anal_prolapse, fisting, anal_fisting, anal, anal_only, after_anal, anal_fluid, anal_object_insertion, butt_plug, jewel_butt_plug, anal_beads, vibrator_in_anus, anus, cum_in_ass, spread_anus, spread_ass, anus_peek, puckered_anus, dark_anus, presenting_anus, spreading_own_anus, anus_cutout, censored_anus, spread_anus_under_clothes, colored_anus, pubic_hair, female_pubic_hair, pubic_hair_peek, colored_pubic_hair, sparse_pubic_hair, mismatched_pubic_hair, excessive_pubic_hair, shaped_pubic_hair, condom, used_condom, condom_wrapper, condom_in_mouth, holding_condom, condom_on_penis, multiple_condoms, condom_packet_strip, pointless_condom, condom_belt, condom_box, used_condom_on_penis, condom_left_inside, colored_condom, okamoto_condoms, condom_wrapper_in_clothes, condom_thigh_strap, buying_condoms, broken_condom, used_condom_in_clothes,
    exclude_taglists_containingcomic, 4koma, multiple_girls, multiple_boys, multiple_views, reference_sheet, 2girls, 3girls, 4girls, 5girls, 6+girls, 2boys, 3boys, 4boys, 5boys, 6+boys, gangbang, threesome, mmf_threesome, ffm_threesome, group_sex, cooperative_fellatio, cooperative_paizuri, double_handjob, surrounded_by_penises, furry, obese, yaoi, yuri, otoko_no_ko, strap-on, futa_with_female, futa_without_pussy, implied_futanari, futanari, diaper, fart, pee, peeing, pee_puddle, pee_stain, peeing_self, golden_shower, scat, guro, ero_guro, intestines, vore, horse_penis
    exclude_tag_categoriesartist, character_name, copyright, meta, clothes_and_accessories, female_physical_descriptors, named_garment_exposure, specific_garment_interactions, speech_and_text, standard_physical_descriptors, metadata_and_attribution, intentional_design_exposure, two_handed_character_items, holding_large_items, content_censorship_methods
    negative_prompt

    You know the drill: you've got your character prompt nailed, and every render is the same girl in the same room doing the same thing. Raffle is the "shake the bag" node for that. It's a semi-random Danbooru tag generator that works alongside your character prompt - drop a scene from it next to your fixed subject, change the seed, and the scenario changes every time. The author's framing is exactly right: "put your waifu in many scenarios." It's made for the SDXL anime family - Illustrious, NoobAI, Pony - the checkpoints that actually speak Danbooru.

    Here's the part that makes it better than a random-tag generator: it doesn't invent combinations. The pack ships 400,000 real taglists scraped from Danbooru, split into four files of ~100k each (and about 220MB of your disk), where every taglist is the full set of tags someone applied to one actual image. That's the whole trick. Random tags fight each other - 1girl, solo, 2girls, yuri averages to a mess. A real image's tag set is internally coherent by construction, so drawing one gives you a scene that actually holds together. The README says it plainly: "by using taglists we can be certain that the tags have good synergy with each other."

    The selection is two-stage. First it builds a pool: the four content toggles, minus any taglist that contains a tag from exclude_taglists_containing, and only taglists holding all of taglists_must_include. Then your seed picks one taglist from that pool (same seed, same pick). Then it filters the chosen taglist - drops anything in negative_prompt or filter_out_tags, and only keeps tags that exist in the bundled categorized_tags.txt. The Raffled output goes into your positive prompt, typically merged with your character prompt via a text concat or string concat node.

    The inputs you'll actually touch:

    • The four toggles - use_general, use_questionable, use_sensitive, use_explicit. Heads-up: sensitive and explicit are on by default. This is an adult-default pack; for SFW, enable use_general and switch the other three off.
    • seed - the only input you'll fiddle with once it's set. Change it, roll a new taglist.
    • taglists_must_include (default 1girl) - every tag you add here carves a big chunk out of the pool. The tooltip's warning is not cosmetic; read Debug info to see how many taglists you have left.
    • negative_prompt - connect your existing negative here and its tags get stripped from the output. This is the safe one; exclude_taglists_containing removes entire taglists and shrinks the pool.

    The other two outputs earn their keep: Unfiltered is the raw taglist before filtering (see what you just lost), and Debug info reports the pool size after your filters.

    Install is a Manager search or one command - the pack is in the Comfy Registry under "Raffle":

    cd ComfyUI/custom_nodes
    git clone https://github.com/rainlizard/ComfyUI-Raffle
    

    No pip dependencies, no model downloads. The only bulk is the bundled taglist data, which is why the clone is chunky. Restart ComfyUI and search "Raffle" in the node menu.

    Where people get burned:

    • The update warning. A category overhaul broke older workflows: if artist, character_name, copyright, meta aren't in exclude_tag_categories, the node hard-errors and tells you to add them. New defaults already include them - the trap is a saved workflow from before the update.
    • Pool exhaustion. Stack taglists_must_include, exclude_taglists_containing, and restrictive toggles and you can end up with an empty pool, which surfaces as "no matching taglists found". The Debug info output exists to stop you doing this blind.
    • It's a booru-tags node. Feed its output to a prose model and you'll get a shrug. And if you run Anima, it doesn't appreciate underscores - the README notes you'll want a separate node to swap _ for spaces.

    One more thing: it has real mileage beyond stills. The highest-scoring "dancing 1girls" post on r/StableDiffusion (flair "Workflow Included", +736) used Raffle to generate randomized character images feeding a Wan 2.2 image-to-video wildcard loop. Same character, new scenario every frame - which is exactly what this thing is built for.

    CategoryRaffle

    Inputs (10)

    NameTypeDefaultDescription
    seedINT00–18446744073709550000Seed value used to randomly select a taglist from the filtered pool of available taglists
    use_generalBOOLEANfalseEnable selection from general.txt which contains 100,000 SFW taglists
    use_questionableBOOLEANfalseEnable selection from questionable.txt which contains 100,000 questionable taglists
    use_sensitiveBOOLEANtrueEnable selection from sensitive.txt which contains 100,000 sensitive taglists
    use_explicitBOOLEANtrueEnable selection from explicit.txt which contains 100,000 explicit taglists
    taglists_must_includeSTRING1girl<taglists_must_include> Only selects taglists that contain ALL of these tags. WARNING: Each tag added here severely reduces the available pool of taglists. Check the 'Debug info' output to see how many taglists remain available.
    filter_out_tagsSTRINGmonochrome, greyscale, cross-section, cervix, cervical_penetration, uterus, x-ray, internal_cumshot, lactation, forced_lactation, male_lactation, projectile_lactation, lactation_through_clothes, breast_milk, male_focus, male_penetrated, interracial, dark-skinned_male, gaping, extreme_gaping, prolapse, anal_prolapse, fisting, anal_fisting, anal, anal_only, after_anal, anal_fluid, anal_object_insertion, butt_plug, jewel_butt_plug, anal_beads, vibrator_in_anus, anus, cum_in_ass, spread_anus, spread_ass, anus_peek, puckered_anus, dark_anus, presenting_anus, spreading_own_anus, anus_cutout, censored_anus, spread_anus_under_clothes, colored_anus, pubic_hair, female_pubic_hair, pubic_hair_peek, colored_pubic_hair, sparse_pubic_hair, mismatched_pubic_hair, excessive_pubic_hair, shaped_pubic_hair, condom, used_condom, condom_wrapper, condom_in_mouth, holding_condom, condom_on_penis, multiple_condoms, condom_packet_strip, pointless_condom, condom_belt, condom_box, used_condom_on_penis, condom_left_inside, colored_condom, okamoto_condoms, condom_wrapper_in_clothes, condom_thigh_strap, buying_condoms, broken_condom, used_condom_in_clothes, <filter_out_tags> Additional tags to filter out from the final output. Use this to exclude more tags without needing to modify your main negative prompt.
    exclude_taglists_containingSTRINGcomic, 4koma, multiple_girls, multiple_boys, multiple_views, reference_sheet, 2girls, 3girls, 4girls, 5girls, 6+girls, 2boys, 3boys, 4boys, 5boys, 6+boys, gangbang, threesome, mmf_threesome, ffm_threesome, group_sex, cooperative_fellatio, cooperative_paizuri, double_handjob, surrounded_by_penises, furry, obese, yaoi, yuri, otoko_no_ko, strap-on, futa_with_female, futa_without_pussy, implied_futanari, futanari, diaper, fart, pee, peeing, pee_puddle, pee_stain, peeing_self, golden_shower, scat, guro, ero_guro, intestines, vore, horse_penis<exclude_taglists_containing> If ANY of these tags appear in the taglist, the entire taglist is removed from the pool of available taglists. Use with caution as each tag listed here can significantly reduce options. For removing individual tags without reducing the pool, use 'filter_out_tags' instead.
    exclude_tag_categoriesSTRINGartist, character_name, copyright, meta, clothes_and_accessories, female_physical_descriptors, named_garment_exposure, specific_garment_interactions, speech_and_text, standard_physical_descriptors, metadata_and_attribution, intentional_design_exposure, two_handed_character_items, holding_large_items, content_censorship_methods<exclude_tag_categories> Exclude entire categories of tags from the final output. Each category contains related tags (e.g., 'poses' contains all pose-related tags). View the complete category list and their tags in the 'Debug info' output. Separate multiple categories with commas.
    negative_promptoptSTRING<negative_prompt> Removes specific tags from the final output without affecting taglist selection. Tags listed here will be filtered out after a taglist is chosen, making this safer to use than 'exclude_taglists_containing'.

    Outputs (3)

    NameTypeDescription
    Raffled outputSTRINGThe final list of tags selected by the raffle and filtered according to your settings, ready for use
    UnfilteredSTRINGThe complete original taglist that was randomly selected before any filtering was applied
    Debug infoSTRINGInformation about the selection process, including the size of the available pool of taglists after applying your filters