This guide is meant for e6ai (or e621) using Windows 10 (It's possible to do it on Linux and Windows 11, but I didn't dwelve into it myself).

Seeing how much posts still have barebones tagging (less than 10 tags in gens more complex than typical 1girl, standing), I'm presenting 2 autotaggers, which help me with tagging my posts (you can choose either or both of them - or maybe even others that I haven't found outthere!)
Hopefully they might help others as well!

RedRocket Joint Tagger Project - 1-time tagger type (launch-tag-shutdown)

The autotagging program generates .txt files on your PC in a specified folder, which contains all the tags for each analyzed picture. The tags can be copied into the e6's upload (or edit) page. Works fine even with old ass laptops from ~2016 (with CPU mode only).

taggerfolder
taggedinages

Download BatchTagger.zip (~14kb) and unpack it somewhere. Keeping things organized will come in handy later!

RedRocket Tagger discord channel: https://discord.com/channels/1019133813105905664/1254974507819733017
Specific author's message (BatchTagger.zip here): https://discord.com/channels/1019133813105905664/1254974507819733017/1258236111252230184
Mirror backup for the .zip: https://mega.nz/file/qi4CxCzS#yG8AtHsvu4bFURdFyGlJBYFBNRFl0nr7Bkv4bKplfaA

Firstly, you must have Python installed otherwise you will receive an error upon setup ("Please ensure Python is installed and try again").
I use Python 3.10 from older nessesity and didn't need update since it works fine for me, so you can even install 3.11 or maybe even 3.12. (look for .exe installer for any of those versions https://www.python.org/downloads/windows/ ).
Just DO NOT install the newest versions of Python since the tagger is not written to support those versions!
I also recommend performing full instalation with all the packages (add python.exe to PATH) and install it normally (not through Custom Installation). You can disable PATH lenght limit after installation as well.

After succesfully installed Python, go to your unpacked tagger and run the setup.bat which will:

  • Create a virtual environment if it doesn't exist.
  • Activate the virtual environment.
  • Upgrade pip.
  • Install required packages from requirements.txt.
  • Install PyTorch and related packages.
  • Verify CUDA setup.
  • Clone the tagger model files from the repository if they don't exist.

The installation of the setup.bat can take over half an hour (mostly depending of your internet speed).

In the final stages of the installation you might be notified that you have no NVIDIA driver on your system (in case when you don't have NVIDIA GPU).
You can ignore it since the tagger can operate on just CPU as well (although noticeably slower).

Doing it for the first time, you might receive an error:
"Model not found. Cloning from repository... 'git' is not recognized as an internal or external command. Failed to clone the repository. Please check your internet connection and try again".

This basically means you have to install (or reinstall) Git https://git-scm.com/downloads/win
You MUST CLOSE the CMD window when installing Git!
During installation make sure to use the option "Git from the command line and from 3rd party software" (where it mentions adding Git wrappers into the PATH). Keep clicking "Next" on any further options.

Now that the Git is installed, run the setup.bat files from before again. Most of the stuff will be skipped now "Requirement already satisfied".
Right after mentioning the "Model not found. Downloading from Hugging Face..."
The cmd will begin downloading the Tagger Model, it weights 1,7GB so give it some time to download. After successful download the CMD window will close automatically!

In case of CMD freezing up for too long [over 30m-1h]. You can download the model manually from the creator's page https://huggingface.co/RedRocket/JointTaggerProject/tree/main/JTP_PILOT2 .(you would also have to download the tags.json file from there as well. You can ignore the rest)

If you decide to download it manually, you also need to go back to your folder (where all the run.bat, run_template.bat and other files are).
Here, create a new folder named "JointTaggerProject", inside of it create another folder "JTP_PILOT2", and put those two downloaded files inside of it [safetensors and json].)

Manualdonwload


Ater the automatic download, you can now see the Tagger Model in "JointTaggerProject/JTP_PILOT2". This is the newest model version, used in most current autotagging projects.


Technically, the instalation of the tagger has finished, and now you can use the run.bat or run_template.bat to tag you images.
run.bat will start the tagger and ask you for specific informations, like path, confidence threshhold, gpu usage, etc. every single time, so I recommend using run_template.bat instead, but we need to configure it's parameters first.
Right click it and edit it with preferred text editor (I use Notepad++).

configuration

