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).
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].)
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++).
"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").
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.
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.
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 | @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).
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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 | @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
|
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.
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!
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).
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
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!
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".
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