"folder_path=" points to a folder, in which every image found will be tagged. I recommend creating a new folder in which you will put your images for tagging (for example - let's call the folder "Tagging").
copypath

You can easily copy the path to the folder by going into it, left-clicking the path window on top, and just copying it. Then, paste it into the template file's folder path.

"process_subfolders=" If used, will also allow the tagger to tag any images in other folders inside the specified path. I recommend setting it to empty (or as in, "no").

"replace_underscores=" Depends on the booru, but e6ai and e621 must have underscores in the multiword tags, therefore leave it empty to keep the underscores.

"batch_size=" It basically means how much images are processed by the tagger at the same sequence/time. When using CPU I prefer using smaller values (2 or 4), but with GPU it's ok to have bigger values (16, 32 or 64).Though i doubts anyone would actually need to tag that many images in bulk (at least for the purpose of uploading them to e6).

"use_gpu=" Self explanatory, if you have a GPU that supports CUDA (like NVIDIA GPUs) then set it to "yes". With all other cases set it to blank. Idk how it functions with AMD cards, but you can simply try.
Overall using CPU instead of GPU will extend the processing time by 5-20 times. Obviously it depends how strong your CPU is + how much RAM you have.
In my case, after loading the model, my GPU will tag 5 images in around half a second, which my old ass laptop's CPU from ~2016 would do in ~3 minutes.

"threshold=" Most important part of the configuration. The confidence threshold values represent percentage, which must be between 0.1 and 1.0.
The higher the value, the less tags will be generated (due to the Tagger being more confident, that these tags are correct).
The lower the value, the more tags will be generated (due to Tagger being less confident that the tag is correct, but applying it anyway due to low threshold). When the tagger adds incorrect tags in low threshold, we usually refer to it as "hallucination".
The default is 0.2, but i prefer to use 0.3 myself. If you're lazy you can use 0.5 or higher, and not worry about having to fix any tags afterwards (there's pretty much no hallucination at that value). You should still check them though!
You can observe how the tag confidence works on the web-version of the tagger: https://huggingface.co/spaces/RedRocket/JointTaggerProject-Inference-Beta

After implementing your preferred changes, save and close the template file.

The configuration is complete, and the tagger is ready to run (hopefully lol).
Double clicking the run_template.bat file will launch the Tagger.
After a few seconds (depending how fast your PC is) the Tagger will load it's model (JTP_PILOT2) and start tagging everything it finds in the specified folder.
From what I know, it can only analyze jpg, jpeg and png files (no webm, gif or any animated files).

To present an example - Let's try tagging this picture.

Cookie&Mila

We put it into our specified folder for tagging, and then run double click the run_template.bat
The Tagger will load up it's model, then analyze the image, and generate .txt file with tags.
If you use GPU, then the the entire process should take up to 20 seconds. It can take minutes if you use CPU though, but you can just leave it running in the background.
It's important to note that this version of the tagger - when launched again even if .txt files are already generated, will append the tags again, so all the tags will be doubled in the final .txt file. It's doesn't really matter since e6 corrects tag duplication anyway.

I also recommend sorting the folder with the images and the .txt files by Name>Rising.
That way the images and their respective tags will be next to each other.

Looking at the generated file, you might notice that it contains comas ( , ) between each tag. You cannot copypaste this result into e6's upload tag window, because it can't interpret the comas as a valid tag.

Cookie&MilaTags

VERY IMPORTANT: The autotaggers NEVER generate tags for the characters, their franchise/copyright and the director!

You must add them manually either into the .txt file, or editing the e6 post after uploading! In the case of the picture above you'd have to add anotheranon as the director, cathy_(character) and cookie_(anotheranon) as the characters to the tags on e6ai.

Additionally you might find some unnesesary tags that just bloat it up (we don't really need multiple schizo-specific tags, when one can do the job just fine - especially for niche fetishes/situations). It's up to each one's preference how to prune it, but I'm gonna demonstrate how I like to do it.

The fastest/simplest way for me is to just have additional .bat file, that will remove all comas from found .txt files generated through the Tagger, and remove/replace specific tags while it's at it.
I myself prefer to have it separate from the tagger code, so I don't have to run the tagger each time I want to prune the tags.

Create a new text file, and name it hovewer you want (in my case the ! is only for the file to show first when all is sorted by name). You MUST change the extention to .bat
After that, paste the code vomit I cobbled together inside:

tagcleanerbat

@echo off
setlocal enabledelayedexpansion

set "folder=B:\AI\Tagging"

for %%F in ("%folder%\*.txt") do (
    set "tempFile=%%~dpFtemp_%%~nxF"
    (for /f "usebackq delims=" %%A in ("%%F") do (
        set "line= %%A "
        rem replacing coma with spacebar
        set "line=!line:,= !"

        rem Word DELETING section (Blacklist)
        set "line=!line: 3d_(artwork) =!"
        set "line=!line: adolescent =!"
        set "line=!line: after_vaginal_penetration =!"
        set "line=!line: alarm_clock =!"
        set "line=!line: alternative_fashion =!"
        set "line=!line: ambient_flier =!"
        set "line=!line: anal_only =!"
        set "line=!line: animal_print_bikini =!"
        set "line=!line: anthro =!"
        set "line=!line: anus_only =!"
        set "line=!line: armpit_play =!"
        set "line=!line: athletic_wear =!"
        set "line=!line: ball_sniffing =!"
        set "line=!line: bandaged_arm =!"
        set "line=!line: big_flare =!"
        set "line=!line: bikini_thong =!"
        set "line=!line: blue_hat =!"
        set "line=!line: boss_monster_(undertale) =!"
        set "line=!line: braided_ponytail =!"
        set "line=!line: breast_suck =!"
        set "line=!line: bridal_gauntlets_only =!"
        set "line=!line: bulletproof_vest =!"
        set "line=!line: car_interior =!"
        set "line=!line: casual_erection =!"
        set "line=!line: chalk =!"
        set "line=!line: chastity_device_only =!"
        set "line=!line: christianity =!"
        set "line=!line: cigarette_holder =!"
        set "line=!line: cigarette_smoke =!"
        set "line=!line: clothed_gynomorph =!"
        set "line=!line: clothed_intersex =!"
        set "line=!line: colorful_theme =!"
        set "line=!line: communal_shower =!"
        set "line=!line: crossed_ankles =!"
        set "line=!line: crossover_ship =!"
        set "line=!line: crotch_apron =!"
        set "line=!line: crotch_lines =!"
        set "line=!line: cum_between_breasts =!"
        set "line=!line: cum_in_penis =!"
        set "line=!line: cutout =!"
        set "line=!line: daisy_dukes =!"
        set "line=!line: darkened_penis =!"
        set "line=!line: darkened_perineum =!"
        set "line=!line: daww =!"
        set "line=!line: deep_rimming =!"
        set "line=!line: deep_skin =!"
        set "line=!line: detailed_ambient_creature =!"
        set "line=!line: dewclaw_hooves =!"
        set "line=!line: digital_drawing_(artwork) =!"
        set "line=!line: digital_media_(artwork) =!"
        set "line=!line: digital_painting_(artwork) =!"
        set "line=!line: dolphin_shorts =!"
        set "line=!line: domestic_rabbit =!"
        set "line=!line: draw_over =!"
        set "line=!line: drunk_bubble =!"
        set "line=!line: dumpster =!"
        set "line=!line: dwarf_rabbit =!"
        set "line=!line: e621_post_recursion =!"
        set "line=!line: easy_access =!"
        set "line=!line: enhibitionism =!"
        set "line=!line: exposure_variation =!"
        set "line=!line: extinct =!"
        set "line=!line: eyebrow_piercing =!"
        set "line=!line: face_in_breasts =!"
        set "line=!line: facial_piercing =!"
        set "line=!line: finger_ring =!"
        set "line=!line: fork =!"
        set "line=!line: fury_(httyd) =!"
        set "line=!line: glistening_areola =!"
        set "line=!line: glistening_arms =!"
        set "line=!line: glistening_belly =!"
        set "line=!line: glistening_fur =!"
        set "line=!line: glistening_nipples =!"
        set "line=!line: glistening_tail =!"
        set "line=!line: gold_bracelet =!"
        set "line=!line: gold_choker =!"
        set "line=!line: gold_necklace =!"
        set "line=!line: gothic_lolita =!"
        set "line=!line: green_face =!"
        set "line=!line: group_nudity =!"
        set "line=!line: gum =!"
        set "line=!line: habit =!"
        set "line=!line: hand_on_own_thigh =!"
        set "line=!line: heat_(temperature) =!"
        set "line=!line: holding_cigarette =!"
        set "line=!line: holding_container =!"
        set "line=!line: holding_melee_weapon =!"
        set "line=!line: holding_polearm =!"
        set "line=!line: holding_ranged_weapon =!"
        set "line=!line: hugging_another =!"
        set "line=!line: human =!"
        set "line=!line: human_on_bottom =!"
        set "line=!line: humanoid_genitalia_on_feral =!"
        set "line=!line: humanoid_hands =!"
        set "line=!line: ice_cream_cone =!"
        set "line=!line: inaccurate_knotting =!"
        set "line=!line: indoor_nudity =!"
        set "line=!line: indoor_sex =!"
        set "line=!line: inflating =!"
        set "line=!line: internal_vaginal =!"
        set "line=!line: intersex_anthro =!"
        set "line=!line: interspecies_domination =!"
        set "line=!line: iris =!"
        set "line=!line: j-fashion =!"
        set "line=!line: japanese_school_uniform =!"
        set "line=!line: kiss_on_lips =!"
        set "line=!line: laboratory_glassware =!"
        set "line=!line: leashed_collar =!"
        set "line=!line: leg_scar =!"
        set "line=!line: light =!"
        set "line=!line: lolita_(fashion) =!"
        set "line=!line: looking_at_porn =!"
        set "line=!line: lop_rabbit =!"
        set "line=!line: male_penetrating_human =!"
        set "line=!line: microskirt =!"
        set "line=!line: monotone_anus =!"
        set "line=!line: monotone_genitals =!"
        set "line=!line: mostly_nude_anthro =!"
        set "line=!line: mostly_nude_female =!"
        set "line=!line: mostly_nude_gynomorph =!"
        set "line=!line: motor_vehicle =!"
        set "line=!line: multicolored_pussy =!"
        set "line=!line: muscular_dom =!"
        set "line=!line: muscular_top =!"
        set "line=!line: musky_balls =!"
        set "line=!line: musky_cock =!"
        set "line=!line: mythological_canine =!"
        set "line=!line: mythological_creature =!"
        set "line=!line: mythological_equine =!"
        set "line=!line: mythological_scalie =!"
        set "line=!line: neckerchief_only =!"
        set "line=!line: netherland_dwarf_rabbit =!"
        set "line=!line: new_world_deer =!"
        set "line=!line: nipple_dip =!"
        set "line=!line: not_furry_focus =!"
        set "line=!line: occult_symbol =!"
        set "line=!line: office_lady =!"
        set "line=!line: ok_sign =!"
        set "line=!line: on_furniture =!"
        set "line=!line: on_surface =!"
        set "line=!line: oryctolagus =!"
        set "line=!line: panty_lines =!"
        set "line=!line: partially_clothed_anthro =!"
        set "line=!line: pecs_with_breasts =!"
        set "line=!line: pencil_(object) =!"
        set "line=!line: penis_milking_machine =!"
        set "line=!line: penis_shaped_bulge =!"
        set "line=!line: photography_(artwork) =!"
        set "line=!line: piercing =!"
        set "line=!line: pokemon_berry =!"
        set "line=!line: pokemorph =!"
        set "line=!line: prehistoric_species =!"
        set "line=!line: print_topwear =!"
        set "line=!line: prone_bone =!"
        set "line=!line: public_erection =!"
        set "line=!line: pumps =!"
        set "line=!line: pussy_ejaculation_while_penetrated =!"
        set "line=!line: pussy_juice_on_pussy =!"
        set "line=!line: reins =!"
        set "line=!line: scientist =!"
        set "line=!line: self_fondle =!"
        set "line=!line: serafuku =!"
        set "line=!line: service_height =!"
        set "line=!line: sex_shot =!"
        set "line=!line: sexercise =!"
        set "line=!line: sexual_competition =!"
        set "line=!line: sexual_fight =!"
        set "line=!line: shrine_maiden =!"
        set "line=!line: sighthound =!"
        set "line=!line: silver_(metal) =!"
        set "line=!line: slightly_chubby_anthro =!"
        set "line=!line: smaller_ambiguous =!"
        set "line=!line: smoking_cigarette =!"
        set "line=!line: social_nudity =!"
        set "line=!line: sofa_sex =!"
        set "line=!line: soft_abs =!"
        set "line=!line: son_penetrating_mother =!"
        set "line=!line: spandex_shorts =!"
        set "line=!line: sports_gear =!"
        set "line=!line: sports_panties =!"
        set "line=!line: squatting_position =!"
        set "line=!line: submachine_gun =!"
        set "line=!line: sucking_tip =!"
        set "line=!line: suction_cup =!"
        set "line=!line: suit_jacket =!"
        set "line=!line: summoning =!"
        set "line=!line: sweaty_armpit =!"
        set "line=!line: sweaty_thighs =!"
        set "line=!line: text_on_panties =!"
        set "line=!line: text_on_shirt =!"
        set "line=!line: tight_shorts =!"
        set "line=!line: tomboy =!"
        set "line=!line: tongue_out_blowjob =!"
        set "line=!line: translucent_shirt =!"
        set "line=!line: trigger_discipline =!"
        set "line=!line: true_fox =!"
        set "line=!line: tyrannosauroid =!"
        set "line=!line: unguligrade =!"
        set "line=!line: upskirt_sex =!"
        set "line=!line: verbal =!"
        set "line=!line: vibrator_in_ass =!"
        set "line=!line: western_tally_marks =!"
        set "line=!line: wide_hipped_female =!"
        set "line=!line: winking_at_viewer =!"
        set "line=!line: writing_utensil =!"
        set "line=!line: yin_yang =!"
        set "line=!line: young =!"
        set "line=!line: young_anthro =!"
        set "line=!line: young_female =!"

        rem Word REPLACING section
        set "line=!line: aurora_(phenomenon) = aurora_borealis !"
        set "line=!line: basketball_(ball) = basketball !"
        set "line=!line: big_pubes = pubic_fuzz !"
        set "line=!line: calves_up = raised_calf !"
        set "line=!line: caught_masturbating = caught !"
        set "line=!line: computer_keyboard = keyboard !"
        set "line=!line: cuffs_(restraint) = cuff_(restraint) !"
        set "line=!line: cum_pooling = cum_pool !"
        set "line=!line: flare = flared_penis !"
        set "line=!line: genital_shot = crotch_shot !"
        set "line=!line: ghost_hands = ghost_hand !"
        set "line=!line: handcuffed = restraints !"
        set "line=!line: handcuffs = cuffs_(restraint) !"
        set "line=!line: heart_symbol = <3 !"
        set "line=!line: holding_clipboard = clipboard holding_object !"
        set "line=!line: hugging_object = hug !"
        set "line=!line: hugging_pillow = pillow_hug !"
        set "line=!line: leaning_backward = leaning_back !"
        set "line=!line: fantasizing = daydream !"
        set "line=!line: hand_gesture = gesture !"
        set "line=!line: malo = mal0 !"
        set "line=!line: muscular_bottom = muscular_sub !"
        set "line=!line: navel_ring = navel_piercing !"
        set "line=!line: neon_sign = neon_lights !"
        set "line=!line: park_bench = bench !"
        set "line=!line: precum_drip = precum_drip leaking_precum !"
        set "line=!line: pussy_juice_leaking = dripping_pussy !"
        set "line=!line: pussy_stacking =stacked !"
        set "line=!line: running_makeup = makeup_running !"
        set "line=!line: sex_on_the_beach = beach_sex !"
        set "line=!line: sexuality_symbol = gender_symbol !"
        set "line=!line: small_top_big_bottom = small_dom_big_sub !"
        set "line=!line: surprised_expression = suprise !"
        set "line=!line: tray = plate !"
        set "line=!line: water_drop = waterdrop !"

        rem replacing double spacebar with single spacebar
        set "line=!line:  = !"

        echo !line!
    )) > "!tempFile!"
    move /y "!tempFile!" "%%F" >nul
)

echo Processing complete.
pause

You can change it however you want. Some of my tag blacklisting decisions might appear strange, but due to tag hallucinations, it's better for me to just add them when needed, and not having to remove them each time they're generated when they shouldn't.
Also don't forget to set you path here to the folder where the .txt files are present!
After you're done, save the changes and close it.

Now, simply double clicking it will launch the code, and almost instantly the tags will be cleaned up ("Processing complete.").
Now when you open the text files, you'll notice the lack of comas, and the undesired tags. In this form, you can just CTRL+A, and CTRL+V all the tags here into the e6's upload tag window (you can even use this file directly for API purposes if needed).

cleanedtags

Alternatively you can use my second code for cleaning up the tags in .txt files, this one also sorts the remaining tags alphabetically and per each row. It's up to you which one you use.

(With ordering)

@echo off
setlocal enabledelayedexpansion

set "folder=B:\AI\Tagging"

for %%F in ("%folder%\*.txt") do (
    set "tempFile=%%~dpFtemp_%%~nxF"
    set "sortedFile=%%~dpFsorted_%%~nxF"
    set "finalFile=%%~dpFfinal_%%~nxF"

    (for /f "usebackq delims=" %%A in ("%%F") do (
        set "line= %%A "
        rem replacing coma with spacebar
        set "line=!line:,= !"

        rem Word DELETING section (Blacklist)
        set "line=!line: 3d_(artwork) =!"
        set "line=!line: adolescent =!"
        set "line=!line: after_vaginal_penetration =!"
        set "line=!line: alarm_clock =!"
        set "line=!line: alternative_fashion =!"
        set "line=!line: ambient_flier =!"
        set "line=!line: anal_only =!"
        set "line=!line: animal_print_bikini =!"
        set "line=!line: anthro =!"
        set "line=!line: anus_only =!"
        set "line=!line: armpit_play =!"
        set "line=!line: athletic_wear =!"
        set "line=!line: ball_sniffing =!"
        set "line=!line: bandaged_arm =!"
        set "line=!line: big_flare =!"
        set "line=!line: bikini_thong =!"
        set "line=!line: blue_hat =!"
        set "line=!line: boss_monster_(undertale) =!"
        set "line=!line: braided_ponytail =!"
        set "line=!line: breast_suck =!"
        set "line=!line: bridal_gauntlets_only =!"
        set "line=!line: bulletproof_vest =!"
        set "line=!line: car_interior =!"
        set "line=!line: casual_erection =!"
        set "line=!line: chalk =!"
        set "line=!line: chastity_device_only =!"
        set "line=!line: christianity =!"
        set "line=!line: cigarette_holder =!"
        set "line=!line: cigarette_smoke =!"
        set "line=!line: clothed_gynomorph =!"
        set "line=!line: clothed_intersex =!"
        set "line=!line: colorful_theme =!"
        set "line=!line: communal_shower =!"
        set "line=!line: crossed_ankles =!"
        set "line=!line: crossover_ship =!"
        set "line=!line: crotch_apron =!"
        set "line=!line: crotch_lines =!"
        set "line=!line: cum_between_breasts =!"
        set "line=!line: cum_in_penis =!"
        set "line=!line: cutout =!"
        set "line=!line: daisy_dukes =!"
        set "line=!line: darkened_penis =!"
        set "line=!line: darkened_perineum =!"
        set "line=!line: daww =!"
        set "line=!line: deep_rimming =!"
        set "line=!line: deep_skin =!"
        set "line=!line: detailed_ambient_creature =!"
        set "line=!line: dewclaw_hooves =!"
        set "line=!line: digital_drawing_(artwork) =!"
        set "line=!line: digital_media_(artwork) =!"
        set "line=!line: digital_painting_(artwork) =!"
        set "line=!line: dolphin_shorts =!"
        set "line=!line: domestic_rabbit =!"
        set "line=!line: draw_over =!"
        set "line=!line: drunk_bubble =!"
        set "line=!line: dumpster =!"
        set "line=!line: dwarf_rabbit =!"
        set "line=!line: e621_post_recursion =!"
        set "line=!line: easy_access =!"
        set "line=!line: enhibitionism =!"
        set "line=!line: exposure_variation =!"
        set "line=!line: extinct =!"
        set "line=!line: eyebrow_piercing =!"
        set "line=!line: face_in_breasts =!"
        set "line=!line: facial_piercing =!"
        set "line=!line: finger_ring =!"
        set "line=!line: fork =!"
        set "line=!line: fury_(httyd) =!"
        set "line=!line: glistening_areola =!"
        set "line=!line: glistening_arms =!"
        set "line=!line: glistening_belly =!"
        set "line=!line: glistening_fur =!"
        set "line=!line: glistening_nipples =!"
        set "line=!line: glistening_tail =!"
        set "line=!line: gold_bracelet =!"
        set "line=!line: gold_choker =!"
        set "line=!line: gold_necklace =!"
        set "line=!line: gothic_lolita =!"
        set "line=!line: green_face =!"
        set "line=!line: group_nudity =!"
        set "line=!line: gum =!"
        set "line=!line: habit =!"
        set "line=!line: hand_on_own_thigh =!"
        set "line=!line: heat_(temperature) =!"
        set "line=!line: holding_cigarette =!"
        set "line=!line: holding_container =!"
        set "line=!line: holding_melee_weapon =!"
        set "line=!line: holding_polearm =!"
        set "line=!line: holding_ranged_weapon =!"
        set "line=!line: hugging_another =!"
        set "line=!line: human =!"
        set "line=!line: human_on_bottom =!"
        set "line=!line: humanoid_genitalia_on_feral =!"
        set "line=!line: humanoid_hands =!"
        set "line=!line: ice_cream_cone =!"
        set "line=!line: inaccurate_knotting =!"
        set "line=!line: indoor_nudity =!"
        set "line=!line: indoor_sex =!"
        set "line=!line: inflating =!"
        set "line=!line: internal_vaginal =!"
        set "line=!line: intersex_anthro =!"
        set "line=!line: interspecies_domination =!"
        set "line=!line: iris =!"
        set "line=!line: j-fashion =!"
        set "line=!line: japanese_school_uniform =!"
        set "line=!line: kiss_on_lips =!"
        set "line=!line: laboratory_glassware =!"
        set "line=!line: leashed_collar =!"
        set "line=!line: leg_scar =!"
        set "line=!line: light =!"
        set "line=!line: lolita_(fashion) =!"
        set "line=!line: looking_at_porn =!"
        set "line=!line: lop_rabbit =!"
        set "line=!line: male_penetrating_human =!"
        set "line=!line: microskirt =!"
        set "line=!line: monotone_anus =!"
        set "line=!line: monotone_genitals =!"
        set "line=!line: mostly_nude_anthro =!"
        set "line=!line: mostly_nude_female =!"
        set "line=!line: mostly_nude_gynomorph =!"
        set "line=!line: motor_vehicle =!"
        set "line=!line: multicolored_pussy =!"
        set "line=!line: muscular_dom =!"
        set "line=!line: muscular_top =!"
        set "line=!line: musky_balls =!"
        set "line=!line: musky_cock =!"
        set "line=!line: mythological_canine =!"
        set "line=!line: mythological_creature =!"
        set "line=!line: mythological_equine =!"
        set "line=!line: mythological_scalie =!"
        set "line=!line: neckerchief_only =!"
        set "line=!line: netherland_dwarf_rabbit =!"
        set "line=!line: new_world_deer =!"
        set "line=!line: nipple_dip =!"
        set "line=!line: not_furry_focus =!"
        set "line=!line: occult_symbol =!"
        set "line=!line: office_lady =!"
        set "line=!line: ok_sign =!"
        set "line=!line: on_furniture =!"
        set "line=!line: on_surface =!"
        set "line=!line: oryctolagus =!"
        set "line=!line: panty_lines =!"
        set "line=!line: partially_clothed_anthro =!"
        set "line=!line: pecs_with_breasts =!"
        set "line=!line: pencil_(object) =!"
        set "line=!line: penis_milking_machine =!"
        set "line=!line: penis_shaped_bulge =!"
        set "line=!line: photography_(artwork) =!"
        set "line=!line: piercing =!"
        set "line=!line: pokemon_berry =!"
        set "line=!line: pokemorph =!"
        set "line=!line: prehistoric_species =!"
        set "line=!line: print_topwear =!"
        set "line=!line: prone_bone =!"
        set "line=!line: public_erection =!"
        set "line=!line: pumps =!"
        set "line=!line: pussy_ejaculation_while_penetrated =!"
        set "line=!line: pussy_juice_on_pussy =!"
        set "line=!line: reins =!"
        set "line=!line: scientist =!"
        set "line=!line: self_fondle =!"
        set "line=!line: serafuku =!"
        set "line=!line: service_height =!"
        set "line=!line: sex_shot =!"
        set "line=!line: sexercise =!"
        set "line=!line: sexual_competition =!"
        set "line=!line: sexual_fight =!"
        set "line=!line: shrine_maiden =!"
        set "line=!line: sighthound =!"
        set "line=!line: silver_(metal) =!"
        set "line=!line: slightly_chubby_anthro =!"
        set "line=!line: smaller_ambiguous =!"
        set "line=!line: smoking_cigarette =!"
        set "line=!line: social_nudity =!"
        set "line=!line: sofa_sex =!"
        set "line=!line: soft_abs =!"
        set "line=!line: son_penetrating_mother =!"
        set "line=!line: spandex_shorts =!"
        set "line=!line: sports_gear =!"
        set "line=!line: sports_panties =!"
        set "line=!line: squatting_position =!"
        set "line=!line: submachine_gun =!"
        set "line=!line: sucking_tip =!"
        set "line=!line: suction_cup =!"
        set "line=!line: suit_jacket =!"
        set "line=!line: summoning =!"
        set "line=!line: sweaty_armpit =!"
        set "line=!line: sweaty_thighs =!"
        set "line=!line: text_on_panties =!"
        set "line=!line: text_on_shirt =!"
        set "line=!line: tight_shorts =!"
        set "line=!line: tomboy =!"
        set "line=!line: tongue_out_blowjob =!"
        set "line=!line: translucent_shirt =!"
        set "line=!line: trigger_discipline =!"
        set "line=!line: true_fox =!"
        set "line=!line: tyrannosauroid =!"
        set "line=!line: unguligrade =!"
        set "line=!line: upskirt_sex =!"
        set "line=!line: verbal =!"
        set "line=!line: vibrator_in_ass =!"
        set "line=!line: western_tally_marks =!"
        set "line=!line: wide_hipped_female =!"
        set "line=!line: winking_at_viewer =!"
        set "line=!line: writing_utensil =!"
        set "line=!line: yin_yang =!"
        set "line=!line: young =!"
        set "line=!line: young_anthro =!"
        set "line=!line: young_female =!"

        rem Word REPLACING section
        set "line=!line: aurora_(phenomenon) = aurora_borealis !"
        set "line=!line: basketball_(ball) = basketball !"
        set "line=!line: big_pubes = pubic_fuzz !"
        set "line=!line: calves_up = raised_calf !"
        set "line=!line: caught_masturbating = caught !"
        set "line=!line: computer_keyboard = keyboard !"
        set "line=!line: cuffs_(restraint) = cuff_(restraint) !"
        set "line=!line: cum_pooling = cum_pool !"
        set "line=!line: flare = flared_penis !"
        set "line=!line: genital_shot = crotch_shot !"
        set "line=!line: ghost_hands = ghost_hand !"
        set "line=!line: handcuffed = restraints !"
        set "line=!line: handcuffs = cuffs_(restraint) !"
        set "line=!line: heart_symbol = <3 !"
        set "line=!line: holding_clipboard = clipboard holding_object !"
        set "line=!line: hugging_object = hug !"
        set "line=!line: hugging_pillow = pillow_hug !"
        set "line=!line: leaning_backward = leaning_back !"
        set "line=!line: fantasizing = daydream !"
        set "line=!line: hand_gesture = gesture !"
        set "line=!line: malo = mal0 !"
        set "line=!line: muscular_bottom = muscular_sub !"
        set "line=!line: navel_ring = navel_piercing !"
        set "line=!line: neon_sign = neon_lights !"
        set "line=!line: park_bench = bench !"
        set "line=!line: precum_drip = precum_drip leaking_precum !"
        set "line=!line: pussy_juice_leaking = dripping_pussy !"
        set "line=!line: pussy_stacking =stacked !"
        set "line=!line: running_makeup = makeup_running !"
        set "line=!line: sex_on_the_beach = beach_sex !"
        set "line=!line: sexuality_symbol = gender_symbol !"
        set "line=!line: small_top_big_bottom = small_dom_big_sub !"
        set "line=!line: surprised_expression = suprise !"
        set "line=!line: tray = plate !"
        set "line=!line: water_drop = waterdrop !"

        for %%W in (!line!) do echo %%W
    )) > "!tempFile!"

    rem Sorting words alphabetically
    sort "!tempFile!" /o "!sortedFile!"

    rem Group words by first letter
    set "currentLetter="
    (for /f "usebackq delims=" %%L in ("!sortedFile!") do (
        set "word=%%L"
        set "firstLetter=!word:~0,1!"
        if not "!currentLetter!"=="!firstLetter!" (
            if defined currentLetter echo.
            set "currentLetter=!firstLetter!"
        )
        <nul set /p="%%L "
    )) > "!finalFile!"

    move /y "!finalFile!" "%%F" >nul
    del "!tempFile!" >nul
    del "!sortedFile!" >nul
)

echo Processing complete.
pause

cleanedorderedtegs

For even more convenience you might want to attach the run_template.bat and tag cleaner to the window task bar (to avoid having to navigate to them, and only having to click them once instead of double click).

To attach your shortcut to the windows task bar:

  • Create a shortcut file (right click drag) of the run_template.bat (you can remove the suffix, so they're named the same)
  • Right click on the shortcut and open it's properties
  • Change the path from (your path analogue is gonna be different obviously)
    • B:\AI\BatchTagger\run_template.bat to
    • C:\Windows\explorer.exe "B:\AI\BatchTagger\run_template.bat"
      and confirm changes (you can change it's icon while you're at it).

Now simply drag the modified shortcut file into the windows task bar, and you can launch the tagger with just a single click.

attachedfile

You can attach basically any file in your system like this!

That's all for the 1-time tagger.

Words of caution: The JTP_PILOT2-e3-vit_so400m_patch14_siglip_384.safetensors model does semi-frequent mistakes with the tags for toe and finger count, piercing's (when there are none on Loona-adjacent characters), glistening_ tags, and specific body descriptions for genitalia (two_tone_, big_, huge_, hyper_ etc.). It often overtags the species tags as well, so you need to cut out the incorrect ones frequently. It's dependant on confidence threshold so just be adviced.


E6AutoTagger - integrated into e6 upload page (launch - host_in_background - tag_on_site - close_manually)

This autotagging program is available in e6's upload page through additional browser extention like Tampermonkey. Also compatible with re6AI/re621 addon!

etaggeraddon

Download and install the Tampermonkey addon for your preferred browser (https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)
Download the tagger from https://github.com/jaxbline/E6AutoTagger (you can mostly just follow the instructions from there on out, but i'm gonna write them out anyway).
To download the E6 Autotagger-2.0.X.js click it's name, and then the little downward download arrow on the right "Download Raw File", and then just drag the .js file into the Tampermonkey's "Installed scripts" menu . (In case of the scripts not working, try checking if the scripts are allowed to work in incognito tabs).

etaggerdownload

extentiondownload

Download prepackaged Tagger setup modified for local hosting (so that it can connect to e6's UI) https://files.catbox.moe/tgkbh4.7z
Mirror for backup link: https://mega.nz/file/yvo03IbC#MuH4Tfe8DVf7AXVGxj88cbt4dePx1xMSlkw2PwXzB_0

etaggerfiles

Unpack the .7z file to get the !RedRocketAutoTagger folder out

Run the Install.bat

After succesfull install, start Run.bat - the model will start downloading here again, but if you already have different tagger installed (but THE SAME tagger model version!), you can just copy over the Tagger Model (.safetensors) and the tags.json
This will skip you needing to download 1.7GB again.

The folder hierarchy is different though! Copy it over correctly!

BatchTagger/JointTaggerProject/JTP_PILOT2/JTP_PILOT2-e3-vit-so400m[...].safetensors + tags.json
RedRocketAutoTagger/JTP_PILOT2/JTP_PILOT2-e3-vit-so400m[...].safetensors + tags.json

After the Run.bat does it's thing, you'll see the line "Running on local URL: http://127.0.0.1:7860"
(For some people http don't work but https does), now you can login into your e6 account and go into the Upload section, with the browser addon active you should notice after a few seconds, that the "Auto Tag" option appears with it's confidence threshold option.
Also you'll notice the cmd window spamming an error "Cannot identify the image file" - it's most likely that it's perpetually awaiting an image to tag, so you can ignore it.

Now you can just drop in your picture, choose the confidence threshold and press "Auto Tag".

etaggerprepared

This addon already takes care about removing the comas. You can even set up your tag blacklist when you click the addon options in the top right of your browser "Configure Local Tagger Endpoint". (It can only block blacklisted tags, and not replace them with others).

This tagger also never generates character, director and franchise/copyright tags!

In this case you'd have to manually add hymonie_fluffscale_(fluffscaler) as the character and fluffscaler as the director into the tags above!

To shutdown the tagger, just close the cmd window running in the background.

That's it for the integrated e6 tagger!

As for tags themselves, if you're not sure about their definitions, or when they're meant to be used - just check them on e621, as it has more fleshed out tag database than e6ai: https://e621.net/tags

If you have any issues, please ask in the official RedRocket Joint Tagger Project discord channel, as I am very bad at helping people https://discord.com/channels/1019133813105905664/1254974507819733017

Have fun and remember :

tagcorrectlymotherfucker

Huge ass credits to: TheUnamusedFox, Velvet Toroyashi, Meus Artis, Jaxbline, Fluffscaler, and the whole RedRocket crew

Edit Report
Pub: 28 Feb 2025 17:18 UTC
Edit: 28 Feb 2025 17:26 UTC
Views: 127