diff --git a/group_tags/.gitignore b/group_tags/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5551c09f87ced81e33430848792f11efd412f960 --- /dev/null +++ b/group_tags/.gitignore @@ -0,0 +1,3 @@ +custom.yaml +prepend.yaml +append.yaml \ No newline at end of file diff --git a/group_tags/de_DE.yaml b/group_tags/de_DE.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bba91fc08a50f5b28f8d533358de6597190b30ad --- /dev/null +++ b/group_tags/de_DE.yaml @@ -0,0 +1,4435 @@ +# 👍Hinweis zur Integration von Stichworten: 路过银河 (Zhihu), Unbekannter Autor (Google Drive), Internet usw. Vielen Dank an diese altruistischen Autoren! +# +# ⚠️Es wird empfohlen, den Inhalt dieser Datei nicht zu ändern, da der Autor dieser Datei möglicherweise regelmäßige Updates vornimmt. Wenn Sie diese Datei ändern, kann es zu Konflikten bei Updates kommen. +# ⚠️Wenn Sie benutzerdefinierte Stichwortgruppen erstellen möchten, kopieren Sie bitte diese Datei, benennen Sie sie in "custom.yaml" um und bearbeiten Sie sie dann in der "custom.yaml". +# ⚠️Das Plugin liest zuerst die "custom.yaml"-Datei. Wenn die "custom.yaml"-Datei nicht vorhanden ist, wird diese Datei gelesen. +# +# ⚠️Wenn Sie nur Ihren eigenen Inhalt vor der aktuellen Datei hinzufügen möchten, können Sie eine prepend.yaml-Datei erstellen. +# ⚠️Wenn Sie nur Ihren eigenen Inhalt nach der aktuellen Datei hinzufügen möchten, können Sie eine append.yaml-Datei erstellen. +# ⚠️custom.yaml: Überschreibt die aktuelle Datei +# ⚠️prepend.yaml: Fügt vor der aktuellen Datei hinzu +# ⚠️append.yaml: Fügt nach der aktuellen Datei hinzu +# +# ⚠️Wenn Sie nur Ihren eigenen Inhalt nach der aktuellen Datei hinzufügen möchten, können Sie eine append.yaml-Datei erstellen. +# ⚠️custom.yaml: Überschreibt die aktuelle Datei +# ⚠️append.yaml: Fügt ihn am Ende der aktuellen Datei hinzu +# +# ⚠️Es wird empfohlen, einen professionellen Texteditor (wie Visual Studio Code) zu verwenden, um diese Datei zu bearbeiten, um Codierungs- und Formatierungsfehler zu vermeiden. +# ⚠️Verwenden Sie bitte nicht den in Windows enthaltenen Notepad zur Bearbeitung dieser Datei. +# ⚠️Nach der Bearbeitung können Sie die Formatierung des Inhalts auf https://www.yamllint.com/ überprüfen. + +# Format des Inhalts: +# - name: Name der ersten Kategorie +# groups: Liste der Unterkategorien +# - name: Name der Unterkategorie +# color: Standardfarbe des Stichworttextes (kann leer sein), CSS-Farbcode, z. B.: #ff0000, rot, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: Liste der Stichwörter +# - Englisches Stichwort: Lokalisierung der Übersetzung +# - Englisches Stichwort: Lokalisierung der Übersetzung +# ... + +# Die Lokalisierung der Inhalte in dieser Datei wurde maschinell übersetzt und kann ungenau sein. Wenn Sie Fehler feststellen, können Sie gerne einen Pull Request auf Github einreichen, um sie zu korrigieren. +# Wenn es Probleme mit der Kategorisierung, Stichworten oder Übersetzungen gibt, können Sie gerne ein Issue auf Github einreichen, um Feedback zu geben. + +- name: Charakter + groups: + - name: Objekt + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1 Mädchen + 1boy: 1 Junge + 2girls: 2 Mädchen + 2boys: 2 Jungen + 3girls: 3 Mädchen + 3boys: 3 Jungen + girl: Mädchen + boy: Junge + solo: Einzelperson + multiple_girls: Mehrere Mädchen + little_girl: Kleines Mädchen + little_boy: Kleiner Junge + shota: Shota + loli: Loli + kawaii: Niedlich + mesugaki: Mesugaki + adorable_girl: Niedliches Mädchen + bishoujo: Bishoujo + gyaru: Gyaru + sisters: Schwestern + ojousama: Ojousama + female: Weiblich + mature_female: Reife Frau + mature: Reif + female_pervert: Weibliche Perversin + male: Männlich + milf: Milf + otoko_no_ko: Otoko no Ko + crossdressing: Crossdressing + + - name: Identität + color: rgba(255, 123, 2, .4) + tags: + lifeguard: Rettungsschwimmer + boxer: Boxer + scientist: Wissenschaftler + athletes: Sportler + office lady: Büroangestellte + monk: Mönch + crobat: Akrobat + nun: Nonne + nurse: Krankenschwester + stewardess: Stewardess + student: Student + waitress: Kellnerin + teacher: Lehrer + racer: Rennfahrer + police: Polizist + soldier: Soldat + cheerleader: Cheerleader + actor: Schauspieler + actress: Schauspielerin + spy: Spion + agent: Agent + assassin: Attentäter + poet: Dichter + samurai: Samurai + dancing girl: Tänzerin + motorcyclist: Motorradfahrer + hacker: Hacker + magician: Magier + detective: Detektiv + doll: Puppe + maid: Dienstmädchen + pilot: Pilot + diver: Taucher + bar censor: Bar-Zensor + missionary: Missionar + firefighter: Feuerwehrmann + goalkeeper: Torwart + chef: Koch + astronaut: Astronaut + cashier: Kassierer + mailman: Briefträger + barista: Barista + the hermit: Der Eremit + makihitsuji: Schafhirte + office_lady: Büroangestellte + race_queen: Rennkönigin + queen: Königin + doctor: Arzt + knight: Ritter + housemaid: Hausmädchen + dancer: Tänzer + ballerina: Ballerina + gym_leader: Fitnesstrainer + trap: Trap + female: Frau + harem: Harem + idol: Idol + male: Mann + priest: Priester + cleric: Kleriker + wa_maid: Wa-Maid + yaoi: Yaoi + yuri: Yuri + albino: Albino + amputee: Amputierter + + - name: 2D-Charakter + color: rgba(255, 123, 2, .4) + tags: + pokemon: Pokémon + teddy bear: Teddybär + mario: Mario + pikachu: Pikachu + neon genesis evangelion: Neon Genesis Evangelion + hatsune miku: Hatsune Miku + harry potter: Harry Potter + doraemon: Doraemon + saint seiya: Saint Seiya + gojou satoru: Gojou Satoru + avengers: Avengers + mazinger: Mazinger + captain america: Captain America + crayon shin-chan: Crayon Shin-chan + slam dunk: Slam Dunk + sun wukong: Sun Wukong + witch: Hexe + miko: Miko + ninja: Ninja + vampire: Vampir + knight: Ritter + magical_girl: Magisches Mädchen + orc: Ork + druid: Druide + elf: Elfe + fairy: Fee + furry: Furry + mermaid: Meerjungfrau + kamen rider: Kamen Rider + magister: Magister + spider-man: Spider-Man + santa alter: Santa Alter + monster_girl: Monstermädchen + cat_girl: Katzengirl + dog_girl: Hundemädchen + fox_girl: Fuchsmädchen + kitsune: Kitsune + kyuubi: Kyuubi + raccoon_girl: Waschbärmädchen + wolf_girl: Wolfsjunge + bunny_girl: Hasenmädchen + horse_girl: Pferdemädchen + cow_girl: Kuhmädchen + dragon_girl: Drachenmädchen + centaur: Zentaur + slime_musume: Schleimmädchen + spider_girl: Spinnenmädchen + dominatrix: Domina + sailor_senshi: Sailor-Kriegerin + mecha: Mecha + mecha_musume: Mecha-Mädchen + humanoid_robot_: Humanoider Roboter + cyborg: Cyborg + angel: Engel + devil: Teufel + dark_elf: Dunkelelfe + imp: Imp + succubus: Succubus + giantess: Riesin + minigirl: Minimädchen + monster: Monster + multiple girls: Magisches Mädchen + no humans: Nicht menschlich + + - name: Alter + color: rgba(255, 123, 2, .4) + tags: + toddler: Kleinkind + kindergartener: Kindergartenkind + child: Kind + underage: Minderjährig + teenager: Teenager (13-19) + teen: Teenager (13-19) + early teen: Früher Teenager (11-15) + adult: Erwachsener + elder: Älterer Mensch + old: Alt + loli: Loli + shota: Shota + + - name: Hautfarbe + color: rgba(255, 123, 2, .4) + tags: + white_skin: Weiße Haut + pale_skin: Blasse Haut + fair_skin: Helle Haut + brown_skin: Braune Haut + deep_skin: Dunkle Haut + dark_skin: Dunkle Haut + black_skin: Schwarze Haut + shiny_skin: Glänzende Haut + white_marble_glowing_skin: Weiße Marmorleuchtende Haut + tattoo: Tattoo + tan: Bräunung + tanlines: Bräunungslinien + oil: Ölig + + - name: Körperbau + color: rgba(255, 123, 2, .4) + tags: + skinny: Dünn + plump: Füllig + curvy: Kurvig + gyaru: Gyaru + pregnant: Schwanger + fat: Fett + thin: Dünn + slender: Schlank + glamor: Glamourös + tall: Groß + petite: Zierlich + chibi: Chibi + muscular: Muskulös + + - name: Gesichtsform + color: rgba(255, 123, 2, .4) + tags: + slender face: Schmales Gesicht + round face: Rundes Gesicht + oval face: Ovalgesicht + baby face: Babygesicht + inverted triangle face: Umgekehrtes Dreiecksgesicht + heart shaped face: Herzförmiges Gesicht + diamond face: Diamantgesicht + square face: Quadratisches Gesicht + long face: Langes Gesicht + triangular face: Dreiecksgesicht + + - name: Haare + color: rgba(255, 123, 2, .4) + tags: + white hair: Weiße Haare + blonde hair: Blondes Haar + silver hair: Silbernes Haar + grey hair: Graues Haar + purple hair: Violettes Haar + red hair: Rotes Haar + yellow hair: Gelbes Haar + green hair: Grünes Haar + blue hair: Blaues Haar + black hair: Schwarzes Haar + brown hair: Braunes Haar + straight_hair: Gerades Haar + short hair: Kurzes Haar + curly hair: Lockiges Haar + long hair: Langes Haar + pony-tail: Pferdeschwanz + bunches: Zöpfe + streaked hair: Gesträhntes Haar + grey gradient hair: Grauer Verlauf + light brown hair: Hellbraunes Haar + two-tone hair: Zweifarbiges Haar + multicolored hair: Mehrfarbiges Haar + high ponytail: Hoher Pferdeschwanz + twintails: Doppelzöpfe + braided ponytail: Geflochtener Pferdeschwanz + ponytail: Pferdeschwanz + short ponytail: Kurzer Pferdeschwanz + twin braids: Doppelzöpfe + medium hair: Mittellanges Haar + very long hair: Sehr langes Haar + braided bangs: Geflochtener Pony + swept bangs: Seitlich gefegter Pony + hair between eyes: Haar zwischen den Augen + bob cut: Bob-Schnitt + hime cut: Hime-Schnitt + crossed bangs: Überkreuzter Pony + bangs: Pony + blunt bangs: Gerader Pony + air bangs: Luftiger Pony + hair wings: Haarflügel + long bangs: Langer Pony + side_blunt_bangs: Seitlicher gerader Pony + centre parting bangs: Mittelscheitelpartie Pony + asymmetric bangs: Asymmetrischer Pony + disheveled hair: Unordentliches Haar + wavy hair: Gewelltes Haar + hair in takes: Haar in Strähnen + hair pink flowers: Haar mit rosa Blumen + ahoge: Ahoge + antenna hair: Antennenhaare + Side ponytail: Seitlicher Pferdeschwanz + forehead: Stirn + drill hair: Bohrfrisur + hair bun: Haarknoten + double bun: Doppelknoten + messy hair: Unordentliche Frisur + hair_flaps: Haarflappen + + - name: Gesicht + color: rgba(255, 123, 2, .4) + tags: + makeup: Make-up + fundoshi: Fundoshi + eyeshadow: Lidschatten + lipstick: Lippenstift + mascara: Mascara + long_eyelashes: Lange Wimpern + red_lips_: Rote Lippen + facepaint: Gesichtsbemalung + lipgloss: Lipgloss + colored_eyelashes: Farbige Wimpern + blush: Rouge + light_blush: Leichtes Rouge + anime_style_blush: Anime-Stil Rouge + nose_blush: Nasenrouge + nosebleed: Nasenbluten + bruise_on_face: Bluterguss im Gesicht + facial_mark: Gesichtsmarkierung + forehead_mark: Stirnmarkierung + anger_vein: Wutader + mole: Muttermal + mole_under_eye: Muttermal unter dem Auge + freckles: Sommersprossen + food_on_face: Essen im Gesicht + rice_on_face: Reis im Gesicht + cream_on_face: Sahne im Gesicht + mustache: Schnurrbart + goatee: Spitzbart + whisker_markings: Schnurrhaarmarkierungen + scar: Narbe + scar_across_eye: Narbe über dem Auge + smoking_pipe: Raucherpfeife + tattoo: Tattoo + + - name: Ohren + color: rgba(255, 123, 2, .4) + tags: + elf ears: Elfenohren + fake animal ears: Künstliche Tierohren + cat ears: Katzenohren + dog ears: Hundohren + fox ears: Fuchsohren + bunny ears: Hasenohren + bear ears: Bärenohren + wolf ears: Wolfsohren + horse ears: Pferdeohren + cow ears: Kuhohren + mouse ears: Mäuseohren + pig ears: Schweineohren + sheep ears: Schafsohren + deer ears: Hirschohren + goat ears: Ziegenohren + antelope ears: Antilopenohren + rhino ears: Nashornohren + elephant ears: Elefantenohren + bat ears: Fledermausohren + dragon ears: Drachenohren + demon ears: Dämonenohren + angel ears: Engelsohren + alien ears: Außerirdische Ohren + ear_blush: Erröten der Ohren + ear_ornament: Ohrenschmuck + ear_piercing: Ohrenpiercing + animal_ears: Tierohren + ears_down: Hängende Ohren + fake_animal_ears: Künstliche Tierohren + floppy_ears: Schlappohren + animal_ear_fluff: Flauschige Tierohren + fox_ears: Fuchsohren + cat_ears: Katzenohren + lion_ears: Löwenohren + jaguar_ears: Jaguarohren + tiger_ears: Tigerohren + dog_ears: Hundohren + coyote_ears: Kojotenohren + bunny_ears: Hasenohren + horse_ears: Pferdeohren + pointy_ears: Spitzohren + long_pointy_ears: Lange Spitzohren + mouse_ears: Mäuseohren + raccoon_ears: Waschbärenohren + squirrel_ears: Eichhörnchenohren + bear_ears: Bärenohren + panda_ears: Pandaohren + bat_ears: Fledermausohren + robot_ears: Roboterohren + extra_ears: Zusätzliche Ohren + ears_through_headwear: Ohren durch Kopfbedeckung + alpaca_ears: Alpakaohren + horns: Hörner + fake_horns: Künstliche Hörner + dragon_horns: Drachenhörner + oni_horns: Oni-Hörner + antlers: Geweih + curled_horns: Gekrümmte Hörner + goat_horns: Ziegenhörner + hair_on_horn: Haar auf dem Horn + + - name: Augenbrauen + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: Dicke Augenbrauen + cocked eyebrow: Hochgezogene Augenbraue + short eyebrows: Kurze Augenbrauen + v-shaped eyebrows: V-förmige Augenbrauen + + - name: Augen + color: rgba(255, 123, 2, .4) + tags: + blue eyes: blaue Augen + red eyes: rote Augen + brown eyes: braune Augen + green eyes: grüne Augen + purple eyes: violette Augen + yellow eyes: gelbe Augen + pink eyes: rosa Augen + black eyes: schwarze Augen + aqua eyes: aqua Augen + orange eyes: orangefarbene Augen + grey eyes: graue Augen + multicolored eyes: mehrfarbige Augen + white eyes: weiße Augen + gradient eyes: gradient Augen + closed eyes: geschlossene Augen + half-closed eyes: halb geschlossene Augen + crying with eyes open: weinende Augen mit offenen Augen + narrowed eyes: zusammengekniffene Augen + hidden eyes: versteckte Augen + heart-shaped eyes: herzförmige Augen + button eyes: Knopfaugen + cephalopod eyes: Kopffüßer-Augen + eyes visible through hair: Augen sichtbar durch Haare + glowing eyes: leuchtende Augen + empty eyes: leere Augen + rolling eyes: rollende Augen + cross eyed: schielende Augen + blank eyes: leere Augen + no eyes: keine Augen + sparkling eyes: funkelnde Augen + extra eyes: zusätzliche Augen + crazy eyes: verrückte Augen + solid circle eyes: solide Kreisaugen + solid oval eyes: solide ovale Augen + uneven eyes: ungleichmäßige Augen + blood from eyes: Blut aus den Augen + eyeshadow: Lidschatten + red eyeshadow: roter Lidschatten + blue eyeshadow: blauer Lidschatten + purple eyeshadow: violetter Lidschatten + pink eyeshadow: rosa Lidschatten + green eyeshadow: grüner Lidschatten + bags under eyes: Augenringe + ringed eyes: geränderte Augen + covered eyes: bedeckte Augen + covering eyes: Augen bedeckend + shading eyes: Augen abschattend + devil eyes: Teufelsaugen + slit pupils: schlitzaugen + bloodshot eyes: gerötete Augen + tsurime: nach oben geschwungene Augen + tareme: nach unten geschwungene Augen + constricted pupils: verengte Pupillen + devil pupils: Teufelspupillen + snake pupils: Schlangenpupillen + pupils sparkling: funkelnde Pupillen + flower-shaped pupils: blumenförmige Pupillen + heart-shaped pupils: herzförmige Pupillen + heterochromia: Heterochromie + color contact lenses: farbige Kontaktlinsen + longeyelashes: lange Wimpern + colored eyelashes: farbige Wimpern + mole under eye: Muttermal unter dem Auge + light_eyes: helle Augen + glowing_eye: leuchtendes Auge + shiny_eyes: glänzende Augen + sparkling_eyes: funkelnde Augen + gradient_eyes: gradient Augen + anime_style_eyes: Anime-Stil Augen + water_eyes: wässrige Augen + beautiful_detailed_eyes: schöne detaillierte Augen + solid_oval_eyes_: solide ovale Augen + solid_circle_pupils: solide Kreispupillen + blush_stickers: Rouge-Aufkleber + heart_in_eye: Herz im Auge + evil_eyes: böse Augen + crazy_eyes: verrückte Augen + empty_eyes: leere Augen + covered_eyes: bedeckte Augen + hollow_eyes: sternförmige Pupillen + multicolored_eyes: vielfarbige Augen + ringed_eyes: geränderte Augen + sanpaku: Sanpaku-Augen (versetzte Pupillen) + mismatched_sclera: ungleiche Sklera + eye_relfection: Augenreflexion (keine Wirkung) + mechanical_eye: mechanisches Auge + cephalopod_eyes: Kopffüßer-Augen + clock_eyes: Uhrenaugen + compound_eyes: zusammengesetzte Augen + fisheye: Fischaugen + devil_eyes: Teufelsaugen + bloodshot_eyes: blutunterlaufene Augen + blood_from_eyes: Blut aus den Augen + aqua_eyes: aqua Augen + solid_eyes: feste Augen + sparkling_anime_eyes: funkelnde Anime-Augen + blue_eyes: blaue Augen + brown_eyes: braune Augen + closed_eyes: geschlossene Augen + crying_with_eyes_open: weinende Augen mit offenen Augen + extra_eyes: zusätzliche Augen + eye_contact: Blickkontakt + eye_of_horus: Horus-Auge + eyeball: Augapfel + eyeliner: Eyeliner + eyes: Augen + glint: funkelnder Blick + glowing_eyes: leuchtende Augen + half-closed_eye: halb geschlossenes Auge + half-closed_eyes: halb geschlossene Augen + horizontal_pupils: horizontale Pupillen + jitome: verächtlicher Blick + light_brown_eyes: hellbraune Augen + no_eyes: keine Augen gezeichnet + one-eyed: einäugig + reflective_eyes: reflektierende Augen + silver_eyes: silberne Augen + spiral_eyes: Wirbelaugen + third_eye: drittes Auge + uneven_eyes: ungleichmäßige Augen + flaming_eye: Flammenauge + eyes_closed: Augen geschlossen + half_closed_eyes: halb geschlossene Augen + narrowed_eyes: zusammengekniffene Augen + squinting: schielend + tears: Tränen + sharp_eyes: scharfe Augen + slanted_eyes: schräge Augen + upturned_eyes: nach oben gewendete Augen + cross-eyed: schielend + hair_over_eyes: Haare über den Augen + eyes_visible_through_hair: Augen sichtbar durch Haare + hair_over_one_eye: Haar über einem Auge + one_eye_covered: ein Auge bedeckt + bags_under_eyes: Augenringe + eyepatch: Augenklappe + medical_eyepatch: medizinische Augenklappe + scar_across_eye: Narbe über dem Auge + no_blindfold: keine Augenbinde + no_eyepatch: keine Augenklappe + ahegao: Ahegao-Gesichtsausdruck + + - name: Pupillen + color: rgba(255, 123, 2, .4) + tags: + pupils: Pupillen + bright_pupils: helle Pupillen + heterochromia: Heterochromie + slit_pupils: Schlitzpupillen + snake_pupils: Schlangenpupillen + symbol-shaped_pupils: symbolförmige Pupillen + heart-shaped_pupils: herzförmige Pupillen + diamond-shaped_pupils: diamantförmige Pupillen + star-shaped_pupils: sternförmige Pupillen + dilated_pupils: erweiterte Pupillen + no_pupils: keine Pupillen + ringed_eyes: geränderte Augen + constricted_pupils: verengte Pupillen (keine Wirkung) + star_in_eye: Stern im Auge + x-shaped_pupils: X-förmige Pupillen + horizontal_pupils: horizontale Pupillen + dashed_eyes: gestrichelte Augen + butterfly-shaped_pupils: schmetterlingsförmige Pupillen + rectangular_pupils: rechteckige Pupillen + square_pupils: quadratische Pupillen + dot_pupils: Punkt-Pupillen + extra_pupils: zusätzliche Pupillen + mismatched_pupils: ungleiche Pupillen + "+_+": Kreuzstern-Pupillen + cross-shaped_pupils: kreuzförmige Pupillen (keine Wirkung) + purple_pupils: violette Pupillen + orange_pupils: orangefarbene Pupillen + blue_pupils: blaue Pupillen + symbol_in_eye: Symbol im Auge + + - name: Nase + color: rgba(255, 123, 2, .4) + tags: + pointed nose: spitzes Nase + small nose: kleine Nase + big nose: große Nase + no_nose: keine Nase + dot_nose: Punkt-Nase + nose_bubble: Nasenbläschen + smelling: riechen + nose: Nase + nosebleed: Nasenbluten + snot: Nasenschleim + snout: Schnauze + + - name: Mund + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: Kastanienmund + thick lips: dicke Lippen + puffy lips: geschwollene Lippen + lipstick: Lippenstift + heart-shaped mouth: herzförmiger Mund + pout: schmollen + open mouth: offener Mund + closed mouth: geschlossener Mund + shark mouth: Haifischmaul + parted lips: geöffnete Lippen + mole under mouth: Muttermal unter dem Mund + open_mouth: offener Mund + gasping: keuchend + Slightly_open_mouth: leicht geöffneter Mund + wavy_mouth: welliger Mund + close_mouth: geschlossener Mund + dot_mouth: Punkt-Mund + no_mouth: kein Mund + gag: knebeln + gnaw: nagen + :3: Katzenmund + :o: offener Mund + :>: V-Mund + parted_lips: geöffnete Lippen + bit_gag: Mund zugebissen + chestnut_mouth: Kastanienmund + cleave_gag: Mund zugebunden + closed_mouth: geschlossener Mund + covered_mouth: bedeckter Mund + extra_mouth: zusätzlicher Mund + hair_in_mouth: Haare im Mund + hair_tie_in_mouth: Haargummi im Mund + homu: schmollen + lips: Lippen + mouth: Mund + mouth_hold: mit dem Mund halten + oral: oral + pacifier: Schnuller + Pouted lips: gespitzte Lippen + sideways_mouth: seitlicher Mund + spoon_in_mouth: Löffel im Mund + triangle_mouth: dreieckiger Mund + saliva: Speichel + drooling: sabbern + mouth_drool: Mund mit Tropfenform von Speichel + + - name: Zähne + color: rgba(255, 123, 2, .4) + tags: + teeth: Zähne + upper_teeth: obere Zähne + fang: Reißzahn + skin_fang: hautfarbener Reißzahn + round_teeth: runde Zähne + sharp_teeth: scharfe Zähne + clenched_teeth: zusammengebissene Zähne + tongue: Zunge + buck_teeth: Hasenzähne + fang_out: herausstehende Reißzähne + fangs: Reißzähne + spiked_club: stacheliger Schläger + tooth: Zahn + toothbrush: Zahnbürste + tusks: Stoßzähne + shark_mouth: Haifischzähne + + - name: Zunge + color: rgba(255, 123, 2, .4) + tags: + :q: Zunge auf Oberlippe + :p: Zunge auf Unterlippe + ;p: Zwinkernde Zunge + french_kiss: Zungenkuss + long_tongue: lange Zunge + oral_invitation: orale Einladung + tongue: Zunge + tongue_out: Zunge herausstrecken + uvula: Uvula + + - name: Fingernägel + color: rgba(255, 123, 2, .4) + tags: + fingernails: Fingernägel + toenails: Zehennägel + nail_polish: Nagellack + toenail_polish: Zehennagellack + black_nails: schwarze Nägel + red_nails: rote Nägel + pink_nails: rosa Nägel + long_fingernails: lange Fingernägel + nail: Nagel + multicolored_nails: mehrfarbige Nägel + nail_art: Nagelkunst + brown_vest: braune Weste + + - name: Schultern + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: nackte Schultern + collarbonea: Schlüsselbeine + armpits: Achselhöhlen + armpit_crease: Achselhöhlenfalte + + - name: Brust + color: rgba(255, 123, 2, .4) + tags: + chest: Brust + flat chest: flache Brust + small_breasts: kleine Brüste + medium breasts: mittlere Brüste + big breasts: große Brüste + huge breasts: riesige Brüste + gigantic breasts: gigantische Brüste + between breasts: zwischen den Brüsten + breasts apart: getrennte Brüste + hanging breasts: hängende Brüste + bouncing breasts: wippende Brüste + cleavage: Dekolleté + areola: Brustwarzenhof + nipples: Brustwarzen + pectorals: Brustmuskeln + large_pectorals: große Brustmuskeln + unbuttoned clothes: aufgeknöpfte Kleidung + + - name: Taille + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: schmale Taille + slender_waist: schlanke Taille + + - name: Bauch + color: rgba(255, 123, 2, .4) + tags: + midriff: Bauch + belly: Bauch + absolute_territory: Sixpack + inflation: aufgeblähter Bauch + navel: Bauchnabel + groin: Leistengegend + pregnant: schwanger + + - name: Flügel + color: rgba(255, 123, 2, .4) + tags: + wings: Flügel + bat_wings: Fledermausflügel + butterfly_wings: Schmetterlingsflügel + black_wings: schwarze Flügel + demon_wings: Dämonenflügel + asymmetrical_wings: asymmetrische Flügel + detached_wings: abgetrennte Flügel + fairy_wings: Feenflügel + fake_wings: künstliche Flügel + fiery_wings: flammende Flügel + insect_wings: Insektenflügel + large_wings: große Flügel + low_wings: niedrige Flügel + mini_wings: Mini-Flügel + multicolored_wings: mehrfarbige Flügel + multiple_wings: mehrere Flügelpaare + no_wings: keine Flügel + winged_helmet: Helm mit Flügeln + +- name: Kleidung + groups: + - name: Formelle Kleidung + color: rgba(230, 84, 128, .4) + tags: + suit: Anzug + tuxedo: Frack + formal_dress: Abendkleid + evening_gown: Abendkleid + canonicals: Abendkleidung + cocktail_dress: Cocktailkleid + gown: Abendkleid für Frauen + japanese_clothes: Kimono + kimono: Kimono + sleeveless_kimono: ärmelloser Kimono + short_kimono: kurzer Kimono + print_kimono: bedruckter Kimono + furisode: Furisode (Teil des Kimonos) + obi: Obi (Gürtel für Kimono) + sash: Schärpe + cheongsam: Qipao + china_dress: Qipao + print_cheongsam: bedrucktes Qipao + pelvic_curtain: Vorderer Teil eines Qipao-Kleidungsstücks + wedding_dress: Hochzeitskleid + uchikake: Uchikake (japanisches Hochzeitskleid) + school_uniform: Schuluniform + sailor: Matrosenuniform + serafuku: Matrosenuniform + summer_uniform: Sommeruniform + kindergarten_uniform: Kindergartenuniform + police_uniform: Polizeiuniform + naval_uniform: Marineuniform + military_uniform: Militäruniform + ss_uniform/nazi_uniform: SS-Uniform/Nazi-Uniform + maid: Dienstmädchenkostüm + stile_uniform: Uniform für Dienerinnen + miko: Miko-Kleidung + overalls: Arbeitskleidung + business_suit: Geschäftskleidung + nurse: Krankenschwester + chef_uniform: Kochuniform + labcoat: Laborkittel + cheerleader: Cheerleader-Kleidung + band_uniform: Banduniform + space_suit: Raumanzug + leotard: Einteiler + domineering: Nonnenkleid + + - name: Stil + color: rgba(230, 84, 128, .4) + tags: + china_dress: Chinesische Kleidung + chinese_style: Chinesischer Stil + traditional_clothes: Traditionelle Kleidung | Volkstracht + japanese_clothes: Japanische Kleidung + hanten_(clothes): Hanten (japanische Kleidung) + hanbok: Hanbok (koreanische Kleidung) + korean_clothes: Koreanische Kleidung + western: Western-Stil + german_clothes: Deutsche Kleidung + gothic: Gothic-Stil + lolita: Lolita-Stil + gothic_lolita: Gothic Lolita-Stil + byzantine_fashion: Byzantinischer Stil + Tropical: Tropische Merkmale + indian_style: Indischer Stil + Ao_Dai: Ao Dai (vietnamesische Schuluniform) + ainu_clothes: Ainu-Kleidung + arabian_clothes: Arabische Kleidung + egyptian_clothes: Ägyptische Kleidung + costume: Kostüm + animal_costume: Tierkostüm + bunny_costume: Hasenkostüm + adapted_costume: Abgewandeltes Kostüm + cat_costume: Katzenkostüm + dog_costume: Hunde-Kostüm + bear_costume: Bärenkostüm + embellished_costume: Verziertes Kostüm + santa_costume: Weihnachtskostüm + halloween_costume: Halloween-Kostüm + kourindou_tengu_costume: Kourindou Tengu-Kostüm + alternate_costume: Alternatives Kostüm + costume_switch: Kostümwechsel + meme_attire: Meme-Kleidung + + - name: Freizeitkleidung + color: rgba(230, 84, 128, .4) + tags: + casual: Freizeitkleidung + loungewear: Freizeitkleidung + hoodie: Kapuzenpullover + homewear: Hauskleidung + pajamas: Schlafanzug + nightgown: Nachthemd + sleepwear: Schlafkleidung + babydoll: Babydoll-Nachtwäsche + print_pajamas: bedruckter Schlafanzug + polka_dot_pajamas: gepunkteter Schlafanzug + yukata: Yukata (japanischer Bademantel) + chinese_clothes: Tang-Anzug + hanfu: Hanfu (traditionelle chinesische Kleidung) + Taoist robe: Daoistischer Umhang + robe: Robe + robe_of_blending: gemischte Robe + cloak: Umhang + hooded_cloak: Kapuzenumhang + winter_clothes: Winterkleidung + down jacket: Daunenjacke + santa: Weihnachtsmann-Kostüm + harem_outfit: Harem-Kleidung + shrug_(clothing): Schulterzucken (Kleidungsstück) + + - name: Sportbekleidung + color: rgba(230, 84, 128, .4) + tags: + sportswear: Sportbekleidung + gym_uniform: Sportbekleidung + athletic_leotard: Turnanzug + tennis_uniform: Tennisbekleidung + baseball_uniform: Baseball-Uniform + letterman_jacket: Baseballjacke + volleyball_uniform: Volleyballbekleidung + biker_clothes: Fahrradbekleidung + bikesuit: Radsportanzug + wrestling_outfit: Ringerbekleidung + dougi: Do-Gi (Kampfsportbekleidung) + + - name: Badebekleidung + color: rgba(230, 84, 128, .4) + tags: + swimsuit: Badeanzug + swimwear: Bademode + wet_swimsuit: nasser Badeanzug + school_swimsuit: Schulbadeanzug + new_school_swimsuit: neuer Schulbadeanzug + old_school_swimsuit: alter Schulbadeanzug + competition_school_swimsuit: Wettkampf-Schulbadeanzug + competition_swimsuit: Wettkampfbadeanzug + casual_one-piece_swimsuit: einteiliger Freizeitbadeanzug + front_zipper_swimsuit: Badeanzug mit vorderem Reißverschluss + highleg_swimsuit: hochgeschnittener Badeanzug + one-piece_swimsuit: einteiliger Badeanzug + swimsuit_of_perpetual_summer: Badeanzug des ewigen Sommers (FGO-Schulmädchen-Robe) + bikini: Bikini + highleg_bikini: hochgeschnittener Bikini + lowleg_bikini: tiefgeschnittener Bikini + slingshot_swimsuit: V-förmiger Badeanzug + sailor_bikini: Matrosen-Bikini + shell_bikini: Muschel-Bikini + sports_bikini: Sport-Bikini + string_bikini: String-Bikini + strapless_bikini: trägerloser Bikini + side-tie_bikini: seitlich gebundener Bikini + front-tie_bikini_top: Bikinioberteil mit vorderer Schleife + multi-strapped_bikini: Bikini mit mehreren Trägern + thong_bikini: Tanga-Bikini + front-tie_bikini: von vorne gebundener Bikini + frilled_bikini: gerüschter Bikini + o-ring_bikini: Bikini mit O-Ring + eyepatch_bikini: Augenklappen-Bikini + layered_bikini: geschichteter Bikini + bow_bikini: Bikini mit Schleife + frilled_swimsuit: gerüschter Badeanzug + polka_dot_swimsuit: gepunkteter Badeanzug + striped_swimsuit: gestreifter Badeanzug + striped_bikini: gestreifter Bikini + plaid_bikini: karierte Bikini + polka_dot_bikini: gepunkteter Bikini + print_bikini: bedruckter Bikini + american_flag_bikini: Bikini mit amerikanischer Flagge + german_flag_bikini: Bikini mit deutscher Flagge + impossible_swimsuit: Badeanzug in Körperbemalungsoptik + bikini_top: nur Bikinioberteil + bikini_top_only: nur Bikinioberteil + bikini_top_removed: Bikinioberteil abgenommen + bikini_bottom_only: nur Bikinihose + bikini_bottom: Bikinihose + untied_bikini: ungebundener Bikini + bikini_aside: Bikini zur Seite geschoben + swimsuit_aside: Badeanzug zur Seite geschoben + swimsuit_under_clothes: Badeanzug unter der Kleidung + torn_swimsuit: zerrissener Badeanzug + bikini_skirt: Bikinirock + swim_briefs: Badehose + swim_cap: Badekappe + swim_trunks: Badehose für Männer + + - name: Uniform + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: angepasste Uniform + anzio_military_uniform: Anzio-Militäruniform + anzio_school_uniform: Anzio-Schuluniform + aria_company_uniform: Aria-Firmenuniform + ashford_academy_uniform: Ashford-Akademieuniform + bc_freedom_military_uniform: BC-Freedom-Militäruniform + chaldea_uniform: Chaldea-Uniform + chi-hatan_military_uniform: Chi-Ha-Tan-Militäruniform + fleur_de_lapin_uniform: Fleur-de-Lapin-Mädchenuniform + garreg_mach_monastery_uniform: Garreg Mach-Klosteruniform + gem_uniform_(houseki_no_kuni): Edelsteinuniform (Houseki no Kuni) + hanasakigawa_school_uniform: Hanasakigawa-Schuluniform + hikarizaka_private_high_school_uniform: Hikarizaka-Privatoberschuluniform + homurahara_academy_uniform: Homurahara-Akademieuniform + kamiyama_high_school_uniform: Kamiyama-Oberschuluniform + keizoku_military_uniform: Keizoku-Militäruniform + kita_high_school_uniform: Kita-Oberschuluniform + kiyosumi_school_uniform: Kiyosumi-Oberschuluniform + luna_nova_school_uniform: Luna Nova-Schuluniform + meiji_schoolgirl_uniform: Meiji-Schulmädchenuniform + mitakihara_school_uniform: Mitakihara-Oberschuluniform + nami_junior_high_school_uniform: Nami-Mittelschuluniform + nanairogaoka_middle_school_uniform: Nanairogaoka-Mittelschuluniform + nanamori_school_uniform: Nanamori-Oberschuluniform + naoetsu_high_school_uniform: Naoetsu-Oberschuluniform + national_shin_ooshima_school_uniform: National Shin Ooshima-Schuluniform + ooarai_military_uniform: Ooarai-Militäruniform + ooarai_school_uniform: Ooarai-Schuluniform + otonokizaka_school_uniform: Otonokizaka-Schuluniform + paradis_military_uniform: Paradis-Militäruniform + polar_chaldea_uniform: Polar Chaldea-Uniform + pravda_military_uniform: Pravda-Militäruniform + pravda_school_uniform: Pravda-Schuluniform + rabbit_house_uniform: Rabbit House-Uniform + raimon_soccer_uniform: Raimon-Fußballuniform + ryouou_school_uniform: Ryouou-Schuluniform + sailor_senshi_uniform: Sailor-Moon-Uniform + sakugawa_school_uniform: Sakugawa-Schuluniform + sakuragaoka_high_school_uniform: Sakuragaoka-Oberschuluniform + saunders_military_uniform: Saunders-Militäruniform + saunders_school_uniform: Saunders-Schuluniform + seishou_elementary_school_uniform: Seishou-Grundschuluniform + shinda_sekai_sensen_uniform: Shinda Sekai Sensen-Uniform + shuuchiin_academy_uniform: Shuuchiin-Akademieuniform + shuujin_academy_uniform: Shuujin-Akademieuniform + st._gloriana's_military_uniform: St. Gloriana-Militäruniform + st._gloriana's_school_uniform: St. Gloriana-Schuluniform + starlight_academy_uniform: Starlight-Akademieuniform + tokisadame_school_uniform: Tokisadame-Oberschuluniform + tokiwadai_school_uniform: Tokiwadai-Schuluniform + tomoeda_elementary_school_uniform: Tomoeda-Grundschuluniform + tsab_ground_military_uniform: TSAB-Ground-Militäruniform + u.a._school_uniform: U.A.-Schuluniform + uranohoshi_school_uniform: Uranohoshi-Schuluniform + yasogami_school_uniform: Yasogami-Schuluniform + mismatched_bikini: ungleiches Bikini-Set + multicolored_bikini: mehrfarbiges Bikini-Set + + - name: Oberteil + color: rgba(230, 84, 128, .4) + tags: + blouse: Bluse + white_shirt: weißes Hemd + collared_shirt: Hemd mit Kragen + dress_shirt: Anzugshemd + sailor_shirt: Matrosenhemd + cropped_shirt: verkürztes Hemd + t-shirt: T-Shirt + casual T-shirts: Freizeit-T-Shirts + short sleeve T-shirts: T-Shirts mit kurzen Ärmeln + off-shoulder_shirt: schulterfreies Hemd + shrug_(clothing): Schulterzucken (Kleidungsstück) + cardigan: Strickjacke + criss-cross_halter: gekreuztes Haltertop + frilled_shirt: gerüschtes Hemd + sweatshirt: Sweatshirt + hawaiian_shirt: Hawaiihemd + hoodie: Kapuzenpullover + Impossible shirt: unmögliche Bluse + kappougi: Küchenschürze + plaid_shirt: kariertes Hemd + polo_shirt: Polohemd + print_shirt: bedrucktes Hemd + shirt: Hemd + sleeveless_hoodie: ärmelloser Kapuzenpullover + sleeveless_shirt: ärmelloses Hemd + striped_shirt: gestreiftes Hemd + tank_top: Tanktop + vest: Weste + waistcoat: Weste + camisole: Trägertop + tied_shirt: gebundenes Hemd + undershirt: Unterhemd + crop_top: Crop-Top + highleg: hochgeschnittenes Oberteil + clothing_cutout: ausgeschnittene Kleidung + back_cutout: rückenfreies Oberteil + cleavage_cutout: Ausschnitt mit Dekolleté + navel_cutout: Bauchnabelausschnitt + midriff: bauchfreies Oberteil + heart_cutout: herzförmiger Ausschnitt + torn_clothes: zerrissene Kleidung + torn_shirt: zerrissenes Hemd + undressing: beim Ausziehen + clothes_down: Kleidung herunterziehen + shirt_lift: Hemd hochheben + shirt_pull: Hemd herunterziehen + shirt_tucked_in: Hemd eingesteckt + clothes_tug: an der Kleidung ziehen + shirt_tug: am Hemd ziehen + untucked_shirt: ausgezogenes Hemd + lifted_by_self: selbst angehoben + untied: Hemd gelöst + open_clothes: offene Kleidung + unbuttoned shirt: aufgeknöpftes Hemd + button_gap: Knopflücke + partially_unbuttoned: teilweise aufgeknöpft + partially_unzipped: teilweise geöffneter Reißverschluss + clothes_removed: abgelegte Kleidung + shirt_removed: Hemd ausgezogen + wardrobe_error: Kleidungsfehler + undersized_clothes: zu kleine Kleidung + tight: enge Kleidung + wedgie: in die Pobacken gezogene Kleidung + wardrobe_malfunction: Kleiderpanne + taut_shirt: straffes Hemd + taut_clothes: straffe Kleidung + underbust: unter der Brust + oversized_clothes: zu große Kleidung + oversized_shirt: zu großes Hemd + borrowed_garments: geliehene Kleidung + strap_slip: Träger verrutscht + wet_shirt: nasses Hemd + clothes_theft: Kleiderdiebstahl + + - name: Mantel + color: rgba(230, 84, 128, .4) + tags: + blazer: Blazer + overcoat: Mantel + double-breasted: Zweireihig + long_coat: Langmantel + haori: Haori (eine Art weites Oberteil) + winter_coat: Wintermantel + hooded_coat: Kapuzenmantel + fur_coat: Pelzmantel + fur-trimmed_coat: Pelzbesetzter Mantel + duffel_coat: Dufflecoat + fishnet_top: Netzoberteil + parka: Parka + jacket: Jacke + jacket_partially_removed: Jacke teilweise entfernt + jacket_removed: Jacke entfernt + open_jacket: Offene Jacke (mit gespreizten Beinen) + cropped_jacket: Kurze Jacke + track_jacket: Trainingsjacke + hooded_track_jacket: Kapuzen-Trainingsjacke + military_jacket: Militärjacke + camouflage_jacket: Camouflagejacke + leather_jacket: Lederjacke + letterman_jacket: Collegejacke + bomber_jacket: Bomberjacke + denim_jacket: Jeansjacke + loating_jacket: Freizeitjacke + fur-trimmed_jacket: Pelzbesetzte Jacke + two-tone_jacket: Zweifarbige Jacke + trench_coat: Trenchcoat + furisode: Furisode (Teil eines Kimonos) + windbreaker: Windbreaker + raincoat: Regenmantel + hagoromo: Hagoromo (Federkleid) + tunic: Tailliertes Oberteil + cape: Umhang + capelet: Schulterumhang + winter_clothes: Winterkleidung + sweater: Pullover + pullover_sweaters: Pullover + ribbed_sweater: Rippstrickpullover + sweater_vest: Pulloverweste + backless_sweater: Rückenfreier Pullover + aran_sweater: Aran-Pullover + beige_sweater: Beiger Pullover + brown_sweater: Brauner Pullover + hooded_sweater: Kapuzenpullover + off-shoulder_sweater: Schulterfreier Pullover + striped_sweater: Gestreifter Pullover + virgin_killer_sweater: Virgin Killer Pullover + down_jacket: Daunenjacke + puffer_jacket: Steppjacke + + - name: Sonstiges + color: rgba(230, 84, 128, .4) + tags: + transparent: Transparent + burnt_clothes: Verbrannte Kleidung + dissolving_clothes: Sich auflösende Kleidung + dirty_clothes: Schmutzige Kleidung + expressive_clothes: Ausdrucksstarke Kleidung + impossible_clothes: Unrealistisch verpackte Kleidung + living_clothes: Lebendige Kleidung + leotard_under_clothes: Body unter der Kleidung + multicolored_clothes: Mehrfarbige Kleidung + ofuda_on_clothes: Kleidung mit Ofuda (Papieramulette) + wringing_clothes: Ausgewrungene Kleidung + clothesline: Wäscheleine + shiny_clothes: Glänzende Kleidung + kariginu: Kariginu (traditionelles japanisches Gewand) + front-tie_top: Vorne gebundenes Oberteil + jacket_on_shoulders: Jacke über den Schultern getragen + short_jumpsuit: Kurzer Jumpsuit + harness: Harness (Tragegestell) + rigging: Rigging (Schiffsausrüstung) + aiguillette: Aiguillette (Schulterkordel) + + - name: Taille + color: rgba(230, 84, 128, .4) + tags: + apron: Schürze + waist_apron: Taillenschürze + maid_apron: Dienstmädchen-Schürze + bow tied at the waist: Am Taillenbogen gebundene Schleife + waist_cape: Taillenumhang + clothes_around_waist: Kleidung um die Taille + jacket_around_waist: Jacke um die Taille + sweater_around_waist: Pullover um die Taille + loincloth: Lendenschurz + bustier: Bustier + corset: Korsett + girdle: Mieder + + - name: Rüstung + color: rgba(230, 84, 128, .4) + tags: + armor: Rüstung + bikini_armor: Bikini-Rüstung + full_armor: Vollrüstung + plate_armor: Plattenrüstung + japanese_armor: Japanische Rüstung + kusazuri: Kusazuri (japanischer Beinschutz) + power_armor: Power-Rüstung + mecha: Mecha + helmet: Helm + kabuto: Kabuto (japanischer Helm) + off-shoulder_armor: Rüstung ohne Schulterpolster + shoulder_armor: Schulterpanzer + muneate: Muneate (japanischer Brustschutz für Bogenschießen) + breastplate: Brustpanzer + faulds: Bauchpanzer + greaves: Beinschienen + shin_guards: Schienbeinschoner + armored_boots: Gepanzerte Stiefel + + - name: Rock + color: rgba(230, 84, 128, .4) + tags: + dress: Kleid + microdress: Minikleid + long_dress: Langes Kleid + off-shoulder_dress: Schulterfreies Kleid + strapless_dress: Trägerloses Kleid + backless_dress: Rückenfreies Kleid + halter_dress: Neckholder-Kleid + sundress: Sommerkleid + sleeveless_dress: Ärmelloses Kleid + sailor_dress: Matrosenkleid + summer_dress: Sommerkleid + china_dress: Chinesisches Kleid + pinafore_dress: Latzkleid + sweater_dress: Pulloverkleid + wedding_dress: Hochzeitskleid + armored_dress: Kampfanzugkleid + frilled_dress: Gerüschtes Kleid + lace-trimmed_dress: Spitzenbesetztes Kleid + collared_dress: Kleid mit Kragen + fur-trimmed_dress: Pelzbesetztes Kleid + layered_dress: Schichtkleid + pleated_dress: Faltenkleid + taut_dress: Eng anliegendes Kleid + pencil_dress: Bleistiftkleid + impossible_dress: Übertrieben enges Kleid + multicolored_dress: Mehrfarbiges Kleid + striped_dress: Gestreiftes Kleid + checkered_skirt: Kariertes Kleid + plaid_dress: Kariertes Kleid + ribbed_dress: Geripptes Kleid + polka_dot_dress: Gepunktetes Kleid + print_dress: Bedrucktes Kleid + vertical-striped_dress: Längsgestreiftes Kleid + see-through_dress: Durchsichtiges Kleid + skirt: Rock + microskirt: Minirock + miniskirt: Minirock + skirt_suit: Rockanzug + bikini_skirt: Bikinirock + pleated_skirt: Faltenrock + pencil_skirt: Bleistiftrock + bubble_skirt: Ballonrock + tutu: Tutu (Ballettröckchen) + ballgown: Ballkleid + pettiskirt: Petticoat + showgirl_skirt: Showgirl-Rock + Medium length skirt: Rock in mittlerer Länge + beltskirt: Gürtelrock + denim_skirt: Jeansrock + suspender_skirt: Latzrock + skirt_set: Rock-Set mit Oberteil + long_skirt: Langer Rock + summer_long_skirt: Sommerlanger Rock + overskirt: Überrock + hakama_skirt: Hakama-Rock + high-waist_skirt: Hochtaillierter Rock + kimono_skirt: Kimono-Rock + suspender_long_skirt: Latzrock; Trägerrock + chiffon_skirt: Chiffonrock + frilled_skirt: Gerüschter Rock + fur-trimmed_skirt: Pelzbesetzter Rock + lace_skirt: Spitzenrock + lace-trimmed_skirt: Spitzenbesetzter Rock + ribbon-trimmed_skirt: Schleifenbesetzter Rock + layered_skirt: Schichtrock + print_skirt: Bedruckter Rock + multicolored_skirt: Mehrfarbiger Rock + striped_skirt: Gestreifter Rock + vertical-striped_skirt: Längsgestreifter Rock + plaid_skirt: Karierter Rock + flared_skirt: Ausgestellter Rock + floral_skirt: Blumenrock + + - name: Interaktion mit Röcken + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: Rock elegant halten + skirt_tug: Rocksaum ziehen + dress_tug: Kleidsaum drücken + skirt_lift: Rock hochheben + skirt_around_one_leg: Rock an einem Bein hängen + skirt_removed: Abgenommener Rock + dress_removed: Abgenommenes Kleid + open_skirt: Geöffneter Rock + + - name: Hosen + color: rgba(230, 84, 128, .4) + tags: + dress_bow: Schleife am Kleid + dressing_another: Anziehen + shorts_under_skirt: Shorts unter dem Rock + side_slit: Seitenschlitz + shorts: Shorts + micro_shorts: Mikro-Shorts + short_shorts: Hotpants + hot_pants: Hotpants + cutoffs: Abgeschnittene Shorts + striped_shorts: Gestreifte Shorts + suspender_shorts: Latzhosen-Shorts + denim_shorts: Jeansshorts + puffy_shorts: Puffige Shorts + dolphin_shorts: Dolphin Shorts (kurze Sporthose) + dolfin_shorts: Dolphin Shorts (kurze Sporthose) + tight_pants: Enge Hosen / Sporthose + crotchless_pants: Schrittlose Hosen (eng anliegend) + track_pants: Sporthose + yoga_pants: Yogahose + bike_shorts: Radlerhose + gym_shorts: Gymnastikhose + pants: Lange Hose + puffy_pants: Puffige Hose / Weite Hose + pumpkin_pants: Kürbishose + hakama_pants: Hakama-Hose + harem_pants: Haremshose + bloomers: Ballonhose + buruma: Buruma (japanische Ballonhose) + jeans: Jeans + cargo_pants: Cargohose + camouflage_pants: Camouflagehose + capri_pants: Caprihose + chaps: Chaps (Lederhose mit offenen Seiten) + jumpsuit: Jumpsuit (insbesondere für Frauen) + lowleg_pants: Niedrige Hüfthose + plaid_pants: Karohose + single_pantsleg: Einzelnes Hosenbein + striped_pants: Gestreifte Hose + + - name: Interaktion mit Hosen + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: Asymmetrische Hose + leotard_aside: Kleidungsschritt zur Seite schieben + open_fly: Geöffneter Hosenstall + pants_down: Hose herunterziehen + pants_rolled_up: Hose hochkrempeln + pants_tucked_in: Hose hineinstecken + torn_jeans: Zerrissene Jeans + torn_pants: Zerrissene Hose + torn_shorts: Zerrissene Shorts + + - name: Socken + color: rgba(230, 84, 128, .4) + tags: + bodystocking: Ganzkörper-Strumpf + pantyhose: Strumpfhose + leggings: Leggings + legwear: Beinbekleidung (allgemein) + thighhighs: Overknee-Strümpfe + kneehighs: Kniestrümpfe + socks: Socken + bare_legs: Nackte Beine + black_bodystocking: Schwarzer Ganzkörper-Strumpf + white_bodystocking: Weißer Ganzkörper-Strumpf + stocking_under_clothes: Strumpf unter der Kleidung + black_pantyhose: Schwarze Strumpfhose + white_pantyhose: Weiße Strumpfhose + thighband_pantyhose: Strumpfhose mit Oberschenkelband + pantylines: Strumpfhose mit sichtbaren Konturen + single_leg_pantyhose: Einbeinig getragene Strumpfhose + panties_under_pantyhose: Unterhose unter der Strumpfhose + fishnets: Netzstrümpfe + stirrup_legwear: Stulpenstrümpfe + toeless_legwear: Zehenfreie Strumpfwaren + mismatched_legwear: Unpassende Strumpfwaren + two-tone_legwear: Zweifarbige Strumpfwaren + asymmetrical_legwear: Asymmetrische Strumpfwaren + uneven_legwear: Ungleich lange Strümpfe + white_thighhighs: Weiße Overknee-Strümpfe + black_thighhighs: Schwarze Overknee-Strümpfe + pink_thighhighs: Rosa Overknee-Strümpfe + suspenders: Strumpfhalter + garter_straps: Strumpfhaltergurte + torn_legwear: Zerstörte Strumpfwaren + torn_thighhighs: Zerstörte Overknee-Strümpfe + see-through_legwear_: Durchsichtige Strumpfwaren + frilled_legwear: Gerüschte Strumpfwaren + lace-trimmed_legwear: Spitzenbesetzte Strumpfwaren + seamed_legwear: Strumpfwaren mit Naht + back-seamed_legwear: Strumpfwaren mit Rückennaht + animal_ear_legwear: Strumpfwaren mit Tierohren + striped_legwear: Gestreifte Strumpfwaren + vertical-striped_legwear: Längsgestreifte Strumpfwaren + polka_dot_legwear: Gepunktete Strumpfwaren + print_legwear: Bedruckte Strumpfwaren + legwear_under_shorts: Strumpfwaren unter Shorts + over-kneehighs: Overknee-Strümpfe + bobby_socks: Bobby-Socken (weiße Kurzsocken) + tabi: Tabi (traditionelle japanische Socken) + loose_socks: Lockere Socken + ankle_socks: Knöchelsocken + leg_warmers: Beinwärmer + single_sock: Einzelne Socke + striped_socks: Gestreifte Socken + + - name: Interaktion mit Socken + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: Aussparung in den Socken + thighhighs_under_boots: Overknee-Strümpfe unter Stiefeln + adjusting_legwear: Strumpfwaren anpassen + pantyhose_pull: Heruntergezogene Strumpfhose + socks_removed: Socken ausziehen + sock_pull: Socke hochziehen + thighhighs_pull: Overknee-Strümpfe hochziehen + + - name: Sonstiges + color: rgba(230, 84, 128, .4) + tags: + garters: Strumpfhalter + leg_garter: Beinhalter / Strumpfhalter + garter_straps: Strumpfhaltergurte + thigh_strap: Oberschenkelriemen + thigh_ribbon: Oberschenkelband + leg_ribbon: Beinband + bandaid_on_leg: Pflasterverband am Bein + bandaged_leg: Verbundenes Bein + ankle_lace-up: Knöchelriemchen + thigh_holster: Oberschenkelholster + bandaid_on_knee: Pflasterverband am Knie + argyle_legwear: Argyle-Strumpfwaren + bow_legwear: Schleifen-Strumpfwaren + arm_garter: Armhalter + + - name: Material + color: rgba(230, 84, 128, .4) + tags: + armored: gepanzert + canvas: Leinwand + denim: Denim + fluffy: flauschig + fur: Pelz + latex: Latex + leather: Leder + see-through: durchsichtig + spandex: Spandex + tight: eng + + - name: Dekoration + color: rgba(230, 84, 128, .4) + tags: + frilled: gerüscht + center_frills: mittige Rüschen + crease: geknittert + layered: geschichtet + lace: Spitze + fur_trim: Pelzbesatz + fur-trimmed: mit Pelzbesatz + fine_fabric_emphasis: feine Stoffbetonung + latex_thighhighs: Latex-Oberschenkelstrümpfe + see-through_thighhighs: durchsichtige Oberschenkelstrümpfe + ass_cutout: Po-Ausschnitt + asymmetrical_clothes: asymmetrische Kleidung + back_bow: Rückenbogen + costume_switch: Kostümwechsel + cross-laced_clothes: überkreuzte Schnürkleidung + double_vertical_stripe: doppelte vertikale Streifen + halter_top: Neckholder-Oberteil + multicolored_legwear: mehrfarbige Beinbekleidung + navy_blue_legwear: marineblaue Beinbekleidung + nontraditional_miko: untraditionelle Miko-Kleidung + side_cutout: seitlicher Ausschnitt + side_slit: seitlicher Schlitz + sideless_outfit: seitlich offenes Outfit + single_kneehigh: einzelner Kniestrumpf + single_vertical_stripe: einzelner vertikaler Streifen + turtleneck: Rollkragen + two-sided_fabric: zweilagiger Stoff + o-ring: O-Ring-Kleidungsstück + o-ring_top: Oberteil mit O-Ring + fringe_trim: Fransenbesatz + loose_belt: lockerer Gürtel + pom_pom_(clothes): Bommel (Kleidung) + drawstring: Kordelzug + full-length_zipper: durchgehender Reißverschluss + gathers: Falten + gusset: Zwickel + breast_pocket: Brusttasche + + - name: Muster + color: rgba(230, 84, 128, .4) + tags: + argyle: Argyle-Muster + checkered: kariert + colored_stripes: bunte Streifen + diagonal_stripes: diagonale Streifen + horizontal_stripes: horizontale Streifen + multicolored_stripes: mehrfarbige Streifen + polka_dot_: Tupfenmuster + ribbed: gerippt + striped: gestreift + unmoving_pattern: unbewegliches Muster + vertical_stripes: vertikale Streifen + plaid: Karomuster + animal_print: Tiermuster + cat_print: Katzenmuster + bear_print: Bärenmuster + bird_print: Vogelmuster + bunny_print: Hasenmuster + cow_print: Kuhmuster + dragon_print: Drachenmuster + fish_print: Fischmuster + frog_print: Froschmuster + shark_print: Haifischmuster + snake_print: Schlangenmuster + zebra_print: Zebramuster + tiger_print: Tigerstreifen + leopard_print: Leopardenmuster + jaguar_print: Jaguar-Muster + bat_print: Fledermausmuster + aardwolf_print: Aardwolf-Muster + african_wild_dog_print: Afrikanischer Wildhund-Muster + cheetah_print: Gepardenmuster + dog_print: Hundemuster + fox_print: Fuchsmuster + giraffe_print: Giraffenmuster + panda_print: Pandamuster + sand_cat_print: Sandkatzenmuster + whale_print: Wal-Muster + white_tiger_print: Weiße Tigerstreifen + goldfish_print: Goldfischmuster + wing_print: Flügelmuster + spider_web_print: Spinnennetz-Muster + butterfly_print: Schmetterlingsmuster + floral_print: Blumenmuster + leaf_print: Blattmuster + clover_print: Kleeblattmuster + maple_leaf_print: Ahornblattmuster + rose_print: Rosenmuster + strawberry_print: Erdbeermuster + cherry_print: Kirschmuster + bamboo_print: Bambusmuster + carrot_print: Karottenmuster + hibiscus_print: Hibiskusmuster + jack-o'-lantern_print: Kürbismuster + petal_print: Blütenblattmuster + sunflower_print: Sonnenblumenmuster + watermelon_print: Wassermelonenmuster + sky_print: Himmel-Muster + cloud_print: Wolkenmuster + lightning_bolt_print: Blitzmuster + rainbow_print: Regenbogenmuster + snowflake_print: Schneeflockenmuster + starry_sky_print: Sternenhimmel-Muster + crescent_print: Mondsichel-Muster + star_print: Sternmuster + star_(symbol): Sternsymbol + moon_print: Mondmuster + sun_print: Sonnenmuster + character_print: Zeichenmuster + clothes_writing_: Schrift auf Kleidung + anchor_print: Anker-Muster + cherry_blossom_print: Kirschblütenmuster + musical_note_print: Musiknotenmuster + triangle_print: Dreiecksmuster + arrow_print: Pfeilmuster + wave_print: Wellenmuster + peace_symbol: ☮ (Friedenssymbol auf Kleidung) + heart_print: Herzmuster + flame_print: Flammenmuster + hitodama_print: Hitodama-Muster + paw_print: Pfotenabdruck + skeleton_print: Skelettmuster + skull_print: Totenkopfmuster + sparkle_print: glitzerndes Muster + yin_yang_print: Yin-Yang-Muster + cross_print: Kreuzmuster + camoflage: Tarnmuster + flag_print: Flaggenmuster + bone_print: Knochenmuster + ghost_print: Geistermuster + mushroom_print: Pilzmuster + onigiri_print: Onigiri-Muster + cat_ear: Katzenohren + cat_ear_cutout: ausgeschnittene Katzenohren + + - name: Schuhe + color: rgba(230, 84, 128, .4) + tags: + barefoot: barfuß + no_shoes: keine Schuhe + shoes_removed: Schuhe ausgezogen + single_shoe: einzelner Schuh + the_only_shoe: der einzige Schuh + black_loafers: schwarze Slipper + shoes: Schuhe + uwabaki: Hausschuhe + platform_footwear: Plateauschuhe + high_heels: hohe Absätze + stiletto_heels: Stiletto-Absätze + strappy_heels: Riemchen-Absätze + platform_heels_: Plateau-Absätze + rudder_footwear: Ruderfußbekleidung + sandals: Sandalen + barefoot_sandals: barfuß Sandalen + clog_sandals: Holzschuhe Sandalen + geta: Geta (japanische Holzschuhe) + slippers: Hausschuhe + skates: Schlittschuhe + roller_skates: Rollschuhe + animal_feet: Tierfüße + animal_slippers: Tierhausschuhe + anklet: Fußkettchen + shackles: Fesseln + brown_footwear: braune Schuhe + cross-laced_footwear: überkreuzte Schnürschuhe + loafers: Slipper + mary_janes: Mary Janes + mismatched_footwear: ungleiche Schuhe + pointy_footwear: spitz zulaufende Schuhe + pumps: Pumps + sandals_removed: Sandalen ausgezogen + shoe_soles: Schuhsohlen + shoelaces: Schnürsenkel + sneakers: Turnschuhe + winged_footwear: Schuhe mit Flügeln + zouri: Zouri (japanische Sandalen) + + - name: Stiefel + color: rgba(230, 84, 128, .4) + tags: + boots: Stiefel + boots_removed: Stiefel ausgezogen + thigh_boots: Overknee-Stiefel + knee_boots: Kniestiefel + cross-laced_footwear: geschnürte Stiefel + ankle_boots: Knöchelstiefel + high_heel_boots: High Heel-Stiefel + toeless_boots: offene Stiefel + lace-up_boots: Schnürstiefel + fur-trimmed_boots: Pelzbesetzte Stiefel + snow_boots: Schneestiefel + anklet: Fußkettchen + rubber_boots: Gummistiefel + santa_boots: Weihnachtsmann-Stiefel + leather_boots: Lederstiefel + thighhighs_under_boots: Overknee-Stiefel mit Strumpfhose + combat_boots: Kampfstiefel + doc_martens: Doc Martens + rain_boots: Regenstiefel + belt_boots: Gürtelstiefel + fur_boots: Pelzstiefel + single_boot: ein einzelner Stiefel + + - name: Schuhsohle + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: Schuhsohlen + arched_soles: gewölbte Sohlen + paw_print_soles: Pfotenabdrucksohlen + horseshoe: Hufeisen + + - name: Kragen + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: Matrosenkragen + fur_collar: Pelzkragen + frilled_collar: gerüschter Kragen + popped_collar: hochgestellter Kragen + choker: Choker-Halsband + black_choker: schwarzer Choker + belt_collar: Gürtelkragen + frilled_choker: gerüschter Choker + neckerchief: Halstuch + red_neckerchief: rotes Halstuch + necktie: Krawatte + short_necktie: kurze Krawatte + white_necktie: weiße Krawatte + bowtie: Fliege + headphones_around_neck: Kopfhörer um den Hals + goggles_around_neck: Schutzbrille um den Hals + neck_bell: Halsglocke + neck_ruff: Kragenrüsche + v-neck: V-Ausschnitt + towel_around_neck: Handtuch um den Hals + loose_necktie: lockere Krawatte + neck_tattoo: Hals-Tattoo + ascot: Ascot-Krawatte + ribbon_choker: Schleifen-Choker + maebari/pasties: Maebari/Pasties (Brustwarzenabdeckungen) + latex: Latex + torn_clothes: zerrissene Kleidung + iron_cross: Eisernes Kreuz + chinese_knot: Chinesischer Knoten + cross_necklace: Kreuz-Halskette + bead_necklace: Perlenkette + pearl_necklace: Perlenkette + heart_necklace: Herz-Halskette + carrot_necklace: Karotten-Halskette + chain_necklace: Kettenhalskette + magatama_necklace: Magatama-Halskette + tooth_necklace: Zahnhalskette + key_necklace: Schlüssel-Halskette + anchor_necklace: Anker-Halskette + skull_necklace: Totenkopf-Halskette + shell_necklace: Muschel-Halskette + gold_necklace: Goldkette + crescent_necklace: Mondsichel-Halskette + ring_necklace: Ring-Halskette + feather_necklace: Feder-Halskette + bone_necklace: Knochen-Halskette + ankh_necklace: Ankh-Halskette + multiple_necklaces: mehrere Halsketten + bullet_necklace: Patronen-Halskette + holding_necklace: Halskette halten + necklace_removed: Halskette entfernt + brown_neckwear: brauner Halsbehang + checkered_neckwear: karierte Halsbekleidung + diagonal-striped_neckwear: diagonal gestreifte Halsbekleidung + halterneck: Halterneck + mole_on_neck: Maulwurf am Hals + neck: Hals + neck_ribbon: Halsband mit Schleife + neck_ring: Halsring + necklace: Halskette + plaid_neckwear: karierte Halsbekleidung + plunging_neckline: tief ausgeschnittener Ausschnitt + print_neckwear: bedruckte Halsbekleidung + sleeveless_turtleneck: ärmelloses Rollkragenoberteil + star_necklace: Stern-Halskette + striped_neckwear: gestreifte Halsbekleidung + turtleneck_sweater: Rollkragenpullover + undone_necktie: gelöste Krawatte + whistle_around_neck: Pfeife um den Hals + + - name: Schal + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: karierte Schal + striped_scarf: gestreifter Schal + print_scarf: bedruckter Schal + vertical-striped_scarf: vertikal gestreifter Schal + polka_dot_scarf: gepunkteter Schal + argyle_scarf: Argyle-Schal + beige_scarf: beiger Schal + scarf_bow: Schal-Schleife + fur_scarf: Pelzschal + naked_scarf: nackter Schal + multicolored_scarf: mehrfarbiger Schal + floating_scarf: schwebender Schal + long_scarf: langer Schal + arm_scarf: Armschal + scarf_on_head: Schal auf dem Kopf + scarf_over_mouth: Schal über dem Mund + scarf_removed: entfernter Schal + adjusting_scarf: Schal anpassen + holding_scarf: Schal halten + scarf_pull: Schal ziehen + brown_scarf: brauner Schal + scarf: Schal + + - name: Brille + color: rgba(230, 84, 128, .4) + tags: + glasses: Brille + eyewear: Brillen + monocle: Monokel + under-rim_eyewear: Unterrand-Brille + rimless_eyewear: randlose Brille + semi-rimless_eyewear: halbrandlose Brille + red-framed_eyewear: Brille mit rotem Rahmen + round_eyewear: runde Brille + black-framed_eyewear: Brille mit schwarzem Rahmen + tinted_eyewear: getönte Brille + medical_eyepatch: medizinische Augenklappe + bandage_over_one_eye: Verband über einem Auge + crooked_eyewear: schief sitzende Brille + eyewear_removed: Brille abgenommen + sunglasses: Sonnenbrille + goggles: Schutzbrille + Blindfold: Augenbinde + eyepatch: Augenklappe + visor: Visier + bespectacled: mit Brille + blue-framed_eyewear: Brille mit blauem Rahmen + brown-framed_eyewear: Brille mit braunem Rahmen + coke-bottle_glasses: dicke Brillengläser + no_eyewear: keine Brille + opaque_glasses: undurchsichtige Brille + over-rim_eyewear: über dem Rand der Brille + + - name: Maske + color: rgba(230, 84, 128, .4) + tags: + mask: Maske + half_mask: Halbmaske + masked: maskiert + mask_lift: Maske anheben + mask_on_head: Maske auf dem Kopf + mask_removed: Maske abgenommen + mouth_mask: Mundschutz + surgical_mask: chirurgische Maske + plague_doctor_mask: Pestarztmaske + gas_mask: Gasmaske + visor: Visier + helmet: Helm + fox_mask: Fuchsmaske + diving_mask: Tauchmaske + diving_mask_on_head: Tauchmaske auf dem Kopf + oni_mask: Oni-Maske + tengu_mask: Tengu-Maske + ninja_mask: Ninja-Maske + skull_mask: Totenkopfmaske + hockey_mask: Eishockeymaske + bird_mask: Vogelmaske + stone_mask: Steinmaske + horse_mask: Pferdemaske + masquerade_mask: Maskenballmaske + domino_mask: Domino-Maske + + - name: Arm + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: lange Ärmel + short_sleeves: kurze Ärmel + wide_sleeves: weite Ärmel + furisode: Furisode (japanisches Kimono) + detached_sleeves: abnehmbare Ärmel + single_sleeve: einzelner Ärmel + sleeveless: ärmellos + asymmetrical_sleeves: asymmetrische Ärmel + puffy_sleeves: puffige Ärmel + puffy_long_sleeves: puffige lange Ärmel + puffy_short_sleeves: puffige kurze Ärmel + frilled_sleeves: gerüschte Ärmel + juliet_sleeves: Juliet-Ärmel + bandaged_arm: bandagierter Arm + raglan_sleeves: Raglanärmel + vambraces: Unterarmschutz + layered_sleeves: geschichtete Ärmel + fur-trimmed_sleeves: Ärmel mit Pelzbesatz + see-through_sleeves: durchsichtige Ärmel + torn_sleeves: zerrissene Ärmel + sleeves_past_fingers: Ärmel über den Fingern + sleeves_past_wrists: Ärmel über den Handgelenken + sleeves_past_elbows: Ärmel über den Ellenbogen + sleeves_pushed_up: hochgeschobene Ärmel + arm_out_of_sleeve: Arm aus dem Ärmel + uneven_sleeves: ungleiche Ärmel + mismatched_sleeves: ungleiche Ärmel + sleeve_rolled_up: hochgekrempelter Ärmel + sleeves_rolled_up: hochgekrempelte Ärmel + feather-trimmed_sleeves: Ärmel mit Federbesatz + hands_in_opposite_sleeves: Hände in gegenüberliegenden Ärmeln + lace-trimmed_sleeves: Ärmel mit Spitzenbesatz + pinching_sleeves: Ärmel kneifen + puffy_detached_sleeves: puffige abnehmbare Ärmel + ribbed_sleeves: gerippte Ärmel + single_detached_sleeve: einzelner nicht abnehmbarer Ärmel + sleeves_folded_up: hochgefaltete Ärmel + striped_sleeves: gestreifte Ärmel + wrist_cuffs: Handgelenksmanschetten + armband: Armbinde + armlet: Armreif + + - name: Hand + color: rgba(230, 84, 128, .4) + tags: + bandage: Verband + leash: Leine + arm_tattoo: Arm-Tattoo + number_tattoo: Nummern-Tattoo + bead_bracelet: Perlenarmband + bracelet: Armband + flower_bracelet: Blumenarmband + spiked_bracelet: Stachelarmband + wrist_cuffs: Handgelenksschmuck + wristband: Handgelenkband + bracer: Armschutz + cuffs: Manschetten + bound_wrists: gefesselte Handgelenke + wrist_scrunchie: Handgelenksscrunchie + handcuffs: Handschellen + shackles: Fesseln + chains: Ketten + chain_leash: Kettenleine + + - name: Handschuhe + color: rgba(230, 84, 128, .4) + tags: + gloves: Handschuhe + gloves_removed: Handschuhe abgenommen + no_gloves: keine Handschuhe + single_glove: einzelner Handschuh + single_elbow_glove: einzelner Handschuh über dem Ellenbogen + long_gloves: lange Handschuhe + elbow_gloves: Ellenbogenlange Handschuhe + bridal_gauntlets: Brauthandschuhe + half_gloves: halbe Handschuhe + fingerless_gloves: fingerlose Handschuhe + partially_fingerless_gloves: teilweise fingerlose Handschuhe + paw_gloves: Pfotenhandschuhe + mittens: Fäustlinge + baseball_mitt: Baseball-Handschuh + fur-trimmed_gloves: Handschuhe mit Pelzbesatz + latex_gloves: Latexhandschuhe + lace-trimmed_gloves: Handschuhe mit Spitzenbesatz + leather_gloves: Lederhandschuhe + frilled_gloves: gerüschte Handschuhe + mismatched_gloves: ungleiche Handschuhe + multicolored_gloves: mehrfarbige Handschuhe + asymmetrical_gloves: asymmetrische Handschuhe + brown_gloves: braune Handschuhe + oven_mitts: Ofenhandschuhe + print_gloves: bedruckte Handschuhe + striped_gloves: gestreifte Handschuhe + torn_gloves: zerrissene Handschuhe + + - name: Ohrschmuck + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: Kreuzohrringe + crystal_earrings: Kristallohrringe + earrings: Ohrringe + flower_earrings: Blumenohrringe + heart_earrings: Herzohrringe + hoop_earrings: Creolen + multiple_earrings: mehrere Ohrringe + pill_earrings: Pillenohrringe + single_earring: einzelnes Ohrring + skull_earrings: Totenkopfohrringe + star_earrings: Sternohrringe + + - name: Kopfschmuck + color: rgba(230, 84, 128, .4) + tags: + halo: Heiligenschein + mechanical_halo: mechanischer Heiligenschein + headwear: Kopfschmuck + headpiece: Kopfschmuck + headwear_removed: Kopfschmuck abgenommen + head_wreath: Kopfkranz + crown: Krone + mini_crown: Mini-Krone + tiara: Tiara + diadem: Diadem + tilted_headwear: geneigter Kopfschmuck + head_fins: Kopfflossen + maid_headdress: Dienstmädchen-Kopfschmuck + bridal_veil: Brautschleier + headband: Stirnband + helmet: Helm + alternate_headwear: alternativer Kopfschmuck + fur-trimmed_headwear: Kopfschmuck mit Pelzbesatz + goggles_on_headwear: Schutzbrille auf dem Kopfschmuck + earphones: Kopfhörer + earmuffs: Ohrenschützer + ears_through_headwear: Ohren durch den Kopfschmuck + xx_on_head: xx auf dem Kopf + leaf_on_head: Blatt auf dem Kopf + topknot: Dutt + suigintou: Suigintou (Charaktername) + triangular_headpiece: dreieckiger Kopfschmuck + forehead_protector: Stirnschutz + radio_antenna: Radioantenne + animal_hood: Tierkapuze + arrow_(symbol): Pfeil (Symbol) + axe: Axt + bald: kahl + bandana: Bandana + bob_cut: Bob-Frisur + bone: Knochen + bowl_cut: Schüsselschnitt + circlet: Stirnreif + double_bun: Doppelknoten + double_dildo: Doppeldildo + drill: Bohrer + faucet: Wasserhahn + hachimaki: Hachimaki (Kopfband) + hair_behind_ear: Haar hinter dem Ohr + hair_bell: Haarklingel + hair_bun: Haarknoten + hair_down: offenes Haar + hair_flaps: Haarflügel + hair_flip: Haarwurf + hair_flower: Haarblume + hair_spread_out: ausgebreitetes Haar + hair_up: hochgestecktes Haar + helm: Helm getragen + helmet_removed: Helm abgenommen + horned_helmet: gehörnter Helm + japari_bun: Japari-Dutt + kerchief: Kopftuch + mami_mogu_mogu: Mami Mogu Mogu (Charaktername) + mob_cap: Haube + one_side_up: einseitig hochgestecktes Haar + owl: Eule + pier: Pier + pillow: Kissen + raised_fist: erhobene Faust + skull_and_crossbones: Totenkopf und gekreuzte Knochen + stone: Stein + turban: Turban + twin_drills: Doppelzöpfe + updo: hochgesteckte Frisur + wet_hair: nasses Haar + headdress: Kopfbedeckung + adjusting_headwear: Kopfschmuck anpassen + bear_hair_ornament: Bärenhaar-Ornament + brown_headwear: brauner Kopfschmuck + horned_headwear: gehörnter Kopfschmuck + horns_through_headwear: Hörner durch den Kopfschmuck + no_headwear: kein Kopfschmuck + object_on_head: Objekt auf dem Kopf + print_headwear: bedruckter Kopfschmuck + bone_hair_ornament: Knochen-Haar-Ornament + bunny_hair_ornament: Hasen-Haar-Ornament + horn_ornament: Hörner-Ornament + animal_on_head: Tier auf dem Kopf + behind-the-head_headphones: Kopfhörer hinter dem Kopf + bird_on_head: Vogel auf dem Kopf + cat_ear_headphones: Katzenohr-Kopfhörer + cat_on_head: Katze auf dem Kopf + eyewear_on_head: Brille auf dem Kopf + forehead: Stirn + forehead_jewel: Stirnschmuck + forehead_kiss: Stirnkuss + forehead_mark: Stirnmarkierung + forehead-to-forehead: Stirn-an-Stirn + goggles_on_head: Schutzbrille auf dem Kopf + head: Kopf + head_bump: Kopfstoß + head_down: Kopf nach unten + head_mounted_display: Kopfmonitordisplay + head_out_of_frame: Kopf außerhalb des Bildrahmens + head_rest: Kopfstütze + head_tilt: Kopfneigung + head_wings: Kopfflügel + headgear: Kopfschmuck (mit bestimmten Science-Fiction-Elementen) + headphones: Kopfhörer + heads-up_display: Heads-Up-Display + headset: Kopfhörer (Kopfbügel) + inter_headset: EVA-Nervenverbindung + on_head: auf dem Kopf + person_on_head: Person auf dem Kopf + single_head_wing: einzelner Kopfflügel + + - name: Hut + color: rgba(230, 84, 128, .4) + tags: + hat: Hut + no_hat: kein Hut + large_hat: großer Hut + mini_hat: Mini-Hut + witch_hat: Hexenhut + mini_witch_hat: Mini-Hexenhut + wizard_hat: Zaubererhut + party_hat: Partyhut + jester_cap: Narrenkappe + tokin_hat: Tokin-Hut + top_hat: Zylinderhut + mini_top_hat: Mini-Zylinderhut + bowler_hat: Melone + pillbox_hat: Pillbox-Hut + cloche_hat: Glockenhut + side_cap: Seitenkappe + military_hat: Militärhut + beret: Baskenmütze + garrison_cap: Garnisonshut + police_hat: Polizeimütze + nurse_cap: Krankenschwesterhaube + chef_hat: Kochmütze + school_hat: Schulkappe + pirate_hat: Piratenhut + cabbie_hat: Schiebermütze + bucket_hat: Fischerhut + hardhat: Sicherheitshelm + straw_hat: Strohhut + sun_hat: Sonnenhut + rice_hat: Reishut + animal_hat: Tierhut + fur_hat: Pelzhut + hat_with_ears: Hut mit Ohren + bobblehat: Bommelmütze + pillow_hat: Kopfkissenhut + pumpkin_hat: Kürbishut + baseball_cap: Baseballkappe + flat_cap: Schiebermütze + torn_hat: zerrissener Hut + mob_cap: Haube + newsboy_cap: Schiffermütze + bowknot_over_white_beret: Schleife über weißer Baskenmütze + backwards_hat: umgedrehter Hut + bowl_hat: Schalenhut + cat_hat: Katzenhut + chat_log: Chat-Protokoll-Stil + cowboy_hat: Cowboyhut + dixie_cup_hat: Dixie-Becher-Hut + hat_bow: Hut mit Schleife + hat_feather: Hut mit Feder + hat_flower: Hut mit Blume + hat_ornament: Hut mit Verzierung + hat_over_one_eye: Hut über einem Auge + hat_removed: Hut abgenommen + hat_ribbon: Hut mit Schleifenband + hat_tip: Hutkrempe hochgeklappt + hatching_(texture): Schraffur (Textur) + hatsune_miku_(cosplay): Hatsune Miku (Cosplay) + is_that_so: So-nanoka (Ausruf) + porkpie_hat: Porkpie-Hut + sailor_hat: Matrosenhut + santa_hat: Weihnachtsmannhut + sideways_hat: Hut zur Seite geneigt + what: Autor ist verrückt geworden + what_if: alternative Zeitlinie + + - name: Haarschmuck + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: Haarband + hairband: Haarband + hair_tie: Haargummi + lolita_hairband: Lolita-Haarband + frilled_hairband: gerüschtes Haarband + lace-trimmed_hairband: Haarband mit Spitzenbesatz + hair_bobbles: Haargummis + hair_ornament: Haarschmuck + hair_flower: Haarblume + x_hair_ornament: X-Haarschmuck + hair_bow: Haarschleife + frog_hair_ornament: Frosch-Haarschmuck + heart_hair_ornament: Herz-Haarschmuck + butterfly_hair_ornament: Schmetterlings-Haarschmuck + star_hair_ornament: Stern-Haarschmuck + food-themed_hair_ornament: lebensmittelthemenbezogener Haarschmuck + anchor_hair_ornament: Anker-Haarschmuck + bat_hair_ornament: Fledermaus-Haarschmuck + carrot_hair_ornament: Karotten-Haarschmuck + cat_hair_ornament: Katzen-Haarschmuck + clover_hair_ornament: Kleeblatt-Haarschmuck + crescent_hair_ornament: Halbmond-Haarschmuck + cross_hair_ornament: Kreuz-Haarschmuck + d-pad_hair_ornament: Steuerkreuz-Haarschmuck + fish_hair_ornament: Fisch-Haarschmuck + hairpods: Haarpods + leaf_hair_ornament: Blatt-Haarschmuck + musical_note_hair_ornament: Noten-Haarschmuck + pumpkin_hair_ornament: Kürbis-Haarschmuck + skull_hair_ornament: Totenkopf-Haarschmuck + snake_hair_ornament: Schlangen-Haarschmuck + snowflake_hair_ornament: Schneeflocken-Haarschmuck + strawberry_hair_ornament: Erdbeer-Haarschmuck + sunflower_hair_ornament: Sonnenblumen-Haarschmuck + hairpin: Haarnadel + hairclip: Haarklammer + hair_tubes: Haarröhrchen + hair_stick: Haarstab + hair_bun: Haarknoten + single_hair_bun: einzelner Haarknoten + hair_bell: Haarglocke + hair_rings: Haarringe + + - name: Kleine Dekoration + color: rgba(230, 84, 128, .4) + tags: + ring: Ring + wedding_band: Ehering + earrings: Ohrringe + single_earring: Einzelner Ohrring + stud_earrings: Ohrstecker + necklace: Halskette + jewelry: Schmuck + crystal: Kristall + brooch: Brosche + gem: Edelstein + chest_jewel: Brustschmuck + forehead_jewel: Stirnschmuck + tassel: Quaste + belly_chain_: Bauchkette + lace: Spitze + ribbon: Band + stitches: Stiche + scarf: Schal + bandaid: Pflaster + collar: Kragen + belt: Gürtel + steam: Dampf + bell: Glocke + amulet: Amulett + emblem: Emblem + flag_print: Flaggenmuster + anchor_symbol: Ankersymbol + cross: Kreuz + diffraction_spikes: Beugungsspitzen + iron_cross: Eisernes Kreuz + latin_cross: Lateinisches Kreuz + lace-trimmed_hairband: Spitzenbesetztes Haarband + ankle_lace-up: Knöchelriemen + st._gloriana's_(emblem): St. Gloriana's (Emblem) + heart_lock_(kantai_collection): Herzschloss (Kantai Collection) + garters: Strumpfhalter + thigh_strap: Oberschenkelriemen + thigh_ribbon: Oberschenkelband + leg_garter: Beinschmuck + garter_straps: Strumpfhaltergurte + leg_ribbon: Beinband + bandaid_on_leg: Pflaster am Bein + bandaged_leg: Verbundenes Bein + arm_garter: Armband + joints: Gelenke + kneepits: Kniekehlen + knee_pads: Knieschoner + thigh_holster: Oberschenkelholster + bandaid_on_knee: Pflaster am Knie + + - name: Schmuck + color: rgba(230, 84, 128, .4) + tags: + bracelet: Armband + choker: Halsband + metal collar: Metallhalsband + ring: Ring + wristband: Armband + pendant: Anhänger + brooch: Brosche + hoop earrings: Creolen + bangle: Armreif + stud earrings: Ohrstecker + sunburst: Sonnenstrahlen-Schmuck + pearl bracelet: Perlenarmband + drop earrings: Hängeohrringe + puppet rings: Puppenringe + corsage: Korsage + sapphire brooch: Saphirbrosche + jewelry: Schmuck + necklace: Halskette + +- name: Gesichtsausdrücke und Bewegungen + groups: + - name: Lächeln + color: rgba(241, 229, 140, .4) + tags: + smile: Lächeln + laughing: Lachen + kind_smile: Fröhlich lächeln + :d: Fröhliches Lachen_:D😀 + ;d: Zwinkerndes Lachen_:D + grin: Grinsen mit geöffnetem Mund + teasing_smile: Zum Lachen bringen, breites Grinsen + seductive_smile: Verführerisches Lächeln + smirk: Dummes Grinsen, selbstgefälliges Lachen + giggling: Kichern + smug: Überheblich + naughty_face: Schelmisches Gesicht + evil smile: Böses Lächeln + crazy_smile: Verrücktes Lachen + happy: Glücklich|Zufrieden + happy_birthday: Alles Gute zum Geburtstag + happy_halloween: Fröhliches Halloween + happy_new_year: Frohes neues Jahr + happy_tears: Freudentränen + happy_valentine: Fröhlicher Valentinstag + + - name: Weinen + color: rgba(241, 229, 140, .4) + tags: + sad: Traurig + tear: Schluchzen + crying: Weinen + crying_with_eyes_open: Weinen mit offenen Augen + streaming_tears: Tränenfluss + teardrop: Träne + tearing_clothes: Kleidung zerreißen + tearing_up: Tränen in den Augen haben + tears: Tränen + wiping_tears: Tränen abwischen + badmood: Schlechte Laune + + - name: Unglücklich + color: rgba(241, 229, 140, .4) + tags: + frustrated: Frustration + frustrated_brow: Frustrierte Stirn + annoyed: Verärgert + anguish: Qual + sigh: Seufzen + gloom: Trübsinnig + disappointed: Enttäuscht + despair: Verzweiflung + + - name: Verachtung + color: rgba(241, 229, 140, .4) + tags: + disgust: Ekel (mit Blick auf Müll) + disdain: Verachtung + contempt: Verachtung + shaded_face: Gesicht mit Schatten, begleitet von Verachtung + jitome: Verächtlicher Blick + frown: Stirnrunzeln + wince: Stirnrunzeln (vor dem Geschlechtsverkehr) + furrowed_brow: Stirnrunzeln + fear_kubrick: Ängstlicher seitlicher Blick + laughing: Lachen + + - name: Wut + color: rgba(241, 229, 140, .4) + tags: + angry: Wütend + glaring: Wütend anstarren + serious: Ernst (ähnlich wie wütend) + kubrick_stare: Seitlich anstarren + evil: Böse + sulking: Schmollen + screaming: Schreien + shouting: Schreien + + - name: Andere Ausdrücke + color: rgba(241, 229, 140, .4) + tags: + expressionless: Ausdruckslos + sleepy: Müde + drunk: Betrunken + bored: Gelangweilt + confused: Verwirrt machen + thinking: Nachdenken + lonely: Einsam + light_blush: Leicht erröten + blush: Erröten + shy: Schüchtern + embarrass: Verlegen + facepalm: Hand vor das Gesicht schlagen + flustered: Verwirrt + sweat: Schwitzen + scared: Ängstlich + ahegao: Ahegao-Gesichtsausdruck + endured_face: Ausdruck des Aushaltens + restrained: Zurückhaltend + dark_persona: Dunkle Persönlichkeit + crazy: Verrückt + exhausted: Erschöpft + Tsundere: Tsundere + yandere: Yandere + multiple_persona: Mehrere Persönlichkeiten + Jekyll_and_Hyde: Jekyll und Hyde + twitching: Zucken + spasm: Krampf + trembling: Zittern + rape_face: Vergewaltigungsgesicht + rolling_eyes: Augen verdrehen + envy: Neid + female_orgasm: Weiblicher Orgasmus + heavy_breathing: Schweres Atmen (wahrscheinlich nutzlos) + naughty: Frech + expressions: Ausdrücke differenzieren (ungefähr) + moaning: Stöhnen + scowl: Verächtlicher Blick + + - name: Grundlegende Handlungen + color: rgba(241, 229, 140, .4) + tags: + standing: Stehen + on back: Liegen auf dem Rücken + on stomach: Bauchlage + kneeling: Knien + on_side: Seitlage + on_stomach: Auf dem Bauch liegen + top-down_bottom-up: Mit dem Gesäß nach oben und nach unten + the_pose: Auf dem Boden liegen und die Füße hochheben + bent_over: Gesäß nach oben gebeugt + upside-down: Kopfüber + reversal: Umkehrung + fighting_stance: Kampfhaltung + leaning_to_the_side: An die Seite lehnen + leaning: Anlehnen|Körper neigen + leaning_back: Körper nach hinten lehnen + leaning_on_object: An einem Objekt lehnen + arched_back: Rücken krümmen + leaning_forward: Körper nach vorne neigen + afloat: Auf dem Wasser treiben + lying: Liegen + fetal_position: Fötusstellung (liegend) + lying_on_person: Auf einer Person liegen + lying_on_the_lake: Auf dem See liegen + lying_on_water: Im Wasser liegen + on_back: Auf dem Rücken liegen + prone_bone: Bauchlage von hinten + reclining: Schräglage, liegend + sleeping_upright: (nicht liegend) schlafen|aufrecht schlafen + presenting: Präsentieren (gefolgt von Körperteil) + spinning: Drehen + posing: Posen + stylish_pose: Stilvolle Pose + public_indecency: Öffentliche Unzucht + parody: Parodie + in_container: In einem Behälter + against_glass: Gegen Glas drücken (ineffektiv) + aiming: Zielen + aiming_at_viewer: Auf den Betrachter zielen + applying_makeup: Make-up auftragen + bathing: Baden + biting: Beißen + bleeding: Bluten + blowing: Blasen + bowing: Verbeugen + breathing_fire: Feuer speien + broom_riding: Auf einem Besen reiten + brushing_teeth: Zähne putzen + bubble_blowing: Seifenblasen pusten + bullying: Mobbing + burning: Brennen + cast: Werfen + chasing: Verfolgen + cleaning: Putzen + climbing: Klettern + comforting: Trösten + cooking: Kochen + crying: Weinen + cuddling: Kuscheln + dancing: Tanzen + diving: Tauchen + dragging: Etwas schleppen + drawing: Zeichnen + drawing_bow: Bogen spannen + dreaming: Träumen + drinking: Trinken + driving: Fahren + dropping: (versehentlich) fallenlassen + drying: Trocknen (nach dem Baden) + dual_wielding: Dual-Wielding + exercise: Sport treiben + fighting: Kämpfen + firing: Schießen + fishing: Angeln + flapping: Flattern + flashing: Zeigen + fleeing: Fliehen + flexing: Muskeln zeigen + flying: Fliegen + flying_kick: Fliegender Tritt + hair_brushing: Haare bürsten + hair_tucking: Haare zurückschieben + hanging: Hängen + hitting: Schlagen + imagining: Sich etwas vorstellen + jumping: Springen + kicking: Treten + licking: Lecken + licking_lips: Lippen lecken + lip_biting: Lippen beißen + meditation: Meditation + painting: Malen + Painting_(Action): Malen + playing_card: Karten spielen + playing_games: Spiele spielen + playing_instrument: Instrument spielen + pole_dancing: Pole Dance + praying: Beten + punching: Boxen + pushing: Stoßen + railing: Sich an etwas festhalten + reading: Lesen + riding: Reiten + running: Laufen + sewing: Nähen + shopping: Einkaufen + showering: Duschen + sing: Singen + singing: Singen + slashing: Hauen + sleeping: Schlafen + smelling: Riechen + smoking: Rauchen + sneezing: Niesen + snowing: Schneien + soaking_feet: Füße einweichen + soccer: Fußball spielen + spilling: Flüssigkeit aus einem Behälter verschütten + spitting: Flüssigkeit aus dem Mund spucken + splashing: Spritzen + standing_on_liquid: Auf Flüssigkeit stehen + standing_on_one_leg: Auf einem Bein stehen + standing_split: Stehender Spagat + steepled_fingers: Fingerkuppen aneinanderlegen + strangling: Erwürgen + sweeping: Fegen + swimming: Schwimmen + swing: Schaukeln + tail_wagging: Mit dem Schwanz wedeln + taking_picture: Fotos machen|Selfies machen + talking: Sprechen + talking_on_phone: Telefonieren + teasing: Neckerei + thinking: Nachdenken + tickling: Kitzeln + toilet_use: Toilette benutzen + tossing_: Werfen + tripping: Stolpern + trolling: Trollen + twitching: Zucken + tying: Binden (Aktion) + unsheathing: Herausziehen (Schwert) + untying: Lösen + unzipping: Reißverschluss öffnen + wading: Watend + waking_up: Aufwachen + walking: Gehen + walking_on_liquid: Auf Flüssigkeit gehen + washing: Waschen + whispering: Flüstern + wrestling: Ringen + writing: Schreiben + yawning: Gähnen + hiding: Verstecken + + - name: Handbewegungen + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: Hände hinter dem Rücken + arm_above_head: Hand über dem Kopf + arm_behind_head: Hand hinter dem Kopf + arms_crossed: Arme verschränkt + arm_support: Handstütze + armpits: Achselhöhlen + arms_up: Hände hoch + hands_on_hips: Hände in die Hüften gestemmt + arm_around_waist: Eine Hand um die Taille + caramelldansen: Bekannte Hand- und Hüftbewegung + hands_in_opposite_sleeves: Hände in umgekehrten Ärmeln + waving: Winken + crossed_arms: Verschränkte Arme + outstretched_arms: Ausgestreckte Arme + v_arms: Arme zu einem V formen + w_arms: Arme zu einem W formen + salute: Salutieren + reaching: (Zielgerichtet) die Hand ausstrecken + reaching_out: Hand nach außen strecken + stretch: Sich strecken + hugging_own_legs: Eigene Beine umarmen + arm_blade: Armklinge + arm_grab: Arm greifen + arm_held_back: Arm nach hinten halten + arm_ribbon: Arm mit Schleife + bandaged_arm: Verbundener Arm + bandaid_on_arm: Pflaster auf dem Arm + bound_arms: Gefesselte Arme + convenient_arm: Hand, die wichtige Stellen bedeckt + extra_arms: Extra Arme + locked_arms: Verschränkte Arme + outstretched_arm: Ausgestreckter Arm + waving_arms: Mit den Armen wedeln + arm_at_side: Eine Hand an der Seite + arm_behind_back: Eine Hand hinter dem Rücken + shou: Eine Hand am Kopf + arm_cannon: Armkanone + arm_hug: Hände umarmen + arm_up: Hand hochheben + arms_at_sides: Hände an den Seiten + arms_behind_head: Hände hinter dem Kopf + hand_to_mouth: Hand am Mund + shushing: Stillschweigende Geste + cat_pose: Katzenpfotengeste + claw_pose: Krallengeste + paw_pose: Glückskatzengeste (mit nach unten gebogenem Handgelenk) + fox_shadow_puppet: Fuchs-Schattenspiel + double_fox_shadow_puppet: b + finger_gun: Fingerpistole + v: Victory-Geste + double_v: Doppeltes V + thumbs_up: Daumen hoch + index_finger_raised: Zeigefinger erhoben + middle_finger: Internationale Geste der Freundschaft + grimace: Grimassen schneiden + eyelid_pull: Grimassen schneiden + fingersmile: Lächeln mit den Fingern darstellen + wiping_tears: Tränen abwischen + finger_on_trigger: Geste zum Abdrücken des Abzugs + pointing_at_self: Auf sich selbst zeigen + pointing_at_viewer: Auf den Betrachter zeigen + pointing_up: Nach oben zeigen + poking: Stupsen + hand_gesture: Handgeste + ok_sign: OK-Geste + shading_eyes: Augen abschatten + finger_biting: Finger beißen + finger_in_mouth: Finger in den Mund nehmen + fingering_through_clothes: Kleidung mit den Fingern berühren + fingers_together: Finger zusammenlegen + hair_twirling: Haare mit den Fingern drehen + hands_clasped: Hände verschränken + holding_hair: Haare festhalten|Finger um die Haare wickeln + pointing: Mit dem Finger zeigen + sharp_fingernails: Scharfe Fingernägel + sleeves_past_fingers: Ärmel reichen über die Finger + spread_fingers: Finger spreizen + trigger_discipline: Finger nicht am Abzug + w: Finger im W-Form + balancing: (Gleichgewicht) halten + curvy: Kurvige Pose + multiple_views: Mehrere Ansichten|Verschiedene Posen + pose: Pose + ready_to_draw: Bereit zum Zeichnen + trefoil: Pose, um den Hintern zu zeigen + zombie_pose: Zombie-Pose + beckoning: Herbeiwinken + bunching_hair: Haare zusammenhalten + carrying: Tragen + carrying_over_shoulder: Über die Schulter tragen + carrying_under_arm: Unter dem Arm tragen + cheering: Jubeln + finger_to_mouth: Finger an den Mund legen + cheek_pinching: Wange kneifen + cheek_poking: Wange stupsen + chin_stroking: Kinn streicheln + hair_pull: Haare ziehen + covering_mouth: Mund bedecken + covering_xx: XX bedecken + self_fondle: Sich selbst berühren + adjusting_thighhigh: Oberschenkelhohe Strümpfe zurechtrücken + chin_rest: Kinn abstützen + head_rest: Kopf abstützen + take: Etwas nehmen + _sheet_grab: Bettlaken greifen + groping: Tasten + skirt_lift: Rock hochheben + crotch_grab: Schritt greifen + covering_chest_by_hand: Brust mit der Hand bedecken + bangs_pinned_back: Hochgesteckter Pony + clothes_lift: Kleidung hochheben + dress_lift: Kleid hochheben + kimono_lift: Kimono hochheben + lifted_by_another: Von einer anderen Person hochgehoben werden + lifted_by_self: Sich selbst hochheben + shirt_lift: Hemd hochziehen + skirt_basket: Korbartige Form beim Hochheben des Rocks + skirt_flip: Rock hochheben (einschließlich unerwarteter Situationen) + bikini_lift: Bikini hochziehen + leg_lift: Ein Bein hochheben + lifting_person: Eine Person hochheben + strap_lift: Träger einer Kleidung hochziehen + wind_lift: Windeffekt|Aufsteigende Luftströmung + bikini_pull: Bikini hochziehen + cheek_pull: Wange ziehen + clothes_pull: Kleidung ziehen + dress_pull: Teil des Kleides abziehen + hair_pulled_back: Haare nach hinten binden + kimono_pull: Kimono öffnen + leotard_pull: Leotard abziehen + mask_pull: Maske abziehen + pants_pull: Hose hochziehen + pulled_by_another: Von einer anderen Person gezogen werden (oder Kleidung ziehen) + pulled_by_self: Eigene Kleidung abziehen + pulling: Ziehen + shirt_pull: Hemd aufziehen + shorts_pull: Shorts ausziehen + skirt_pull: Rock hochziehen + swimsuit_pull: Badeanzug herunterziehen + zipper_pull_tab: Reißverschluss ziehen + adjusting_clothes: Kleidung zurechtrücken + adjusting_eyewear: Brille zurechtrücken + adjusting_gloves: Handschuhe zurechtrücken + adjusting_hair: Haare zurechtmachen + adjusting_hat: Hut zurechtrücken + adjusting_swimsuit: Badeanzug zurechtrücken + + - name: Handlungen mit den Händen (Etwas halten) + color: rgba(241, 229, 140, .4) + tags: + holding: Etwas halten + holding_animal: Ein Tier halten + holding_arrow: Einen Bogen spannen + holding_axe: Eine Axt halten + holding_bag: Eine Tasche tragen + holding_ball: Einen Ball halten + holding_basket: Einen Korb tragen + holding_book: Ein Buch halten + holding_bottle: Eine Flasche halten + holding_bouquet: Einen Blumenstrauß halten + holding_bow_(weapon): Einen Bogen (Waffe) halten + holding_bowl: Eine Schüssel tragen + holding_box: Eine Box tragen + holding_breath: Den Atem anhalten + holding_broom: Einen Besen halten + holding_camera: Eine Kamera halten + holding_can: Eine Dose halten + holding_candy: Süßigkeiten in der Hand halten + holding_card: Eine Karte in der Hand halten + holding_cat: Eine Katze tragen + holding_chopsticks: Essstäbchen halten + holding_cigarette: Eine Zigarette im Mund halten + holding_clothes: Kleidung in der Hand halten + holding_condom: Ein Kondom halten + holding_cup: Eine Tasse halten + holding_dagger: Ein Dolch halten + holding_doll: Eine Puppe tragen + holding_eyewear: Eine Brille in der Hand halten | Eine Brille abnehmen + holding_fan: Einen Fächer halten + holding_flag: Eine Fahne in der Hand halten + holding_flower: Eine Blume halten + holding_food: Essen in der Hand halten + holding_fork: Eine Gabel halten + holding_fruit: Obst in der Hand halten + holding_gift: Ein Geschenk halten + holding_gun: Eine Waffe halten + holding_hands: Händchen halten + holding_hat: Einen Hut in der Hand halten + holding_head: Den Kopf in den Händen halten + holding_helmet: Einen Helm halten + holding_innertube: Eine Schwimmreifen halten + holding_instrument: Ein Musikinstrument halten + holding_knife: Ein Messer halten + holding_leaf: Ein Blatt in der Hand halten + holding_lollipop: Einen Lolli halten + holding_mask: Eine Maske in der Hand halten + holding_microphone: Ein Mikrofon halten + holding_needle: Eine Nähnadel in der Hand halten + holding_own_foot: Den eigenen Fuß halten + holding_paintbrush: Einen Pinsel halten + holding_paper: Ein Blatt Papier halten + holding_pen: Einen Stift halten + holding_pencil: Einen Bleistift in der Hand halten + holding_phone: Ein Handy halten + holding_pillow: Ein Kissen halten + holding_pipe: Eine Pfeife in der Hand halten + holding_pizza: Eine Pizza in der Hand halten + holding_plate: Einen Teller tragen + holding_poke_ball: Einen Pokéball halten + holding_pokemon: Ein Pokémon tragen + holding_polearm: Eine Stangenwaffe halten + holding_sack: Einen Sack tragen + holding_scythe: Eine Sense halten + holding_sheath: Eine Schwertscheide halten + holding_shield: Einen Schild halten + holding_shoes: Schuhe in der Hand halten + holding_sign: Ein Schild in der Hand halten + holding_spear: Einen Speer halten + holding_spoon: Einen Löffel halten + holding_staff: Einen Stab halten + holding_strap: Einen Riemen halten + holding_stuffed_animal: Ein Stofftier halten + holding_stylus: Einen Stylus-Stift halten + holding_sword: Ein Schwert halten + holding_syringe: Eine Spritze halten + holding_towel: Ein Handtuch halten + holding_tray: Ein Tablett halten + holding_umbrella: Einen Regenschirm halten + holding_wand: Einen Zauberstab halten + holding_whip: Eine Peitsche halten + arm_around_neck: Mit einer Hand um den Hals greifen + arms_around_neck: Mit beiden Händen um den Hals greifen + + - name: Handlungen mit den Händen (Etwas bedecken) + color: rgba(241, 229, 140, .4) + tags: + covering: Etwas bedecken + covering_face: Das Gesicht bedecken + covering_ass: Den Po bedecken + covering_crotch: Den Schritt bedecken + covering_eyes: Die Augen bedecken + covering_mouth: Den Mund bedecken + covering_nipples: Die Brustwarzen bedecken + hands_on_another's_: Mit beiden Händen das Gesicht einer anderen Person berühren + hands_on_another's_cheeks: Mit beiden Händen die Wangen einer anderen Person berühren + hands_on_ass: Mit beiden Händen den Po berühren + hands_on_feet: Mit beiden Händen die Füße berühren + hands_on_headwear: Mit beiden Händen den Kopfschmuck berühren + hands_on_hilt: Mit beiden Händen den Griff berühren + hands_on_lap: Mit beiden Händen auf dem Schoß + hands_on_own_face: Mit beiden Händen das eigene Gesicht berühren + hands_on_own_cheeks: Mit beiden Händen die eigenen Wangen berühren + hands_on_own_chest: Mit beiden Händen die eigene Brust berühren + hands_on_own_head: Mit beiden Händen den eigenen Kopf berühren + hands_on_own_knees: Mit beiden Händen die eigenen Knie berühren + hands_on_own_stomach: Mit beiden Händen den eigenen Bauch berühren + hands_on_own_thighs: Mit beiden Händen die eigenen Oberschenkel berühren + hands_on_another's_shoulders: Mit beiden Händen die Schultern einer anderen Person berühren + hands_on_hips: Mit beiden Händen auf die Hüften stützen | Mit beiden Händen auf der Taille stützen + hand_on_another's_: Eine Hand das Gesicht einer anderen Person berühren + hand_on_another's_cheek: Eine Hand die Wange einer anderen Person berühren + hand_on_another's_chest: Eine Hand die Brust einer anderen Person berühren + hand_on_another's_chin: Eine Hand das Kinn einer anderen Person berühren + hand_on_another's_head: Eine Hand den Kopf einer anderen Person berühren + hand_on_another's_shoulder: Eine Hand die Schulter einer anderen Person berühren + hand_on_another's_stomach: Eine Hand den Bauch einer anderen Person berühren + hand_on_ass: Eine Hand den Po berühren + hand_on_head: Eine Hand den Kopf berühren + hand_on_headwear: Eine Hand den Kopfschmuck berühren + hand_on_hilt: Eine Hand den Griff berühren + hand_on_hip: Eine Hand auf die Hüfte stützen | Eine Hand auf der Taille stützen + hand_on_own_: Eine Hand auf das eigene Gesicht legen + hand_on_own_cheek: Eine Hand auf die eigene Wange legen + hand_on_own_chest: Eine Hand auf die eigene Brust legen + hand_on_own_chin: Eine Hand das eigene Kinn berühren + hand_on_own_stomach: Eine Hand auf den eigenen Bauch legen + hand_on_shoulder: Eine Hand auf die Schulter legen + hand_in_another's_hair: Eine Hand in den Haaren einer anderen Person + hand_in_hair: Eine Hand im Haar vergraben + hand_in_pocket: Eine Hand in der Tasche + + - name: Handlungen mit den Händen (Etwas greifen) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: Den Po greifen + flat_chest_grab: Flache Brust greifen + grabbing: Greifen | Etwas festhalten + grabbing_another's_ass: Den Po einer anderen Person greifen + grabbing_another's_hair: Die Haare einer anderen Person greifen + grabbing_from_behind: Von hinten greifen | Von hinten die Brust festhalten + grabbing_own_ass: Den eigenen Po greifen + guided_penetration: Den Penis führen + hair_grab: Die Haare greifen + leg_grab: Das Bein greifen + necktie_grab: Die Krawatte greifen + neckwear_grab: Die Halsbekleidung greifen + penis_grab: Den Penis greifen + pillow_grab: Das Kissen greifen + sheet_grab: Das Bettlaken greifen + tail_grab: Den Schwanz greifen + thigh_grab: Den Oberschenkel greifen + torso_grab: Den Oberkörper greifen + wrist_grab: Das Handgelenk greifen + + - name: Beinbewegungen + color: rgba(241, 229, 140, .4) + tags: + legs_up: Ein Bein anheben + spread legs: Die Beine spreizen + legs_together: Die Beine zusammenhalten + crossed_legs: Die Beine übereinander schlagen + m_legs: Die Beine im M-Stil halten + standing_split,_leg_up: Im Stehen einen Spagat machen, ein Bein anheben + curtsy: Verbeugen (Höflichkeitsgeste) + hand_between_legs: Eine Hand zwischen den Beinen + open_stance: Stehend entspannt + convenient_leg: Das Bein an einer empfindlichen Stelle halten + leg_lock: Mit beiden Beinen festhalten + legs: Beine + legs_over_head: Die Beine über den Kopf heben + squatting,_open_legs: In der Hocke sitzen und die Beine spreizen + knees_together_feet_apart: Knie zusammen, Füße auseinander + animal_on_lap: Ein Tier auf dem Schoß + hand_on_own_knee: Eine Hand auf das eigene Knie legen + knee_up: Das Knie anheben + knees: Knie + knees_to_chest: Die Knie zur Brust ziehen + on_lap: Auf dem Schoß + sitting: Sitzen + wariza: Im Schneidersitz + straddling: Im Schritt sitzen + yokozuwari: Seitlich sitzen + sitting_backwards: Rückwärts sitzen + sitting_in_tree: Auf einem Baum sitzen + sitting_on_xx: Auf etwas sitzen + butterfly_sitting: Schmetterlingssitz + lotus_position: Im Lotussitz sitzen + sitting_on_railing: Auf einem Geländer sitzen + sitting_on_rock: Auf einem Felsen sitzen + sitting_on_stairs: Auf Treppen sitzen + sitting_on_table: Auf einem Tisch sitzen + sitting_on_water: Auf dem Wasser sitzen + cushion: Sitzkissen + indian_style: Im Schneidersitz + sitting_on_chair: Auf einem Stuhl sitzen + sidesaddle: Seitlich auf dem Sattel sitzen + sitting_on_bed: Auf dem Bett sitzen + sitting_on_desk: Auf dem Schreibtisch sitzen + sitting_on_lap: Auf dem Schoß sitzen + sitting_on_person: Auf einer Person sitzen + upright_straddle: Gegenüber sitzen + squatting: In der Hocke sitzen + one_knee: Ein Knie + kneeling: Knien + all_fours: Auf allen Vieren + gravure_pose: Gravure-Positur + kicking: Treten + high_kick: Hoch treten + soaking_feet: Füße einweichen + reclining: Sich zurücklehnen + hugging_own_legs: Die eigenen Beine umarmen + bare_legs: Nackte Beine + between_legs: (Hervorhebung) Zwischen den Beinen + cropped_legs: Nur ein Teil der Beine gezeichnet + k/da_(league_of_legends): K/DA (League of Legends) + leg_belt: Bein mit einem Riemen befestigen + leg_hair: Beinbehaarung + leg_up: Das Bein anheben + legs_apart: Die Beine auseinander + lowleg: Beine im M-Stil + mechanical_legs: Mechanische Beine + multiple_legs: Charakter mit mehreren Beinen + no_legs: Keine Beine gezeichnet + no_legwear: Keine Beinbekleidung (nackt) + tail_between_legs: Den Schwanz zwischen den Beinen halten + barefoot: Barfuß + foot_out_of_frame: Ein Fuß ist außerhalb des Bildes + footprints: Fußabdrücke + dirty_feet: Falsch gezeichnete Füße + feet: Füße + feet_out_of_frame: Beide Füße sind außerhalb des Bildes + feet_up: Die Füße hochlegen + wrong_feet: Falsch gezeichnete Füße + cameltoe: Cameltoe + pigeon-toed: Einwärts gedrehte Beine + tiptoes: Auf den Zehenspitzen stehen + toe-point: Zehenspitzen + amputee: Amputierte Gliedmaßen | Einbeinig | Körperliche Behinderung | Amputiertes Mädchen + ankle_strap: Knöchelriemen + ankle_wrap: Knöchelwickel + crossed_ankles: Die Knöchel überkreuzen + pince-nez: Pince-Nez (Nasenbrille) | Brillen ohne Bügel + folded: Ein Bein anheben und die Intimzone zeigen + thick_thighs: Dicke Oberschenkel + thigh_holster: Beinholster + + - name: Andere Aktionen + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: Brüste aneinander drücken | Brust an Brust + back-to-back: Rücken an Rücken + cunnilingus: Cunnilingus + eye_contact: Blickkontakt + facing_another: Einander gegenüberstehen + facing_away: Angesicht zu Angesicht (Gesichter sind nah beieinander) + feeding: Füttern + finger_in_another's_mouth: Finger im Mund einer anderen Person + fingering: Fingern + french_kiss: Französischer Kuss + giving: Geben | Überreichen + grinding: Reiben | Aneinander reiben + groping: Betatschen + holding_hands: Händchen halten + hug: Umarmung + imminent_kiss: Bevorstehender Kuss + incoming_food: Essen anreichen + incoming_gift: Geschenk anreichen + interlocked_fingers: Verschränkte Finger + Kabedon: Kabedon (an die Wand drücken) + lap_pillow: Schoßkissen + licking_penis: Penis lecken + long_tongue: Lange Zunge + mimikaki: Ohren putzen + oral_invitation: Mit herausgestreckter Zunge auf Ejakulation warten + princess_carry: Prinzessinnen-Trage + shared_bathing: Gemeinsames Baden + shared_food: Essen teilen | Essen mit dem Mund weitergeben + sitting_on_head: Auf dem Kopf sitzen + sitting_on_shoulder: Auf der Schulter sitzen + slapping: Ohrfeigen + spanking: Den Po versohlen + special_feeling_(meme): Meme "Besondere Gefühle" (Schirm im Schnee) + symmetrical_docking: Brüste zusammendrücken + tongue: Zunge + tongue_out: Zunge herausstrecken + uvula: Uvula | Hängender Gaumenzäpfchen + ear_biting: Ohrläppchen beißen + mixed_bathing: Gemischtes Baden + +- name: Bild + groups: + - name: Bildqualität + color: rgba(0, 255, 255, .4) + tags: + checkered: kariert + lowres: niedrige Auflösung + highres: hohe Auflösung + absurdres: extrem hohe Auflösung + incredibly absurdres: unglaublich hohe Auflösung + huge filesize: sehr hohe Auflösung/große Dateigröße + wallpaper: Hintergrundbild + pixel art: Pixelkunst + monochrome: monochromes Bild + colorful: farbenfroh + + - name: Kunststil + color: rgba(0, 255, 255, .4) + tags: + artbook: Kunstbuch + game cg: CG-Kunstwerk aus Spielen + comic: Comic + 4koma: Vier-Panel-Comic + animated gif: animiertes GIF + dakimakura: Dakimakura (japanisches Kissen) + cosplay: Cosplay + crossover: Crossover + dark: dunkel + light: hell + guro: Guro (grausamer Kunststil) + realistic: realistisch + photo: Foto + real: real + landscape/scenery: Landschaft + cityscape: Stadtbild + science fiction: Science-Fiction + original: Original + parody: Parodie + personification: Personifizierung + optical illusion: optische Täuschung + fine art parody: Parodie auf ein berühmtes Kunstwerk + sketch: Skizze + traditional media: traditionelle Medien (Handzeichnung) + watercolor (medium): Aquarell + silhouette: Silhouette + cover: Cover + album: Album + sample: Bild mit Text + back: Rückansicht + bust: Büste + profile: Profilansicht + expressions: Gesichtsausdrücke + everyone: alle Hauptfiguren in einem Werk + column lineup: Bildkomposition aus mehreren kleinen Bildern + transparent background: transparenter Hintergrund + simple background: einfacher Hintergrund + gradient background: Verlaufshintergrund + zoom layer: Hintergrund ist eine vergrößerte Version des Vordergrunds + 8 Bit Game: 8-Bit-Spiel + 1980s anime: 80er-Jahre-Anime + disney movie: Disney-Film + goth: Gothic + 80s movie: 80er-Jahre-Film + bubble bobble: Bubble Bobble + style of Pixar: Pixar-Stil + Polaroid art: Polaroid-Kunst + Kaleidoscope Photography: Kaleidoskop-Fotografie + opal render: Opal-Rendering + chemigram: Chemigramm + Studio Ghibli: Studio-Ghibli-Stil + dreamlike: traumhaft + (faux traditional media): Imitation traditioneller Medien + genshin impact: Genshin Impact + azur lane: Azur Lane + kantai collection: Kantai Collection + rebecca (cyberpunk): Rebecca (Cyberpunk) + chainsaw man: Chainsaw Man + Magic Vortex: Magischer Wirbel + ((dieselpunk)): Dieselpunk + magazine scan: Zeitschriften-Scan + album cover: Albumcover + (lineart): Linienkunst + synthwave: Synthwave + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): Lococo + + - name: Kunsttyp + color: rgba(0, 255, 255, .4) + tags: + monochrome: monochromes Bild + Collage: Collage + Dalle de verre: Glasmosaik + pixel art: Pixelkunst + Encaustic painting: Enkaustikmalerei + Ink wash painting: Tuschemalerei + Mezzotint: Mezzotinto + silhouette: Silhouette + illustration: Illustration + (((ink))), ((watercolor)): Aquarellmalerei + illustration,(((ukiyoe))),((sketch)),((japanese_art)): Ukiyo-e + ((wash painting)),((ink s...)): chinesischer Stil + ((dyeing)),((oil painting)),((impasto)): Ölmalerei + (posing sketch), (monochrome): Schwarz-Weiß-Skizze + sketch: Skizze + (monochrome), (gray scale), (pencil sketch lines: Bleistiftskizze + (watercolor pencil): Aquarellstiftzeichnung + + - name: Kunstrichtung + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): Jugendstil + ((classicism)): Klassizismus + ((futurism)): Futurismus + ((Dadaism)): Dadaismus + ((abstract art)): abstrakte Kunst + ((ASCII art)): ASCII-Kunst + + - name: Künstlerischer Stil + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): Alphonse Mucha-Stil + ((Monet style)): Monet-Stil + + - name: Beleuchtung + color: rgba(0, 255, 255, .4) + tags: + rim light: Kantenlicht + Volumetric Lighting: Volumenlicht + glowing neon lights: leuchtende Neonlichter + Cinematic Lighting: filmreife Beleuchtung + lens flare: Linsenreflex + metallic luster: metallischer Glanz + moody lighting: stimmungsvolle Beleuchtung + Tyndall effect: Tyndall-Effekt + light leaks: Lichtlecks + background light: Hintergrundbeleuchtung + available light: vorhandenes Licht + + - name: Realismus + color: rgba(0, 255, 255, .4) + tags: + realistic: realistisch + highres: dick aufgetragen (Stil) + photo_(medium): fotorealistisch (Stil) + oil_painting: Ölgemälde + reality: Realität + polaroid: Polaroid-Foto + + - name: Skizze + color: rgba(0, 255, 255, .4) + tags: + sketch: Skizze + flat_color: Flächenfarbe + monochrome: monochrom + spot_color: Volltonfarbe + halftone: Raster + greyscale: Graustufen + high_contrast: hoher Kontrast + partially_colored: teilweise koloriert + chromatic_aberration: Farbfehler + contour_deepening: Konturvertiefung + outline: Umriss + silhouette: Silhouette + + - name: Pinsel + color: rgba(0, 255, 255, .4) + tags: + traditional_media: traditionelle Medien (wie Papier) + faux_traditional_media: Imitation traditioneller Medien + marker_(medium): Marker + copics: Copics (neutralgrau) + pencil_sketch_lines: Bleistiftskizzenlinien + graphite_(medium): Graphitstift + colored_pencil_(medium): Buntstift + millipen_(medium): Fineliner + nib_pen_(medium): Federstift + ballpoint_pen_(medium)_: Kugelschreiber + pastel_color: Pastellfarbe + watercolor_(medium): Aquarell + acrylic_paint_(medium): Acrylfarbe + contour_deepening: Linienverstärkung + + - name: Farbe + color: rgba(0, 255, 255, .4) + tags: + orange: Orange + blue: Blau + red: Rot + light_brown: Hellbraun + dark_pink: Dunkelrosa + khaki: Khaki + blonde: Blond + brown: Braun + black: Schwarz + gray: Grau + darkgray: Dunkelgrau + silver: Silber + lightgray: Hellgrau + gainsboro: Gainsboro + whitesmoke: Weißrauch + snow: Schnee + ghostwhite: Geisterweiß + floralwhite: Blütenweiß + linen: Leinen + antiquewhite: Antikweiß + papayawhip: Papayacreme + blanchedalmond: Blanchierte Mandel + bisque: Biskuit + moccasin: Mokassin + navajowhite: Navajoweiß + peachpuff: Pfirsich + mistyrose: Blassrose + lavenderblush: Lavendelrosa + seashell: Muschel + oldlace: Alte Spitze + ivory: Elfenbein + honeydew: Honigmelone + mintcream: Minzcreme + azure: Azurblau + aliceblue: Aliceblau + lavender: Lavendel + lightsteelblue: Hellstahlblau + lightslategray: Hellgraugrün + slategray: Schiefergrau + steelblue: Stahlblau + royalblue: Königsblau + midnightblue: Mitternachtsblau + navy: Marineblau + darkblue: Dunkelblau + mediumblue: Mittelblau + dodgerblue: Dodgerblau + cornflowerblue: Kornblumenblau + skyblue: Himmelblau + lightblue: Hellblau + powderblue: Puderblau + paleturquoise: Blaustichiges Türkis + lightcyan: Hellzyan + cyan: Cyan + aquamarine: Aquamarin + turquoise: Türkis + mediumturquoise: Mitteltürkis + darkturquoise: Dunkeltürkis + lightseagreen: Hellseegrün + cadetblue: Kadettenblau + darkcyan: Dunkelzyan + teal: Blaugrün + darkslategray: Dunkelgraugrün + darkgreen: Dunkelgrün + green: Grün + forestgreen: Waldgrün + seagreen: Seegrün + mediumseagreen: Mittelgrün + mediumaquamarine: Mittelaquamarin + darkseagreen: Dunkelgrün + palegreen: Hellgrün + lightgreen: Hellgrün + springgreen: Frühlingsgrün + mediumspringgreen: Mittelfrühlingsgrün + lawngreen: Grasgrün + chartreuse: Chartreuse + greenyellow: Grün-Gelb + lime: Limettengrün + limegreen: Limettengrün + yellowgreen: Gelbgrün + darkolivegreen: Dunkelolivgrün + olivedrab: Olivgrau + olive: Olive + darkkhaki: Dunkelkhaki + palegoldenrod: Blassgoldgelb + cornsilk: Maisseide + beige: Beige + lightyellow: Hellgelb + lightgoldenrodyellow: Hellgoldgelb + lemonchiffon: Zitronenchiffon + wheat: Weizen + burlywood: Burlywood + tan: Tan + yellow: Gelb + gold: Gold + sandybrown: Sandbraun + darkorange: Dunkelorange + goldenrod: Goldrute + peru: Peru + darkgoldenrod: Dunkelgoldrute + chocolate: Schokolade + sienna: Sienna + saddlebrown: Sattelbraun + maroon: Kastanienbraun + darkred: Dunkelrot + firebrick: Ziegelrot + indianred: Indischrot + rosybrown: Rosenbraun + darksalmon: Dunkellachs + lightcoral: Hellkoralle + salmon: Lachs + lightsalmon: Helllachs + coral: Koralle + tomato: Tomatenrot + orangered: Orangerot + crimson: Karmesinrot + mediumvioletred: Mittelviolettrot + deeppink: Tiefrosa + hotpink: Knallrosa + palevioletred: Blassviolettrot + pink: Rosa + lightpink: Hellrosa + thistle: Distel + magenta: Magenta + fuchsia: Fuchsia + violet: Violett + plum: Pflaume + orchid: Orchidee + mediumorchid: Mittelorchidee + darkorchid: Dunkelorchidee + darkviolet: Dunkelviolett + darkmagenta: Dunkelmagenta + purple: Purpur + indigo: Indigoblau + darkslateblue: Dunkelschieferblau + blueviolet: Blauviolett + mediumpurple: Mittelpurpur + slateblue: Schieferblau + mediumslateblue: Mittelschieferblau + + - name: Hintergrund + color: rgba(0, 255, 255, .4) + tags: + fantasy: Fantasy-Stil + ban: Science-Fiction + cyberpunk: Cyberpunk + depth_of_field: Tiefenschärfe (Maltechnik) + blurry: verschwommener Hintergrund + blurry_foreground: verschwommener Vordergrund + simple_background: einfacher Hintergrund + black_background: schwarzer Hintergrund + white_background: weißer Hintergrund + transparent_background: transparenter Hintergrund + beige_background: beige Hintergrund + brown_background: brauner Hintergrund + tan_background: tan Hintergrund + grey_background: grauer Hintergrund + two-tone_background: zweifarbiger Hintergrund + gradient_background: Verlaufshintergrund + multicolored_background: mehrfarbiger Hintergrund + rainbow_background: Regenbogenhintergrund + abstract_background: abstrakter Hintergrund + argyle_background: Argyle-Hintergrund + checkered_background: karierte Hintergrund + floral_background: mit Blumen verzierter Hintergrund + halftone_background: Rasterhintergrund + heart_background: herzförmiger Hintergrund + honeycomb_background: Bienenwaben-Hintergrund + plaid_background: karierte Hintergrund + polka_dot: Tupfenhintergrund + striped_background: gestreifter Hintergrund + scenery: Landschaft + landscape: Landschaft + foral_background: mit Blumenmuster verzierter Hintergrund + crop_top_overhang: überhängender Oberteilbeschnitt + starry_background: Sternenhintergrund + sparkle_background: funkelnder Hintergrund + cityscape: Stadtbild + city_lights: Stadtleuchten + clock_background: Uhrenhintergrund + bubble_background: Blasenhintergrund + border: Rand + pillarboxed: säulenförmiger Hintergrund + rounded_corners: abgerundete Ecken + viewfinder: Sucher + windowboxed: fensterrahmenartiger Hintergrund + outside_border: Teil des Bildes liegt außerhalb des Rahmens + flashback: Rückblende + wall_of_text: Text im Hintergrund + background_text: Hintergrundtext + +- name: Umgebung + groups: + - name: Jahreszeit + color: rgba(31, 144, 255, .4) + tags: + in spring: Frühling + in summer: Sommer + in autumn: Herbst + in winter: Winter + (autumn maple forest:1.3),(very few fallen leaves),(path): Herbstlandschaft + + - name: Wetter + color: rgba(31, 144, 255, .4) + tags: + day: Tag + dusk: Abenddämmerung + night: Nacht + rain: Regen + in the rain: Im Regen + rainy days: Regentage + sunset: Sonnenuntergang + cloudy: Bewölkt + full moon: Vollmond + sun: Sonne + moon: Mond + full_moon: Vollmond + stars: Sterne + sky: Himmel + universe: Universum + snow,ice: Schnee, Eis + snowflakes: Schneeflocken + lighting: Blitz + rainbow: Regenbogen + meteor shower: Meteoritenschauer + cumulonimbus: Cumulonimbus-Wolke + + - name: Natur + color: rgba(31, 144, 255, .4) + tags: + nature: Natur + sea: Meer + ocean: Ozean + beach: Strand + hills: Hügel + in a meadow: In einer Wiese + on the beach: Am Strand + underwater: Unterwasser + over the sea: Über dem Meer + grove: Hain + on a desert: In einer Wüste + plateau: Hochebene + cliff: Klippe + canyon: Canyon + oasis: Oase + bamboo forest: Bambuswald + glacier: Gletscher + floating island: Schwimmende Insel + volcano: Vulkan + savanna: Savanne + waterfall: Wasserfall + stream: Bach + wasteland: Ödland + field: Feld + rice paddy: Reisfeld + wheat field: Weizenfeld + flower field: Blumenfeld + flower sea: Blumenmeer + space: Weltraum + starry sky: Sternenhimmel + lake: See + river: Fluss + onsen: Onsen (heiße Quelle) + flowers meadows: Blumenwiesen + Alps: Alpen + Dreamy forest: Traumhafter Wald (illusionär, leuchtende Partikel, ruhig) + mountain: Berg + on a hill: Auf einem Hügel + the top of the hill: Der Gipfel des Hügels + outdoors: Draußen + + - name: Wasser + color: rgba(31, 144, 255, .4) + tags: + ocean: Ozean + dripping: Tropfen + beach: Strand + lake: See + waterfall: Wasserfall + ripples: Wellenbewegungen + swirl: Wirbel + waves: Wellen + seashell: Muschel + seaweed: Seetang + + - name: Himmel + color: rgba(31, 144, 255, .4) + tags: + sky: Himmel + gradient_sky: Farbverlaufshimmel + night_sky: Nachthimmel + starry_sky: Sternenhimmel + hyper_galaxy: Hyper-Galaxie + star_(sky): Stern (am Himmel) + star_trail: Sternenspur + sunset: Sonnenuntergang + moon: Mond + lunar: Mond-, mondbezogen + crescent: Sichel + crescent_moon: Neumond + full_moon: Vollmond + moonlight: Mondlicht + scarlet_moon: Scharlachroter Mond + universe: Universum + space: Weltraum + planet: Planet + from_space_station: Von der Raumstation + satellite: Satellit + + - name: Wolken + color: rgba(31, 144, 255, .4) + tags: + cirrus: Federwolke + Cirrocumulus: Schäfchenwolke + Cirrostratus: Schleierwolke + Altocumulus: Schichtwolke + Altostratus: Mittelhochwolke + stratus: Schichtwolke + Stratocumulus: Schichtwolke mit Quellungen + cumulus: Haufenwolke + Cumulonimbus: Gewitterwolke + Nimbostratus: Regenwolke + cirrus_fibratus: Faserwolke + cirrus_uncinus: Hakenfederwolke + cirrus_spissatus: Dichte Federwolke + cirrus_floccus: Flockenwolke + cirrus_castellanus: Burgenwolke + cirrus_intortus: Verdrehte Federwolke + cirrocumulus: Schäfchenwolke + cirrocumulus_stratiformis: Schichtförmige Schäfchenwolke + cirrocumulus_floccus: Flockenförmige Schäfchenwolke + cirrocumulus_castellanus: Burgenförmige Schäfchenwolke + cirrocumulus_lacunosus: Netzförmige Schäfchenwolke + cirrostratus: Schleierwolke + cirrostratus_fibratus: Faserige Schleierwolke + cirrostratus_nebulosus: Nebulöse Schleierwolke + altocumulus: Schichtwolke + altocumulus_strataformis: Schichtförmige Schichtwolke + altocumulus_lenticularis: Linsenförmige Schichtwolke + altocumulus_castellanus: Burgenförmige Schichtwolke + altocumulus_floccus: Flockenförmige Schichtwolke + altocumulus_lacunosus: Netzförmige Schichtwolke + altostratus: Mittelhochwolke + altostratus_undulatus: Gewellte Mittelhochwolke + altostratus_duplicates: Doppelte Mittelhochwolke + altostratus_pannus: Faserige Mittelhochwolke + altostratus_translucidus: Durchsichtige Mittelhochwolke + altostratus_opacus: Undurchsichtige Mittelhochwolke + altostratus_radiatus: Strahlenförmige Mittelhochwolke + altostratus_mammatus: Mammatusförmige Mittelhochwolke + stratus_fractus: Zerfetzte Schichtwolke + stratus_nebulosus: Nebulöse Schichtwolke + stratus_undulatus: Gewellte Schichtwolke + stratocumulus: Schichtwolke + stratocumulus_stratiformis: Schichtförmige Schichtwolke + stratocumulus_cumulogentis: Schauerartige Schichtwolke + stratocumulus_castellanus: Burgenförmige Schichtwolke + stratocumulus_lenticularis: Linsenförmige Schichtwolke + stratocumulus_lacunosus: Flockenförmige Schichtwolke + cumulus_humilis: Flache Haufenwolke + cumulus_mediocris: Mittelhohe Haufenwolke + cumulus_congestus: Stark aufgetürmte Haufenwolke + cumulus_fractus: Zerfetzte Haufenwolke + cumulonimbus: Gewitterwolke + cumulonimbus_calvus: Kahlköpfige Gewitterwolke + cumulonimbus_capillatus: Haarige Gewitterwolke + cumulonimbus_incus: Ambossförmige Gewitterwolke + + - name: Atmosphäre + color: rgba(31, 144, 255, .4) + tags: + new year: Neujahr + year of the rabbit: Jahr des Kaninchens + valentine: Valentinstag + lantern festival: Laternenfest + summer festival: Sommerfest + tanabata: Tanabata-Fest + mid-autumn festival: Mittherbstfest + halloween: Halloween + christmas: Weihnachten + explosion: Explosion + water vapor: Wasserdampf + fireworks: Feuerwerk + ceiling window: Bodentiefe Fenster + colourful glass: Bunte Glasfenster + stain glass: Buntglas + Graffiti wall: Graffiti-Wand + mosaic background: Mosaikhintergrund + liquid background, Sputtered water: Flüssiger Hintergrund, Spritzwasser + magic circles: Magische Kreise + fluorescent mushroom forests background: Hintergrund mit fluoreszierenden Pilzwäldern + (((colorful bubble))): Bunte Blase + in the ocean: Am Meer + against backlight at dusk: Gegen das Abendlicht + golden hour lighting: Beleuchtung zur goldenen Stunde + strong rim light: Starkes Kantenlicht + intense shadows: Intensive Schatten + +- name: Szene + groups: + - name: Im Freien + color: rgba(159, 32, 240, .4) + tags: + castle: Schloss + city: Stadt + waterpark: Wasserpark + carousel: Karussell + ferris wheel: Riesenrad + aquarium: Aquarium + zoo: Zoo + bowling alley: Bowlingbahn + art gallery: Kunstgalerie + museum: Museum + planetarium: Planetarium + swimming pool: Schwimmbad + stadium: Stadion + temple: Tempel + bus stop: Bushaltestelle + train station: Bahnhof + fountain: Brunnen + playground: Spielplatz + market stall: Marktstand + phone booth: Telefonzelle + railroad tracks: Eisenbahnschienen + airport: Flughafen + tunnel: Tunnel + skyscraper: Wolkenkratzer + cityscape: Stadtbild + ruins: Ruinen + greco-roman architectur: griechisch-römische Architektur + east asian architecture: ostasiatische Architektur + torii: Torii (japanisches Tor) + church: Kirche + shop: Geschäft + street: Straße + cyberpunk city: Cyberpunk-Stadt + in the cyberpunk city: in der Cyberpunk-Stadt + chinese style architecture: chinesische Architektur im traditionellen Stil + gohei: Gohei (Shintō-Schrein) + Bustling city: belebte Stadt + laboratory: Labor + coffee house: Kaffeehaus + gym: Fitnessstudio + library: Bibliothek + prison: Gefängnis + engine room: Maschinenraum + handrail: Geländer + neon lights: Neonlichter + street lamp: Straßenlaterne + road: Straße + shanty town/slum: Elendsviertel/Slum + warehouse: Lagerhaus + gothic architecture: gotische Architektur + restaurant: Restaurant + treehouse: Baumhaus + modern,Europe: modern, Europa + Industrial wind, Chinese architecture: Industrieller Wind, chinesische Architektur + building_ruins: Ruine eines Gebäudes + bar: Bar + izakaya: Izakaya (japanisches Gasthaus) + cafe: Café + bakery: Bäckerei + convenience store: Convenience-Store + supermarket: Supermarkt + pharmacy: Apotheke + theater: Theater + movie theater: Kino + workshop: Werkstatt + courtroom: Gerichtssaal + park: Park + Trapeze: Trapez + classroom: Klassenzimmer + botanical garden: Botanischer Garten + amusement_park: Vergnügungspark + Disney_land: Disneyland + arena: Arena + wrestling_ring: Wrestling-Ring + Auditorium: Auditorium + concert: Konzert + Japanese_hotel: japanisches Hotel + jail_bars: Gefängnisgitter + in_the_movie_theatre: im Kino + stage: Bühne + harbor: Hafen + casino: Casino + billiard: Billard + dungeon: Verlies + grave: Grab + graveyard: Friedhof + tombstone: Grabstein + monolith: Monolith + rappelling: Abseilen + building: Gebäude + architecture: Architektur + magnificent_architecture: prächtige Architektur + Skyscraper: Wolkenkratzer + east_asian_architecture: ostasiatische Architektur + cathedral: Kathedrale + chinese_style_loft: chinesischer Loft-Stil + traditional_chinese_room: traditionelles chinesisches Zimmer + turret: Turm + tower: Turm + mosque: Moschee + reservoir: Stausee + railroad: Eisenbahn + railway: Eisenbahn + bridge: Brücke + under_bridge: unter der Brücke + remains: Überreste + rubble_ruins: Trümmer + + - name: Stadt + color: rgba(159, 32, 240, .4) + tags: + city: Stadt + cityscape: Stadtbild + street: Straße + downtown: Innenstadt + crowd: Menschenmenge + alley: Gasse + in_main_street: in der Hauptstraße + Intersection: Kreuzung + avenue: Allee + lawn: Rasen + road: Straße + path: Pfad + pavement: Gehweg + road_sign: Verkehrsschild + traffic_cone: Verkehrshütchen + lamppost: Straßenlaterne + power_lines: Stromleitungen + fence: Zaun + railing: Geländer + bench: Bank + vending_machine: Verkaufsautomat + + - name: Innenraum + color: rgba(159, 32, 240, .4) + tags: + indoor: Innenraum + bathroom: Badezimmer + toilet stall: Toilettenkabine + otaku room: Otaku-Zimmer + cafeteria: Cafeteria + classroom: Klassenzimmer + clubroom: Clubraum + bedroom: Schlafzimmer + kitchen: Küche + dormitory: Schlafsaal + dungeon: Verlies + infirmary: Krankenstation + stage: Bühne + electrical room: Elektrikraum + server room: Serverraum + basement: Keller + art room: Kunstraum + bathing: Baden + stairs: Treppe + greenhouse: Gewächshaus + + - name: Boden + color: rgba(159, 32, 240, .4) + tags: + floor: Boden + tile_floor: Fliesenboden + + - name: Möbel + color: rgba(159, 32, 240, .4) + tags: + bedroom: Schlafzimmer + tatami: Tatami (japanische Bodenmatte) + bed: Bett + couch: Sofa + kotatsu: Kotatsu (japanischer Wärmetisch) + fireplace: Kamin + window_: Fenster + sash: Fensterflügel + curtains: Vorhänge + door: Tür + sliding_doors: Schiebetüren + clothes_rack: Kleiderständer + air_conditioner: Klimaanlage + table: Tisch + school_desk: Schulbank + chair: Stuhl + armchair: Sessel + lounge_chair: Liegestuhl + beach_chair: Strandstuhl + folding_chair: Klappstuhl + invisible_chair: unsichtbarer Stuhl + office_chair: Bürostuhl + wheelchair: Rollstuhl + + - name: Bettwäsche + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: Bettlaken + mattress: Matratze + futon: Futon (japanische Schlafmatte) + cushion: Kissen + carpet: Teppich + pillow: Kopfkissen + dumpling_Hug_Pillow: Knödel-Kuschelkissen + pillow_hug: Kuschelkissen + yes-no_pillow: Ja/Nein-Kissen + stuffed_animal: Plüschtier + stuffed_bunny: Plüschhase + koakuma: Koakuma (kleiner Bär) + + - name: Badezimmer + color: rgba(159, 32, 240, .4) + tags: + bathroom: Badezimmer + bathtub,: Badewanne + rubber_duck: Gummiente + shower_head: Duschkopf + toilet: Toilette + squat_toilet: Hocktoilette + soap: Seife + tiles: Fliesen + +- name: Gegenstand + groups: + - name: Schulmaterial + color: rgba(189, 182, 107, .4) + tags: + notebook: Notizbuch + paintbrush: Pinsel + pencil: Bleistift + book: Buch + open_book: aufgeschlagenes Buch + book_stack: Bücherstapel + bookshelf: Bücherregal + school_bag: Schultasche + backpack: Rucksack + + - name: Elektronische Geräte + color: rgba(189, 182, 107, .4) + tags: + computer: Computer + mouse: Maus + cellphone: Handy + Smartphones: Smartphone + handheld_game_console_: Handheld-Spielekonsole + nintendo_3ds: Nintendo 3DS + nintendo_ds: Nintendo DS + nintendo_switch: Nintendo Switch + buttons: Knöpfe + power_lines: Stromkabel + cable: Kabel + + - name: Geschirr + color: rgba(189, 182, 107, .4) + tags: + pot: Topf + teapot: Teekanne + ladle: Schöpfkelle + can: Dose + soda_can: Getränkedose + cup: Tasse + plate: Teller + tray: Tablett + bowl: Schüssel + fork: Gabel + chopsticks: Essstäbchen + spoon: Löffel + drinking_glass: Trinkglas + tumbler: normales Glas + beer_mug: Bierkrug + gift_box: Geschenkbox + heart-shaped_box: herzförmige Geschenkbox + candle: Kerze + + - name: Instrumente + color: rgba(189, 182, 107, .4) + tags: + music: Musik + guitar: Gitarre + piano: Klavier + cello: Cello + playing_instrument: Instrument spielen + wind_chime: Windspiel + + - name: Sonstige Gegenstände + color: rgba(189, 182, 107, .4) + tags: + wristwatch: Armbanduhr + folding_fan: Fächer + paper_fan: Papierfächer + uchiwa: Fächer + umbrella: Regenschirm + transparent_umbrella: transparenter Regenschirm + closed_umbrella: geschlossener Regenschirm + oil-paper_umbrella: Ölpapierregenschirm + Parasol: Sonnenschirm + basket: Korb + bouquet: Blumenstrauß + bucket: Eimer + pail: Eimer + camera: Kamera + gohei: Gohei (Schutzband gegen das Böse) + lantern/lamp: Laterne + whip: Peitsche + riding_crop: Reitgerte + ofuda: Ofuda (Schutzamulett) + cane: Spazierstock + wand: Zauberstab + magic: Magie + trading_card: Sammelkarte + playing_card: Spielkarte + Cassette: Kassette + chess_piece: Schachfigur + coin: Münze + copper: Kupfer + hammer: Hammer + microphone: Mikrofon + mimikaki: Ohrreiniger + sack: Sack + scales: Waage + chibi_inset: Chibi-Einlage + damaged: beschädigt + diamond_(shape): Diamant (Form) + gourd: Kürbisflasche + holding_gift: Geschenk halten + inlet: Einlass + key: Schlüssel + leash: Leine + Lever: Hebel + molecule: Molekül + money: Geld + Painting_(Object): Gemälde + photo_(object): Foto + sand: Sand + stubble: Stoppeln + trophy: Trophäe + tube_top: Tubentop + water_bottle: Wasserflasche + lotion: Lotion + lotion_bottle: Lotionflasche + + - name: Waffen + color: rgba(189, 182, 107, .4) + tags: + weapon: Waffe + weapon_on_back: Waffe auf dem Rücken + weapon_over_shoulder: Waffe über der Schulter + huge_weapon: riesige Waffe + planted_weapon: in den Boden gesteckte Waffe + broken_weapon: kaputte Waffe + planted_sword: gestecktes Schwert + sword: Schwert + scabbard: Schwertscheide + unsheathing: Herausziehen + katana: Katana + saber_(weapon): Säbel + scythe: Sense + nose_hatchet: Nasenbeil + dagger: Dolch + scissors: Schere + axe: Axt + hatchet: Beil + stake: Pfahl + lance: Lanze + trident: Dreizack + bow_(weapon): Bogen + arrow: Pfeil + claw_(weapon): Klaue + rifle,: Gewehr + gun: Pistole + handgun: Handfeuerwaffe + thompson_submachine_gun: Thompson-Maschinenpistole + magazine_(weapon): Magazin + dynamite: Dynamit + bomb: Bombe + track missiles: Lenkflugkörper + complex Trajectory: komplexe Flugbahn + tank: Panzer + cannon: Kanone + military_vehicle: Militärfahrzeug + motorcycle: Motorrad + ship: Schiff + watercraft: Wasserfahrzeug + car: Auto + machine: Maschine + machinery: Maschinenbewaffnung + mechanical_arms: mechanische Arme + mechanization: Mechanisierung + robot_ears: Roboterohren + robot_joints: Roboter-Gelenke + variable_fighter: Variable Kämpfer + sorcerer's_sutra_scroll: Zauberers Sutra-Schriftrolle + + - name: Lebensmittel + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: Sushi-Rolle + apple: Apfel + aubergine: Aubergine + burger: Burger + cake: Kuchen + candy: Süßigkeit + candy_apple: kandierte Äpfel + candy_cane: Zuckerstange + carrot: Karotte + cigarette: Zigarette + coffee: Kaffee + cookie: Keks + cotton_candy_: Zuckerwatte + cream: Sahne + dango: Dango (japanische Süßigkeit) + doughnut: Donut + drink: Getränk + egg: Ei + fruit: Obst + Gelatin: Gelatine + ice_cream: Eiscreme + kafuu_chino: Kafuu Chino (Kaffeesorte) + makizushi: Makizushi (gerolltes Sushi) + meat: Fleisch + noodles: Nudeln + obento: Bentō (japanisches Mittagessen) + onigiri: Onigiri (Reisbällchen) + pancake: Pfannkuchen + pasties: Pasteten + peach: Pfirsich + ramen: Ramen + sake: Sake (japanischer Reiswein) + taiyaki: Taiyaki (gefüllter Fischförmiger Pfannkuchen) + tea: Tee + teacup: Teetasse + wagashi: Wagashi (japanisches Süßgebäck) + wine: Wein + jam: Marmelade + pocky: Pocky (japanischer Snack) + bottled_water: Flaschenwasser + sweet_potato: Süßkartoffel + sweets: Süßigkeiten + food: Essen + food_in_mouth: Essen im Mund + food_on_: Essen auf dem Gesicht + food_on_body: Essen auf dem Körper + food_print: Essensabdruck + food_stand: Essensstand + in_food: (Charakter) im Essen + chips: Chips + potato_chips: Kartoffelchips + telstar: Telstar-Fußball + sundae: Eisbecher + tempura: Tempura + + - name: Tiere + color: rgba(189, 182, 107, .4) + tags: + reptile: Reptil + crow: Krähe + bird: Vogel + penguin: Pinguin + chick: Küken + manjuu_(azur_lane): Manjuu (Azur Lane) + shell: Muschel + wriggle_nightbug: Wriggle Nightbug (Insekt) + dragonfly: Libelle + mammal: Säugetier + wolf: Wolf + 扶桑花: Pferd + whale: Wal + cat: Katze + cat_teaser: Katzenköder + dog: Hund + dog_tags: Hundemarken + fox: Fuchs + bunny: Hase + snow_bunny: Schneehase + stuffed_bunny: Plüschhase + horse: Pferd + cow: Kuh + dragon: Drache + loong: chinesischer Drache + eastern_dragon: östlicher Drache + snake: Schlange + slime: Schleim + bear: Bär + panda: Panda + teddy_bear: Teddybär + tiger: Tiger + bat: Fledermaus + hamster: Hamster + mouse: Maus + squirrel: Eichhörnchen + + - name: Pflanzen + color: rgba(189, 182, 107, .4) + tags: + plant: Pflanze + flower: Blume + vase: Vase + bouquet: Blumenstrauß + flower_bloom: Blüte + plum_blossom: Pflaumenblüte + cherry_blossoms: Kirschblüte + wisteria: Glyzinie + hibiscus: Hibiskus + hydrangea: Hortensie + rose: Rose + spider_lily: Spinnenlilie + lily: Lilie + lotus: Lotusblume + bamboo: Bambus + entangled_plants: verwachsene Pflanzen + orchid: Orchidee + chrysanthemum: Chrysantheme + narcissu: Narzisse + tree: Baum + branch: Ast + forest: Wald + pine_tree: Kiefer + palm_tree: Palme + maple_tree: Ahornbaum + bush/shrub,: Busch + christmas_tree: Weihnachtsbaum + maple_leaf: Ahornblatt + pumpkin: Kürbis + jack-o'-lantern: Kürbislaterne + spring_onion: Frühlingszwiebel + +- name: Objektiv + groups: + - name: Objektiv + color: rgba(99, 201, 2, .4) + tags: + panorama: Panorama + landscape: Landschaftsobjektiv (Fernsicht) + wide_shot: Weitwinkelobjektiv (Panoramaobjektiv) + medium_shot: Mittlere Nahaufnahme + mid_shot: Mittlere Nahaufnahme + full_shot: Ganzkörperaufnahme + bust: Halbkörperaufnahme + upper_body: Oberkörper + lower_body: Unterkörper + cowboy_shot: Oberkörper + Oberschenkel (Cowboy-Objektiv) + portrait: Porträt (Gesicht + Schulter + gelegentlich Brust) + profile: Seitenprofil-Porträt (Seitenansicht des Porträts) + + - name: Nahaufnahme + color: rgba(99, 201, 2, .4) + tags: + close-up: Nahaufnahme + macro_shot: Makroaufnahme + inset: Einfügen von anderen Objektiven oder Bildern + cross-section: Querschnitt + x-ray: Röntgen + solo_focus: Fokus auf eine einzelne Person (geeignet für komplexe Szenen) + xx_focus: Fokus auf xx + face_focus: Fokus auf das Gesicht + eyes_focus: Fokus auf die Augen + foot_focus: Fokus auf die Füße + hip_focus: Fokus auf die Hüfte + ass_focus: Fokus auf den Hintern + vehicle_focus: Fokus auf das Fahrzeug + between_legs: Betonung der Beine + between_breasts: Betonung der Brust + between_fingers: Betonung der Finger + peeking: Heimlich schauen + peeking_out: Herausschauen (Heimlich) + peeping: Heimlich schauen (Betonung der Perspektive) + midriff_peek: Blick auf den Bauchnabel + armpit_peek: Blick in die Achselhöhle + pussy_peek: Blick auf die Vagina + panty_peek: Blick auf den Slip + pantyshot: Slipblitzer + caught: Auf frischer Tat ertappt + + - name: Andere Komposition + color: rgba(99, 201, 2, .4) + tags: + aerial: Luftaufnahme + turn_one's_back: Sich umdrehen + upskirt: Rockbodenansicht + phone_screen: Handyscreen + multiple_views: Mehrere Ansichten + mirror selfie: Spiegelselfie + three-quarter view: 3/4-Ansicht + + - name: Kamerawinkel + color: rgba(99, 201, 2, .4) + tags: + front view: Frontalansicht + from_side: Seitliche Ansicht + from_above: Von oben ↘ + from_below: Von unten ↗ + from_outside: Von außen nach innen + from_back: Rückansicht + from behind: Rückansicht + dynamic_angle: Dynamischer Winkel + cinematic_angle: Kinematografischer Winkel + dutch angle: Schräger Winkel + foreshortening: Verkürzung + fisheye: Fischaugenperspektive + + - name: Effekte + color: rgba(99, 201, 2, .4) + tags: + depth of field: Schärfentiefe (Abstimmung von Person und Umgebung) + lens_flare: Objektivreflexion + motion_blur: Bewegungsunschärfe + motion_lines: Linien, die Bewegung darstellen + speed_lines: Geschwindigkeitslinien + bokeh: Unschärfeeffekt + chromatic_aberration: Farbfehler + overexposure: Überbelichtung + contour_deepening: Konturverstärkung + + - name: Hauptcharakteraktionen + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: Zum Betrachter schauen + eye-contact: Blickkontakt + eyeball: Anstarren + stare: Starren + looking_back: Zurückblicken + gradient: Neigung des Charakters + looking_down: Charakter schaut nach unten ↘ + looking_up: Charakter schaut nach oben ↗ + facing_away: Wegschauen + looking_to_the_side: Zur Seite schauen + looking_away: Wegschauen + looking_ahead: In die Zukunft schauen + looking_afar: In die Ferne schauen + looking_outside: Nach draußen schauen + head_tilt: Kopf neigen + head_down: Kopf senken + sideways_glance: Leicht seitlicher Blick + upshirt: Blick von unten auf das Hemd + upshorts: Blick von unten auf den Rock + looking_at_another: Jemand anderen anschauen + looking_at_phone: Auf das Handy schauen + looking_at_animal: Auf ein Tier schauen + looking_at_mirror: In den Spiegel schauen + looking_at_hand: Auf die Hand schauen + looking_at_hands: Auf die Hände schauen + looking_at_food: Auf das Essen schauen + looking_at_screen: Auf den Bildschirm schauen + +- name: Hanfu + groups: + - name: "Tang-Stil:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: Tang-Stil + + - name: Shangshan + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: Orange Oberbekleidung + red upper shan: Rote Oberbekleidung + green upper shan: Grüne Oberbekleidung + blue upper shan: Blaue Oberbekleidung + pink upper shan: Rosa Oberbekleidung + yellow upper shan: Gelbe Oberbekleidung + white upper shan: Weiße Oberbekleidung + light blue upper shan: Hellblaue Oberbekleidung + light green upper shan: Hellgrüne Oberbekleidung + light red upper shan: Hellrote Oberbekleidung + cyan blue upper shan: Cyanblaue Oberbekleidung + light purple upper shan: Hellviolette Oberbekleidung + black with blue upper shan: Schwarze Oberbekleidung mit blauer Oberbekleidung + white with orange upper shan: Weiße Oberbekleidung mit orangefarbener Oberbekleidung + pink with black upper shan: Rosa Oberbekleidung mit schwarzer Oberbekleidung + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: Orange Langoberteil + red long upper shan: Rotes Langoberteil + green long upper shan: Grünes Langoberteil + blue long upper shan: Blaues Langoberteil + pink long upper shan: Rosa Langoberteil + yellow long upper shan: Gelbes Langoberteil + white long upper shan: Weißes Langoberteil + light blue long upper shan: Hellblaues Langoberteil + light green long upper shan: Hellgrünes Langoberteil + light red long upper shan: Hellrotes Langoberteil + cyan blue long upper shan: Cyanblaues Langoberteil + light purple long upper shan: Hellviolette Langoberteil + black with blue long upper shan: Schwarzes Langoberteil mit blauer Oberbekleidung + white with orange long upper shan: Weiße Langoberteil mit orangefarbener Oberbekleidung + pink with black long upper shan: Rosa Langoberteil mit schwarzer Oberbekleidung + + - name: Qixiong Poqun + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: Weiße zerrissene Rockunterseite + red chest po skirt: Rote zerrissene Rockunterseite + green chest po skirt: Grüne zerrissene Rockunterseite + blue chest po skirt: Blaue zerrissene Rockunterseite + pink chest po skirt: Rosa zerrissene Rockunterseite + purple chest po skirt: Violette zerrissene Rockunterseite + multicolour chest po skirt: Bunte zerrissene Rockunterseite + purple with white chest po skirt: Violette zerrissene Rockunterseite mit weißer zerrissener Rockunterseite + white with yellow chest po skirt: Weiße zerrissene Rockunterseite mit gelber zerrissener Rockunterseite + blue with white chest po skirt: Blaue zerrissene Rockunterseite mit weißer zerrissener Rockunterseite + orange with white chest po skirt: Orangefarbene zerrissene Rockunterseite mit weißer zerrissener Rockunterseite + green with white chest po skirt: Grüne zerrissene Rockunterseite mit weißer zerrissener Rockunterseite + light orange with white chest po skirt: Hellorangefarbene zerrissene Rockunterseite mit weißer zerrissener Rockunterseite + pink with white chest po skirt: Rosa zerrissene Rockunterseite mit weißer zerrissener Rockunterseite + white with pink chest po skirt: Weiße zerrissene Rockunterseite mit rosa zerrissener Rockunterseite + + - name: Qixiong Zhequn + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: Weiße Plisseerockunterseite + red chest pleated skirt: Rote Plisseerockunterseite + green chest pleated skirt: Grüne Plisseerockunterseite + blue chest pleated skirt: Blaue Plisseerockunterseite + pink chest pleated skirt: Rosa Plisseerockunterseite + purple chest pleated skirt: Violette Plisseerockunterseite + multicolour chest pleated skirt: Bunte Plisseerockunterseite + purple with white chest pleated skirt: Violette Plisseerockunterseite mit weißer zerrissener Rockunterseite + white with yellow chest pleated skirt: Weiße Plisseerockunterseite mit gelber zerrissener Rockunterseite + blue with white chest pleated skirt: Blaue Plisseerockunterseite mit weißer zerrissener Rockunterseite + orange with white chest pleated skirt: Orangefarbene Plisseerockunterseite mit weißer zerrissener Rockunterseite + green with white chest pleated skirt: Grüne Plisseerockunterseite mit weißer zerrissener Rockunterseite + light orange with white chest pleated skirt: Hellorangefarbene Plisseerockunterseite mit weißer zerrissener Rockunterseite + pink with white chest pleated skirt: Rosa Plisseerockunterseite mit weißer zerrissener Rockunterseite + white with pink chest pleated skirt: Weiße Plisseerockunterseite mit rosa zerrissener Rockunterseite + + - name: Xidai + color: rgba(178, 33, 34, .4) + tags: + green waistband: Grünes Taillenband + yellow waistband: Gelbes Taillenband + red waistband: Rotes Taillenband + pink waistband: Rosa Taillenband + orange waistband: Orangefarbenes Taillenband + light blue waistband: Hellblaues Taillenband + light green waistband: Grünweißes Taillenband + green with yellow waistband: Grünes Taillenband mit gelbem Taillenband + purple with white waistband: Violettes Taillenband mit weißem Taillenband + red with white waistband: Rotes Taillenband mit weißem Taillenband + red with black waistband: Rotes Taillenband mit schwarzem Taillenband + yellow with white waistband: Gelbes Taillenband mit weißem Taillenband + + - name: Pibo + color: rgba(178, 33, 34, .4) + tags: + white pibo: Weißer Pibo + orange pibo: Orangefarbener Pibo + black pibo: Schwarzer Pibo + pink pibo: Rosa Pibo + red pibo: Roter Pibo + purple pibo: Violetter Pibo + light green pibo: Hellgrüner Pibo + white with yellow pibo: Weißer Pibo mit gelbem Pibo + + - type: wrap + + - name: "Song-Stil:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: Song-Stil + + - name: Duanshan + color: rgba(178, 33, 34, .4) + tags: + purple short shan: Violette Kurzoberteil + red short shan: Rotes Kurzoberteil + green short shan: Grünes Kurzoberteil + blue short shan: Blaues Kurzoberteil + pink short shan: Rosa Kurzoberteil + yellow short shan: Gelbes Kurzoberteil + white short shan: Weißes Kurzoberteil + light blue short shan: Hellblaues Kurzoberteil + light green short shan: Hellgrünes Kurzoberteil + light red short shan: Hellrotes Kurzoberteil + cyan blue short shan: Cyanblaues Kurzoberteil + light purple short shan: Hellviolette Kurzoberteil + black with blue short shan: Schwarzes Kurzoberteil mit blauem Kurzoberteil + white with yellow short shan: Weißes Kurzoberteil mit gelbem Kurzoberteil + light yellow with green with white short shan: Hellgelbes Kurzoberteil mit grünem und weißem Kurzoberteil + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + purple long shan: Violette Langoberteil + red long shan: Rotes Langoberteil + green long shan: Grünes Langoberteil + blue long shan: Blaues Langoberteil + pink long shan: Rosa Langoberteil + yellow long shan: Gelbes Langoberteil + white long shan: Weißes Langoberteil + light blue long shan: Hellblaues Langoberteil + light green long shan: Hellgrünes Langoberteil + light red long shan: Hellrotes Langoberteil + cyan blue long shan: Cyanblaues Langoberteil + light purple long shan: Hellviolette Langoberteil + black with blue long shan: Schwarzes Langoberteil mit blauem Langoberteil + white with yellow long shan: Weißes Langoberteil mit gelbem Langoberteil + light yellow with green with white long shan: Hellgelbes Langoberteil mit grünem und weißem Langoberteil + + - name: Baizhequn + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: Weißer Plisseerock + red pleated skirt: Roter Plisseerock + green pleated skirt: Grüner Plisseerock + blue pleated skirt: Blauer Plisseerock + pink pleated skirt: Rosa Plisseerock + light blue pleated skirt: Hellblauer Plisseerock + white golden pleated skirt: Weißer goldener Plisseerock + gradient green pleated skirt: Grüner Verlaufsplisseerock + translucent white pleated skirt: Halbtransparenter weißer Plisseerock + red cyan gradient pleated skirt: Roter Cyan-Verlaufsplisseerock + red green gradient pleated skirt: Roter grüner Verlaufsplisseerock + green with white pleated skirt: Grüner Plisseerock mit weißem Plisseerock + light yellow with green with white pleated skirt: Hellgelber Plisseerock mit grünem und weißem Plisseerock + + - name: Songmo + color: rgba(178, 33, 34, .4) + tags: + orange songmo: Orangefarbener Songmo + red songmo: Roter Songmo + green songmo: Grüner Songmo + blue songmo: Blauer Songmo + pink songmo: Rosa Songmo + yellow songmo: Gelber Songmo + white songmo: Weißer Songmo + purple songmo: Violetter Songmo + green floral songmo: Grüner floraler Songmo + purple floral songmo: Violetter floraler Songmo + cyan floral songmo: Cyanblauer floraler Songmo + + - type: wrap + + - name: "Ming-Stil:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: Ming-Stil + + - name: Oberbekleidung + color: rgba(178, 33, 34, .4) + tags: + short coat: Kurze Jacke + long coat: Lange Jacke + + - name: Rock + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: Mamian-Rock + + - name: Kragen + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Überlappender Kragen + round collar: Runder Kragen + standing collar: Stehkragen + square collar: Quadratischer Kragen + + - name: Verzierungen + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Wolken-Schulter + embroidery: Stickerei + woven gold: Gewebtes Gold + makeup flower: Schminkblume + bufu: Bufu diff --git a/group_tags/default.yaml b/group_tags/default.yaml new file mode 100644 index 0000000000000000000000000000000000000000..eb32965226f2f2f2732e74a24028f0bdeb1cf8a2 --- /dev/null +++ b/group_tags/default.yaml @@ -0,0 +1,4426 @@ +# 👍Prompt Word Integration Sources: 路过银河 (Zhihu), Unknown Author (Google Drive), Internet, etc. Thanks to these authors for their selfless contributions! +# +# ⚠️It is recommended not to modify the contents of this file, as the author of this file may update it periodically. Modifying this file may cause conflicts during updates. +# ⚠️If you need to customize keyword groups, please copy this file, rename it to custom.yaml, and make modifications in custom.yaml. +# ⚠️The plugin will prioritize reading the custom.yaml file. If the custom.yaml file does not exist, it will read this file. +# +# ⚠️If you only want to prepend your own content before the current file, you can create a prepend.yaml file. +# ⚠️If you only want to append your own content after the current file, you can create an append.yaml file. +# ⚠️custom.yaml: Overrides the current file +# ⚠️prepend.yaml: Appends to the current file before +# ⚠️append.yaml: Appends to the current file after +# +# ⚠️It is recommended to use a professional text editor (such as Visual Studio Code) to edit this file to avoid encoding and formatting errors. +# ⚠️Please do not use Notepad, the default text editor in Windows, to edit this file. +# ⚠️After modification, you can go to https://www.yamllint.com/ to check if the content format is correct. + +# Content Format: +# - name: First-level category name +# groups: List of second-level categories +# - name: Second-level category name +# color: Default color of keyword text (can be empty), CSS color code, e.g., #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: List of keywords +# - English keyword: Localized translation +# - English keyword: Localized translation +# ... + +# The localized translations in this content are all generated by machine translation and may contain inaccuracies. If you find any, please feel free to submit a PR on GitHub for correction. +# If there are issues with categorization, keyword errors, translation errors, etc., please submit an Issue on GitHub for feedback. + +- name: Person + groups: + - name: Object + color: rgba(255, 123, 2, .4) + tags: + 1girl: + 1boy: + 2girls: + 2boys: + 3girls: + 3boys: + girl: + boy: + solo: + multiple_girls: + little_girl: + little_boy: + shota: + loli: + kawaii: + mesugaki: + adorable_girl: + bishoujo: + gyaru: + sisters: + ojousama: + female: + mature_female: + mature: + female_pervert: + male: + milf: + otoko_no_ko: + crossdressing: + + - name: Identity + color: rgba(255, 123, 2, .4) + tags: + lifeguard: + boxer: + scientist: + athletes: + office lady: + monk: + crobat: + nun: + nurse: + stewardess: + student: + waitress: + teacher: + racer: + police: + soldier: + cheerleader: + actor: + actress: + spy: + agent: + assassin: + poet: + samurai: + dancing girl: + motorcyclist: + hacker: + magician: + detective: + doll: + maid: + pilot: + diver: + bar censor: + missionary: + firefighter: + goalkeeper: + chef: + astronaut: + cashier: + mailman: + barista: + the hermit: + makihitsuji: + office_lady: + race_queen: + queen: + doctor: + knight: + housemaid: + dancer: + ballerina: + gym_leader: + trap: + female: + harem: + idol: + male: + priest: + cleric: + wa_maid: + yaoi: + yuri: + albino: + amputee: + + - name: Anime Role + color: rgba(255, 123, 2, .4) + tags: + pokemon: + teddy bear: + mario: + pikachu: + neon genesis evangelion: + hatsune miku: + harry potter: + doraemon: + saint seiya: + gojou satoru: + avengers: + mazinger: + captain america: + crayon shin-chan: + slam dunk: + sun wukong: + witch: + miko: + ninja: + vampire: + knight: + magical_girl: + orc: + druid: + elf: + fairy: + furry: + mermaid: + kamen rider: + magister: + spider-man: + santa alter: + monster_girl: + cat_girl: + dog_girl: + fox_girl: + kitsune: + kyuubi: + raccoon_girl: + wolf_girl: + bunny_girl: + horse_girl: + cow_girl: + dragon_girl: + centaur: + slime_musume: + spider_girl: + dominatrix: + sailor_senshi: + mecha: + mecha_musume: + humanoid_robot_: + cyborg: + angel: + devil: + dark_elf: + imp: + succubus: + giantess: + minigirl: + monster: + multiple girls: + no humans: + + - name: Age + color: rgba(255, 123, 2, .4) + tags: + toddler: + kindergartener: + child: + underage: + teenager: + teen: + early teen: + adult: + elder: + old: + loli: + shota: + + - name: Skin + color: rgba(255, 123, 2, .4) + tags: + white_skin: + pale_skin: + fair_skin: + brown_skin: + deep_skin: + dark_skin: + black_skin: + shiny_skin: + white_marble_glowing_skin: + tattoo: + tan: + tanlines: + oil: + + - name: Figure + color: rgba(255, 123, 2, .4) + tags: + skinny: + plump: + curvy: + gyaru: + pregnant: + fat: + thin: + slender: + glamor: + tall: + petite: + chibi: + muscular: + + - name: Face shape + color: rgba(255, 123, 2, .4) + tags: + slender face: + round face: + oval face: + baby face: + inverted triangle face: + heart shaped face: + diamond face: + square face: + long face: + triangular face: + + - name: Hair + color: rgba(255, 123, 2, .4) + tags: + white hair: + blonde hair: + silver hair: + grey hair: + purple hair: + red hair: + yellow hair: + green hair: + blue hair: + black hair: + brown hair: + straight_hair: + short hair: + curly hair: + long hair: + pony-tail: + bunches: + streaked hair: + grey gradient hair: + light brown hair: + two-tone hair: + multicolored hair: + high ponytail: + twintails: + braided ponytail: + ponytail: + short ponytail: + twin braids: + medium hair: + very long hair: + braided bangs: + swept bangs: + hair between eyes: + bob cut: + hime cut: + crossed bangs: + bangs: + blunt bangs: + air bangs: + hair wings: + long bangs: + side_blunt_bangs: + centre parting bangs: + asymmetric bangs: + disheveled hair: + wavy hair: + hair in takes: + hair pink flowers: + ahoge: + antenna hair: + Side ponytail: + forehead: + drill hair: + hair bun: + double bun: + messy hair: + hair_flaps: + + - name: Face + color: rgba(255, 123, 2, .4) + tags: + makeup: + fundoshi: + eyeshadow: + lipstick: + mascara: + long_eyelashes: + red_lips_: + facepaint: + lipgloss: + colored_eyelashes: + blush: + light_blush: + anime_style_blush: + nose_blush: + nosebleed: + bruise_on_face: + facial_mark: + forehead_mark: + anger_vein: + mole: + mole_under_eye: + freckles: + food_on_face: + rice_on_face: + cream_on_face: + mustache: + goatee: + whisker_markings: + scar: + scar_across_eye: + smoking_pipe: + tattoo: + + - name: Ears + color: rgba(255, 123, 2, .4) + tags: + elf ears: + fake animal ears: + cat ears: + dog ears: + fox ears: + bunny ears: + bear ears: + wolf ears: + horse ears: + cow ears: + mouse ears: + pig ears: + sheep ears: + deer ears: + goat ears: + antelope ears: + rhino ears: + elephant ears: + bat ears: + dragon ears: + demon ears: + angel ears: + alien ears: + ear_blush: + ear_ornament: + ear_piercing: + animal_ears: + ears_down: + fake_animal_ears: + floppy_ears: + animal_ear_fluff: + fox_ears: + cat_ears: + lion_ears: + jaguar_ears: + tiger_ears: + dog_ears: + coyote_ears: + bunny_ears: + horse_ears: + pointy_ears: + long_pointy_ears: + mouse_ears: + raccoon_ears: + squirrel_ears: + bear_ears: + panda_ears: + bat_ears: + robot_ears: + extra_ears: + ears_through_headwear: + alpaca_ears: + horns: + fake_horns: + dragon_horns: + oni_horns: + antlers: + curled_horns: + goat_horns: + hair_on_horn: + + - name: Eyebrows + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: + cocked eyebrow: + short eyebrows: + v-shaped eyebrows: + + - name: Eyes + color: rgba(255, 123, 2, .4) + tags: + blue eyes: + red eyes: + brown eyes: + green eyes: + purple eyes: + yellow eyes: + pink eyes: + black eyes: + aqua eyes: + orange eyes: + grey eyes: + multicolored eyes: + white eyes: + gradient eyes: + closed eyes: + half-closed eyes: + crying with eyes open: + narrowed eyes: + hidden eyes: + heart-shaped eyes: + button eyes: + cephalopod eyes: + eyes visible through hair: + glowing eyes: + empty eyes: + rolling eyes: + cross eyed: + blank eyes: + no eyes: + sparkling eyes: + extra eyes: + crazy eyes: + solid circle eyes: + solid oval eyes: + uneven eyes: + blood from eyes: + eyeshadow: + red eyeshadow: + blue eyeshadow: + purple eyeshadow: + pink eyeshadow: + green eyeshadow: + bags under eyes: + ringed eyes: + covered eyes: + covering eyes: + shading eyes: + devil eyes: + slit pupils: + bloodshot eyes: + tsurime: + tareme: + constricted pupils: + devil pupils: + snake pupils: + pupils sparkling: + flower-shaped pupils: + heart-shaped pupils: + heterochromia: + color contact lenses: + longeyelashes: + colored eyelashes: + mole under eye: + light_eyes: + glowing_eye: + shiny_eyes: + sparkling_eyes: + gradient_eyes: + anime_style_eyes: + water_eyes: + beautiful_detailed_eyes: + solid_oval_eyes_: + solid_circle_pupils: + blush_stickers: + heart_in_eye: + evil_eyes: + crazy_eyes: + empty_eyes: + covered_eyes: + hollow_eyes: + multicolored_eyes: + ringed_eyes: + sanpaku: + mismatched_sclera: + eye_relfection: + mechanical_eye: + cephalopod_eyes: + clock_eyes: + compound_eyes: + fisheye: + devil_eyes: + bloodshot_eyes: + blood_from_eyes: + aqua_eyes: + solid_eyes: + sparkling_anime_eyes: + blue_eyes: + brown_eyes: + closed_eyes: + crying_with_eyes_open: + extra_eyes: + eye_contact: + eye_of_horus: + eyeball: + eyeliner: + eyes: + glint: + glowing_eyes: + half-closed_eye: + half-closed_eyes: + horizontal_pupils: + light_brown_eyes: + no_eyes: + one-eyed: + reflective_eyes: + spiral_eyes: + third_eye: + uneven_eyes: + flaming_eye: + eyes_closed: + half_closed_eyes: + narrowed_eyes: + squinting: + tears: + sharp_eyes: + slanted_eyes: + upturned_eyes: + cross-eyed: + hair_over_eyes: + eyes_visible_through_hair: + hair_over_one_eye: + one_eye_covered: + bags_under_eyes: + eyepatch: + medical_eyepatch: + scar_across_eye: + no_blindfold: + no_eyepatch: + ahegao: + + - name: Pupils + color: rgba(255, 123, 2, .4) + tags: + pupils: + bright_pupils: + heterochromia: + slit_pupils: + snake_pupils: + symbol-shaped_pupils: + heart-shaped_pupils: + diamond-shaped_pupils: + star-shaped_pupils: + dilated_pupils: + no_pupils: + ringed_eyes: + constricted_pupils: + star_in_eye: + x-shaped_pupils: + horizontal_pupils: + dashed_eyes: + butterfly-shaped_pupils: + rectangular_pupils: + square_pupils: + dot_pupils: + extra_pupils: + mismatched_pupils: + "+_+": + cross-shaped_pupils: + purple_pupils: + orange_pupils: + blue_pupils: + symbol_in_eye: + + - name: Nose + color: rgba(255, 123, 2, .4) + tags: + pointed nose: + small nose: + big nose: + no_nose: + dot_nose: + nose_bubble: + smelling: + nose: + nosebleed: + snot: + snout: + + - name: Mouth + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: + thick lips: + puffy lips: + lipstick: + heart-shaped mouth: + pout: + open mouth: + closed mouth: + shark mouth: + parted lips: + mole under mouth: + open_mouth: + gasping: + Slightly_open_mouth: + wavy_mouth: + close_mouth: + dot_mouth: + no_mouth: + gag: + gnaw: + :3: + :o: + :>: + parted_lips: + bit_gag: + chestnut_mouth: + cleave_gag: + closed_mouth: + covered_mouth: + extra_mouth: + hair_in_mouth: + hair_tie_in_mouth: + homu: + lips: + mouth: + mouth_hold: + oral: + pacifier: + Pouted lips: + sideways_mouth: + spoon_in_mouth: + triangle_mouth: + saliva: + drooling: + mouth_drool: + + - name: Teeth + color: rgba(255, 123, 2, .4) + tags: + teeth: + upper_teeth: + fang: + skin_fang: + round_teeth: + sharp_teeth: + clenched_teeth: + tongue: + buck_teeth: + fang_out: + fangs: + spiked_club: + tooth: + toothbrush: + tusks: + shark_mouth: + + - name: Tongue + color: rgba(255, 123, 2, .4) + tags: + french_kiss: + long_tongue: + oral_invitation: + tongue: + tongue_out: + uvula: + + - name: Nails + color: rgba(255, 123, 2, .4) + tags: + fingernails: + toenails: + nail_polish: + toenail_polish: + black_nails: + red_nails: + pink_nails: + long_fingernails: + nail: + multicolored_nails: + nail_art: + brown_vest: + + - name: Shoulders + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: + collarbonea: + armpits: + armpit_crease: + + - name: Chest + color: rgba(255, 123, 2, .4) + tags: + chest: + flat chest: + small_breasts: + medium breasts: + big breasts: + huge breasts: + gigantic breasts: + between breasts: + breasts apart: + hanging breasts: + bouncing breasts: + cleavage: + areola: + nipples: + pectorals: + large_pectorals: + unbuttoned clothes: + + - name: Waist + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: + slender_waist: + + - name: Abdomen + color: rgba(255, 123, 2, .4) + tags: + midriff: + belly: + absolute_territory: + inflation: + navel: + groin: + pregnant: + + - name: Wings + color: rgba(255, 123, 2, .4) + tags: + wings: + bat_wings: + butterfly_wings: + black_wings: + demon_wings: + asymmetrical_wings: + detached_wings: + fairy_wings: + fake_wings: + fiery_wings: + insect_wings: + large_wings: + low_wings: + mini_wings: + multicolored_wings: + multiple_wings: + no_wings: + winged_helmet: + +- name: Apparel + groups: + - name: Formal wear + color: rgba(230, 84, 128, .4) + tags: + suit: + tuxedo: + formal_dress: + evening_gown: + canonicals: + cocktail_dress: + gown: + japanese_clothes: + kimono: + sleeveless_kimono: + short_kimono: + print_kimono: + furisode: + obi: + sash: + cheongsam: + china_dress: + print_cheongsam: + pelvic_curtain: + wedding_dress: + uchikake: + school_uniform: + sailor: + serafuku: + summer_uniform: + kindergarten_uniform: + police_uniform: + naval_uniform: + military_uniform: + ss_uniform/nazi_uniform: + maid: + stile_uniform: + miko: + overalls: + business_suit: + nurse: + chef_uniform: + labcoat: + cheerleader: + band_uniform: + space_suit: + leotard: + domineering: + + - name: Style + color: rgba(230, 84, 128, .4) + tags: + china_dress: + chinese_style: + traditional_clothes: + japanese_clothes: + hanten_(clothes): + hanbok: + korean_clothes: + western: + german_clothes: + gothic: + lolita: + gothic_lolita: + byzantine_fashion: + Tropical: + indian_style: + Ao_Dai: + ainu_clothes: + arabian_clothes: + egyptian_clothes: + costume: + animal_costume: + bunny_costume: + adapted_costume: + cat_costume: + dog_costume: + bear_costume: + embellished_costume: + santa_costume: + halloween_costume: + kourindou_tengu_costume: + alternate_costume: + costume_switch: + meme_attire: + + - name: Casual wear + color: rgba(230, 84, 128, .4) + tags: + casual: + loungewear: + hoodie: + homewear: + pajamas: + nightgown: + sleepwear: + babydoll: + print_pajamas: + polka_dot_pajamas: + yukata: + chinese_clothes: + hanfu: + Taoist robe: + robe: + robe_of_blending: + cloak: + hooded_cloak: + winter_clothes: + down jacket: + santa: + harem_outfit: + shrug_(clothing): + + - name: Sportswear + color: rgba(230, 84, 128, .4) + tags: + sportswear: + gym_uniform: + athletic_leotard: + tennis_uniform: + baseball_uniform: + letterman_jacket: + volleyball_uniform: + biker_clothes: + bikesuit: + wrestling_outfit: + dougi: + + - name: Swimwear + color: rgba(230, 84, 128, .4) + tags: + swimsuit: + swimwear: + wet_swimsuit: + school_swimsuit: + new_school_swimsuit: + old_school_swimsuit: + competition_school_swimsuit: + competition_swimsuit: + casual_one-piece_swimsuit: + front_zipper_swimsuit: + highleg_swimsuit: + one-piece_swimsuit: + swimsuit_of_perpetual_summer: + bikini: + highleg_bikini: + lowleg_bikini: + slingshot_swimsuit: + sailor_bikini: + shell_bikini: + sports_bikini: + string_bikini: + strapless_bikini: + side-tie_bikini: + front-tie_bikini_top: + multi-strapped_bikini: + thong_bikini: + front-tie_bikini: + frilled_bikini: + o-ring_bikini: + eyepatch_bikini: + layered_bikini: + bow_bikini: + frilled_swimsuit: + polka_dot_swimsuit: + striped_swimsuit: + striped_bikini: + plaid_bikini: + polka_dot_bikini: + print_bikini: + american_flag_bikini: + german_flag_bikini: + impossible_swimsuit: + bikini_top: + bikini_top_only: + bikini_top_removed: + bikini_bottom_only: + bikini_bottom: + untied_bikini: + bikini_aside: + swimsuit_aside: + swimsuit_under_clothes: + torn_swimsuit: + bikini_skirt: + swim_briefs: + swim_cap: + swim_trunks: + male_swimwear: + + - name: Uniform + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: + anzio_military_uniform: + anzio_school_uniform: + aria_company_uniform: + ashford_academy_uniform: + bc_freedom_military_uniform: + chaldea_uniform: + chi-hatan_military_uniform: + fleur_de_lapin_uniform: + garreg_mach_monastery_uniform: + gem_uniform_(houseki_no_kuni): + hanasakigawa_school_uniform: + hikarizaka_private_high_school_uniform: + homurahara_academy_uniform: + kamiyama_high_school_uniform: + keizoku_military_uniform: + kita_high_school_uniform: + kiyosumi_school_uniform: + luna_nova_school_uniform: + meiji_schoolgirl_uniform: + mitakihara_school_uniform: + nami_junior_high_school_uniform: + nanairogaoka_middle_school_uniform: + nanamori_school_uniform: + naoetsu_high_school_uniform: + national_shin_ooshima_school_uniform: + ooarai_military_uniform: + ooarai_school_uniform: + otonokizaka_school_uniform: + paradis_military_uniform: + polar_chaldea_uniform: + pravda_military_uniform: + pravda_school_uniform: + rabbit_house_uniform: + raimon_soccer_uniform: + ryouou_school_uniform: + sailor_senshi_uniform: + sakugawa_school_uniform: + sakuragaoka_high_school_uniform: + saunders_military_uniform: + saunders_school_uniform: + seishou_elementary_school_uniform: + shinda_sekai_sensen_uniform: + shuuchiin_academy_uniform: + shuujin_academy_uniform: + st._gloriana's_military_uniform: + st._gloriana's_school_uniform: + starlight_academy_uniform: + tokisadame_school_uniform: + tokiwadai_school_uniform: + tomoeda_elementary_school_uniform: + tsab_ground_military_uniform: + u.a._school_uniform: + uranohoshi_school_uniform: + yasogami_school_uniform: + mismatched_bikini: + multicolored_bikini: + + - name: Shirt + color: rgba(230, 84, 128, .4) + tags: + blouse: + white_shirt: + collared_shirt: + dress_shirt: + sailor_shirt: + cropped_shirt: + t-shirt: + casual T-shirts: + short sleeve T-shirts: + off-shoulder_shirt: + shrug_(clothing): + cardigan: + criss-cross_halter: + frilled_shirt: + sweatshirt: + hawaiian_shirt: + hoodie: + Impossible shirt: + kappougi: + plaid_shirt: + polo_shirt: + print_shirt: + shirt: + sleeveless_hoodie: + sleeveless_shirt: + striped_shirt: + tank_top: + vest: + waistcoat: + camisole: + tied_shirt: + undershirt: + crop_top: + highleg: + clothing_cutout: + back_cutout: + cleavage_cutout: + navel_cutout: + midriff: + heart_cutout: + torn_clothes: + torn_shirt: + undressing: + clothes_down: + shirt_lift: + shirt_pull: + shirt_tucked_in: + clothes_tug: + shirt_tug: + untucked_shirt: + lifted_by_self: + untied: + open_clothes: + unbuttoned shirt: + button_gap: + partially_unbuttoned: + partially_unzipped: + clothes_removed: + shirt_removed: + wardrobe_error: + undersized_clothes: + tight: + wedgie: + wardrobe_malfunction: + taut_shirt: + taut_clothes: + underbust: + oversized_clothes: + oversized_shirt: + borrowed_garments: + strap_slip: + wet_shirt: + clothes_theft: + + - name: Coat + color: rgba(230, 84, 128, .4) + tags: + blazer: + overcoat: + double-breasted: + long_coat: + haori: + winter_coat: + hooded_coat: + fur_coat: + fur-trimmed_coat: + duffel_coat: + fishnet_top: + parka: + jacket: + jacket_partially_removed: + jacket_removed: + open_jacket: + cropped_jacket: + track_jacket: + hooded_track_jacket: + military_jacket: + camouflage_jacket: + leather_jacket: + letterman_jacket: + bomber_jacket: + denim_jacket: + loating_jacket: + fur-trimmed_jacket: + two-tone_jacket: + trench_coat: + furisode: + windbreaker: + raincoat: + hagoromo: + tunic: + cape: + capelet: + winter_clothes: + sweater: + pullover_sweaters: + ribbed_sweater: + sweater_vest: + backless_sweater: + aran_sweater: + beige_sweater: + brown_sweater: + hooded_sweater: + off-shoulder_sweater: + striped_sweater: + virgin_killer_sweater: + down_jacket: + puffer_jacket: + + - name: Other + color: rgba(230, 84, 128, .4) + tags: + transparent: + burnt_clothes: + dissolving_clothes: + dirty_clothes: + expressive_clothes: + impossible_clothes: + living_clothes: + leotard_under_clothes: + multicolored_clothes: + ofuda_on_clothes: + wringing_clothes: + clothesline: + shiny_clothes: + kariginu: + front-tie_top: + jacket_on_shoulders: + short_jumpsuit: + harness: + rigging: + aiguillette: + + - name: Waist + color: rgba(230, 84, 128, .4) + tags: + apron: + waist_apron: + maid_apron: + bow tied at the waist: + waist_cape: + clothes_around_waist: + jacket_around_waist: + sweater_around_waist: + loincloth: + bustier: + corset: + girdle: + + - name: Armor + color: rgba(230, 84, 128, .4) + tags: + armor: + bikini_armor: + full_armor: + plate_armor: + japanese_armor: + kusazuri: + power_armor: + mecha: + helmet: + kabuto: + off-shoulder_armor: + shoulder_armor: + muneate: + breastplate: + faulds: + greaves: + shin_guards: + armored_boots: + + - name: Skirt + color: rgba(230, 84, 128, .4) + tags: + dress: + microdress: + long_dress: + off-shoulder_dress: + strapless_dress: + backless_dress: + halter_dress: + sundress: + sleeveless_dress: + sailor_dress: + summer_dress: + china_dress: + pinafore_dress: + sweater_dress: + wedding_dress: + armored_dress: + frilled_dress: + lace-trimmed_dress: + collared_dress: + fur-trimmed_dress: + layered_dress: + pleated_dress: + taut_dress: + pencil_dress: + impossible_dress: + multicolored_dress: + striped_dress: + checkered_skirt: + plaid_dress: + ribbed_dress: + polka_dot_dress: + print_dress: + vertical-striped_dress: + see-through_dress: + skirt: + microskirt: + miniskirt: + skirt_suit: + bikini_skirt: + pleated_skirt: + pencil_skirt: + bubble_skirt: + tutu: + ballgown: + pettiskirt: + showgirl_skirt: + Medium length skirt: + beltskirt: + denim_skirt: + suspender_skirt: + skirt_set: + long_skirt: + summer_long_skirt: + overskirt: + hakama_skirt: + high-waist_skirt: + kimono_skirt: + suspender_long_skirt: + chiffon_skirt: + frilled_skirt: + fur-trimmed_skirt: + lace_skirt: + lace-trimmed_skirt: + ribbon-trimmed_skirt: + layered_skirt: + print_skirt: + multicolored_skirt: + striped_skirt: + vertical-striped_skirt: + plaid_skirt: + flared_skirt: + floral_skirt: + + - name: Interact with skirt + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: + skirt_tug: + dress_tug: + skirt_lift: + skirt_around_one_leg: + skirt_removed: + dress_removed: + open_skirt: + + - name: Pants + color: rgba(230, 84, 128, .4) + tags: + dress_bow: + dressing_another: + shorts_under_skirt: + side_slit: + shorts: + micro_shorts: + short_shorts: + hot_pants: + cutoffs: + striped_shorts: + suspender_shorts: + denim_shorts: + puffy_shorts: + dolphin_shorts: + dolfin_shorts: + tight_pants: + crotchless_pants: + track_pants: + yoga_pants: + bike_shorts: + gym_shorts: + pants: + puffy_pants: + pumpkin_pants: + hakama_pants: + harem_pants: + bloomers: + buruma: + jeans: + cargo_pants: + camouflage_pants: + capri_pants: + chaps: + jumpsuit: + lowleg_pants: + plaid_pants: + single_pantsleg: + striped_pants: + + - name: Interact with pants + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: + leotard_aside: + open_fly: + pants_down: + pants_rolled_up: + pants_tucked_in: + torn_jeans: + torn_pants: + torn_shorts: + + - name: Socks + color: rgba(230, 84, 128, .4) + tags: + bodystocking: + pantyhose: + leggings: + legwear: + thighhighs: + kneehighs: + socks: + bare_legs: + black_bodystocking: + white_bodystocking: + stocking_under_clothes: + black_pantyhose: + white_pantyhose: + thighband_pantyhose: + pantylines: + single_leg_pantyhose: + panties_under_pantyhose: + fishnets: + stirrup_legwear: + toeless_legwear: + mismatched_legwear: + two-tone_legwear: + asymmetrical_legwear: + uneven_legwear: + white_thighhighs: + black_thighhighs: + pink_thighhighs: + suspenders: + garter_straps: + torn_legwear: + torn_thighhighs: + see-through_legwear_: + frilled_legwear: + lace-trimmed_legwear: + seamed_legwear: + back-seamed_legwear: + animal_ear_legwear: + striped_legwear: + vertical-striped_legwear: + polka_dot_legwear: + print_legwear: + legwear_under_shorts: + over-kneehighs: + bobby_socks: + tabi: + loose_socks: + ankle_socks: + leg_warmers: + single_sock: + striped_socks: + + - name: Interact with socks + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: + thighhighs_under_boots: + adjusting_legwear: + pantyhose_pull: + socks_removed: + sock_pull: + thighhighs_pull: + + - name: Other + color: rgba(230, 84, 128, .4) + tags: + garters: + leg_garter: + garter_straps: + thigh_strap: + thigh_ribbon: + leg_ribbon: + bandaid_on_leg: + bandaged_leg: + ankle_lace-up: + thigh_holster: + bandaid_on_knee: + argyle_legwear: + bow_legwear: + arm_garter: + + - name: Material + color: rgba(230, 84, 128, .4) + tags: + armored: + canvas: + denim: + fluffy: + fur: + latex: + leather: + see-through: + spandex: + tight: + + - name: Decorate + color: rgba(230, 84, 128, .4) + tags: + frilled: + center_frills: + crease: + layered: + lace: + fur_trim: + fur-trimmed: + fine_fabric_emphasis: + latex_thighhighs: + see-through_thighhighs: + ass_cutout: + asymmetrical_clothes: + back_bow: + costume_switch: + cross-laced_clothes: + double_vertical_stripe: + halter_top: + multicolored_legwear: + navy_blue_legwear: + nontraditional_miko: + side_cutout: + side_slit: + sideless_outfit: + single_kneehigh: + single_vertical_stripe: + turtleneck: + two-sided_fabric: + o-ring: + o-ring_top: + fringe_trim: + loose_belt: + pom_pom_(clothes): + drawstring: + full-length_zipper: + gathers: + gusset: + breast_pocket: + + - name: Pattern + color: rgba(230, 84, 128, .4) + tags: + argyle: + checkered: + colored_stripes: + diagonal_stripes: + horizontal_stripes: + multicolored_stripes: + polka_dot_: + ribbed: + striped: + unmoving_pattern: + vertical_stripes: + plaid: + animal_print: + cat_print: + bear_print: + bird_print: + bunny_print: + cow_print: + dragon_print: + fish_print: + frog_print: + shark_print: + snake_print: + zebra_print: + tiger_print: + leopard_print: + jaguar_print: + bat_print: + aardwolf_print: + african_wild_dog_print: + cheetah_print: + dog_print: + fox_print: + giraffe_print: + panda_print: + sand_cat_print: + whale_print: + white_tiger_print: + goldfish_print: + wing_print: + spider_web_print: + butterfly_print: + floral_print: + leaf_print: + clover_print: + maple_leaf_print: + rose_print: + strawberry_print: + cherry_print: + bamboo_print: + carrot_print: + hibiscus_print: + jack-o'-lantern_print: + petal_print: + sunflower_print: + watermelon_print: + sky_print: + cloud_print: + lightning_bolt_print: + rainbow_print: + snowflake_print: + starry_sky_print: + crescent_print: + star_print: + star_(symbol): + moon_print: + sun_print: + character_print: + clothes_writing_: + anchor_print: + cherry_blossom_print: + musical_note_print: + triangle_print: + arrow_print: + wave_print: + peace_symbol: + heart_print: + flame_print: + hitodama_print: + paw_print: + skeleton_print: + skull_print: + sparkle_print: + yin_yang_print: + cross_print: + camoflage: + flag_print: + bone_print: + ghost_print: + mushroom_print: + onigiri_print: + cat_ear: + cat_ear_cutout: + + - name: Shoes + color: rgba(230, 84, 128, .4) + tags: + barefoot: + no_shoes: + shoes_removed: + single_shoe: + the_only_shoe: + black_loafers: + shoes: + uwabaki: + platform_footwear: + high_heels: + stiletto_heels: + strappy_heels: + platform_heels_: + rudder_footwear: + sandals: + barefoot_sandals: + clog_sandals: + geta: + slippers: + skates: + roller_skates: + animal_feet: + animal_slippers: + anklet: + shackles: + brown_footwear: + cross-laced_footwear: + loafers: + mary_janes: + mismatched_footwear: + pointy_footwear: + pumps: + sandals_removed: + shoe_soles: + shoelaces: + sneakers: + winged_footwear: + zouri: + + - name: Boots + color: rgba(230, 84, 128, .4) + tags: + boots: + boots_removed: + thigh_boots: + knee_boots: + cross-laced_footwear: + ankle_boots: + high_heel_boots: + toeless_boots: + lace-up_boots: + fur-trimmed_boots: + snow_boots: + anklet: + rubber_boots: + santa_boots: + leather_boots: + thighhighs_under_boots: + combat_boots: + doc_martens: + rain_boots: + belt_boots: + fur_boots: + single_boot: + + - name: Soles + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: + arched_soles: + paw_print_soles: + horseshoe: + + - name: Neckline + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: + fur_collar: + frilled_collar: + popped_collar: + choker: + black_choker: + belt_collar: + frilled_choker: + neckerchief: + red_neckerchief: + necktie: + short_necktie: + white_necktie: + bowtie: + headphones_around_neck: + goggles_around_neck: + neck_bell: + neck_ruff: + v-neck: + towel_around_neck: + loose_necktie: + neck_tattoo: + ascot: + ribbon_choker: + maebari/pasties: + latex: + torn_clothes: + iron_cross: + chinese_knot: + cross_necklace: + bead_necklace: + pearl_necklace: + heart_necklace: + carrot_necklace: + chain_necklace: + magatama_necklace: + tooth_necklace: + key_necklace: + anchor_necklace: + skull_necklace: + shell_necklace: + gold_necklace: + crescent_necklace: + ring_necklace: + feather_necklace: + bone_necklace: + ankh_necklace: + multiple_necklaces: + bullet_necklace: + holding_necklace: + necklace_removed: + brown_neckwear: + checkered_neckwear: + diagonal-striped_neckwear: + halterneck: + mole_on_neck: + neck: + neck_ribbon: + neck_ring: + necklace: + plaid_neckwear: + plunging_neckline: + print_neckwear: + sleeveless_turtleneck: + star_necklace: + striped_neckwear: + turtleneck_sweater: + undone_necktie: + whistle_around_neck: + + - name: Scarf + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: + striped_scarf: + print_scarf: + vertical-striped_scarf: + polka_dot_scarf: + argyle_scarf: + beige_scarf: + scarf_bow: + fur_scarf: + naked_scarf: + multicolored_scarf: + floating_scarf: + long_scarf: + arm_scarf: + scarf_on_head: + scarf_over_mouth: + scarf_removed: + adjusting_scarf: + holding_scarf: + scarf_pull: + brown_scarf: + scarf: + + - name: Glasses + color: rgba(230, 84, 128, .4) + tags: + glasses: + eyewear: + monocle: + under-rim_eyewear: + rimless_eyewear: + semi-rimless_eyewear: + red-framed_eyewear: + round_eyewear: + black-framed_eyewear: + tinted_eyewear: + medical_eyepatch: + bandage_over_one_eye: + crooked_eyewear: + eyewear_removed: + sunglasses: + goggles: + Blindfold: + eyepatch: + visor: + bespectacled: + blue-framed_eyewear: + brown-framed_eyewear: + coke-bottle_glasses: + no_eyewear: + opaque_glasses: + over-rim_eyewear: + + - name: Mask + color: rgba(230, 84, 128, .4) + tags: + mask: + half_mask: + masked: + mask_lift: + mask_on_head: + mask_removed: + mouth_mask: + surgical_mask: + plague_doctor_mask: + gas_mask: + visor: + helmet: + fox_mask: + diving_mask: + diving_mask_on_head: + oni_mask: + tengu_mask: + ninja_mask: + skull_mask: + hockey_mask: + bird_mask: + stone_mask: + horse_mask: + masquerade_mask: + domino_mask: + + - name: Arms + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: + short_sleeves: + wide_sleeves: + furisode: + detached_sleeves: + single_sleeve: + sleeveless: + asymmetrical_sleeves: + puffy_sleeves: + puffy_long_sleeves: + puffy_short_sleeves: + frilled_sleeves: + juliet_sleeves: + bandaged_arm: + raglan_sleeves: + vambraces: + layered_sleeves: + fur-trimmed_sleeves: + see-through_sleeves: + torn_sleeves: + sleeves_past_fingers: + sleeves_past_wrists: + sleeves_past_elbows: + sleeves_pushed_up: + arm_out_of_sleeve: + uneven_sleeves: + mismatched_sleeves: + sleeve_rolled_up: + sleeves_rolled_up: + feather-trimmed_sleeves: + hands_in_opposite_sleeves: + lace-trimmed_sleeves: + pinching_sleeves: + puffy_detached_sleeves: + ribbed_sleeves: + single_detached_sleeve: + sleeves_folded_up: + striped_sleeves: + wrist_cuffs: + armband: + armlet: + + - name: Hand + color: rgba(230, 84, 128, .4) + tags: + bandage: + leash: + arm_tattoo: + number_tattoo: + bead_bracelet: + bracelet: + flower_bracelet: + spiked_bracelet: + wrist_cuffs: + wristband: + bracer: + cuffs: + bound_wrists: + wrist_scrunchie: + handcuffs: + shackles: + chains: + chain_leash: + + - name: Gloves + color: rgba(230, 84, 128, .4) + tags: + gloves: + gloves_removed: + no_gloves: + single_glove: + single_elbow_glove: + long_gloves: + elbow_gloves: + bridal_gauntlets: + half_gloves: + fingerless_gloves: + partially_fingerless_gloves: + paw_gloves: + mittens: + baseball_mitt: + fur-trimmed_gloves: + latex_gloves: + lace-trimmed_gloves: + leather_gloves: + frilled_gloves: + mismatched_gloves: + multicolored_gloves: + asymmetrical_gloves: + brown_gloves: + oven_mitts: + print_gloves: + striped_gloves: + torn_gloves: + + - name: Earrings + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: + crystal_earrings: + earrings: + flower_earrings: + heart_earrings: + hoop_earrings: + multiple_earrings: + pill_earrings: + single_earring: + skull_earrings: + star_earrings: + + - name: Headwear + color: rgba(230, 84, 128, .4) + tags: + halo: + mechanical_halo: + headwear: + headpiece: + headwear_removed: + head_wreath: + crown: + mini_crown: + tiara: + diadem: + tilted_headwear: + head_fins: + maid_headdress: + bridal_veil: + headband: + helmet: + alternate_headwear: + fur-trimmed_headwear: + goggles_on_headwear: + earphones: + earmuffs: + ears_through_headwear: + xx_on_head: + leaf_on_head: + topknot: + suigintou: + triangular_headpiece: + forehead_protector: + radio_antenna: + animal_hood: + arrow_(symbol): + axe: + bald: + bandana: + bob_cut: + bone: + bowl_cut: + circlet: + double_bun: + double_dildo: + drill: + faucet: + hachimaki: + hair_behind_ear: + hair_bell: + hair_bun: + hair_down: + hair_flaps: + hair_flip: + hair_flower: + hair_spread_out: + hair_up: + helm: + helmet_removed: + horned_helmet: + japari_bun: + kerchief: + mami_mogu_mogu: + mob_cap: + one_side_up: + owl: + pier: + pillow: + raised_fist: + skull_and_crossbones: + stone: + turban: + twin_drills: + updo: + wet_hair: + headdress: + adjusting_headwear: + bear_hair_ornament: + brown_headwear: + horned_headwear: + horns_through_headwear: + no_headwear: + object_on_head: + print_headwear: + bone_hair_ornament: + bunny_hair_ornament: + horn_ornament: + animal_on_head: + behind-the-head_headphones: + bird_on_head: + cat_ear_headphones: + cat_on_head: + eyewear_on_head: + forehead: + forehead_jewel: + forehead_kiss: + forehead_mark: + forehead-to-forehead: + goggles_on_head: + head: + head_bump: + head_down: + head_mounted_display: + head_out_of_frame: + head_rest: + head_tilt: + head_wings: + headgear: + headphones: + heads-up_display: + headset: + inter_headset: + on_head: + person_on_head: + single_head_wing: + + - name: Hat + color: rgba(230, 84, 128, .4) + tags: + hat: + no_hat: + large_hat: + mini_hat: + witch_hat: + mini_witch_hat: + wizard_hat: + party_hat: + jester_cap: + tokin_hat: + top_hat: + mini_top_hat: + bowler_hat: + pillbox_hat: + cloche_hat: + side_cap: + military_hat: + beret: + garrison_cap: + police_hat: + nurse_cap: + chef_hat: + school_hat: + pirate_hat: + cabbie_hat: + bucket_hat: + hardhat: + straw_hat: + sun_hat: + rice_hat: + animal_hat: + fur_hat: + hat_with_ears: + bobblehat: + pillow_hat: + pumpkin_hat: + baseball_cap: + flat_cap: + torn_hat: + mob_cap: + newsboy_cap: + bowknot_over_white_beret: + backwards_hat: + bowl_hat: + cat_hat: + chat_log: + cowboy_hat: + dixie_cup_hat: + hat_bow: + hat_feather: + hat_flower: + hat_ornament: + hat_over_one_eye: + hat_removed: + hat_ribbon: + hat_tip: + hatching_(texture): + hatsune_miku_(cosplay): + is_that_so: + porkpie_hat: + sailor_hat: + santa_hat: + sideways_hat: + what: + what_if: + + - name: Hair accessories + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: + hairband: + hair_tie: + lolita_hairband: + frilled_hairband: + lace-trimmed_hairband: + hair_bobbles: + hair_ornament: + hair_flower: + x_hair_ornament: + hair_bow: + frog_hair_ornament: + heart_hair_ornament: + butterfly_hair_ornament: + star_hair_ornament: + food-themed_hair_ornament: + anchor_hair_ornament: + bat_hair_ornament: + carrot_hair_ornament: + cat_hair_ornament: + clover_hair_ornament: + crescent_hair_ornament: + cross_hair_ornament: + d-pad_hair_ornament: + fish_hair_ornament: + hairpods: + leaf_hair_ornament: + musical_note_hair_ornament: + pumpkin_hair_ornament: + skull_hair_ornament: + snake_hair_ornament: + snowflake_hair_ornament: + strawberry_hair_ornament: + sunflower_hair_ornament: + hairpin: + hairclip: + hair_tubes: + hair_stick: + hair_bun: + single_hair_bun: + hair_bell: + hair_rings: + + - name: Trinkets + color: rgba(230, 84, 128, .4) + tags: + ring: + wedding_band: + earrings: + single_earring: + stud_earrings: + necklace: + jewelry: + crystal: + brooch: + gem: + chest_jewel: + forehead_jewel: + tassel: + belly_chain_: + lace: + ribbon: + stitches: + scarf: + bandaid: + collar: + belt: + steam: + bell: + amulet: + emblem: + flag_print: + anchor_symbol: + cross: + diffraction_spikes: + iron_cross: + latin_cross: + lace-trimmed_hairband: + ankle_lace-up: + st._gloriana's_(emblem): + heart_lock_(kantai_collection): + garters: + thigh_strap: + thigh_ribbon: + leg_garter: + garter_straps: + leg_ribbon: + bandaid_on_leg: + bandaged_leg: + arm_garter: + joints: + kneepits: + knee_pads: + thigh_holster: + bandaid_on_knee: + + - name: Jewelry + color: rgba(230, 84, 128, .4) + tags: + bracelet: + choker: + metal collar: + ring: + wristband: + pendant: + brooch: + hoop earrings: + bangle: + stud earrings: + sunburst: + pearl bracelet: + drop earrings: + puppet rings: + corsage: + sapphire brooch: + jewelry: + necklace: + +- name: Facial expression and action + groups: + - name: Smile + color: rgba(241, 229, 140, .4) + tags: + smile: + laughing: + kind_smile: + :d: + ;d: + grin: + teasing_smile: + seductive_smile: + smirk: + giggling: + smug: + naughty_face: + evil smile: + crazy_smile: + happy: + happy_birthday: + happy_halloween: + happy_new_year: + happy_tears: + happy_valentine: + + - name: Cry + color: rgba(241, 229, 140, .4) + tags: + sad: + tear: + crying: + crying_with_eyes_open: + streaming_tears: + teardrop: + tearing_clothes: + tearing_up: + tears: + wiping_tears: + badmood: + + - name: Unhappy + color: rgba(241, 229, 140, .4) + tags: + frustrated: + frustrated_brow: + annoyed: + anguish: + sigh: + gloom: + disappointed: + despair: + + - name: Disdain + color: rgba(241, 229, 140, .4) + tags: + disgust: + disdain: + contempt: + shaded_face: + jitome: + frown: + wince: + furrowed_brow: + fear_kubrick: + laughing: + + - name: Angry + color: rgba(241, 229, 140, .4) + tags: + angry: + glaring: + serious: + kubrick_stare: + evil: + sulking: + screaming: + shouting: + + - name: Other expressions + color: rgba(241, 229, 140, .4) + tags: + expressionless: + sleepy: + drunk: + bored: + confused: + thinking: + lonely: + light_blush: + blush: + shy: + embarrass: + facepalm: + flustered: + sweat: + scared: + ahegao: + endured_face: + restrained: + dark_persona: + crazy: + exhausted: + Tsundere: + yandere: + multiple_persona: + Jekyll_and_Hyde: + twitching: + spasm: + trembling: + rape_face: + rolling_eyes: + envy: + female_orgasm: + heavy_breathing: + naughty: + expressions: + moaning: + scowl: + + - name: Basic Actions + color: rgba(241, 229, 140, .4) + tags: + standing: + on back: + on stomach: + kneeling: + on_side: + on_stomach: + top-down_bottom-up: + the_pose: + bent_over: + upside-down: + reversal: + fighting_stance: + leaning_to_the_side: + leaning: + leaning_back: + leaning_on_object: + arched_back: + leaning_forward: + afloat: + lying: + fetal_position: + lying_on_person: + lying_on_the_lake: + lying_on_water: + on_back: + prone_bone: + reclining: + sleeping_upright: + presenting: + spinning: + posing: + stylish_pose: + public_indecency: + parody: + in_container: + against_glass: + aiming: + aiming_at_viewer: + applying_makeup: + bathing: + biting: + bleeding: + blowing: + bowing: + breathing_fire: + broom_riding: + brushing_teeth: + bubble_blowing: + bullying: + burning: + cast: + chasing: + cleaning: + climbing: + comforting: + cooking: + crying: + cuddling: + dancing: + diving: + dragging: + drawing: + drawing_bow: + dreaming: + drinking: + driving: + dropping: + drying: + dual_wielding: + exercise: + fighting: + firing: + fishing: + flapping: + flashing: + fleeing: + flexing: + flying: + flying_kick: + hair_brushing: + hair_tucking: + hanging: + hitting: + imagining: + jumping: + kicking: + licking: + licking_lips: + lip_biting: + meditation: + painting: + Painting_(Action): + playing_card: + playing_games: + playing_instrument: + pole_dancing: + praying: + punching: + pushing: + railing: + reading: + riding: + running: + sewing: + shopping: + showering: + sing: + singing: + slashing: + sleeping: + smelling: + smoking: + sneezing: + snowing: + soaking_feet: + soccer: + spilling: + spitting: + splashing: + standing_on_liquid: + standing_on_one_leg: + standing_split: + steepled_fingers: + strangling: + sweeping: + swimming: + swing: + tail_wagging: + taking_picture: + talking: + talking_on_phone: + teasing: + thinking: + tickling: + toilet_use: + tossing_: + tripping: + trolling: + twitching: + tying: + unsheathing: + untying: + unzipping: + wading: + waking_up: + walking: + walking_on_liquid: + washing: + whispering: + wrestling: + writing: + yawning: + hiding: + + - name: Hand actions + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: + arm_above_head: + arm_behind_head: + arms_crossed: + arm_support: + armpits: + arms_up: + hands_on_hips: + arm_around_waist: + caramelldansen: + hands_in_opposite_sleeves: + waving: + crossed_arms: + outstretched_arms: + v_arms: + w_arms: + salute: + reaching: + reaching_out: + stretch: + hugging_own_legs: + arm_blade: + arm_grab: + arm_held_back: + arm_ribbon: + bandaged_arm: + bandaid_on_arm: + bound_arms: + convenient_arm: + extra_arms: + locked_arms: + outstretched_arm: + waving_arms: + arm_at_side: + arm_behind_back: + shou: + arm_cannon: + arm_hug: + arm_up: + arms_at_sides: + arms_behind_head: + hand_to_mouth: + shushing: + cat_pose: + claw_pose: + paw_pose: + fox_shadow_puppet: + double_fox_shadow_puppet: + finger_gun: + v: + double_v: + thumbs_up: + index_finger_raised: + middle_finger: + grimace: + eyelid_pull: + fingersmile: + wiping_tears: + finger_on_trigger: + pointing_at_self: + pointing_at_viewer: + pointing_up: + poking: + hand_gesture: + ok_sign: + shading_eyes: + finger_biting: + finger_in_mouth: + fingering_through_clothes: + fingers_together: + hair_twirling: + hands_clasped: + holding_hair: + pointing: + sharp_fingernails: + sleeves_past_fingers: + spread_fingers: + trigger_discipline: + w: + balancing: + curvy: + multiple_views: + pose: + ready_to_draw: + trefoil: + zombie_pose: + beckoning: + bunching_hair: + carrying: + carrying_over_shoulder: + carrying_under_arm: + cheering: + finger_to_mouth: + cheek_pinching: + cheek_poking: + chin_stroking: + hair_pull: + covering_mouth: + covering_xx: + self_fondle: + adjusting_thighhigh: + chin_rest: + head_rest: + take: + _sheet_grab: + groping: + skirt_lift: + crotch_grab: + covering_chest_by_hand: + bangs_pinned_back: + clothes_lift: + dress_lift: + kimono_lift: + lifted_by_another: + lifted_by_self: + shirt_lift: + skirt_basket: + skirt_flip: + bikini_lift: + leg_lift: + lifting_person: + strap_lift: + wind_lift: + bikini_pull: + cheek_pull: + clothes_pull: + dress_pull: + hair_pulled_back: + kimono_pull: + leotard_pull: + mask_pull: + pants_pull: + pulled_by_another: + pulled_by_self: + pulling: + shirt_pull: + shorts_pull: + skirt_pull: + swimsuit_pull: + zipper_pull_tab: + adjusting_clothes: + adjusting_eyewear: + adjusting_gloves: + adjusting_hair: + adjusting_hat: + adjusting_swimsuit: + + - name: Hand actions (Holding) + color: rgba(241, 229, 140, .4) + tags: + holding: + holding_animal: + holding_arrow: + holding_axe: + holding_bag: + holding_ball: + holding_basket: + holding_book: + holding_bottle: + holding_bouquet: + holding_bow_(weapon): + holding_bowl: + holding_box: + holding_breath: + holding_broom: + holding_camera: + holding_can: + holding_candy: + holding_card: + holding_cat: + holding_chopsticks: + holding_cigarette: + holding_clothes: + holding_condom: + holding_cup: + holding_dagger: + holding_doll: + holding_eyewear: + holding_fan: + holding_flag: + holding_flower: + holding_food: + holding_fork: + holding_fruit: + holding_gift: + holding_gun: + holding_hands: + holding_hat: + holding_head: + holding_helmet: + holding_innertube: + holding_instrument: + holding_knife: + holding_leaf: + holding_lollipop: + holding_mask: + holding_microphone: + holding_needle: + holding_own_foot: + holding_paintbrush: + holding_paper: + holding_pen: + holding_pencil: + holding_phone: + holding_pillow: + holding_pipe: + holding_pizza: + holding_plate: + holding_poke_ball: + holding_pokemon: + holding_polearm: + holding_sack: + holding_scythe: + holding_sheath: + holding_shield: + holding_shoes: + holding_sign: + holding_spear: + holding_spoon: + holding_staff: + holding_strap: + holding_stuffed_animal: + holding_stylus: + holding_sword: + holding_syringe: + holding_towel: + holding_tray: + holding_umbrella: + holding_wand: + holding_whip: + arm_around_neck: + arms_around_neck: + + - name: Hand actions (Put somewhere) + color: rgba(241, 229, 140, .4) + tags: + covering: + covering_face: + covering_ass: + covering_crotch: + covering_eyes: + covering_mouth: + covering_nipples: + hands_on_another's_: + hands_on_another's_cheeks: + hands_on_ass: + hands_on_feet: + hands_on_headwear: + hands_on_hilt: + hands_on_lap: + hands_on_own_face: + hands_on_own_cheeks: + hands_on_own_chest: + hands_on_own_head: + hands_on_own_knees: + hands_on_own_stomach: + hands_on_own_thighs: + hands_on_another's_shoulders: + hands_on_hips: + hand_on_another's_: + hand_on_another's_cheek: + hand_on_another's_chest: + hand_on_another's_chin: + hand_on_another's_head: + hand_on_another's_shoulder: + hand_on_another's_stomach: + hand_on_ass: + hand_on_head: + hand_on_headwear: + hand_on_hilt: + hand_on_hip: + hand_on_own_: + hand_on_own_cheek: + hand_on_own_chest: + hand_on_own_chin: + hand_on_own_stomach: + hand_on_shoulder: + hand_in_another's_hair: + hand_in_hair: + hand_in_pocket: + + - name: Hand actions (Grab something) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: + flat_chest_grab: + grabbing: + grabbing_another's_ass: + grabbing_another's_hair: + grabbing_from_behind: + grabbing_own_ass: + guided_penetration: + hair_grab: + leg_grab: + necktie_grab: + neckwear_grab: + penis_grab: + pillow_grab: + sheet_grab: + tail_grab: + thigh_grab: + torso_grab: + wrist_grab: + + - name: Leg actions + color: rgba(241, 229, 140, .4) + tags: + legs_up: + spread legs: + legs_together: + crossed_legs: + m_legs: + standing_split,_leg_up: + curtsy: + hand_between_legs: + open_stance: + convenient_leg: + leg_lock: + legs: + legs_over_head: + squatting,_open_legs: + knees_together_feet_apart: + animal_on_lap: + hand_on_own_knee: + knee_up: + knees: + knees_to_chest: + on_lap: + sitting: + wariza: + straddling: + yokozuwari: + sitting_backwards: + sitting_in_tree: + sitting_on_xx: + butterfly_sitting: + lotus_position: + sitting_on_railing: + sitting_on_rock: + sitting_on_stairs: + sitting_on_table: + sitting_on_water: + cushion: + indian_style: + sitting_on_chair: + sidesaddle: + sitting_on_bed: + sitting_on_desk: + sitting_on_lap: + sitting_on_person: + upright_straddle: + squatting: + one_knee: + kneeling: + all_fours: + gravure_pose: + kicking: + high_kick: + soaking_feet: + reclining: + hugging_own_legs: + bare_legs: + between_legs: + cropped_legs: + k/da_(league_of_legends): + leg_belt: + leg_hair: + leg_up: + legs_apart: + lowleg: + mechanical_legs: + multiple_legs: + no_legs: + no_legwear: + tail_between_legs: + barefoot: + foot_out_of_frame: + footprints: + dirty_feet: + feet: + feet_out_of_frame: + feet_up: + wrong_feet: + cameltoe: + pigeon-toed: + tiptoes: + toe-point: + amputee: + ankle_strap: + ankle_wrap: + crossed_ankles: + pince-nez: + folded: + thick_thighs: + thigh_holster: + + - name: Other actions + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: + back-to-back: + cunnilingus: + eye_contact: + facing_another: + facing_away: + feeding: + finger_in_another's_mouth: + fingering: + french_kiss: + giving: + grinding: + groping: + holding_hands: + hug: + imminent_kiss: + incoming_food: + incoming_gift: + interlocked_fingers: + Kabedon: + lap_pillow: + licking_penis: + long_tongue: + mimikaki: + oral_invitation: + princess_carry: + shared_bathing: + shared_food: + sitting_on_head: + sitting_on_shoulder: + slapping: + spanking: + special_feeling_(meme): + symmetrical_docking: + tongue: + tongue_out: + uvula: + ear_biting: + mixed_bathing: + +- name: Image + groups: + - name: Quality + color: rgba(0, 255, 255, .4) + tags: + checkered: + lowres: + highres: + absurdres: + incredibly absurdres: + huge filesize: + wallpaper: + pixel art: + monochrome: + colorful: + + - name: Art style + color: rgba(0, 255, 255, .4) + tags: + artbook: + game cg: + comic: + 4koma: + animated gif: + dakimakura: + cosplay: + crossover: + dark: + light: + guro: + realistic: + photo: + real: + landscape/scenery: + cityscape: + science fiction: + original: + parody: + personification: + optical illusion: + fine art parody: + sketch: + traditional media: + watercolor (medium): + silhouette: + cover: + album: + sample: + back: + bust: + profile: + expressions: + everyone: + column lineup: + transparent background: + simple background: + gradient background: + zoom layer: + 8 Bit Game: + 1980s anime: + disney movie: + goth: + 80s movie: + bubble bobble: + style of Pixar: + Polaroid art: + Kaleidoscope Photography: + opal render: + chemigram: + Studio Ghibli: + dreamlike: + (faux traditional media): + genshin impact: + azur lane: + kantai collection: + rebecca (cyberpunk): + chainsaw man: + Magic Vortex: + ((dieselpunk)): + magazine scan: + album cover: + (lineart): + synthwave: + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): + + - name: Art type + color: rgba(0, 255, 255, .4) + tags: + monochrome: + Collage: + Dalle de verre: + pixel art: + Encaustic painting: + Ink wash painting: + Mezzotint: + silhouette: + illustration: + (((ink))), ((watercolor)): + illustration,(((ukiyoe))),((sketch)),((japanese_art)): + ((wash painting)),((ink s...)): + ((dyeing)),((oil painting)),((impasto)): + (posing sketch), (monochrome): + sketch: + (monochrome), (gray scale), (pencil sketch lines: + (watercolor pencil): + + - name: Art faction + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): + ((classicism)): + ((futurism)): + ((Dadaism)): + ((abstract art)): + ((ASCII art)): + + - name: Artist style + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): + ((Monet style)): + + - name: Lighting + color: rgba(0, 255, 255, .4) + tags: + rim light: + Volumetric Lighting: + glowing neon lights: + Cinematic Lighting: + lens flare: + metallic luster: + moody lighting: + Tyndall effect: + light leaks: + background light: + available light: + + - name: Realistic + color: rgba(0, 255, 255, .4) + tags: + realistic: + highres: + photo_(medium): + oil_painting: + reality: + polaroid: + + - name: Sketch + color: rgba(0, 255, 255, .4) + tags: + sketch: + flat_color: + monochrome: + spot_color: + halftone: + greyscale: + high_contrast: + partially_colored: + chromatic_aberration: + contour_deepening: + outline: + silhouette: + + - name: Brush + color: rgba(0, 255, 255, .4) + tags: + traditional_media: + faux_traditional_media: + marker_(medium): + copics: + pencil_sketch_lines: + graphite_(medium): + colored_pencil_(medium): + millipen_(medium): + nib_pen_(medium): + ballpoint_pen_(medium)_: + pastel_color: + watercolor_(medium): + acrylic_paint_(medium): + contour_deepening: + + - name: Color + color: rgba(0, 255, 255, .4) + tags: + orange: + blue: + red: + light_brown: + dark_pink: + khaki: + blonde: + brown: + black: + gray: + darkgray: + silver: + lightgray: + gainsboro: + whitesmoke: + snow: + ghostwhite: + floralwhite: + linen: + antiquewhite: + papayawhip: + blanchedalmond: + bisque: + moccasin: + navajowhite: + peachpuff: + mistyrose: + lavenderblush: + seashell: + oldlace: + ivory: + honeydew: + mintcream: + azure: + aliceblue: + lavender: + lightsteelblue: + lightslategray: + slategray: + steelblue: + royalblue: + midnightblue: + navy: + darkblue: + mediumblue: + dodgerblue: + cornflowerblue: + skyblue: + lightblue: + powderblue: + paleturquoise: + lightcyan: + cyan: + aquamarine: + turquoise: + mediumturquoise: + darkturquoise: + lightseagreen: + cadetblue: + darkcyan: + teal: + darkslategray: + darkgreen: + green: + forestgreen: + seagreen: + mediumseagreen: + mediumaquamarine: + darkseagreen: + palegreen: + lightgreen: + springgreen: + mediumspringgreen: + lawngreen: + chartreuse: + greenyellow: + lime: + limegreen: + yellowgreen: + darkolivegreen: + olivedrab: + olive: + darkkhaki: + palegoldenrod: + cornsilk: + beige: + lightyellow: + lightgoldenrodyellow: + lemonchiffon: + wheat: + burlywood: + tan: + yellow: + gold: + sandybrown: + darkorange: + goldenrod: + peru: + darkgoldenrod: + chocolate: + sienna: + saddlebrown: + maroon: + darkred: + firebrick: + indianred: + rosybrown: + darksalmon: + lightcoral: + salmon: + lightsalmon: + coral: + tomato: + orangered: + crimson: + mediumvioletred: + deeppink: + hotpink: + palevioletred: + pink: + lightpink: + thistle: + magenta: + fuchsia: + violet: + plum: + orchid: + mediumorchid: + darkorchid: + darkviolet: + darkmagenta: + purple: + indigo: + darkslateblue: + blueviolet: + mediumpurple: + slateblue: + mediumslateblue: + + - name: Background + color: rgba(0, 255, 255, .4) + tags: + fantasy: + ban: + cyberpunk: + depth_of_field: + blurry: + blurry_foreground: + simple_background: + black_background: + white_background: + transparent_background: + beige_background: + brown_background: + tan_background: + grey_background: + two-tone_background: + gradient_background: + multicolored_background: + rainbow_background: + abstract_background: + argyle_background: + checkered_background: + floral_background: + halftone_background: + heart_background: + honeycomb_background: + plaid_background: + polka_dot: + striped_background: + scenery: + landscape: + foral_background: + crop_top_overhang: + starry_background: + sparkle_background: + cityscape: + city_lights: + clock_background: + bubble_background: + border: + pillarboxed: + rounded_corners: + viewfinder: + windowboxed: + outside_border: + flashback: + wall_of_text: + background_text: + +- name: Environment + groups: + - name: Season + color: rgba(31, 144, 255, .4) + tags: + in spring: + in summer: + in autumn: + in winter: + (autumn maple forest:1.3),(very few fallen leaves),(path): + + - name: Weather + color: rgba(31, 144, 255, .4) + tags: + day: + dusk: + night: + rain: + in the rain: + rainy days: + sunset: + cloudy: + full moon: + sun: + moon: + full_moon: + stars: + sky: + universe: + snow,ice: + snowflakes: + lighting: + rainbow: + meteor shower: + cumulonimbus: + + - name: Nature + color: rgba(31, 144, 255, .4) + tags: + nature: + sea: + ocean: + beach: + hills: + in a meadow: + on the beach: + underwater: + over the sea: + grove: + on a desert: + plateau: + cliff: + canyon: + oasis: + bamboo forest: + glacier: + floating island: + volcano: + savanna: + waterfall: + stream: + wasteland: + field: + rice paddy: + wheat field: + flower field: + flower sea: + space: + starry sky: + lake: + river: + onsen: + flowers meadows: + Alps: + Dreamy forest: + mountain: + on a hill: + the top of the hill: + outdoors: + + - name: Water + color: rgba(31, 144, 255, .4) + tags: + ocean: + dripping: + beach: + lake: + waterfall: + ripples: + swirl: + waves: + seashell: + seaweed: + + - name: Sky + color: rgba(31, 144, 255, .4) + tags: + sky: + gradient_sky: + night_sky: + starry_sky: + hyper_galaxy: + star_(sky): + star_trail: + sunset: + moon: + lunar: + crescent: + crescent_moon: + full_moon: + moonlight: + scarlet_moon: + universe: + space: + planet: + from_space_station: + satellite: + + - name: Cloud + color: rgba(31, 144, 255, .4) + tags: + cirrus: + Cirrocumulus: + Cirrostratus: + Altocumulus: + Altostratus: + stratus: + Stratocumulus: + cumulus: + Cumulonimbus: + Nimbostratus: + cirrus_fibratus: + cirrus_uncinus: + cirrus_spissatus: + cirrus_floccus: + cirrus_castellanus: + cirrus_intortus: + cirrocumulus: + cirrocumulus_stratiformis: + cirrocumulus_floccus: + cirrocumulus_castellanus: + cirrocumulus_lacunosus: + cirrostratus: + cirrostratus_fibratus: + cirrostratus_nebulosus: + altocumulus: + altocumulus_strataformis: + altocumulus_lenticularis: + altocumulus_castellanus: + altocumulus_floccus: + altocumulus_lacunosus: + altostratus: + altostratus_undulatus: + altostratus_duplicates: + altostratus_pannus: + altostratus_translucidus: + altostratus_opacus: + altostratus_radiatus: + altostratus_mammatus: + stratus_fractus: + stratus_nebulosus: + stratus_undulatus: + stratocumulus: + stratocumulus_stratiformis: + stratocumulus_cumulogentis: + stratocumulus_castellanus: + stratocumulus_lenticularis: + stratocumulus_lacunosus: + cumulus_humilis: + cumulus_mediocris: + cumulus_congestus: + cumulus_fractus: + cumulonimbus: + cumulonimbus_calvus: + cumulonimbus_capillatus: + cumulonimbus_incus: + + - name: Atmosphere + color: rgba(31, 144, 255, .4) + tags: + new year: + year of the rabbit: + valentine: + lantern festival: + summer festival: + tanabata: + mid-autumn festival: + halloween: + christmas: + explosion: + water vapor: + fireworks: + ceiling window: + colourful glass: + stain glass: + Graffiti wall: + mosaic background: + liquid background, Sputtered water: + magic circles: + fluorescent mushroom forests background: + (((colorful bubble))): + in the ocean: + against backlight at dusk: + golden hour lighting: + strong rim light: + intense shadows: + +- name: Scene + groups: + - name: Outdoor + color: rgba(159, 32, 240, .4) + tags: + castle: + city: + waterpark: + carousel: + ferris wheel: + aquarium: + zoo: + bowling alley: + art gallery: + museum: + planetarium: + swimming pool: + stadium: + temple: + bus stop: + train station: + fountain: + playground: + market stall: + phone booth: + railroad tracks: + airport: + tunnel: + skyscraper: + cityscape: + ruins: + greco-roman architectur: + east asian architecture: + torii: + church: + shop: + street: + cyberpunk city: + in the cyberpunk city: + chinese style architecture: + gohei: + Bustling city: + laboratory: + coffee house: + gym: + library: + prison: + engine room: + handrail: + neon lights: + street lamp: + road: + shanty town/slum: + warehouse: + gothic architecture: + restaurant: + treehouse: + modern,Europe: + Industrial wind, Chinese architecture: + building_ruins: + bar: + izakaya: + cafe: + bakery: + convenience store: + supermarket: + pharmacy: + theater: + movie theater: + workshop: + courtroom: + park: + Trapeze: + classroom: + botanical garden: + amusement_park: + Disney_land: + arena: + wrestling_ring: + Auditorium: + concert: + Japanese_hotel: + jail_bars: + in_the_movie_theatre: + stage: + harbor: + casino: + billiard: + dungeon: + grave: + graveyard: + tombstone: + monolith: + rappelling: + building: + architecture: + magnificent_architecture: + Skyscraper: + east_asian_architecture: + cathedral: + chinese_style_loft: + traditional_chinese_room: + turret: + tower: + mosque: + reservoir: + railroad: + railway: + bridge: + under_bridge: + remains: + rubble_ruins: + + - name: City + color: rgba(159, 32, 240, .4) + tags: + city: + cityscape: + street: + downtown: + crowd: + alley: + in_main_street: + Intersection: + avenue: + lawn: + road: + path: + pavement: + road_sign: + traffic_cone: + lamppost: + power_lines: + fence: + railing: + bench: + vending_machine: + + - name: Indoor + color: rgba(159, 32, 240, .4) + tags: + indoor: + bathroom: + toilet stall: + otaku room: + cafeteria: + classroom: + clubroom: + bedroom: + kitchen: + dormitory: + dungeon: + infirmary: + stage: + electrical room: + server room: + basement: + art room: + bathing: + stairs: + greenhouse: + + - name: Floor + color: rgba(159, 32, 240, .4) + tags: + floor: + tile_floor: + + - name: Furniture + color: rgba(159, 32, 240, .4) + tags: + bedroom: + tatami: + bed: + couch: + kotatsu: + fireplace: + window_: + sash: + curtains: + door: + sliding_doors: + clothes_rack: + air_conditioner: + table: + school_desk: + chair: + armchair: + lounge_chair: + beach_chair: + folding_chair: + invisible_chair: + office_chair: + wheelchair: + + - name: Bedding + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: + mattress: + futon: + cushion: + carpet: + pillow: + dumpling_Hug_Pillow: + pillow_hug: + yes-no_pillow: + stuffed_animal: + stuffed_bunny: + koakuma: + + - name: Bathroom + color: rgba(159, 32, 240, .4) + tags: + bathroom: + bathtub,: + rubber_duck: + shower_head: + toilet: + squat_toilet: + soap: + tiles: + +- name: Items + groups: + - name: Study supplies + color: rgba(189, 182, 107, .4) + tags: + notebook: + paintbrush: + pencil: + book: + open_book: + book_stack: + bookshelf: + school_bag: + backpack: + + - name: Digital devices + color: rgba(189, 182, 107, .4) + tags: + computer: + mouse: + cellphone: + Smartphones: + handheld_game_console_: + nintendo_3ds: + nintendo_ds: + nintendo_switch: + buttons: + power_lines: + cable: + + - name: Tableware + color: rgba(189, 182, 107, .4) + tags: + pot: + teapot: + ladle: + can: + soda_can: + cup: + plate: + tray: + bowl: + fork: + chopsticks: + spoon: + drinking_glass: + tumbler: + beer_mug: + gift_box: + heart-shaped_box: + candle: + + - name: Musical Instruments + color: rgba(189, 182, 107, .4) + tags: + music: + guitar: + piano: + cello: + playing_instrument: + wind_chime: + + - name: Other items + color: rgba(189, 182, 107, .4) + tags: + wristwatch: + folding_fan: + paper_fan: + uchiwa: + umbrella: + transparent_umbrella: + closed_umbrella: + oil-paper_umbrella: + Parasol: + basket: + bouquet: + bucket: + pail: + camera: + gohei: + lantern/lamp: + whip: + riding_crop: + ofuda: + cane: + wand: + magic: + trading_card: + playing_card: + Cassette: + chess_piece: + coin: + copper: + hammer: + microphone: + mimikaki: + sack: + scales: + chibi_inset: + damaged: + diamond_(shape): + gourd: + holding_gift: + inlet: + key: + leash: + Lever: + molecule: + money: + Painting_(Object): + photo_(object): + sand: + stubble: + trophy: + tube_top: + water_bottle: + lotion: + lotion_bottle: + + - name: Weapon + color: rgba(189, 182, 107, .4) + tags: + weapon: + weapon_on_back: + weapon_over_shoulder: + huge_weapon: + planted_weapon: + broken_weapon: + planted_sword: + sword: + scabbard: + unsheathing: + katana: + saber_(weapon): + scythe: + nose_hatchet: + dagger: + scissors: + axe: + hatchet: + stake: + lance: + trident: + bow_(weapon): + arrow: + claw_(weapon): + rifle,: + gun: + handgun: + thompson_submachine_gun: + magazine_(weapon): + dynamite: + bomb: + track missiles: + complex Trajectory: + tank: + cannon: + military_vehicle: + motorcycle: + ship: + watercraft: + car: + machine: + machinery: + mechanical_arms: + mechanization: + robot_ears: + robot_joints: + variable_fighter: + sorcerer's_sutra_scroll: + + - name: Food + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: + apple: + aubergine: + burger: + cake: + candy: + candy_apple: + candy_cane: + carrot: + cigarette: + coffee: + cookie: + cotton_candy_: + cream: + dango: + doughnut: + drink: + egg: + fruit: + Gelatin: + ice_cream: + kafuu_chino: + makizushi: + meat: + noodles: + obento: + onigiri: + pancake: + pasties: + peach: + ramen: + sake: + taiyaki: + tea: + teacup: + wagashi: + wine: + jam: + pocky: + bottled_water: + sweet_potato: + sweets: + food: + food_in_mouth: + food_on_: + food_on_body: + food_print: + food_stand: + in_food: + chips: + potato_chips: + telstar: + sundae: + tempura: + + - name: Animal + color: rgba(189, 182, 107, .4) + tags: + reptile: + crow: + bird: + penguin: + chick: + manjuu_(azur_lane): + shell: + wriggle_nightbug: + dragonfly: + mammal: + wolf: + whale: + cat: + cat_teaser: + dog: + dog_tags: + fox: + bunny: + snow_bunny: + stuffed_bunny: + horse: + cow: + dragon: + loong: + eastern_dragon: + snake: + slime: + bear: + panda: + teddy_bear: + tiger: + bat: + hamster: + mouse: + squirrel: + + - name: Plant + color: rgba(189, 182, 107, .4) + tags: + plant: + flower: + vase: + bouquet: + flower_bloom: + plum_blossom: + cherry_blossoms: + wisteria: + hibiscus: + hydrangea: + rose: + spider_lily: + lily: + lotus: + bamboo: + entangled_plants: + orchid: + chrysanthemum: + narcissu: + tree: + branch: + forest: + pine_tree: + palm_tree: + maple_tree: + bush/shrub,: + christmas_tree: + maple_leaf: + pumpkin: + jack-o'-lantern: + spring_onion: + +- name: Camera + groups: + - name: Camera + color: rgba(99, 201, 2, .4) + tags: + panorama: + landscape: + wide_shot: + medium_shot: + mid_shot: + full_shot: + bust: + upper_body: + lower_body: + cowboy_shot: + portrait: + profile: + + - name: Close-up + color: rgba(99, 201, 2, .4) + tags: + close-up: + macro_shot: + inset: + cross-section: + x-ray: + solo_focus: + xx_focus: + face_focus: + eyes_focus: + foot_focus: + hip_focus: + ass_focus: + vehicle_focus: + between_legs: + between_breasts: + between_fingers: + peeking: + peeking_out: + peeping: + midriff_peek: + armpit_peek: + pussy_peek: + panty_peek: + pantyshot: + caught: + + - name: Other compositions + color: rgba(99, 201, 2, .4) + tags: + aerial: + turn_one's_back: + upskirt: + phone_screen: + multiple_views: + mirror selfie: + three-quarter view: + + - name: Camera angle + color: rgba(99, 201, 2, .4) + tags: + front view: + from_side: + from_above: + from_below: + from_outside: + from_back: + from behind: + dynamic_angle: + cinematic_angle: + dutch angle: + foreshortening: + fisheye: + + - name: Effect + color: rgba(99, 201, 2, .4) + tags: + depth of field: + lens_flare: + motion_blur: + motion_lines: + speed_lines: + bokeh: + chromatic_aberration: + overexposure: + contour_deepening: + + - name: Protagonist action + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: + eye-contact: + eyeball: + stare: + looking_back: + gradient: + looking_down: + looking_up: + facing_away: + looking_to_the_side: + looking_away: + looking_ahead: + looking_afar: + looking_outside: + head_tilt: + head_down: + sideways_glance: + upshirt: + upshorts: + looking_at_another: + looking_at_phone: + looking_at_animal: + looking_at_mirror: + looking_at_hand: + looking_at_hands: + looking_at_food: + looking_at_screen: + +- name: Hanfu + groups: + - name: "Tang style:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: + + - name: Upper shan + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: + red upper shan: + green upper shan: + blue upper shan: + pink upper shan: + yellow upper shan: + white upper shan: + light blue upper shan: + light green upper shan: + light red upper shan: + cyan blue upper shan: + light purple upper shan: + black with blue upper shan: + white with orange upper shan: + pink with black upper shan: + + - name: Long upper shan + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: + red long upper shan: + green long upper shan: + blue long upper shan: + pink long upper shan: + yellow long upper shan: + white long upper shan: + light blue long upper shan: + light green long upper shan: + light red long upper shan: + cyan blue long upper shan: + light purple long upper shan: + black with blue long upper shan: + white with orange long upper shan: + pink with black long upper shan: + + - name: Chest po skirt + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: + red chest po skirt: + green chest po skirt: + blue chest po skirt: + pink chest po skirt: + purple chest po skirt: + multicolour chest po skirt: + purple with white chest po skirt: + white with yellow chest po skirt: + blue with white chest po skirt: + orange with white chest po skirt: + green with white chest po skirt: + light orange with white chest po skirt: + pink with white chest po skirt: + white with pink chest po skirt: + + - name: Chest pleated skirt + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: + red chest pleated skirt: + green chest pleated skirt: + blue chest pleated skirt: + pink chest pleated skirt: + purple chest pleated skirt: + multicolour chest pleated skirt: + purple with white chest pleated skirt: + white with yellow chest pleated skirt: + blue with white chest pleated skirt: + orange with white chest pleated skirt: + green with white chest pleated skirt: + light orange with white chest pleated skirt: + pink with white chest pleated skirt: + white with pink chest pleated skirt: + + - name: Waistband + color: rgba(178, 33, 34, .4) + tags: + green waistband: + yellow waistband: + red waistband: + pink waistband: + orange waistband: + light blue waistband: + light green waistband: + green with yellow waistband: + purple with white waistband: + red with white waistband: + red with black waistband: + yellow with white waistband: + + - name: Pibo + color: rgba(178, 33, 34, .4) + tags: + white pibo: + orange pibo: + black pibo: + pink pibo: + red pibo: + purple pibo: + light green pibo: + white with yellow pibo: + + - type: wrap + + - name: "Song style:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: + + - name: Short shan + color: rgba(178, 33, 34, .4) + tags: + purple short shan: + red short shan: + green short shan: + blue short shan: + pink short shan: + yellow short shan: + white short shan: + light blue short shan: + light green short shan: + light red short shan: + cyan blue short shan: + light purple short shan: + black with blue short shan: + white with yellow short shan: + light yellow with green with white short shan: + + - name: Long shan + color: rgba(178, 33, 34, .4) + tags: + purple long shan: + red long shan: + green long shan: + blue long shan: + pink long shan: + yellow long shan: + white long shan: + light blue long shan: + light green long shan: + light red long shan: + cyan blue long shan: + light purple long shan: + black with blue long shan: + white with yellow long shan: + light yellow with green with white long shan: + + - name: Pleated skirt + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: + red pleated skirt: + green pleated skirt: + blue pleated skirt: + pink pleated skirt: + light blue pleated skirt: + white golden pleated skirt: + gradient green pleated skirt: + translucent white pleated skirt: + red cyan gradient pleated skirt: + red green gradient pleated skirt: + green with white pleated skirt: + light yellow with green with white pleated skirt: + + - name: Songmo + color: rgba(178, 33, 34, .4) + tags: + orange songmo: + red songmo: + green songmo: + blue songmo: + pink songmo: + yellow songmo: + white songmo: + purple songmo: + green floral songmo: + purple floral songmo: + cyan floral songmo: + + - type: wrap + + - name: "Ming style:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: + + - name: Coat + color: rgba(178, 33, 34, .4) + tags: + short coat: + long coat: + + - name: Skirt + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: + + - name: Collar + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: + round collar: + standing collar: + square collar: + + - name: Decorate + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: + embroidery: + woven gold: + makeup flower: + bufu: diff --git a/group_tags/es_ES.yaml b/group_tags/es_ES.yaml new file mode 100644 index 0000000000000000000000000000000000000000..58e4b22d7aa8d6242219e15bdd9315f4738cf4cf --- /dev/null +++ b/group_tags/es_ES.yaml @@ -0,0 +1,4430 @@ +# 👍Palabras clave de integración de fuentes: "路过银河" (Zhihu), autor desconocido (Google Drive), Internet, etc. ¡Agradecemos la generosa contribución de estos autores! +# +# ⚠️Se recomienda no modificar el contenido de este archivo, ya que el autor puede actualizarlo periódicamente. Si se modifica este archivo, podría generar conflictos al actualizar. +# ⚠️Si desea personalizar grupos de palabras clave, copie este archivo, cámbiele el nombre a "custom.yaml" y realice las modificaciones en "custom.yaml". El complemento leerá primero el archivo "custom.yaml" y, si no existe, leerá este archivo. +# +# ⚠️Si solo quieres agregar tu propio contenido antes del archivo actual, puedes crear un archivo prepend.yaml. +# ⚠️Si solo quieres agregar tu propio contenido después del archivo actual, puedes crear un archivo append.yaml. +# ⚠️custom.yaml: Sobreestcribe el archivo actual +# ⚠️prepend.yaml: Agrega antes del archivo actual +# ⚠️append.yaml: Agrega después del archivo actual +# +# ⚠️Se recomienda utilizar un editor de texto profesional (como Visual Studio Code) para editar este archivo y evitar problemas de codificación y formato incorrecto. +# ⚠️No utilice el Bloc de notas de Windows para editar este archivo. +# ⚠️Después de realizar modificaciones, puede verificar el formato del contenido en https://www.yamllint.com/. + +# Formato del contenido: +# - name: Nombre de la categoría principal +# groups: Lista de categorías secundarias +# - name: Nombre de la categoría secundaria +# color: Color predeterminado del texto de las palabras clave (opcional), código de color CSS, por ejemplo: #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: Lista de palabras clave +# - Palabra clave en inglés: Traducción localizada +# - Palabra clave en inglés: Traducción localizada +# ... + +# Las traducciones localizadas de este contenido son generadas automáticamente y pueden contener inexactitudes. Si encuentra alguna, le invitamos a enviar una solicitud de extracción (PR) en GitHub para corregirla. +# Si hay errores de categorización, errores en las palabras clave o errores de traducción de palabras clave, le invitamos a enviar un informe de incidencia (Issue) en GitHub para proporcionar comentarios. + +- name: Personaje + groups: + - name: Objeto + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1 chica + 1boy: 1 chico + 2girls: 2 chicas + 2boys: 2 chicos + 3girls: 3 chicas + 3boys: 3 chicos + girl: chica + boy: chico + solo: individual + multiple_girls: varias chicas + little_girl: niña pequeña + little_boy: niño pequeño + shota: shota + loli: loli + kawaii: kawaii + mesugaki: mesugaki + adorable_girl: chica adorable + bishoujo: bishoujo + gyaru: gyaru + sisters: hermanas + ojousama: ojousama + female: femenino + mature_female: mujer madura + mature: maduro + female_pervert: pervertida femenina + male: masculino + milf: milf + otoko_no_ko: otoko no ko + crossdressing: travestismo + + - name: Identidad + color: rgba(255, 123, 2, .4) + tags: + lifeguard: socorrista + boxer: boxeador + scientist: científico + athletes: atletas + office lady: mujer de oficina + monk: monje + crobat: acróbata + nun: monja + nurse: enfermera + stewardess: azafata + student: estudiante + waitress: camarera + teacher: profesor + racer: corredor + police: policía + soldier: soldado + cheerleader: animadora + actor: actor + actress: actriz + spy: espía + agent: agente + assassin: asesino + poet: poeta + samurai: samurái + dancing girl: bailarina + motorcyclist: motociclista + hacker: hacker + magician: mago + detective: detective + doll: muñeca + maid: criada + pilot: piloto + diver: buceador + bar censor: censor de bar + missionary: misionero + firefighter: bombero + goalkeeper: portero + chef: chef + astronaut: astronauta + cashier: cajero + mailman: cartero + barista: barista + the hermit: el ermitaño + makihitsuji: pastor + office_lady: señorita de oficina + race_queen: reina de carreras + queen: reina + doctor: médico + knight: caballero + housemaid: criada + dancer: bailarín + ballerina: bailarina de ballet + gym_leader: líder de gimnasio + trap: trap + female: mujer + harem: harén + idol: ídolo + male: hombre + priest: sacerdote + cleric: clérigo + wa_maid: criada de estilo japonés + yaoi: yaoi + yuri: yuri + albino: albino + amputee: amputado + + - name: Personaje de anime + color: rgba(255, 123, 2, .4) + tags: + pokemon: Pokémon + teddy bear: oso de peluche + mario: Mario + pikachu: Pikachu + neon genesis evangelion: Neon Genesis Evangelion + hatsune miku: Hatsune Miku + harry potter: Harry Potter + doraemon: Doraemon + saint seiya: Saint Seiya + gojou satoru: Gojou Satoru + avengers: Vengadores + mazinger: Mazinger + captain america: Capitán América + crayon shin-chan: Shin Chan + slam dunk: Slam Dunk + sun wukong: Sun Wukong + witch: bruja + miko: miko + ninja: ninja + vampire: vampiro + knight: caballero + magical_girl: chica mágica + orc: orco + druid: druida + elf: elfo + fairy: hada + furry: furry + mermaid: sirena + kamen rider: Kamen Rider + magister: magister + spider-man: Spider-Man + santa alter: Santa Alter + monster_girl: chica monstruo + cat_girl: chica gato + dog_girl: chica perro + fox_girl: chica zorro + kitsune: kitsune + kyuubi: Kyuubi + raccoon_girl: chica mapache + wolf_girl: chica lobo + bunny_girl: chica conejo + horse_girl: chica caballo + cow_girl: chica vaca + dragon_girl: chica dragón + centaur: centauro + slime_musume: chica slime + spider_girl: chica araña + dominatrix: dominatrix + sailor_senshi: Sailor Senshi + mecha: mecha + mecha_musume: chica mecha + humanoid_robot_: robot humanoide + cyborg: cíborg + angel: ángel + devil: demonio + dark_elf: elfo oscuro + imp: demonio pequeño + succubus: súcubo + giantess: giganta + minigirl: chica miniatura + monster: monstruo + multiple girls: chicas mágicas + no humans: sin humanos + + - name: Edad + color: rgba(255, 123, 2, .4) + tags: + toddler: niño pequeño + kindergartener: niño de jardín de infancia + child: niño + underage: menor de edad + teenager: adolescente (13-19) + teen: adolescente (13-19) + early teen: adolescente temprano (11-15) + adult: adulto + elder: anciano + old: viejo + loli: loli + shota: shota + + - name: Piel + color: rgba(255, 123, 2, .4) + tags: + white_skin: piel blanca + pale_skin: piel pálida + fair_skin: piel clara + brown_skin: piel morena + deep_skin: piel oscura + dark_skin: piel oscura + black_skin: piel negra + shiny_skin: piel brillante + white_marble_glowing_skin: piel de mármol blanco brillante + tattoo: tatuaje + tan: bronceado + tanlines: marcas de bronceado + oil: piel grasa + + - name: Figura + color: rgba(255, 123, 2, .4) + tags: + skinny: delgado + plump: relleno + curvy: curvilíneo + gyaru: gyaru + pregnant: embarazada + fat: gordo + thin: delgado + slender: esbelto + glamor: glamoroso + tall: alto + petite: pequeño + chibi: chibi + muscular: musculoso + + - name: Forma de la cara + color: rgba(255, 123, 2, .4) + tags: + slender face: cara delgada + round face: cara redonda + oval face: cara ovalada + baby face: cara de bebé + inverted triangle face: cara en forma de triángulo invertido + heart shaped face: cara en forma de corazón + diamond face: cara en forma de diamante + square face: cara cuadrada + long face: cara larga + triangular face: cara triangular + + - name: Cabello + color: rgba(255, 123, 2, .4) + tags: + white hair: cabello blanco + blonde hair: cabello rubio + silver hair: cabello plateado + grey hair: cabello gris + purple hair: cabello morado + red hair: cabello rojo + yellow hair: cabello amarillo + green hair: cabello verde + blue hair: cabello azul + black hair: cabello negro + brown hair: cabello marrón + straight_hair: cabello liso + short hair: cabello corto + curly hair: cabello rizado + long hair: cabello largo + pony-tail: coleta + bunches: coletas + streaked hair: cabello con mechas + grey gradient hair: cabello con degradado gris + light brown hair: cabello castaño claro + two-tone hair: cabello bicolor + multicolored hair: cabello multicolor + high ponytail: coleta alta + twintails: coletas gemelas + braided ponytail: coleta trenzada + ponytail: cola de caballo + short ponytail: coleta corta + twin braids: trenzas gemelas + medium hair: cabello mediano + very long hair: cabello muy largo + braided bangs: flequillo trenzado + swept bangs: flequillo barrido + hair between eyes: cabello entre los ojos + bob cut: corte bob + hime cut: corte hime + crossed bangs: flequillo cruzado + bangs: flequillo + blunt bangs: flequillo recto + air bangs: flequillo al aire + hair wings: alas de cabello + long bangs: flequillo largo + side_blunt_bangs: flequillo lateral recto + centre parting bangs: flequillo con raya en el centro + asymmetric bangs: flequillo asimétrico + disheveled hair: cabello despeinado + wavy hair: cabello ondulado + hair in takes: cabello recogido + hair pink flowers: flores rosas en el cabello + ahoge: mechón de pelo rebelde + antenna hair: cabello con antenas + Side ponytail: coleta lateral + forehead: frente descubierta + drill hair: cabello en espiral + hair bun: moño + double bun: doble moño + messy hair: cabello desordenado + hair_flaps: mechones de cabello + + - name: Rostro + color: rgba(255, 123, 2, .4) + tags: + makeup: maquillaje + fundoshi: fundoshi + eyeshadow: sombra de ojos + lipstick: lápiz labial + mascara: máscara de pestañas + long_eyelashes: pestañas largas + red_lips_: labios rojos + facepaint: pintura facial + lipgloss: brillo de labios + colored_eyelashes: pestañas de colores + blush: rubor + light_blush: rubor ligero + anime_style_blush: rubor al estilo anime + nose_blush: rubor en la nariz + nosebleed: sangrado de nariz + bruise_on_face: moretón en la cara + facial_mark: marca facial + forehead_mark: marca en la frente + anger_vein: vena de ira + mole: lunar + mole_under_eye: lunar debajo del ojo + freckles: pecas + food_on_face: comida en la cara + rice_on_face: arroz en la cara + cream_on_face: crema en la cara + mustache: bigote + goatee: perilla + whisker_markings: marcas de bigotes + scar: cicatriz + scar_across_eye: cicatriz a través del ojo + smoking_pipe: pipa de fumar + tattoo: tatuaje + + - name: Orejas + color: rgba(255, 123, 2, .4) + tags: + elf ears: orejas de elfo + fake animal ears: orejas de animal falsas + cat ears: orejas de gato + dog ears: orejas de perro + fox ears: orejas de zorro + bunny ears: orejas de conejo + bear ears: orejas de oso + wolf ears: orejas de lobo + horse ears: orejas de caballo + cow ears: orejas de vaca + mouse ears: orejas de ratón + pig ears: orejas de cerdo + sheep ears: orejas de oveja + deer ears: orejas de ciervo + goat ears: orejas de cabra + antelope ears: orejas de antílope + rhino ears: orejas de rinoceronte + elephant ears: orejas de elefante + bat ears: orejas de murciélago + dragon ears: orejas de dragón + demon ears: orejas de demonio + angel ears: orejas de ángel + alien ears: orejas de alienígena + ear_blush: rubor en las orejas + ear_ornament: adorno de oreja + ear_piercing: perforación de oreja + animal_ears: orejas de animal + ears_down: orejas hacia abajo + fake_animal_ears: orejas de animal falsas + floppy_ears: orejas caídas + animal_ear_fluff: pelaje de orejas de animal + fox_ears: orejas de zorro + cat_ears: orejas de gato + lion_ears: orejas de león + jaguar_ears: orejas de jaguar + tiger_ears: orejas de tigre + dog_ears: orejas de perro + coyote_ears: orejas de coyote + bunny_ears: orejas de conejo + horse_ears: orejas de caballo + pointy_ears: orejas puntiagudas + long_pointy_ears: orejas puntiagudas largas + mouse_ears: orejas de ratón + raccoon_ears: orejas de mapache + squirrel_ears: orejas de ardilla + bear_ears: orejas de oso + panda_ears: orejas de panda + bat_ears: orejas de murciélago + robot_ears: orejas de robot + extra_ears: orejas adicionales + ears_through_headwear: orejas a través de sombreros o accesorios para la cabeza + alpaca_ears: orejas de alpaca + horns: cuernos + fake_horns: cuernos falsos + dragon_horns: cuernos de dragón + oni_horns: cuernos de oni + antlers: astas + curled_horns: cuernos rizados + goat_horns: cuernos de cabra + hair_on_horn: cabello en los cuernos + + - name: Cejas + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: cejas gruesas + cocked eyebrow: ceja levantada + short eyebrows: cejas cortas + v-shaped eyebrows: cejas en forma de V + + - name: Ojos + color: rgba(255, 123, 2, .4) + tags: + blue eyes: ojos azules + red eyes: ojos rojos + brown eyes: ojos marrones + green eyes: ojos verdes + purple eyes: ojos morados + yellow eyes: ojos amarillos + pink eyes: ojos rosados + black eyes: ojos negros + aqua eyes: ojos turquesa + orange eyes: ojos naranjas + grey eyes: ojos grises + multicolored eyes: ojos multicolores + white eyes: ojos blancos + gradient eyes: ojos con degradado + closed eyes: ojos cerrados + half-closed eyes: ojos entrecerrados + crying with eyes open: llorando con los ojos abiertos + narrowed eyes: ojos entrecerrados + hidden eyes: ojos ocultos + heart-shaped eyes: ojos en forma de corazón + button eyes: ojos de botón + cephalopod eyes: ojos de cefalópodo + eyes visible through hair: ojos visibles a través del cabello + glowing eyes: ojos brillantes + empty eyes: ojos vacíos + rolling eyes: ojos en blanco + cross eyed: ojos bizcos + blank eyes: ojos en blanco + no eyes: sin ojos + sparkling eyes: ojos brillantes + extra eyes: ojos adicionales + crazy eyes: ojos locos + solid circle eyes: ojos con círculo sólido + solid oval eyes: ojos con óvalo sólido + uneven eyes: ojos desiguales + blood from eyes: sangre de los ojos + eyeshadow: sombra de ojos + red eyeshadow: sombra de ojos roja + blue eyeshadow: sombra de ojos azul + purple eyeshadow: sombra de ojos morada + pink eyeshadow: sombra de ojos rosada + green eyeshadow: sombra de ojos verde + bags under eyes: ojeras + ringed eyes: ojos con anillos + covered eyes: ojos cubiertos + covering eyes: cubriendo los ojos + shading eyes: sombreando los ojos + devil eyes: ojos de demonio + slit pupils: pupilas rasgadas + bloodshot eyes: ojos inyectados de sangre + tsurime: ojos con cola hacia arriba + tareme: ojos con cola hacia abajo + constricted pupils: pupilas contraídas + devil pupils: pupilas de demonio + snake pupils: pupilas de serpiente + pupils sparkling: pupilas brillantes + flower-shaped pupils: pupilas en forma de flor + heart-shaped pupils: pupilas en forma de corazón + heterochromia: heterocromía + color contact lenses: lentes de contacto de colores + longeyelashes: pestañas largas + colored eyelashes: pestañas de colores + mole under eye: lunar debajo del ojo + light_eyes: ojos claros + glowing_eye: ojo brillante + shiny_eyes: ojos brillantes + sparkling_eyes: ojos brillantes + gradient_eyes: ojos con degradado + anime_style_eyes: ojos de estilo anime + water_eyes: ojos acuosos + beautiful_detailed_eyes: ojos hermosos y detallados + solid_oval_eyes_: ojos ovalados sólidos + solid_circle_pupils: pupilas circulares sólidas + blush_stickers: pegatinas de rubor + heart_in_eye: corazón en el ojo + evil_eyes: ojos malvados + crazy_eyes: ojos locos + empty_eyes: ojos vacíos + covered_eyes: ojos cubiertos + hollow_eyes: ojos huecos + multicolored_eyes: ojos multicolores + ringed_eyes: ojos con anillos + sanpaku: sanpaku (pupila desplazada) + mismatched_sclera: esclera desparejada + eye_relfection: reflejo en el ojo (sin efecto) + mechanical_eye: ojo mecánico + cephalopod_eyes: ojos de cefalópodo + clock_eyes: ojos de reloj + compound_eyes: ojos compuestos + fisheye: ojo de pez + devil_eyes: ojos de demonio + bloodshot_eyes: ojos inyectados de sangre + blood_from_eyes: sangre saliendo de los ojos + aqua_eyes: ojos color agua + solid_eyes: ojos firmes + sparkling_anime_eyes: ojos de anime brillantes + blue_eyes: ojos azules + brown_eyes: ojos marrones + closed_eyes: ojos cerrados + crying_with_eyes_open: llorando con los ojos abiertos + extra_eyes: ojos adicionales + eye_contact: contacto visual + eye_of_horus: ojo de Horus + eyeball: globo ocular + eyeliner: delineador de ojos + eyes: ojos + glint: destello en los ojos + glowing_eyes: ojos brillantes + half-closed_eye: ojo entrecerrado (uno solo) + half-closed_eyes: ojos entrecerrados + horizontal_pupils: pupilas horizontales + jitome: mirada desdeñosa + light_brown_eyes: ojos marrones claros + no_eyes: sin dibujar los ojos + one-eyed: ojo reflectante + reflective_eyes: + silver_eyes: ojos plateados + spiral_eyes: ojos en espiral + third_eye: tercer ojo + uneven_eyes: ojos desiguales + flaming_eye: ojo en llamas + eyes_closed: ojos cerrados + half_closed_eyes: ojos entrecerrados + narrowed_eyes: ojos entrecerrados + squinting: entrecerrando los ojos + tears: lágrimas + sharp_eyes: ojos afilados + slanted_eyes: ojos rasgados + upturned_eyes: ojos levantados + cross-eyed: ojos bizcos + hair_over_eyes: cabello sobre los ojos + eyes_visible_through_hair: ojos visibles a través del cabello + hair_over_one_eye: cabello sobre un ojo + one_eye_covered: un ojo cubierto + bags_under_eyes: ojeras + eyepatch: parche en el ojo + medical_eyepatch: parche médico en el ojo + scar_across_eye: cicatriz en el ojo + no_blindfold: sin venda en los ojos + no_eyepatch: sin parche en el ojo + ahegao: ahegao + + - name: Pupila + color: rgba(255, 123, 2, .4) + tags: + pupils: pupilas + bright_pupils: pupilas brillantes + heterochromia: heterocromía + slit_pupils: pupilas rasgadas/pupila de gato + snake_pupils: pupilas de serpiente + symbol-shaped_pupils: pupilas con forma de símbolo + heart-shaped_pupils: pupilas en forma de corazón + diamond-shaped_pupils: pupilas en forma de diamante + star-shaped_pupils: pupilas en forma de estrella + dilated_pupils: pupilas dilatadas + no_pupils: sin pupilas + ringed_eyes: ojos con anillos + constricted_pupils: pupilas contraídas (sin efecto) + star_in_eye: estrella en el ojo + x-shaped_pupils: pupilas en forma de X + horizontal_pupils: pupilas horizontales + dashed_eyes: ojos con rayas + butterfly-shaped_pupils: pupilas en forma de mariposa + rectangular_pupils: pupilas rectangulares + square_pupils: pupilas cuadradas + dot_pupils: pupilas puntiagudas + extra_pupils: pupilas adicionales + mismatched_pupils: pupilas desparejadas + "+_+": ojos con estrellas cruzadas + cross-shaped_pupils: pupilas en forma de cruz (sin efecto) + purple_pupils: pupilas moradas + orange_pupils: pupilas naranjas + blue_pupils: pupilas azules + symbol_in_eye: símbolo en el ojo + + - name: Nariz + color: rgba(255, 123, 2, .4) + tags: + pointed nose: nariz puntiaguda + small nose: nariz pequeña + big nose: nariz grande + no_nose: sin nariz + dot_nose: nariz en forma de punto + nose_bubble: burbuja en la nariz + smelling: olfateando + nose: nariz + nosebleed: sangrado de nariz + snot: mocos + snout: hocico de animal + + - name: Boca + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: boca en forma de castaña + thick lips: labios gruesos + puffy lips: labios hinchados + lipstick: lápiz labial + heart-shaped mouth: boca en forma de corazón + pout: puchero + open mouth: boca abierta + closed mouth: boca cerrada + shark mouth: boca de tiburón + parted lips: labios separados + mole under mouth: lunar debajo de la boca + open_mouth: boca abierta + gasping: jadeando (boca abierta) + Slightly_open_mouth: boca ligeramente abierta + wavy_mouth: boca ondulada + close_mouth: boca cerrada + dot_mouth: boca en forma de punto + no_mouth: sin boca + gag: mordaza + gnaw: mordisquear + :3: boca de gato + :o: boca abierta + :>: boca en forma de V + parted_lips: labios separados + bit_gag: mordaza en la boca + chestnut_mouth: boca en forma de castaña + cleave_gag: mordaza en la boca + closed_mouth: boca cerrada + covered_mouth: boca cubierta + extra_mouth: bocas adicionales + hair_in_mouth: cabello en la boca + hair_tie_in_mouth: sujetando el cabello con la boca + homu: puchero + lips: labios + mouth: boca + mouth_hold: sosteniendo con la boca + oral: con la boca + pacifier: chupete + Pouted lips: labios fruncidos + sideways_mouth: boca dibujada de perfil + spoon_in_mouth: cuchara en la boca + triangle_mouth: boca en forma de triángulo + saliva: saliva + drooling: babeando + mouth_drool: boca con forma de gota de saliva + + - name: Dientes + color: rgba(255, 123, 2, .4) + tags: + teeth: dientes + upper_teeth: dientes superiores + fang: colmillo + skin_fang: colmillo de piel + round_teeth: dientes redondos + sharp_teeth: dientes afilados + clenched_teeth: dientes apretados + tongue: lengua + buck_teeth: dientes salientes + fang_out: colmillos expuestos + fangs: colmillos + spiked_club: garrote con pinchos + tooth: diente + toothbrush: cepillo de dientes + tusks: colmillos + shark_mouth: boca de tiburón + + - name: Lengua + color: rgba(255, 123, 2, .4) + tags: + :q: lengua sobre el labio superior + :p: lengua sobre el labio inferior + ;p: guiñando el ojo y sacando la lengua + french_kiss: beso francés + long_tongue: lengua larga + oral_invitation: invitación oral + tongue: lengua + tongue_out: sacando la lengua + uvula: úvula + + - name: Uñas + color: rgba(255, 123, 2, .4) + tags: + fingernails: uñas de los dedos + toenails: uñas de los pies + nail_polish: esmalte de uñas + toenail_polish: esmalte de uñas de los pies + black_nails: uñas negras + red_nails: uñas rojas + pink_nails: uñas rosadas + long_fingernails: uñas largas + nail: uña + multicolored_nails: uñas multicolores + nail_art: arte de uñas + brown_vest: chaleco marrón + + - name: Hombros + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: hombros descubiertos + collarbonea: clavículas + armpits: axilas + armpit_crease: pliegue de la axila + + - name: Pecho + color: rgba(255, 123, 2, .4) + tags: + chest: pecho + flat chest: pecho plano (A) + small_breasts: pechos pequeños (B) + medium breasts: pechos medianos (C) + big breasts: pechos grandes (D) + huge breasts: pechos enormes (E) + gigantic breasts: pechos gigantescos (F) + between breasts: entre los pechos + breasts apart: pechos separados + hanging breasts: pechos caídos + bouncing breasts: pechos rebotando + cleavage: escote + areola: areola + nipples: pezones + pectorals: pectorales + large_pectorals: pectorales grandes + unbuttoned clothes: ropa desabrochada + + - name: Cintura + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: cintura estrecha + slender_waist: cintura delgada + + - name: Abdomen + color: rgba(255, 123, 2, .4) + tags: + midriff: abdomen + belly: vientre + absolute_territory: tableta de chocolate + inflation: abdomen hinchado + navel: ombligo + groin: ingle + pregnant: embarazada + + - name: Alas + color: rgba(255, 123, 2, .4) + tags: + wings: alas + bat_wings: alas de murciélago + butterfly_wings: alas de mariposa + black_wings: alas negras + demon_wings: alas de demonio + asymmetrical_wings: alas asimétricas + detached_wings: alas separadas del cuerpo + fairy_wings: alas de hada + fake_wings: alas falsas + fiery_wings: alas en llamas + insect_wings: alas de insecto + large_wings: alas grandes + low_wings: alas bajas + mini_wings: alas miniatura + multicolored_wings: alas multicolores + multiple_wings: múltiples alas + no_wings: sin alas + winged_helmet: casco alado + +- name: Ropa + groups: + - name: Ropa formal + color: rgba(230, 84, 128, .4) + tags: + suit: Traje + tuxedo: Chaqué + formal_dress: Vestido formal + evening_gown: Vestido de noche + canonicals: Vestido de noche + cocktail_dress: Vestido de cóctel + gown: Vestido largo + japanese_clothes: Ropa japonesa + kimono: Kimono + sleeveless_kimono: Kimono sin mangas + short_kimono: Kimono corto + print_kimono: Kimono estampado + furisode: Furisode (parte del kimono) + obi: Obi (cinturón para kimono) + sash: Faja + cheongsam: Cheongsam + china_dress: Cheongsam + print_cheongsam: Cheongsam estampado + pelvic_curtain: Delantal frontal de cheongsam + wedding_dress: Vestido de novia + uchikake: Uchikake (vestido de novia japonés) + school_uniform: Uniforme escolar + sailor: Uniforme de marinero + serafuku: Uniforme de marinero + summer_uniform: Uniforme de verano + kindergarten_uniform: Uniforme de jardín de infantes + police_uniform: Uniforme de policía + naval_uniform: Uniforme naval + military_uniform: Uniforme militar + ss_uniform/nazi_uniform: Uniforme de las SS/Uniforme nazi + maid: Disfraz de criada + stile_uniform: Uniforme de doncella + miko: Atuendo de sacerdotisa + overalls: Overol + business_suit: Traje de negocios + nurse: Uniforme de enfermera + chef_uniform: Uniforme de chef + labcoat: Bata de laboratorio + cheerleader: Uniforme de animadora + band_uniform: Uniforme de banda + space_suit: Traje espacial + leotard: Mallas + domineering: Hábito de monja + + - name: Estilo + color: rgba(230, 84, 128, .4) + tags: + china_dress: Ropa china + chinese_style: Estilo chino + traditional_clothes: Ropa tradicional|Vestimenta étnica + japanese_clothes: Ropa japonesa + hanten_(clothes): Hanten (ropa japonesa) + hanbok: Hanbok (ropa coreana) + korean_clothes: Vestimenta coreana + western: Estilo occidental + german_clothes: Ropa alemana + gothic: Estilo gótico + lolita: Estilo lolita + gothic_lolita: Estilo gótico lolita + byzantine_fashion: Moda bizantina + Tropical: Características tropicales + indian_style: Estilo indio + Ao_Dai: Ao Dai (uniforme vietnamita) + ainu_clothes: Ropa ainu + arabian_clothes: Ropa árabe + egyptian_clothes: Ropa egipcia + costume: Disfraz + animal_costume: Disfraz de animal + bunny_costume: Disfraz de conejo + adapted_costume: Disfraz adaptado + cat_costume: Disfraz de gato + dog_costume: Disfraz de perro + bear_costume: Disfraz de oso + embellished_costume: Disfraz adornado + santa_costume: Disfraz de Santa Claus + halloween_costume: Disfraz de Halloween + kourindou_tengu_costume: Disfraz de Tengu de Kourindou + alternate_costume: Disfraz alternativo + costume_switch: Cambio de disfraz + meme_attire: Atuendo de meme + + - name: Ropa informal + color: rgba(230, 84, 128, .4) + tags: + casual: Informal + loungewear: Ropa de estar en casa + hoodie: Sudadera con capucha + homewear: Ropa de hogar + pajamas: Pijama + nightgown: Camisón + sleepwear: Ropa de dormir + babydoll: Babydoll + print_pajamas: Pijama estampado + polka_dot_pajamas: Pijama de lunares + yukata: Yukata + chinese_clothes: Ropa china (Tangzhuang) + hanfu: Hanfu + Taoist robe: Túnica taoísta + robe: Bata + robe_of_blending: Bata de mezcla + cloak: Capa + hooded_cloak: Capa con capucha + winter_clothes: Ropa de invierno + down jacket: Chaqueta de plumas + santa: Disfraz de Santa Claus + harem_outfit: Atuendo de harén + shrug_(clothing): Encogimiento de hombros (ropa) + + - name: Ropa deportiva + color: rgba(230, 84, 128, .4) + tags: + sportswear: Ropa deportiva + gym_uniform: Uniforme de gimnasio + athletic_leotard: Maillot deportivo + tennis_uniform: Uniforme de tenis + baseball_uniform: Uniforme de béisbol + letterman_jacket: Chaqueta de deportes + volleyball_uniform: Uniforme de voleibol + biker_clothes: Ropa de ciclista + bikesuit: Conjunto de ciclismo + wrestling_outfit: Atuendo de lucha libre + dougi: Dougi (uniforme de artes marciales) + + - name: Trajes de baño + color: rgba(230, 84, 128, .4) + tags: + swimsuit: Traje de baño + swimwear: Ropa de baño + wet_swimsuit: Traje de baño mojado + school_swimsuit: Traje de baño escolar (Sukumizu) + new_school_swimsuit: Nuevo traje de baño escolar + old_school_swimsuit: Viejo traje de baño escolar + competition_school_swimsuit: Traje de baño escolar de competencia + competition_swimsuit: Traje de baño de competencia + casual_one-piece_swimsuit: Traje de baño de una pieza casual + front_zipper_swimsuit: Traje de baño con cierre frontal + highleg_swimsuit: Traje de baño de pierna alta + one-piece_swimsuit: Traje de baño de una pieza + swimsuit_of_perpetual_summer: Traje de baño de verano perpetuo (ascensión de la aprendiz de maga en Fate/Grand Order) + bikini: Bikini + highleg_bikini: Bikini de cintura alta + lowleg_bikini: Bikini de cintura baja + slingshot_swimsuit: Traje de baño de tirachinas + sailor_bikini: Bikini estilo marinero + shell_bikini: Bikini de conchas + sports_bikini: Bikini deportivo + string_bikini: Bikini de cuerdas + strapless_bikini: Bikini sin tirantes + side-tie_bikini: Bikini con lazos laterales + front-tie_bikini_top: Top de bikini con lazo frontal + multi-strapped_bikini: Bikini con múltiples tiras + thong_bikini: Bikini de tanga + front-tie_bikini: Bikini con lazo frontal + frilled_bikini: Bikini con volantes + o-ring_bikini: Bikini con anillo en O + eyepatch_bikini: Bikini con parche en el ojo + layered_bikini: Bikini en capas + bow_bikini: Bikini con lazo + frilled_swimsuit: Traje de baño con volantes + polka_dot_swimsuit: Traje de baño de lunares + striped_swimsuit: Traje de baño a rayas + striped_bikini: Bikini a rayas + plaid_bikini: Bikini a cuadros + polka_dot_bikini: Bikini de lunares + print_bikini: Bikini estampado + american_flag_bikini: Bikini de la bandera estadounidense + german_flag_bikini: Bikini de la bandera alemana + impossible_swimsuit: Traje de baño con pintura corporal realista + bikini_top: Solo el top del bikini + bikini_top_only: Solo el top del bikini + bikini_top_removed: Top del bikini quitado + bikini_bottom_only: Solo la parte inferior del bikini + bikini_bottom: Parte inferior del bikini + untied_bikini: Bikini desatado + bikini_aside: Bikini apartado (tirado hacia un lado) + swimsuit_aside: Traje de baño apartado (tirado hacia un lado) + swimsuit_under_clothes: Traje de baño debajo de la ropa + torn_swimsuit: Traje de baño rasgado + bikini_skirt: Falda de bikini + swim_briefs: Bañador + swim_cap: Gorro de natación + swim_trunks: Bañador de hombre + + - name: Uniformes + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: Uniforme adaptado + anzio_military_uniform: Uniforme militar de Anzio + anzio_school_uniform: Uniforme escolar de Anzio + aria_company_uniform: Uniforme de la compañía Aria + ashford_academy_uniform: Uniforme de la Academia Ashford + bc_freedom_military_uniform: Uniforme militar de BC Freedom + chaldea_uniform: Uniforme de Chaldea + chi-hatan_military_uniform: Uniforme militar de Chi-Ha-Tan + fleur_de_lapin_uniform: Uniforme de Fleur de Lapin + garreg_mach_monastery_uniform: Uniforme del Monasterio de Garreg Mach + gem_uniform_(houseki_no_kuni): Uniforme de las Gemas (Houseki no Kuni) + hanasakigawa_school_uniform: Uniforme escolar de Hanasakigawa + hikarizaka_private_high_school_uniform: Uniforme de la Escuela Secundaria Privada Hikarizaka + homurahara_academy_uniform: Uniforme de la Academia Homurahara + kamiyama_high_school_uniform: Uniforme de la Escuela Secundaria Kamiyama + keizoku_military_uniform: Uniforme militar de Keizoku High School + kita_high_school_uniform: Uniforme de la Escuela Secundaria Kita + kiyosumi_school_uniform: Uniforme de la Escuela Secundaria Kiyosumi + luna_nova_school_uniform: Uniforme de la Escuela de Magia Luna Nova + meiji_schoolgirl_uniform: Uniforme de la chica escolar de la era Meiji + mitakihara_school_uniform: Uniforme de la Escuela Secundaria Mitakihara + nami_junior_high_school_uniform: Uniforme de la Escuela Secundaria Nami + nanairogaoka_middle_school_uniform: Uniforme de la Escuela Secundaria Nanairogaoka + nanamori_school_uniform: Uniforme de la Escuela Secundaria Nanamori + naoetsu_high_school_uniform: Uniforme de la Escuela Secundaria Naoetsu + national_shin_ooshima_school_uniform: Uniforme de la Escuela Nacional Shin Ooshima + ooarai_military_uniform: Uniforme militar de Ooarai + ooarai_school_uniform: Uniforme escolar de Ooarai + otonokizaka_school_uniform: Uniforme de la Escuela Otonokizaka + paradis_military_uniform: Uniforme militar de Paradis + polar_chaldea_uniform: Uniforme polar de Chaldea + pravda_military_uniform: Uniforme militar de Pravda + pravda_school_uniform: Uniforme escolar de Pravda + rabbit_house_uniform: Uniforme de Rabbit House + raimon_soccer_uniform: Uniforme de fútbol de Raimon + ryouou_school_uniform: Uniforme de la Escuela Ryouou + sailor_senshi_uniform: Uniforme de las Sailor Senshi + sakugawa_school_uniform: Uniforme de la Escuela Sakugawa + sakuragaoka_high_school_uniform: Uniforme de la Escuela Secundaria Sakuragaoka + saunders_military_uniform: Uniforme militar de Saunders + saunders_school_uniform: Uniforme escolar de Saunders + seishou_elementary_school_uniform: Uniforme de la Escuela Primaria Seishou + shinda_sekai_sensen_uniform: Uniforme del Frente de Batalla del Más Allá + shuuchiin_academy_uniform: Uniforme de la Academia Shuuchiin + shuujin_academy_uniform: Uniforme de la Academia Shuujin + st._gloriana's_military_uniform: Uniforme militar de St. Gloriana + st._gloriana's_school_uniform: Uniforme escolar de St. Gloriana + starlight_academy_uniform: Uniforme de la Academia Starlight + tokisadame_school_uniform: Uniforme de la Escuela Secundaria Tokisadame + tokiwadai_school_uniform: Uniforme de la Escuela Secundaria Tokiwadai + tomoeda_elementary_school_uniform: Uniforme de la Escuela Primaria Tomoeda + tsab_ground_military_uniform: Uniforme militar terrestre de TSAB + u.a._school_uniform: Uniforme escolar de la Academia U.A. + uranohoshi_school_uniform: Uniforme escolar de Uranohoshi + yasogami_school_uniform: Uniforme de la Escuela Secundaria Yasogami + mismatched_bikini: Bikini desparejado + multicolored_bikini: Bikini multicolor + + - name: Tops + color: rgba(230, 84, 128, .4) + tags: + blouse: Blusa + white_shirt: Camisa blanca + collared_shirt: Camisa con cuello + dress_shirt: Camisa de vestir + sailor_shirt: Camisa de marinero + cropped_shirt: Camisa corta + t-shirt: Camiseta + casual T-shirts: Camisetas casuales + short sleeve T-shirts: Camisetas de manga corta + off-shoulder_shirt: Camisa sin hombros + shrug_(clothing): Encogimiento de hombros (ropa) + cardigan: Cárdigan + criss-cross_halter: Top cruzado de cuello halter + frilled_shirt: Camisa con volantes + sweatshirt: Sudadera + hawaiian_shirt: Camisa hawaiana + hoodie: Sudadera con capucha + Impossible shirt: Camisa ajustada de forma ilógica + kappougi: Kappougi (delantal para cocinar) + plaid_shirt: Camisa de cuadros + polo_shirt: Polo + print_shirt: Camisa estampada + shirt: Camisa + sleeveless_hoodie: Sudadera sin mangas + sleeveless_shirt: Camisa sin mangas + striped_shirt: Camisa a rayas + tank_top: Camiseta sin mangas (de uso doméstico) + vest: Chaleco + waistcoat: Chaleco + camisole: Camisola + tied_shirt: Camisa atada + undershirt: Camiseta interior + crop_top: Top corto + highleg: Prenda de pierna alta + clothing_cutout: Recorte en la ropa + back_cutout: Recorte en la espalda de la camisa + cleavage_cutout: Recorte en el escote + navel_cutout: Recorte en el ombligo + midriff: Camiseta corta + heart_cutout: Recorte en forma de corazón + torn_clothes: Ropa rasgada + torn_shirt: Camisa rasgada + undressing: Desvistiéndose + clothes_down: Bajando la ropa + shirt_lift: Levantando la camisa + shirt_pull: Bajando la camisa + shirt_tucked_in: Camisa metida dentro + clothes_tug: Tirando de la ropa + shirt_tug: Tirando de la camisa + untucked_shirt: Camisa desabrochada + lifted_by_self: Levantándose la ropa + untied: Desatando la ropa + open_clothes: Ropa abierta + unbuttoned shirt: Camisa desabrochada + button_gap: Espacio entre botones (sin desabrochar) + partially_unbuttoned: Parcialmente desabrochado + partially_unzipped: Parcialmente desabrochado + clothes_removed: Ropa quitada + shirt_removed: Camisa quitada + wardrobe_error: Problema con la ropa + undersized_clothes: Ropa demasiado pequeña + tight: Ropa ajustada + wedgie: Cuña (debido a la ropa ajustada en la entrepierna) + wardrobe_malfunction: Problema con la ropa (por ejemplo, se rompe) + taut_shirt: Camisa tensa + taut_clothes: Ropa tensa + underbust: Debajo del busto + oversized_clothes: Ropa demasiado grande + oversized_shirt: Camisa demasiado grande + borrowed_garments: Ropa prestada (de novio) + strap_slip: Tirante de ropa deslizado (provocando un descuido) + wet_shirt: Camisa mojada + clothes_theft: Robo de ropa + + - name: Abrigo + color: rgba(230, 84, 128, .4) + tags: + blazer: Chaqueta de traje + overcoat: Abrigo + double-breasted: Chaqueta de doble botonadura + long_coat: Abrigo largo + haori: Una especie de chaqueta amplia + winter_coat: Abrigo de invierno + hooded_coat: Abrigo con capucha + fur_coat: Abrigo de piel + fur-trimmed_coat: Abrigo con ribetes de piel + duffel_coat: Abrigo de paño grueso + fishnet_top: Top de red + parka: Parka + jacket: Chaqueta + jacket_partially_removed: Chaqueta parcialmente quitada + jacket_removed: Chaqueta quitada + open_jacket: Chaqueta abierta (con piernas separadas) + cropped_jacket: Chaqueta corta + track_jacket: Chaqueta deportiva + hooded_track_jacket: Chaqueta deportiva con capucha + military_jacket: Chaqueta militar + camouflage_jacket: Chaqueta de camuflaje + leather_jacket: Chaqueta de cuero + letterman_jacket: Chaqueta estilo "Letterman" + bomber_jacket: Chaqueta de aviador + denim_jacket: Chaqueta vaquera + loating_jacket: Chaqueta informal + fur-trimmed_jacket: Chaqueta con ribetes de piel + two-tone_jacket: Chaqueta de dos tonos + trench_coat: Gabardina + furisode: Furisode (parte de un kimono) + windbreaker: Rompevientos + raincoat: Impermeable + hagoromo: Hagoromo (vestimenta de plumas) + tunic: Túnica + cape: Capa + capelet: Capa pequeña + winter_clothes: Ropa de invierno + sweater: Suéter + pullover_sweaters: Suéteres de manga larga + ribbed_sweater: Suéter de punto + sweater_vest: Chaleco de suéter + backless_sweater: Suéter sin espalda + aran_sweater: Suéter de Arán + beige_sweater: Suéter beige + brown_sweater: Suéter marrón + hooded_sweater: Suéter con capucha + off-shoulder_sweater: Suéter sin hombros + striped_sweater: Suéter a rayas + virgin_killer_sweater: Suéter "Virgin Killer" + down_jacket: Chaqueta de plumas + puffer_jacket: Chaqueta acolchada + + - name: Otros + color: rgba(230, 84, 128, .4) + tags: + transparent: Transparente + burnt_clothes: Ropa quemada + dissolving_clothes: Ropa disolviéndose + dirty_clothes: Ropa sucia + expressive_clothes: Ropa expresiva + impossible_clothes: Ropa con un grado de envoltura irreal + living_clothes: Ropa viva + leotard_under_clothes: Leotardo debajo de la ropa + multicolored_clothes: Ropa de varios colores + ofuda_on_clothes: Ofuda pegado en la ropa + wringing_clothes: Ropa escurriendo + clothesline: Tendedero de ropa + shiny_clothes: Ropa brillante + kariginu: Kariginu + front-tie_top: Prenda atada al frente + jacket_on_shoulders: Chaqueta sobre los hombros + short_jumpsuit: Mono corto + harness: Arnés + rigging: Aparejo + aiguillette: Aiguillette (cordón de hombro) + + - name: Cintura + color: rgba(230, 84, 128, .4) + tags: + apron: Delantal + waist_apron: Delantal de cintura + maid_apron: Delantal de sirvienta + bow tied at the waist: Lazo atado en la cintura + waist_cape: Capa de cintura + clothes_around_waist: Ropa alrededor de la cintura + jacket_around_waist: Chaqueta alrededor de la cintura + sweater_around_waist: Suéter alrededor de la cintura + loincloth: Taparrabos + bustier: Corsé + corset: Corsé + girdle: Faja + + - name: Armadura + color: rgba(230, 84, 128, .4) + tags: + armor: Armadura + bikini_armor: Armadura de bikini + full_armor: Armadura completa + plate_armor: Armadura de placas + japanese_armor: Armadura japonesa + kusazuri: Kusazuri (parte inferior de la armadura japonesa) + power_armor: Armadura de poder + mecha: Mecha + helmet: Casco + kabuto: Kabuto (casco japonés) + off-shoulder_armor: Armadura sin hombros + shoulder_armor: Hombrera + muneate: Muneate (protección del pecho utilizada en el kyudo japonés) + breastplate: Peto + faulds: Faldón + greaves: Grebas + shin_guards: Espinilleras + armored_boots: Botas con armadura + + - name: Falda + color: rgba(230, 84, 128, .4) + tags: + dress: Vestido + microdress: Microvestido + long_dress: Vestido largo + off-shoulder_dress: Vestido sin hombros + strapless_dress: Vestido sin tirantes + backless_dress: Vestido sin espalda + halter_dress: Vestido con tirantes alrededor del cuello + sundress: Vestido de tirantes (para días calurosos) + sleeveless_dress: Vestido sin mangas + sailor_dress: Vestido estilo marinero + summer_dress: Vestido de verano + china_dress: Ropa china + pinafore_dress: Vestido delantal + sweater_dress: Vestido de suéter + wedding_dress: Vestido de novia + armored_dress: Vestido de armadura + frilled_dress: Vestido con volantes + lace-trimmed_dress: Vestido con ribetes de encaje + collared_dress: Vestido con cuello + fur-trimmed_dress: Vestido con ribetes de piel + layered_dress: Vestido en capas + pleated_dress: Vestido plisado + taut_dress: Vestido ajustado + pencil_dress: Vestido lápiz + impossible_dress: Ropa excesivamente ajustada + multicolored_dress: Vestido de varios colores + striped_dress: Vestido a rayas + checkered_skirt: Falda a cuadros + plaid_dress: Vestido a cuadros + ribbed_dress: Vestido de punto + polka_dot_dress: Vestido de lunares + print_dress: Vestido estampado + vertical-striped_dress: Vestido a rayas verticales + see-through_dress: Vestido transparente + skirt: Falda + microskirt: Minifalda + miniskirt: Minifalda + skirt_suit: Falda de traje + bikini_skirt: Falda de bikini + pleated_skirt: Falda plisada + pencil_skirt: Falda lápiz + bubble_skirt: Falda de burbujas + tutu: Tutú + ballgown: Vestido de gala + pettiskirt: Falda de vuelo (para niños) + showgirl_skirt: Vestimenta de showgirl + Medium length skirt: Falda de longitud media + beltskirt: Falda con cinturón + denim_skirt: Falda vaquera + suspender_skirt: Falda con tirantes + skirt_set: Falda corta combinada con una parte superior + long_skirt: Falda larga + summer_long_skirt: Falda larga de verano + overskirt: Sobrefalda + hakama_skirt: Falda hakama + high-waist_skirt: Falda de cintura alta + kimono_skirt: Falda de kimono + suspender_long_skirt: Falda larga con tirantes + chiffon_skirt: Falda de gasa + frilled_skirt: Falda con volantes + fur-trimmed_skirt: Falda con ribetes de piel + lace_skirt: Falda de encaje + lace-trimmed_skirt: Falda con ribetes de encaje + ribbon-trimmed_skirt: Falda con ribetes de cinta + layered_skirt: Falda con capas + print_skirt: Falda estampada + multicolored_skirt: Falda de varios colores + striped_skirt: Falda a rayas + vertical-striped_skirt: Falda a rayas verticales + plaid_skirt: Falda a cuadros + flared_skirt: Falda acampanada + floral_skirt: Falda floral + + - name: Interacción con la falda + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: Sostener la falda con elegancia + skirt_tug: Tirar del dobladillo de la falda + dress_tug: Presionar el dobladillo del vestido + skirt_lift: Levantar la falda + skirt_around_one_leg: Falda colgando de una pierna + skirt_removed: Falda quitada + dress_removed: Vestido quitado + open_skirt: Falda abierta + + - name: Pantalones + color: rgba(230, 84, 128, .4) + tags: + dress_bow: Lazo del vestido + dressing_another: Vistiendo a otra persona + shorts_under_skirt: Shorts debajo de la falda + side_slit: Abertura lateral + shorts: Shorts + micro_shorts: Microshorts + short_shorts: Shorts cortos + hot_pants: Pantalones cortos ajustados + cutoffs: Pantalones cortos deshilachados + striped_shorts: Shorts a rayas + suspender_shorts: Shorts con tirantes + denim_shorts: Shorts vaqueros + puffy_shorts: Shorts abullonados + dolphin_shorts: Shorts estilo "delfín" + dolfin_shorts: Shorts estilo "delfín" + tight_pants: Pantalones ajustados + crotchless_pants: Pantalones sin entrepierna + track_pants: Pantalones deportivos + yoga_pants: Pantalones de yoga + bike_shorts: Pantalones cortos de ciclismo + gym_shorts: Pantalones cortos de gimnasia + pants: Pantalones + puffy_pants: Pantalones abullonados + pumpkin_pants: Pantalones estilo calabaza + hakama_pants: Pantalones hakama + harem_pants: Pantalones harén + bloomers: Pantalones bombachos + buruma: Pantalones bombachos (estilo japonés) + jeans: Vaqueros + cargo_pants: Pantalones cargo + camouflage_pants: Pantalones de camuflaje + capri_pants: Pantalones capri + chaps: Chaps (pantalones de cuero) + jumpsuit: Mono (especialmente para mujeres) + lowleg_pants: Pantalones de cintura baja + plaid_pants: Pantalones a cuadros + single_pantsleg: Una pierna de pantalones + striped_pants: Pantalones a rayas + + - name: Interacción con los pantalones + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: Pantalones asimétricos + leotard_aside: Apartar el leotardo a un lado + open_fly: Cremallera abierta de los pantalones + pants_down: Bajar los pantalones + pants_rolled_up: Pantalones enrollados + pants_tucked_in: Pantalones metidos dentro + torn_jeans: Vaqueros rotos + torn_pants: Pantalones rotos + torn_shorts: Shorts rotos + + - name: Calcetines + color: rgba(230, 84, 128, .4) + tags: + bodystocking: Medias enteras + pantyhose: Pantimedias + leggings: Mallas + legwear: Prenda de pierna (generalmente medias o calcetines largos) + thighhighs: Medias hasta el muslo + kneehighs: Calcetines hasta la rodilla + socks: Calcetines + bare_legs: Piernas desnudas + black_bodystocking: Medias enteras negras + white_bodystocking: Medias enteras blancas + stocking_under_clothes: Medias debajo de la ropa + black_pantyhose: Pantimedias negras + white_pantyhose: Pantimedias blancas + thighband_pantyhose: Pantimedias con banda para el muslo + pantylines: Pantimedias ajustadas (marcando líneas) + single_leg_pantyhose: Pantimedias en una sola pierna + panties_under_pantyhose: Bragas debajo de las pantimedias + fishnets: Medias de red + stirrup_legwear: Medias con correa para el pie + toeless_legwear: Medias sin dedos + mismatched_legwear: Medias de diferentes colores + two-tone_legwear: Medias de dos colores + asymmetrical_legwear: Medias asimétricas + uneven_legwear: Medias de diferentes longitudes + white_thighhighs: Medias hasta el muslo blancas + black_thighhighs: Medias hasta el muslo negras + pink_thighhighs: Medias hasta el muslo rosas + suspenders: Ligas + garter_straps: Ligas para medias + torn_legwear: Medias rotas + torn_thighhighs: Medias hasta el muslo rotas + see-through_legwear_: Medias transparentes + frilled_legwear: Medias con volantes + lace-trimmed_legwear: Medias con ribetes de encaje + seamed_legwear: Medias con costura + back-seamed_legwear: Medias con costura trasera + animal_ear_legwear: Medias hasta el muslo con orejas de animal + striped_legwear: Medias a rayas + vertical-striped_legwear: Medias a rayas verticales + polka_dot_legwear: Medias de lunares + print_legwear: Medias estampadas + legwear_under_shorts: Medias debajo de los shorts + over-kneehighs: Medias por encima de la rodilla + bobby_socks: Calcetines bajos (blancos) + tabi: Tabi (calcetines japoneses con separación para el dedo gordo) + loose_socks: Calcetines holgados + ankle_socks: Calcetines tobilleros + leg_warmers: Polainas + single_sock: Calcetín individual + striped_socks: Calcetines a rayas + + - name: Interacción con los calcetines + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: Calcetines con abertura + thighhighs_under_boots: Medias hasta el muslo debajo de las botas + adjusting_legwear: Ajustando las medias + pantyhose_pull: Bajar las pantimedias + socks_removed: Retirar los calcetines + sock_pull: Tirar del calcetín + thighhighs_pull: Tirar de las medias hasta el muslo + + - name: Otros + color: rgba(230, 84, 128, .4) + tags: + garters: Ligas + leg_garter: Liguero + garter_straps: Ligas para medias + thigh_strap: Correa para el muslo + thigh_ribbon: Cinta para el muslo + leg_ribbon: Cinta para la pierna + bandaid_on_leg: Curita en la pierna + bandaged_leg: Pierna vendada + ankle_lace-up: Atadura en el tobillo + thigh_holster: Funda de muslo + bandaid_on_knee: Curita en la rodilla + argyle_legwear: Medias con patrón de rombos + bow_legwear: Medias con lazo + arm_garter: liga de brazo + + - name: Textura + color: rgba(230, 84, 128, .4) + tags: + armored: Blindado + canvas: De lienzo + denim: Mezclilla + fluffy: Esponjoso + fur: Piel de animal + latex: Látex + leather: De cuero + see-through: Transparente + spandex: Elástico + tight: Ajustado + + - name: Decoración + color: rgba(230, 84, 128, .4) + tags: + frilled: Con volantes + center_frills: Con volantes en el centro + crease: Arrugado + layered: Capas + lace: Encaje + fur_trim: Borde de piel + fur-trimmed: Con borde de piel + fine_fabric_emphasis: Énfasis en la tela fina + latex_thighhighs: Medias largas de látex + see-through_thighhighs: Medias largas transparentes + ass_cutout: Prenda con recorte trasero + asymmetrical_clothes: Ropa asimétrica + back_bow: Lazo en la espalda + costume_switch: Cambio de disfraz + cross-laced_clothes: Ropa cruzada con encaje + double_vertical_stripe: Prenda con dos rayas verticales paralelas + halter_top: Top de tirantes + multicolored_legwear: Prenda para las piernas de varios colores + navy_blue_legwear: Prenda para las piernas de color azul marino + nontraditional_miko: Atuendo miko no tradicional + side_cutout: Prenda con abertura lateral + side_slit: Prenda con abertura lateral + sideless_outfit: Prenda sin laterales + single_kneehigh: Medias por encima de la rodilla en un solo lado + single_vertical_stripe: Prenda con una raya vertical expuesta + turtleneck: Cuello alto + two-sided_fabric: Prenda con tela de dos capas + o-ring: Prenda con anillo en forma de O + o-ring_top: Top con anillo en forma de O + fringe_trim: Borde de flecos + loose_belt: Cinturón suelto + pom_pom_(clothes): Borla (adorno de ropa) + drawstring: Cordón ajustable + full-length_zipper: Cremallera completa + gathers: Pliegues + gusset: Refuerzo + breast_pocket: Bolsillo en el pecho + + - name: Patrón + color: rgba(230, 84, 128, .4) + tags: + argyle: Rombo + checkered: Cuadros + colored_stripes: Rayas de colores + diagonal_stripes: Rayas diagonales + horizontal_stripes: Rayas horizontales + multicolored_stripes: Rayas multicolores + polka_dot_: Lunares + ribbed: Acanalado + striped: A rayas + unmoving_pattern: Patrón inmóvil + vertical_stripes: Rayas verticales + plaid: Tartán + animal_print: Estampado de animales + cat_print: Estampado de gato + bear_print: Estampado de oso + bird_print: Estampado de pájaro + bunny_print: Estampado de conejo + cow_print: Estampado de vaca + dragon_print: Estampado de dragón + fish_print: Estampado de pez + frog_print: Estampado de rana + shark_print: Estampado de tiburón + snake_print: Estampado de serpiente + zebra_print: Estampado de cebra + tiger_print: Estampado de tigre + leopard_print: Estampado de leopardo + jaguar_print: Estampado de jaguar + bat_print: Estampado de murciélago + aardwolf_print: Estampado de aardwolf + african_wild_dog_print: Estampado de perro salvaje africano + cheetah_print: Estampado de guepardo + dog_print: Estampado de perro + fox_print: Estampado de zorro + giraffe_print: Estampado de jirafa + panda_print: Estampado de panda + sand_cat_print: Estampado de gato del desierto + whale_print: Estampado de ballena + white_tiger_print: Estampado de tigre blanco + goldfish_print: Estampado de pez dorado + wing_print: Estampado de alas + spider_web_print: Estampado de tela de araña + butterfly_print: Estampado de mariposa + floral_print: Estampado floral + leaf_print: Estampado de hojas + clover_print: Estampado de trébol + maple_leaf_print: Estampado de hoja de arce + rose_print: Estampado de rosa + strawberry_print: Estampado de fresa + cherry_print: Estampado de cereza + bamboo_print: Estampado de bambú + carrot_print: Estampado de zanahoria + hibiscus_print: Estampado de hibisco + jack-o'-lantern_print: Estampado de calabaza + petal_print: Estampado de pétalos + sunflower_print: Estampado de girasol + watermelon_print: Estampado de sandía + sky_print: Estampado de cielo + cloud_print: Estampado de nube + lightning_bolt_print: Estampado de rayo + rainbow_print: Estampado de arcoíris + snowflake_print: Estampado de copo de nieve + starry_sky_print: Estampado de cielo estrellado + crescent_print: Estampado de luna creciente + star_print: Estampado de estrella + star_(symbol): Símbolo de estrella + moon_print: Estampado de luna + sun_print: Estampado de sol + character_print: Estampado de caracteres + clothes_writing_: Escritura en la ropa + anchor_print: Estampado de ancla + cherry_blossom_print: Estampado de flores de cerezo + musical_note_print: Estampado de nota musical + triangle_print: Estampado de triángulo + arrow_print: Estampado de flecha + wave_print: Estampado de onda + peace_symbol: Símbolo de paz (como el de Josuke Higashikata) + heart_print: Estampado de corazón + flame_print: Estampado de llamas + hitodama_print: Estampado de hitodama + paw_print: Estampado de huella de pata + skeleton_print: Estampado de esqueleto + skull_print: Estampado de calavera + sparkle_print: Estampado de destellos + yin_yang_print: Estampado de yin y yang + cross_print: Estampado de cruz + camoflage: Camuflaje + flag_print: Estampado de bandera + bone_print: Estampado de hueso + ghost_print: Estampado de fantasma + mushroom_print: Estampado de seta + onigiri_print: Estampado de onigiri + cat_ear: Orejas de gato + cat_ear_cutout: Recorte en forma de orejas de gato + + - name: Zapatos + color: rgba(230, 84, 128, .4) + tags: + barefoot: Descalzo/a + no_shoes: Sin zapatos + shoes_removed: Zapatos quitados + single_shoe: Zapato individual + the_only_shoe: El único zapato + black_loafers: Mocasines negros + shoes: Zapatos deportivos + uwabaki: Zapatillas de interior + platform_footwear: Calzado de plataforma + high_heels: Tacones altos + stiletto_heels: Tacones de aguja + strappy_heels: Tacones con tiras + platform_heels_: Tacones de plataforma + rudder_footwear: Calzado de timón (para personajes de barco) + sandals: Sandalias + barefoot_sandals: Sandalias descalzas + clog_sandals: Zuecos con sandalias + geta: Geta (zapato japonés) + slippers: Pantuflas + skates: Patines + roller_skates: Patines de ruedas + animal_feet: Patas de animal + animal_slippers: Pantuflas de animal + anklet: Tobillera + shackles: Grilletes + brown_footwear: Calzado marrón + cross-laced_footwear: Calzado con cordones cruzados + loafers: Mocasines + mary_janes: Merceditas + mismatched_footwear: Zapatos de diferentes colores + pointy_footwear: Calzado puntiagudo + pumps: Zapatos de tacón bajo + sandals_removed: Sandalias quitadas + shoe_soles: Suelas de zapatos + shoelaces: Cordones de zapatos + sneakers: Zapatillas deportivas + winged_footwear: Calzado con alas + zouri: Zouri (zapato japonés) + + - name: Botas + color: rgba(230, 84, 128, .4) + tags: + boots: Botas + boots_removed: Botas quitadas + thigh_boots: Botas hasta el muslo + knee_boots: Botas hasta la rodilla + cross-laced_footwear: Calzado con cordones cruzados + ankle_boots: Botines + high_heel_boots: Botas de tacón alto + toeless_boots: Botas sin puntera + lace-up_boots: Botas con cordones + fur-trimmed_boots: Botas con borde de piel + snow_boots: Botas de nieve + anklet: Tobillera + rubber_boots: Botas de goma + santa_boots: Botas de Papá Noel + leather_boots: Botas de cuero + thighhighs_under_boots: Medias largas debajo de las botas + combat_boots: Botas de combate + doc_martens: Botas Dr. Martens + rain_boots: Botas de lluvia + belt_boots: Botas con cinturón + fur_boots: Botas de piel cortas y casuales + single_boot: Bota individual + + - name: Suelas de zapatos + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: Suelas de zapatos + arched_soles: Suelas arqueadas + paw_print_soles: Suelas con huellas de pata + horseshoe: Herradura + + - name: Cuello + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: Cuello marinero + fur_collar: Cuello de piel + frilled_collar: Cuello con volantes + popped_collar: Cuello levantado + choker: Gargantilla + black_choker: Gargantilla negra + belt_collar: Collar con cinturón + frilled_choker: Gargantilla con volantes + neckerchief: Pañuelo al cuello + red_neckerchief: Pañuelo rojo al cuello + necktie: Corbata + short_necktie: Corbata corta + white_necktie: Corbata blanca + bowtie: Pajarita + headphones_around_neck: Auriculares alrededor del cuello + goggles_around_neck: Gafas alrededor del cuello + neck_bell: Campanilla al cuello + neck_ruff: Collarín + v-neck: Escote en V + towel_around_neck: Toalla alrededor del cuello + loose_necktie: Corbata suelta + neck_tattoo: Tatuaje en el cuello + ascot: Ascot + ribbon_choker: Gargantilla de lazo + maebari/pasties: Maebari (adhesivo para pezones) + latex: Látex + torn_clothes: Ropa rasgada + iron_cross: Cruz de hierro + chinese_knot: Nudo chino + cross_necklace: Collar de cruz + bead_necklace: Collar de cuentas + pearl_necklace: Collar de perlas + heart_necklace: Collar de corazón + carrot_necklace: Collar de zanahoria + chain_necklace: Collar de cadena + magatama_necklace: Collar de magatama + tooth_necklace: Collar de diente + key_necklace: Collar de llave + anchor_necklace: Collar de ancla + skull_necklace: Collar de calavera + shell_necklace: Collar de concha + gold_necklace: Collar de oro + crescent_necklace: Collar de luna creciente + ring_necklace: Collar de anillo + feather_necklace: Collar de pluma + bone_necklace: Collar de hueso + ankh_necklace: Collar de Ankh + multiple_necklaces: Múltiples collares + bullet_necklace: Collar de bala + holding_necklace: Sosteniendo un collar + necklace_removed: Collar quitado + brown_neckwear: Adorno marrón para el cuello + checkered_neckwear: Adorno a cuadros para el cuello + diagonal-striped_neckwear: Adorno con rayas diagonales para el cuello + halterneck: Top de cuello halter + mole_on_neck: Lunar en el cuello + neck: Cuello + neck_ribbon: Cinta al cuello + neck_ring: Anillo al cuello + necklace: Collar + plaid_neckwear: Adorno a cuadros para el cuello + plunging_neckline: Escote pronunciado + print_neckwear: Adorno estampado para el cuello + sleeveless_turtleneck: Suéter sin mangas de cuello alto + star_necklace: Collar de estrella + striped_neckwear: Adorno a rayas para el cuello + turtleneck_sweater: Suéter de cuello alto + undone_necktie: Corbata deshecha + whistle_around_neck: Silbato alrededor del cuello + + - name: Bufanda + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: Bufanda de cuadros + striped_scarf: Bufanda a rayas + print_scarf: Bufanda estampada + vertical-striped_scarf: Bufanda de rayas verticales + polka_dot_scarf: Bufanda de lunares + argyle_scarf: Bufanda de rombos + beige_scarf: Bufanda beige + scarf_bow: Lazo de bufanda + fur_scarf: Bufanda de piel + naked_scarf: Bufanda sin envolver + multicolored_scarf: Bufanda multicolor + floating_scarf: Bufanda flotante + long_scarf: Bufanda larga + arm_scarf: Bufanda de brazo + scarf_on_head: Bufanda en la cabeza + scarf_over_mouth: Bufanda sobre la boca + scarf_removed: Bufanda quitada + adjusting_scarf: Ajustando la bufanda + holding_scarf: Sosteniendo la bufanda + scarf_pull: Tirando de la bufanda + brown_scarf: Bufanda marrón + scarf: Bufanda + + - name: Gafas + color: rgba(230, 84, 128, .4) + tags: + glasses: Gafas + eyewear: Gafas + monocle: Monóculo + under-rim_eyewear: Gafas de montura inferior + rimless_eyewear: Gafas sin montura + semi-rimless_eyewear: Gafas semisinfondo + red-framed_eyewear: Gafas con montura roja + round_eyewear: Gafas redondas + black-framed_eyewear: Gafas con montura negra + tinted_eyewear: Gafas tintadas + medical_eyepatch: Parche ocular médico + bandage_over_one_eye: Venda sobre un ojo + crooked_eyewear: Gafas torcidas + eyewear_removed: Gafas quitadas + sunglasses: Gafas de sol + goggles: Gafas protectoras + Blindfold: Antifaz + eyepatch: Parche ocular + visor: Visera + bespectacled: Con gafas + blue-framed_eyewear: Gafas con montura azul + brown-framed_eyewear: Gafas con montura marrón + coke-bottle_glasses: Gafas con lentes gruesos como botellas de Coca-Cola + no_eyewear: Sin gafas + opaque_glasses: Gafas opacas + over-rim_eyewear: Gafas de montura superior + + - name: Máscara + color: rgba(230, 84, 128, .4) + tags: + mask: Máscara + half_mask: Media máscara + masked: Con máscara + mask_lift: Levantando la máscara + mask_on_head: Máscara en la cabeza + mask_removed: Máscara quitada + mouth_mask: Mascarilla + surgical_mask: Mascarilla quirúrgica + plague_doctor_mask: Máscara de médico de la peste + gas_mask: Máscara de gas + visor: Visor + helmet: Casco + fox_mask: Máscara de zorro + diving_mask: Máscara de buceo + diving_mask_on_head: Máscara de buceo en la cabeza + oni_mask: Máscara de oni + tengu_mask: Máscara de tengu + ninja_mask: Máscara de ninja + skull_mask: Máscara de calavera + hockey_mask: Máscara de hockey + bird_mask: Máscara de pájaro + stone_mask: Máscara de piedra + horse_mask: Máscara de caballo + masquerade_mask: Máscara de carnaval + domino_mask: Máscara de dominó + + - name: Brazo + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: Mangas largas + short_sleeves: Mangas cortas + wide_sleeves: Mangas anchas + furisode: Furisode (tipo de kimono) + detached_sleeves: Mangas separadas + single_sleeve: Manga única + sleeveless: Sin mangas + asymmetrical_sleeves: Mangas asimétricas + puffy_sleeves: Mangas abullonadas + puffy_long_sleeves: Mangas largas abullonadas + puffy_short_sleeves: Mangas cortas abullonadas + frilled_sleeves: Mangas con volantes + juliet_sleeves: Mangas estilo Julieta + bandaged_arm: Brazo vendado + raglan_sleeves: Mangas raglán + vambraces: Brazales + layered_sleeves: Mangas superpuestas + fur-trimmed_sleeves: Mangas con ribete de piel + see-through_sleeves: Mangas transparentes + torn_sleeves: Mangas rasgadas + sleeves_past_fingers: Mangas que llegan hasta los dedos + sleeves_past_wrists: Mangas que llegan hasta las muñecas + sleeves_past_elbows: Mangas que llegan hasta los codos + sleeves_pushed_up: Mangas remangadas + arm_out_of_sleeve: Brazo fuera de la manga + uneven_sleeves: Mangas desiguales + mismatched_sleeves: Mangas desparejadas + sleeve_rolled_up: Manga enrollada + sleeves_rolled_up: Mangas enrolladas + feather-trimmed_sleeves: Mangas con plumas + hands_in_opposite_sleeves: Manos en mangas opuestas + lace-trimmed_sleeves: Mangas con encaje + pinching_sleeves: Mangas pellizcadas + puffy_detached_sleeves: Mangas abullonadas separadas + ribbed_sleeves: Mangas acanaladas + single_detached_sleeve: Manga separada individual + sleeves_folded_up: Mangas dobladas + striped_sleeves: Mangas a rayas + wrist_cuffs: Puños de muñeca + armband: Brazalete + armlet: Brazalete + + - name: Mano + color: rgba(230, 84, 128, .4) + tags: + bandage: Vendaje + leash: Correa + arm_tattoo: Tatuaje en el brazo + number_tattoo: Tatuaje numérico + bead_bracelet: Pulsera de cuentas + bracelet: Pulsera + flower_bracelet: Pulsera de flores + spiked_bracelet: Pulsera con pinchos + wrist_cuffs: Puños de muñeca + wristband: Brazalete de muñeca + bracer: Brazal + cuffs: Puños + bound_wrists: Muñecas atadas + wrist_scrunchie: Coletero de muñeca + handcuffs: Esposas + shackles: Grilletes + chains: Cadenas + chain_leash: Cadena con correa + + - name: Guantes + color: rgba(230, 84, 128, .4) + tags: + gloves: Guantes + gloves_removed: Guantes quitados + no_gloves: Sin guantes + single_glove: Guante individual + single_elbow_glove: Guante individual hasta el codo + long_gloves: Guantes largos + elbow_gloves: Guantes hasta el codo + bridal_gauntlets: Guantes de novia + half_gloves: Medio guante + fingerless_gloves: Guantes sin dedos + partially_fingerless_gloves: Guantes parcialmente sin dedos + paw_gloves: Guantes de garra + mittens: Manoplas + baseball_mitt: Guante de béisbol + fur-trimmed_gloves: Guantes con ribete de piel + latex_gloves: Guantes de látex + lace-trimmed_gloves: Guantes con encaje + leather_gloves: Guantes de cuero + frilled_gloves: Guantes con volantes + mismatched_gloves: Guantes desparejados + multicolored_gloves: Guantes multicolores + asymmetrical_gloves: Guantes asimétricos + brown_gloves: Guantes marrones + oven_mitts: Guantes de cocina + print_gloves: Guantes estampados + striped_gloves: Guantes a rayas + torn_gloves: Guantes rasgados + + - name: Pendientes + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: Pendientes de cruz + crystal_earrings: Pendientes de cristal + earrings: Pendientes + flower_earrings: Pendientes de flores + heart_earrings: Pendientes de corazón + hoop_earrings: Pendientes de aro + multiple_earrings: Pendientes múltiples + pill_earrings: Pendientes de pastilla + single_earring: Pendiente individual + skull_earrings: Pendientes de calavera + star_earrings: Pendientes de estrella + + - name: Accesorio para la cabeza + color: rgba(230, 84, 128, .4) + tags: + halo: Halo + mechanical_halo: Halo mecánico + headwear: Accesorio para la cabeza + headpiece: Adorno para la cabeza + headwear_removed: Accesorio para la cabeza quitado + head_wreath: Corona de flores en la cabeza + crown: Corona + mini_crown: Mini corona + tiara: Tiara + diadem: Diadema + tilted_headwear: Accesorio para la cabeza inclinado + head_fins: Aletas en la cabeza + maid_headdress: Adorno de cabeza de criada + bridal_veil: Velo de novia + headband: Diadema + helmet: Casco + alternate_headwear: Accesorio para la cabeza alternativo + fur-trimmed_headwear: Accesorio para la cabeza con ribete de piel + goggles_on_headwear: Gafas en el accesorio para la cabeza + earphones: Auriculares + earmuffs: Orejeras + ears_through_headwear: Orejas a través del accesorio para la cabeza + xx_on_head: XX en la cabeza + leaf_on_head: Hoja en la cabeza + topknot: Moño alto + suigintou: Suigintou (personaje de Rozen Maiden) + triangular_headpiece: Adorno para la cabeza triangular + forehead_protector: Protector de frente + radio_antenna: Antena de radio + animal_hood: Capucha de animal + arrow_(symbol): Flecha + axe: Hacha + bald: Calvo + bandana: Bandana + bob_cut: Corte bob + bone: Hueso + bowl_cut: Corte tazón + circlet: Diadema + double_bun: Doble moño + double_dildo: Doble consolador + drill: Taladro + faucet: Grifo + hachimaki: Hachimaki (banda de la frente) + hair_behind_ear: Pelo detrás de la oreja + hair_bell: Campana en el pelo + hair_bun: Moño + hair_down: Pelo suelto + hair_flaps: Mechones de pelo en movimiento + hair_flip: Sacudida de pelo + hair_flower: Flor en el pelo + hair_spread_out: Pelo desplegado + hair_up: Pelo recogido + helm: Con casco + helmet_removed: Casco quitado + horned_helmet: Casco con cuernos + japari_bun: Moño de japari (personaje de Kemono Friends) + kerchief: Pañuelo + mami_mogu_mogu: Mami Mogu Mogu (personaje de Hololive) + mob_cap: Gorro de dormir + one_side_up: Pelo recogido de un lado + owl: Búho + pier: Muelle + pillow: Almohada + raised_fist: Puño levantado + skull_and_crossbones: Calavera y huesos cruzados + stone: Piedra + turban: Turbante + twin_drills: Doble coleta + updo: Recogido + wet_hair: Pelo mojado + headdress: Adorno para la cabeza + adjusting_headwear: Ajustando el accesorio para la cabeza + bear_hair_ornament: Adorno de pelo con forma de oso + brown_headwear: Accesorio para la cabeza marrón + horned_headwear: Accesorio para la cabeza con cuernos + horns_through_headwear: Cuernos a través del accesorio para la cabeza + no_headwear: Sin accesorio para la cabeza + object_on_head: Objeto en la cabeza + print_headwear: Accesorio para la cabeza estampado + bone_hair_ornament: Adorno de pelo en forma de hueso + bunny_hair_ornament: Adorno de pelo con forma de conejo + horn_ornament: Adorno en el cuerno + animal_on_head: Animal en la cabeza + behind-the-head_headphones: Auriculares detrás de la cabeza + bird_on_head: Pájaro en la cabeza + cat_ear_headphones: Auriculares con orejas de gato + cat_on_head: Gato en la cabeza + eyewear_on_head: Gafas en la cabeza + forehead: Frente + forehead_jewel: Joya en la frente + forehead_kiss: Beso en la frente + forehead_mark: Marca en la frente + forehead-to-forehead: Frente con frente + goggles_on_head: Gafas en la cabeza + head: Cabeza + head_bump: Golpe en la cabeza + head_down: Cabeza hacia abajo + head_mounted_display: Pantalla montada en la cabeza + head_out_of_frame: Cabeza fuera del encuadre + head_rest: Descanso de cabeza + head_tilt: Cabeza inclinada + head_wings: Alas en la cabeza + headgear: Accesorio para la cabeza (con elementos de ciencia ficción) + headphones: Auriculares + heads-up_display: Pantalla de visualización frontal + headset: Auriculares con diadema + inter_headset: Conector neural EVA + on_head: En la cabeza + person_on_head: Persona en la cabeza + single_head_wing: Ala individual en la cabeza + + - name: Sombrero + color: rgba(230, 84, 128, .4) + tags: + hat: Sombrero + no_hat: Sin sombrero + large_hat: Sombrero grande + mini_hat: Mini sombrero + witch_hat: Sombrero de bruja + mini_witch_hat: Mini sombrero de bruja + wizard_hat: Sombrero de mago + party_hat: Sombrero de fiesta + jester_cap: Gorro de bufón + tokin_hat: Sombrero de gala + top_hat: Sombrero de copa + mini_top_hat: Mini sombrero de copa + bowler_hat: Sombrero bombín + pillbox_hat: Sombrero de pastillero + cloche_hat: Sombrero cloche + side_cap: Gorra lateral + military_hat: Gorra militar + beret: Boina + garrison_cap: Gorra de guarnición + police_hat: Gorra de policía + nurse_cap: Gorro de enfermera + chef_hat: Gorro de chef + school_hat: Gorro escolar + pirate_hat: Sombrero de pirata + cabbie_hat: Gorra de taxista + bucket_hat: Sombrero de pescador + hardhat: Casco de seguridad + straw_hat: Sombrero de paja + sun_hat: Sombrero de sol + rice_hat: Sombrero de arroz + animal_hat: Sombrero de animal + fur_hat: Sombrero de piel + hat_with_ears: Sombrero con orejas + bobblehat: Gorro de pompón + pillow_hat: Sombrero de almohada + pumpkin_hat: Sombrero de calabaza + baseball_cap: Gorra de béisbol + flat_cap: Gorra plana + torn_hat: Sombrero rasgado + mob_cap: Gorro de plebeyo + newsboy_cap: Gorra de repartidor de periódicos + bowknot_over_white_beret: Moño sobre boina blanca + backwards_hat: Sombrero al revés + bowl_hat: Sombrero en forma de cuenco + cat_hat: Sombrero de orejas de gato + chat_log: Estilo de caja de chat + cowboy_hat: Sombrero de vaquero + dixie_cup_hat: Sombrero de taza desechable + hat_bow: Sombrero con moño + hat_feather: Sombrero con pluma + hat_flower: Sombrero con flor + hat_ornament: Sombrero con adorno + hat_over_one_eye: Sombrero sobre un ojo + hat_removed: Sombrero quitado + hat_ribbon: Sombrero con cinta + hat_tip: Sombrero con ala doblada + hatching_(texture): Textura de rayado + hatsune_miku_(cosplay): Cosplay de Hatsune Miku + is_that_so: ¿Es así? + porkpie_hat: Sombrero pork pie + sailor_hat: Gorro de marinero + santa_hat: Gorro de Santa Claus + sideways_hat: Sombrero inclinado + what: El autor se volvió loco + what_if: ¿Y si...? (otra línea de tiempo) + + - name: Adorno para el cabello + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: Cinta para el cabello + hairband: Banda para el cabello + hair_tie: Lazo para el cabello + lolita_hairband: Banda para el cabello Lolita + frilled_hairband: Banda para el cabello con volantes + lace-trimmed_hairband: Banda para el cabello con encaje + hair_bobbles: Elásticos para el cabello + hair_ornament: Adorno para el cabello + hair_flower: Flor para el cabello + x_hair_ornament: Adorno para el cabello en forma de X + hair_bow: Moño para el cabello + frog_hair_ornament: Adorno para el cabello de rana + heart_hair_ornament: Adorno para el cabello en forma de corazón + butterfly_hair_ornament: Adorno para el cabello en forma de mariposa + star_hair_ornament: Adorno para el cabello en forma de estrella + food-themed_hair_ornament: Adorno para el cabello con temática de comida + anchor_hair_ornament: Adorno para el cabello en forma de ancla + bat_hair_ornament: Adorno para el cabello en forma de murciélago + carrot_hair_ornament: Adorno para el cabello en forma de zanahoria + cat_hair_ornament: Adorno para el cabello con forma de gato + clover_hair_ornament: Adorno para el cabello en forma de trébol + crescent_hair_ornament: Adorno para el cabello en forma de media luna + cross_hair_ornament: Adorno para el cabello en forma de cruz + d-pad_hair_ornament: Adorno para el cabello en forma de cruceta + fish_hair_ornament: Adorno para el cabello en forma de pez + hairpods: Adornos para el cabello en forma de auriculares inalámbricos + leaf_hair_ornament: Adorno para el cabello en forma de hoja + musical_note_hair_ornament: Adorno para el cabello en forma de nota musical + pumpkin_hair_ornament: Adorno para el cabello en forma de calabaza + skull_hair_ornament: Adorno para el cabello en forma de calavera + snake_hair_ornament: Adorno para el cabello en forma de serpiente + snowflake_hair_ornament: Adorno para el cabello en forma de copo de nieve + strawberry_hair_ornament: Adorno para el cabello en forma de fresa + sunflower_hair_ornament: Adorno para el cabello en forma de girasol + hairpin: Horquilla para el cabello + hairclip: Clip para el cabello + hair_tubes: Tubos para el cabello + hair_stick: Palo para el cabello + hair_bun: Moño para el cabello + single_hair_bun: Moño individual para el cabello + hair_bell: Campana para el cabello + hair_rings: Anillos para el cabello + + - name: Pequeños adornos + color: rgba(230, 84, 128, .4) + tags: + ring: Anillo + wedding_band: Alianza de boda + earrings: Pendientes + single_earring: Pendiente individual + stud_earrings: Pendientes de botón + necklace: Collar + jewelry: Joyería + crystal: Cristal + brooch: Broche + gem: Gema + chest_jewel: Joya para el pecho + forehead_jewel: Joya para la frente + tassel: Borla + belly_chain_: Cadena para el vientre + lace: Encaje + ribbon: Cinta + stitches: Puntadas + scarf: Bufanda + bandaid: Curita + collar: Collar + belt: Cinturón + steam: Vapor + bell: Campana + amulet: Amuleto + emblem: Emblema + flag_print: Estampado de bandera + anchor_symbol: Símbolo de ancla + cross: Cruz + diffraction_spikes: Puntos de difracción + iron_cross: Cruz de hierro + latin_cross: Cruz latina + lace-trimmed_hairband: Banda para el cabello con encaje + ankle_lace-up: Atadura de encaje para el tobillo + st._gloriana's_(emblem): Emblema de St. Gloriana + heart_lock_(kantai_collection): Candado en forma de corazón (Colección Kantai) + garters: Ligas + thigh_strap: Correa para el muslo + thigh_ribbon: Cinta para el muslo + leg_garter: Liguero + garter_straps: Correas de liguero para medias + leg_ribbon: Cinta para la pierna + bandaid_on_leg: Curita en la pierna + bandaged_leg: Pierna vendada + arm_garter: Liga para el brazo + joints: Articulaciones + kneepits: Hoyuelos de las rodillas + knee_pads: Rodilleras + thigh_holster: Funda para el muslo + bandaid_on_knee: Curita en la rodilla + + - name: Joyas + color: rgba(230, 84, 128, .4) + tags: + bracelet: Pulsera + choker: Gargantilla + metal collar: Collar de metal + ring: Anillo + wristband: Pulsera + pendant: Colgante + brooch: Broche + hoop earrings: Pendientes de aro + bangle: Brazalete + stud earrings: Pendientes de botón + sunburst: Joya en forma de sol + pearl bracelet: Pulsera de perlas + drop earrings: Pendientes colgantes + puppet rings: Anillos de marioneta + corsage: Ramillete + sapphire brooch: Broche de zafiro + jewelry: Joyería + necklace: Collar + +- name: Acciones de expresión + groups: + - name: Sonreír + color: rgba(241, 229, 140, .4) + tags: + smile: Sonrisa + laughing: Risa + kind_smile: Sonrisa amable + :d: Risueño_:D😀 + ;d: Guiño sonriente_:D + grin: Sonrisa amplia + teasing_smile: Sonrisa burlona + seductive_smile: Sonrisa seductora + smirk: Sonrisa socarrona + giggling: Risitas + smug: Satisfecho + naughty_face: Rostro travieso + evil smile: Sonrisa malévola + crazy_smile: Sonrisa loca + happy: Feliz + happy_birthday: Feliz cumpleaños + happy_halloween: Feliz Halloween + happy_new_year: Feliz Año Nuevo + happy_tears: Lágrimas de felicidad + happy_valentine: Feliz Día de San Valentín + + - name: Llorar + color: rgba(241, 229, 140, .4) + tags: + sad: Triste + tear: Llorar + crying: Llorando + crying_with_eyes_open: Llorar con los ojos abiertos + streaming_tears: Lágrimas corriendo + teardrop: Lágrima + tearing_clothes: Rasgar la ropa + tearing_up: A punto de llorar + tears: Lágrimas + wiping_tears: Limpiando lágrimas + badmood: Mal humor + + - name: Infeliz + color: rgba(241, 229, 140, .4) + tags: + frustrated: Frustrado + frustrated_brow: Ceño fruncido de frustración + annoyed: Molesto + anguish: Angustia + sigh: Suspiro + gloom: Tristeza + disappointed: Decepcionado + despair: Desesperación + + - name: Desprecio + color: rgba(241, 229, 140, .4) + tags: + disgust: Asco (mirada de basura) + disdain: Desdén + contempt: Desprecio + shaded_face: Rostro sombreado (con desprecio) + jitome: Mirada de desprecio + frown: Ceño fruncido + wince: Fruncir el ceño (antes del coito) + furrowed_brow: Ceño fruncido + fear_kubrick: Mirada de miedo de Kubrick + laughing: Riendo + + - name: Enojado + color: rgba(241, 229, 140, .4) + tags: + angry: Enojado + glaring: Mirada enfurecida + serious: Serio (similar a enojado) + kubrick_stare: Mirada de Kubrick + evil: Malvado + sulking: De mal humor + screaming: Gritando + shouting: Gritando + + - name: Otras expresiones + color: rgba(241, 229, 140, .4) + tags: + expressionless: Sin expresión + sleepy: Somnoliento + drunk: Ebrio + bored: Aburrido + confused: Confundido + thinking: Pensando + lonely: Solitario + light_blush: Rubor ligero + blush: Ruborizado + shy: Tímido + embarrass: Avergonzado + facepalm: Golpe en la cara + flustered: Nervioso + sweat: Sudor + scared: Asustado + ahegao: Ahegao + endured_face: Rostro de aguante + restrained: Restringido + dark_persona: Persona oscura + crazy: Loco + exhausted: Agotado + Tsundere: Tsundere + yandere: Yandere + multiple_persona: Personalidad múltiple + Jekyll_and_Hyde: Dr. Jekyll y Mr. Hyde + twitching: Contracción + spasm: Espasmo + trembling: Temblor + rape_face: Rostro de violación + rolling_eyes: Rodar los ojos + envy: Envidia + female_orgasm: Orgasmo femenino + heavy_breathing: Respiración pesada + naughty: Travieso + expressions: Expresiones faciales diferenciadas (aproximadamente) + moaning: Gemidos + scowl: Mirada de desprecio + + - name: Acciones básicas + color: rgba(241, 229, 140, .4) + tags: + standing: Parado + on back: Acostado boca arriba + on stomach: Acostado boca abajo + kneeling: De rodillas + on_side: De costado + on_stomach: Boca abajo + top-down_bottom-up: Boca abajo con las nalgas levantadas + the_pose: Boca abajo con los pies levantados + bent_over: Inclinado + upside-down: De cabeza + reversal: Reverso + fighting_stance: Postura de lucha + leaning_to_the_side: Inclinado hacia un lado + leaning: Apoyado|Inclinado + leaning_back: Inclinado hacia atrás + leaning_on_object: Apoyado en un objeto + arched_back: Espalda arqueada + leaning_forward: Inclinado hacia adelante + afloat: Flotando + lying: Acostado + fetal_position: Posición fetal + lying_on_person: Acostado sobre una persona + lying_on_the_lake: Acostado en el agua del lago + lying_on_water: Acostado en el agua + on_back: Acostado boca arriba + prone_bone: Posición de perrito + reclining: Reclinado + sleeping_upright: Durmiendo de pie + presenting: Presentando (seguido de una parte del cuerpo) + spinning: Girando + posing: Posando + stylish_pose: Pose elegante + public_indecency: Indecencia pública + parody: Parodia + in_container: En un contenedor + against_glass: Presionando contra el cristal (ineficaz) + aiming: Apuntando + aiming_at_viewer: Apuntando al espectador + applying_makeup: Aplicando maquillaje + bathing: Bañándose + biting: Mordiendo + bleeding: Sangrando + blowing: Soplando + bowing: Inclinándose + breathing_fire: Escupiendo fuego + broom_riding: Montando una escoba + brushing_teeth: Cepillándose los dientes + bubble_blowing: Soplando burbujas + bullying: Intimidando + burning: Quemando + cast: Lanzando + chasing: Persiguiendo + cleaning: Limpiando + climbing: Escalando + comforting: Reconfortando + cooking: Cocinando + crying: Llorando + cuddling: Abrazando + dancing: Bailando + diving: Buceando + dragging: Arrastrando algo + drawing: Dibujando + drawing_bow: Tensando el arco + dreaming: Soñando + drinking: Bebiendo + driving: Conduciendo + dropping: Dejando caer (accidentalmente) + drying: Secándose (después del baño) + dual_wielding: Empuñando dos armas + exercise: Haciendo ejercicio + fighting: En plena pelea + firing: Disparando + fishing: Pescando + flapping: Aleteando + flashing: Mostrando + fleeing: Huyendo + flexing: Flexionando los músculos + flying: Volando + flying_kick: Patada voladora + hair_brushing: Cepillándose el cabello + hair_tucking: Acomodándose el cabello + hanging: Colgando + hitting: Golpeando + imagining: Imaginando + jumping: Saltando + kicking: Pateando + licking: Lamiendo + licking_lips: Lamiéndose los labios + lip_biting: Mordiéndose los labios + meditation: Meditando + painting: Pintando + Painting_(Action): Pintando + playing_card: Jugando a las cartas + playing_games: Jugando videojuegos + playing_instrument: Tocando un instrumento + pole_dancing: Bailando en el tubo + praying: Orando + punching: Golpeando + pushing: Empujando + railing: Apoyándose en una barandilla + reading: Leyendo + riding: Montando + running: Corriendo + sewing: Cosiendo + shopping: Comprando + showering: Duchándose + sing: Cantando + singing: Cantando + slashing: Cortando + sleeping: Durmiendo + smelling: Oliendo + smoking: Fumando + sneezing: Estornudando + snowing: Nevando + soaking_feet: Remojando los pies + soccer: Jugando al fútbol + spilling: Derramando líquido de un recipiente + spitting: Escupiendo líquido de la boca + splashing: Salpicando + standing_on_liquid: Parado sobre líquido + standing_on_one_leg: Parado sobre una pierna + standing_split: Split de pie + steepled_fingers: Dedos entrelazados + strangling: Estrangulando + sweeping: Barriendo + swimming: Nadando + swing: Balanceándose + tail_wagging: Meneando la cola + taking_picture: Tomando una foto + talking: Hablando (con diálogo) + talking_on_phone: Hablando por teléfono + teasing: Burlándose + thinking: Pensando + tickling: Haciendo cosquillas + toilet_use: Usando el baño + tossing_: Lanzando + tripping: Tropezando + trolling: Trolleando + twitching: Contracción + tying: Atando + unsheathing: Sacando de la vaina + untying: Desatando + unzipping: Abriendo la cremallera + wading: Vadear + waking_up: Despertándose + walking: Caminando + walking_on_liquid: Caminando sobre líquido + washing: Lavando + whispering: Susurrando + wrestling: Luchando + writing: Escribiendo + yawning: Bostezando + hiding: Escondiéndose + + - name: Acciones de las manos + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: Manos detrás de la espalda + arm_above_head: Mano sobre la cabeza + arm_behind_head: Mano detrás de la cabeza + arms_crossed: Brazos cruzados + arm_support: Sostener con la mano + armpits: Axilas al descubierto + arms_up: Brazos levantados + hands_on_hips: Manos en las caderas + arm_around_waist: Brazo alrededor de la cintura + caramelldansen: Movimiento famoso de estirar y girar la mano + hands_in_opposite_sleeves: Manos en las mangas opuestas + waving: Saludar con la mano + crossed_arms: Brazos cruzados + outstretched_arms: Brazos extendidos + v_arms: Brazos formando una V + w_arms: Brazos formando una W + salute: Saludo militar + reaching: Extender la mano (con un propósito) + reaching_out: Extender la mano hacia afuera + stretch: Estirar los brazos + hugging_own_legs: Abrazar las propias piernas + arm_blade: Brazo como una hoja + arm_grab: Agarrar el brazo + arm_held_back: Brazo tirado hacia atrás + arm_ribbon: Brazo con una cinta + bandaged_arm: Brazo vendado + bandaid_on_arm: Curita en el brazo + bound_arms: Brazos atados + convenient_arm: Brazo cubriendo una parte clave + extra_arms: Brazos adicionales + locked_arms: Brazos entrelazados + outstretched_arm: Brazo extendido + waving_arms: Agitar los brazos + arm_at_side: Brazo a un lado + arm_behind_back: Brazo detrás de la espalda + shou: Mano sosteniendo la cabeza + arm_cannon: Brazo cañón + arm_hug: Abrazo con los brazos + arm_up: Brazo levantado + arms_at_sides: Brazos a los lados + arms_behind_head: Brazos detrás de la cabeza + hand_to_mouth: Mano cerca de la boca + shushing: Señal de silencio + cat_pose: Gestos de las manos como garras de gato + claw_pose: Gestos de las manos como garras + paw_pose: Gestos de las manos como una pata de gato (muñeca doblada hacia abajo) + fox_shadow_puppet: Gestos de las manos como una sombra de zorro + double_fox_shadow_puppet: b + finger_gun: Gestos de la mano como una pistola con los dedos + v: Gestos de la mano como una señal de victoria + double_v: Gestos de la mano como dos señales de victoria + thumbs_up: Pulgares hacia arriba + index_finger_raised: Dedo índice levantado + middle_finger: Gestos de la mano como un gesto de amistad internacional + grimace: Hacer una mueca + eyelid_pull: Hacer una mueca + fingersmile: Hacer una cara sonriente con los dedos + wiping_tears: Limpiar lágrimas + finger_on_trigger: Gestos de la mano preparándose para apretar el gatillo + pointing_at_self: Señalar hacia uno mismo + pointing_at_viewer: Señalar hacia el espectador + pointing_up: Señalar hacia arriba + poking: Dar un toque + hand_gesture: Hacer un gesto con la mano + ok_sign: Señal de OK + shading_eyes: Gestos de la mano para protegerse del sol + finger_biting: Morderse los dedos + finger_in_mouth: Chuparse los dedos + fingering_through_clothes: Meter los dedos entre la ropa + fingers_together: Dedos juntos + hair_twirling: Enrollar el cabello con los dedos + hands_clasped: Manos entrelazadas + holding_hair: Sujetar el cabello + pointing: Apuntar con el dedo + sharp_fingernails: Uñas afiladas + sleeves_past_fingers: Mangas más largas que los dedos + spread_fingers: Separar los dedos + trigger_discipline: Dedo no en el gatillo + w: Gestos de la mano como una W + balancing: Posición de equilibrio + curvy: Posición que muestra encanto + multiple_views: Múltiples ángulos o posiciones + pose: Posición + ready_to_draw: Posición de preparación para desenfundar + trefoil: Posición que muestra la parte trasera de una mujer + zombie_pose: Posición de zombie + beckoning: Hacer un gesto para llamar + bunching_hair: Agarrar un mechón de cabello + carrying: Cargar + carrying_over_shoulder: Cargar sobre el hombro + carrying_under_arm: Cargar debajo del brazo + cheering: Animar + finger_to_mouth: Mano cerca de la boca + cheek_pinching: Pellizcar las mejillas + cheek_poking: Dar un toque en las mejillas + chin_stroking: Acariciar la barbilla + hair_pull: Tirar del cabello + covering_mouth: Cubrir la boca + covering_xx: Cubrir xx + self_fondle: Acariciarse a uno mismo + adjusting_thighhigh: Ajustar las medias por encima de la rodilla + chin_rest: Apoyar la mejilla + head_rest: Apoyar la cabeza + take: Tomar algo + _sheet_grab: Agarrar la sábana + groping: Tocar a tientas + skirt_lift: Levantar la falda + crotch_grab: Agarrar la entrepierna + covering_chest_by_hand: Cubrir el pecho con la mano + bangs_pinned_back: Recoger el flequillo hacia atrás + clothes_lift: Levantar la ropa + dress_lift: Levantar el vestido + kimono_lift: Levantar el kimono + lifted_by_another: Ser levantado por otra persona + lifted_by_self: Levantar la propia ropa + shirt_lift: Levantar y enrollar la camisa + skirt_basket: Formar una cesta al levantar la falda + skirt_flip: Levantar la falda (también implica una situación repentina) + bikini_lift: Bajar la parte superior del bikini + leg_lift: Levantar una pierna + lifting_person: Levantar a una persona + strap_lift: Levantar la tira de una prenda + wind_lift: Efecto de viento o corriente ascendente + bikini_pull: Tirar del bikini + cheek_pull: Tirar de las mejillas + clothes_pull: Tirar de la ropa + dress_pull: Desnudar la parte superior del vestido + hair_pulled_back: Recoger el cabello hacia atrás + kimono_pull: Desnudar el kimono + leotard_pull: Desnudar el leotardo + mask_pull: Tirar de la mascarilla + pants_pull: Tirar de los pantalones + pulled_by_another: Ser tirado por otra persona (o tirar de la ropa) + pulled_by_self: Tirar de la propia ropa + pulling: Tirar + shirt_pull: Tirar de la camisa + shorts_pull: Bajar los pantalones cortos + skirt_pull: Tirar de la falda + swimsuit_pull: Tirar del traje de baño + zipper_pull_tab: Tirar de la pestaña del cierre + adjusting_clothes: Ajustar la ropa + adjusting_eyewear: Ajustar las gafas + adjusting_gloves: Ajustar los guantes + adjusting_hair: Arreglar el cabello + adjusting_hat: Ajustar el sombrero + adjusting_swimsuit: Ajustar el traje de baño + + - name: Acciones de las manos (sosteniendo algo) + color: rgba(241, 229, 140, .4) + tags: + holding: Sostener algo + holding_animal: Sostener un animal + holding_arrow: Sostener un arco + holding_axe: Sostener un hacha + holding_bag: Sostener una bolsa + holding_ball: Sostener una pelota + holding_basket: Sostener una canasta + holding_book: Sostener un libro + holding_bottle: Sostener una botella + holding_bouquet: Sostener un ramo de flores + holding_bow_(weapon): Sostener un arco (arma) + holding_bowl: Sostener un tazón + holding_box: Sostener una caja + holding_breath: Contener la respiración + holding_broom: Sostener una escoba + holding_camera: Sostener una cámara + holding_can: Sostener una lata + holding_candy: Sostener un caramelo + holding_card: Sostener una tarjeta + holding_cat: Sostener un gato + holding_chopsticks: Sostener palillos + holding_cigarette: Sostener un cigarrillo + holding_clothes: Sostener ropa + holding_condom: Sostener un condón + holding_cup: Sostener una taza + holding_dagger: Sostener una daga + holding_doll: Sostener una muñeca + holding_eyewear: Sostener gafas | Quitarse las gafas + holding_fan: Sostener un abanico + holding_flag: Sostener una bandera + holding_flower: Sostener una flor + holding_food: Sostener comida + holding_fork: Sostener un tenedor + holding_fruit: Sostener una fruta + holding_gift: Sostener un regalo + holding_gun: Sostener un arma + holding_hands: Sostener manos + holding_hat: Sostener un sombrero + holding_head: Sostener la cabeza + holding_helmet: Sostener un casco + holding_innertube: Sostener un flotador + holding_instrument: Sostener un instrumento + holding_knife: Sostener un cuchillo + holding_leaf: Sostener una hoja + holding_lollipop: Sostener un chupete + holding_mask: Sostener una máscara + holding_microphone: Sostener un micrófono + holding_needle: Sostener una aguja de coser + holding_own_foot: Sostener el propio pie + holding_paintbrush: Sostener un pincel + holding_paper: Sostener papel + holding_pen: Sostener un bolígrafo + holding_pencil: Sostener un lápiz + holding_phone: Sostener un teléfono + holding_pillow: Sostener una almohada + holding_pipe: Sostener una pipa + holding_pizza: Sostener una pizza + holding_plate: Sostener un plato + holding_poke_ball: Sostener una Poké Ball + holding_pokemon: Sostener un Pokémon + holding_polearm: Sostener una arma de asta + holding_sack: Sostener un saco + holding_scythe: Sostener una guadaña + holding_sheath: Sostener una vaina + holding_shield: Sostener un escudo + holding_shoes: Sostener zapatos + holding_sign: Sostener un cartel + holding_spear: Sostener una lanza + holding_spoon: Sostener una cuchara + holding_staff: Sostener un bastón + holding_strap: Sostener una correa + holding_stuffed_animal: Sostener un peluche + holding_stylus: Sostener un lápiz táctil + holding_sword: Sostener una espada + holding_syringe: Sostener una jeringa + holding_towel: Sostener una toalla + holding_tray: Sostener una bandeja + holding_umbrella: Sostener un paraguas + holding_wand: Sostener una varita + holding_whip: Sostener un látigo + arm_around_neck: Brazo alrededor del cuello + arms_around_neck: Brazos alrededor del cuello + + - name: Acciones de las manos (colocando algo) + color: rgba(241, 229, 140, .4) + tags: + covering: Acciones de cubrir + covering_face: Cubrir el rostro + covering_ass: Cubrir las nalgas + covering_crotch: Cubrir la entrepierna + covering_eyes: Cubrir los ojos + covering_mouth: Cubrir la boca + covering_nipples: Cubrir los pezones + hands_on_another's_: Manos en la cara de otra persona + hands_on_another's_cheeks: Manos en las mejillas de otra persona + hands_on_ass: Manos en las nalgas + hands_on_feet: Manos en los pies + hands_on_headwear: Manos tocando accesorios en la cabeza + hands_on_hilt: Manos en la empuñadura + hands_on_lap: Manos en el regazo + hands_on_own_face: Manos en el propio rostro + hands_on_own_cheeks: Manos en las propias mejillas + hands_on_own_chest: Manos en el propio pecho + hands_on_own_head: Manos en la propia cabeza + hands_on_own_knees: Manos en las propias rodillas + hands_on_own_stomach: Manos en el propio estómago + hands_on_own_thighs: Manos en los propios muslos + hands_on_another's_shoulders: Manos en los hombros de otra persona + hands_on_hips: Manos en las caderas | Manos en la cintura + hand_on_another's_: Mano tocando el rostro de otra persona + hand_on_another's_cheek: Mano acariciando la mejilla de otra persona + hand_on_another's_chest: Mano en el pecho de otra persona + hand_on_another's_chin: Mano sosteniendo la barbilla de otra persona + hand_on_another's_head: Mano en la cabeza de otra persona + hand_on_another's_shoulder: Mano en el hombro de otra persona + hand_on_another's_stomach: Mano en el estómago de otra persona + hand_on_ass: Mano en las nalgas + hand_on_head: Mano en la cabeza + hand_on_headwear: Mano tocando un accesorio en la cabeza + hand_on_hilt: Mano en la empuñadura + hand_on_hip: Mano en la cadera | Mano en la cintura + hand_on_own_: Mano en el propio rostro + hand_on_own_cheek: Mano en la propia mejilla + hand_on_own_chest: Mano en el propio pecho + hand_on_own_chin: Mano tocando la propia barbilla + hand_on_own_stomach: Mano en el propio estómago + hand_on_shoulder: Mano en el hombro + hand_in_another's_hair: Mano en el cabello de otra persona + hand_in_hair: Mano en el cabello + hand_in_pocket: Mano en el bolsillo + + - name: Acción de la mano (agarrando algo) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: Agarrando el trasero + flat_chest_grab: Agarrando un pecho plano + grabbing: Agarrando + grabbing_another's_ass: Agarrando el trasero de otra persona + grabbing_another's_hair: Agarrando el cabello de otra persona + grabbing_from_behind: Agarrando los senos desde atrás + grabbing_own_ass: Agarrando su propio trasero + guided_penetration: Agarrando el pene para la penetración guiada + hair_grab: Agarrando el cabello + leg_grab: Agarrando la pierna + necktie_grab: Agarrando la corbata + neckwear_grab: Agarrando la ropa del cuello + penis_grab: Agarrando el pene + pillow_grab: Agarrando la almohada + sheet_grab: Agarrando las sábanas + tail_grab: Agarrando la cola + thigh_grab: Agarrando el muslo + torso_grab: Agarrando el torso + wrist_grab: Agarrando la muñeca + + - name: Acciones de piernas + color: rgba(241, 229, 140, .4) + tags: + legs_up: Levantar una pierna + spread legs: Abrir las piernas + legs_together: Juntar las piernas + crossed_legs: Piernas cruzadas + m_legs: Piernas en forma de M + standing_split,_leg_up: Piernas en forma de M + curtsy: Reverencia (reverencia de doncella) + hand_between_legs: Mano entre las piernas + open_stance: Postura abierta + convenient_leg: Pierna que cubre la parte íntima + leg_lock: Sujetar con las piernas + legs: Piernas + legs_over_head: Levantar las piernas por encima de la cabeza + squatting,_open_legs: Agacharse con las piernas abiertas + knees_together_feet_apart: Rodillas juntas, pies separados + animal_on_lap: Animal en el regazo + hand_on_own_knee: Mano en la propia rodilla + knee_up: Levantar la rodilla + knees: Rodillas + knees_to_chest: Rodillas hacia el pecho + on_lap: En el regazo + sitting: Sentado/a + wariza: Sentado en posición de pato + straddling: Sentado/a a horcajadas + yokozuwari: Sentado/a de lado + sitting_backwards: Sentado/a hacia atrás + sitting_in_tree: Sentado/a en un árbol + sitting_on_xx: Sentado/a en algo + butterfly_sitting: Sentado/a en posición de mariposa + lotus_position: Sentado/a en posición de loto + sitting_on_railing: Sentado/a en una barandilla + sitting_on_rock: Sentado/a en una roca + sitting_on_stairs: Sentado/a en las escaleras + sitting_on_table: Sentado/a en una mesa + sitting_on_water: Sentado/a en el agua + cushion: Cojín + indian_style: Sentado/a en posición de loto + sitting_on_chair: Sentado/a en una silla + sidesaddle: Sentado/a de lado en una silla de montar + sitting_on_bed: Sentado/a en la cama + sitting_on_desk: Sentado/a en el escritorio + sitting_on_lap: Sentado/a en el regazo + sitting_on_person: Sentado/a en una persona + upright_straddle: Posición sentada enfrentada + squatting: Agachado/a + one_knee: Una rodilla + kneeling: Arrodillado/a + all_fours: A cuatro patas + gravure_pose: Posición de gravure + kicking: Patear + high_kick: Patada alta + soaking_feet: Remojar los pies + reclining: Reclinado/a + hugging_own_legs: Abrazar las propias piernas + bare_legs: Piernas descubiertas + between_legs: (Énfasis) Entre las piernas + cropped_legs: Solo se muestra una parte de las piernas + k/da_(league_of_legends): KDA (League of Legends) + leg_belt: Cinturón en la pierna + leg_hair: Vello en las piernas + leg_up: Levantar la pierna + legs_apart: Piernas separadas + lowleg: Piernas en forma de M + mechanical_legs: Piernas mecánicas + multiple_legs: Personaje con múltiples piernas + no_legs: Sin piernas + no_legwear: Sin ropa en las piernas + tail_between_legs: Cola entre las piernas + barefoot: Descalzo/a + foot_out_of_frame: Un pie fuera del encuadre + footprints: Huellas de pies + dirty_feet: Representación incorrecta de los pies + feet: Pies + feet_out_of_frame: Ambos pies fuera del encuadre + feet_up: Levantar los pies + wrong_feet: Error en la representación de los pies + cameltoe: Cameltoe + pigeon-toed: Pies hacia adentro en forma de "V" + tiptoes: Puntas de los pies + toe-point: Punta de los dedos del pie + amputee: Amputado/a + ankle_strap: Correa en el tobillo + ankle_wrap: Envoltura en el tobillo + crossed_ankles: Tobillos cruzados + pince-nez: Gafas de nariz + folded: Levantar la pierna y mostrar la entrepierna + thick_thighs: Muslos gruesos + thigh_holster: Funda para el muslo + + - name: Otras acciones + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: Contacto asimétrico de pechos + back-to-back: Espalda contra espalda + cunnilingus: Cunnilingus + eye_contact: Contacto visual + facing_another: Frente a otra persona + facing_away: Cara a cara (caras muy cerca) + feeding: Alimentar + finger_in_another's_mouth: Dedo en la boca del otro/a + fingering: Digitación + french_kiss: Beso francés + giving: Dar + grinding: Frotamiento de caderas + groping: Manoseo + holding_hands: Tomar de las manos + hug: Abrazo + imminent_kiss: Beso inminente + incoming_food: Llegada de comida + incoming_gift: Llegada de regalo + interlocked_fingers: Dedos entrelazados + Kabedon: Kabedon (golpear la pared con la mano junto a alguien) + lap_pillow: Almohada en el regazo + licking_penis: Lamer el pene + long_tongue: Lengua larga + mimikaki: Limpiar los oídos con un hisopo + oral_invitation: Invitación oral (sacar la lengua para recibir eyaculación) + princess_carry: Cargar como una princesa + shared_bathing: Baño compartido + shared_food: Compartir comida (entregarse la comida con la boca) + sitting_on_head: Sentado/a en la cabeza + sitting_on_shoulder: Sentado/a en el hombro + slapping: Dar una bofetada + spanking: Dar una palmada en las nalgas + special_feeling_(meme): Meme de "sentimientos especiales" (pareja bajo el paraguas en la nieve) + symmetrical_docking: Contacto simétrico de pechos + tongue: Lengua + tongue_out: Sacar la lengua + uvula: Úvula + ear_biting: Morder la oreja + mixed_bathing: Baño mixto + +- name: Pantalla + groups: + - name: Calidad de imagen + color: rgba(0, 255, 255, .4) + tags: + checkered: a cuadros + lowres: baja resolución + highres: alta resolución + absurdres: resolución absurda + incredibly absurdres: resolución increíblemente alta + huge filesize: resolución superalta/tamaño de archivo grande + wallpaper: fondo de pantalla + pixel art: arte de píxeles + monochrome: imagen en blanco y negro + colorful: colorido + + - name: Estilo artístico + color: rgba(0, 255, 255, .4) + tags: + artbook: libro de arte + game cg: CG de juegos + comic: cómic + 4koma: 4 viñetas + animated gif: imagen GIF animada + dakimakura: almohada abrazable + cosplay: cosplay + crossover: crossover + dark: oscuro + light: claro + guro: guro + realistic: realista + photo: foto + real: real + landscape/scenery: paisaje + cityscape: paisaje urbano + science fiction: ciencia ficción + original: original + parody: parodia + personification: personificación + optical illusion: ilusión óptica + fine art parody: parodia de arte fino + sketch: boceto + traditional media: medios tradicionales (dibujo a mano) + watercolor (medium): acuarela transparente + silhouette: silueta + cover: portada + album: álbum + sample: muestra + back: imagen de espalda + bust: busto + profile: perfil + expressions: expresiones + everyone: todos los personajes principales en una obra + column lineup: imagen grande compuesta por múltiples imágenes pequeñas en una columna + transparent background: fondo transparente + simple background: fondo simple + gradient background: fondo con degradado + zoom layer: versión ampliada del primer plano como fondo + 8 Bit Game: juego de 8 bits + 1980s anime: anime de los años 80 + disney movie: película de Disney + goth: gótico + 80s movie: película de los años 80 + bubble bobble: Bubble Bobble + style of Pixar: estilo de Pixar + Polaroid art: arte de Polaroid + Kaleidoscope Photography: fotografía de caleidoscopio + opal render: renderizado de ópalo + chemigram: quimigrama + Studio Ghibli: estilo de Studio Ghibli + dreamlike: onírico + (faux traditional media): estilo de imitación de medios tradicionales + genshin impact: impacto de Genshin + azur lane: Azur Lane + kantai collection: colección de Kantai + rebecca (cyberpunk): Rebecca (cyberpunk) + chainsaw man: Chainsaw Man + Magic Vortex: vórtice mágico + ((dieselpunk)): dieselpunk + magazine scan: escaneo de revista + album cover: portada de álbum + (lineart): línea de arte + synthwave: synthwave + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): lococo + + - name: Tipo de arte + color: rgba(0, 255, 255, .4) + tags: + monochrome: imagen en blanco y negro + Collage: collage + Dalle de verre: vidrio emplomado + pixel art: arte de píxeles + Encaustic painting: pintura encaústica + Ink wash painting: pintura de tinta + Mezzotint: mezzotinta + silhouette: silueta + illustration: ilustración + (((ink))), ((watercolor)): acuarela + illustration,(((ukiyoe))),((sketch)),((japanese_art)): ukiyo-e + ((wash painting)),((ink s...)): estilo chino + ((dyeing)),((oil painting)),((impasto)): pintura al óleo + (posing sketch), (monochrome): boceto en blanco y negro + sketch: boceto a mano alzada + (monochrome), (gray scale), (pencil sketch lines: boceto a lápiz en blanco y negro + (watercolor pencil): lápiz de acuarela + + - name: Movimiento artístico + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): art nouveau + ((classicism)): clasicismo + ((futurism)): futurismo + ((Dadaism)): dadaísmo + ((abstract art)): arte abstracto + ((ASCII art)): arte ASCII + + - name: Estilo del artista + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): estilo de Alphonse Mucha + ((Monet style)): estilo de Monet + + - name: Iluminación + color: rgba(0, 255, 255, .4) + tags: + rim light: luz de contorno + Volumetric Lighting: iluminación volumétrica + glowing neon lights: luces de neón brillantes + Cinematic Lighting: iluminación cinematográfica + lens flare: destello de lente + metallic luster: brillo metálico + moody lighting: iluminación de ambiente + Tyndall effect: efecto Tyndall + light leaks: fugas de luz + background light: luz de fondo + available light: luz natural + + - name: Realismo + color: rgba(0, 255, 255, .4) + tags: + realistic: realista + highres: estilo de pincelada gruesa + photo_(medium): estilo fotográfico + oil_painting: pintura al óleo + reality: realidad + polaroid: fotografía tipo polaroid + + - name: Boceto + color: rgba(0, 255, 255, .4) + tags: + sketch: boceto + flat_color: color plano + monochrome: monocromo + spot_color: color sólido + halftone: semitono + greyscale: escala de grises + high_contrast: alto contraste + partially_colored: parcialmente coloreado + chromatic_aberration: aberración cromática + contour_deepening: intensificación del contorno + outline: contorno + silhouette: silueta + + - name: Pincel + color: rgba(0, 255, 255, .4) + tags: + traditional_media: medios tradicionales (papel, lienzo, etc.) + faux_traditional_media: estilo de imitación de medios tradicionales + marker_(medium): marcador + copics: copics (gris neutro) + pencil_sketch_lines: líneas de boceto a lápiz + graphite_(medium): lápiz de grafito + colored_pencil_(medium): lápiz de colores + millipen_(medium): bolígrafo de dibujo + nib_pen_(medium): bolígrafo de dibujo + ballpoint_pen_(medium)_: bolígrafo de tinta + pastel_color: colores suaves + watercolor_(medium): acuarela + acrylic_paint_(medium): pintura acrílica + contour_deepening: intensificación del contorno + + - name: Color + color: rgba(0, 255, 255, .4) + tags: + orange: naranja + blue: azul + red: rojo + light_brown: marrón claro + dark_pink: rosa oscuro + khaki: caqui + blonde: rubio + brown: marrón + black: negro + gray: gris + darkgray: gris oscuro + silver: plateado + lightgray: gris claro + gainsboro: gris gainsboro + whitesmoke: humo blanco + snow: nieve + ghostwhite: blanco fantasma + floralwhite: blanco floral + linen: lino + antiquewhite: blanco antiguo + papayawhip: crema de papaya + blanchedalmond: almendra blanqueada + bisque: bizcocho + moccasin: mocasín + navajowhite: blanco navajo + peachpuff: melocotón + mistyrose: rosa brumoso + lavenderblush: rubor de lavanda + seashell: concha marina + oldlace: encaje antiguo + ivory: marfil + honeydew: rocío de miel + mintcream: crema de menta + azure: azur + aliceblue: azul Alicia + lavender: lavanda + lightsteelblue: azul acero claro + lightslategray: gris pizarra claro + slategray: gris pizarra + steelblue: azul acero + royalblue: azul real + midnightblue: azul medianoche + navy: azul marino + darkblue: azul oscuro + mediumblue: azul medio + dodgerblue: azul esquivador + cornflowerblue: azul aciano + skyblue: azul cielo + lightblue: azul claro + powderblue: azul polvo + paleturquoise: turquesa pálido + lightcyan: cian claro + cyan: cian + aquamarine: aguamarina + turquoise: turquesa + mediumturquoise: turquesa medio + darkturquoise: turquesa oscuro + lightseagreen: verde mar claro + cadetblue: azul cadete + darkcyan: cian oscuro + teal: verde azulado + darkslategray: gris pizarra oscuro + darkgreen: verde oscuro + green: verde + forestgreen: verde bosque + seagreen: verde mar + mediumseagreen: verde mar medio + mediumaquamarine: aguamarina medio + darkseagreen: verde mar oscuro + palegreen: verde claro + lightgreen: verde claro + springgreen: verde primavera + mediumspringgreen: verde pradera medio + lawngreen: verde césped + chartreuse: verde lima + greenyellow: verde amarillento + lime: lima + limegreen: verde lima + yellowgreen: verde amarillo + darkolivegreen: verde oliva oscuro + olivedrab: verde oliva + olive: oliva + darkkhaki: caqui oscuro + palegoldenrod: vara de oro pálido + cornsilk: seda de maíz + beige: beige + lightyellow: amarillo claro + lightgoldenrodyellow: amarillo oro claro + lemonchiffon: crema de limón + wheat: trigo + burlywood: madera tosca + tan: bronceado + yellow: amarillo + gold: dorado + sandybrown: marrón arenoso + darkorange: naranja oscuro + goldenrod: vara de oro + peru: perú + darkgoldenrod: vara de oro oscuro + chocolate: chocolate + sienna: siena + saddlebrown: marrón silla de montar + maroon: granate + darkred: rojo oscuro + firebrick: ladrillo refractario + indianred: rojo indio + rosybrown: marrón rosado + darksalmon: salmón oscuro + lightcoral: coral claro + salmon: salmón + lightsalmon: salmón claro + coral: coral + tomato: tomate + orangered: naranja rojizo + crimson: carmesí + mediumvioletred: rojo violeta medio + deeppink: rosa intenso + hotpink: rosa fuerte + palevioletred: rojo violeta claro + pink: rosa + lightpink: rosa claro + thistle: cardo + magenta: magenta + fuchsia: fucsia + violet: violeta + plum: ciruela + orchid: orquídea + mediumorchid: orquídea medio + darkorchid: orquídea oscuro + darkviolet: violeta oscuro + darkmagenta: magenta oscuro + purple: morado + indigo: añil + darkslateblue: azul pizarra oscuro + blueviolet: azul violeta + mediumpurple: morado medio + slateblue: azul pizarra + mediumslateblue: azul pizarra medio + + - name: Fondo + color: rgba(0, 255, 255, .4) + tags: + fantasy: estilo de fantasía + ban: fantasía tecnológica + cyberpunk: cyberpunk + depth_of_field: profundidad de campo (estilo de dibujo) + blurry: fondo borroso + blurry_foreground: primer plano borroso + simple_background: fondo simple + black_background: fondo negro + white_background: fondo blanco + transparent_background: fondo transparente + beige_background: fondo beige + brown_background: fondo marrón + tan_background: fondo marrón claro + grey_background: fondo gris + two-tone_background: fondo de dos colores + gradient_background: fondo con degradado + multicolored_background: fondo multicolor + rainbow_background: fondo arcoíris + abstract_background: fondo abstracto + argyle_background: fondo de rombos + checkered_background: fondo a cuadros + floral_background: fondo con flores + halftone_background: fondo de semitonos + heart_background: fondo rosa + honeycomb_background: fondo de panal de abeja + plaid_background: fondo de cuadros + polka_dot: fondo de lunares + striped_background: fondo a rayas + scenery: paisaje + landscape: paisaje + foral_background: fondo con patrón floral + crop_top_overhang: parte superior recortada que sobresale + starry_background: fondo estrellado + sparkle_background: fondo con destellos + cityscape: paisaje urbano + city_lights: luces de la ciudad + clock_background: fondo de reloj + bubble_background: fondo de burbujas + border: borde + pillarboxed: fondo con formato de columna + rounded_corners: fondo o marco con esquinas redondeadas + viewfinder: visor de cámara + windowboxed: fondo con formato de ventana + outside_border: parte de la imagen se encuentra fuera del marco + flashback: escena de flashback + wall_of_text: fondo de texto + background_text: texto de fondo + +- name: Ambiente + groups: + - name: Estaciones + color: rgba(31, 144, 255, .4) + tags: + in spring: Primavera + in summer: Verano + in autumn: Otoño + in winter: Invierno + (autumn maple forest:1.3),(very few fallen leaves),(path): Bosque de otoño + + - name: Clima + color: rgba(31, 144, 255, .4) + tags: + day: Día + dusk: Anochecer + night: Noche + rain: Lluvia + in the rain: En la lluvia + rainy days: Días lluviosos + sunset: Puesta de sol + cloudy: Nublado + full moon: Luna llena + sun: Sol + moon: Luna + full_moon: Luna llena + stars: Estrellas + sky: Cielo + universe: Universo + snow,ice: Nieve, hielo + snowflakes: Copos de nieve + lighting: Relámpago + rainbow: Arcoíris + meteor shower: Lluvia de meteoros + cumulonimbus: Cúmulo nimbus + + - name: Naturaleza + color: rgba(31, 144, 255, .4) + tags: + nature: Naturaleza + sea: Mar + ocean: Océano + beach: Playa + hills: Colinas + in a meadow: En un prado + on the beach: En la playa + underwater: Bajo el agua + over the sea: Sobre el mar + grove: Arboleda + on a desert: En un desierto + plateau: Meseta + cliff: Acantilado + canyon: Cañón + oasis: Oasis + bamboo forest: Bosque de bambú + glacier: Glaciar + floating island: Isla flotante + volcano: Volcán + savanna: Sabana + waterfall: Cascada + stream: Arroyo + wasteland: Tierra baldía + field: Campo + rice paddy: Arrozal + wheat field: Campo de trigo + flower field: Campo de flores + flower sea: Mar de flores + space: Espacio + starry sky: Cielo estrellado + lake: Lago + river: Río + onsen: Aguas termales + flowers meadows: Prados de flores + Alps: Alpes + Dreamy forest: Bosque de ensueño (Sensación de irrealidad, partículas de luz tranquilas) + mountain: Montaña + on a hill: En una colina + the top of the hill: La cima de la colina + outdoors: Al aire libre + + - name: Agua + color: rgba(31, 144, 255, .4) + tags: + ocean: Océano + dripping: Goteo + beach: Playa + lake: Lago + waterfall: Cascada + ripples: Ondulaciones + swirl: Remolino + waves: Olas + seashell: Concha marina + seaweed: Alga marina + + - name: Cielo + color: rgba(31, 144, 255, .4) + tags: + sky: Cielo + gradient_sky: Cielo inclinado + night_sky: Cielo nocturno + starry_sky: Cielo estrellado + hyper_galaxy: Hiper galaxia + star_(sky): Estrella (en el cielo) + star_trail: Rastro de estrellas + sunset: Atardecer + moon: Luna + lunar: Lunar, de la Luna + crescent: Media luna + crescent_moon: Luna creciente + full_moon: Luna llena + moonlight: Luz de luna + scarlet_moon: Luna escarlata + universe: Universo + space: Espacio + planet: Planeta + from_space_station: Desde la estación espacial + satellite: Satélite + + - name: Nubes + color: rgba(31, 144, 255, .4) + tags: + cirrus: Cirro + Cirrocumulus: Cirrocúmulo + Cirrostratus: Cirroestrato + Altocumulus: Altocúmulo + Altostratus: Altoestrato + stratus: Estrato + Stratocumulus: Estratocúmulo + cumulus: Cúmulo + Cumulonimbus: Cumulonimbo + Nimbostratus: Nimbos + cirrus_fibratus: Cirrofibratus + cirrus_uncinus: Cirroúncinus + cirrus_spissatus: Cirrospissatus + cirrus_floccus: Cirrofloccus + cirrus_castellanus: Cirrocastellanus + cirrus_intortus: Cirrointortus + cirrocumulus: Cirrocúmulos + cirrocumulus_stratiformis: Cirrocúmulo estratiforme + cirrocumulus_floccus: Cirrocúmulo floccus + cirrocumulus_castellanus: Cirrocúmulo castellanus + cirrocumulus_lacunosus: Cirrocúmulo lacunosus + cirrostratus: Cirroestratos + cirrostratus_fibratus: Cirroestrato fibratus + cirrostratus_nebulosus: Cirroestrato nebulosus + altocumulus: Altocúmulos + altocumulus_strataformis: Altocúmulo estratiforme + altocumulus_lenticularis: Altocúmulo lenticular + altocumulus_castellanus: Altocúmulo castellanus + altocumulus_floccus: Altocúmulo floccus + altocumulus_lacunosus: Altocúmulo lacunosus + altostratus: Altoestratos + altostratus_undulatus: Altoestrato undulatus + altostratus_duplicates: Altoestrato duplicado + altostratus_pannus: Altoestrato pannus + altostratus_translucidus: Altoestrato translúcido + altostratus_opacus: Altoestrato opacus + altostratus_radiatus: Altoestrato radiatus + altostratus_mammatus: Altoestrato mammatus + stratus_fractus: Estrato fractus + stratus_nebulosus: Estrato nebulosus + stratus_undulatus: Estrato undulatus + stratocumulus: Estratocúmulos + stratocumulus_stratiformis: Estratocúmulo estratiforme + stratocumulus_cumulogentis: Estratocúmulo cumulogéntico + stratocumulus_castellanus: Estratocúmulo castellanus + stratocumulus_lenticularis: Estratocúmulo lenticular + stratocumulus_lacunosus: Estratocúmulo lacunosus + cumulus_humilis: Cúmulo humilis + cumulus_mediocris: Cúmulo mediocris + cumulus_congestus: Cúmulo congestus + cumulus_fractus: Cúmulo fractus + cumulonimbus: Cumulonimbos + cumulonimbus_calvus: Cumulonimbo calvus + cumulonimbus_capillatus: Cumulonimbo capillatus + cumulonimbus_incus: Cumulonimbo incus + + - name: Ambiente + color: rgba(31, 144, 255, .4) + tags: + new year: Año Nuevo + year of the rabbit: Año del Conejo + valentine: Día de San Valentín + lantern festival: Festival de las Linternas + summer festival: Festival de Verano + tanabata: Festival de Tanabata + mid-autumn festival: Festival del Medio Otoño + halloween: Halloween + christmas: Navidad + explosion: Explosión + water vapor: Vapor de agua + fireworks: Fuegos artificiales + ceiling window: Ventana de techo + colourful glass: Vidrio colorido + stain glass: Vidrio manchado + Graffiti wall: Pared de graffiti + mosaic background: Fondo de mosaico + liquid background, Sputtered water: Fondo líquido, Agua pulverizada + magic circles: Círculos mágicos + fluorescent mushroom forests background: Fondo de bosque de hongos fluorescentes + (((colorful bubble))): Burbuja colorida + in the ocean: En el mar + against backlight at dusk: Contra la luz de fondo al anochecer + golden hour lighting: Iluminación de la hora dorada + strong rim light: Luz de borde fuerte + intense shadows: Sombras intensas + +- name: Escenario + groups: + - name: Exterior + color: rgba(159, 32, 240, .4) + tags: + castle: Castillo + city: Ciudad + waterpark: Parque acuático + carousel: Carrusel + ferris wheel: Noria + aquarium: Acuario + zoo: Zoológico + bowling alley: Bolera + art gallery: Galería de arte + museum: Museo + planetarium: Planetario + swimming pool: Piscina + stadium: Estadio + temple: Templo + bus stop: Parada de autobús + train station: Estación de tren + fountain: Fuente + playground: Patio de recreo + market stall: Puesto de mercado + phone booth: Cabina telefónica + railroad tracks: Vías del tren + airport: Aeropuerto + tunnel: Túnel + skyscraper: Rascacielos + cityscape: Paisaje urbano + ruins: Ruinas + greco-roman architectur: Arquitectura grecorromana + east asian architecture: Arquitectura asiática oriental + torii: Torii + church: Iglesia + shop: Tienda + street: Calle + cyberpunk city: Ciudad ciberpunk + in the cyberpunk city: En la ciudad ciberpunk + chinese style architecture: Arquitectura de estilo chino + gohei: Gohei + Bustling city: Ciudad bulliciosa + laboratory: Laboratorio + coffee house: Cafetería + gym: Gimnasio + library: Biblioteca + prison: Prisión + engine room: Sala de máquinas + handrail: Barandilla + neon lights: Luces de neón + street lamp: Farola + road: Carretera + shanty town/slum: Barrio de chabolas + warehouse: Almacén + gothic architecture: Arquitectura gótica + restaurant: Restaurante + treehouse: Casa del árbol + modern,Europe: Moderno, Europa + Industrial wind, Chinese architecture: Viento industrial, arquitectura china + building_ruins: Ruinas de edificios + bar: Bar + izakaya: Izakaya + cafe: Café + bakery: Panadería + convenience store: Tienda de conveniencia + supermarket: Supermercado + pharmacy: Farmacia + theater: Teatro + movie theater: Cine + workshop: Taller + courtroom: Sala del tribunal + park: Parque + Trapeze: Trapecio + classroom: Aula + botanical garden: Jardín botánico + amusement_park: Parque de atracciones + Disney_land: Parque de Disney + arena: Arena + wrestling_ring: Ring de lucha libre + Auditorium: Auditorio + concert: Concierto + Japanese_hotel: Hotel japonés + jail_bars: Rejas de la cárcel + in_the_movie_theatre: En el cine + stage: Escenario + harbor: Puerto + casino: Casino + billiard: Mesa de billar + dungeon: Mazmorra + grave: Tumba + graveyard: Cementerio + tombstone: Lápida + monolith: Monolito + rappelling: Rappel + building: Edificio + architecture: Arquitectura + magnificent_architecture: Arquitectura magnífica + Skyscraper: Rascacielos + east_asian_architecture: Arquitectura asiática oriental + cathedral: Catedral + chinese_style_loft: Loft de estilo chino + traditional_chinese_room: Habitación tradicional china + turret: Torreón + tower: Torre + mosque: Mezquita + reservoir: Embalse + railroad: Ferrocarril + railway: Ferrocarril + bridge: Puente + under_bridge: Debajo del puente + remains: Ruinas + rubble_ruins: Ruinas de escombros + + - name: Ciudad + color: rgba(159, 32, 240, .4) + tags: + city: Ciudad + cityscape: Paisaje urbano + street: Calle + downtown: Centro de la ciudad + crowd: Multitud + alley: Callejón + in_main_street: En la calle principal + Intersection: Intersección + avenue: Avenida + lawn: Césped + road: Carretera + path: Sendero + pavement: Pavimento + road_sign: Señal de tráfico + traffic_cone: Cono de tráfico + lamppost: Farola + power_lines: Postes y cables de electricidad + fence: Valla + railing: Barandilla + bench: Banco + vending_machine: Máquina expendedora + + - name: Interior + color: rgba(159, 32, 240, .4) + tags: + indoor: Interior + bathroom: Baño + toilet stall: Cabina de baño + otaku room: Habitación de otaku + cafeteria: Cafetería + classroom: Aula + clubroom: Sala de club + bedroom: Dormitorio + kitchen: Cocina + dormitory: Dormitorio + dungeon: Mazmorra + infirmary: Enfermería + stage: Escenario + electrical room: Sala eléctrica + server room: Sala de servidores + basement: Sótano + art room: Sala de arte + bathing: Baño + stairs: Escaleras + greenhouse: Invernadero + + - name: Piso + color: rgba(159, 32, 240, .4) + tags: + floor: Piso + tile_floor: Suelo de baldosas + + - name: Muebles + color: rgba(159, 32, 240, .4) + tags: + bedroom: Dormitorio + tatami: Tatami + bed: Cama + couch: Sofá + kotatsu: Kotatsu + fireplace: Chimenea + window_: Ventana + sash: Postigo + curtains: Cortinas + door: Puerta + sliding_doors: Puertas correderas + clothes_rack: Perchero + air_conditioner: Aire acondicionado + table: Mesa + school_desk: Pupitre escolar + chair: Silla + armchair: Sillón + lounge_chair: Silla reclinable + beach_chair: Silla de playa + folding_chair: Silla plegable + invisible_chair: Silla invisible + office_chair: Silla de oficina + wheelchair: Silla de ruedas + + - name: Ropa de cama + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: Sábana + mattress: Colchón + futon: Futón + cushion: Cojín + carpet: Alfombra + pillow: Almohada + dumpling_Hug_Pillow: Almohada abrazable en forma de bollo + pillow_hug: Almohada abrazable + yes-no_pillow: Almohada de sí/no + stuffed_animal: Peluche + stuffed_bunny: Conejo de peluche + koakuma: Koakuma + + - name: Baño + color: rgba(159, 32, 240, .4) + tags: + bathroom: Baño + bathtub,: Bañera + rubber_duck: Pato de goma + shower_head: Cabezal de ducha + toilet: Inodoro + squat_toilet: Inodoro de estilo japonés + soap: Jabón + tiles: Azulejos + +- name: Artículo + groups: + - name: Material de estudio + color: rgba(189, 182, 107, .4) + tags: + notebook: Cuaderno + paintbrush: Pincel + pencil: Lápiz + book: Libro + open_book: Libro abierto + book_stack: Pila de libros + bookshelf: Estantería de libros + school_bag: Mochila escolar + backpack: Mochila + + - name: Dispositivos electrónicos + color: rgba(189, 182, 107, .4) + tags: + computer: Computadora + mouse: Ratón + cellphone: Teléfono móvil + Smartphones: Teléfonos inteligentes + handheld_game_console_: Consola de juegos portátil + nintendo_3ds: Nintendo 3DS + nintendo_ds: Nintendo DS + nintendo_switch: Nintendo Switch + buttons: Botones + power_lines: Cables de alimentación + cable: Cable + + - name: Cubiertos + color: rgba(189, 182, 107, .4) + tags: + pot: Olla + teapot: Tetera + ladle: Cucharón + can: Lata + soda_can: Refresco en lata + cup: Taza + plate: Plato + tray: Bandeja + bowl: Tazón + fork: Tenedor + chopsticks: Palillos + spoon: Cuchara + drinking_glass: Vaso + tumbler: Vaso de vidrio común + beer_mug: Jarra de cerveza + gift_box: Caja de regalo + heart-shaped_box: Caja de regalo en forma de corazón + candle: Vela + + - name: Instrumentos musicales + color: rgba(189, 182, 107, .4) + tags: + music: Música + guitar: Guitarra + piano: Piano + cello: Violonchelo + playing_instrument: Tocando un instrumento + wind_chime: Campana de viento + + - name: Otros artículos + color: rgba(189, 182, 107, .4) + tags: + wristwatch: Reloj de pulsera + folding_fan: Abanico plegable + paper_fan: Abanico de papel + uchiwa: Abanico redondo + umbrella: Paraguas + transparent_umbrella: Paraguas transparente + closed_umbrella: Paraguas cerrado + oil-paper_umbrella: Paraguas de papel y aceite + Parasol: Sombrilla + basket: Cesta + bouquet: Ramo de flores + bucket: Cubo + pail: Cubo + camera: Cámara + gohei: Tira de papel sagrado + lantern/lamp: Linterna + whip: Látigo + riding_crop: Fusta + ofuda: Amuleto + cane: Bastón + wand: Varita mágica + magic: Magia + trading_card: Tarjeta de intercambio + playing_card: Carta de juego + Cassette: Casete + chess_piece: Pieza de ajedrez + coin: Moneda + copper: Cobre (moneda) + hammer: Martillo + microphone: Micrófono + mimikaki: Palillo para limpiar los oídos + sack: Saco + scales: Balanza + chibi_inset: Ilustración de Chibi + damaged: Dañado + diamond_(shape): Diamante (forma) + gourd: Calabaza + holding_gift: Sosteniendo un regalo + inlet: Entrada + key: Llave + leash: Correa + Lever: Palanca + molecule: Molécula + money: Dinero + Painting_(Object): Pintura (objeto) + photo_(object): Fotografía (objeto) + sand: Arena + stubble: Barba de varios días + trophy: Trofeo + tube_top: Tubo superior + water_bottle: Botella de agua + lotion: Loción protectora solar / Loción corporal + lotion_bottle: Botella de loción + + - name: Armas + color: rgba(189, 182, 107, .4) + tags: + weapon: Arma + weapon_on_back: Arma en la espalda + weapon_over_shoulder: Arma sobre el hombro + huge_weapon: Arma de gran tamaño + planted_weapon: Arma clavada en el suelo + broken_weapon: Arma rota + planted_sword: Espada clavada (plantada) + sword: Espada + scabbard: Vaina de espada + unsheathing: Desenvainar + katana: Katana + saber_(weapon): Sable (arma) + scythe: Guadaña + nose_hatchet: Hacha de nariz + dagger: Daga + scissors: Tijeras + axe: Hacha + hatchet: Hacha pequeña + stake: Estaca + lance: Lanza + trident: Tridente + bow_(weapon): Arco + arrow: Flecha + claw_(weapon): Garra (arma) + rifle,: Rifle + gun: Pistola + handgun: Pistola + thompson_submachine_gun: Subfusil Thompson + magazine_(weapon): Cargador (arma) + dynamite: Dinamita + bomb: Bomba + track missiles: Misiles de seguimiento + complex Trajectory: Trayectoria compleja + tank: Tanque + cannon: Cañón + military_vehicle: Vehículo militar + motorcycle: Motocicleta + ship: Barco + watercraft: Embarcación + car: Automóvil + machine: Máquina + machinery: Armamento mecánico + mechanical_arms: Brazos mecánicos + mechanization: Mecanización + robot_ears: Orejas de robot + robot_joints: Articulaciones de robot + variable_fighter: Cuerpo de un caza variable + sorcerer's_sutra_scroll: Pergamino del sutra del hechicero + + - name: Comida + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: Rollo de sushi + apple: Manzana + aubergine: Berenjena + burger: Hamburguesa + cake: Pastel + candy: Caramelo + candy_apple: Manzana acaramelada + candy_cane: Bastón de caramelo + carrot: Zanahoria + cigarette: Cigarrillo + coffee: Café + cookie: Galleta + cotton_candy_: Algodón de azúcar + cream: Crema + dango: Dango + doughnut: Dona + drink: Bebida + egg: Huevo + fruit: Fruta + Gelatin: Gelatina + ice_cream: Helado + kafuu_chino: Kafuu Chino (tipo de café) + makizushi: Makizushi (rollo de sushi) + meat: Carne + noodles: Fideos + obento: Obento + onigiri: Onigiri + pancake: Panqueque + pasties: Empanadas + peach: Durazno + ramen: Ramen + sake: Sake (vino de arroz japonés) + taiyaki: Taiyaki (pastel de pescado japonés) + tea: Té + teacup: Taza de té + wagashi: Wagashi (dulces japoneses) + wine: Vino + jam: Mermelada + pocky: Pocky (galleta japonesa) + bottled_water: Agua embotellada + sweet_potato: Batata + sweets: Dulces + food: Comida + food_in_mouth: Comida en la boca + food_on_: Comida en la cara + food_on_body: Comida en el cuerpo + food_print: Estampado de comida + food_stand: Puesto de comida + in_food: (Personaje) en la comida + chips: Papas fritas + potato_chips: Papas fritas + telstar: Pelota de fútbol Telstar + sundae: Copa de helado + tempura: Tempura + + - name: Animales + color: rgba(189, 182, 107, .4) + tags: + reptile: Reptil + crow: Cuervo + bird: Pájaro + penguin: Pingüino + chick: Pollito + manjuu_(azur_lane): Manjuu (Azur Lane) + shell: Concha + wriggle_nightbug: Escarabajo nocturno + dragonfly: Libélula + mammal: Mamífero + wolf: Lobo + 扶桑花: Caballo + whale: Ballena + cat: Gato + cat_teaser: Juguete para gatos + dog: Perro + dog_tags: Collar de perro + fox: Zorro + bunny: Conejo + snow_bunny: Conejo de nieve + stuffed_bunny: Conejo de peluche + horse: Caballo + cow: Vaca + dragon: Dragón + loong: Dragón chino + eastern_dragon: Dragón oriental + snake: Serpiente + slime: Limo + bear: Oso + panda: Panda + teddy_bear: Oso de peluche + tiger: Tigre + bat: Murciélago + hamster: Hámster + mouse: Ratón + squirrel: Ardilla + + - name: Plantas + color: rgba(189, 182, 107, .4) + tags: + plant: Planta + flower: Flor + vase: Jarrón + bouquet: Ramo de flores + flower_bloom: Flor en plena floración + plum_blossom: Flor de ciruelo + cherry_blossoms: Flores de cerezo + wisteria: Glicina + hibiscus: Hibisco + hydrangea: Hortensia + rose: Rosa + spider_lily: Lirio araña + lily: Lirio + lotus: Loto + bamboo: Bambú + entangled_plants: Plantas enredadas + orchid: Orquídea + chrysanthemum: Crisantemo + narcissu: Narciso + tree: Árbol + branch: Rama + forest: Bosque + pine_tree: Pino + palm_tree: Palmera + maple_tree: Arce + bush/shrub,: Arbusto + christmas_tree: Árbol de Navidad + maple_leaf: Hoja de arce + pumpkin: Calabaza + jack-o'-lantern: Calabaza tallada + spring_onion: Cebollino + +- name: Lente + groups: + - name: Lente + color: rgba(99, 201, 2, .4) + tags: + panorama: Panorama + landscape: Lente de paisaje (vista lejana) + wide_shot: Lente de panorama (gran angular) + medium_shot: Lente de medio plano + mid_shot: Lente de medio plano + full_shot: Plano general + bust: Plano americano + upper_body: Parte superior del cuerpo + lower_body: Parte inferior del cuerpo + cowboy_shot: Plano americano + muslos superiores (lente de vaquero) + portrait: Retrato (rostro + hombros + ocasionalmente pecho) + profile: Retrato de perfil (versión de perfil del retrato) + + - name: Primer plano + color: rgba(99, 201, 2, .4) + tags: + close-up: Primer plano + macro_shot: Macro + inset: Insertar otro plano o imagen + cross-section: Sección transversal + x-ray: Rayos X + solo_focus: Enfoque en un solo personaje (apto para escenas complejas) + xx_focus: Enfoque en xx + face_focus: Enfoque en el rostro + eyes_focus: Enfoque en los ojos + foot_focus: Enfoque en los pies + hip_focus: Enfoque en las caderas + ass_focus: Enfoque en el trasero + vehicle_focus: Enfoque en el vehículo + between_legs: (Énfasis) Entre las piernas + between_breasts: (Destacado) Entre los pechos + between_fingers: (Destacado) Entre los dedos + peeking: Espiando + peeking_out: Espiando (postura) + peeping: Espiando (énfasis en el punto de vista) + midriff_peek: Espiando el ombligo + armpit_peek: Espiando la axila + pussy_peek: Espiando la entrepierna + panty_peek: Espiando la ropa interior + pantyshot: Desnudo de ropa interior + caught: Atrapado en el acto + + - name: Otras composiciones + color: rgba(99, 201, 2, .4) + tags: + aerial: Aéreo + turn_one's_back: Dar la espalda + upskirt: Vista de debajo de la falda + phone_screen: Pantalla del teléfono + multiple_views: Vistas múltiples desglosadas + mirror selfie: Autorretrato en el espejo + three-quarter view: Vista de 3/4 + + - name: Ángulos de la lente + color: rgba(99, 201, 2, .4) + tags: + front view: Vista frontal + from_side: Vista lateral + from_above: Desde arriba ↘ + from_below: Desde abajo ↗ + from_outside: De exterior a interior + from_back: Vista desde atrás + from behind: Vista desde atrás + dynamic_angle: Ángulo dinámico + cinematic_angle: Ángulo cinematográfico + dutch angle: Ángulo inclinado + foreshortening: Acortamiento perspectivo + fisheye: Perspectiva de ojo de pez + + - name: Efectos + color: rgba(99, 201, 2, .4) + tags: + depth of field: Profundidad de campo (armonía entre persona y entorno) + lens_flare: Destello de la lente + motion_blur: Desenfoque de movimiento + motion_lines: Líneas de movimiento + speed_lines: Líneas de velocidad + bokeh: Bokeh (desenfoque del fondo) + chromatic_aberration: Aberración cromática + overexposure: Sobreexposición + contour_deepening: Realce de contornos + + - name: Acciones del personaje principal + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: Mirando al espectador + eye-contact: Contacto visual + eyeball: Mirando fijamente + stare: Mirada fija + looking_back: Mirada hacia atrás + gradient: Inclinación del personaje + looking_down: Mirada hacia abajo del personaje ↘ + looking_up: Mirada hacia arriba del personaje ↗ + facing_away: Mirando hacia otro lado + looking_to_the_side: Mirando hacia un lado + looking_away: Mirando hacia otro lugar + looking_ahead: Mirando hacia adelante + looking_afar: Mirando lejos + looking_outside: Mirando hacia afuera + head_tilt: Inclinación de cabeza + head_down: Cabeza baja + sideways_glance: Mirada de reojo + upshirt: Vistazo desde debajo de la camisa + upshorts: Vistazo desde debajo de la falda + looking_at_another: Mirando a otra persona + looking_at_phone: Mirando el teléfono + looking_at_animal: Mirando un animal + looking_at_mirror: Mirándose en el espejo + looking_at_hand: Mirando la mano + looking_at_hands: Mirando las dos manos + looking_at_food: Mirando la comida + looking_at_screen: Mirando la pantalla + +- name: Hanfu + groups: + - name: "Estilo Tang:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: Estilo Tang + + - name: Shangshan + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: Shangshan superior naranja + red upper shan: Shangshan superior rojo + green upper shan: Shangshan superior verde + blue upper shan: Shangshan superior azul + pink upper shan: Shangshan superior rosa + yellow upper shan: Shangshan superior amarillo + white upper shan: Shangshan superior blanco + light blue upper shan: Shangshan superior azul claro + light green upper shan: Shangshan superior verde claro + light red upper shan: Shangshan superior rojo claro + cyan blue upper shan: Shangshan superior azul cian + light purple upper shan: Shangshan superior morado claro + black with blue upper shan: Shangshan superior negro con azul + white with orange upper shan: Shangshan superior blanco con naranja + pink with black upper shan: Shangshan superior rosa con negro + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: Shangshan largo naranja + red long upper shan: Shangshan largo rojo + green long upper shan: Shangshan largo verde + blue long upper shan: Shangshan largo azul + pink long upper shan: Shangshan largo rosa + yellow long upper shan: Shangshan largo amarillo + white long upper shan: Shangshan largo blanco + light blue long upper shan: Shangshan largo azul claro + light green long upper shan: Shangshan largo verde claro + light red long upper shan: Shangshan largo rojo claro + cyan blue long upper shan: Shangshan largo azul cian + light purple long upper shan: Shangshan largo morado claro + black with blue long upper shan: Shangshan largo negro con azul + white with orange long upper shan: Shangshan largo blanco con naranja + pink with black long upper shan: Shangshan largo rosa con negro + + - name: Qixiong Po Skirt + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: Falda Po pecho blanca + red chest po skirt: Falda Po pecho roja + green chest po skirt: Falda Po pecho verde + blue chest po skirt: Falda Po pecho azul + pink chest po skirt: Falda Po pecho rosa + purple chest po skirt: Falda Po pecho morada + multicolour chest po skirt: Falda Po pecho multicolor + purple with white chest po skirt: Falda Po pecho morada con blanco + white with yellow chest po skirt: Falda Po pecho blanca con amarillo + blue with white chest po skirt: Falda Po pecho azul con blanco + orange with white chest po skirt: Falda Po pecho naranja con blanco + green with white chest po skirt: Falda Po pecho verde con blanco + light orange with white chest po skirt: Falda Po pecho naranja claro con blanco + pink with white chest po skirt: Falda Po pecho rosa con blanco + white with pink chest po skirt: Falda Po pecho blanca con rosa + + - name: Qixiong Pleated Skirt + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: Falda plisada pecho blanca + red chest pleated skirt: Falda plisada pecho roja + green chest pleated skirt: Falda plisada pecho verde + blue chest pleated skirt: Falda plisada pecho azul + pink chest pleated skirt: Falda plisada pecho rosa + purple chest pleated skirt: Falda plisada pecho morada + multicolour chest pleated skirt: Falda plisada pecho multicolor + purple with white chest pleated skirt: Falda plisada pecho morada con blanca + white with yellow chest pleated skirt: Falda plisada pecho blanca con amarilla + blue with white chest pleated skirt: Falda plisada pecho azul con blanca + orange with white chest pleated skirt: Falda plisada pecho naranja con blanca + green with white chest pleated skirt: Falda plisada pecho verde con blanca + light orange with white chest pleated skirt: Falda plisada pecho naranja claro con blanca + pink with white chest pleated skirt: Falda plisada pecho rosa con blanca + white with pink chest pleated skirt: Falda plisada pecho blanca con rosa + + - name: Xidai + color: rgba(178, 33, 34, .4) + tags: + green waistband: Faja verde + yellow waistband: Faja amarilla + red waistband: Faja roja + pink waistband: Faja rosa + orange waistband: Faja naranja + light blue waistband: Faja azul claro + light green waistband: Faja verde claro + green with yellow waistband: Faja verde con amarilla + purple with white waistband: Faja morada con blanca + red with white waistband: Faja roja con blanca + red with black waistband: Faja roja con negra + yellow with white waistband: Faja amarilla con blanca + + - name: Pibo + color: rgba(178, 33, 34, .4) + tags: + white pibo: Pibo blanco + orange pibo: Pibo naranja + black pibo: Pibo negro + pink pibo: Pibo rosa + red pibo: Pibo rojo + purple pibo: Pibo morado + light green pibo: Pibo verde claro + white with yellow pibo: Pibo blanco con amarillo + + - type: wrap + + - name: "Estilo Song:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: Estilo Song + + - name: Duanshan + color: rgba(178, 33, 34, .4) + tags: + purple short shan: Duanshan morado + red short shan: Duanshan rojo + green short shan: Duanshan verde + blue short shan: Duanshan azul + pink short shan: Duanshan rosa + yellow short shan: Duanshan amarillo + white short shan: Duanshan blanco + light blue short shan: Duanshan azul claro + light green short shan: Duanshan verde claro + light red short shan: Duanshan rojo claro + cyan blue short shan: Duanshan azul cian + light purple short shan: Duanshan morado claro + black with blue short shan: Duanshan negro con azul + white with yellow short shan: Duanshan blanco con amarillo + light yellow with green with white short shan: Duanshan amarillo claro con verde y blanco + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + purple long shan: Changshan morado + red long shan: Changshan rojo + green long shan: Changshan verde + blue long shan: Changshan azul + pink long shan: Changshan rosa + yellow long shan: Changshan amarillo + white long shan: Changshan blanco + light blue long shan: Changshan azul claro + light green long shan: Changshan verde claro + light red long shan: Changshan rojo claro + cyan blue long shan: Changshan azul cian + light purple long shan: Changshan morado claro + black with blue long shan: Changshan negro con azul + white with yellow long shan: Changshan blanco con amarillo + light yellow with green with white long shan: Changshan amarillo claro con verde y blanco + + - name: Baizhe Skirt + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: Falda plisada blanca + red pleated skirt: Falda plisada roja + green pleated skirt: Falda plisada verde + blue pleated skirt: Falda plisada azul + pink pleated skirt: Falda plisada rosa + light blue pleated skirt: Falda plisada azul claro + white golden pleated skirt: Falda plisada dorada y blanca + gradient green pleated skirt: Falda plisada verde degradado + translucent white pleated skirt: Falda plisada blanca translúcida + red cyan gradient pleated skirt: Falda plisada degradado rojo cian + red green gradient pleated skirt: Falda plisada degradado rojo verde + green with white pleated skirt: Falda plisada verde con blanca + light yellow with green with white pleated skirt: Falda plisada amarillo claro con verde y blanca + + - name: Songmo + color: rgba(178, 33, 34, .4) + tags: + orange songmo: Songmo naranja + red songmo: Songmo rojo + green songmo: Songmo verde + blue songmo: Songmo azul + pink songmo: Songmo rosa + yellow songmo: Songmo amarillo + white songmo: Songmo blanco + purple songmo: Songmo morado + green floral songmo: Songmo verde floral + purple floral songmo: Songmo morado floral + cyan floral songmo: Songmo cian floral + + - type: wrap + + - name: "Estilo Ming:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: Estilo Ming + + - name: Upper Garment + color: rgba(178, 33, 34, .4) + tags: + short coat: Chaqueta corta + long coat: Chaqueta larga + + - name: Skirt + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: Falda mamian + + - name: Collar + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Cuello superpuesto + round collar: Cuello redondo + standing collar: Cuello levantado + square collar: Cuello cuadrado + + - name: Decoration + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Hombros en nube + embroidery: Bordado + woven gold: Hilo dorado tejido + makeup flower: Flor maquillada + bufu: Bufu diff --git a/group_tags/fr_FR.yaml b/group_tags/fr_FR.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cebee17a233234edf580a31d70b013c077a4cd2f --- /dev/null +++ b/group_tags/fr_FR.yaml @@ -0,0 +1,4437 @@ +# 👍Fusion des mots-clés sources : "路过银河" (zhihu), auteur inconnu (Google Drive), Internet, etc. Nous remercions ces auteurs pour leur contribution désintéressée ! +# +# ⚠️Il est conseillé de ne pas modifier le contenu de ce fichier, car l'auteur de ce fichier peut le mettre à jour de manière irrégulière. Si vous modifiez ce fichier, cela peut entraîner des conflits lors des mises à jour. +# ⚠️Si vous souhaitez personnaliser les groupes de mots-clés, veuillez copier ce fichier, le renommer en "custom.yaml" et apporter les modifications dans "custom.yaml". +# ⚠️Le plug-in lira en priorité le fichier "custom.yaml". S'il n'existe pas, il lira ce fichier. +# +# ⚠️Si vous souhaitez uniquement ajouter votre propre contenu avant le fichier actuel, vous pouvez créer un fichier prepend.yaml. +# ⚠️Si vous souhaitez uniquement ajouter votre propre contenu après le fichier actuel, vous pouvez créer un fichier append.yaml. +# ⚠️custom.yaml: Remplace le fichier actuel +# ⚠️prepend.yaml: Ajoute avant le fichier actuel +# ⚠️append.yaml: Ajoute après le fichier actuel +# +# ⚠️Il est recommandé d'utiliser un éditeur de texte professionnel (comme Visual Studio Code) pour modifier ce fichier afin d'éviter les problèmes de codage et de formatage incorrects. +# ⚠️N'utilisez pas le Bloc-notes intégré de Windows pour modifier ce fichier. +# ⚠️Après modification, vous pouvez vérifier la validité du format du contenu sur https://www.yamllint.com/. + +# Format du contenu : +# - name: Nom de la catégorie de premier niveau +# groups: Liste des catégories de deuxième niveau +# - name: Nom de la catégorie de deuxième niveau +# color: Couleur par défaut du texte des mots-clés (peut être vide). Code couleur CSS, par exemple : #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: Liste de mots-clés +# - Mot-clé en anglais: Traduction localisée +# - Mot-clé en anglais: Traduction localisée +# ... + +# Les traductions localisées de ce contenu sont toutes issues de la traduction automatique et peuvent contenir des inexactitudes. Si vous en trouvez, n'hésitez pas à soumettre une demande de modification (PR) sur GitHub. +# Si vous constatez des erreurs de catégorisation, des erreurs de mots-clés ou des erreurs de traduction de mots-clés, veuillez soumettre un signalement (Issue) sur GitHub. + +- name: Personnage + groups: + - name: Objet + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1 fille + 1boy: 1 garçon + 2girls: 2 filles + 2boys: 2 garçons + 3girls: 3 filles + 3boys: 3 garçons + girl: fille + boy: garçon + solo: individuel + multiple_girls: plusieurs filles + little_girl: petite fille + little_boy: petit garçon + shota: shota + loli: loli + kawaii: mignon + mesugaki: mesugaki + adorable_girl: fille adorable + bishoujo: bishoujo + gyaru: gyaru + sisters: sœurs + ojousama: ojousama + female: femme + mature_female: femme mature + mature: mature + female_pervert: femme perverse + male: homme + milf: milf + otoko_no_ko: otoko_no_ko + crossdressing: travestissement + + - name: Identité + color: rgba(255, 123, 2, .4) + tags: + lifeguard: sauveteur + boxer: boxeur + scientist: scientifique + athletes: athlètes + office lady: femme de bureau + monk: moine + crobat: acrobate + nun: religieuse + nurse: infirmière + stewardess: hôtesse de l'air + student: étudiant + waitress: serveuse + teacher: enseignant + racer: coureur + police: policier + soldier: soldat + cheerleader: pom-pom girl + actor: acteur + actress: actrice + spy: espion + agent: agent + assassin: assassin + poet: poète + samurai: samouraï + dancing girl: danseuse + motorcyclist: motocycliste + hacker: pirate informatique + magician: magicien + detective: détective + doll: poupée + maid: femme de chambre + pilot: pilote + diver: plongeur + bar censor: censeur de bar + missionary: missionnaire + firefighter: pompier + goalkeeper: gardien de but + chef: chef + astronaut: astronaute + cashier: caissier + mailman: facteur + barista: barista + the hermit: l'ermite + makihitsuji: berger + office_lady: dame de bureau + race_queen: reine de la course + queen: reine + doctor: docteur + knight: chevalier + housemaid: femme de ménage + dancer: danseur + ballerina: ballerine + gym_leader: leader de gymnase + trap: piège + female: femme + harem: harem + idol: idole + male: homme + priest: prêtre + cleric: clerc + wa_maid: femme de ménage japonaise + yaoi: yaoi + yuri: yuri + albino: albinos + amputee: amputé + + - name: Personnage en deux dimensions + color: rgba(255, 123, 2, .4) + tags: + pokemon: Pokémon + teddy bear: ours en peluche + mario: Mario + pikachu: Pikachu + neon genesis evangelion: Neon Genesis Evangelion + hatsune miku: Hatsune Miku + harry potter: Harry Potter + doraemon: Doraemon + saint seiya: Les Chevaliers du Zodiaque + gojou satoru: Gojou Satoru + avengers: Avengers + mazinger: Mazinger + captain america: Captain America + crayon shin-chan: Crayon Shin-chan + slam dunk: Slam Dunk + sun wukong: Sun Wukong + witch: sorcière + miko: miko + ninja: ninja + vampire: vampire + knight: chevalier + magical_girl: fille magique + orc: orc + druid: druide + elf: elfe + fairy: fée + furry: furry + mermaid: sirène + kamen rider: Kamen Rider + magister: magister + spider-man: Spider-Man + santa alter: Père Noël Alter + monster_girl: fille monstre + cat_girl: fille chat + dog_girl: fille chien + fox_girl: fille renard + kitsune: kitsune + kyuubi: kyuubi + raccoon_girl: fille raton laveur + wolf_girl: fille loup + bunny_girl: fille lapin + horse_girl: fille cheval + cow_girl: fille vache + dragon_girl: fille dragon + centaur: centaure + slime_musume: fille slime + spider_girl: fille araignée + dominatrix: dominatrice + sailor_senshi: Sailor Senshi + mecha: mecha + mecha_musume: mecha musume + humanoid_robot_: robot humanoïde + cyborg: cyborg + angel: ange + devil: diable + dark_elf: elfe noir + imp: petit démon + succubus: succube + giantess: géante + minigirl: fille mini + monster: monstre + multiple girls: filles magiques + no humans: pas d'humains + + - name: Âge + color: rgba(255, 123, 2, .4) + tags: + toddler: tout-petit + kindergartener: élève de maternelle + child: enfant + underage: mineur + teenager: adolescent (13-19 ans) + teen: adolescent (13-19 ans) + early teen: début d'adolescence (11-15 ans) + adult: adulte + elder: personne âgée + old: vieux + loli: loli + shota: shota + + - name: Peau + color: rgba(255, 123, 2, .4) + tags: + white_skin: peau blanche + pale_skin: peau pâle + fair_skin: peau claire + brown_skin: peau brune + deep_skin: peau foncée + dark_skin: peau noire + black_skin: peau noire + shiny_skin: peau brillante + white_marble_glowing_skin: peau de marbre blanc lumineuse + tattoo: tatouage + tan: bronzage + tanlines: marques de bronzage + oil: peau grasse + + - name: Physique + color: rgba(255, 123, 2, .4) + tags: + skinny: maigre + plump: dodu + curvy: courbes généreuses + gyaru: gyaru + pregnant: enceinte + fat: gros + thin: mince + slender: élancé + glamor: glamour + tall: grand + petite: petite + chibi: chibi + muscular: musclé + + - name: Forme du visage + color: rgba(255, 123, 2, .4) + tags: + slender face: visage mince + round face: visage rond + oval face: visage ovale + baby face: visage de bébé + inverted triangle face: visage en triangle inversé + heart shaped face: visage en forme de cœur + diamond face: visage en forme de diamant + square face: visage carré + long face: visage long + triangular face: visage triangulaire + + - name: Cheveux + color: rgba(255, 123, 2, .4) + tags: + white hair: cheveux blancs + blonde hair: cheveux blonds + silver hair: cheveux argentés + grey hair: cheveux gris + purple hair: cheveux violets + red hair: cheveux roux + yellow hair: cheveux jaunes + green hair: cheveux verts + blue hair: cheveux bleus + black hair: cheveux noirs + brown hair: cheveux bruns + straight_hair: cheveux raides + short hair: cheveux courts + curly hair: cheveux bouclés + long hair: cheveux longs + pony-tail: queue de cheval + bunches: couettes + streaked hair: mèches + grey gradient hair: dégradé de cheveux gris + light brown hair: cheveux châtain clair + two-tone hair: cheveux bicolores + multicolored hair: cheveux multicolores + high ponytail: haute queue de cheval + twintails: couettes doubles + braided ponytail: queue de cheval tressée + ponytail: queue de cheval + short ponytail: petite queue de cheval + twin braids: tresses doubles + medium hair: cheveux mi-longs + very long hair: cheveux très longs + braided bangs: frange tressée + swept bangs: frange balayée + hair between eyes: cheveux entre les yeux + bob cut: coupe au carré + hime cut: coupe hime + crossed bangs: frange croisée + bangs: frange + blunt bangs: frange droite + air bangs: frange aérienne + hair wings: mèches latérales + long bangs: longue frange + side_blunt_bangs: frange latérale droite + centre parting bangs: frange séparée au centre + asymmetric bangs: frange asymétrique + disheveled hair: cheveux ébouriffés + wavy hair: cheveux ondulés + hair in takes: cheveux rassemblés + hair pink flowers: fleurs roses dans les cheveux + ahoge: ahoge + antenna hair: cheveux antenne + Side ponytail: queue de cheval latérale + forehead: front dégagé + drill hair: cheveux en spirale + hair bun: chignon + double bun: double chignon + messy hair: cheveux en désordre + hair_flaps: mèches de cheveux + + - name: Visage + color: rgba(255, 123, 2, .4) + tags: + makeup: maquillage + fundoshi: fond de teint + eyeshadow: fard à paupières + lipstick: rouge à lèvres + mascara: mascara + long_eyelashes: longs cils + red_lips_: lèvres rouges + facepaint: maquillage du visage + lipgloss: brillant à lèvres + colored_eyelashes: cils colorés + blush: blush + light_blush: blush léger + anime_style_blush: blush de style anime + nose_blush: blush sur le nez + nosebleed: saignement de nez + bruise_on_face: bleu sur le visage + facial_mark: marque faciale + forehead_mark: marque sur le front + anger_vein: veine de colère + mole: grain de beauté + mole_under_eye: grain de beauté sous l'œil + freckles: taches de rousseur + food_on_face: nourriture sur le visage + rice_on_face: riz sur le visage + cream_on_face: crème sur le visage + mustache: moustache + goatee: bouc + whisker_markings: marques de moustache + scar: cicatrice + scar_across_eye: cicatrice à travers l'œil + smoking_pipe: pipe + tattoo: tatouage + + - name: Oreille + color: rgba(255, 123, 2, .4) + tags: + elf ears: oreilles d'elfe + fake animal ears: fausses oreilles d'animal + cat ears: oreilles de chat + dog ears: oreilles de chien + fox ears: oreilles de renard + bunny ears: oreilles de lapin + bear ears: oreilles d'ours + wolf ears: oreilles de loup + horse ears: oreilles de cheval + cow ears: oreilles de vache + mouse ears: oreilles de souris + pig ears: oreilles de cochon + sheep ears: oreilles de mouton + deer ears: oreilles de cerf + goat ears: oreilles de chèvre + antelope ears: oreilles d'antilope + rhino ears: oreilles de rhinocéros + elephant ears: oreilles d'éléphant + bat ears: oreilles de chauve-souris + dragon ears: oreilles de dragon + demon ears: oreilles de démon + angel ears: oreilles d'ange + alien ears: oreilles d'alien + ear_blush: rougissement des oreilles + ear_ornament: ornement d'oreille + ear_piercing: piercing d'oreille + animal_ears: oreilles d'animal + ears_down: oreilles baissées + fake_animal_ears: fausses oreilles d'animal + floppy_ears: oreilles tombantes + animal_ear_fluff: oreilles d'animal duveteuses + fox_ears: oreilles de renard + cat_ears: oreilles de chat + lion_ears: oreilles de lion + jaguar_ears: oreilles de jaguar + tiger_ears: oreilles de tigre + dog_ears: oreilles de chien + coyote_ears: oreilles de coyote + bunny_ears: oreilles de lapin + horse_ears: oreilles de cheval + pointy_ears: oreilles pointues + long_pointy_ears: longues oreilles pointues + mouse_ears: oreilles de souris + raccoon_ears: oreilles de raton laveur + squirrel_ears: oreilles d'écureuil + bear_ears: oreilles d'ours + panda_ears: oreilles de panda + bat_ears: oreilles de chauve-souris + robot_ears: oreilles de robot + extra_ears: oreilles supplémentaires + ears_through_headwear: oreilles à travers un couvre-chef + alpaca_ears: oreilles d'alpaga + horns: cornes + fake_horns: fausses cornes + dragon_horns: cornes de dragon + oni_horns: cornes d'oni + antlers: bois de cerf + curled_horns: cornes bouclées + goat_horns: cornes de chèvre + hair_on_horn: cheveux sur la corne + + - name: Sourcil + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: sourcils épais + cocked eyebrow: sourcil relevé + short eyebrows: sourcils courts + v-shaped eyebrows: sourcils en forme de V + + - name: Yeux + color: rgba(255, 123, 2, .4) + tags: + blue eyes: yeux bleus + red eyes: yeux rouges + brown eyes: yeux marron + green eyes: yeux verts + purple eyes: yeux violets + yellow eyes: yeux jaunes + pink eyes: yeux roses + black eyes: yeux noirs + aqua eyes: yeux aqua + orange eyes: yeux orange + grey eyes: yeux gris + multicolored eyes: yeux multicolores + white eyes: yeux blancs + gradient eyes: yeux dégradés + closed eyes: yeux fermés + half-closed eyes: yeux mi-clos + crying with eyes open: pleurer les yeux ouverts + narrowed eyes: yeux plissés + hidden eyes: yeux cachés + heart-shaped eyes: yeux en forme de cœur + button eyes: yeux en bouton + cephalopod eyes: yeux de céphalopode + eyes visible through hair: yeux visibles à travers les cheveux + glowing eyes: yeux lumineux + empty eyes: yeux vides + rolling eyes: yeux révulsés + cross eyed: yeux qui convergent + blank eyes: yeux vides + no eyes: pas d'yeux + sparkling eyes: yeux étincelants + extra eyes: yeux supplémentaires + crazy eyes: yeux fous + solid circle eyes: yeux en cercle plein + solid oval eyes: yeux en ovale plein + uneven eyes: yeux asymétriques + blood from eyes: sang qui coule des yeux + eyeshadow: fard à paupières + red eyeshadow: fard à paupières rouge + blue eyeshadow: fard à paupières bleu + purple eyeshadow: fard à paupières violet + pink eyeshadow: fard à paupières rose + green eyeshadow: fard à paupières vert + bags under eyes: poches sous les yeux + ringed eyes: yeux cernés + covered eyes: yeux couverts + covering eyes: yeux couverts + shading eyes: yeux ombragés + devil eyes: yeux de démon + slit pupils: pupilles fendues + bloodshot eyes: yeux injectés de sang + tsurime: yeux en amande + tareme: yeux baissés + constricted pupils: pupilles contractées + devil pupils: pupilles de démon + snake pupils: pupilles de serpent + pupils sparkling: pupilles qui scintillent + flower-shaped pupils: pupilles en forme de fleur + heart-shaped pupils: pupilles en forme de cœur + heterochromia: hétérochromie + color contact lenses: lentilles de contact colorées + longeyelashes: longs cils + colored eyelashes: cils colorés + mole under eye: grain de beauté sous l'œil + light_eyes: yeux clairs + glowing_eye: œil lumineux + shiny_eyes: yeux brillants + sparkling_eyes: yeux étincelants + gradient_eyes: yeux dégradés + anime_style_eyes: yeux de style anime + water_eyes: yeux d'eau + beautiful_detailed_eyes: yeux magnifiquement détaillés + solid_oval_eyes_: yeux ovales pleins + solid_circle_pupils: pupilles en cercle plein + blush_stickers: autocollants de blush + heart_in_eye: cœur dans l'œil + evil_eyes: yeux diaboliques + crazy_eyes: yeux fous + empty_eyes: yeux vides + covered_eyes: yeux couverts + hollow_eyes: yeux creux + multicolored_eyes: yeux multicolores + ringed_eyes: yeux cernés + sanpaku: sanpaku (pupilles décalées) + mismatched_sclera: sclérotiques dépareillées + eye_relfection: reflet dans les yeux (sans effet) + mechanical_eye: œil mécanique + cephalopod_eyes: yeux de céphalopode + clock_eyes: yeux d'horloge + compound_eyes: yeux composés + fisheye: œil de poisson + devil_eyes: yeux de démon + bloodshot_eyes: yeux injectés de sang + blood_from_eyes: sang qui coule des yeux + aqua_eyes: yeux aqua + solid_eyes: yeux solides + sparkling_anime_eyes: yeux d'anime étincelants + blue_eyes: yeux bleus + brown_eyes: yeux marron + closed_eyes: yeux fermés + crying_with_eyes_open: pleurer les yeux ouverts + extra_eyes: yeux supplémentaires + eye_contact: contact visuel + eye_of_horus: œil d'Horus + eyeball: globe oculaire + eyeliner: eye-liner + eyes: yeux + glint: éclat dans les yeux + glowing_eyes: yeux lumineux + half-closed_eye: œil mi-clos (un seul œil) + half-closed_eyes: yeux mi-clos + horizontal_pupils: pupilles horizontales + jitome: regard méprisant + light_brown_eyes: yeux marron clair + no_eyes: pas d'yeux dessinés + one-eyed: œil unique + reflective_eyes: yeux réfléchissants + silver_eyes: yeux argentés + spiral_eyes: yeux en spirale + third_eye: troisième œil + uneven_eyes: yeux asymétriques + flaming_eye: œil enflammé + eyes_closed: yeux fermés + half_closed_eyes: yeux mi-clos + narrowed_eyes: yeux plissés + squinting: yeux plissés + tears: larmes + sharp_eyes: yeux perçants + slanted_eyes: yeux en amande + upturned_eyes: yeux en amande relevés + cross-eyed: yeux qui convergent + hair_over_eyes: cheveux sur les yeux + eyes_visible_through_hair: yeux visibles à travers les cheveux + hair_over_one_eye: cheveux sur un œil + one_eye_covered: un œil couvert + bags_under_eyes: poches sous les yeux + eyepatch: cache-œil + medical_eyepatch: cache-œil médical + scar_across_eye: cicatrice sur l'œil + no_blindfold: pas de bandeau sur les yeux + no_eyepatch: pas de cache-œil + ahegao: ahegao + + - name: Pupilles + color: rgba(255, 123, 2, .4) + tags: + pupils: pupilles + bright_pupils: pupilles lumineuses + heterochromia: hétérochromie + slit_pupils: pupilles fendues + snake_pupils: pupilles de serpent + symbol-shaped_pupils: pupilles en forme de symbole + heart-shaped_pupils: pupilles en forme de cœur + diamond-shaped_pupils: pupilles en forme de diamant + star-shaped_pupils: pupilles en forme d'étoile + dilated_pupils: pupilles dilatées + no_pupils: pas de pupilles + ringed_eyes: yeux cerclés + constricted_pupils: pupilles contractées + star_in_eye: étoile dans l'œil + x-shaped_pupils: pupilles en forme de X + horizontal_pupils: pupilles horizontales + dashed_eyes: yeux en pointillé + butterfly-shaped_pupils: pupilles en forme de papillon + rectangular_pupils: pupilles rectangulaires + square_pupils: pupilles carrées + dot_pupils: pupilles en forme de point + extra_pupils: pupilles supplémentaires + mismatched_pupils: pupilles dépareillées + "+_+": pupilles en forme de croix + cross-shaped_pupils: pupilles en forme de croix + purple_pupils: pupilles violettes + orange_pupils: pupilles orange + blue_pupils: pupilles bleues + symbol_in_eye: symbole dans l'œil + + - name: Nez + color: rgba(255, 123, 2, .4) + tags: + pointed nose: nez pointu + small nose: petit nez + big nose: gros nez + no_nose: pas de nez + dot_nose: nez en point + nose_bubble: bulle de nez + smelling: en train de sentir + nose: nez + nosebleed: saignement de nez + snot: morve + snout: museau d'animal + + - name: Bouche + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: bouche en forme de châtaigne + thick lips: lèvres épaisses + puffy lips: lèvres gonflées + lipstick: rouge à lèvres + heart-shaped mouth: bouche en forme de cœur + pout: bouder + open mouth: bouche ouverte + closed mouth: bouche fermée + shark mouth: bouche de requin + parted lips: lèvres entrouvertes + mole under mouth: grain de beauté sous la bouche + open_mouth: bouche ouverte + gasping: halètement + Slightly_open_mouth: bouche légèrement ouverte + wavy_mouth: bouche ondulée + close_mouth: bouche fermée + dot_mouth: bouche en point + no_mouth: pas de bouche + gag: bâillonner + gnaw: ronger + :3: bouche de chat + :o: bouche ouverte + :>: bouche en V + parted_lips: lèvres entrouvertes + bit_gag: bâillon de morsure + chestnut_mouth: bouche en forme de châtaigne + cleave_gag: bâillon de bâillon + closed_mouth: bouche fermée + covered_mouth: bouche couverte + extra_mouth: bouche supplémentaire + hair_in_mouth: cheveux dans la bouche + hair_tie_in_mouth: élastique à cheveux dans la bouche + homu: bouder + lips: lèvres + mouth: bouche + mouth_hold: tenir avec la bouche + oral: oral + pacifier: tétine + Pouted lips: lèvres boudeuses + sideways_mouth: bouche dessinée de côté + spoon_in_mouth: cuillère dans la bouche + triangle_mouth: bouche en triangle + saliva: salive + drooling: baver + mouth_drool: bave aux coins de la bouche + + - name: Dents + color: rgba(255, 123, 2, .4) + tags: + teeth: dents + upper_teeth: dents supérieures + fang: canine + skin_fang: canine de couleur chair + round_teeth: dents rondes + sharp_teeth: dents pointues + clenched_teeth: dents serrées + tongue: langue + buck_teeth: dents de lapin + fang_out: canine visible + fangs: crocs + spiked_club: massue à pointes + tooth: dent + toothbrush: brosse à dents + tusks: défenses + shark_mouth: dents de requin + + - name: Langue + color: rgba(255, 123, 2, .4) + tags: + :q: langue sur la lèvre supérieure + :p: langue sur la lèvre inférieure + ;p: clin d'œil avec la langue sortie + french_kiss: baiser français + long_tongue: longue langue + oral_invitation: invitation orale + tongue: langue + tongue_out: langue sortie + uvula: luette + + - name: Ongles + color: rgba(255, 123, 2, .4) + tags: + fingernails: ongles des doigts + toenails: ongles des orteils + nail_polish: vernis à ongles + toenail_polish: vernis à ongles des pieds + black_nails: ongles noirs + red_nails: ongles rouges + pink_nails: ongles roses + long_fingernails: longs ongles des doigts + nail: ongle + multicolored_nails: ongles multicolores + nail_art: art des ongles + brown_vest: gilet marron + + - name: Épaule + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: épaules nues + collarbonea: clavicules + armpits: aisselles + armpit_crease: pli de l'aisselle + + - name: Poitrine + color: rgba(255, 123, 2, .4) + tags: + chest: poitrine + flat chest: poitrine plate + small_breasts: petits seins + medium breasts: poitrine moyenne + big breasts: gros seins + huge breasts: seins énormes + gigantic breasts: seins gigantesques + between breasts: entre les seins + breasts apart: seins écartés + hanging breasts: seins qui tombent + bouncing breasts: seins qui rebondissent + cleavage: décolleté + areola: aréole + nipples: mamelons + pectorals: pectoraux + large_pectorals: grands pectoraux + unbuttoned clothes: vêtements déboutonnés + + - name: Taille + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: taille étroite + slender_waist: taille fine + + - name: Abdomen + color: rgba(255, 123, 2, .4) + tags: + midriff: abdomen + belly: ventre + absolute_territory: tablettes de chocolat + inflation: ventre gonflé + navel: nombril + groin: aine + pregnant: enceinte + + - name: Ailes + color: rgba(255, 123, 2, .4) + tags: + wings: ailes + bat_wings: ailes de chauve-souris + butterfly_wings: ailes de papillon + black_wings: ailes noires + demon_wings: ailes de démon + asymmetrical_wings: ailes asymétriques + detached_wings: ailes détachées + fairy_wings: ailes de fée + fake_wings: fausses ailes + fiery_wings: ailes enflammées + insect_wings: ailes d'insecte + large_wings: grandes ailes + low_wings: ailes basses + mini_wings: mini ailes + multicolored_wings: ailes multicolores + multiple_wings: ailes multiples + no_wings: pas d'ailes + winged_helmet: casque ailé + +- name: Vêtements et accessoires + groups: + - name: Tenue formelle + color: rgba(230, 84, 128, .4) + tags: + suit: Costume + tuxedo: Queue-de-pie + formal_dress: Robe de soirée + evening_gown: Robe de soirée + canonicals: Tenue de soirée + cocktail_dress: Robe de cocktail + gown: Robe longue + japanese_clothes: Vêtements japonais + kimono: Kimono + sleeveless_kimono: Kimono sans manches + short_kimono: Kimono court + print_kimono: Kimono imprimé + furisode: Furisode (partie du kimono) + obi: Obi (ceinture pour kimono) + sash: Écharpe + cheongsam: Qipao + china_dress: Qipao + print_cheongsam: Qipao imprimé + pelvic_curtain: Devant de la robe de qipao + wedding_dress: Robe de mariée + uchikake: Uchikake (robe de mariée japonaise) + school_uniform: Uniforme scolaire + sailor: Uniforme marin + serafuku: Uniforme marin + summer_uniform: Uniforme d'été + kindergarten_uniform: Uniforme de jardin d'enfants + police_uniform: Uniforme de police + naval_uniform: Uniforme naval + military_uniform: Uniforme militaire + ss_uniform/nazi_uniform: Uniforme SS/nazi + maid: Costume de femme de chambre + stile_uniform: Uniforme de femme de chambre + miko: Tenue de prêtresse shinto + overalls: Salopette + business_suit: Costume de bureau + nurse: Uniforme d'infirmière + chef_uniform: Tenue de chef cuisinier + labcoat: Blouse de laboratoire + cheerleader: Uniforme de pom-pom girl + band_uniform: Uniforme de fanfare + space_suit: Combinaison spatiale + leotard: Justaucorps + domineering: Costume de religieuse + + - name: Style + color: rgba(230, 84, 128, .4) + tags: + china_dress: Vêtements chinois + chinese_style: Style chinois + traditional_clothes: Vêtements traditionnels|Vêtements ethniques + japanese_clothes: Vêtements japonais + hanten_(clothes): Hanten (vêtement japonais) + hanbok: Hanbok + korean_clothes: Vêtements coréens + western: Style occidental + german_clothes: Vêtements allemands + gothic: Style gothique + lolita: Style Lolita + gothic_lolita: Style gothique Lolita + byzantine_fashion: Mode byzantine + Tropical: Caractéristiques tropicales + indian_style: Style indien + Ao_Dai: Ao Dai (uniforme vietnamien) + ainu_clothes: Vêtements ainu + arabian_clothes: Vêtements arabes + egyptian_clothes: Vêtements égyptiens + costume: Costume + animal_costume: Costume d'animal + bunny_costume: Costume de lapin + adapted_costume: Costume adapté + cat_costume: Costume de chat + dog_costume: Costume de chien + bear_costume: Costume d'ours + embellished_costume: Costume orné + santa_costume: Costume de Père Noël + halloween_costume: Costume d'Halloween + kourindou_tengu_costume: Costume de tengu de Kourindou + alternate_costume: Costume différent de l'original + costume_switch: Jeu de changement de costume + meme_attire: Tenue de mème + + - name: Tenue décontractée + color: rgba(230, 84, 128, .4) + tags: + casual: Décontracté + loungewear: Vêtements d'intérieur + hoodie: Sweat à capuche + homewear: Vêtements d'intérieur + pajamas: Pyjama + nightgown: Chemise de nuit + sleepwear: Vêtements de nuit + babydoll: Nuisette + print_pajamas: Pyjama imprimé + polka_dot_pajamas: Pyjama à pois + yukata: Yukata (kimono d'été) + chinese_clothes: Vêtements chinois + hanfu: Hanfu + Taoist robe: Robe taoïste + robe: Robe longue + robe_of_blending: Robe de mélange + cloak: Cape + hooded_cloak: Cape à capuche + winter_clothes: Vêtements d'hiver + down jacket: Doudoune + santa: Costume du Père Noël + harem_outfit: Tenue de harem + shrug_(clothing): Boléro + + - name: Tenue de sport + color: rgba(230, 84, 128, .4) + tags: + sportswear: Vêtements de sport + gym_uniform: Uniforme de gym + athletic_leotard: Justaucorps de gymnastique + tennis_uniform: Tenue de tennis + baseball_uniform: Uniforme de baseball + letterman_jacket: Veste de sport + volleyball_uniform: Tenue de volley-ball + biker_clothes: Vêtements de cycliste + bikesuit: Combinaison de cycliste + wrestling_outfit: Tenue de lutte + dougi: Tenue de arts martiaux + + - name: Maillots de bain + color: rgba(230, 84, 128, .4) + tags: + swimsuit: Maillot de bain + swimwear: Maillot de bain + wet_swimsuit: Maillot de bain mouillé + school_swimsuit: Maillot de bain scolaire (sukumizu) + new_school_swimsuit: Nouveau maillot de bain scolaire + old_school_swimsuit: Ancien maillot de bain scolaire + competition_school_swimsuit: Maillot de bain de compétition scolaire + competition_swimsuit: Maillot de bain de compétition + casual_one-piece_swimsuit: Maillot de bain une pièce décontracté + front_zipper_swimsuit: Maillot de bain à fermeture éclair frontale + highleg_swimsuit: Maillot de bain à échancrure haute + one-piece_swimsuit: Maillot de bain une pièce + swimsuit_of_perpetual_summer: Maillot de bain d'été éternel + bikini: Bikini + highleg_bikini: Bikini à échancrure haute + lowleg_bikini: Bikini à échancrure basse + slingshot_swimsuit: Maillot de bain slingshot + sailor_bikini: Bikini style marin + shell_bikini: Bikini coquillage + sports_bikini: Bikini de sport + string_bikini: Bikini à ficelles + strapless_bikini: Bikini sans bretelles + side-tie_bikini: Bikini à lanières latérales + front-tie_bikini_top: Haut de bikini à nouer devant + multi-strapped_bikini: Bikini à plusieurs lanières + thong_bikini: Bikini string + front-tie_bikini: Bikini à nouer devant + frilled_bikini: Bikini à volants + o-ring_bikini: Bikini avec anneau en O + eyepatch_bikini: Bikini avec cache-œil + layered_bikini: Bikini superposé + bow_bikini: Bikini avec nœud papillon + frilled_swimsuit: Maillot de bain à volants + polka_dot_swimsuit: Maillot de bain à pois + striped_swimsuit: Maillot de bain à rayures + striped_bikini: Bikini à rayures + plaid_bikini: Bikini à carreaux + polka_dot_bikini: Bikini à pois + print_bikini: Bikini imprimé + american_flag_bikini: Bikini avec drapeau américain + german_flag_bikini: Bikini avec drapeau allemand + impossible_swimsuit: Maillot de bain avec peinture corporelle + bikini_top: Haut de bikini + bikini_top_only: Haut de bikini seulement + bikini_top_removed: Haut de bikini enlevé + bikini_bottom_only: Bas de bikini seulement + bikini_bottom: Bas de bikini + untied_bikini: Bikini dénoué + bikini_aside: Bikini déplacé sur le côté + swimsuit_aside: Maillot de bain déplacé sur le côté + swimsuit_under_clothes: Maillot de bain sous les vêtements + torn_swimsuit: Maillot de bain déchiré + bikini_skirt: Jupe de bikini + swim_briefs: Slip de bain + swim_cap: Bonnet de bain + swim_trunks: Short de bain + male_swimwear: Maillot de bain pour homme + + - name: Uniforme + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: Uniforme adapté + anzio_military_uniform: Uniforme militaire d'Anzio + anzio_school_uniform: Uniforme scolaire d'Anzio + aria_company_uniform: Uniforme de la compagnie Aria + ashford_academy_uniform: Uniforme de l'académie Ashford + bc_freedom_military_uniform: Uniforme militaire de BC Freedom + chaldea_uniform: Uniforme de Chaldea + chi-hatan_military_uniform: Uniforme militaire de Chi-Ha-Tan + fleur_de_lapin_uniform: Uniforme de Fleur de Lapin + garreg_mach_monastery_uniform: Uniforme du monastère de Garreg Mach + gem_uniform_(houseki_no_kuni): Uniforme des gemmes (Houseki no Kuni) + hanasakigawa_school_uniform: Uniforme scolaire de Hanasakigawa + hikarizaka_private_high_school_uniform: Uniforme de l'école privée Hikarizaka + homurahara_academy_uniform: Uniforme de l'académie Homurahara + kamiyama_high_school_uniform: Uniforme du lycée Kamiyama + keizoku_military_uniform: Uniforme militaire de Keizoku High School + kita_high_school_uniform: Uniforme du lycée Kita + kiyosumi_school_uniform: Uniforme du lycée Kiyosumi + luna_nova_school_uniform: Uniforme de l'école Luna Nova + meiji_schoolgirl_uniform: Uniforme d'écolière de l'ère Meiji + mitakihara_school_uniform: Uniforme de l'école Mitakihara + nami_junior_high_school_uniform: Uniforme du collège Nami + nanairogaoka_middle_school_uniform: Uniforme du collège Nanairogaoka + nanamori_school_uniform: Uniforme de l'école Nanamori + naoetsu_high_school_uniform: Uniforme du lycée Naoetsu + national_shin_ooshima_school_uniform: Uniforme national de l'école Shin Ooshima + ooarai_military_uniform: Uniforme militaire d'Ooarai + ooarai_school_uniform: Uniforme scolaire d'Ooarai + otonokizaka_school_uniform: Uniforme scolaire d'Otonokizaka + paradis_military_uniform: Uniforme militaire de Paradis + polar_chaldea_uniform: Uniforme polaire de Chaldea + pravda_military_uniform: Uniforme militaire de Pravda + pravda_school_uniform: Uniforme scolaire de Pravda + rabbit_house_uniform: Uniforme de Rabbit House + raimon_soccer_uniform: Uniforme de football de Raimon + ryouou_school_uniform: Uniforme de l'école Ryouou + sailor_senshi_uniform: Uniforme des Sailor Senshi + sakugawa_school_uniform: Uniforme de l'école Sakugawa + sakuragaoka_high_school_uniform: Uniforme du lycée Sakuragaoka + saunders_military_uniform: Uniforme militaire de Saunders + saunders_school_uniform: Uniforme scolaire de Saunders + seishou_elementary_school_uniform: Uniforme de l'école primaire Seishou + shinda_sekai_sensen_uniform: Uniforme de la ligne de front du monde des morts + shuuchiin_academy_uniform: Uniforme de l'académie Shuuchiin + shuujin_academy_uniform: Uniforme de l'académie Shuujin + st._gloriana's_military_uniform: Uniforme militaire de St. Gloriana + st._gloriana's_school_uniform: Uniforme scolaire de St. Gloriana + starlight_academy_uniform: Uniforme de l'académie Starlight + tokisadame_school_uniform: Uniforme de l'école Tokisadame + tokiwadai_school_uniform: Uniforme de l'école Tokiwadai + tomoeda_elementary_school_uniform: Uniforme de l'école primaire Tomoeda + tsab_ground_military_uniform: Uniforme militaire terrestre du TSAB + u.a._school_uniform: Uniforme scolaire de l'académie U.A. + uranohoshi_school_uniform: Uniforme scolaire d'Uranohoshi + yasogami_school_uniform: Uniforme du lycée Yasogami + mismatched_bikini: Bikini dépareillé + multicolored_bikini: Bikini multicolore + + - name: Haut + color: rgba(230, 84, 128, .4) + tags: + blouse: Blouse + white_shirt: Chemise blanche + collared_shirt: Chemise à col + dress_shirt: Chemise habillée + sailor_shirt: Chemise style marin + cropped_shirt: Chemise courte + t-shirt: T-shirt + casual T-shirts: T-shirts décontractés + short sleeve T-shirts: T-shirts à manches courtes + off-shoulder_shirt: Chemise épaules dénudées + shrug_(clothing): Boléro + cardigan: Gilet + criss-cross_halter: Haut à bretelles croisées + frilled_shirt: Chemise à volants + sweatshirt: Sweat-shirt + hawaiian_shirt: Chemise hawaïenne + hoodie: Sweat à capuche + Impossible shirt: Chemise ajustée de manière illogique + kappougi: Veste de cuisine + plaid_shirt: Chemise à carreaux + polo_shirt: Polo + print_shirt: Chemise imprimée + shirt: Chemise + sleeveless_hoodie: Sweat à capuche sans manches + sleeveless_shirt: Chemise sans manches + striped_shirt: Chemise à rayures + tank_top: Débardeur + vest: Gilet + waistcoat: Gilet + camisole: Caraco + tied_shirt: Chemise nouée + undershirt: Maillot de corps + crop_top: Crop top + highleg: Vêtement à échancrure haute + clothing_cutout: Vêtement découpé + back_cutout: Haut avec découpe dans le dos + cleavage_cutout: Haut avec découpe au niveau du décolleté + navel_cutout: Haut avec découpe au niveau du nombril + midriff: Haut montrant le ventre + heart_cutout: Haut avec découpe en forme de cœur + torn_clothes: Vêtements déchirés + torn_shirt: Chemise déchirée + undressing: En train de se déshabiller + clothes_down: Vêtements qui tombent + shirt_lift: Relever la chemise + shirt_pull: Tirer la chemise + shirt_tucked_in: Chemise rentrée + clothes_tug: Tirer sur les vêtements + shirt_tug: Tirer sur la chemise + untucked_shirt: Chemise déboutonnée + lifted_by_self: Relever ses propres vêtements + untied: Défaire ses propres vêtements + open_clothes: Vêtements ouverts + unbuttoned shirt: Chemise déboutonnée + button_gap: Espacement entre les boutons (non déboutonné) + partially_unbuttoned: Partiellement déboutonné + partially_unzipped: Partiellement dézippé + clothes_removed: Vêtements enlevés + shirt_removed: Chemise enlevée + wardrobe_error: Problème de tenue vestimentaire + undersized_clothes: Vêtements trop petits + tight: Vêtements serrés + wedgie: Vêtements coincés (string apparent) + wardrobe_malfunction: Problème de tenue vestimentaire (comme un décollement) + taut_shirt: Chemise tendue + taut_clothes: Vêtements tendus + underbust: Sous la poitrine + oversized_clothes: Vêtements trop grands + oversized_shirt: Chemise trop grande + borrowed_garments: Vêtements empruntés (du petit ami) + strap_slip: Bretelle qui glisse (dévoilant) + wet_shirt: Chemise mouillée + clothes_theft: Vol de vêtements + + - name: Manteau + color: rgba(230, 84, 128, .4) + tags: + blazer: Blazer + overcoat: Manteau + double-breasted: Veste à double boutonnage + long_coat: Manteau long + haori: Haori (un type de veste ample) + winter_coat: Manteau d'hiver + hooded_coat: Manteau à capuche + fur_coat: Manteau en fourrure + fur-trimmed_coat: Manteau avec garniture en fourrure + duffel_coat: Manteau en drap épais + fishnet_top: Haut en résille + parka: Parka + jacket: Veste + jacket_partially_removed: Veste partiellement enlevée + jacket_removed: Veste enlevée + open_jacket: Veste ouverte (avec les jambes écartées) + cropped_jacket: Veste courte + track_jacket: Veste de sport + hooded_track_jacket: Veste de sport à capuche + military_jacket: Veste militaire + camouflage_jacket: Veste camouflage + leather_jacket: Veste en cuir + letterman_jacket: Veste de lettreman + bomber_jacket: Blouson aviateur + denim_jacket: Veste en jean + loating_jacket: Veste décontractée + fur-trimmed_jacket: Veste avec garniture en fourrure + two-tone_jacket: Veste bicolore + trench_coat: Trench-coat + furisode: Furisode (partie d'un kimono) + windbreaker: Coupe-vent + raincoat: Imperméable + hagoromo: Hagoromo (manteau d'ange) + tunic: Tunique + cape: Cape + capelet: Capelet + winter_clothes: Vêtements d'hiver + sweater: Pull + pullover_sweaters: Pulls à enfiler + ribbed_sweater: Pull à côtes + sweater_vest: Gilet en laine + backless_sweater: Pull dos nu + aran_sweater: Pull irlandais + beige_sweater: Pull beige + brown_sweater: Pull marron + hooded_sweater: Pull à capuche + off-shoulder_sweater: Pull épaules dénudées + striped_sweater: Pull rayé + virgin_killer_sweater: Pull "Tueur de vierges" + down_jacket: Doudoune + puffer_jacket: Doudoune matelassée + + - name: Autre + color: rgba(230, 84, 128, .4) + tags: + transparent: Transparent + burnt_clothes: Vêtements brûlés + dissolving_clothes: Vêtements qui se dissolvent + dirty_clothes: Vêtements sales + expressive_clothes: Vêtements expressifs + impossible_clothes: Vêtements avec un degré d'emballage irréaliste + living_clothes: Vêtements vivants + leotard_under_clothes: Justaucorps sous les vêtements + multicolored_clothes: Vêtements multicolores + ofuda_on_clothes: Amulettes collées sur les vêtements + wringing_clothes: Essorer les vêtements + clothesline: Étendre le linge + shiny_clothes: Vêtements brillants + kariginu: Kariginu (vêtement traditionnel japonais) + front-tie_top: Haut noué à l'avant + jacket_on_shoulders: Veste sur les épaules + short_jumpsuit: Combinaison courte + harness: Harnais + rigging: Accastillage + aiguillette: Aiguillette + + - name: Taille + color: rgba(230, 84, 128, .4) + tags: + apron: Tablier + waist_apron: Tablier à la taille + maid_apron: Tablier de femme de chambre + bow tied at the waist: Nœud papillon attaché à la taille + waist_cape: Cape à la taille + clothes_around_waist: Vêtements autour de la taille + jacket_around_waist: Veste autour de la taille + sweater_around_waist: Pull autour de la taille + loincloth: Pagne + bustier: Bustier + corset: Corset + girdle: Gaine + + - name: Armure + color: rgba(230, 84, 128, .4) + tags: + armor: Armure + bikini_armor: Armure bikini + full_armor: Armure complète + plate_armor: Armure de plaques + japanese_armor: Armure japonaise + kusazuri: Kusazuri (partie inférieure d'une armure japonaise) + power_armor: Armure motorisée + mecha: Mécha + helmet: Casque + kabuto: Kabuto (casque japonais) + off-shoulder_armor: Armure sans épaules + shoulder_armor: Épaulettes + muneate: Muneate (protection de poitrine pour le kyudo japonais) + breastplate: Plastron + faulds: Jupette + greaves: Grèves + shin_guards: Protège-tibias + armored_boots: Bottes armurées + + - name: Jupe + color: rgba(230, 84, 128, .4) + tags: + dress: Robe + microdress: Micro-robe + long_dress: Robe longue + off-shoulder_dress: Robe épaules dénudées + strapless_dress: Robe sans bretelles + backless_dress: Robe dos nu + halter_dress: Robe à bretelles croisées dans le dos + sundress: Robe d'été + sleeveless_dress: Robe sans manches + sailor_dress: Robe de marin + summer_dress: Robe d'été + china_dress: Tenue chinoise + pinafore_dress: Robe tablier + sweater_dress: Robe-pull + wedding_dress: Robe de mariée + armored_dress: Robe armurée + frilled_dress: Robe à volants + lace-trimmed_dress: Robe avec garniture en dentelle + collared_dress: Robe à col + fur-trimmed_dress: Robe avec garniture en fourrure + layered_dress: Robe en couches + pleated_dress: Robe plissée + taut_dress: Robe ajustée + pencil_dress: Robe crayon + impossible_dress: Vêtement trop serré + multicolored_dress: Robe multicolore + striped_dress: Robe à rayures + checkered_skirt: Jupe à carreaux + plaid_dress: Robe à carreaux + ribbed_dress: Robe à côtes + polka_dot_dress: Robe à pois + print_dress: Robe imprimée + vertical-striped_dress: Robe à rayures verticales + see-through_dress: Robe transparente + skirt: Jupe + microskirt: Micro-jupe + miniskirt: Mini-jupe + skirt_suit: Tailleur-jupe + bikini_skirt: Jupe de bikini + pleated_skirt: Jupe plissée + pencil_skirt: Jupe crayon + bubble_skirt: Jupe bouffante + tutu: Tutu + ballgown: Robe de bal + pettiskirt: Jupon + showgirl_skirt: Jupe de danseuse de cabaret + Medium length skirt: Jupe de longueur moyenne + beltskirt: Jupe avec ceinture + denim_skirt: Jupe en jean + suspender_skirt: Jupe à bretelles + skirt_set: Jupe assortie à un haut + long_skirt: Jupe longue + summer_long_skirt: Jupe longue d'été + overskirt: Surjupe + hakama_skirt: Jupe hakama + high-waist_skirt: Jupe taille haute + kimono_skirt: Jupe kimono + suspender_long_skirt: Jupe longue à bretelles + chiffon_skirt: Jupe en mousseline + frilled_skirt: Jupe à volants + fur-trimmed_skirt: Jupe avec garniture en fourrure + lace_skirt: Jupe en dentelle + lace-trimmed_skirt: Jupe avec garniture en dentelle + ribbon-trimmed_skirt: Jupe avec garniture en ruban + layered_skirt: Jupe à plusieurs couches + print_skirt: Jupe imprimée + multicolored_skirt: Jupe multicolore + striped_skirt: Jupe à rayures + vertical-striped_skirt: Jupe à rayures verticales + plaid_skirt: Jupe à carreaux + flared_skirt: Jupe évasée + floral_skirt: Jupe à motifs floraux + + - name: Interaction avec la jupe + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: Tenir la jupe avec élégance + skirt_tug: Tirer sur la jupe + dress_tug: Presser la jupe + skirt_lift: Soulever la jupe + skirt_around_one_leg: Porter une jupe sur une jambe + skirt_removed: Jupe enlevée + dress_removed: Robe enlevée + open_skirt: Jupe ouverte + + - name: Pantalon + color: rgba(230, 84, 128, .4) + tags: + dress_bow: Nœud papillon sur la robe + dressing_another: Habiller quelqu'un d'autre + shorts_under_skirt: Shorts sous la jupe + side_slit: Fente latérale + shorts: Short + micro_shorts: Micro-short + short_shorts: Short court + hot_pants: Short court + cutoffs: Short coupé + striped_shorts: Short rayé + suspender_shorts: Short à bretelles + denim_shorts: Short en jean + puffy_shorts: Short bouffant + dolphin_shorts: Short style "dauphin" + dolfin_shorts: Short style "dauphin" + tight_pants: Pantalon moulant + crotchless_pants: Pantalon sans entrejambe + track_pants: Pantalon de jogging + yoga_pants: Pantalon de yoga + bike_shorts: Short de cyclisme + gym_shorts: Short de sport + pants: Pantalon + puffy_pants: Pantalon bouffant + pumpkin_pants: Pantalon "citrouille" + hakama_pants: Pantalon hakama + harem_pants: Pantalon sarouel + bloomers: Bloomers + buruma: Buruma (short pour filles) + jeans: Jeans + cargo_pants: Pantalon cargo + camouflage_pants: Pantalon camouflage + capri_pants: Pantalon capri + chaps: Chaps (pantalon en cuir) + jumpsuit: Combinaison + lowleg_pants: Pantalon taille basse + plaid_pants: Pantalon à carreaux + single_pantsleg: Pantalon avec une seule jambe + striped_pants: Pantalon rayé + + - name: Interaction avec le pantalon + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: Vêtement asymétrique + leotard_aside: Écarter le justaucorps sur le côté + open_fly: Braguette ouverte + pants_down: Pantalon baissé + pants_rolled_up: Pantalon retroussé + pants_tucked_in: Pantalon rentré + torn_jeans: Jeans déchirés + torn_pants: Pantalon déchiré + torn_shorts: Short déchiré + + - name: Chaussettes + color: rgba(230, 84, 128, .4) + tags: + bodystocking: Combinaison intégrale + pantyhose: Collants + leggings: Leggings + legwear: Vêtements pour les jambes (général) + thighhighs: Cuissardes + kneehighs: Chaussettes montantes + socks: Chaussettes + bare_legs: Jambes nues + black_bodystocking: Combinaison intégrale noire + white_bodystocking: Combinaison intégrale blanche + stocking_under_clothes: Bas sous les vêtements + black_pantyhose: Collants noirs + white_pantyhose: Collants blancs + thighband_pantyhose: Collants avec bandeau pour la cuisse + pantylines: Collants moulants (qui soulignent les lignes) + single_leg_pantyhose: Collants sur une seule jambe + panties_under_pantyhose: Culotte sous les collants + fishnets: Bas résille + stirrup_legwear: Bas à lanières + toeless_legwear: Bas à orteils ouverts + mismatched_legwear: Vêtements pour les jambes dépareillés + two-tone_legwear: Vêtements pour les jambes bicolores + asymmetrical_legwear: Vêtements pour les jambes asymétriques + uneven_legwear: Vêtements pour les jambes de longueurs différentes + white_thighhighs: Cuissardes blanches + black_thighhighs: Cuissardes noires + pink_thighhighs: Cuissardes roses + suspenders: Porte-jarretelles + garter_straps: Bretelles de porte-jarretelles + torn_legwear: Vêtements pour les jambes déchirés + torn_thighhighs: Cuissardes déchirées + see-through_legwear_: Vêtements pour les jambes transparents + frilled_legwear: Vêtements pour les jambes à volants + lace-trimmed_legwear: Vêtements pour les jambes avec garniture en dentelle + seamed_legwear: Vêtements pour les jambes avec couture + back-seamed_legwear: Vêtements pour les jambes avec couture arrière + animal_ear_legwear: Vêtements pour les jambes avec oreilles d'animaux + striped_legwear: Vêtements pour les jambes à rayures + vertical-striped_legwear: Vêtements pour les jambes à rayures verticales + polka_dot_legwear: Vêtements pour les jambes à pois + print_legwear: Vêtements pour les jambes imprimés + legwear_under_shorts: Vêtements pour les jambes sous un short + over-kneehighs: Cuissardes par-dessus le genou + bobby_socks: Chaussettes blanches + tabi: Tabi (chaussettes japonaises traditionnelles) + loose_socks: Chaussettes bouffantes + ankle_socks: Chaussettes cheville + leg_warmers: Jambières + single_sock: Chaussette unique + striped_socks: Chaussettes rayées + + - name: Interaction avec les chaussettes + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: Ouverture dans les chaussettes + thighhighs_under_boots: Cuissardes sous les bottes + adjusting_legwear: Ajuster les vêtements pour les jambes + pantyhose_pull: Tirer sur les collants + socks_removed: Chaussettes enlevées + sock_pull: Tirer sur les chaussettes + thighhighs_pull: Tirer sur les cuissardes + + - name: Autre + color: rgba(230, 84, 128, .4) + tags: + garters: Jarretelles + leg_garter: Jarretière pour la jambe + garter_straps: Bretelles de porte-jarretelles + thigh_strap: Sangle pour la cuisse + thigh_ribbon: Ruban pour la cuisse + leg_ribbon: Ruban pour la jambe + bandaid_on_leg: Pansement sur la jambe + bandaged_leg: Jambe bandée + ankle_lace-up: Laçage à la cheville + thigh_holster: Étui de cuisse + bandaid_on_knee: Pansement sur le genou + argyle_legwear: Vêtements pour les jambes à losanges + bow_legwear: Vêtements pour les jambes avec nœud + arm_garter: Jarretière pour le bras + + - name: Matériaux + color: rgba(230, 84, 128, .4) + tags: + armored: Armuré + canvas: Toile + denim: Denim + fluffy: Moelleux + fur: Fourrure + latex: Latex + leather: Cuir + see-through: Transparent + spandex: Spandex + tight: Moulant + + - name: Décorations + color: rgba(230, 84, 128, .4) + tags: + frilled: À volants + center_frills: Volants centraux + crease: Plissé + layered: Superposé + lace: Dentelle + fur_trim: Garniture en fourrure + fur-trimmed: Garni de fourrure + fine_fabric_emphasis: Accent sur les beaux tissus + latex_thighhighs: Cuissardes en latex + see-through_thighhighs: Cuissardes transparentes + ass_cutout: Vêtement avec découpe pour les fesses + asymmetrical_clothes: Vêtements asymétriques + back_bow: Nœud papillon dans le dos + costume_switch: Changement de costume + cross-laced_clothes: Vêtements lacés en croix + double_vertical_stripe: Vêtements avec deux rayures verticales + halter_top: Haut à bretelles + multicolored_legwear: Vêtements pour les jambes multicolores + navy_blue_legwear: Vêtements pour les jambes bleu marine + nontraditional_miko: Miko non traditionnelle + side_cutout: Vêtement avec découpe latérale + side_slit: Fente latérale + sideless_outfit: Tenue sans côté + single_kneehigh: Vêtement pour les jambes sur une seule jambe + single_vertical_stripe: Vêtement avec une seule rayure verticale + turtleneck: Col roulé + two-sided_fabric: Tissu à deux faces + o-ring: Vêtement avec anneau en O + o-ring_top: Haut avec anneau en O + fringe_trim: Garniture à franges + loose_belt: Ceinture lâche + pom_pom_(clothes): Pompon (accessoire de vêtement) + drawstring: Cordon de serrage + full-length_zipper: Fermeture éclair sur toute la longueur + gathers: Plis + gusset: Soufflet + breast_pocket: Poche poitrine + + - name: Motif + color: rgba(230, 84, 128, .4) + tags: + argyle: Motif losange + checkered: Motif à carreaux + colored_stripes: Rayures colorées + diagonal_stripes: Rayures diagonales + horizontal_stripes: Rayures horizontales + multicolored_stripes: Rayures multicolores + polka_dot_: Motif à pois + ribbed: Côtelé + striped: Rayé + unmoving_pattern: Motif immobile + vertical_stripes: Rayures verticales + plaid: Motif écossais + animal_print: Imprimé animal + cat_print: Imprimé de chat + bear_print: Imprimé d'ours + bird_print: Imprimé d'oiseau + bunny_print: Imprimé de lapin + cow_print: Imprimé de vache + dragon_print: Imprimé de dragon + fish_print: Imprimé de poisson + frog_print: Imprimé de grenouille + shark_print: Imprimé de requin + snake_print: Imprimé de serpent + zebra_print: Imprimé de zèbre + tiger_print: Imprimé de tigre + leopard_print: Imprimé de léopard + jaguar_print: Imprimé de jaguar + bat_print: Imprimé de chauve-souris + aardwolf_print: Imprimé d'aardwolf + african_wild_dog_print: Imprimé de lycaon + cheetah_print: Imprimé de guépard + dog_print: Imprimé de chien + fox_print: Imprimé de renard + giraffe_print: Imprimé de girafe + panda_print: Imprimé de panda + sand_cat_print: Imprimé de chat des sables + whale_print: Imprimé de baleine + white_tiger_print: Imprimé de tigre blanc + goldfish_print: Imprimé de poisson rouge + wing_print: Imprimé d'aile + spider_web_print: Imprimé de toile d'araignée + butterfly_print: Imprimé de papillon + floral_print: Imprimé floral + leaf_print: Imprimé de feuille + clover_print: Imprimé de trèfle + maple_leaf_print: Imprimé de feuille d'érable + rose_print: Imprimé de rose + strawberry_print: Imprimé de fraise + cherry_print: Imprimé de cerise + bamboo_print: Imprimé de bambou + carrot_print: Imprimé de carotte + hibiscus_print: Imprimé d'hibiscus + jack-o'-lantern_print: Imprimé de citrouille + petal_print: Imprimé de pétale + sunflower_print: Imprimé de tournesol + watermelon_print: Imprimé de pastèque + sky_print: Imprimé de ciel + cloud_print: Imprimé de nuage + lightning_bolt_print: Imprimé d'éclair + rainbow_print: Imprimé d'arc-en-ciel + snowflake_print: Imprimé de flocon de neige + starry_sky_print: Imprimé de ciel étoilé + crescent_print: Imprimé de croissant + star_print: Imprimé d'étoile + star_(symbol): Symbole d'étoile + moon_print: Imprimé de lune + sun_print: Imprimé de soleil + character_print: Imprimé de caractère + clothes_writing_: Écriture sur les vêtements + anchor_print: Imprimé d'ancre + cherry_blossom_print: Imprimé de fleur de cerisier + musical_note_print: Imprimé de note de musique + triangle_print: Imprimé de triangle + arrow_print: Imprimé de flèche + wave_print: Imprimé de vague + peace_symbol: Symbole de paix + heart_print: Motif en forme de cœur + flame_print: Imprimé de flamme + hitodama_print: Imprimé de hitodama + paw_print: Imprimé de patte + skeleton_print: Imprimé de squelette + skull_print: Imprimé de crâne + sparkle_print: Imprimé étincelant + yin_yang_print: Imprimé de yin-yang + cross_print: Motif de croix + camoflage: Camouflage + flag_print: Imprimé de drapeau + bone_print: Imprimé d'os + ghost_print: Imprimé de fantôme + mushroom_print: Imprimé de champignon + onigiri_print: Imprimé d'onigiri + cat_ear: Oreilles de chat + cat_ear_cutout: Découpe en forme d'oreilles de chat + + - name: Chaussures + color: rgba(230, 84, 128, .4) + tags: + barefoot: Pieds nus + no_shoes: Pas de chaussures + shoes_removed: Chaussures enlevées + single_shoe: Chaussure unique + the_only_shoe: La seule chaussure + black_loafers: Mocassins noirs + shoes: Chaussures de sport + uwabaki: Chaussures d'intérieur + platform_footwear: Chaussures à plateforme + high_heels: Talons hauts + stiletto_heels: Talons aiguilles + strappy_heels: Talons à brides + platform_heels_: Talons hauts à plateforme + rudder_footwear: Chaussures de gouvernail (pour les personnages de navires) + sandals: Sandales + barefoot_sandals: Sandales pieds nus + clog_sandals: Sabots-sandales + geta: Geta (chaussures traditionnelles japonaises) + slippers: Chaussons + skates: Patins à glace + roller_skates: Patins à roulettes + animal_feet: Pattes d'animal + animal_slippers: Chaussons d'animal + anklet: Bracelet de cheville + shackles: Menottes + brown_footwear: Chaussures marron + cross-laced_footwear: Chaussures lacées en croix + loafers: Mocassins + mary_janes: Chaussures Mary Jane + mismatched_footwear: Chaussures dépareillées + pointy_footwear: Chaussures pointues + pumps: Escarpins + sandals_removed: Sandales enlevées + shoe_soles: Semelles de chaussures + shoelaces: Lacets de chaussures + sneakers: Baskets + winged_footwear: Chaussures à ailes + zouri: Zouri (chaussures japonaises traditionnelles) + + - name: Bottes + color: rgba(230, 84, 128, .4) + tags: + boots: Bottes + boots_removed: Bottes enlevées + thigh_boots: Cuissardes + knee_boots: Bottes jusqu'aux genoux + cross-laced_footwear: Chaussures lacées en croix + ankle_boots: Bottines + high_heel_boots: Bottes à talons hauts + toeless_boots: Bottes ouvertes aux orteils + lace-up_boots: Bottes lacées + fur-trimmed_boots: Bottes à bordure en fourrure + snow_boots: Bottes de neige + anklet: Bracelet de cheville + rubber_boots: Bottes en caoutchouc + santa_boots: Bottes du Père Noël + leather_boots: Bottes en cuir + thighhighs_under_boots: Cuissardes sur des bas + combat_boots: Bottes de combat + doc_martens: Doc Martens (marque de bottes) + rain_boots: Bottes de pluie + belt_boots: Bottes à ceinture + fur_boots: Bottes en fourrure à talon bas + single_boot: Une seule botte + + - name: Semelles de chaussures + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: Semelles de chaussures + arched_soles: Semelles voûtées + paw_print_soles: Semelles avec empreintes de pattes + horseshoe: Fer à cheval + + - name: Col de chemise + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: Col de marin + fur_collar: Col en fourrure + frilled_collar: Col à volants + popped_collar: Col relevé + choker: Collier ras du cou + black_choker: Collier ras du cou noir + belt_collar: Collier-ceinture + frilled_choker: Collier à volants + neckerchief: Foulard + red_neckerchief: Foulard rouge + necktie: Cravate + short_necktie: Cravate courte + white_necktie: Cravate blanche + bowtie: Nœud papillon + headphones_around_neck: Casque autour du cou + goggles_around_neck: Lunettes de protection autour du cou + neck_bell: Clochette au cou + neck_ruff: Col en ruff + v-neck: Col en V + towel_around_neck: Serviette autour du cou + loose_necktie: Cravate lâche + neck_tattoo: Tatouage au cou + ascot: Ascot + ribbon_choker: Collier-ruban + maebari/pasties: Maebari/pasties (couvre-tétons japonais) + latex: Latex + torn_clothes: Vêtements déchirés + iron_cross: Croix de fer + chinese_knot: Nœud chinois + cross_necklace: Collier croix + bead_necklace: Collier de perles + pearl_necklace: Collier de perles + heart_necklace: Collier en forme de cœur + carrot_necklace: Collier de carottes + chain_necklace: Collier à chaîne + magatama_necklace: Collier de magatama + tooth_necklace: Collier de dents + key_necklace: Collier de clés + anchor_necklace: Collier d'ancre + skull_necklace: Collier de crâne + shell_necklace: Collier de coquillage + gold_necklace: Collier en or + crescent_necklace: Collier de croissant + ring_necklace: Collier de bague + feather_necklace: Collier de plume + bone_necklace: Collier d'os + ankh_necklace: Collier ankh + multiple_necklaces: Colliers multiples + bullet_necklace: Collier de balles + holding_necklace: Collier tenu en main + necklace_removed: Collier retiré + brown_neckwear: Accessoire de cou marron + checkered_neckwear: Accessoire de cou à carreaux + diagonal-striped_neckwear: Accessoire de cou à rayures diagonales + halterneck: Haut à encolure halter + mole_on_neck: Grain de beauté sur le cou + neck: Cou + neck_ribbon: Ruban autour du cou + neck_ring: Anneau autour du cou + necklace: Collier + plaid_neckwear: Accessoire de cou écossais + plunging_neckline: Décolleté plongeant + print_neckwear: Accessoire de cou imprimé + sleeveless_turtleneck: Pull à col roulé sans manches + star_necklace: Collier en forme d'étoile + striped_neckwear: Accessoire de cou rayé + turtleneck_sweater: Pull à col roulé + + - name: Écharpe + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: Écharpe à carreaux + striped_scarf: Écharpe à rayures + print_scarf: Écharpe imprimée + vertical-striped_scarf: Écharpe à rayures verticales + polka_dot_scarf: Écharpe à pois + argyle_scarf: Écharpe à losanges + beige_scarf: Écharpe beige + scarf_bow: Noeud d'écharpe + fur_scarf: Écharpe en fourrure + naked_scarf: Écharpe nue + multicolored_scarf: Écharpe multicolore + floating_scarf: Écharpe flottante + long_scarf: Longue écharpe + arm_scarf: Écharpe autour du bras + scarf_on_head: Écharpe sur la tête + scarf_over_mouth: Écharpe sur la bouche + scarf_removed: Écharpe enlevée + adjusting_scarf: Ajuster l'écharpe + holding_scarf: Tenir une écharpe + scarf_pull: Tirer l'écharpe + brown_scarf: Écharpe marron + scarf: Écharpe + + - name: Lunettes + color: rgba(230, 84, 128, .4) + tags: + glasses: Lunettes + eyewear: Lunettes + monocle: Monocle + under-rim_eyewear: Lunettes avec monture en dessous + rimless_eyewear: Lunettes sans monture + semi-rimless_eyewear: Lunettes semi-sans monture + red-framed_eyewear: Lunettes à monture rouge + round_eyewear: Lunettes rondes + black-framed_eyewear: Lunettes à monture noire + tinted_eyewear: Lunettes teintées + medical_eyepatch: Cache-œil médical + bandage_over_one_eye: Bandage sur un œil + crooked_eyewear: Lunettes de travers + eyewear_removed: Lunettes retirées + sunglasses: Lunettes de soleil + goggles: Lunettes de protection + Blindfold: Bandeau sur les yeux + eyepatch: Cache-œil + visor: Visière + helmet: Casque + fox_mask: Masque de renard + diving_mask: Masque de plongée + diving_mask_on_head: Masque de plongée sur la tête + oni_mask: Masque d'oni + tengu_mask: Masque de tengu + ninja_mask: Masque de ninja + skull_mask: Masque de crâne + hockey_mask: Masque de hockey + bird_mask: Masque d'oiseau + stone_mask: Masque de pierre + horse_mask: Masque de cheval + masquerade_mask: Masque de bal masqué + domino_mask: Masque domino + + - name: Masque + color: rgba(230, 84, 128, .4) + tags: + mask: Masque + half_mask: Demi-masque + masked: Masqué + mask_lift: Relever le masque + mask_on_head: Masque sur la tête + mask_removed: Masque retiré + mouth_mask: Masque buccal + surgical_mask: Masque chirurgical + plague_doctor_mask: Masque de médecin de la peste + gas_mask: Masque à gaz + visor: Visière + helmet: Casque + fox_mask: Masque de renard + diving_mask: Masque de plongée + diving_mask_on_head: Masque de plongée sur la tête + oni_mask: Masque d'oni + tengu_mask: Masque de tengu + ninja_mask: Masque de ninja + skull_mask: Masque de crâne + hockey_mask: Masque de hockey + bird_mask: Masque d'oiseau + stone_mask: Masque de pierre + horse_mask: Masque de cheval + masquerade_mask: Masque de bal masqué + domino_mask: Masque domino + + - name: Bras + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: Manches longues + short_sleeves: Manches courtes + wide_sleeves: Manches larges + furisode: Furisode + detached_sleeves: Manches détachables + single_sleeve: Manche unique + sleeveless: Sans manches + asymmetrical_sleeves: Manches asymétriques + puffy_sleeves: Manches bouffantes + puffy_long_sleeves: Manches longues bouffantes + puffy_short_sleeves: Manches courtes bouffantes + frilled_sleeves: Manches à volants + juliet_sleeves: Manches Juliette + bandaged_arm: Bras bandé + raglan_sleeves: Manches raglan + vambraces: Avant-bras en armure + layered_sleeves: Manches superposées + fur-trimmed_sleeves: Manches bordées de fourrure + see-through_sleeves: Manches transparentes + torn_sleeves: Manches déchirées + sleeves_past_fingers: Manches qui dépassent les doigts + sleeves_past_wrists: Manches qui dépassent les poignets + sleeves_past_elbows: Manches qui dépassent les coudes + sleeves_pushed_up: Manches retroussées + arm_out_of_sleeve: Bras sortant de la manche + uneven_sleeves: Manches inégales + mismatched_sleeves: Manches dépareillées + sleeve_rolled_up: Manche retroussée + sleeves_rolled_up: Manches retroussées + feather-trimmed_sleeves: Manches ornées de plumes + hands_in_opposite_sleeves: Mains dans des manches opposées + lace-trimmed_sleeves: Manches bordées de dentelle + pinching_sleeves: Pincer les manches + puffy_detached_sleeves: Manches détachables bouffantes + ribbed_sleeves: Manches côtelées + single_detached_sleeve: Manche détachée unique + sleeves_folded_up: Manches repliées + striped_sleeves: Manches rayées + wrist_cuffs: Poignets séparés des manches + armband: Brassard + armlet: Bracelet de bras + + - name: Mains + color: rgba(230, 84, 128, .4) + tags: + bandage: Bandage + leash: Laisse + arm_tattoo: Tatouage de bras + number_tattoo: Tatouage de numéro + bead_bracelet: Bracelet de perles + bracelet: Bracelet + flower_bracelet: Bracelet de fleurs + spiked_bracelet: Bracelet à pointes + wrist_cuffs: Menottes de poignet + wristband: Bandeau de poignet + bracer: Protège-bras + cuffs: Manchettes + bound_wrists: Poignets attachés + wrist_scrunchie: Élastique de poignet + handcuffs: Menottes + shackles: Menottes + chains: Chaînes + chain_leash: Laisse avec chaîne + + - name: Gants + color: rgba(230, 84, 128, .4) + tags: + gloves: Gants + gloves_removed: Gants enlevés + no_gloves: Pas de gants + single_glove: Gant unique + single_elbow_glove: Gant unique jusqu'au coude + long_gloves: Longs gants + elbow_gloves: Gants jusqu'au coude + bridal_gauntlets: Gantelets de mariée + half_gloves: Demi-gants + fingerless_gloves: Gants sans doigts + partially_fingerless_gloves: Gants partiellement sans doigts + paw_gloves: Gants avec des griffes (gants à doigts séparés) + mittens: Moufles + baseball_mitt: Gant de baseball + fur-trimmed_gloves: Gants bordés de fourrure + latex_gloves: Gants en latex + lace-trimmed_gloves: Gants bordés de dentelle + leather_gloves: Gants en cuir + frilled_gloves: Gants à volants + mismatched_gloves: Gants dépareillés + multicolored_gloves: Gants multicolores + asymmetrical_gloves: Gants asymétriques + brown_gloves: Gants marron + oven_mitts: Gants de cuisine + print_gloves: Gants imprimés + striped_gloves: Gants rayés + torn_gloves: Gants déchirés + + - name: Boucles d'oreilles + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: Boucles d'oreilles en croix + crystal_earrings: Boucles d'oreilles en cristal + earrings: Boucles d'oreilles + flower_earrings: Boucles d'oreilles en forme de fleur + heart_earrings: Boucles d'oreilles en forme de cœur + hoop_earrings: Boucles d'oreilles en forme de cercle + multiple_earrings: Boucles d'oreilles multiples + pill_earrings: Boucles d'oreilles en forme de pilule + single_earring: Boucle d'oreille unique + skull_earrings: Boucles d'oreilles en forme de crâne + star_earrings: Boucles d'oreilles en forme d'étoile + + - name: Accessoires pour la tête + color: rgba(230, 84, 128, .4) + tags: + halo: Auréole + mechanical_halo: Auréole mécanique + headwear: Accessoire pour la tête + headpiece: Accessoire pour la tête + headwear_removed: Accessoire pour la tête enlevé + head_wreath: Couronne de tête + crown: Couronne + mini_crown: Mini couronne + tiara: Diadème + diadem: Diadème + tilted_headwear: Accessoire pour la tête incliné + head_fins: Nageoires de tête + maid_headdress: Coiffe de femme de chambre + bridal_veil: Voile de mariée + headband: Bandeau + helmet: Casque + alternate_headwear: Accessoire pour la tête alternatif + fur-trimmed_headwear: Accessoire pour la tête bordé de fourrure + goggles_on_headwear: Lunettes de protection sur l'accessoire pour la tête + earphones: Écouteurs + earmuffs: Cache-oreilles + ears_through_headwear: Oreilles à travers l'accessoire pour la tête + xx_on_head: xx sur la tête + leaf_on_head: Feuille sur la tête + topknot: Chignon + suigintou: Tête de mercure + triangular_headpiece: Accessoire pour la tête triangulaire + forehead_protector: Protège-front + radio_antenna: Antenne radio + animal_hood: Capuche d'animal + arrow_(symbol): Flèche + axe: Hache + bald: Chauve + bandana: Bandana + bob_cut: Coupe au bol + bone: Os + bowl_cut: Coupe au bol + circlet: Diadème + double_bun: Double chignon + double_dildo: Double gode + drill: Foret + faucet: Robinet + hachimaki: Hachimaki + hair_behind_ear: Cheveux derrière l'oreille + hair_bell: Clochette dans les cheveux + hair_bun: Chignon + hair_down: Cheveux détachés + hair_flaps: Mèches de cheveux en mouvement + hair_flip: Lancer de cheveux + hair_flower: Fleur dans les cheveux + hair_spread_out: Cheveux éparpillés + hair_up: Cheveux relevés + helm: Casqué + helmet_removed: Casque enlevé + horned_helmet: Casque à cornes + japari_bun: Japari bun + kerchief: Foulard + mami_mogu_mogu: Mami mogu mogu + mob_cap: Coiffe de domestique + one_side_up: Cheveux d'un côté relevés + owl: Chouette + pier: Quai + pillow: Oreiller + raised_fist: Poing levé + skull_and_crossbones: Tête de mort et os croisés + stone: Pierre + turban: Turban + twin_drills: Double tresses + updo: Chignon haut + wet_hair: Cheveux mouillés + headdress: Coiffe + adjusting_headwear: Ajuster l'accessoire pour la tête + bear_hair_ornament: Ornement capillaire en forme d'ours + brown_headwear: Accessoire pour la tête marron + horned_headwear: Accessoire pour la tête à cornes + horns_through_headwear: Cornes à travers l'accessoire pour la tête + no_headwear: Pas d'accessoire pour la tête + object_on_head: Objet sur la tête + print_headwear: Accessoire pour la tête imprimé + bone_hair_ornament: Ornement capillaire en forme d'os + bunny_hair_ornament: Ornement capillaire en forme de lapin + horn_ornament: Ornement sur la corne + animal_on_head: Animal sur la tête + behind-the-head_headphones: Casque sur la nuque + bird_on_head: Oiseau sur la tête + cat_ear_headphones: Casque avec des oreilles de chat + cat_on_head: Chat sur la tête + eyewear_on_head: Lunettes sur la tête + forehead: Front + forehead_jewel: Bijou sur le front + forehead_kiss: Baiser sur le front + forehead_mark: Marque sur le front + forehead-to-forehead: Front contre front + goggles_on_head: Lunettes de protection sur la tête + head: Tête + head_bump: Bosse sur la tête + head_down: Tête baissée + head_mounted_display: Affichage monté sur la tête + head_out_of_frame: Tête hors du cadre + head_rest: Repos de la tête + head_tilt: Tête penchée + head_wings: Ailes sur la tête + headgear: Coiffe + headphones: Écouteurs + heads-up_display: Affichage tête haute + headset: Casque audio + inter_headset: Connecteur nerveux EVA + on_head: Sur la tête + person_on_head: Personne sur la tête + single_head_wing: Aile unique sur la tête + + - name: Chapeau + color: rgba(230, 84, 128, .4) + tags: + hat: Chapeau + no_hat: Pas de chapeau + large_hat: Grand chapeau + mini_hat: Mini chapeau + witch_hat: Chapeau de sorcière + mini_witch_hat: Mini chapeau de sorcière + wizard_hat: Chapeau de sorcier + party_hat: Chapeau de fête + jester_cap: Chapeau de bouffon + tokin_hat: Chapeau de cérémonie + top_hat: Haut-de-forme + mini_top_hat: Mini haut-de-forme + bowler_hat: Chapeau melon + pillbox_hat: Chapeau boîte à pilules + cloche_hat: Chapeau cloche + side_cap: Chapeau à visière latérale + military_hat: Casquette militaire + beret: Béret + garrison_cap: Casquette de garnison + police_hat: Casquette de police + nurse_cap: Coiffe d'infirmière + chef_hat: Toque de chef + school_hat: Chapeau d'écolier + pirate_hat: Chapeau de pirate + cabbie_hat: Casquette de chauffeur de taxi + bucket_hat: Chapeau de pêcheur + hardhat: Casque de sécurité + straw_hat: Chapeau de paille + sun_hat: Chapeau de soleil + rice_hat: Chapeau de riz + animal_hat: Chapeau d'animal + fur_hat: Chapeau en fourrure + hat_with_ears: Chapeau avec des oreilles + bobblehat: Bonnet à pompon + pillow_hat: Chapeau oreiller + pumpkin_hat: Chapeau de citrouille + baseball_cap: Casquette de baseball + flat_cap: Casquette plate + torn_hat: Chapeau déchiré + mob_cap: Bonnet de femme de chambre + newsboy_cap: Casquette de journaliste + bowknot_over_white_beret: Nœud papillon sur un béret blanc + backwards_hat: Chapeau à l'envers + bowl_hat: Chapeau en forme de bol + cat_hat: Chapeau avec des oreilles de chat + chat_log: Style de boîte de discussion + cowboy_hat: Chapeau de cowboy + dixie_cup_hat: Chapeau en gobelet en plastique + hat_bow: Chapeau avec un nœud papillon + hat_feather: Chapeau avec une plume + hat_flower: Chapeau avec une fleur + hat_ornament: Chapeau avec un ornement + hat_over_one_eye: Chapeau couvrant un œil + hat_removed: Chapeau retiré + hat_ribbon: Chapeau avec un ruban + hat_tip: Chapeau pincé + hatching_(texture): Texture hachurée + hatsune_miku_(cosplay): Cosplay de Hatsune Miku + is_that_so: Donc, c'est ça + porkpie_hat: Chapeau porkpie + sailor_hat: Chapeau de marin + santa_hat: Chapeau de Père Noël + sideways_hat: Chapeau penché sur le côté + what: L'auteur délire + what_if: Une autre ligne temporelle + + - name: Accessoires pour les cheveux + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: Ruban pour les cheveux + hairband: Bandeau pour les cheveux + hair_tie: Attache pour les cheveux + lolita_hairband: Bandeau Lolita + frilled_hairband: Bandeau à volants + lace-trimmed_hairband: Bandeau bordé de dentelle + hair_bobbles: Élastiques pour les cheveux + hair_ornament: Ornement capillaire + hair_flower: Fleur pour les cheveux + x_hair_ornament: Ornement capillaire en forme de x + hair_bow: Noeud pour les cheveux + frog_hair_ornament: Ornement capillaire en forme de grenouille + heart_hair_ornament: Ornement capillaire en forme de cœur + butterfly_hair_ornament: Ornement capillaire en forme de papillon + star_hair_ornament: Ornement capillaire en forme d'étoile + food-themed_hair_ornament: Ornement capillaire sur le thème de la nourriture + anchor_hair_ornament: Ornement capillaire en forme d'ancre + bat_hair_ornament: Ornement capillaire en forme de chauve-souris + carrot_hair_ornament: Ornement capillaire en forme de carotte + cat_hair_ornament: Ornement capillaire en forme de chat + clover_hair_ornament: Ornement capillaire en forme de trèfle + crescent_hair_ornament: Ornement capillaire en forme de croissant + cross_hair_ornament: Ornement capillaire en forme de croix + d-pad_hair_ornament: Ornement capillaire en forme de croix directionnelle + fish_hair_ornament: Ornement capillaire en forme de poisson + hairpods: Ornement capillaire en forme d'écouteurs sans fil + leaf_hair_ornament: Ornement capillaire en forme de feuille + musical_note_hair_ornament: Ornement capillaire en forme de note de musique + pumpkin_hair_ornament: Ornement capillaire en forme de citrouille + skull_hair_ornament: Ornement capillaire en forme de crâne + snake_hair_ornament: Ornement capillaire en forme de serpent + snowflake_hair_ornament: Ornement capillaire en forme de flocon de neige + strawberry_hair_ornament: Ornement capillaire en forme de fraise + sunflower_hair_ornament: Ornement capillaire en forme de tournesol + hairpin: Barrette + hairclip: Pince à cheveux + hair_tubes: Tubes pour les cheveux + hair_stick: Bâton pour les cheveux + hair_bun: Chignon + single_hair_bun: Chignon simple + hair_bell: Clochette pour les cheveux + hair_rings: Anneaux pour les cheveux + + - name: Petite décoration + color: rgba(230, 84, 128, .4) + tags: + ring: Bague + wedding_band: Alliance de mariage + earrings: Boucles d'oreilles + single_earring: Boucle d'oreille unique + stud_earrings: Boucles d'oreilles à clou + necklace: Collier + jewelry: Bijoux + crystal: Cristal + brooch: Broche + gem: Pierre précieuse + chest_jewel: Bijou de poitrine + forehead_jewel: Bijou de front + tassel: Pompon + belly_chain_: Chaîne de ventre + lace: Dentelle + ribbon: Ruban + stitches: Points de suture + scarf: Écharpe + bandaid: Pansement + collar: Collier + belt: Ceinture + steam: Vapeur + bell: Cloche + amulet: Amulette + emblem: Emblème + flag_print: Imprimé de drapeau + anchor_symbol: Symbole d'ancre + cross: Croix + diffraction_spikes: Étoiles de diffraction + iron_cross: Croix de fer + latin_cross: Croix latine + lace-trimmed_hairband: Bandeau à bordure en dentelle + ankle_lace-up: Lacets de cheville + st._gloriana's_(emblem): Emblème de St. Gloriana + heart_lock_(kantai_collection): Serrure en forme de cœur (Kantai Collection) + garters: Jarretières + thigh_strap: Sangle de cuisse + thigh_ribbon: Ruban de cuisse + leg_garter: Jarretière de jambe + garter_straps: Bretelles de jarretelle + leg_ribbon: Ruban de jambe + bandaid_on_leg: Pansement sur la jambe + bandaged_leg: Jambe bandée + arm_garter: Brassard + joints: Articulations + kneepits: Creux des genoux + knee_pads: Genouillères + thigh_holster: Étui de cuisse + bandaid_on_knee: Pansement sur le genou + + - name: Bijoux + color: rgba(230, 84, 128, .4) + tags: + bracelet: Bracelet + choker: Collier ras du cou + metal collar: Collier en métal + ring: Bague + wristband: Bracelet de poignet + pendant: Pendentif + brooch: Broche + hoop earrings: Boucles d'oreilles anneaux + bangle: Bracelet rigide + stud earrings: Boucles d'oreilles à clou + sunburst: Bijou en forme de soleil éclatant + pearl bracelet: Bracelet de perles + drop earrings: Boucles d'oreilles pendantes + puppet rings: Bagues de marionnettes + corsage: Corsage + sapphire brooch: Broche en saphir + jewelry: Bijoux + necklace: Collier + +- name: Expressions et mouvements + groups: + - name: Sourire + color: rgba(241, 229, 140, .4) + tags: + smile: Sourire + laughing: Rire + kind_smile: Sourire joyeux + :d: Sourire heureux_:D😀 + ;d: Sourire en clignant des yeux_:D + grin: Sourire large + teasing_smile: Sourire taquin + seductive_smile: Sourire séduisant + smirk: Sourire narquois + giggling: Rire niais + smug: Suffisant + naughty_face: Visage espiègle + evil smile: Sourire diabolique + crazy_smile: Sourire fou + happy: Joyeux|Heureux + happy_birthday: Joyeux anniversaire + happy_halloween: Joyeux Halloween + happy_new_year: Bonne année + happy_tears: Larmes de joie + happy_valentine: Joyeuse Saint-Valentin + + - name: Pleurer + color: rgba(241, 229, 140, .4) + tags: + sad: Triste + tear: Pleurer + crying: Pleurer + crying_with_eyes_open: Pleurer les yeux ouverts + streaming_tears: Larmes qui coulent + teardrop: Goutte de larme + tearing_clothes: Déchirer les vêtements + tearing_up: Expression prête à pleurer + tears: Larmes + wiping_tears: Essuyer les larmes + badmood: Mauvaise humeur + + - name: Mécontent + color: rgba(241, 229, 140, .4) + tags: + frustrated: Frustré + frustrated_brow: Front frustré + annoyed: Agacé + anguish: Angoissé + sigh: Soupirer + gloom: Tristesse profonde + disappointed: Déçu + despair: Désespoir + + - name: Mépris + color: rgba(241, 229, 140, .4) + tags: + disgust: Dégoût (regard dégoûté) + disdain: Dédain + contempt: Mépris + shaded_face: Visage ombragé avec mépris + jitome: Regard méprisant + frown: Froncement de sourcils + wince: Froncement de sourcils (préliminaires sexuels) + furrowed_brow: Sourcils froncés + fear_kubrick: Regard craintif de Kubrick + laughing: En train de rire + + - name: Colère + color: rgba(241, 229, 140, .4) + tags: + angry: En colère + glaring: Regard furieux + serious: Sérieux (semblable à la colère) + kubrick_stare: Regard de Kubrick de côté + evil: Maléfique + sulking: Bouder + screaming: Crier|Hurler + shouting: Crier + + - name: Autres expressions + color: rgba(241, 229, 140, .4) + tags: + expressionless: Sans expression + sleepy: Fatigué + drunk: Ivre + bored: Ennuyé + confused: Confus + thinking: Réfléchir + lonely: Solitaire + light_blush: Légèrement rougir + blush: Rougir + shy: Timide + embarrass: Gêné + facepalm: Se taper le visage + flustered: Confus + sweat: Transpirer + scared: Effrayé + ahegao: Ahegao + endured_face: Visage résigné + restrained: Restreint + dark_persona: Persona sombre + crazy: Fou + exhausted: Épuisé + Tsundere: Tsundere + yandere: Yandere + multiple_persona: Personnalité multiple + Jekyll_and_Hyde: Jekyll et Hyde + twitching: Tressaillement + spasm: Spasme + trembling: Trembler + rape_face: Visage de viol + rolling_eyes: Lever les yeux au ciel + envy: Envie + female_orgasm: Orgasme féminin + heavy_breathing: Respiration lourde + naughty: Vilain + expressions: Expressions faciales différentes (approximatif) + moaning: Gémir + scowl: Regard désapprobateur + + - name: Actions de base + color: rgba(241, 229, 140, .4) + tags: + standing: Debout + on back: Allongé sur le dos + on stomach: Allongé sur le ventre + kneeling: À genoux + on_side: Sur le côté + on_stomach: Sur le ventre + top-down_bottom-up: Sur le ventre avec les fesses en l'air + the_pose: Allongé par terre avec les pieds en l'air + bent_over: Position penchée en avant + upside-down: À l'envers + reversal: Renversement + fighting_stance: Position de combat + leaning_to_the_side: S'appuyer sur le côté + leaning: S'incliner|Incliner le corps + leaning_back: S'incliner en arrière + leaning_on_object: S'appuyer sur un objet + arched_back: Dos cambré + leaning_forward: S'incliner en avant + afloat: Flotter (sur l'eau) + lying: Allongé + fetal_position: Position fœtale (allongé) + lying_on_person: Allongé sur une personne + lying_on_the_lake: Allongé sur le lac + lying_on_water: Allongé dans l'eau + on_back: Allongé sur le dos + prone_bone: Position de levrette + reclining: Position allongée inclinée + sleeping_upright: Dormir debout (ne pas s'allonger) + presenting: Présentation (suivi de la partie du corps) + spinning: Rotation + posing: Poser + stylish_pose: Pose stylée + public_indecency: Indécence publique + parody: Parodie + in_container: Dans un récipient + against_glass: Appuyé contre la vitre (inefficace) + aiming: Viser + aiming_at_viewer: Viser le lecteur + applying_makeup: Se maquiller + bathing: Prendre un bain + biting: Mordre + bleeding: Saigner + blowing: Souffler + bowing: S'incliner + breathing_fire: Cracher du feu + broom_riding: Monter sur un balai + brushing_teeth: Se brosser les dents + bubble_blowing: Faire des bulles + bullying: Intimider + burning: Brûler + cast: Lancer + chasing: Poursuivre + cleaning: Nettoyer + climbing: Grimper + comforting: Réconforter + cooking: Cuisiner + crying: Pleurer + cuddling: Se blottir + dancing: Danser + diving: Plonger + dragging: Traîner quelque chose + drawing: Dessiner + drawing_bow: Tendre un arc + dreaming: Rêver + drinking: Boire + driving: Conduire + dropping: Laisser tomber (accidentellement) + drying: Se sécher (après le bain) + dual_wielding: Utiliser deux armes + exercise: Faire de l'exercice + fighting: En plein combat + firing: Tirer + fishing: Pêcher + flapping: Battre des ailes + flashing: Montrer (dévoiler) + fleeing: En fuite + flexing: Faire des muscles + flying: Voler + flying_kick: Coup de pied en vol + hair_brushing: Se brosser les cheveux + hair_tucking: Remettre les cheveux en place + hanging: Suspendu + hitting: Frapper + imagining: En train d'imaginer + jumping: Sauter + kicking: Donner un coup de pied + licking: Lécher + licking_lips: Se lécher les lèvres + lip_biting: Se mordre les lèvres + meditation: Méditer + painting: Peindre + Painting_(Action): Peinture + playing_card: Jouer aux cartes + playing_games: Jouer à des jeux + playing_instrument: Jouer d'un instrument + pole_dancing: Pole dance + praying: Prier + punching: Donner un coup de poing + pushing: Pousser + railing: Se tenir à la rambarde + reading: Lire + riding: Monter (à cheval, à vélo, etc.) + running: Courir + sewing: Coudre + shopping: Faire du shopping + showering: Prendre une douche + sing: Chanter + singing: Chanter + slashing: Trancher + sleeping: Dormir + smelling: Sentir (odorat) + smoking: Fumer + sneezing: Éternuer + snowing: Neiger + soaking_feet: Tremper les pieds + soccer: Jouer au football + spilling: Renverser un liquide d'un récipient + spitting: Cracher un liquide de la bouche + splashing: Éclabousser + standing_on_liquid: Marcher sur l'eau ou un liquide + standing_on_one_leg: Se tenir sur une jambe + standing_split: Faire un grand écart debout + steepled_fingers: Doigts croisés + strangling: Étrangler + sweeping: Balayer + swimming: Nager + swing: Se balancer + tail_wagging: Remuer la queue + taking_picture: Prendre une photo|Selfie + talking: Parler + talking_on_phone: Parler au téléphone + teasing: Taquiner + thinking: Réfléchir + tickling: Chatouiller + toilet_use: Utiliser les toilettes + tossing_: Lancer + tripping: Trébucher + trolling: Troller + twitching: Tressaillir + tying: Nouer + unsheathing: Dégainer + untying: Défaire un nœud + unzipping: Dézipper + wading: Patauger + waking_up: Se réveiller + walking: Marcher + walking_on_liquid: Marcher sur un liquide + washing: Se laver + whispering: Chuchoter + wrestling: Faire de la lutte + writing: Écrire + yawning: Bailler + hiding: Se cacher + + - name: Mouvements de la main + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: Bras derrière le dos + arm_above_head: Bras au-dessus de la tête + arm_behind_head: Bras derrière la tête + arms_crossed: Bras croisés + arm_support: Appui avec la main + armpits: Aisselles exposées + arms_up: Bras levés + hands_on_hips: Mains sur les hanches + arm_around_waist: Bras autour de la taille + caramelldansen: Mouvement célèbre de la danse Caramelldansen + hands_in_opposite_sleeves: Mains dans les manches opposées + waving: Faire signe de la main + crossed_arms: Bras croisés + outstretched_arms: Bras tendus + v_arms: Bras formant un V + w_arms: Bras formant un W + salute: Saluer + reaching: Tendre la main (avec intention) + reaching_out: Tendre la main vers l'extérieur + stretch: S'étirer + hugging_own_legs: Serrer ses jambes dans ses bras + arm_blade: Lame attachée au bras + arm_grab: Saisir le bras + arm_held_back: Bras tiré en arrière + arm_ribbon: Ruban attaché au bras + bandaged_arm: Bras bandé + bandaid_on_arm: Pansement sur le bras + bound_arms: Bras attachés + convenient_arm: Bras couvrant une partie intime + extra_arms: Bras supplémentaires + locked_arms: Bras entrelacés + outstretched_arm: Bras tendu + waving_arms: Agiter les bras + arm_at_side: Bras pendu le long du corps + arm_behind_back: Bras derrière le dos + shou: Main derrière la tête + arm_cannon: Canon attaché au bras + arm_hug: Enlacer le bras + arm_up: Bras levé + arms_at_sides: Bras le long du corps + arms_behind_head: Bras derrière la tête + hand_to_mouth: Main près de la bouche + shushing: Faire taire avec un geste de la main + cat_pose: Gestuelle de la main de chat + claw_pose: Gestuelle de la main griffue + paw_pose: Gestuelle de la main de chat porte-bonheur (poignet plié) + fox_shadow_puppet: Gestuelle de la main en forme de renard + double_fox_shadow_puppet: b + finger_gun: Gestuelle de la main en forme de pistolet + v: Gestuelle de la main en forme de V + double_v: Double V avec les mains + thumbs_up: Pouce levé + index_finger_raised: Index levé + middle_finger: Doigt d'honneur + grimace: Faire une grimace + eyelid_pull: Faire une grimace + fingersmile: Faire un sourire avec les doigts + wiping_tears: Essuyer les larmes + finger_on_trigger: Prêt à appuyer sur la gâchette + pointing_at_self: Se pointer du doigt + pointing_at_viewer: Pointer le lecteur + pointing_up: Pointer vers le haut + poking: Piquer + hand_gesture: Faire un geste de la main + ok_sign: Signe OK + shading_eyes: Protéger les yeux du soleil + finger_biting: Se mordre le doigt + finger_in_mouth: Mettre le doigt dans la bouche + fingering_through_clothes: Faire des gestes avec les doigts à travers les vêtements + fingers_together: Doigts serrés + hair_twirling: Enrouler les cheveux autour des doigts + hands_clasped: Mains jointes + holding_hair: Tenir les cheveux|Enrouler les doigts autour des cheveux + pointing: Pointer du doigt + sharp_fingernails: Ongles acérés + sleeves_past_fingers: Manches qui dépassent les doigts + spread_fingers: Écartement des doigts + trigger_discipline: Doigt hors de la gâchette + w: Faire un W avec les doigts + balancing: Position d'équilibre + curvy: Position séduisante + multiple_views: Multiples points de vue|Positions + pose: Poser + ready_to_draw: Prêt à dégainer + trefoil: Position montrant les fesses d'une femme + zombie_pose: Position de zombie + beckoning: Faire signe de la main + bunching_hair: Tenir une mèche de cheveux + carrying: Porter + carrying_over_shoulder: Porter sur l'épaule + carrying_under_arm: Porter sous le bras + cheering: Acclamer + finger_to_mouth: Mettre le doigt sur la bouche + cheek_pinching: Pincer les joues + cheek_poking: Taper sur les joues + chin_stroking: Se caresser le menton + hair_pull: Tirer les cheveux + covering_mouth: Couvrir la bouche + covering_xx: Couvrir XX + self_fondle: Se caresser soi-même + adjusting_thighhigh: Ajuster les bas jusqu'à la cuisse + chin_rest: Soutenir le menton + head_rest: Soutenir la tête + take: Prendre + _sheet_grab: Attraper les draps + groping: Tâtonner + skirt_lift: Relever la jupe + crotch_grab: Saisir l'entrejambe + covering_chest_by_hand: Couvrir la poitrine avec la main + bangs_pinned_back: Relever les franges + clothes_lift: Relever les vêtements + dress_lift: Relever la robe + kimono_lift: Relever le kimono + lifted_by_another: Se faire soulever les vêtements par une autre personne + lifted_by_self: Se soulever les vêtements soi-même + shirt_lift: Relever le chemisier + skirt_basket: Former un panier avec la jupe relevée + skirt_flip: Relever la jupe (avec une connotation de situation inattendue) + bikini_lift: Relever le bikini + leg_lift: Lever une jambe + lifting_person: Soulever une personne + strap_lift: Relever les bretelles d'un vêtement + wind_lift: Effet de vent|Courant ascendant + bikini_pull: Tirer sur le bikini + cheek_pull: Tirer sur la joue + clothes_pull: Tirer sur les vêtements + dress_pull: Tirer sur la robe au niveau de la poitrine + hair_pulled_back: Attacher les cheveux en arrière + kimono_pull: Ouvrir le kimono + leotard_pull: Ouvrir la combinaison + mask_pull: Tirer sur le masque + pants_pull: Tirer sur le pantalon + pulled_by_another: Se faire tirer (ou tirer les vêtements) + pulled_by_self: Tirer sur ses propres vêtements + pulling: Tirer + shirt_pull: Tirer sur la chemise + shorts_pull: Retirer le short + skirt_pull: Tirer sur la jupe + swimsuit_pull: Tirer sur le maillot de bain + zipper_pull_tab: Tirer sur la tirette de la fermeture éclair + adjusting_clothes: Ajuster les vêtements + adjusting_eyewear: Ajuster les lunettes + adjusting_gloves: Ajuster les gants + adjusting_hair: Ajuster les cheveux + adjusting_hat: Ajuster le chapeau + adjusting_swimsuit: Ajuster le maillot de bain + + - name: Action des mains (tenir quelque chose) + color: rgba(241, 229, 140, .4) + tags: + holding: Tenir quelque chose + holding_animal: Tenir un animal + holding_arrow: Tirer une flèche + holding_axe: Tenir une hache + holding_bag: Tenir un sac + holding_ball: Tenir une balle + holding_basket: Tenir un panier + holding_book: Tenir un livre + holding_bottle: Tenir une bouteille + holding_bouquet: Tenir un bouquet de fleurs + holding_bow_(weapon): Tenir un arc (arme) + holding_bowl: Tenir un bol + holding_box: Tenir une boîte + holding_breath: Retenir son souffle + holding_broom: Tenir un balai + holding_camera: Tenir une caméra + holding_can: Tenir une canette + holding_candy: Tenir des bonbons + holding_card: Tenir une carte + holding_cat: Tenir un chat + holding_chopsticks: Tenir des baguettes + holding_cigarette: Tenir une cigarette + holding_clothes: Tenir des vêtements + holding_condom: Tenir un préservatif + holding_cup: Tenir une tasse + holding_dagger: Tenir une dague + holding_doll: Tenir une poupée + holding_eyewear: Tenir des lunettes | Enlever des lunettes + holding_fan: Tenir un éventail + holding_flag: Tenir un drapeau + holding_flower: Tenir une fleur + holding_food: Tenir de la nourriture + holding_fork: Tenir une fourchette + holding_fruit: Tenir un fruit + holding_gift: Tenir un cadeau + holding_gun: Tenir un pistolet + holding_hands: Se tenir la main + holding_hat: Tenir un chapeau + holding_head: Tenir sa tête + holding_helmet: Tenir un casque + holding_innertube: Tenir une bouée + holding_instrument: Tenir un instrument de musique + holding_knife: Tenir un couteau + holding_leaf: Tenir une feuille + holding_lollipop: Tenir une sucette + holding_mask: Tenir un masque + holding_microphone: Tenir un microphone + holding_needle: Tenir une aiguille à coudre + holding_own_foot: Tenir son propre pied + holding_paintbrush: Tenir un pinceau + holding_paper: Tenir du papier + holding_pen: Tenir un stylo + holding_pencil: Tenir un crayon + holding_phone: Tenir un téléphone + holding_pillow: Tenir un oreiller + holding_pipe: Tenir une pipe + holding_pizza: Tenir une pizza + holding_plate: Tenir une assiette + holding_poke_ball: Tenir une Poké Ball + holding_pokemon: Tenir un Pokémon + holding_polearm: Tenir une arme à long manche + holding_sack: Porter un sac + holding_scythe: Tenir une faux + holding_sheath: Tenir un fourreau + holding_shield: Tenir un bouclier + holding_shoes: Tenir des chaussures + holding_sign: Tenir une pancarte + holding_spear: Tenir une lance + holding_spoon: Tenir une cuillère + holding_staff: Tenir un bâton magique + holding_strap: Tenir une sangle + holding_stuffed_animal: Tenir une peluche + holding_stylus: Tenir un stylet + holding_sword: Tenir une épée + holding_syringe: Tenir une seringue + holding_towel: Tenir une serviette + holding_tray: Tenir un plateau + holding_umbrella: Tenir un parapluie + holding_wand: Tenir une baguette magique + holding_whip: Tenir un fouet + arm_around_neck: Entourer le cou avec un bras + arms_around_neck: Entourer le cou avec les deux bras + + - name: Action des mains (poser quelque chose) + color: rgba(241, 229, 140, .4) + tags: + covering: Action de couvrir + covering_face: Couvrir le visage + covering_ass: Couvrir les fesses + covering_crotch: Couvrir l'entrejambe + covering_eyes: Couvrir les yeux + covering_mouth: Couvrir la bouche + covering_nipples: Couvrir les tétons + hands_on_another's_: Poser les deux mains sur le visage de l'autre + hands_on_another's_cheeks: Poser les deux mains sur les joues de l'autre + hands_on_ass: Poser les deux mains sur les fesses + hands_on_feet: Poser les deux mains sur les pieds + hands_on_headwear: Toucher un accessoire sur la tête avec les mains + hands_on_hilt: Poser les deux mains sur la poignée d'une épée + hands_on_lap: Poser les deux mains sur les genoux + hands_on_own_face: Poser les deux mains sur son propre visage + hands_on_own_cheeks: Poser les deux mains sur ses propres joues + hands_on_own_chest: Poser les deux mains sur sa propre poitrine + hands_on_own_head: Poser les deux mains sur sa propre tête + hands_on_own_knees: Poser les deux mains sur ses propres genoux + hands_on_own_stomach: Poser les deux mains sur son propre ventre + hands_on_own_thighs: Poser les deux mains sur ses propres cuisses + hands_on_another's_shoulders: Poser les deux mains sur les épaules de l'autre + hands_on_hips: Poser les deux mains sur les hanches + hand_on_another's_: Toucher le visage de l'autre avec une main + hand_on_another's_cheek: Toucher la joue de l'autre avec une main + hand_on_another's_chest: Poser une main sur la poitrine de l'autre + hand_on_another's_chin: Tenir le menton de l'autre avec une main + hand_on_another's_head: Poser une main sur la tête de l'autre + hand_on_another's_shoulder: Poser une main sur l'épaule de l'autre + hand_on_another's_stomach: Poser une main sur le ventre de l'autre + hand_on_ass: Poser une main sur les fesses + hand_on_head: Poser une main sur la tête + hand_on_headwear: Toucher un accessoire sur la tête avec une main + hand_on_hilt: Poser une main sur la poignée d'une épée + hand_on_hip: Poser une main sur la hanche + hand_on_own_: Poser une main sur son propre visage + hand_on_own_cheek: Poser une main sur sa propre joue + hand_on_own_chest: Poser une main sur sa propre poitrine + hand_on_own_chin: Toucher son propre menton avec une main + hand_on_own_stomach: Poser une main sur son propre ventre + hand_on_shoulder: Poser une main sur l'épaule + hand_in_another's_hair: Poser une main dans les cheveux de l'autre + hand_in_hair: Mettre la main dans les cheveux + hand_in_pocket: Mettre la main dans la poche + + - name: Action des mains (saisir quelque chose) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: Saisir les fesses + flat_chest_grab: Saisir les seins plats + grabbing: Saisir + grabbing_another's_ass: Saisir les fesses de l'autre + grabbing_another's_hair: Saisir les cheveux de l'autre + grabbing_from_behind: Saisir les seins depuis l'arrière + grabbing_own_ass: Saisir ses propres fesses + guided_penetration: Saisir le pénis pour une pénétration guidée + hair_grab: Saisir les cheveux + leg_grab: Saisir la jambe + necktie_grab: Saisir la cravate + neckwear_grab: Saisir les vêtements autour du cou + penis_grab: Saisir le pénis + pillow_grab: Saisir l'oreiller + sheet_grab: Saisir les draps + tail_grab: Saisir la queue + thigh_grab: Saisir la cuisse + torso_grab: Saisir le torse + wrist_grab: Saisir le poignet + + - name: Actions des jambes + color: rgba(241, 229, 140, .4) + tags: + legs_up: Lever une jambe + spread legs: Écartement des jambes + legs_together: Jambes serrées + crossed_legs: Jambes croisées + m_legs: Jambes en forme de M + standing_split,_leg_up: Jambes écartées en position debout, une jambe levée + curtsy: Révérence (salutation de femme de chambre) + hand_between_legs: Main entre les jambes + open_stance: Position debout décontractée + convenient_leg: Jambe couvrant une partie intime + leg_lock: Serrer les jambes autour de quelque chose + legs: Jambes + legs_over_head: Jambes relevées au-dessus de la tête + squatting,_open_legs: Squat avec les jambes écartées + knees_together_feet_apart: Genoux serrés, pieds écartés + animal_on_lap: Animal sur les genoux + hand_on_own_knee: Main sur son propre genou + knee_up: Genou relevé + knees: Genoux + knees_to_chest: Genoux contre la poitrine + on_lap: Sur les genoux + sitting: Assis + wariza: Assis en tailleur + straddling: À califourchon + yokozuwari: Assis de côté + sitting_backwards: Assis à l'envers + sitting_in_tree: Assis sur un arbre + sitting_on_xx: Assis sur quelque chose + butterfly_sitting: Assis en tailleur avec les pieds joints + lotus_position: Assis en tailleur sur une table + sitting_on_railing: Assis sur une rambarde + sitting_on_rock: Assis sur un rocher + sitting_on_stairs: Assis sur des escaliers + sitting_on_table: Assis sur une table + sitting_on_water: Assis sur l'eau + cushion: Coussin + indian_style: Assis en tailleur + sitting_on_chair: Assis sur une chaise + sidesaddle: Côté, assis sur une selle + sitting_on_bed: Assis sur un lit + sitting_on_desk: Assis sur un bureau + sitting_on_lap: Assis sur les genoux + sitting_on_person: Assis sur une personne + upright_straddle: Position assise face à face + squatting: Accroupi + one_knee: Un genou + kneeling: À genoux + all_fours: À quatre pattes + gravure_pose: Pose suggestive + kicking: Donner un coup de pied + high_kick: Coup de pied haut + soaking_feet: Tremper les pieds + reclining: Allongé + hugging_own_legs: Serrer ses propres jambes dans les bras + bare_legs: Jambes nues + between_legs: (Accentuation) Entre les jambes + cropped_legs: Seules une partie des jambes est dessinée + k/da_(league_of_legends): Groupe K/DA (League of Legends) + leg_belt: Ceinture autour des jambes + leg_hair: Poils des jambes + leg_up: Jambe levée + legs_apart: Jambes écartées + lowleg: Jambes en forme de M + mechanical_legs: Jambes mécaniques + multiple_legs: Personnage avec plusieurs jambes + no_legs: Pas de jambes dessinées + no_legwear: Partie inférieure du corps nue + tail_between_legs: Queue entre les jambes + barefoot: Pieds nus + foot_out_of_frame: Un pied hors du cadre + footprints: Empreintes de pas + dirty_feet: Erreur de dessin des pieds + feet: Pieds + feet_out_of_frame: Les deux pieds hors du cadre + feet_up: Pieds relevés + wrong_feet: Erreur de dessin des pieds + cameltoe: Cameltoe + pigeon-toed: Jambes en dedans + tiptoes: Sur la pointe des pieds + toe-point: Pointe des pieds + amputee: Amputé(e) | Une jambe | Membre manquant | Jeune fille amputée + ankle_strap: Bride de cheville + ankle_wrap: Bande de cheville + crossed_ankles: Chevilles croisées + pince-nez: Pince-nez | Lunettes sans branches + folded: Jambes relevées, exposant l'entrejambe + thick_thighs: Cuisses épaisses + thigh_holster: Étui à cuisse + + - name: Autres actions + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: Contact des poitrines + back-to-back: Dos à dos + cunnilingus: Cunnilingus + eye_contact: Contact visuel + facing_another: Face à l'autre + facing_away: Face à face (visages rapprochés) + feeding: Nourrir + finger_in_another's_mouth: Doigt dans la bouche de l'autre + fingering: Doigtage + french_kiss: French kiss + giving: Donner + grinding: Frottement des hanches + groping: Peloter + holding_hands: Se tenir la main + hug: Étreinte + imminent_kiss: Baiser imminent + incoming_food: Nourriture qui arrive + incoming_gift: Cadeau qui arrive + interlocked_fingers: Doigts entrelacés + Kabedon: Kabedon (frapper le mur) + lap_pillow: Oreiller sur les genoux + licking_penis: Lécher le pénis + long_tongue: Longue langue + mimikaki: Nettoyage d'oreilles + oral_invitation: Présenter la langue pour recevoir l'éjaculation + princess_carry: Porte de la princesse + shared_bathing: Bain partagé + shared_food: Partager de la nourriture + sitting_on_head: S'asseoir sur la tête + sitting_on_shoulder: S'asseoir sur l'épaule + slapping: Gifle + spanking: Fessée + special_feeling_(meme): Mème "Special Feeling" (couple sous un parapluie dans la neige) + symmetrical_docking: Contact des poitrines + tongue: Langue + tongue_out: Langue sortie + uvula: Luette | Voile du palais | Uvule + ear_biting: Mordre l'oreille + mixed_bathing: Bain mixte + +- name: Image + groups: + - name: Qualité d'image + color: rgba(0, 255, 255, .4) + tags: + checkered: À carreaux + lowres: Basse résolution + highres: Haute résolution + absurdres: Résolution extrêmement élevée + incredibly absurdres: Résolution incroyablement élevée + huge filesize: Résolution super élevée / Fichier volumineux + wallpaper: Fond d'écran + pixel art: Pixel art + monochrome: Image en noir et blanc + colorful: Coloré + + - name: Style artistique + color: rgba(0, 255, 255, .4) + tags: + artbook: Artbook + game cg: CG de jeu + comic: Bande dessinée + 4koma: Manga en quatre cases + animated gif: Image GIF animée + dakimakura: Dakimakura + cosplay: Cosplay + crossover: Crossover + dark: Sombre + light: Lumineux + guro: Guro + realistic: Réaliste + photo: Photo + real: Réel + landscape/scenery: Paysage + cityscape: Paysage urbain + science fiction: Science-fiction + original: Original + parody: Parodie + personification: Personnification + optical illusion: Illusion d'optique + fine art parody: Parodie d'œuvre d'art + sketch: Croquis + traditional media: Média traditionnel (dessin à la main) + watercolor (medium): Aquarelle transparente + silhouette: Silhouette + cover: Couverture + album: Album + sample: Échantillon avec texte + back: Arrière-plan + bust: Buste + profile: Profil + expressions: Expressions (diverses expressions) + everyone: Tous les personnages principaux d'une œuvre réunis + column lineup: Petite images alignées en colonnes pour former une grande image + transparent background: Fond transparent + simple background: Fond simple + gradient background: Fond dégradé + zoom layer: Arrière-plan agrandi de l'avant-plan + 8 Bit Game: Jeu 8 bits + 1980s anime: Anime des années 80 + disney movie: Film Disney + goth: Gothique + 80s movie: Film des années 80 + bubble bobble: Bubble Bobble + style of Pixar: Style Pixar + Polaroid art: Art Polaroid + Kaleidoscope Photography: Photographie kaléidoscope + opal render: Rendu opale + chemigram: Chimigramme + Studio Ghibli: Style Ghibli + dreamlike: Onirique + (faux traditional media): Style de peinture simulé + genshin impact: Genshin Impact + azur lane: Azur Lane + kantai collection: Kantai Collection + rebecca (cyberpunk): Rebecca (cyberpunk) + chainsaw man: Chainsaw Man + Magic Vortex: Vortex magique + ((dieselpunk)): Dieselpunk + magazine scan: Scan de magazine + album cover: Couverture d'album + (lineart): Lignes épaisses + synthwave: Synthwave + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): Lococo + + - name: Type d'art + color: rgba(0, 255, 255, .4) + tags: + monochrome: Image en noir et blanc + Collage: Collage + Dalle de verre: Vitraux + pixel art: Pixel art + Encaustic painting: Peinture à l'encaustique + Ink wash painting: Peinture à l'encre de Chine + Mezzotint: Mezzotinte + silhouette: Silhouette + illustration: Illustration + (((ink))), ((watercolor)): Peinture à l'aquarelle + illustration,(((ukiyoe))),((sketch)),((japanese_art)): Ukiyo-e + ((wash painting)),((ink s...)): Style chinois + ((dyeing)),((oil painting)),((impasto)): Peinture à l'huile + (posing sketch), (monochrome): Croquis en noir et blanc + sketch: Croquis à main levée + (monochrome), (gray scale), (pencil sketch lines: Esquisse au crayon + (watercolor pencil): Dessin au crayon de couleur + + - name: Mouvement artistique + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): Art nouveau + ((classicism)): Classicisme + ((futurism)): Futurisme + ((Dadaism)): Dadaïsme + ((abstract art)): Art abstrait + ((ASCII art)): Art ASCII + + - name: Style d'artiste + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): Style Alphonse Mucha + ((Monet style)): Style Monet + + - name: Éclairage + color: rgba(0, 255, 255, .4) + tags: + rim light: Lumière de contour + Volumetric Lighting: Éclairage volumétrique + glowing neon lights: Lumières néon lumineuses + Cinematic Lighting: Éclairage cinématographique + lens flare: Halo lumineux + metallic luster: Lustre métallique + moody lighting: Éclairage d'ambiance + Tyndall effect: Effet Tyndall + light leaks: Fuites de lumière + background light: Lumière d'arrière-plan + available light: Lumière naturelle + + - name: Réalisme + color: rgba(0, 255, 255, .4) + tags: + realistic: Réaliste + highres: Épaisseur de peinture (style) + photo_(medium): Photo (style) + oil_painting: Peinture à l'huile + reality: Réalité + polaroid: Polaroid + + - name: Esquisse + color: rgba(0, 255, 255, .4) + tags: + sketch: Croquis + flat_color: Couleur unie + monochrome: Monochrome + spot_color: Couleur unie + halftone: Demi-teinte + greyscale: Nuances de gris + high_contrast: Contraste élevé + partially_colored: Partiellement coloré + chromatic_aberration: Aberration chromatique + contour_deepening: Approfondissement des contours + outline: Contour + silhouette: Silhouette + + - name: Pinceau + color: rgba(0, 255, 255, .4) + tags: + traditional_media: Support traditionnel (comme le papier) + faux_traditional_media: Style de peinture simulé + marker_(medium): Feutre + copics: Feutre (gris neutre) + pencil_sketch_lines: Esquisse au crayon + graphite_(medium): Crayon graphite + colored_pencil_(medium): Crayon de couleur + millipen_(medium): Stylo à pointe fine + nib_pen_(medium): Stylo à pointe + ballpoint_pen_(medium)_: Stylo à bille + pastel_color: Couleurs douces + watercolor_(medium): Aquarelle + acrylic_paint_(medium): Peinture acrylique + contour_deepening: Épaississement des lignes + + - name: Couleur + color: rgba(0, 255, 255, .4) + tags: + orange: Orange + blue: Bleu + red: Rouge + light_brown: Marron clair + dark_pink: Rose foncé + khaki: Kaki + blonde: Blond + brown: Marron + black: Noir + gray: Gris + darkgray: Gris foncé + silver: Argent + lightgray: Gris clair + gainsboro: Gris de Gainsboro + whitesmoke: Fumée blanche + snow: Neige + ghostwhite: Blanc fantôme + floralwhite: Blanc floral + linen: Lin + antiquewhite: Blanc antique + papayawhip: Papaye + blanchedalmond: Amande blanchie + bisque: Biscuit + moccasin: Mocassin + navajowhite: Blanc navajo + peachpuff: Pêche + mistyrose: Rose brumeux + lavenderblush: Lavande rosée + seashell: Coquillage + oldlace: Dentelle ancienne + ivory: Ivoire + honeydew: Pasteque + mintcream: Crème de menthe + azure: Azur + aliceblue: Bleu Alice + lavender: Lavande + lightsteelblue: Bleu acier clair + lightslategray: Gris ardoise clair + slategray: Gris ardoise + steelblue: Bleu acier + royalblue: Bleu royal + midnightblue: Bleu nuit + navy: Bleu marine + darkblue: Bleu foncé + mediumblue: Bleu moyen + dodgerblue: Bleu Dodger + cornflowerblue: Bleuet + skyblue: Bleu ciel + lightblue: Bleu clair + powderblue: Bleu poudre + paleturquoise: Turquoise pâle + lightcyan: Cyan clair + cyan: Cyan + aquamarine: Aigue-marine + turquoise: Turquoise + mediumturquoise: Turquoise moyen + darkturquoise: Turquoise foncé + lightseagreen: Vert marin clair + cadetblue: Bleu cadet + darkcyan: Cyan foncé + teal: Sarcelle + darkslategray: Gris ardoise foncé + darkgreen: Vert foncé + green: Vert + forestgreen: Vert forêt + seagreen: Vert marin + mediumseagreen: Vert émeraude moyen + mediumaquamarine: Aigue-marine moyen + darkseagreen: Vert marin foncé + palegreen: Vert pâle + lightgreen: Vert clair + springgreen: Vert printemps + mediumspringgreen: Vert gazon + lawngreen: Vert gazon + chartreuse: Chartreuse + greenyellow: Jaune-vert + lime: Citron vert + limegreen: Vert citron + yellowgreen: Vert jaunâtre + darkolivegreen: Vert olive foncé + olivedrab: Olive + olive: Olive + darkkhaki: Kaki foncé + palegoldenrod: Tiges dorées pâles + cornsilk: Soie de maïs + beige: Beige + lightyellow: Jaune clair + lightgoldenrodyellow: Jaune doré clair + lemonchiffon: Chiffon de citron + wheat: Blé + burlywood: Bois robuste + tan: Beige + yellow: Jaune + gold: Or + sandybrown: Marron sable + darkorange: Orange foncé + goldenrod: Tiges dorées + peru: Pérou + darkgoldenrod: Tiges dorées foncées + chocolate: Chocolat + sienna: Terre de Sienne + saddlebrown: Marron selle + maroon: Marron + darkred: Rouge foncé + firebrick: Brique + indianred: Rouge indien + rosybrown: Marron rosé + darksalmon: Saumon foncé + lightcoral: Corail clair + salmon: Saumon + lightsalmon: Saumon clair + coral: Corail + tomato: Tomate + orangered: Orange rougeâtre + crimson: Cramoisi + mediumvioletred: Rouge violacé moyen + deeppink: Rose vif + hotpink: Rose vif + palevioletred: Rouge violacé pâle + pink: Rose + lightpink: Rose clair + thistle: Chardon + magenta: Magenta + fuchsia: Fuchsia + violet: Violet + plum: Prune + orchid: Orchidée + mediumorchid: Orchidée moyenne + darkorchid: Orchidée foncée + darkviolet: Violet foncé + darkmagenta: Magenta foncé + purple: Violet + indigo: Indigo + darkslateblue: Bleu ardoise foncé + blueviolet: Bleu-violet + mediumpurple: Violet moyen + slateblue: Bleu ardoise + mediumslateblue: Bleu ardoise moyen + + - name: Contexte + color: rgba(0, 255, 255, .4) + tags: + fantasy: Style fantastique + ban: Fantaisie technologique + cyberpunk: Cyberpunk + depth_of_field: Profondeur de champ (technique artistique) + blurry: Arrière-plan flou + blurry_foreground: Premier plan flou + simple_background: Arrière-plan simple + black_background: Arrière-plan noir + white_background: Arrière-plan blanc + transparent_background: Arrière-plan transparent + beige_background: Arrière-plan beige + brown_background: Arrière-plan marron + tan_background: Arrière-plan brun-jaune + grey_background: Arrière-plan gris + two-tone_background: Arrière-plan à deux tons + gradient_background: Arrière-plan dégradé + multicolored_background: Arrière-plan multicolore + rainbow_background: Arrière-plan arc-en-ciel + abstract_background: Arrière-plan abstrait + argyle_background: Arrière-plan à motif losange + checkered_background: Arrière-plan à carreaux + floral_background: Arrière-plan avec motifs floraux + halftone_background: Arrière-plan en trames + heart_background: Arrière-plan rose pâle + honeycomb_background: Arrière-plan en forme de nid d'abeille + plaid_background: Arrière-plan à carreaux écossais + polka_dot: Arrière-plan à pois + striped_background: Arrière-plan rayé + scenery: Paysage + landscape: Paysage + foral_background: Arrière-plan avec motifs floraux + crop_top_overhang: Surplomb de la partie supérieure recadrée + starry_background: Arrière-plan étoilé + sparkle_background: Arrière-plan scintillant + cityscape: Arrière-plan urbain + city_lights: Arrière-plan avec lumières de la ville + clock_background: Arrière-plan avec horloge + bubble_background: Arrière-plan avec bulles + border: Bordure + pillarboxed: Arrière-plan avec des bandes verticales + rounded_corners: Arrière-plan ou cadre avec des coins arrondis + viewfinder: Viseur d'appareil photo + windowboxed: Arrière-plan avec cadre (encadré) + outside_border: Une partie dépasse du cadre de l'arrière-plan + flashback: Scène de flashback + wall_of_text: Arrière-plan de texte + background_text: Texte en arrière-plan + +- name: Environnement + groups: + - name: Saison + color: rgba(31, 144, 255, .4) + tags: + in spring: Printemps + in summer: Été + in autumn: Automne + in winter: Hiver + (autumn maple forest:1.3),(very few fallen leaves),(path): Forêt d'érables en automne + + - name: Météo + color: rgba(31, 144, 255, .4) + tags: + day: Jour + dusk: Crépuscule + night: Nuit + rain: Pluie + in the rain: Sous la pluie + rainy days: Jours de pluie + sunset: Coucher de soleil + cloudy: Nuageux + full moon: Pleine lune + sun: Soleil + moon: Lune + full_moon: Pleine lune + stars: Étoiles + sky: Ciel + universe: Univers + snow,ice: Neige, glace + snowflakes: Flocons de neige + lighting: Éclairage + rainbow: Arc-en-ciel + meteor shower: Pluie de météores + cumulonimbus: Cumulonimbus + + - name: Nature + color: rgba(31, 144, 255, .4) + tags: + nature: Nature + sea: Mer + ocean: Océan + beach: Plage + hills: Collines + in a meadow: Dans une prairie + on the beach: Sur la plage + underwater: Sous l'eau + over the sea: Au-dessus de la mer + grove: Bosquet + on a desert: Dans un désert + plateau: Plateau + cliff: Falaise + canyon: Canyon + oasis: Oasis + bamboo forest: Forêt de bambous + glacier: Glacier + floating island: Île flottante + volcano: Volcan + savanna: Savane + waterfall: Cascade + stream: Ruisseau + wasteland: Terre désolée + field: Champ + rice paddy: Rizière + wheat field: Champ de blé + flower field: Champ de fleurs + flower sea: Mer de fleurs + space: Espace + starry sky: Ciel étoilé + lake: Lac + river: Rivière + onsen: Source thermale + flowers meadows: Prés de fleurs + Alps: Alpes + Dreamy forest: Forêt enchantée (sensation irréelle, particules lumineuses paisibles) + mountain: Montagne + on a hill: Sur une colline + the top of the hill: Le sommet de la colline + outdoors: En plein air + + - name: Eau + color: rgba(31, 144, 255, .4) + tags: + ocean: Océan + dripping: Gouttes d'eau + beach: Plage + lake: Lac + waterfall: Cascade + ripples: Ondulations + swirl: Tourbillon + waves: Vagues + seashell: Coquillage + seaweed: Algues marines + + - name: Ciel + color: rgba(31, 144, 255, .4) + tags: + sky: Ciel + gradient_sky: Ciel en dégradé + night_sky: Ciel nocturne + starry_sky: Ciel étoilé + hyper_galaxy: Hyper-galaxie + star_(sky): Étoile (dans le ciel) + star_trail: Traînée d'étoiles + sunset: Coucher de soleil + moon: Lune + lunar: Lunaire + crescent: Croissant + crescent_moon: Nouvelle lune + full_moon: Pleine lune + moonlight: Clair de lune + scarlet_moon: Lune écarlate + universe: Univers + space: Espace + planet: Planète + from_space_station: Depuis une station spatiale + satellite: Satellite + + - name: Nuages + color: rgba(31, 144, 255, .4) + tags: + cirrus: Cirrus + Cirrocumulus: Cirrocumulus + Cirrostratus: Cirrostratus + Altocumulus: Altocumulus + Altostratus: Altostratus + stratus: Stratus + Stratocumulus: Stratocumulus + cumulus: Cumulus + Cumulonimbus: Cumulonimbus + Nimbostratus: Nimbostratus + cirrus_fibratus: Cirrus fibratus + cirrus_uncinus: Cirrus uncinus + cirrus_spissatus: Cirrus spissatus + cirrus_floccus: Cirrus floccus + cirrus_castellanus: Cirrus castellanus + cirrus_intortus: Cirrus intortus + cirrocumulus: Cirrocumulus + cirrocumulus_stratiformis: Cirrocumulus stratiformis + cirrocumulus_floccus: Cirrocumulus floccus + cirrocumulus_castellanus: Cirrocumulus castellanus + cirrocumulus_lacunosus: Cirrocumulus lacunosus + cirrostratus: Cirrostratus + cirrostratus_fibratus: Cirrostratus fibratus + cirrostratus_nebulosus: Cirrostratus nebulosus + altocumulus: Altocumulus + altocumulus_strataformis: Altocumulus strataformis + altocumulus_lenticularis: Altocumulus lenticularis + altocumulus_castellanus: Altocumulus castellanus + altocumulus_floccus: Altocumulus floccus + altocumulus_lacunosus: Altocumulus lacunosus + altostratus: Altostratus + altostratus_undulatus: Altostratus undulatus + altostratus_duplicates: Altostratus duplicates + altostratus_pannus: Altostratus pannus + altostratus_translucidus: Altostratus translucidus + altostratus_opacus: Altostratus opacus + altostratus_radiatus: Altostratus radiatus + altostratus_mammatus: Altostratus mammatus + stratus_fractus: Stratus fractus + stratus_nebulosus: Stratus nebulosus + stratus_undulatus: Stratus undulatus + stratocumulus: Stratocumulus + stratocumulus_stratiformis: Stratocumulus stratiformis + stratocumulus_cumulogentis: Stratocumulus cumulogentis + stratocumulus_castellanus: Stratocumulus castellanus + stratocumulus_lenticularis: Stratocumulus lenticularis + stratocumulus_lacunosus: Stratocumulus lacunosus + cumulus_humilis: Cumulus humilis + cumulus_mediocris: Cumulus mediocris + cumulus_congestus: Cumulus congestus + cumulus_fractus: Cumulus fractus + cumulonimbus: Cumulonimbus + cumulonimbus_calvus: Cumulonimbus calvus + cumulonimbus_capillatus: Cumulonimbus capillatus + cumulonimbus_incus: Cumulonimbus incus + + - name: Ambiance + color: rgba(31, 144, 255, .4) + tags: + new year: Nouvel An + year of the rabbit: Année du Lapin + valentine: Saint-Valentin + lantern festival: Festival des lanternes + summer festival: Festival d'été + tanabata: Tanabata + mid-autumn festival: Festival de la mi-automne + halloween: Halloween + christmas: Noël + explosion: Explosion + water vapor: Vapeur d'eau + fireworks: Feux d'artifice + ceiling window: Fenêtre du plafond + colourful glass: Verre coloré + stain glass: Vitraux + Graffiti wall: Mur de graffiti + mosaic background: Fond en mosaïque + liquid background, Sputtered water: Fond liquide, Eau pulvérisée + magic circles: Cercles magiques + fluorescent mushroom forests background: Fond de forêts de champignons fluorescents + (((colorful bubble))): Bulle colorée + in the ocean: Au bord de l'océan au coucher du soleil + against backlight at dusk: Contre-jour au crépuscule + golden hour lighting: Éclairage de l'heure dorée + strong rim light: Lumière de contour puissante + intense shadows: Ombres intenses + +- name: Scène + groups: + - name: Extérieur + color: rgba(159, 32, 240, .4) + tags: + castle: Château + city: Ville + waterpark: Parc aquatique + carousel: Carrousel + ferris wheel: Grande roue + aquarium: Aquarium + zoo: Zoo + bowling alley: Bowling + art gallery: Galerie d'art + museum: Musée + planetarium: Planétarium + swimming pool: Piscine + stadium: Stade + temple: Temple + bus stop: Arrêt de bus + train station: Gare + fountain: Fontaine + playground: Terrain de jeu + market stall: Étal de marché + phone booth: Cabine téléphonique + railroad tracks: Voies ferrées + airport: Aéroport + tunnel: Tunnel + skyscraper: Gratte-ciel + cityscape: Paysage urbain + ruins: Ruines + greco-roman architecture: Architecture gréco-romaine + east asian architecture: Architecture asiatique de l'Est + torii: Torii (porte de sanctuaire shinto) + church: Église + shop: Magasin + street: Rue + cyberpunk city: Ville cyberpunk + in the cyberpunk city: Dans la ville cyberpunk + chinese style architecture: Architecture de style chinois + gohei: Gohei (décoration de sanctuaire shinto) + Bustling city: Ville animée + laboratory: Laboratoire + coffee house: Café + gym: Salle de sport + library: Bibliothèque + prison: Prison + engine room: Salle des machines + handrail: Rambarde + neon lights: Lumières néon + street lamp: Lampadaire + road: Route + shanty town/slum: Bidonville + warehouse: Entrepôt + gothic architecture: Architecture gothique + restaurant: Restaurant + treehouse: Cabane dans les arbres + modern,Europe: Moderne, Europe + Industrial wind, Chinese architecture: Architecture industrielle, architecture chinoise + building_ruins: Ruines de bâtiment + bar: Bar + izakaya: Izakaya (taverne japonaise) + cafe: Café + bakery: Boulangerie + convenience store: Dépanneur + supermarket: Supermarché + pharmacy: Pharmacie + theater: Théâtre + movie theater: Cinéma + workshop: Atelier + courtroom: Salle d'audience + park: Parc + Trapeze: Trapèze + classroom: Salle de classe + botanical garden: Jardin botanique + amusement_park: Parc d'attractions + Disney_land: Disneyland + arena: Arène + wrestling_ring: Ring de catch + Auditorium: Auditorium + concert: Concert + Japanese_hotel: Hôtel japonais + jail_bars: Barreaux de prison + in_the_movie_theatre: Dans la salle de cinéma + stage: Scène + harbor: Port + casino: Casino + billiard: Table de billard + dungeon: Donjon + grave: Tombe + graveyard: Cimetière + tombstone: Pierre tombale + monolith: Monolithe + rappelling: Rappel (activité d'escalade) + building: Bâtiment + architecture: Architecture + magnificent_architecture: Architecture magnifique + Skyscraper: Gratte-ciel + east_asian_architecture: Architecture asiatique de l'Est + cathedral: Cathédrale + chinese_style_loft: Loft de style chinois + traditional_chinese_room: Salle traditionnelle chinoise + turret: Tourelle + tower: Tour + mosque: Mosquée + reservoir: Réservoir + railroad: Chemin de fer + railway: Voie ferrée + bridge: Pont + under_bridge: Sous le pont + remains: Vestiges + rubble_ruins: Ruines en ruine + + - name: Ville + color: rgba(159, 32, 240, .4) + tags: + city: Ville + cityscape: Paysage urbain + street: Rue + downtown: Centre-ville + crowd: Foule + alley: Ruelle + in_main_street: Dans la rue principale + Intersection: Intersection + avenue: Avenue + lawn: Pelouse + road: Route + path: Chemin + pavement: Trottoir + road_sign: Panneau de signalisation + traffic_cone: Cône de signalisation + lamppost: Lampadaire + power_lines: Lignes électriques + fence: Clôture + railing: Rambarde + bench: Banc + vending_machine: Distributeur automatique + + - name: Intérieur + color: rgba(159, 32, 240, .4) + tags: + indoor: Intérieur + bathroom: Salle de bain + toilet stall: Cabine de toilettes + otaku room: Chambre d'otaku + cafeteria: Cafétéria + classroom: Salle de classe + clubroom: Salle de club + bedroom: Chambre + kitchen: Cuisine + dormitory: Dortoir + dungeon: Donjon + infirmary: Infirmerie + stage: Scène + electrical room: Salle électrique + server room: Salle des serveurs + basement: Sous-sol + art room: Salle d'art + bathing: Bain + stairs: Escaliers + greenhouse: Serre + + - name: Plancher + color: rgba(159, 32, 240, .4) + tags: + floor: Plancher + tile_floor: Plancher en carrelage + + - name: Meubles + color: rgba(159, 32, 240, .4) + tags: + bedroom: Meubles + tatami: Tatami + bed: Lit + couch: Canapé + kotatsu: Kotatsu (table chauffante japonaise) + fireplace: Cheminée + window_: Fenêtre + sash: Châssis de fenêtre + curtains: Rideaux + door: Porte + sliding_doors: Portes coulissantes + clothes_rack: Porte-vêtements + air_conditioner: Climatiseur + table: Table + school_desk: Bureau d'école + chair: Chaise + armchair: Fauteuil + lounge_chair: Chaise longue + beach_chair: Chaise de plage + folding_chair: Chaise pliante + invisible_chair: Chaise invisible + office_chair: Chaise de bureau + wheelchair: Fauteuil roulant + + - name: Literie + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: Drap de lit + mattress: Matelas + futon: Futon (matelas japonais) + cushion: Coussin + carpet: Tapis + pillow: Oreiller + dumpling_Hug_Pillow: Oreiller peluche dumpling + pillow_hug: Oreiller de câlin + yes-no_pillow: Oreiller Oui/Non + stuffed_animal: Animal en peluche + stuffed_bunny: Lapin en peluche + koakuma: Koakuma (personnage de manga) + + - name: Salle de bain + color: rgba(159, 32, 240, .4) + tags: + bathroom: Salle de bain + bathtub,: Baignoire + rubber_duck: Canard en caoutchouc + shower_head: Pomme de douche + toilet: Toilette + squat_toilet: Toilette à la turque + soap: Savon + tiles: Carrelage + +- name: Objets + groups: + - name: Fournitures scolaires + color: rgba(189, 182, 107, .4) + tags: + notebook: Cahier + paintbrush: Pinceau + pencil: Crayon à papier + book: Livre + open_book: Livre ouvert + book_stack: Pile de livres + bookshelf: Étagère à livres + school_bag: Sac d'école (sac à main) + backpack: Sac à dos + + - name: Appareils électroniques + color: rgba(189, 182, 107, .4) + tags: + computer: Ordinateur + mouse: Souris + cellphone: Téléphone portable + Smartphones: Smartphone + handheld_game_console_: Console de jeu portable + nintendo_3ds: Nintendo 3DS + nintendo_ds: Nintendo DS + nintendo_switch: Nintendo Switch + buttons: Boutons + power_lines: Câbles d'alimentation + cable: Câble + + - name: Ustensiles de cuisine + color: rgba(189, 182, 107, .4) + tags: + pot: Casserole + teapot: Théière + ladle: Louche + can: Boîte de conserve + soda_can: Canette de soda + cup: Tasse + plate: Assiette + tray: Plateau + bowl: Bol + fork: Fourchette + chopsticks: Baguettes + spoon: Cuillère + drinking_glass: Verre à boire + tumbler: Verre ordinaire + beer_mug: Chope de bière + gift_box: Boîte cadeau + heart-shaped_box: Boîte en forme de cœur + candle: Bougie + + - name: Instruments de musique + color: rgba(189, 182, 107, .4) + tags: + music: Musique + guitar: Guitare + piano: Piano + cello: Violoncelle + playing_instrument: Jouer d'un instrument + wind_chime: Carillon éolien + + - name: Autres objets + color: rgba(189, 182, 107, .4) + tags: + wristwatch: Montre-bracelet + folding_fan: Éventail pliant + paper_fan: Éventail en papier + uchiwa: Éventail japonais + umbrella: Parapluie + transparent_umbrella: Parapluie transparent + closed_umbrella: Parapluie fermé + oil-paper_umbrella: Parapluie en papier huilé + Parasol: Parasol + basket: Panier + bouquet: Bouquet de fleurs + bucket: Seau + pail: Seau + camera: Appareil photo + gohei: Gohei (bande de papier pour chasser les mauvais esprits) + lantern/lamp: Lanterne + whip: Fouet + riding_crop: Cravache + ofuda: Amulette + cane: Canne + wand: Baguette magique + magic: Magie + trading_card: Carte à échanger + playing_card: Carte à jouer + Cassette: Cassette audio + chess_piece: Pièce d'échecs + coin: Pièce de monnaie + copper: Cuivre (monnaie) + hammer: Marteau + microphone: Microphone + mimikaki: Cure-oreille + sack: Sac en toile + scales: Balance + chibi_inset: Illustration chibi + damaged: Endommagé + diamond_(shape): Diamant (forme) + gourd: Gourde + holding_gift: Tenant un cadeau + inlet: Entrée + key: Clé + leash: Laisse + Lever: Levier + molecule: Molécule + money: Argent + Painting_(Object): Peinture (objet) + photo_(object): Photo (objet) + sand: Sable + stubble: Barbe de quelques jours + trophy: Trophée + tube_top: Haut tube + water_bottle: Bouteille d'eau + lotion: Lotion solaire / Lotion corporelle + lotion_bottle: Flacon de lotion + + - name: Armes + color: rgba(189, 182, 107, .4) + tags: + weapon: Arme + weapon_on_back: Arme dans le dos + weapon_over_shoulder: Arme sur l'épaule + huge_weapon: Arme de grande taille + planted_weapon: Arme plantée dans le sol + broken_weapon: Arme cassée + planted_sword: Épée plantée + sword: Épée + scabbard: Fourreau + unsheathing: Dégaîner + katana: Katana + saber_(weapon): Sabre (arme) + scythe: Faux + nose_hatchet: Hachette + dagger: Dague + scissors: Ciseaux + axe: Hache + hatchet: Hachette + stake: Pieu + lance: Lance + trident: Trident + bow_(weapon): Arc + arrow: Flèche + claw_(weapon): Griffe (arme) + rifle,: Fusil + gun: Pistolet + handgun: Arme de poing + thompson_submachine_gun: Mitraillette Thompson + magazine_(weapon): Chargeur (arme) + dynamite: Dynamite + bomb: Bombe + track missiles: Missiles guidés + complex Trajectory: Trajectoire complexe + tank: Tank + cannon: Canon + military_vehicle: Véhicule militaire + motorcycle: Moto + ship: Navire + watercraft: Embarcation + car: Voiture + machine: Machine + machinery: Armement mécanique + mechanical_arms: Bras mécaniques + mechanization: Mécanisation + robot_ears: Oreilles de robot + robot_joints: Articulations de robot + variable_fighter: Chasseur variable + sorcerer's_sutra_scroll: Rouleau de sutra du sorcier + + - name: Nourriture + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: Rouleau de sushi + apple: Pomme + aubergine: Aubergine + burger: Hamburger + cake: Gâteau + candy: Bonbon + candy_apple: Pomme d'amour + candy_cane: Canne en sucre + carrot: Carotte + cigarette: Cigarette + coffee: Café + cookie: Cookie + cotton_candy_: Barbe à papa + cream: Crème + dango: Dango + doughnut: Beignet + drink: Boisson + egg: Œuf + fruit: Fruit + Gelatin: Gélatine + ice_cream: Glace + kafuu_chino: Kafuu Chino + makizushi: Makizushi (rouleau de sushi) + meat: Viande + noodles: Nouilles + obento: Obento + onigiri: Onigiri (boulette de riz) + pancake: Pancake + pasties: Pâtisseries + peach: Pêche + ramen: Ramen + sake: Saké + taiyaki: Taiyaki + tea: Thé + teacup: Tasse à thé + wagashi: Wagashi (pâtisserie japonaise) + wine: Vin + jam: Confiture + pocky: Pocky + bottled_water: Eau en bouteille + sweet_potato: Patate douce + sweets: Friandises + food: Nourriture + food_in_mouth: Nourriture dans la bouche + food_on_: Nourriture sur le visage + food_on_body: Nourriture sur le corps + food_print: Empreinte de nourriture + food_stand: Stand de nourriture + in_food: (Personnage) dans la nourriture + chips: Chips + potato_chips: Chips de pomme de terre + telstar: Ballon de football Telstar + sundae: Sundae + tempura: Tempura + + - name: Animaux + color: rgba(189, 182, 107, .4) + tags: + reptile: Reptile + crow: Corbeau + bird: Oiseau + penguin: Pingouin + chick: Poussin + manjuu_(azur_lane): Manjuu + shell: Coquillage + wriggle_nightbug: Insecte nocturne + dragonfly: Libellule + mammal: Mammifère + wolf: Loup + 扶桑花: Cheval + whale: Baleine + cat: Chat + cat_teaser: Jouet pour chat + dog: Chien + dog_tags: Médaille de chien + fox: Renard + bunny: Lapin + snow_bunny: Lapin des neiges + stuffed_bunny: Lapin en peluche + horse: Cheval + cow: Vache + dragon: Dragon + loong: Dragon chinois + eastern_dragon: Dragon oriental + snake: Serpent + slime: Slime + bear: Ours + panda: Panda + teddy_bear: Ours en peluche + tiger: Tigre + bat: Chauve-souris + hamster: Hamster + mouse: Souris + squirrel: Écureuil + + - name: Plantes + color: rgba(189, 182, 107, .4) + tags: + plant: Plante + flower: Fleur + vase: Vase + bouquet: Bouquet de fleurs + flower_bloom: Épanouissement des fleurs + plum_blossom: Fleur de prunier + cherry_blossoms: Fleurs de cerisier + wisteria: Glycine + hibiscus: Hibiscus + hydrangea: Hortensia + rose: Rose + spider_lily: Lys araignée + lily: Lys + lotus: Lotus + bamboo: Bambou + entangled_plants: Plantes entrelacées + orchid: Orchidée + chrysanthemum: Chrysanthème + narcissu: Jonquille + tree: Arbre + branch: Branche + forest: Forêt + pine_tree: Pin + palm_tree: Palmier + maple_tree: Érable + bush/shrub,: Buisson + christmas_tree: Sapin de Noël + maple_leaf: Feuille d'érable + pumpkin: Citrouille + jack-o'-lantern: Citrouille sculptée + spring_onion: Oignon vert + +- name: Objectif + groups: + - name: Objectif + color: rgba(99, 201, 2, .4) + tags: + panorama: Panorama + landscape: Objectif paysage (vue d'ensemble) + wide_shot: Objectif grand-angle (vue d'ensemble) + medium_shot: Objectif moyen + mid_shot: Objectif moyen + full_shot: Plan en pied + bust: Plan américain + upper_body: Haut du corps + lower_body: Bas du corps + cowboy_shot: Plan américain + haut des cuisses (plan cowboy) + portrait: Portrait (visage + épaules + parfois poitrine) + profile: Portrait de profil (version de profil du portrait) + + - name: Gros plan + color: rgba(99, 201, 2, .4) + tags: + close-up: Gros plan + macro_shot: Macro + inset: Insertion d'autres plans ou images + cross-section: Coupe transversale + x-ray: Radiographie + solo_focus: Mise au point sur un seul personnage (adapté aux scènes complexes) + xx_focus: Mise au point sur xx + face_focus: Mise au point sur le visage + eyes_focus: Mise au point sur les yeux + foot_focus: Mise au point sur les pieds + hip_focus: Mise au point sur les hanches + ass_focus: Mise au point sur les fesses + vehicle_focus: Mise au point sur le véhicule + between_legs: (Accentuation) Entre les jambes + between_breasts: (Mise en avant) Entre les seins + between_fingers: (Mise en avant) Entre les doigts + peeking: Espionnage + peeking_out: Espionnage (posture) + peeping: Espionnage (mise en avant de l'angle de vue) + midriff_peek: Coup d'œil sur le nombril + armpit_peek: Coup d'œil sur l'aisselle + pussy_peek: Coup d'œil sur le pubis + panty_peek: Coup d'œil sur la culotte + pantyshot: Fuite de la culotte + caught: Pris sur le fait + + - name: Autres compositions + color: rgba(99, 201, 2, .4) + tags: + aerial: Aérien + turn_one's_back: Dos tourné + upskirt: Vue sous la jupe + phone_screen: Écran de téléphone + multiple_views: Vues multiples décomposées + mirror selfie: Selfie dans le miroir + three-quarter view: Vue en trois-quarts + + - name: Angles de prise de vue + color: rgba(99, 201, 2, .4) + tags: + front view: Vue de face + from_side: Vue de côté + from_above: Vue d'en haut ↘ + from_below: Vue d'en bas ↗ + from_outside: De l'extérieur vers l'intérieur + from_back: Vue arrière + from behind: Vue arrière + dynamic_angle: Angle dynamique + cinematic_angle: Angle cinématographique + dutch angle: Angle incliné + foreshortening: Raccourci perspectif + fisheye: Effet fisheye + + - name: Effets + color: rgba(99, 201, 2, .4) + tags: + depth of field: Profondeur de champ (harmonie homme-paysage) + lens_flare: Halo d'objectif + motion_blur: Flou de mouvement + motion_lines: Lignes de mouvement + speed_lines: Lignes de vitesse + bokeh: Flou artistique + chromatic_aberration: Aberration chromatique + overexposure: Surexposition + contour_deepening: Renforcement des contours + + - name: Actions du protagoniste + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: Regarder le spectateur + eye-contact: Contact visuel + eyeball: Fixer du regard + stare: Regard soutenu + looking_back: Regard en arrière + gradient: Inclinaison du personnage + looking_down: Regard vers le bas ↘ + looking_up: Regard vers le haut ↗ + facing_away: Faire face à autre chose + looking_to_the_side: Regarder sur le côté + looking_away: Regarder ailleurs + looking_ahead: Regarder vers l'avenir + looking_afar: Regarder au loin + looking_outside: Regarder vers l'extérieur + head_tilt: Inclinaison de la tête + head_down: Tête baissée + sideways_glance: Coup d'œil furtif sur le côté + upshirt: Regard par-dessous la chemise + upshorts: Regard par-dessous la jupe + looking_at_another: Regarder une autre personne + looking_at_phone: Regarder un téléphone + looking_at_animal: Regarder un animal + looking_at_mirror: Se regarder dans le miroir + looking_at_hand: Regarder une main + looking_at_hands: Regarder les deux mains + looking_at_food: Regarder de la nourriture + looking_at_screen: Regarder un écran + +- name: Hanfu + groups: + - name: "Style Tang:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: Style Tang + + - name: Shangshan + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: Shangshan orange + red upper shan: Shangshan rouge + green upper shan: Shangshan vert + blue upper shan: Shangshan bleu + pink upper shan: Shangshan rose + yellow upper shan: Shangshan jaune + white upper shan: Shangshan blanc + light blue upper shan: Shangshan bleu clair + light green upper shan: Shangshan vert clair + light red upper shan: Shangshan rouge clair + cyan blue upper shan: Shangshan bleu cyan + light purple upper shan: Shangshan violet clair + black with blue upper shan: Shangshan noir avec bleu + white with orange upper shan: Shangshan blanc avec orange + pink with black upper shan: Shangshan rose avec noir + + - name: Changshangshan + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: Long Shangshan orange + red long upper shan: Long Shangshan rouge + green long upper shan: Long Shangshan vert + blue long upper shan: Long Shangshan bleu + pink long upper shan: Long Shangshan rose + yellow long upper shan: Long Shangshan jaune + white long upper shan: Long Shangshan blanc + light blue long upper shan: Long Shangshan bleu clair + light green long upper shan: Long Shangshan vert clair + light red long upper shan: Long Shangshan rouge clair + cyan blue long upper shan: Long Shangshan bleu cyan + light purple long upper shan: Long Shangshan violet clair + black with blue long upper shan: Long Shangshan noir avec bleu + white with orange long upper shan: Long Shangshan blanc avec orange + pink with black long upper shan: Long Shangshan rose avec noir + + - name: Qixiong Poqun + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: Jupe Poqun blanche + red chest po skirt: Jupe Poqun rouge + green chest po skirt: Jupe Poqun verte + blue chest po skirt: Jupe Poqun bleue + pink chest po skirt: Jupe Poqun rose + purple chest po skirt: Jupe Poqun violette + multicolour chest po skirt: Jupe Poqun multicolore + purple with white chest po skirt: Jupe Poqun violette avec blanche + white with yellow chest po skirt: Jupe Poqun blanche avec jaune + blue with white chest po skirt: Jupe Poqun bleue avec blanche + orange with white chest po skirt: Jupe Poqun orange avec blanche + green with white chest po skirt: Jupe Poqun verte avec blanche + light orange with white chest po skirt: Jupe Poqun orange clair avec blanche + pink with white chest po skirt: Jupe Poqun rose avec blanche + white with pink chest po skirt: Jupe Poqun blanche avec rose + + - name: Qixiong Zhequn + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: Jupe Zhequn blanche + red chest pleated skirt: Jupe Zhequn rouge + green chest pleated skirt: Jupe Zhequn verte + blue chest pleated skirt: Jupe Zhequn bleue + pink chest pleated skirt: Jupe Zhequn rose + purple chest pleated skirt: Jupe Zhequn violette + multicolour chest pleated skirt: Jupe Zhequn multicolore + purple with white chest pleated skirt: Jupe Zhequn violette avec blanche + white with yellow chest pleated skirt: Jupe Zhequn blanche avec jaune + blue with white chest pleated skirt: Jupe Zhequn bleue avec blanche + orange with white chest pleated skirt: Jupe Zhequn orange avec blanche + green with white chest pleated skirt: Jupe Zhequn verte avec blanche + light orange with white chest pleated skirt: Jupe Zhequn orange clair avec blanche + pink with white chest pleated skirt: Jupe Zhequn rose avec blanche + white with pink chest pleated skirt: Jupe Zhequn blanche avec rose + + - name: Xidai + color: rgba(178, 33, 34, .4) + tags: + green waistband: Ceinture verte + yellow waistband: Ceinture jaune + red waistband: Ceinture rouge + pink waistband: Ceinture rose + orange waistband: Ceinture orange + light blue waistband: Ceinture bleu clair + light green waistband: Ceinture vert clair + green with yellow waistband: Ceinture verte avec jaune + purple with white waistband: Ceinture violette avec blanche + red with white waistband: Ceinture rouge avec blanche + red with black waistband: Ceinture rouge avec noire + yellow with white waistband: Ceinture jaune avec blanche + + - name: Pibo + color: rgba(178, 33, 34, .4) + tags: + white pibo: Pibo blanc + orange pibo: Pibo orange + black pibo: Pibo noir + pink pibo: Pibo rose + red pibo: Pibo rouge + purple pibo: Pibo violet + light green pibo: Pibo vert clair + white with yellow pibo: Pibo blanc avec jaune + + - type: wrap + + - name: "Style Song:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: Style Song + + - name: Duanshan + color: rgba(178, 33, 34, .4) + tags: + purple short shan: Shan court violet + red short shan: Shan court rouge + green short shan: Shan court vert + blue short shan: Shan court bleu + pink short shan: Shan court rose + yellow short shan: Shan court jaune + white short shan: Shan court blanc + light blue short shan: Shan court bleu clair + light green short shan: Shan court vert clair + light red short shan: Shan court rouge clair + cyan blue short shan: Shan court bleu cyan + light purple short shan: Shan court violet clair + black with blue short shan: Shan court noir avec bleu + white with yellow short shan: Shan court blanc avec jaune + light yellow with green with white short shan: Shan court jaune clair avec vert et blanc + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + purple long shan: Shan long violet + red long shan: Shan long rouge + green long shan: Shan long vert + blue long shan: Shan long bleu + pink long shan: Shan long rose + yellow long shan: Shan long jaune + white long shan: Shan long blanc + light blue long shan: Shan long bleu clair + light green long shan: Shan long vert clair + light red long shan: Shan long rouge clair + cyan blue long shan: Shan long bleu cyan + light purple long shan: Shan long violet clair + black with blue long shan: Shan long noir avec bleu + white with yellow long shan: Shan long blanc avec jaune + light yellow with green with white long shan: Shan long jaune clair avec vert et blanc + + - name: Baizhequn + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: Jupe pleated blanche + red pleated skirt: Jupe pleated rouge + green pleated skirt: Jupe pleated verte + blue pleated skirt: Jupe pleated bleue + pink pleated skirt: Jupe pleated rose + light blue pleated skirt: Jupe pleated bleu clair + white golden pleated skirt: Jupe pleated blanc doré + gradient green pleated skirt: Jupe pleated verte dégradée + translucent white pleated skirt: Jupe pleated blanche translucide + red cyan gradient pleated skirt: Jupe pleated rouge cyan dégradée + red green gradient pleated skirt: Jupe pleated rouge verte dégradée + green with white pleated skirt: Jupe pleated verte avec blanche + light yellow with green with white pleated skirt: Jupe pleated jaune clair avec vert et blanc + + - name: Songmo + color: rgba(178, 33, 34, .4) + tags: + orange songmo: Songmo orange + red songmo: Songmo rouge + green songmo: Songmo vert + blue songmo: Songmo bleu + pink songmo: Songmo rose + yellow songmo: Songmo jaune + white songmo: Songmo blanc + purple songmo: Songmo violet + green floral songmo: Songmo vert floral + purple floral songmo: Songmo violet floral + cyan floral songmo: Songmo cyan floral + + - type: wrap + + - name: "Style Ming:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: Style Ming + + - name: Shangyi + color: rgba(178, 33, 34, .4) + tags: + short coat: Veste courte + long coat: Veste longue + + - name: Qunzi + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: Jupe mamian + + - name: Lingzi + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Col superposé + round collar: Col rond + standing collar: Col montant + square collar: Col carré + + - name: Zhuangshi + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Épaulettes nuage + embroidery: Broderie + woven gold: Or tissé + makeup flower: Fleur de maquillage + bufu: Bufu diff --git a/group_tags/it_IT.yaml b/group_tags/it_IT.yaml new file mode 100644 index 0000000000000000000000000000000000000000..502dd0736d70807b214caea040924f2b01b24b97 --- /dev/null +++ b/group_tags/it_IT.yaml @@ -0,0 +1,4432 @@ +# 👍Suggerimenti integrati da varie fonti come "路过银河" (Zhihu), autore sconosciuto (Google Drive), Internet, ecc. Ringrazio questi autori per il loro altruismo! +# +# ⚠️Si consiglia di non modificare il contenuto di questo file, poiché l'autore potrebbe aggiornarlo periodicamente e le modifiche potrebbero causare conflitti durante gli aggiornamenti. +# ⚠️Se si desidera personalizzare i gruppi di parole chiave, copiare questo file, rinominarlo come "custom.yaml" e apportare le modifiche nel file "custom.yaml". +# ⚠️Il plugin leggerà prima il file "custom.yaml" e, se non esiste, leggerà questo file. +# +# ⚠️Se desideri solo aggiungere il tuo contenuto prima del file corrente, puoi creare un file prepend.yaml. +# ⚠️Se desideri solo aggiungere il tuo contenuto dopo il file corrente, puoi creare un file append.yaml. +# ⚠️custom.yaml: Sovrascrive il file corrente +# ⚠️prepend.yaml: Aggiunge prima del file corrente +# ⚠️append.yaml: Aggiunge dopo il file corrente +# +# ⚠️Si consiglia di utilizzare un editor di testo professionale (come Visual Studio Code) per modificare questo file, per evitare problemi di codifica e formattazione errata. +# ⚠️Non utilizzare il Blocco note predefinito di Windows per modificare questo file. +# ⚠️Dopo la modifica, è possibile verificare la correttezza della formattazione del contenuto su https://www.yamllint.com/. + +# Formato del contenuto: +# - name: Nome della categoria di primo livello +# groups: Elenco delle sottocategorie di secondo livello +# - name: Nome della sottocategoria +# color: Colore predefinito del testo delle parole chiave (può essere vuoto), codice CSS del colore, ad esempio: #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: Elenco delle parole chiave +# - Parola chiave in inglese: Traduzione localizzata +# - Parola chiave in inglese: Traduzione localizzata +# ... + +# Le traduzioni localizzate di questo contenuto sono state ottenute tramite traduzione automatica e potrebbero contenere imprecisioni. Se ne notate, siete invitati a inviare una richiesta di correzione su Github. +# Se ci sono errori di classificazione, errori di parole chiave o errori di traduzione delle parole chiave, siete invitati a segnalare il problema su Github. + +- name: Personaggio + groups: + - name: Oggetto + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1 ragazza + 1boy: 1 ragazzo + 2girls: 2 ragazze + 2boys: 2 ragazzi + 3girls: 3 ragazze + 3boys: 3 ragazzi + girl: ragazza + boy: ragazzo + solo: singolo + multiple_girls: ragazze multiple + little_girl: bambina piccola + little_boy: bambino piccolo + shota: shota + loli: loli + kawaii: carino + mesugaki: mesugaki + adorable_girl: ragazza adorabile + bishoujo: bishoujo + gyaru: gyaru + sisters: sorelle + ojousama: ojousama + female: femmina + mature_female: donna matura + mature: maturo + female_pervert: pervertita femminile + male: maschio + milf: milf + otoko_no_ko: otoko no ko + crossdressing: travestimento + + - name: Identità + color: rgba(255, 123, 2, .4) + tags: + lifeguard: bagnino + boxer: pugile + scientist: scienziato + athletes: atleti + office lady: impiegata + monk: monaco + crobat: acrobata + nun: suora + nurse: infermiera + stewardess: hostess + student: studente + waitress: cameriera + teacher: insegnante + racer: pilota + police: poliziotto + soldier: soldato + cheerleader: cheerleader + actor: attore + actress: attrice + spy: spia + agent: agente + assassin: assassino + poet: poeta + samurai: samurai + dancing girl: ballerina + motorcyclist: motociclista + hacker: hacker + magician: mago + detective: detective + doll: bambola + maid: cameriera + pilot: pilota + diver: subacqueo + bar censor: censore del bar + missionary: missionario + firefighter: pompiere + goalkeeper: portiere + chef: chef + astronaut: astronauta + cashier: cassiere + mailman: postino + barista: barista + the hermit: l'eremita + makihitsuji: pastore + office_lady: signorina d'ufficio + race_queen: reginetta delle corse + queen: regina + doctor: dottore + knight: cavaliere + housemaid: domestica + dancer: ballerino + ballerina: ballerina + gym_leader: allenatore di ginnastica + trap: trappola + female: donna + harem: harem + idol: idolo + male: uomo + priest: prete + cleric: chierico + wa_maid: cameriera alla moda giapponese + yaoi: yaoi + yuri: yuri + albino: albino + amputee: amputato + + - name: Personaggio di Anime + color: rgba(255, 123, 2, .4) + tags: + pokemon: pokemon + teddy bear: orsacchiotto + mario: Mario + pikachu: Pikachu + neon genesis evangelion: Neon Genesis Evangelion + hatsune miku: Hatsune Miku + harry potter: Harry Potter + doraemon: Doraemon + saint seiya: I Cavalieri dello Zodiaco + gojou satoru: Gojou Satoru + avengers: Avengers + mazinger: Mazinger Z + captain america: Capitan America + crayon shin-chan: Shin Chan + slam dunk: Slam Dunk + sun wukong: Sun Wukong + witch: strega + miko: miko + ninja: ninja + vampire: vampiro + knight: cavaliere + magical_girl: ragazza magica + orc: orco + druid: druido + elf: elfo + fairy: fata + furry: furry + mermaid: sirena + kamen rider: Kamen Rider + magister: magister + spider-man: Spider-Man + santa alter: Babbo Natale alterato + monster_girl: ragazza mostro + cat_girl: ragazza gatto + dog_girl: ragazza cane + fox_girl: ragazza volpe + kitsune: kitsune + kyuubi: Kyuubi + raccoon_girl: ragazza procione + wolf_girl: ragazza lupo + bunny_girl: ragazza coniglietto + horse_girl: ragazza cavallo + cow_girl: ragazza mucca + dragon_girl: ragazza drago + centaur: centauro + slime_musume: ragazza slime + spider_girl: ragazza ragno + dominatrix: dominatrice + sailor_senshi: guerriero marinaio + mecha: mecha + mecha_musume: ragazza mecha + humanoid_robot_: robot umanoide + cyborg: cyborg + angel: angelo + devil: diavolo + dark_elf: elfo oscuro + imp: demone + succubus: succube + giantess: gigantessa + minigirl: ragazza mini + monster: mostro + multiple girls: ragazze multiple + no humans: non umani + + - name: Età + color: rgba(255, 123, 2, .4) + tags: + toddler: bambino piccolo + kindergartener: bambino dell'asilo + child: bambino + underage: minorenne + teenager: adolescente (13-19) + teen: adolescente (13-19) + early teen: adolescente precoce (11-15) + adult: adulto + elder: anziano + old: vecchio + loli: loli + shota: shota + + - name: Pelle + color: rgba(255, 123, 2, .4) + tags: + white_skin: pelle bianca + pale_skin: pelle pallida + fair_skin: pelle chiara + brown_skin: pelle marrone + deep_skin: pelle scura + dark_skin: pelle scura + black_skin: pelle nera + shiny_skin: pelle lucida + white_marble_glowing_skin: pelle di marmo bianco luminosa + tattoo: tatuaggio + tan: abbronzatura + tanlines: segni dell'abbronzatura + oil: pelle oleosa + + - name: Corporatura + color: rgba(255, 123, 2, .4) + tags: + skinny: magro + plump: paffuto + curvy: prosperoso + gyaru: gyaru + pregnant: incinta + fat: grasso + thin: sottile + slender: snello + glamor: fascino + tall: alto + petite: piccolo + chibi: chibi + muscular: muscoloso + + - name: Forma del viso + color: rgba(255, 123, 2, .4) + tags: + slender face: viso slanciato + round face: viso tondo + oval face: viso ovale + baby face: viso da bambino + inverted triangle face: viso a triangolo rovesciato + heart shaped face: viso a forma di cuore + diamond face: viso a forma di diamante + square face: viso quadrato + long face: viso lungo + triangular face: viso triangolare + + - name: Capelli + color: rgba(255, 123, 2, .4) + tags: + white hair: capelli bianchi + blonde hair: capelli biondi + silver hair: capelli argento + grey hair: capelli grigi + purple hair: capelli viola + red hair: capelli rossi + yellow hair: capelli gialli + green hair: capelli verdi + blue hair: capelli blu + black hair: capelli neri + brown hair: capelli castani + straight_hair: capelli lisci + short hair: capelli corti + curly hair: capelli ricci + long hair: capelli lunghi + pony-tail: coda di cavallo + bunches: trecce + streaked hair: capelli con colpi di colore + grey gradient hair: capelli grigi sfumati + light brown hair: capelli castani chiari + two-tone hair: capelli bicolore + multicolored hair: capelli multicolori + high ponytail: alta coda di cavallo + twintails: code di cavallo doppie + braided ponytail: coda di cavallo intrecciata + ponytail: coda di cavallo + short ponytail: coda di cavallo corta + twin braids: trecce doppie + medium hair: capelli medi + very long hair: capelli molto lunghi + braided bangs: frangia intrecciata + swept bangs: frangia spazzata + hair between eyes: capelli tra gli occhi + bob cut: taglio bob + hime cut: taglio hime + crossed bangs: frangia incrociata + bangs: frangia + blunt bangs: frangia dritta + air bangs: frangia aerea + hair wings: ali di capelli + long bangs: frangia lunga + side_blunt_bangs: frangia laterale dritta + centre parting bangs: frangia con riga centrale + asymmetric bangs: frangia asimmetrica + disheveled hair: capelli arruffati + wavy hair: capelli ondulati + hair in takes: capelli raccolti + hair pink flowers: fiori rosa nei capelli + ahoge: ciuffo ribelle + antenna hair: capelli ad antenna + Side ponytail: coda di cavallo laterale + forehead: fronte + drill hair: capelli a spirale + hair bun: chignon + double bun: doppio chignon + messy hair: capelli disordinati + hair_flaps: ciuffi di capelli + + - name: Viso + color: rgba(255, 123, 2, .4) + tags: + makeup: trucco + fundoshi: fondo + eyeshadow: ombretto + lipstick: rossetto + mascara: mascara + long_eyelashes: ciglia lunghe + red_lips_: labbra rosse + facepaint: trucco del viso + lipgloss: lucidalabbra + colored_eyelashes: ciglia colorate + blush: arrossire + light_blush: leggero arrossire + anime_style_blush: arrossire stile anime + nose_blush: arrossire del naso + nosebleed: sanguinamento del naso + bruise_on_face: livido sul viso + facial_mark: segno sul viso + forehead_mark: segno sulla fronte + anger_vein: vena dell'ira + mole: neo + mole_under_eye: neo sotto l'occhio + freckles: lentiggini + food_on_face: cibo sul viso + rice_on_face: riso sul viso + cream_on_face: crema sul viso + mustache: baffi + goatee: pizzetto + whisker_markings: segni dei baffi + scar: cicatrice + scar_across_eye: cicatrice attraverso l'occhio + smoking_pipe: pipa da fumo + tattoo: tatuaggio + + - name: Orecchie + color: rgba(255, 123, 2, .4) + tags: + elf ears: orecchie da elfo + fake animal ears: orecchie di animale finte + cat ears: orecchie di gatto + dog ears: orecchie di cane + fox ears: orecchie di volpe + bunny ears: orecchie di coniglio + bear ears: orecchie d'orso + wolf ears: orecchie di lupo + horse ears: orecchie di cavallo + cow ears: orecchie di mucca + mouse ears: orecchie di topo + pig ears: orecchie di maiale + sheep ears: orecchie di pecora + deer ears: orecchie di cervo + goat ears: orecchie di capra + antelope ears: orecchie di antilope + rhino ears: orecchie di rinoceronte + elephant ears: orecchie di elefante + bat ears: orecchie di pipistrello + dragon ears: orecchie di drago + demon ears: orecchie di demone + angel ears: orecchie di angelo + alien ears: orecchie di alieno + ear_blush: arrossire delle orecchie + ear_ornament: ornamento per le orecchie + ear_piercing: piercing all'orecchio + animal_ears: orecchie di animale + ears_down: orecchie abbassate + fake_animal_ears: orecchie di animale finte + floppy_ears: orecchie pendenti + animal_ear_fluff: pelliccia delle orecchie di animale + fox_ears: orecchie di volpe + cat_ears: orecchie di gatto + lion_ears: orecchie di leone + jaguar_ears: orecchie di giaguaro + tiger_ears: orecchie di tigre + dog_ears: orecchie di cane + coyote_ears: orecchie di coyote + bunny_ears: orecchie di coniglio + horse_ears: orecchie di cavallo + pointy_ears: orecchie appuntite + long_pointy_ears: orecchie appuntite lunghe + mouse_ears: orecchie di topo + raccoon_ears: orecchie di procione + squirrel_ears: orecchie di scoiattolo + bear_ears: orecchie d'orso + panda_ears: orecchie di panda + bat_ears: orecchie di pipistrello + robot_ears: orecchie di robot + extra_ears: orecchie extra + ears_through_headwear: orecchie attraverso copricapo + alpaca_ears: orecchie di alpaca + horns: corna + fake_horns: corna finte + dragon_horns: corna di drago + oni_horns: corna di oni + antlers: palchi + curled_horns: corna arricciate + goat_horns: corna di capra + hair_on_horn: capelli sulle corna + + - name: Sopracciglia + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: sopracciglia folte + cocked eyebrow: sopracciglio alzato + short eyebrows: sopracciglia corte + v-shaped eyebrows: sopracciglia a forma di V + + - name: Occhi + color: rgba(255, 123, 2, .4) + tags: + blue eyes: occhi blu + red eyes: occhi rossi + brown eyes: occhi marroni + green eyes: occhi verdi + purple eyes: occhi viola + yellow eyes: occhi gialli + pink eyes: occhi rosa + black eyes: occhi neri + aqua eyes: occhi azzurri + orange eyes: occhi arancioni + grey eyes: occhi grigi + multicolored eyes: occhi multicolore + white eyes: occhi bianchi + gradient eyes: occhi sfumati + closed eyes: occhi chiusi + half-closed eyes: occhi semi-chiusi + crying with eyes open: occhi aperti che piangono + narrowed eyes: occhi stretti + hidden eyes: occhi nascosti + heart-shaped eyes: occhi a forma di cuore + button eyes: occhi a bottone + cephalopod eyes: occhi di cefalopode + eyes visible through hair: occhi visibili tra i capelli + glowing eyes: occhi luminosi + empty eyes: occhi vuoti + rolling eyes: occhi che si girano + cross eyed: occhi storti + blank eyes: occhi vuoti + no eyes: senza occhi + sparkling eyes: occhi scintillanti + extra eyes: occhi extra + crazy eyes: occhi pazzi + solid circle eyes: occhi a cerchio pieno + solid oval eyes: occhi ovali pieni + uneven eyes: occhi irregolari + blood from eyes: sangue dagli occhi + eyeshadow: ombretto + red eyeshadow: ombretto rosso + blue eyeshadow: ombretto blu + purple eyeshadow: ombretto viola + pink eyeshadow: ombretto rosa + green eyeshadow: ombretto verde + bags under eyes: borse sotto gli occhi + ringed eyes: occhi cerchiati + covered eyes: occhi coperti + covering eyes: coprire gli occhi + shading eyes: ombreggiare gli occhi + devil eyes: occhi diavolo + slit pupils: pupille a fessura + bloodshot eyes: occhi arrossati + tsurime: occhi con angolo esterno rialzato + tareme: occhi con angolo esterno abbassato + constricted pupils: pupille contratte + devil pupils: pupille diavolo + snake pupils: pupille serpente + pupils sparkling: pupille che brillano + flower-shaped pupils: pupille a forma di fiore + heart-shaped pupils: pupille a forma di cuore + heterochromia: eterocromia + color contact lenses: lenti a contatto colorate + longeyelashes: ciglia lunghe + colored eyelashes: ciglia colorate + mole under eye: neo sotto l'occhio + light_eyes: occhi chiari + glowing_eye: occhio luminoso + shiny_eyes: occhi lucenti + sparkling_eyes: occhi scintillanti + gradient_eyes: occhi sfumati + anime_style_eyes: occhi in stile anime + water_eyes: occhi acquosi + beautiful_detailed_eyes: occhi dettagliati e belli + solid_oval_eyes_: occhi ovali pieni (Q-style) + solid_circle_pupils: pupille a cerchio pieno (Q-style) + blush_stickers: adesivi per arrossire + heart_in_eye: cuore nell'occhio + evil_eyes: occhi malvagi + crazy_eyes: occhi folli + empty_eyes: occhi vuoti + covered_eyes: occhi coperti + hollow_eyes: occhi vuoti a forma di stella + multicolored_eyes: occhi multicolore + ringed_eyes: occhi cerchiati + sanpaku: sanpaku (pupille spostate) + mismatched_sclera: sclera non abbinata + eye_relfection: riflesso negli occhi (senza effetto) + mechanical_eye: occhio meccanico + cephalopod_eyes: occhi di cefalopode + clock_eyes: occhi dell'orologio + compound_eyes: occhi composti + fisheye: occhio di pesce + devil_eyes: occhi del diavolo + bloodshot_eyes: occhi arrossati + blood_from_eyes: sangue dagli occhi + aqua_eyes: occhi azzurri + solid_eyes: occhi solidi + sparkling_anime_eyes: occhi anime scintillanti + blue_eyes: occhi blu + brown_eyes: occhi marroni + closed_eyes: occhi chiusi + crying_with_eyes_open: occhi aperti che piangono + extra_eyes: occhi extra + eye_contact: contatto visivo + eye_of_horus: occhio di Horus + eyeball: bulbo oculare + eyeliner: eyeliner + eyes: occhi + glint: luccichio negli occhi + glowing_eyes: occhi luminosi + half-closed_eye: occhio semi-chiuso (singolo) + half-closed_eyes: occhi semi-chiusi + horizontal_pupils: pupille orizzontali + jitome: occhi sprezzanti + light_brown_eyes: occhi marroni chiari + no_eyes: senza occhi + one-eyed: occhio singolo + reflective_eyes: occhi riflettenti + silver_eyes: occhi argentati + spiral_eyes: occhi a spirale + third_eye: terzo occhio + uneven_eyes: occhi irregolari + flaming_eye: occhio fiammeggiante + eyes_closed: occhi chiusi + half_closed_eyes: occhi semi-chiusi + narrowed_eyes: occhi stretti + squinting: occhi semichiusi + tears: lacrime + sharp_eyes: occhi affilati + slanted_eyes: occhi inclinati + upturned_eyes: occhi all'insù + cross-eyed: occhi storti + hair_over_eyes: capelli sugli occhi + eyes_visible_through_hair: occhi visibili tra i capelli + hair_over_one_eye: capelli su un occhio + one_eye_covered: un occhio coperto + bags_under_eyes: borse sotto gli occhi + eyepatch: benda sull'occhio + medical_eyepatch: benda medica sull'occhio + scar_across_eye: cicatrice sull'occhio + no_blindfold: senza benda sugli occhi + no_eyepatch: senza benda sull'occhio + ahegao: ahegao + + - name: Pupille + color: rgba(255, 123, 2, .4) + tags: + pupils: pupille + bright_pupils: pupille luminose + heterochromia: eterocromia + slit_pupils: pupille a fessura + snake_pupils: pupille di serpente + symbol-shaped_pupils: pupille a forma di simbolo + heart-shaped_pupils: pupille a forma di cuore + diamond-shaped_pupils: pupille a forma di diamante + star-shaped_pupils: pupille a forma di stella + dilated_pupils: pupille dilatate + no_pupils: senza pupille + ringed_eyes: occhi cerchiati + constricted_pupils: pupille contratte (senza effetto) + star_in_eye: stella nell'occhio + x-shaped_pupils: pupille a forma di X + horizontal_pupils: pupille orizzontali + dashed_eyes: occhi tratteggiati + butterfly-shaped_pupils: pupille a forma di farfalla + rectangular_pupils: pupille rettangolari + square_pupils: pupille quadrate + dot_pupils: pupille a punti + extra_pupils: pupille extra + mismatched_pupils: pupille non abbinati + "+_+": occhi a forma di croce + cross-shaped_pupils: pupille a forma di croce (senza effetto) + purple_pupils: pupille viola + orange_pupils: pupille arancioni + blue_pupils: pupille blu + symbol_in_eye: simbolo nell'occhio + + - name: Naso + color: rgba(255, 123, 2, .4) + tags: + pointed nose: naso appuntito + small nose: naso piccolo + big nose: naso grande + no_nose: senza naso + dot_nose: naso a puntino + nose_bubble: bollicina sul naso + smelling: odorare + nose: naso + nosebleed: sanguinamento del naso + snot: muco + snout: muso di animale + + - name: Bocca + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: bocca a castagna + thick lips: labbra spesse + puffy lips: labbra gonfie + lipstick: rossetto + heart-shaped mouth: bocca a forma di cuore + pout: bocca a becco + open mouth: bocca aperta + closed mouth: bocca chiusa + shark mouth: bocca di squalo + parted lips: labbra divaricate + mole under mouth: neo sotto la bocca + open_mouth: bocca aperta + gasping: ansimare (bocca aperta) + Slightly_open_mouth: bocca leggermente aperta + wavy_mouth: bocca ondulata + close_mouth: bocca chiusa + dot_mouth: bocca a puntino + no_mouth: senza bocca + gag: imbavagliare + gnaw: rosicchiare + :3: bocca a gatto + :o: bocca aperta + :>: bocca a V + parted_lips: labbra divaricate + bit_gag: mordere un bavaglio + chestnut_mouth: bocca a castagna + cleave_gag: imbavagliare con una pezza + closed_mouth: bocca chiusa + covered_mouth: bocca coperta + extra_mouth: bocca extra + hair_in_mouth: capelli in bocca + hair_tie_in_mouth: fermaglio per capelli in bocca + homu: bocca a becco + lips: labbra + mouth: bocca + mouth_hold: tenere con la bocca + oral: con la bocca + pacifier: ciuccio + Pouted lips: labbra a becco + sideways_mouth: bocca disegnata di profilo + spoon_in_mouth: cucchiaio in bocca + triangle_mouth: bocca a triangolo + saliva: saliva + drooling: sdrogolarsi + mouth_drool: bava agli angoli della bocca + + - name: Denti + color: rgba(255, 123, 2, .4) + tags: + teeth: denti + upper_teeth: denti superiori + fang: zanna + skin_fang: zanna della pelle + round_teeth: denti rotondi + sharp_teeth: denti affilati + clenched_teeth: denti serrati + tongue: lingua + buck_teeth: denti sporgenti + fang_out: zanne sporgenti + fangs: zanne + spiked_club: mazza chiodata + tooth: dente + toothbrush: spazzolino da denti + tusks: zanne (elefante) + shark_mouth: denti di squalo + + - name: Lingua + color: rgba(255, 123, 2, .4) + tags: + :q: lingua sul labbro superiore + :p: lingua sul labbro inferiore + ;p: occhiolino con lingua fuori + french_kiss: french kiss + long_tongue: lingua lunga + oral_invitation: invito orale + tongue: lingua + tongue_out: lingua fuori + uvula: uvula + + - name: Unghie + color: rgba(255, 123, 2, .4) + tags: + fingernails: unghie delle dita + toenails: unghie dei piedi + nail_polish: smalto per unghie + toenail_polish: smalto per unghie dei piedi + black_nails: unghie nere + red_nails: unghie rosse + pink_nails: unghie rosa + long_fingernails: unghie delle dita lunghe + nail: unghia + multicolored_nails: unghie multicolore + nail_art: nail art + brown_vest: gilet marrone + + - name: Spalle + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: spalle scoperte + collarbonea: clavicole + armpits: ascelle + armpit_crease: piega dell'ascella + + - name: Petto + color: rgba(255, 123, 2, .4) + tags: + chest: petto + flat chest: petto piatto + small_breasts: seni piccoli (B) + medium breasts: seni medi (C) + big breasts: seni grandi (D) + huge breasts: seni enormi (E) + gigantic breasts: seni giganteschi (F) + between breasts: tra i seni + breasts apart: seni separati + hanging breasts: seni cadenti + bouncing breasts: seni che rimbalzano + cleavage: scollatura + areola: areola + nipples: capezzoli + pectorals: pettorali + large_pectorals: pettorali grandi + unbuttoned clothes: abiti sbottonati + + - name: Vita + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: vita stretta + slender_waist: vita snella + + - name: Addome + color: rgba(255, 123, 2, .4) + tags: + midriff: addome + belly: pancia + absolute_territory: addominali + inflation: pancia gonfia + navel: ombelico + groin: inguine + pregnant: incinta + + - name: Ali + color: rgba(255, 123, 2, .4) + tags: + wings: ali + bat_wings: ali di pipistrello + butterfly_wings: ali di farfalla + black_wings: ali nere + demon_wings: ali diavolo + asymmetrical_wings: ali asimmetriche + detached_wings: ali separate dal corpo + fairy_wings: ali di fata + fake_wings: ali finte + fiery_wings: ali infuocate + insect_wings: ali di insetto + large_wings: ali grandi + low_wings: ali basse + mini_wings: ali mini + multicolored_wings: ali multicolore + multiple_wings: ali multiple + no_wings: senza ali + winged_helmet: elmo alato + +- name: Abbigliamento + groups: + - name: Abbigliamento formale + color: rgba(230, 84, 128, .4) + tags: + suit: Abito + tuxedo: Frac + formal_dress: Abito da cerimonia + evening_gown: Abito da sera + canonicals: Abito da sera + cocktail_dress: Abito da cocktail + gown: Abito lungo da donna + japanese_clothes: Abbigliamento giapponese + kimono: Kimono + sleeveless_kimono: Kimono senza maniche + short_kimono: Kimono corto + print_kimono: Kimono stampato + furisode: Furisode (parte del kimono) + obi: Obi (cintura per kimono) + sash: Fascia + cheongsam: Qipao + china_dress: Qipao + print_cheongsam: Qipao stampato + pelvic_curtain: Gonna anteriore del qipao + wedding_dress: Abito da sposa + uchikake: Uchikake (abito da sposa giapponese) + school_uniform: Uniforme scolastica + sailor: Uniforme da marinaio + serafuku: Uniforme da marinaio + summer_uniform: Uniforme estiva + kindergarten_uniform: Uniforme dell'asilo + police_uniform: Uniforme della polizia + naval_uniform: Uniforme navale + military_uniform: Uniforme militare + ss_uniform/nazi_uniform: Uniforme SS/Uniforme nazista + maid: Abbigliamento da cameriera + stile_uniform: Uniforme dello stile + miko: Abbigliamento da miko + overalls: Salopette + business_suit: Abbigliamento da ufficio + nurse: Divisa da infermiera + chef_uniform: Divisa da chef + labcoat: Camice bianco + cheerleader: Uniforme da cheerleader + band_uniform: Uniforme della banda + space_suit: Tuta spaziale + leotard: Body + domineering: Abito da suora + + - name: Stile + color: rgba(230, 84, 128, .4) + tags: + china_dress: Abbigliamento cinese + chinese_style: Stile cinese + traditional_clothes: Abbigliamento tradizionale|Abbigliamento etnico + japanese_clothes: Abbigliamento giapponese + hanten_(clothes): Hanten (giapponese) + hanbok: Hanbok (abbigliamento coreano) + korean_clothes: Abbigliamento coreano + western: Stile occidentale + german_clothes: Abbigliamento tedesco + gothic: Stile gotico + lolita: Stile lolita + gothic_lolita: Stile gotico lolita + byzantine_fashion: Stile bizantino + Tropical: Caratteristiche tropicali + indian_style: Stile indiano + Ao_Dai: Ao Dai (uniforme vietnamita) + ainu_clothes: Abbigliamento ainu + arabian_clothes: Abbigliamento arabo + egyptian_clothes: Abbigliamento egiziano + costume: Costume + animal_costume: Costume animale + bunny_costume: Costume da coniglio + adapted_costume: Costume adattato + cat_costume: Costume da gatto + dog_costume: Costume da cane + bear_costume: Costume da orso + embellished_costume: Costume decorato + santa_costume: Costume di Babbo Natale + halloween_costume: Costume di Halloween + kourindou_tengu_costume: Costume di Tengu di Kourindou + alternate_costume: Costume alternativo + costume_switch: Gioco del cambio di costume + meme_attire: Abbigliamento memetico + + - name: Abbigliamento casual + color: rgba(230, 84, 128, .4) + tags: + casual: Casual + loungewear: Abbigliamento da relax + hoodie: Felpa con cappuccio + homewear: Abbigliamento da casa + pajamas: Pigiama + nightgown: Camiciola da notte + sleepwear: Abbigliamento da notte + babydoll: Babydoll + print_pajamas: Pigiama stampato + polka_dot_pajamas: Pigiama a pois + yukata: Yukata (vestaglia giapponese) + chinese_clothes: Abbigliamento cinese tradizionale + hanfu: Hanfu (abbigliamento tradizionale cinese) + Taoist robe: Veste taoista + robe: Veste lunga + robe_of_blending: Veste di fusione + cloak: Mantello + hooded_cloak: Mantello con cappuccio + winter_clothes: Abbigliamento invernale + down jacket: Piumino + santa: Abbigliamento di Babbo Natale + harem_outfit: Abbigliamento da harem + shrug_(clothing): Bolero + + - name: Abbigliamento sportivo + color: rgba(230, 84, 128, .4) + tags: + sportswear: Abbigliamento sportivo + gym_uniform: Uniforme da palestra + athletic_leotard: Body da ginnastica + tennis_uniform: Divisa da tennis + baseball_uniform: Divisa da baseball + letterman_jacket: Giacca da atleta + volleyball_uniform: Divisa da pallavolo + biker_clothes: Abbigliamento da ciclista + bikesuit: Tuta da ciclista + wrestling_outfit: Divisa da wrestler + dougi: Dougi (abbigliamento per arti marziali) + + - name: Costumi da bagno + color: rgba(230, 84, 128, .4) + tags: + swimsuit: Costume da bagno + swimwear: Costumi da bagno + wet_swimsuit: Costume da bagno bagnato + school_swimsuit: Costume da bagno scolastico (sukumizu) + new_school_swimsuit: Nuovo costume da bagno scolastico + old_school_swimsuit: Vecchio costume da bagno scolastico + competition_school_swimsuit: Costume da bagno da competizione scolastico + competition_swimsuit: Costume da bagno da competizione + casual_one-piece_swimsuit: Costume da bagno intero casual + front_zipper_swimsuit: Costume da bagno con cerniera frontale + highleg_swimsuit: Costume da bagno con taglio alto + one-piece_swimsuit: Costume da bagno intero + swimsuit_of_perpetual_summer: Costume da bagno perpetuo (FGO school uniform) + bikini: Bikini + highleg_bikini: Bikini a vita alta + lowleg_bikini: Bikini a vita bassa + slingshot_swimsuit: Costume da bagno slingshot + sailor_bikini: Bikini stile marinaretto + shell_bikini: Bikini a conchiglia + sports_bikini: Bikini sportivo + string_bikini: Bikini con stringhe + strapless_bikini: Bikini senza spalline + side-tie_bikini: Bikini con lacci laterali + front-tie_bikini_top: Top bikini con laccio frontale + multi-strapped_bikini: Bikini con molte fasce + thong_bikini: Bikini a perizoma + front-tie_bikini: Bikini con laccio frontale + frilled_bikini: Bikini con volant + o-ring_bikini: Bikini con anello a O + eyepatch_bikini: Bikini con benda per gli occhi + layered_bikini: Bikini a strati + bow_bikini: Bikini con fiocco + frilled_swimsuit: Costume da bagno con volant + polka_dot_swimsuit: Costume da bagno a pois + striped_swimsuit: Costume da bagno a righe + striped_bikini: Bikini a righe + plaid_bikini: Bikini a quadri + polka_dot_bikini: Bikini a pois + print_bikini: Bikini stampato + american_flag_bikini: Bikini con bandiera americana + german_flag_bikini: Bikini con bandiera tedesca + impossible_swimsuit: Costume da bagno con disegni corporei (FGO school uniform) + bikini_top: Solo il top del bikini + bikini_top_only: Solo il top del bikini + bikini_top_removed: Rimozione del top del bikini + bikini_bottom_only: Solo il fondo del bikini + bikini_bottom: Mutandina del bikini + untied_bikini: Bikini sciolto + bikini_aside: Bikini spostato da un lato + swimsuit_aside: Costume da bagno spostato da un lato + swimsuit_under_clothes: Costume da bagno sotto i vestiti + torn_swimsuit: Costume da bagno strappato + bikini_skirt: Gonna bikini + swim_briefs: Slip da nuoto + swim_cap: Cuffia da nuoto + swim_trunks: Pantaloncini da nuoto + male_swimwear: Costumi da bagno maschili + + - name: Uniformi + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: Uniforme adattata + anzio_military_uniform: Uniforme militare di Anzio + anzio_school_uniform: Uniforme scolastica di Anzio + aria_company_uniform: Uniforme della Aria Company + ashford_academy_uniform: Uniforme dell'Accademia Ashford + bc_freedom_military_uniform: Uniforme militare del BC Freedom + chaldea_uniform: Uniforme di Chaldea + chi-hatan_military_uniform: Uniforme militare di Chi-Ha-Tan + fleur_de_lapin_uniform: Uniforme di Fleur de Lapin + garreg_mach_monastery_uniform: Uniforme del Monastero di Garreg Mach + gem_uniform_(houseki_no_kuni): Uniforme di Houseki no Kuni + hanasakigawa_school_uniform: Uniforme scolastica di Hanasakigawa + hikarizaka_private_high_school_uniform: Uniforme della Scuola Superiore Privata Hikarizaka + homurahara_academy_uniform: Uniforme dell'Accademia Homurahara + kamiyama_high_school_uniform: Uniforme della Scuola Superiore Kamiyama + keizoku_military_uniform: Uniforme militare di Keizoku High School + kita_high_school_uniform: Uniforme della Scuola Superiore Kita + kiyosumi_school_uniform: Uniforme della Scuola Superiore Kiyosumi + luna_nova_school_uniform: Uniforme della Scuola di Magia di Luna Nova + meiji_schoolgirl_uniform: Uniforme da studentessa del periodo Meiji + mitakihara_school_uniform: Uniforme della Scuola Superiore Mitakihara + nami_junior_high_school_uniform: Uniforme della Scuola Media Nami + nanairogaoka_middle_school_uniform: Uniforme della Scuola Media Nanairogaoka + nanamori_school_uniform: Uniforme della Scuola Media Nanamori + naoetsu_high_school_uniform: Uniforme della Scuola Superiore Naoetsu + national_shin_ooshima_school_uniform: Uniforme della Scuola Nazionale Shin Ooshima + ooarai_military_uniform: Uniforme militare di Ooarai + ooarai_school_uniform: Uniforme scolastica di Ooarai + otonokizaka_school_uniform: Uniforme della Scuola Otonokizaka + paradis_military_uniform: Uniforme militare di Paradis + polar_chaldea_uniform: Uniforme di Chaldea polare + pravda_military_uniform: Uniforme militare di Pravda + pravda_school_uniform: Uniforme scolastica di Pravda + rabbit_house_uniform: Uniforme di Rabbit House + raimon_soccer_uniform: Uniforme della squadra di calcio di Raimon + ryouou_school_uniform: Uniforme della Scuola Ryouou + sailor_senshi_uniform: Uniforme delle Sailor Senshi + sakugawa_school_uniform: Uniforme della Scuola Sakugawa + sakuragaoka_high_school_uniform: Uniforme della Scuola Superiore Sakuragaoka + saunders_military_uniform: Uniforme militare di Saunders + saunders_school_uniform: Uniforme scolastica di Saunders + seishou_elementary_school_uniform: Uniforme scolastica della Scuola Elementare Seishou + shinda_sekai_sensen_uniform: Uniforme della Shinda Sekai Sensen + shuuchiin_academy_uniform: Uniforme dell'Accademia Shuuchiin + shuujin_academy_uniform: Uniforme dell'Accademia Shuujin + st._gloriana's_military_uniform: Uniforme militare di St. Gloriana + st._gloriana's_school_uniform: Uniforme scolastica di St. Gloriana + starlight_academy_uniform: Uniforme dell'Accademia Starlight + tokisadame_school_uniform: Uniforme della Scuola Tokisadame + tokiwadai_school_uniform: Uniforme della Scuola Tokiwadai + tomoeda_elementary_school_uniform: Uniforme della Scuola Elementare Tomoeda + tsab_ground_military_uniform: Uniforme militare di TSAB Ground Forces + u.a._school_uniform: Uniforme scolastica di U.A. + uranohoshi_school_uniform: Uniforme scolastica di Uranohoshi + yasogami_school_uniform: Uniforme della Scuola Yasogami + mismatched_bikini: Bikini non abbinato + multicolored_bikini: Bikini multicolore + + - name: Camicie + color: rgba(230, 84, 128, .4) + tags: + blouse: Blusa + white_shirt: Camicia bianca + collared_shirt: Camicia con colletto + dress_shirt: Camicia da abito + sailor_shirt: Camicia da marinaio + cropped_shirt: Camicia corta + t-shirt: Maglietta + casual T-shirts: Magliette casual + short sleeve T-shirts: Magliette a maniche corte + off-shoulder_shirt: Camicia spalle scoperte + shrug_(clothing): Bolero + cardigan: Cardigan + criss-cross_halter: Maglietta a incrocio dietro al collo + frilled_shirt: Camicia con volant + sweatshirt: Felpa + hawaiian_shirt: Camicia hawaiana + hoodie: Felpa con cappuccio + Impossible shirt: Camicia impossibile + kappougi: Kappougi (grembiule da cucina) + plaid_shirt: Camicia a quadri + polo_shirt: Polo + print_shirt: Camicia stampata + shirt: Camicia + sleeveless_hoodie: Felpa senza maniche + sleeveless_shirt: Camicia senza maniche + striped_shirt: Camicia a righe + tank_top: Canottiera + vest: Gilet + waistcoat: Gilet + camisole: Canottiera con spalline sottili + tied_shirt: Camicia legata + undershirt: Canottiera + crop_top: Crop top + highleg: Indumento con taglio alto + clothing_cutout: Taglio nell'abbigliamento + back_cutout: Camicia con schiena scoperta + cleavage_cutout: Taglio sul décolleté + navel_cutout: Taglio sull'ombelico + midriff: Indumento che lascia scoperto l'addome + heart_cutout: Taglio a forma di cuore + torn_clothes: Abbigliamento strappato + torn_shirt: Camicia strappata + undressing: Svestizione + clothes_down: Abbassamento dell'abbigliamento + shirt_lift: Sollevamento della camicia + shirt_pull: Tirare giù la camicia + shirt_tucked_in: Camicia infilata dentro i pantaloni + clothes_tug: Tirare l'abbigliamento + shirt_tug: Tirare la camicia + untucked_shirt: Camicia sfilata + lifted_by_self: Sollevamento dell'abbigliamento da parte di sé + untied: Slegare l'abbigliamento + open_clothes: Abbigliamento aperto + unbuttoned shirt: Camicia sbottonata + button_gap: Spazio tra i bottoni + partially_unbuttoned: Camicia parzialmente sbottonata + partially_unzipped: Camicia parzialmente szipata + clothes_removed: Rimozione dell'abbigliamento + shirt_removed: Rimozione della camicia + wardrobe_error: Abbigliamento scivolato + undersized_clothes: Abbigliamento troppo piccolo + tight: Abbigliamento aderente + wedgie: Incuneamento (causato dall'abbigliamento nella zona inguinale) + wardrobe_malfunction: Malfunzionamento dell'abbigliamento + taut_shirt: Camicia tesa + taut_clothes: Abbigliamento teso + underbust: Abbigliamento che stringe sotto il seno + oversized_clothes: Abbigliamento troppo grande + oversized_shirt: Camicia troppo grande + borrowed_garments: Abbigliamento del fidanzato + strap_slip: Scivolamento delle fasce dell'abbigliamento (causando una sfilacciatura) + wet_shirt: Camicia bagnata + clothes_theft: Furto di abbigliamento + + - name: Cappotto + color: rgba(230, 84, 128, .4) + tags: + blazer: Blazer + overcoat: Cappotto + double-breasted: Doppiopetto + long_coat: Cappotto lungo + haori: Haori + winter_coat: Cappotto invernale + hooded_coat: Cappotto con cappuccio + fur_coat: Cappotto di pelliccia + fur-trimmed_coat: Cappotto con bordo di pelliccia + duffel_coat: Cappotto di lana pesante + fishnet_top: Top a rete + parka: Parka + jacket: Giacca + jacket_partially_removed: Giacca parzialmente rimossa + jacket_removed: Giacca rimossa + open_jacket: Giacca aperta + cropped_jacket: Giacca corta + track_jacket: Giacca sportiva + hooded_track_jacket: Giacca sportiva con cappuccio + military_jacket: Giacca militare + camouflage_jacket: Giacca mimetica + leather_jacket: Giacca di pelle + letterman_jacket: Giacca da studente + bomber_jacket: Giacca da pilota + denim_jacket: Giacca di jeans + loating_jacket: Giacca casual + fur-trimmed_jacket: Giacca con bordo di pelliccia + two-tone_jacket: Giacca bicolore + trench_coat: Trench + furisode: Furisode + windbreaker: Giacca a vento + raincoat: Impermeabile + hagoromo: Hagoromo + tunic: Tunica + cape: Mantella + capelet: Mantellina + winter_clothes: Abbigliamento invernale + sweater: Maglione + pullover_sweaters: Maglioni a collo alto + ribbed_sweater: Maglione a coste + sweater_vest: Gilet di lana + backless_sweater: Maglione senza schienale + aran_sweater: Maglione Aran + beige_sweater: Maglione beige + brown_sweater: Maglione marrone + hooded_sweater: Maglione con cappuccio + off-shoulder_sweater: Maglione a spalle scoperte + striped_sweater: Maglione a righe + virgin_killer_sweater: Maglione "Virgin Killer" + down_jacket: Piumino + puffer_jacket: Piumino + + - name: Altro + color: rgba(230, 84, 128, .4) + tags: + transparent: Trasparente + burnt_clothes: Abbigliamento bruciato + dissolving_clothes: Abbigliamento che si dissolve + dirty_clothes: Abbigliamento sporco + expressive_clothes: Abbigliamento espressivo + impossible_clothes: Abbigliamento con livello di avvolgimento irrealistico + living_clothes: Abbigliamento vivente + leotard_under_clothes: Body sotto l'abbigliamento + multicolored_clothes: Abbigliamento multicolore + ofuda_on_clothes: Ofuda attaccato all'abbigliamento + wringing_clothes: Strofinare l'abbigliamento + clothesline: Stendere l'abbigliamento + shiny_clothes: Abbigliamento lucido + kariginu: Kariginu + front-tie_top: Top legato davanti + jacket_on_shoulders: Giacca sulle spalle + short_jumpsuit: Tuta corta + harness: Imbracatura + rigging: Attrezzatura + aiguillette: Aiguillette + + - name: Vita + color: rgba(230, 84, 128, .4) + tags: + apron: Grembiule + waist_apron: Grembiule in vita + maid_apron: Grembiule da cameriera + bow tied at the waist: Fiocco legato in vita + waist_cape: Mantellina in vita + clothes_around_waist: Abbigliamento intorno alla vita + jacket_around_waist: Giacca intorno alla vita + sweater_around_waist: Maglione intorno alla vita + loincloth: Perizoma + bustier: Bustier + corset: Corsetto + girdle: Corsetto + + - name: Armatura + color: rgba(230, 84, 128, .4) + tags: + armor: Armatura + bikini_armor: Armatura bikini + full_armor: Armatura completa + plate_armor: Armatura a piastre + japanese_armor: Armatura giapponese + kusazuri: Kusazuri + power_armor: Armatura potenziata + mecha: Mecha + helmet: Elmo + kabuto: Kabuto + off-shoulder_armor: Armatura senza spalline + shoulder_armor: Spalliera + muneate: Muneate + breastplate: Pettorale + faulds: Panciotto + greaves: Gambaletto + shin_guards: Parastinchi + armored_boots: Stivali corazzati + + - name: Gonna + color: rgba(230, 84, 128, .4) + tags: + dress: Abito + microdress: Microabito + long_dress: Abito lungo + off-shoulder_dress: Abito a spalle scoperte + strapless_dress: Abito senza spalline + backless_dress: Abito senza schienale + halter_dress: Abito con spalline intorno al collo + sundress: Vestito estivo + sleeveless_dress: Abito senza maniche + sailor_dress: Abito da marinaio + summer_dress: Vestito estivo + china_dress: Abbigliamento cinese + pinafore_dress: Grembiule vestito + sweater_dress: Vestito maglione + wedding_dress: Vestito da sposa + armored_dress: Vestito corazzato + frilled_dress: Abito con volant + lace-trimmed_dress: Abito con bordo in pizzo + collared_dress: Abito con colletto + fur-trimmed_dress: Abito con bordo di pelliccia + layered_dress: Abito a strati + pleated_dress: Abito plissettato + taut_dress: Abito aderente + pencil_dress: Vestito a tubino + impossible_dress: Abbigliamento eccessivamente aderente + multicolored_dress: Abito multicolore + striped_dress: Abito a righe + checkered_skirt: Gonna a quadri + plaid_dress: Abito a quadri + ribbed_dress: Abito a coste + polka_dot_dress: Abito a pois + print_dress: Abito stampato + vertical-striped_dress: Abito a righe verticali + see-through_dress: Abito trasparente + skirt: Gonna + microskirt: Minigonna + miniskirt: Minigonna + skirt_suit: Gonna per completi + bikini_skirt: Gonna bikini + pleated_skirt: Gonna plissettata + pencil_skirt: Gonna a tubino + bubble_skirt: Gonna a bolla + tutu: Gonna da ballerina + ballgown: Gonna da ballo + pettiskirt: Gonna sottogonna + showgirl_skirt: Gonna da showgirl + Medium length skirt: Gonna di lunghezza media + beltskirt: Gonna con cintura + denim_skirt: Gonna di jeans + suspender_skirt: Gonna con bretelle + skirt_set: Gonna abbinata a una camicia + long_skirt: Gonna lunga + summer_long_skirt: Gonna lunga estiva + overskirt: Sovrapposizione di gonna + hakama_skirt: Gonna hakama + high-waist_skirt: Gonna a vita alta + kimono_skirt: Gonna kimono + suspender_long_skirt: Gonna con bretelle lunga + chiffon_skirt: Gonna di chiffon + frilled_skirt: Gonna con volant + fur-trimmed_skirt: Gonna con bordo di pelliccia + lace_skirt: Gonna di pizzo + lace-trimmed_skirt: Gonna con bordo in pizzo + ribbon-trimmed_skirt: Gonna con bordo di nastro + layered_skirt: Gonna con strati + print_skirt: Gonna stampata + multicolored_skirt: Gonna multicolore + striped_skirt: Gonna a righe + vertical-striped_skirt: Gonna a righe verticali + plaid_skirt: Gonna a quadri + flared_skirt: Gonna svasata + floral_skirt: Gonna floreale + + - name: Interazione con la gonna + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: Tenere la gonna con eleganza + skirt_tug: Tirare la gonna + dress_tug: Premere la gonna + skirt_lift: Sollevare la gonna + skirt_around_one_leg: Gonna su una gamba + skirt_removed: Gonna rimossa + dress_removed: Vestito rimosso + open_skirt: Gonna aperta + + - name: Pantaloni + color: rgba(230, 84, 128, .4) + tags: + dress_bow: Fiocco sull'abito + dressing_another: Vestirsi + shorts_under_skirt: Pantaloncini sotto la gonna + side_slit: Spacco laterale + shorts: Pantaloncini + micro_shorts: Micro pantaloncini + short_shorts: Pantaloncini corti + hot_pants: Hot pants + cutoffs: Pantaloncini tagliati + striped_shorts: Pantaloncini a righe + suspender_shorts: Pantaloncini con bretelle + denim_shorts: Pantaloncini di jeans + puffy_shorts: Pantaloncini svasati + dolphin_shorts: Pantaloncini da nuoto + dolfin_shorts: Pantaloncini da nuoto + tight_pants: Pantaloni aderenti + crotchless_pants: Pantaloni senza cavallo + track_pants: Pantaloni da allenamento + yoga_pants: Pantaloni da yoga + bike_shorts: Pantaloncini da ciclismo + gym_shorts: Pantaloncini da palestra + pants: Pantaloni + puffy_pants: Pantaloni svasati + pumpkin_pants: Pantaloni a zucca + hakama_pants: Pantaloni hakama + harem_pants: Pantaloni harem + bloomers: Pantaloni a palloncino + buruma: Pantaloni da ginnastica + jeans: Jeans + cargo_pants: Pantaloni cargo + camouflage_pants: Pantaloni mimetici + capri_pants: Pantaloni Capri + chaps: Chaps + jumpsuit: Tuta + lowleg_pants: Pantaloni a vita bassa + plaid_pants: Pantaloni a quadri + single_pantsleg: Pantaloni con una gamba sola + striped_pants: Pantaloni a righe + + - name: Interazione con i pantaloni + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: Pantaloni asimmetrici + leotard_aside: Tirare il body da un lato + open_fly: Mosca aperta + pants_down: Pantaloni abbassati + pants_rolled_up: Pantaloni arrotolati + pants_tucked_in: Pantaloni infilati + torn_jeans: Jeans strappati + torn_pants: Pantaloni strappati + torn_shorts: Pantaloncini strappati + + - name: Calze + color: rgba(230, 84, 128, .4) + tags: + bodystocking: Calzamaglia + pantyhose: Collant + leggings: Leggings + legwear: Calzamaglia + thighhighs: Calze sopra il ginocchio + kneehighs: Calze al ginocchio + socks: Calzini + bare_legs: Gambe nude + black_bodystocking: Calzamaglia nera + white_bodystocking: Calzamaglia bianca + stocking_under_clothes: Calze sotto l'abbigliamento + black_pantyhose: Collant neri + white_pantyhose: Collant bianchi + thighband_pantyhose: Collant con fascia sopra il ginocchio + pantylines: Collant aderenti con evidenziati i bordi + single_leg_pantyhose: Collant con una gamba sola + panties_under_pantyhose: Mutandine sotto i collant + fishnets: Calze a rete + stirrup_legwear: Calzamaglia con passante per il piede + toeless_legwear: Calzamaglia senza punta + mismatched_legwear: Calzamaglia a due colori + two-tone_legwear: Calzamaglia a due colori + asymmetrical_legwear: Calzamaglia asimmetrica + uneven_legwear: Calzamaglia irregolare + white_thighhighs: Calze sopra il ginocchio bianche + black_thighhighs: Calze sopra il ginocchio nere + pink_thighhighs: Calze sopra il ginocchio rosa + suspenders: Reggicalze + garter_straps: Bretelle per reggicalze + torn_legwear: Calzamaglia strappata + torn_thighhighs: Calze sopra il ginocchio strappate + see-through_legwear_: Calzamaglia trasparente + frilled_legwear: Calzamaglia con volant + lace-trimmed_legwear: Calzamaglia con bordo in pizzo + seamed_legwear: Calzamaglia con cucitura + back-seamed_legwear: Calzamaglia con cucitura posteriore + animal_ear_legwear: Calzamaglia con orecchie di animale + striped_legwear: Calzamaglia a righe + vertical-striped_legwear: Calzamaglia a righe verticali + polka_dot_legwear: Calzamaglia a pois + print_legwear: Calzamaglia stampata + legwear_under_shorts: Calzamaglia sotto i pantaloncini + over-kneehighs: Calze sopra il ginocchio + bobby_socks: Calzini corti bianchi + tabi: Calzini giapponesi con separazione per il pollice + loose_socks: Calzini sciolti + ankle_socks: Calzini alla caviglia + leg_warmers: Copri gambali + single_sock: Calzino singolo + striped_socks: Calzini a righe + + - name: Interazione con le calze + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: Calze con taglio + thighhighs_under_boots: Calze sopra il ginocchio sotto gli stivali + adjusting_legwear: Regolare le calze + pantyhose_pull: Togliere i collant + socks_removed: Calzini rimossi + sock_pull: Tirare i calzini + thighhighs_pull: Tirare le calze sopra il ginocchio + + - name: Altro + color: rgba(230, 84, 128, .4) + tags: + garters: Reggicalze + leg_garter: Fascia per la gamba + garter_straps: Bretelle per reggicalze + thigh_strap: Fascia per coscia + thigh_ribbon: Nastro per coscia + leg_ribbon: Nastro per gamba + bandaid_on_leg: Cerotto sulla gamba + bandaged_leg: Gamba fasciata + ankle_lace-up: Allacciatura alla caviglia + thigh_holster: Fondina per coscia + bandaid_on_knee: Cerotto sul ginocchio + argyle_legwear: Calzamaglia con motivo argyle + bow_legwear: Calzamaglia con fiocco + arm_garter: Fascia per braccio + + - name: Materiale + color: rgba(230, 84, 128, .4) + tags: + armored: Corazzato + canvas: In tela + denim: Denim + fluffy: Soffice + fur: Pelliccia + latex: Lattice + leather: Pelle + see-through: Trasparente + spandex: Spandex + tight: Aderente + + - name: Decorazioni + color: rgba(230, 84, 128, .4) + tags: + frilled: Arricciato + center_frills: Arricciatura centrale + crease: Pieghe + layered: Stratificato + lace: Pizzo + fur_trim: Rifinitura in pelliccia + fur-trimmed: Rifinito in pelliccia + fine_fabric_emphasis: Enfasi sulla trama del tessuto + latex_thighhighs: Cosce in lattice + see-through_thighhighs: Cosce trasparenti + ass_cutout: Taglio sul sedere + asymmetrical_clothes: Abbigliamento asimmetrico + back_bow: Fiocco sul retro + costume_switch: Cambio di costume + cross-laced_clothes: Abbigliamento intrecciato incrociato + double_vertical_stripe: Doppia riga verticale + halter_top: Top a spalline + multicolored_legwear: Calzature multicolori + navy_blue_legwear: Calzature blu navy + nontraditional_miko: Miko non tradizionale + side_cutout: Taglio laterale + side_slit: Spacco laterale + sideless_outfit: Abito senza lati + single_kneehigh: Calzature sopra il ginocchio singole + single_vertical_stripe: Singola riga verticale + turtleneck: Collo alto + two-sided_fabric: Tessuto a due facce + o-ring: Abbigliamento con anello a O + o-ring_top: Top con anello a O + fringe_trim: Rifinitura a frange + loose_belt: Cintura allentata + pom_pom_(clothes): Pon pon (accessorio per abbigliamento) + drawstring: Coulisse + full-length_zipper: Zip a lunghezza intera + gathers: Pieghe + gusset: Fodera cucita + breast_pocket: Tasca sul petto + + - name: Motivi + color: rgba(230, 84, 128, .4) + tags: + argyle: Motivo a losanghe + checkered: Motivo a quadri + colored_stripes: Strisce colorate + diagonal_stripes: Strisce diagonali + horizontal_stripes: Strisce orizzontali + multicolored_stripes: Strisce multicolori + polka_dot_: Motivo a pois + ribbed: A coste + striped: A righe + unmoving_pattern: Motivo fisso + vertical_stripes: Strisce verticali + plaid: Tartan + animal_print: Stampa animale + cat_print: Stampa di gatto + bear_print: Stampa di orso + bird_print: Stampa di uccello + bunny_print: Stampa di coniglio + cow_print: Stampa di mucca + dragon_print: Stampa di drago + fish_print: Stampa di pesce + frog_print: Stampa di rana + shark_print: Stampa di squalo + snake_print: Stampa di serpente + zebra_print: Stampa di zebra + tiger_print: Stampa di tigre + leopard_print: Stampa di leopardo + jaguar_print: Stampa di giaguaro + bat_print: Stampa di pipistrello + aardwolf_print: Stampa di licaone + african_wild_dog_print: Stampa di cane selvatico africano + cheetah_print: Stampa di ghepardo + dog_print: Stampa di cane + fox_print: Stampa di volpe + giraffe_print: Stampa di giraffa + panda_print: Stampa di panda + sand_cat_print: Stampa di gatto del deserto + whale_print: Stampa di balena + white_tiger_print: Stampa di tigre bianca + goldfish_print: Stampa di pesce rosso + wing_print: Stampa di ali + spider_web_print: Stampa di ragnatela + butterfly_print: Stampa di farfalla + floral_print: Stampa floreale + leaf_print: Stampa di foglie + clover_print: Stampa di trifoglio + maple_leaf_print: Stampa di foglia d'acero + rose_print: Stampa di rosa + strawberry_print: Stampa di fragola + cherry_print: Stampa di ciliegia + bamboo_print: Stampa di bambù + carrot_print: Stampa di carota + hibiscus_print: Stampa di ibisco + jack-o'-lantern_print: Stampa di zucca intagliata + petal_print: Stampa di petali + sunflower_print: Stampa di girasole + watermelon_print: Stampa di anguria + sky_print: Stampa di cielo + cloud_print: Stampa di nuvola + lightning_bolt_print: Stampa di fulmine + rainbow_print: Stampa di arcobaleno + snowflake_print: Stampa di fiocco di neve + starry_sky_print: Stampa di cielo stellato + crescent_print: Stampa di mezzaluna + star_print: Stampa di stella + star_(symbol): Simbolo di stella + moon_print: Stampa di luna + sun_print: Stampa di sole + character_print: Stampa di carattere + clothes_writing_: Scritte sui vestiti + anchor_print: Stampa di ancora + cherry_blossom_print: Stampa di fiore di ciliegio + musical_note_print: Stampa di nota musicale + triangle_print: Stampa di triangolo + arrow_print: Stampa di freccia + wave_print: Stampa di onda + peace_symbol: Simbolo di pace (presente sui vestiti di Jotaro Kujo) + heart_print: Stampa di cuore + flame_print: Stampa di fiamma + hitodama_print: Stampa di hitodama + paw_print: Stampa di zampa + skeleton_print: Stampa di scheletro + skull_print: Stampa di teschio + sparkle_print: Stampa di scintilla + yin_yang_print: Stampa di yin e yang + cross_print: Motivo a croce + camoflage: Camuffamento + flag_print: Stampa di bandiera + bone_print: Stampa di osso + ghost_print: Stampa di fantasma + mushroom_print: Stampa di fungo + onigiri_print: Stampa di onigiri + cat_ear: Orecchie da gatto + cat_ear_cutout: Ritaglio a forma di orecchie da gatto + + - name: Scarpe + color: rgba(230, 84, 128, .4) + tags: + barefoot: A piedi nudi + no_shoes: Senza scarpe + shoes_removed: Scarpe rimosse + single_shoe: Scarpa singola + the_only_shoe: L'unica scarpa + black_loafers: Mocassini neri + shoes: Scarpe + uwabaki: Scarpe da interni + platform_footwear: Calzature con suola spessa + high_heels: Tacchi alti + stiletto_heels: Tacchi a spillo + strappy_heels: Tacchi con cinturini + platform_heels_: Tacchi con suola spessa + rudder_footwear: Calzature da nave C + sandals: Sandali + barefoot_sandals: Sandali per piedi nudi + clog_sandals: Zoccoli sandali + geta: Geta (zoccoli giapponesi) + slippers: Pantofole + skates: Pattini + roller_skates: Pattini a rotelle + animal_feet: Zampe di animale + animal_slippers: Pantofole a forma di animale + anklet: Cavigliera + shackles: Catene + brown_footwear: Calzature marroni + cross-laced_footwear: Calzature con lacci incrociati + loafers: Mocassini + mary_janes: Scarpe Mary Jane + mismatched_footwear: Scarpe di colore diverso + pointy_footwear: Calzature appuntite + pumps: Pompe + sandals_removed: Sandali rimossi + shoe_soles: Suole delle scarpe + shoelaces: Lacci delle scarpe + sneakers: Scarpe da ginnastica + winged_footwear: Calzature con ali + zouri: Zouri (sandali giapponesi) + + - name: Stivali + color: rgba(230, 84, 128, .4) + tags: + boots: Stivali + boots_removed: Stivali rimossi + thigh_boots: Stivali sopra il ginocchio + knee_boots: Stivali al ginocchio + cross-laced_footwear: Calzature con lacci incrociati + ankle_boots: Stivaletti + high_heel_boots: Stivali con tacchi alti + toeless_boots: Stivali senza punta + lace-up_boots: Stivali con lacci + fur-trimmed_boots: Stivali con rifiniture in pelliccia + snow_boots: Stivali da neve + anklet: Cavigliera + rubber_boots: Stivali di gomma + santa_boots: Stivali di Babbo Natale + leather_boots: Stivali di pelle + thighhighs_under_boots: Cosce alte sotto gli stivali + combat_boots: Stivali da combattimento + doc_martens: Stivali Dr. Martens + rain_boots: Stivali da pioggia + belt_boots: Stivali con cintura + fur_boots: Stivali in pelliccia + single_boot: Stivale singolo + + - name: Suole delle scarpe + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: Suole delle scarpe + arched_soles: Suole arcuate + paw_print_soles: Suole con impronte di zampe + horseshoe: Ferro di cavallo + + - name: Colletto + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: Colletto da marinaio + fur_collar: Colletto in pelliccia + frilled_collar: Colletto arricciato + popped_collar: Colletto alzato + choker: Choker + black_choker: Choker nero + belt_collar: Colletto con cintura + frilled_choker: Choker arricciato + neckerchief: Fazzoletto al collo + red_neckerchief: Fazzoletto al collo rosso + necktie: Cravatta + short_necktie: Cravatta corta + white_necktie: Cravatta bianca + bowtie: Farfallino + headphones_around_neck: Cuffie intorno al collo + goggles_around_neck: Occhiali intorno al collo + neck_bell: Campanella al collo + neck_ruff: Colletto a sbuffo + v-neck: Scollo a V + towel_around_neck: Asciugamano intorno al collo + loose_necktie: Cravatta allentata + neck_tattoo: Tatuaggio sul collo + ascot: Ascot + ribbon_choker: Choker di nastro + maebari/pasties: Maebari/pasties (accessorio per seno nudo) + latex: Lattice + torn_clothes: Abbigliamento strappato + iron_cross: Croce di ferro + chinese_knot: Nodo cinese + cross_necklace: Collana con croce + bead_necklace: Collana di perle + pearl_necklace: Collana di perle + heart_necklace: Collana a forma di cuore + carrot_necklace: Collana di carote + chain_necklace: Collana di catena + magatama_necklace: Collana di magatama + tooth_necklace: Collana di dente + key_necklace: Collana di chiave + anchor_necklace: Collana di ancora + skull_necklace: Collana di teschio + shell_necklace: Collana di conchiglia + gold_necklace: Collana d'oro + crescent_necklace: Collana a mezzaluna + ring_necklace: Collana di anelli + feather_necklace: Collana di piume + bone_necklace: Collana di ossa + ankh_necklace: Collana di ankh + multiple_necklaces: Collane multiple + bullet_necklace: Collana di proiettili + holding_necklace: Collana tenuta in mano + necklace_removed: Collana rimossa + brown_neckwear: Accessorio per il collo marrone + checkered_neckwear: Accessorio per il collo a quadri + diagonal-striped_neckwear: Accessorio per il collo a strisce diagonali + halterneck: Halterneck + mole_on_neck: Talpa sul collo + neck: Collo + neck_ribbon: Nastro al collo + neck_ring: Anello al collo + necklace: Collana + plaid_neckwear: Accessorio per il collo a tartan + plunging_neckline: Scollo profondo + print_neckwear: Accessorio per il collo stampato + sleeveless_turtleneck: Maglione a collo alto senza maniche + star_necklace: Collana a forma di stella + striped_neckwear: Accessorio per il collo a righe + turtleneck_sweater: Maglione a collo alto + undone_necktie: Cravatta slegata + whistle_around_neck: Fischietto intorno al collo + + - name: Sciarpa + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: Sciarpa a quadri + striped_scarf: Sciarpa a righe + print_scarf: Sciarpa stampata + vertical-striped_scarf: Sciarpa a strisce verticali + polka_dot_scarf: Sciarpa a pois + argyle_scarf: Sciarpa a losanghe + beige_scarf: Sciarpa beige + scarf_bow: Fiocco della sciarpa + fur_scarf: Sciarpa in pelliccia + naked_scarf: Sciarpa nuda + multicolored_scarf: Sciarpa multicolore + floating_scarf: Sciarpa fluttuante + long_scarf: Sciarpa lunga + arm_scarf: Sciarpa per il braccio + scarf_on_head: Sciarpa sulla testa + scarf_over_mouth: Sciarpa sulla bocca + scarf_removed: Sciarpa rimossa + adjusting_scarf: Regolazione della sciarpa + holding_scarf: Sciarpa tenuta in mano + scarf_pull: Tirare la sciarpa + brown_scarf: Sciarpa marrone + scarf: Sciarpa + + - name: Occhiali + color: rgba(230, 84, 128, .4) + tags: + glasses: Occhiali + eyewear: Occhiali + monocle: Monocolo + under-rim_eyewear: Occhiali con montatura inferiore + rimless_eyewear: Occhiali senza montatura + semi-rimless_eyewear: Occhiali semi-senza montatura + red-framed_eyewear: Occhiali con montatura rossa + round_eyewear: Occhiali rotondi + black-framed_eyewear: Occhiali con montatura nera + tinted_eyewear: Occhiali colorati + medical_eyepatch: Benda per gli occhi medica + bandage_over_one_eye: Fasciare un occhio con una benda + crooked_eyewear: Occhiali storti + eyewear_removed: Rimuovere gli occhiali + sunglasses: Occhiali da sole + goggles: Occhiali protettivi + Blindfold: Bendaggio per gli occhi + eyepatch: Benda per l'occhio (monocolo) + visor: Visiera + bespectacled: Con gli occhiali + blue-framed_eyewear: Occhiali con montatura blu + brown-framed_eyewear: Occhiali con montatura marrone + coke-bottle_glasses: Occhiali con lenti spesse come bottiglie di Coca-Cola + no_eyewear: Senza occhiali + opaque_glasses: Occhiali opachi + over-rim_eyewear: Occhiali senza montatura nella parte inferiore + + - name: Maschera + color: rgba(230, 84, 128, .4) + tags: + mask: Maschera + half_mask: Mezza maschera + masked: Mascherato + mask_lift: Sollevare la maschera + mask_on_head: Maschera sulla testa + mask_removed: Maschera rimossa + mouth_mask: Maschera per la bocca + surgical_mask: Maschera chirurgica + plague_doctor_mask: Maschera del medico della peste + gas_mask: Maschera antigas + visor: Visiera + helmet: Casco + fox_mask: Maschera da volpe + diving_mask: Maschera da sub + diving_mask_on_head: Maschera da sub sulla testa + oni_mask: Maschera di Oni + tengu_mask: Maschera di Tengu + ninja_mask: Maschera da ninja + skull_mask: Maschera a teschio + hockey_mask: Maschera da hockey + bird_mask: Maschera da uccello + stone_mask: Maschera di pietra + horse_mask: Maschera da cavallo + masquerade_mask: Maschera da mascherata + domino_mask: Maschera da domino + + - name: Braccio + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: Maniche lunghe + short_sleeves: Maniche corte + wide_sleeves: Maniche larghe + furisode: Furisode + detached_sleeves: Maniche staccate + single_sleeve: Manica singola + sleeveless: Senza maniche + asymmetrical_sleeves: Maniche asimmetriche + puffy_sleeves: Maniche svasate + puffy_long_sleeves: Maniche lunghe svasate + puffy_short_sleeves: Maniche corte svasate + frilled_sleeves: Maniche con volant + juliet_sleeves: Maniche alla Giulietta + bandaged_arm: Braccio fasciato + raglan_sleeves: Maniche raglan + vambraces: Avambracci + layered_sleeves: Maniche sovrapposte + fur-trimmed_sleeves: Maniche con bordo di pelliccia + see-through_sleeves: Maniche trasparenti + torn_sleeves: Maniche strappate + sleeves_past_fingers: Maniche che arrivano oltre le dita + sleeves_past_wrists: Maniche che arrivano oltre i polsi + sleeves_past_elbows: Maniche che arrivano oltre i gomiti + sleeves_pushed_up: Maniche arrotolate + arm_out_of_sleeve: Braccio fuori dalla manica + uneven_sleeves: Maniche irregolari + mismatched_sleeves: Maniche diverse + sleeve_rolled_up: Manica arrotolata + sleeves_rolled_up: Maniche arrotolate + feather-trimmed_sleeves: Maniche con bordo di piume + hands_in_opposite_sleeves: Mani infilate in maniche opposte + lace-trimmed_sleeves: Maniche con bordo di pizzo + pinching_sleeves: Pizzicare le maniche + puffy_detached_sleeves: Maniche svasate staccate + ribbed_sleeves: Maniche a coste + single_detached_sleeve: Manica staccata singola + sleeves_folded_up: Maniche ripiegate + striped_sleeves: Maniche a righe + wrist_cuffs: Polsini separati dalle maniche + armband: Fascia per il braccio + armlet: Braccialetto per il braccio + + - name: Mano + color: rgba(230, 84, 128, .4) + tags: + bandage: Fasciatura + leash: Guinzaglio + arm_tattoo: Tatuaggio sul braccio + number_tattoo: Tatuaggio numerico + bead_bracelet: Braccialetto di perle + bracelet: Braccialetto + flower_bracelet: Braccialetto di fiori + spiked_bracelet: Braccialetto con borchie + wrist_cuffs: Polsini + wristband: Fascia per il polso + bracer: Bracciale + cuffs: Polsini + bound_wrists: Polsi legati + wrist_scrunchie: Fasce per il polso + handcuffs: Manette + shackles: Manette + chains: Catene + chain_leash: Catena con guinzaglio + + - name: Guanto + color: rgba(230, 84, 128, .4) + tags: + gloves: Guanti + gloves_removed: Guanti rimossi + no_gloves: Senza guanti + single_glove: Guanto singolo + single_elbow_glove: Guanto singolo fino al gomito + long_gloves: Guanti lunghi + elbow_gloves: Guanti fino al gomito + bridal_gauntlets: Guanti nuziali + half_gloves: Guanti corti + fingerless_gloves: Guanti senza dita + partially_fingerless_gloves: Guanti parzialmente senza dita + paw_gloves: Guanti a forma di zampa + mittens: Guanti senza dita + baseball_mitt: Guanto da baseball + fur-trimmed_gloves: Guanti con bordo di pelliccia + latex_gloves: Guanti in lattice + lace-trimmed_gloves: Guanti con bordo di pizzo + leather_gloves: Guanti di pelle + frilled_gloves: Guanti con volant + mismatched_gloves: Guanti diversi + multicolored_gloves: Guanti multicolore + asymmetrical_gloves: Guanti asimmetrici + brown_gloves: Guanti marroni + oven_mitts: Guanti da forno + print_gloves: Guanti a stampa + striped_gloves: Guanti a righe + torn_gloves: Guanti strappati + + - name: Orecchino + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: Orecchini a croce + crystal_earrings: Orecchini di cristallo + earrings: Orecchini + flower_earrings: Orecchini a forma di fiore + heart_earrings: Orecchini a forma di cuore + hoop_earrings: Orecchini a cerchio + multiple_earrings: Orecchini multipli + pill_earrings: Orecchini a forma di pillola + single_earring: Orecchino singolo + skull_earrings: Orecchini a forma di teschio + star_earrings: Orecchini a forma di stella + + - name: Copricapo + color: rgba(230, 84, 128, .4) + tags: + halo: Alone + mechanical_halo: Alone meccanico + headwear: Copricapo + headpiece: Copricapo + headwear_removed: Copricapo rimosso + head_wreath: Ghirlanda per capelli + crown: Corona + mini_crown: Mini corona + tiara: Tiara + diadem: Diadema + tilted_headwear: Copricapo inclinato + head_fins: Pinne per capelli + maid_headdress: Copricapo da cameriera + bridal_veil: Velo nuziale + headband: Fascia per capelli + helmet: Casco + alternate_headwear: Copricapo alternativo + fur-trimmed_headwear: Copricapo con bordo di pelliccia + goggles_on_headwear: Occhiali protettivi sul copricapo + earphones: Cuffie + earmuffs: Cuffie per le orecchie + ears_through_headwear: Orecchie attraverso il copricapo + xx_on_head: xx sulla testa + leaf_on_head: Foglia sulla testa + topknot: Chignon + suigintou: Suigintou + triangular_headpiece: Copricapo triangolare + forehead_protector: Protettore per la fronte + radio_antenna: Antenna radio + animal_hood: Cappuccio con orecchie di animale + arrow_(symbol): Freccia + axe: Ascia + bald: Calvo + bandana: Bandana + bob_cut: Taglio bob + bone: Osso + bowl_cut: Taglio a scodella + circlet: Cerchietto + double_bun: Doppio chignon + double_dildo: Doppio dildo + drill: Trapano + faucet: Rubinetto + hachimaki: Hachimaki + hair_behind_ear: Capelli dietro l'orecchio + hair_bell: Campanella per capelli + hair_bun: Chignon + hair_down: Capelli sciolti + hair_flaps: Ciuffi di capelli che si muovono + hair_flip: Spostare i capelli + hair_flower: Fiore nei capelli + hair_spread_out: Capelli sparsi + hair_up: Capelli raccolti + helm: Con il casco + helmet_removed: Casco rimosso + horned_helmet: Casco con corna + japari_bun: Japari bun + kerchief: Fazzoletto + mami_mogu_mogu: Mami mogu mogu + mob_cap: Cuffia + one_side_up: Capelli raccolti da un lato + owl: Gufo + pier: Molo + pillow: Cuscino + raised_fist: Pugno alzato + skull_and_crossbones: Teschio e ossa incrociate + stone: Pietra + turban: Turbante + twin_drills: Due code + updo: Acconciatura raccolta + wet_hair: Capelli bagnati + headdress: Copricapo + adjusting_headwear: Regolare il copricapo + bear_hair_ornament: Ornamento per capelli a forma di orso + brown_headwear: Copricapo marrone + horned_headwear: Copricapo con corna + horns_through_headwear: Corna attraverso il copricapo + no_headwear: Senza copricapo + object_on_head: Oggetto sulla testa + print_headwear: Copricapo a stampa + bone_hair_ornament: Ornamento per capelli a forma di osso + bunny_hair_ornament: Ornamento per capelli a forma di coniglio + horn_ornament: Ornamento per corna + animal_on_head: Animale sulla testa + behind-the-head_headphones: Cuffie dietro la testa + bird_on_head: Uccello sulla testa + cat_ear_headphones: Cuffie a forma di orecchie di gatto + cat_on_head: Gatto sulla testa + eyewear_on_head: Occhiali sul copricapo + forehead: Fronte + forehead_jewel: Gioiello sulla fronte + forehead_kiss: Bacio sulla fronte + forehead_mark: Marchio sulla fronte + forehead-to-forehead: Fronte a fronte + goggles_on_head: Occhiali protettivi sulla testa + head: Testa + head_bump: Bernoccolo sulla testa + head_down: Testa abbassata + head_mounted_display: Display montato sulla testa + head_out_of_frame: Testa fuori dal fotogramma + head_rest: Testa appoggiata + head_tilt: Testa inclinata + head_wings: Ali sulla testa + headgear: Copricapo + headphones: Cuffie + heads-up_display: Heads-up display + headset: Cuffie con microfono + inter_headset: Connettore neurale EVA + on_head: Sulla testa + person_on_head: Persona sulla testa + single_head_wing: Singola ala sulla testa + + - name: Cappello + color: rgba(230, 84, 128, .4) + tags: + hat: Cappello + no_hat: Senza cappello + large_hat: Cappello grande + mini_hat: Mini cappello + witch_hat: Cappello da strega + mini_witch_hat: Mini cappello da strega + wizard_hat: Cappello da mago + party_hat: Cappello da festa + jester_cap: Cappello da giullare + tokin_hat: Cappello a cilindro + top_hat: Cappello a cilindro alto + mini_top_hat: Mini cappello a cilindro + bowler_hat: Cappello a bombetta + pillbox_hat: Cappello a scatola + cloche_hat: Cappello cloche + side_cap: Cappello laterale + military_hat: Cappello militare + beret: Berretto basco + garrison_cap: Cappello da guarnigione + police_hat: Cappello da poliziotto + nurse_cap: Cuffia da infermiera + chef_hat: Cappello da chef + school_hat: Cappello scolastico + pirate_hat: Cappello da pirata + cabbie_hat: Cappello da tassista + bucket_hat: Cappello da pescatore + hardhat: Casco di sicurezza + straw_hat: Cappello di paglia + sun_hat: Cappello da sole + rice_hat: Cappello di paglia conico + animal_hat: Cappello con orecchie di animale + fur_hat: Cappello di pelliccia + hat_with_ears: Cappello con orecchie + bobblehat: Cappello con pompon + pillow_hat: Cappello a cuscino + pumpkin_hat: Cappello di zucca + baseball_cap: Berretto da baseball + flat_cap: Cappello a visiera + torn_hat: Cappello strappato + mob_cap: Cappello da contadina + newsboy_cap: Cappello da giornalaio + bowknot_over_white_beret: Fiocco su berretto bianco + backwards_hat: Cappello rovesciato + bowl_hat: Cappello a ciotola + cat_hat: Cappello con orecchie di gatto + chat_log: Stile chat + cowboy_hat: Cappello da cowboy + dixie_cup_hat: Cappello di carta + hat_bow: Cappello con fiocco + hat_feather: Cappello con piuma + hat_flower: Cappello con fiore + hat_ornament: Cappello con ornamento + hat_over_one_eye: Cappello copre un occhio + hat_removed: Cappello rimosso + hat_ribbon: Cappello con nastro + hat_tip: Toccare il bordo del cappello + hatching_(texture): Trama a tratti + hatsune_miku_(cosplay): Cosplay di Hatsune Miku + is_that_so: so-nanoka (È così, vero?) + porkpie_hat: Cappello pork pie + sailor_hat: Cappello da marinaio + santa_hat: Cappello di Babbo Natale + sideways_hat: Cappello con visiera laterale + what: L'autore ha un attacco + what_if: Un'altra linea temporale + + - name: Accessori per capelli + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: Nastro per capelli + hairband: Fascia per capelli + hair_tie: Elastico per capelli + lolita_hairband: Fascia per capelli Lolita + frilled_hairband: Fascia per capelli con balze + lace-trimmed_hairband: Fascia per capelli con bordo in pizzo + hair_bobbles: Fermagli per capelli + hair_ornament: Ornamento per capelli + hair_flower: Fiore per capelli + x_hair_ornament: Ornamento per capelli a forma di X + hair_bow: Fiocco per capelli + frog_hair_ornament: Ornamento per capelli a forma di rana + heart_hair_ornament: Ornamento per capelli a forma di cuore + butterfly_hair_ornament: Ornamento per capelli a forma di farfalla + star_hair_ornament: Ornamento per capelli a forma di stella + food-themed_hair_ornament: Ornamento per capelli a tema cibo + anchor_hair_ornament: Ornamento per capelli a forma di ancora + bat_hair_ornament: Ornamento per capelli a forma di pipistrello + carrot_hair_ornament: Ornamento per capelli a forma di carota + cat_hair_ornament: Ornamento per capelli a forma di gatto + clover_hair_ornament: Ornamento per capelli a forma di trifoglio + crescent_hair_ornament: Ornamento per capelli a forma di mezzaluna + cross_hair_ornament: Ornamento per capelli a forma di croce + d-pad_hair_ornament: Ornamento per capelli a forma di D-pad + fish_hair_ornament: Ornamento per capelli a forma di pesce + hairpods: Auricolari per capelli + leaf_hair_ornament: Ornamento per capelli a forma di foglia + musical_note_hair_ornament: Ornamento per capelli a forma di nota musicale + pumpkin_hair_ornament: Ornamento per capelli a forma di zucca + skull_hair_ornament: Ornamento per capelli a forma di teschio + snake_hair_ornament: Ornamento per capelli a forma di serpente + snowflake_hair_ornament: Ornamento per capelli a forma di fiocco di neve + strawberry_hair_ornament: Ornamento per capelli a forma di fragola + sunflower_hair_ornament: Ornamento per capelli a forma di girasole + hairpin: Spilla per capelli + hairclip: Molletta per capelli + hair_tubes: Tubi per capelli + hair_stick: Stuzzicadenti per capelli + hair_bun: Chignon + single_hair_bun: Chignon singolo + hair_bell: Campanella per capelli + hair_rings: Anelli per capelli + + - name: Piccoli accessori + color: rgba(230, 84, 128, .4) + tags: + ring: Anello + wedding_band: Fede nuziale + earrings: Orecchini + single_earring: Orecchino singolo + stud_earrings: Orecchini a perno + necklace: Collana + jewelry: Gioielli + crystal: Cristallo + brooch: Spilla + gem: Pietra preziosa + chest_jewel: Gioiello sul petto + forehead_jewel: Gioiello sulla fronte + tassel: Nappa + belly_chain_: Catena per il ventre + lace: Pizzo + ribbon: Nastro + stitches: Cuciture + scarf: Sciarpa + bandaid: Cerotto + collar: Collare + belt: Cintura + steam: Vapore + bell: Campana + amulet: Amuleto + emblem: Emblema + flag_print: Stampa a bandiera + anchor_symbol: Simbolo dell'ancora + cross: Croce + diffraction_spikes: Spigoli di diffrazione + iron_cross: Croce di ferro + latin_cross: Croce latina + lace-trimmed_hairband: Fascia per capelli con bordo in pizzo + ankle_lace-up: Allacciatura alla caviglia + st._gloriana's_(emblem): Emblema di St. Gloriana + heart_lock_(kantai_collection): Lucchetto a forma di cuore (Kantai Collection) + garters: Calze a reggicalze + thigh_strap: Fascia per coscia + thigh_ribbon: Nastro per coscia + leg_garter: Gambaletto + garter_straps: Bretelle per calze a reggicalze + leg_ribbon: Nastro per gamba + bandaid_on_leg: Cerotto sulla gamba + bandaged_leg: Gamba fasciata + arm_garter: Fascia per braccio + joints: Articolazioni + kneepits: Fossette delle ginocchia + knee_pads: Ginocchiere + thigh_holster: Fondina per coscia + bandaid_on_knee: Cerotto sul ginocchio + + - name: Gioielli + color: rgba(230, 84, 128, .4) + tags: + bracelet: Braccialetto + choker: Collana a girocollo + metal collar: Collare metallico + ring: Anello + wristband: Braccialetto + pendant: Ciondolo + brooch: Spilla + hoop earrings: Orecchini a cerchio + bangle: Bracciale + stud earrings: Orecchini a perno + sunburst: Gioiello a raggiera + pearl bracelet: Braccialetto di perle + drop earrings: Orecchini pendenti + puppet rings: Anelli per marionette + corsage: Spilla per abito + sapphire brooch: Spilla di zaffiro + jewelry: Gioielli + necklace: Collana + +- name: Espressioni e movimenti + groups: + - name: Sorridere + color: rgba(241, 229, 140, .4) + tags: + smile: Sorriso + laughing: Risata + kind_smile: Sorriso felice + :d: Sorriso felice_:D😀 + ;d: Sorriso con occhi semichiusi_:D + grin: Sorriso scoperto + teasing_smile: Sorriso provocatorio + seductive_smile: Sorriso seducente + smirk: Sorriso beffardo + giggling: Risatina + smug: Soddisfazione + naughty_face: Faccina birichina + evil smile: Sorriso malvagio + crazy_smile: Sorriso folle + happy: Felice|Felicità + happy_birthday: Buon compleanno + happy_halloween: Buon Halloween + happy_new_year: Felice anno nuovo + happy_tears: Lacrime di gioia + happy_valentine: Buon San Valentino + + - name: Piangere + color: rgba(241, 229, 140, .4) + tags: + sad: Triste + tear: Pianto + crying: Pianto + crying_with_eyes_open: Pianto con gli occhi aperti + streaming_tears: Lacrime che scorrono + teardrop: Goccia di lacrima + tearing_clothes: Strappare i vestiti + tearing_up: Espressione di voler piangere + tears: Lacrime + wiping_tears: Asciugare le lacrime + badmood: Cattivo umore + + - name: Triste + color: rgba(241, 229, 140, .4) + tags: + frustrated: Frustrato + frustrated_brow: Sopracciglio frustrato + annoyed: Annoiato + anguish: Angoscia + sigh: Sospirare + gloom: Tristezza + disappointed: Deluso + despair: Disperazione + + - name: Sprezzante + color: rgba(241, 229, 140, .4) + tags: + disgust: Disgusto (sguardo di disgusto) + disdain: Disprezzo + contempt: Sprezzo + shaded_face: Viso ombreggiato con sprezzo + jitome: Sguardo di disprezzo + frown: Sguardo accigliato + wince: Sguardo accigliato (preliminari sessuali) + furrowed_brow: Sopracciglio aggrottato + fear_kubrick: Sguardo di paura di Kubrick + laughing: Mentre ridi + + - name: Arrabbiato + color: rgba(241, 229, 140, .4) + tags: + angry: Arrabbiato + glaring: Sguardo furioso + serious: Serio (simile ad arrabbiato) + kubrick_stare: Sguardo di Kubrick (di lato) + evil: Malvagio + sulking: Imbronciato + screaming: Urlare|Gridare forte + shouting: Urlare + + - name: Altre espressioni + color: rgba(241, 229, 140, .4) + tags: + expressionless: Senza espressione + sleepy: Assonnato + drunk: Ubriaco + bored: Annoiato + confused: Confuso + thinking: Pensare + lonely: Solitario + light_blush: Leggero arrossamento + blush: Arrossire + shy: Timido + embarrass: Imbarazzato + facepalm: Coprire il viso con la mano + flustered: Agitato + sweat: Sudore + scared: Spaventato + ahegao: Ahegao + endured_face: Faccia di sopportazione + restrained: Ritenuto + dark_persona: Persona oscura + crazy: Pazzo + exhausted: Esaurito + Tsundere: Tsundere + yandere: Yandere + multiple_persona: Personalità multiple + Jekyll_and_Hyde: Jekyll e Hyde + twitching: Contrazione + spasm: Spasmo + trembling: Tremare + rape_face: Faccia di stupro + rolling_eyes: Girare gli occhi + envy: Invidia + female_orgasm: Orgasmo femminile + heavy_breathing: Respirazione pesante + naughty: Birichino + expressions: Espressioni facciali (approssimativo) + moaning: Gemere + scowl: Sguardo di disapprovazione + + - name: Azioni di base + color: rgba(241, 229, 140, .4) + tags: + standing: In piedi + on back: Sdraiato sul dorso + on stomach: Sdraiato sulla pancia + kneeling: In ginocchio + on_side: Sdraiato di lato + on_stomach: Sdraiato sulla pancia + top-down_bottom-up: Sdraiato sulla pancia con i glutei sollevati + the_pose: Sdraiato a terra con i piedi sollevati + bent_over: Posizione con i glutei sollevati + upside-down: Sopra-sotto + reversal: Inversione + fighting_stance: Posizione di combattimento + leaning_to_the_side: Appoggiato su un lato + leaning: Appoggiato|Inclinato + leaning_back: Inclinato all'indietro + leaning_on_object: Appoggiato su un oggetto + arched_back: Schiena arcuata + leaning_forward: Inclinato in avanti + afloat: Galleggiante (sull'acqua) + lying: Sdraiato + fetal_position: Posizione fetale (sdraiato) + lying_on_person: Sdraiato su una persona + lying_on_the_lake: Sdraiato sul lago + lying_on_water: Sdraiato sull'acqua + on_back: Sdraiato supino + prone_bone: Posizione prona + reclining: Sdraiato inclinato + sleeping_upright: Dormire in piedi (senza sdraiarsi) + presenting: Presentazione (seguito da una parte del corpo) + spinning: Girare + posing: Fare una posa + stylish_pose: Posizione elegante + public_indecency: Indecenza pubblica + parody: Parodia + in_container: In un contenitore + against_glass: Appoggiato contro il vetro (inefficace) + aiming: Mirare + aiming_at_viewer: Mirare verso lo spettatore + applying_makeup: Truccarsi + bathing: Fare il bagno + biting: Mordere + bleeding: Sanguinare + blowing: Soffiare + bowing: Inchinarsi + breathing_fire: Soffiare fuoco + broom_riding: Cavalcare una scopa + brushing_teeth: Spazzolare i denti + bubble_blowing: Soffiare bolle + bullying: Bullismo + burning: Bruciare + cast: Lanciare + chasing: Inseguire + cleaning: Pulire + climbing: Arrampicarsi + comforting: Confortare + cooking: Cucinare + crying: Piangere + cuddling: Abbracciarsi + dancing: Ballare + diving: Tuffarsi + dragging: Trascinare qualcosa + drawing: Disegnare + drawing_bow: Tirare l'arco + dreaming: Sognare + drinking: Bere + driving: Guidare + dropping: Lasciare cadere (accidentalmente) + drying: Asciugare (dopo il bagno) + dual_wielding: Impugnare due armi + exercise: Fare esercizio + fighting: In combattimento + firing: Sparare + fishing: Pescare + flapping: Battere le ali + flashing: Mostrare + fleeing: In fuga + flexing: Mostrare i muscoli + flying: Volare + flying_kick: Calcio volante + hair_brushing: Spazzolare i capelli + hair_tucking: Sistemare i capelli + hanging: Appendere + hitting: Colpire + imagining: Immaginare + jumping: Saltare + kicking: Calciare + licking: Leccare + licking_lips: Leccarsi le labbra + lip_biting: Mordere le labbra + meditation: Meditare + painting: Dipingere + Painting_(Action): Dipingere + playing_card: Giocare a carte + playing_games: Giocare ai giochi + playing_instrument: Suonare uno strumento + pole_dancing: Danza del palo + praying: Pregare + punching: Pugno + pushing: Spingere + railing: Appoggiarsi su una ringhiera + reading: Leggere + riding: Cavalcare + running: Correre + sewing: Cucire + shopping: Fare shopping + showering: Fare la doccia + sing: Cantare + singing: Cantare + slashing: Tagliare + sleeping: Dormire + smelling: Annusare + smoking: Fumare + sneezing: Starnutire + snowing: Nevicare + soaking_feet: Fare un pediluvio + soccer: Giocare a calcio + spilling: Versare da un contenitore + spitting: Sputare + splashing: Spruzzare + standing_on_liquid: Stare in piedi su un liquido + standing_on_one_leg: Stare in piedi su una gamba + standing_split: Spaccata in piedi + steepled_fingers: Dita intrecciate + strangling: Strangolare + sweeping: Spazzare + swimming: Nuotare + swing: Oscillare + tail_wagging: Scodinzolare + taking_picture: Fare una foto|Autoscatto + talking: Parlare + talking_on_phone: Parlare al telefono + teasing: Prendere in giro + thinking: Pensare + tickling: Solletico + toilet_use: Usare il bagno + tossing_: Lanciare + tripping: Inciampare + trolling: Trollare + twitching: Contrazione + tying: Legare (azione) + unsheathing: Sguainare + untying: Slegare + unzipping: Aprire la cerniera + wading: Vadare + waking_up: Svegliarsi + walking: Camminare + walking_on_liquid: Camminare su un liquido + washing: Lavare + whispering: Sussurrare + wrestling: Lottare + writing: Scrivere + yawning: Sbadigliare + hiding: Nascondersi + + - name: Azioni della mano + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: Mani dietro la schiena + arm_above_head: Mano sopra la testa + arm_behind_head: Mano dietro la testa + arms_crossed: Braccia incrociate sul petto + arm_support: Mano di sostegno + armpits: Ascelle scoperte + arms_up: Mani alzate + hands_on_hips: Mani sui fianchi + arm_around_waist: Braccio attorno alla vita + caramelldansen: Movimento famoso delle mani che si muovono in avanti e indietro + hands_in_opposite_sleeves: Mani nelle maniche opposte + waving: Saluto con la mano + crossed_arms: Braccia incrociate + outstretched_arms: Braccia distese + v_arms: Braccia a V + w_arms: Braccia a W + salute: Saluto militare + reaching: Mano che si allunga (in modo intenzionale) + reaching_out: Mano che si allunga verso l'esterno + stretch: Stiracchiarsi + hugging_own_legs: Abbracciarsi le gambe + arm_blade: Lama sul braccio + arm_grab: Presa del braccio + arm_held_back: Braccio tirato indietro + arm_ribbon: Nastro sul braccio + bandaged_arm: Braccio bendato + bandaid_on_arm: Cerotto sul braccio + bound_arms: Braccia legate + convenient_arm: Braccio che copre parti intime + extra_arms: Braccia extra + locked_arms: Braccia intrecciate + outstretched_arm: Braccio teso + waving_arms: Braccia che si agitano + arm_at_side: Braccio appoggiato al fianco + arm_behind_back: Braccio dietro la schiena + shou: Mano che sostiene la testa + arm_cannon: Braccio cannone + arm_hug: Abbraccio con il braccio + arm_up: Braccio alzato + arms_at_sides: Braccia ai lati + arms_behind_head: Braccia dietro la testa + hand_to_mouth: Mano vicino alla bocca + shushing: Gestaccio del silenzio + cat_pose: Gestaccio delle zampe di gatto + claw_pose: Gestaccio delle unghie + paw_pose: Gestaccio della zampa del gatto (polso piegato) + fox_shadow_puppet: Gestaccio della volpe con le mani + double_fox_shadow_puppet: b + finger_gun: Gestaccio della pistola con le dita + v: Gestaccio della vittoria + double_v: Doppia v + thumbs_up: Pollice in su + index_finger_raised: Dito indice alzato + middle_finger: Gestaccio dell'amicizia internazionale + grimace: Faccia buffa + eyelid_pull: Faccia buffa + fingersmile: Sorriso fatto con le dita + wiping_tears: Asciugarsi le lacrime + finger_on_trigger: Gestaccio del dito sul grilletto + pointing_at_self: Puntare se stessi + pointing_at_viewer: Puntare verso chi guarda + pointing_up: Puntare verso l'alto + poking: Dare un colpetto + hand_gesture: Gesto con la mano + ok_sign: Gesto del OK + shading_eyes: Gesto per proteggere gli occhi dal sole + finger_biting: Mordere il dito + finger_in_mouth: Succhiarsi il dito + fingering_through_clothes: Gesticolare attraverso i vestiti + fingers_together: Dita unite + hair_twirling: Gesticolare con i capelli + hands_clasped: Mani intrecciate + holding_hair: Tenere i capelli + pointing: Puntare con il dito + sharp_fingernails: Unghie affilate + sleeves_past_fingers: Maniche che superano le dita + spread_fingers: Dita allargate + trigger_discipline: Dito che non preme il grilletto + w: Dita a forma di W + balancing: Posizione di equilibrio + curvy: Posizione che mostra fascino + multiple_views: Diverse angolazioni|Diverse posizioni + pose: Posizione + ready_to_draw: Pronti a disegnare + trefoil: Posizione femminile che mostra il sedere + zombie_pose: Posizione da zombie + beckoning: Fare segno con la mano + bunching_hair: Tenere i capelli raccolti + carrying: Portare con sé + carrying_over_shoulder: Portare sulle spalle + carrying_under_arm: Portare sotto il braccio + cheering: Incoraggiare + finger_to_mouth: Mano sulla bocca + cheek_pinching: Pizzicare le guance + cheek_poking: Toccare le guance + chin_stroking: Accarezzare il mento + hair_pull: Tirare i capelli + covering_mouth: Coprire la bocca + covering_xx: Coprire xx + self_fondle: Auto-accarezzarsi + adjusting_thighhigh: Sistemare i calzettoni + chin_rest: Appoggiare il mento + head_rest: Appoggiare la testa + take: Tenere in mano + _sheet_grab: Afferrare le lenzuola + groping: Palpeggiare + skirt_lift: Sollevare la gonna + crotch_grab: Afferrare l'inguine + covering_chest_by_hand: Coprire il petto con la mano + bangs_pinned_back: Sollevare la frangia + clothes_lift: Sollevare i vestiti + dress_lift: Sollevare il vestito + kimono_lift: Sollevare il kimono + lifted_by_another: Sollevato da un'altra persona + lifted_by_self: Sollevare se stessi + shirt_lift: Sollevare la camicia + skirt_basket: Sollevare la gonna formando un cesto + skirt_flip: Sollevare la gonna (con significato di situazione improvvisa) + bikini_lift: Sollevare il bikini + leg_lift: Sollevare una gamba + lifting_person: Sollevare una persona + strap_lift: Sollevare il tirante dell'abbigliamento + wind_lift: Effetto vento|Corrente ascendente + bikini_pull: Tirare il bikini + cheek_pull: Tirare la guancia + clothes_pull: Tirare i vestiti + dress_pull: Tirare il vestito verso il petto + hair_pulled_back: Capelli tirati indietro + kimono_pull: Togliere il kimono + leotard_pull: Togliere il body + mask_pull: Tirare la maschera + pants_pull: Tirare i pantaloni + pulled_by_another: Tirato da un'altra persona (o tirare i vestiti) + pulled_by_self: Tirare i propri vestiti + pulling: Tirare + shirt_pull: Tirare la camicia + shorts_pull: Togliere i pantaloncini + skirt_pull: Tirare la gonna + swimsuit_pull: Togliere il costume da bagno + zipper_pull_tab: Tirante della cerniera + adjusting_clothes: Sistemare i vestiti + adjusting_eyewear: Sistemare gli occhiali + adjusting_gloves: Sistemare i guanti + adjusting_hair: Sistemare i capelli + adjusting_hat: Sistemare il cappello + adjusting_swimsuit: Sistemare il costume da bagno + + - name: Azioni della mano (tenere qualcosa) + color: rgba(241, 229, 140, .4) + tags: + holding: Tenere qualcosa + holding_animal: Tenere un animale + holding_arrow: Tirare l'arco + holding_axe: Tenere un'ascia + holding_bag: Tenere una borsa + holding_ball: Tenere una palla + holding_basket: Tenere un cesto + holding_book: Tenere un libro + holding_bottle: Tenere una bottiglia + holding_bouquet: Tenere un bouquet + holding_bow_(weapon): Tenere un arco (arma) + holding_bowl: Tenere una ciotola + holding_box: Tenere una scatola + holding_breath: Trattenere il respiro + holding_broom: Tenere una scopa + holding_camera: Tenere una telecamera + holding_can: Tenere una lattina + holding_candy: Tenere una caramella + holding_card: Tenere una carta + holding_cat: Tenere un gatto + holding_chopsticks: Tenere le bacchette + holding_cigarette: Tenere una sigaretta + holding_clothes: Tenere dei vestiti + holding_condom: Tenere un preservativo + holding_cup: Tenere una tazza + holding_dagger: Tenere un pugnale + holding_doll: Tenere una bambola + holding_eyewear: Tenere gli occhiali|Stare togliendo gli occhiali + holding_fan: Tenere un ventaglio + holding_flag: Tenere una bandiera + holding_flower: Tenere un fiore + holding_food: Tenere del cibo + holding_fork: Tenere una forchetta + holding_fruit: Tenere un frutto + holding_gift: Tenere un regalo + holding_gun: Tenere una pistola + holding_hands: Tenere le mani + holding_hat: Tenere un cappello + holding_head: Tenere la testa tra le mani + holding_helmet: Tenere un casco + holding_innertube: Tenere un salvagente + holding_instrument: Tenere uno strumento musicale + holding_knife: Tenere un coltello + holding_leaf: Tenere una foglia + holding_lollipop: Tenere un lecca-lecca + holding_mask: Tenere una maschera + holding_microphone: Tenere un microfono + holding_needle: Tenere un ago da cucito + holding_own_foot: Tenere il proprio piede + holding_paintbrush: Tenere un pennello + holding_paper: Tenere una carta + holding_pen: Tenere una penna + holding_pencil: Tenere una matita + holding_phone: Tenere un telefono + holding_pillow: Tenere un cuscino + holding_pipe: Tenere una pipa + holding_pizza: Tenere una pizza + holding_plate: Tenere un piatto + holding_poke_ball: Tenere una Poké Ball + holding_pokemon: Tenere un Pokémon + holding_polearm: Tenere un'arma a asta + holding_sack: Tenere un sacco + holding_scythe: Tenere una falce + holding_sheath: Tenere una fodera per coltello + holding_shield: Tenere uno scudo + holding_shoes: Tenere delle scarpe + holding_sign: Tenere un cartello + holding_spear: Tenere una lancia + holding_spoon: Tenere un cucchiaio + holding_staff: Tenere un bastone magico + holding_strap: Tenere una bretella + holding_stuffed_animal: Tenere un animale di peluche + holding_stylus: Tenere uno stilo + holding_sword: Tenere una spada + holding_syringe: Tenere una siringa + holding_towel: Tenere un asciugamano + holding_tray: Tenere un vassoio + holding_umbrella: Tenere un ombrello + holding_wand: Tenere una bacchetta + holding_whip: Tenere una frusta + arm_around_neck: Braccio attorno al collo + arms_around_neck: Braccia attorno al collo + + - name: Azioni della mano (appoggiare in un luogo) + color: rgba(241, 229, 140, .4) + tags: + covering: Gestaccio di copertura + covering_face: Coprire il viso + covering_ass: Coprire il sedere + covering_crotch: Coprire l'inguine + covering_eyes: Coprire gli occhi + covering_mouth: Coprire la bocca + covering_nipples: Coprire i capezzoli + hands_on_another's_: Mani sul viso di qualcun altro + hands_on_another's_cheeks: Mani sulle guance di qualcun altro + hands_on_ass: Mani sul sedere + hands_on_feet: Mani sui piedi + hands_on_headwear: Mani che toccano l'accessorio per la testa + hands_on_hilt: Mani sul manico + hands_on_lap: Mani sulle ginocchia + hands_on_own_face: Mani sul proprio viso + hands_on_own_cheeks: Mani sulle proprie guance + hands_on_own_chest: Mani sul proprio petto + hands_on_own_head: Mani sulla propria testa + hands_on_own_knees: Mani sulle proprie ginocchia + hands_on_own_stomach: Mani sul proprio stomaco + hands_on_own_thighs: Mani sulle proprie cosce + hands_on_another's_shoulders: Mani sulle spalle di qualcun altro + hands_on_hips: Mani sui fianchi|Mani appoggiate sui fianchi + hand_on_another's_: Mano che tocca il viso di qualcun altro + hand_on_another's_cheek: Mano che accarezza la guancia di qualcun altro + hand_on_another's_chest: Mano sul petto di qualcun altro + hand_on_another's_chin: Mano che sostiene il mento di qualcun altro + hand_on_another's_head: Mano sul capo di qualcun altro + hand_on_another's_shoulder: Mano sulla spalla di qualcun altro + hand_on_another's_stomach: Mano sullo stomaco di qualcun altro + hand_on_ass: Mano sul sedere + hand_on_head: Mano sulla testa + hand_on_headwear: Mano che tocca l'accessorio per la testa + hand_on_hilt: Mano sul manico + hand_on_hip: Mano sui fianchi|Mano appoggiata sui fianchi + hand_on_own_: Mano sul proprio viso + hand_on_own_cheek: Mano sulla propria guancia + hand_on_own_chest: Mano sul proprio petto + hand_on_own_chin: Mano che tocca il proprio mento + hand_on_own_stomach: Mano sul proprio stomaco + hand_on_shoulder: Mano sulla spalla + hand_in_another's_hair: Mano tra i capelli di qualcun altro + hand_in_hair: Mano tra i capelli + hand_in_pocket: Mano in tasca + + - name: Azioni della mano (afferrare qualcosa) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: Afferrare il sedere + flat_chest_grab: Afferrare il petto piatto + grabbing: Afferrare|Tenere + grabbing_another's_ass: Afferrare il sedere di qualcun altro + grabbing_another's_hair: Afferrare i capelli di qualcun altro + grabbing_from_behind: Afferrare il petto da dietro + grabbing_own_ass: Afferrare il proprio sedere + guided_penetration: Guidare la penetrazione + hair_grab: Afferrare i capelli + leg_grab: Afferrare la gamba + necktie_grab: Afferrare la cravatta + neckwear_grab: Afferrare l'abbigliamento del collo + penis_grab: Afferrare il pene + pillow_grab: Afferrare il cuscino + sheet_grab: Afferrare le lenzuola + tail_grab: Afferrare la coda + thigh_grab: Afferrare la coscia + torso_grab: Afferrare il busto + wrist_grab: Afferrare il polso + + - name: Azioni delle gambe + color: rgba(241, 229, 140, .4) + tags: + legs_up: Sollevare una gamba + spread legs: Aprire le gambe + legs_together: Gambe unite + crossed_legs: Gambe incrociate + m_legs: Gambe a forma di M + standing_split,_leg_up: Gambe divaricate in piedi + curtsy: Riverenza (inchino da cameriera) + hand_between_legs: Mano tra le gambe + open_stance: Posizione di riposo + convenient_leg: Gamba che copre le parti intime + leg_lock: Incrociare le gambe + legs: Gambe + legs_over_head: Sollevare le gambe sopra la testa + squatting,_open_legs: Squat con gambe aperte + knees_together_feet_apart: Ginocchia unite, piedi separati + animal_on_lap: Animale sulle ginocchia + hand_on_own_knee: Mano sul proprio ginocchio + knee_up: Sollevare il ginocchio + knees: Ginocchia + knees_to_chest: Ginocchia verso il petto + on_lap: Sulle ginocchia + sitting: Seduto/a + wariza: Seduta alla giapponese + straddling: Seduta a cavalcioni + yokozuwari: Seduta di lato + sitting_backwards: Seduto/a all'indietro + sitting_in_tree: Seduto/a su un albero + sitting_on_xx: Seduto/a su qualcosa + butterfly_sitting: Seduta a farfalla + lotus_position: Seduta a loto + sitting_on_railing: Seduto/a su una ringhiera + sitting_on_rock: Seduto/a su una roccia + sitting_on_stairs: Seduto/a su delle scale + sitting_on_table: Seduto/a su un tavolo + sitting_on_water: Seduto/a sull'acqua + cushion: Cuscino + indian_style: Seduta alla indiana + sitting_on_chair: Seduto/a su una sedia + sidesaddle: Seduta sulla sella di lato + sitting_on_bed: Seduto/a sul letto + sitting_on_desk: Seduto/a sulla scrivania + sitting_on_lap: Seduto/a sulle cosce + sitting_on_person: Seduto/a su una persona + upright_straddle: Posizione seduta a gambe aperte + squatting: Accovacciato/a + one_knee: Un ginocchio + kneeling: Ginocchia a terra + all_fours: A quattro zampe + gravure_pose: Posizione provocante + kicking: Calcio + high_kick: Calcio alto + soaking_feet: Ammollo dei piedi + reclining: Sdraiato/a + hugging_own_legs: Abbracciare le proprie gambe + bare_legs: Gambe scoperte + between_legs: Tra le gambe (sottolinea) + cropped_legs: Gambe tagliate (parzialmente disegnate) + k/da_(league_of_legends): Gruppo K/DA (League of Legends) + leg_belt: Cintura per le gambe + leg_hair: Peluria sulle gambe + leg_up: Sollevare la gamba + legs_apart: Gambe divaricate + lowleg: Gambe a forma di M + mechanical_legs: Gambe meccaniche + multiple_legs: Personaggio con più gambe + no_legs: Senza gambe + no_legwear: Senza copertura alle gambe + tail_between_legs: Coda tra le gambe + barefoot: A piedi nudi + foot_out_of_frame: Piede fuori dall'inquadratura + footprints: Impronte dei piedi + dirty_feet: Errori nel disegno dei piedi + feet: Piedi + feet_out_of_frame: Piedi fuori dall'inquadratura + feet_up: Sollevare i piedi + wrong_feet: Errori nel disegno dei piedi + cameltoe: Cameltoe + pigeon-toed: Piedi all'interno (a forma di otto) + tiptoes: Camminare in punta di piedi + toe-point: Punte dei piedi + amputee: Amputato/a + ankle_strap: Cinturino alla caviglia + ankle_wrap: Fascia alla caviglia + crossed_ankles: Caviglie incrociate + pince-nez: Occhiali da naso (senza aste) + folded: Sollevare la gamba e mostrare l'inguine + thick_thighs: Cosce robuste + thigh_holster: Fondina per coscia + + - name: Altre azioni + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: Contatto asimmetrico del petto + back-to-back: Schiena contro schiena + cunnilingus: Cunnilingus + eye_contact: Contatto visivo + facing_another: Di fronte a un altro/a + facing_away: Di fronte l'uno all'altro (viso molto vicino) + feeding: Alimentare + finger_in_another's_mouth: Dito nella bocca dell'altro/a + fingering: Stimolazione manuale + french_kiss: Bacio alla francese + giving: Dare + grinding: Attrito + groping: Palpeggiamento + holding_hands: Tenere le mani + hug: Abbraccio + imminent_kiss: Bacio imminente + incoming_food: Cibo in arrivo + incoming_gift: Regalo in arrivo + interlocked_fingers: Dita intrecciate + Kabedon: Kabedon (colpire il muro con la mano) + lap_pillow: Cuscino sulle cosce + licking_penis: Leccare il pene + long_tongue: Lingua lunga + mimikaki: Pulizia delle orecchie + oral_invitation: Invito orale (mostrare la lingua in attesa dell'eiaculazione) + princess_carry: Portare come una principessa + shared_bathing: Bagno condiviso + shared_food: Cibo condiviso (passarsi il cibo con la bocca) + sitting_on_head: Seduto/a sulla testa + sitting_on_shoulder: Seduto/a sulla spalla + slapping: Schiaffo + spanking: Sculacciata + special_feeling_(meme): Meme "Sentimento speciale" (ombrello nella neve) + symmetrical_docking: Contatto simmetrico del petto + tongue: Lingua + tongue_out: Lingua fuori + uvula: Uvula + ear_biting: Mordere l'orecchio + mixed_bathing: Bagno misto + +- name: Immagine + groups: + - name: Qualità dell'immagine + color: rgba(0, 255, 255, .4) + tags: + checkered: A scacchi + lowres: Bassa risoluzione + highres: Alta risoluzione + absurdres: Risoluzione estremamente alta + incredibly absurdres: Risoluzione incredibilmente alta + huge filesize: Risoluzione super alta / File grande + wallpaper: Sfondo + pixel art: Pixel art + monochrome: Immagine monocromatica + colorful: Colorata + + - name: Stile artistico + color: rgba(0, 255, 255, .4) + tags: + artbook: Artbook + game cg: CG di gioco + comic: Fumetto + 4koma: 4-koma + animated gif: Immagine GIF animata + dakimakura: Dakimakura + cosplay: Cosplay + crossover: Crossover + dark: Scuro + light: Chiaro + guro: Guro + realistic: Realistico + photo: Foto + real: Reale + landscape/scenery: Paesaggio + cityscape: Veduta urbana + science fiction: Fantascienza + original: Originale + parody: Parodia + personification: Personificazione + optical illusion: Illusione ottica + fine art parody: Parodia di opere d'arte + sketch: Schizzo + traditional media: Media tradizionali (disegno a mano) + watercolor (medium): Acquerello trasparente + silhouette: Silhouette + cover: Copertina + album: Album + sample: Campione + back: Retro + bust: Busto + profile: Profilo + expressions: Espressioni + everyone: Tutti i personaggi principali in un'opera + column lineup: Colonna di immagini che compongono un'immagine più grande + transparent background: Sfondo trasparente + simple background: Sfondo semplice + gradient background: Sfondo sfumato + zoom layer: Sfondo ingrandito rispetto al primo piano + 8 Bit Game: Gioco in stile 8-bit + 1980s anime: Anime degli anni '80 + disney movie: Film Disney + goth: Stile goth + 80s movie: Film degli anni '80 + bubble bobble: Bubble Bobble + style of Pixar: Stile di Pixar + Polaroid art: Arte Polaroid + Kaleidoscope Photography: Fotografia caleidoscopica + opal render: Rendering opale + chemigram: Chemigram + Studio Ghibli: Stile di Studio Ghibli + dreamlike: Onirico + (faux traditional media): Stile di imitazione di media tradizionali + genshin impact: Genshin Impact + azur lane: Azur Lane + kantai collection: Kantai Collection + rebecca (cyberpunk): Rebecca (cyberpunk) + chainsaw man: Chainsaw Man + Magic Vortex: Vortice magico + ((dieselpunk)): Dieselpunk + magazine scan: Scansione di una rivista + album cover: Copertina di un album + (lineart): Lineart + synthwave: Synthwave + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): Lococo + + - name: Tipo di arte + color: rgba(0, 255, 255, .4) + tags: + monochrome: Immagine monocromatica + Collage: Collage + Dalle de verre: Vetrate colorate + pixel art: Pixel art + Encaustic painting: Pittura encausto + Ink wash painting: Pittura ad inchiostro + Mezzotint: Mezzatinta + silhouette: Silhouette + illustration: Illustrazione + (((ink))), ((watercolor)): Acquerello + illustration,(((ukiyoe))),((sketch)),((japanese_art)): Ukiyo-e + ((wash painting)),((ink s...)): Stile cinese + ((dyeing)),((oil painting)),((impasto)): Pittura ad olio + (posing sketch), (monochrome): Schizzo in bianco e nero + sketch: Schizzo a mano + (monochrome), (gray scale), (pencil sketch lines: Schizzo a matita + (watercolor pencil): Matita acquerellabile + + - name: Movimento artistico + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): Art Nouveau + ((classicism)): Classicismo + ((futurism)): Futurismo + ((Dadaism)): Dadaismo + ((abstract art)): Arte astratta + ((ASCII art)): Arte ASCII + + - name: Stile dell'artista + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): Stile di Alphonse Mucha + ((Monet style)): Stile di Monet + + - name: Illuminazione + color: rgba(0, 255, 255, .4) + tags: + rim light: Luce di contorno + Volumetric Lighting: Illuminazione volumetrica + glowing neon lights: Luci al neon brillanti + Cinematic Lighting: Illuminazione cinematografica + lens flare: Abbaglio dell'obiettivo + metallic luster: Lucentezza metallica + moody lighting: Illuminazione d'atmosfera + Tyndall effect: Effetto Tyndall + light leaks: Fughe di luce + background light: Luce di sfondo + available light: Luce naturale + + - name: Realismo + color: rgba(0, 255, 255, .4) + tags: + realistic: Realistico + highres: Spessore (stile) + photo_(medium): Foto (stile) + oil_painting: Pittura ad olio + reality: Realtà + polaroid: Foto istantanea + + - name: Schizzo + color: rgba(0, 255, 255, .4) + tags: + sketch: Schizzo + flat_color: Colore piatto + monochrome: Monocromatico + spot_color: Colore pieno + halftone: Mezzatinta + greyscale: Scala di grigi + high_contrast: Alto contrasto + partially_colored: Parzialmente colorato + chromatic_aberration: Aberrazione cromatica + contour_deepening: Approfondimento dei contorni + outline: Contorno + silhouette: Silhouette + + - name: Pennello + color: rgba(0, 255, 255, .4) + tags: + traditional_media: Supporto tradizionale (come carta) + faux_traditional_media: Stile di imitazione di media tradizionali + marker_(medium): Pennarello + copics: Copics (pennarelli neutri) + pencil_sketch_lines: Schizzo a matita + graphite_(medium): Matita al grafite + colored_pencil_(medium): Matita colorata + millipen_(medium): Penna per disegno + nib_pen_(medium): Penna a punta + ballpoint_pen_(medium)_: Penna a sfera + pastel_color: Colori pastello + watercolor_(medium): Acquerello + acrylic_paint_(medium): Pittura acrilica + contour_deepening: Lineart + + - name: Colore + color: rgba(0, 255, 255, .4) + tags: + orange: Arancione + blue: Blu + red: Rosso + light_brown: Marrone chiaro + dark_pink: Rosa scuro + khaki: Kaki + blonde: Biondo + brown: Marrone + black: Nero + gray: Grigio + darkgray: Grigio scuro + silver: Argento + lightgray: Grigio chiaro + gainsboro: Grigio gainsboro + whitesmoke: Fumo bianco + snow: Neve + ghostwhite: Bianco fantasma + floralwhite: Bianco floreale + linen: Lino + antiquewhite: Bianco antico + papayawhip: Papaya whip + blanchedalmond: Mandorla sbiancata + bisque: Biscotto + moccasin: Mocassino + navajowhite: Bianco navajo + peachpuff: Pesca + mistyrose: Rosa nebbia + lavenderblush: Lavanda rosata + seashell: Conchiglia + oldlace: Pizzo antico + ivory: Avorio + honeydew: Melata + mintcream: Crema di menta + azure: Azzurro + aliceblue: Azzurro alice + lavender: Lavanda + lightsteelblue: Blu acciaio chiaro + lightslategray: Grigio ardesia chiaro + slategray: Grigio ardesia + steelblue: Blu acciaio + royalblue: Blu reale + midnightblue: Blu mezzanotte + navy: Blu navy + darkblue: Blu scuro + mediumblue: Blu medio + dodgerblue: Blu dodger + cornflowerblue: Blu fiordaliso + skyblue: Azzurro cielo + lightblue: Blu chiaro + powderblue: Blu polvere + paleturquoise: Turchese pallido + lightcyan: Ciano chiaro + cyan: Ciano + aquamarine: Acquamarina + turquoise: Turchese + mediumturquoise: Turchese medio + darkturquoise: Turchese scuro + lightseagreen: Verde mare chiaro + cadetblue: Blu cadetto + darkcyan: Ciano scuro + teal: Verde petrolio + darkslategray: Grigio ardesia scuro + darkgreen: Verde scuro + green: Verde + forestgreen: Verde foresta + seagreen: Verde mare + mediumseagreen: Verde mare medio + mediumaquamarine: Acquamarina medio + darkseagreen: Verde mare scuro + palegreen: Verde pallido + lightgreen: Verde chiaro + springgreen: Verde primavera + mediumspringgreen: Verde prato + lawngreen: Verde prato + chartreuse: Chartreuse + greenyellow: Giallo verde + lime: Lime + limegreen: Verde lime + yellowgreen: Verde giallastro + darkolivegreen: Verde oliva scuro + olivedrab: Oliva scuro + olive: Oliva + darkkhaki: Kaki scuro + palegoldenrod: Giallo dorato pallido + cornsilk: Seta di mais + beige: Beige + lightyellow: Giallo chiaro + lightgoldenrodyellow: Giallo dorato chiaro + lemonchiffon: Chiffon al limone + wheat: Grano + burlywood: Burlywood + tan: Marrone chiaro + yellow: Giallo + gold: Oro + sandybrown: Marrone sabbia + darkorange: Arancione scuro + goldenrod: Giallo dorato + peru: Peru + darkgoldenrod: Giallo dorato scuro + chocolate: Cioccolato + sienna: Terra di siena + saddlebrown: Marrone sella + maroon: Marrone scuro + darkred: Rosso scuro + firebrick: Mattone + indianred: Rosso indiano + rosybrown: Marrone rosato + darksalmon: Salmone scuro + lightcoral: Corallo chiaro + salmon: Salmone + lightsalmon: Salmone chiaro + coral: Corallo + tomato: Pomodoro + orangered: Arancione rosso + crimson: Cremisi + mediumvioletred: Rosso violaceo medio + deeppink: Rosa intenso + hotpink: Rosa acceso + palevioletred: Rosso violaceo pallido + pink: Rosa + lightpink: Rosa chiaro + thistle: Cardo + magenta: Magenta + fuchsia: Fucsia + violet: Viola + plum: Prugna + orchid: Orchidea + mediumorchid: Orchidea media + darkorchid: Orchidea scura + darkviolet: Viola scuro + darkmagenta: Magenta scuro + purple: Viola + indigo: Indaco + darkslateblue: Blu ardesia scuro + blueviolet: Blu violaceo + mediumpurple: Viola medio + slateblue: Blu ardesia + mediumslateblue: Blu ardesia medio + + - name: Sfondo + color: rgba(0, 255, 255, .4) + tags: + fantasy: Stile fantasy + ban: Fantascienza tecnologica + cyberpunk: Cyberpunk + depth_of_field: Profondità di campo (tecnica pittorica) + blurry: Sfondo sfocato + blurry_foreground: Primo piano sfocato + simple_background: Sfondo semplice + black_background: Sfondo nero + white_background: Sfondo bianco + transparent_background: Sfondo trasparente + beige_background: Sfondo beige + brown_background: Sfondo marrone + tan_background: Sfondo color sabbia + grey_background: Sfondo grigio + two-tone_background: Sfondo a due tonalità + gradient_background: Sfondo a sfumature + multicolored_background: Sfondo multicolore + rainbow_background: Sfondo arcobaleno + abstract_background: Sfondo astratto + argyle_background: Sfondo a rombi + checkered_background: Sfondo a scacchi + floral_background: Sfondo con decorazioni floreali + halftone_background: Sfondo a puntinato + heart_background: Sfondo rosa + honeycomb_background: Sfondo a nido d'ape + plaid_background: Sfondo a quadretti + polka_dot: Sfondo a pois + striped_background: Sfondo a righe + scenery: Paesaggio + landscape: Paesaggio + foral_background: Sfondo con motivi floreali + crop_top_overhang: Sfondo con parte superiore ritagliata + starry_background: Sfondo stellato + sparkle_background: Sfondo scintillante + cityscape: Sfondo urbano + city_lights: Sfondo con luci della città + clock_background: Sfondo con orologio + bubble_background: Sfondo a bolle + border: Bordo + pillarboxed: Sfondo con cornice a pilastri + rounded_corners: Sfondo o cornice con angoli arrotondati + viewfinder: Mirino della fotocamera + windowboxed: Sfondo con cornice (quadro) + outside_border: Parte dell'immagine fuori dalla cornice + flashback: Scena di flashback + wall_of_text: Sfondo di testo + background_text: Testo sullo sfondo + +- name: Ambiente + groups: + - name: Stagione + color: rgba(31, 144, 255, .4) + tags: + in spring: Primavera + in summer: Estate + in autumn: Autunno + in winter: Inverno + (autumn maple forest:1.3),(very few fallen leaves),(path): Paesaggio autunnale + + - name: Meteo + color: rgba(31, 144, 255, .4) + tags: + day: Giorno + dusk: Crepuscolo + night: Notte + rain: Pioggia + in the rain: Sotto la pioggia + rainy days: Giorni di pioggia + sunset: Tramonto + cloudy: Nuvoloso + full moon: Luna piena + sun: Sole + moon: Luna + full_moon: Luna piena + stars: Stelle + sky: Cielo + universe: Universo + snow,ice: Neve, ghiaccio + snowflakes: Fiocchi di neve + lighting: Fulmine + rainbow: Arcobaleno + meteor shower: Pioggia di meteoriti + cumulonimbus: Cumulonembi + + - name: Natura + color: rgba(31, 144, 255, .4) + tags: + nature: Natura + sea: Mare + ocean: Oceano + beach: Spiaggia + hills: Colline + in a meadow: In un prato + on the beach: Sulla spiaggia + underwater: Sott'acqua + over the sea: Sopra il mare + grove: Boschetto + on a desert: Nel deserto + plateau: Altopiano + cliff: Scogliera + canyon: Canyon + oasis: Oasi + bamboo forest: Foresta di bambù + glacier: Ghiacciaio + floating island: Isola galleggiante + volcano: Vulcano + savanna: Savana + waterfall: Cascata + stream: Ruscello + wasteland: Terreno desolato + field: Campo + rice paddy: Risaia + wheat field: Campo di grano + flower field: Campo di fiori + flower sea: Mare di fiori + space: Spazio + starry sky: Cielo stellato + lake: Lago + river: Fiume + onsen: Sorgente termale + flowers meadows: Prati fioriti + Alps: Alpi + Dreamy forest: Foresta incantata + mountain: Montagna + on a hill: Su una collina + the top of the hill: La cima della collina + outdoors: All'aperto + + - name: Acqua + color: rgba(31, 144, 255, .4) + tags: + ocean: Oceano + dripping: Gocciolante + beach: Spiaggia + lake: Lago + waterfall: Cascata + ripples: Ondulazioni + swirl: Vortice + waves: Onde + seashell: Conchiglia + seaweed: Alga marina + + - name: Cielo + color: rgba(31, 144, 255, .4) + tags: + sky: Cielo + gradient_sky: Cielo sfumato + night_sky: Cielo notturno + starry_sky: Cielo stellato + hyper_galaxy: Ipergalassia + star_(sky): Stella (nel cielo) + star_trail: Scia di stelle + sunset: Tramonto + moon: Luna + lunar: Lunare + crescent: Luna crescente + crescent_moon: Luna crescente + full_moon: Luna piena + moonlight: Luce lunare + scarlet_moon: Luna scarlatta + universe: Universo + space: Spazio + planet: Pianeta + from_space_station: Dalla stazione spaziale + satellite: Satellite + + - name: Nuvole + color: rgba(31, 144, 255, .4) + tags: + cirrus: Cirro + Cirrocumulus: Cirrocumulus + Cirrostratus: Cirrostratus + Altocumulus: Altocumulus + Altostratus: Altostratus + stratus: Stratus + Stratocumulus: Stratocumulus + cumulus: Cumulus + Cumulonimbus: Cumulonembo + Nimbostratus: Nimbostratus + cirrus_fibratus: Cirro fibratus + cirrus_uncinus: Cirro uncinus + cirrus_spissatus: Cirro spissatus + cirrus_floccus: Cirro floccus + cirrus_castellanus: Cirro castellanus + cirrus_intortus: Cirro intortus + cirrocumulus: Cirrocumulus + cirrocumulus_stratiformis: Cirrocumulus stratiformis + cirrocumulus_floccus: Cirrocumulus floccus + cirrocumulus_castellanus: Cirrocumulus castellanus + cirrocumulus_lacunosus: Cirrocumulus lacunosus + cirrostratus: Cirrostratus + cirrostratus_fibratus: Cirrostratus fibratus + cirrostratus_nebulosus: Cirrostratus nebulosus + altocumulus: Altocumulus + altocumulus_strataformis: Altocumulus stratiformis + altocumulus_lenticularis: Altocumulus lenticularis + altocumulus_castellanus: Altocumulus castellanus + altocumulus_floccus: Altocumulus floccus + altocumulus_lacunosus: Altocumulus lacunosus + altostratus: Altostratus + altostratus_undulatus: Altostratus undulatus + altostratus_duplicates: Altostratus duplicatus + altostratus_pannus: Altostratus pannus + altostratus_translucidus: Altostratus translucidus + altostratus_opacus: Altostratus opacus + altostratus_radiatus: Altostratus radiatus + altostratus_mammatus: Altostratus mammatus + stratus_fractus: Stratus fractus + stratus_nebulosus: Stratus nebulosus + stratus_undulatus: Stratus undulatus + stratocumulus: Stratocumulus + stratocumulus_stratiformis: Stratocumulus stratiformis + stratocumulus_cumulogentis: Stratocumulus cumulogentis + stratocumulus_castellanus: Stratocumulus castellanus + stratocumulus_lenticularis: Stratocumulus lenticularis + stratocumulus_lacunosus: Stratocumulus lacunosus + cumulus_humilis: Cumulus humilis + cumulus_mediocris: Cumulus mediocris + cumulus_congestus: Cumulus congestus + cumulus_fractus: Cumulus fractus + cumulonimbus: Cumulonembo + cumulonimbus_calvus: Cumulonembo calvus + cumulonimbus_capillatus: Cumulonembo capillatus + cumulonimbus_incus: Cumulonembo incus + + - name: Atmosfera + color: rgba(31, 144, 255, .4) + tags: + new year: Capodanno + year of the rabbit: Anno del coniglio + valentine: San Valentino + lantern festival: Festival delle lanterne + summer festival: Festival estivo + tanabata: Tanabata + mid-autumn festival: Festival di metà autunno + halloween: Halloween + christmas: Natale + explosion: Esplosione + water vapor: Vapore acqueo + fireworks: Fuochi d'artificio + ceiling window: Finestra del soffitto + colourful glass: Vetro colorato + stain glass: Vetro colorato + Graffiti wall: Muro graffiti + mosaic background: Sfondo mosaico + liquid background, Sputtered water: Sfondo liquido + magic circles: Cerchi magici + fluorescent mushroom forests background: Sfondo di foreste di funghi fluorescenti + (((colorful bubble))): Bolle colorate + in the ocean: Sul mare + against backlight at dusk: Contro la luce di controluce al crepuscolo + golden hour lighting: Illuminazione dell'ora dorata + strong rim light: Luce del bordo intensa + intense shadows: Ombre intense + +- name: Scene + groups: + - name: All'aperto + color: rgba(159, 32, 240, .4) + tags: + castle: Castello + city: Città + waterpark: Parco acquatico + carousel: Giostra + ferris wheel: Ruota panoramica + aquarium: Acquario + zoo: Giardino zoologico + bowling alley: Pista da bowling + art gallery: Galleria d'arte + museum: Museo + planetarium: Planetario + swimming pool: Piscina + stadium: Stadio + temple: Tempio + bus stop: Fermata dell'autobus + train station: Stazione ferroviaria + fountain: Fontana + playground: Parco giochi + market stall: Bancarella di mercato + phone booth: Cabina telefonica + railroad tracks: Binari ferroviari + airport: Aeroporto + tunnel: Tunnel + skyscraper: Grattacielo + cityscape: Veduta della città + ruins: Rovine + greco-roman architecture: Architettura greco-romana + east asian architecture: Architettura dell'Estremo Oriente + torii: Torii + church: Chiesa + shop: Negozio + street: Strada + cyberpunk city: Città cyberpunk + in the cyberpunk city: Nella città cyberpunk + chinese style architecture: Architettura in stile cinese + gohei: Gohei + bustling city: Città affollata + laboratory: Laboratorio + coffee house: Caffetteria + gym: Palestra + library: Biblioteca + prison: Prigione + engine room: Sala macchine + handrail: Ringhiera + neon lights: Luci al neon + street lamp: Lampione + road: Strada + shanty town/slum: Baraccopoli + warehouse: Magazzino + gothic architecture: Architettura gotica + restaurant: Ristorante + treehouse: Casa sull'albero + modern, Europe: Moderno, Europa + industrial wind, Chinese architecture: Architettura industriale cinese + building ruins: Rovine di un edificio + bar: Bar + izakaya: Izakaya + cafe: Cafè + bakery: Panetteria + convenience store: Negozio di alimentari + supermarket: Supermercato + pharmacy: Farmacia + theater: Teatro + movie theater: Cinema + workshop: Officina + courtroom: Aula di tribunale + park: Parco + trapeze: Trapezio + classroom: Aula + botanical garden: Giardino botanico + amusement park: Parco divertimenti + Disney_land: Parco Disneyland + arena: Arena + wrestling ring: Ring di wrestling + auditorium: Auditorium + concert: Concerto + Japanese hotel: Hotel giapponese + jail bars: Sbarre di una prigione + in the movie theatre: Nel cinema + stage: Palco + harbor: Porto + casino: Casinò + billiard: Tavolo da biliardo + dungeon: Dungeon + grave: Tomba + graveyard: Cimitero + tombstone: Lapide + monolith: Monolito + rappelling: Rappelling + building: Edificio + architecture: Architettura + magnificent architecture: Architettura magnifica + Skyscraper: Grattacielo + east_asian_architecture: Architettura dell'Estremo Oriente + cathedral: Cattedrale + chinese style loft: Loft in stile cinese + traditional chinese room: Stanza tradizionale cinese + turret: Torretta + tower: Torre + mosque: Moschea + reservoir: Serbatoio + railroad: Ferrovia + railway: Ferrovia + bridge: Ponte + under_bridge: Sotto il ponte + remains: Rovine + rubble ruins: Rovine + + - name: Città + color: rgba(159, 32, 240, .4) + tags: + city: Città + cityscape: Veduta della città + street: Strada + downtown: Centro città + crowd: Folla + alley: Vicolo + in_main_street: In una strada principale + intersection: Incrocio + avenue: Via + lawn: Prato + road: Strada + path: Percorso + pavement: Marciapiede + road_sign: Segnale stradale + traffic_cone: Cono del traffico + lamppost: Lampione + power_lines: Linee elettriche + fence: Recinzione + railing: Ringhiera + bench: Panchina + vending_machine: Distributore automatico + + - name: Interni + color: rgba(159, 32, 240, .4) + tags: + indoor: Interno + bathroom: Bagno + toilet stall: Cabina del bagno + otaku room: Stanza otaku + cafeteria: Mensa + classroom: Aula + clubroom: Sala del club + bedroom: Camera da letto + kitchen: Cucina + dormitory: Dormitorio + dungeon: Dungeon + infirmary: Infermeria + stage: Palco + electrical room: Stanza elettrica + server room: Stanza dei server + basement: Seminterrato + art room: Stanza d'arte + bathing: Bagno + stairs: Scale + greenhouse: Serra + + - name: Pavimento + color: rgba(159, 32, 240, .4) + tags: + floor: Pavimento + tile_floor: Pavimento in piastrelle + + - name: Mobili + color: rgba(159, 32, 240, .4) + tags: + bedroom: Mobili + tatami: Tatami + bed: Letto + couch: Divano + kotatsu: Kotatsu + fireplace: Camino + window_: Finestra + sash: Anta + curtains: Tende + door: Porta + sliding_doors: Porte scorrevoli + clothes_rack: Appendiabiti + air_conditioner: Condizionatore d'aria + table: Tavolo + school_desk: Banco scolastico + chair: Sedia + armchair: Poltrona + lounge_chair: Sedia a sdraio + beach_chair: Sdraio da spiaggia + folding_chair: Sedia pieghevole + invisible_chair: Sedia invisibile + office_chair: Sedia da ufficio + wheelchair: Sedia a rotelle + + - name: Biancheria da letto + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: Lenzuolo + mattress: Materasso + futon: Futon giapponese + cushion: Cuscino + carpet: Tappeto + pillow: Cuscino + dumpling_hug_pillow: Cuscino abbraccio di un panino + pillow_hug: Cuscino abbraccio + yes-no_pillow: Cuscino Sì/No + stuffed_animal: Animale di peluche + stuffed_bunny: Coniglio di peluche + koakuma: Koakuma + + - name: Bagno + color: rgba(159, 32, 240, .4) + tags: + bathroom: Bagno + bathtub: Vasca da bagno + rubber_duck: Papera di gomma + shower_head: Doccetta + toilet: Toilette + squat_toilet: Toilette a squat + soap: Sapone + tiles: Piastrelle + +- name: Oggetti + groups: + - name: Materiale di studio + color: rgba(189, 182, 107, .4) + tags: + notebook: Quaderno + paintbrush: Pennello + pencil: Matita + book: Libro + open_book: Libro aperto + book_stack: Pila di libri + bookshelf: Scaffale per libri + school_bag: Zaino scolastico + backpack: Zaino + + - name: Dispositivi digitali + color: rgba(189, 182, 107, .4) + tags: + computer: Computer + mouse: Mouse + cellphone: Cellulare + Smartphones: Smartphone + handheld_game_console_: Console per videogiochi portatile + nintendo_3ds: Nintendo 3DS + nintendo_ds: Nintendo DS + nintendo_switch: Nintendo Switch + buttons: Pulsanti + power_lines: Cavi di alimentazione + cable: Cavo + + - name: Posate + color: rgba(189, 182, 107, .4) + tags: + pot: Pentola + teapot: Teiera + ladle: Mestolo + can: Lattina + soda_can: Lattina di bibita + cup: Tazza + plate: Piatto + tray: Vassoio + bowl: Ciotola + fork: Forchetta + chopsticks: Bacchette + spoon: Cucchiaio + drinking_glass: Bicchiere + tumbler: Bicchiere normale + beer_mug: Boccale di birra + gift_box: Scatola regalo + heart-shaped_box: Scatola a forma di cuore + candle: Candela + + - name: Strumenti musicali + color: rgba(189, 182, 107, .4) + tags: + music: Musica + guitar: Chitarra + piano: Pianoforte + cello: Violoncello + playing_instrument: Suonare uno strumento + wind_chime: Campana al vento + + - name: Altri oggetti + color: rgba(189, 182, 107, .4) + tags: + wristwatch: Orologio da polso + folding_fan: Ventaglio pieghevole + paper_fan: Ventaglio di carta + uchiwa: Uchiwa (ventaglio giapponese) + umbrella: Ombrello + transparent_umbrella: Ombrello trasparente + closed_umbrella: Ombrello chiuso + oil-paper_umbrella: Ombrello di carta oleata + Parasol: Parasole + basket: Cestino + bouquet: Mazzo di fiori + bucket: Secchio + pail: Secchio + camera: Fotocamera + gohei: Gohei (striscia di carta per scacciare gli spiriti maligni) + lantern/lamp: Lanterna + whip: Frusta + riding_crop: Frusta da equitazione + ofuda: Ofuda (tavoletta di carta sacra) + cane: Bastone + wand: Bacchetta magica + magic: Magia + trading_card: Carta da scambio + playing_card: Carte da gioco + Cassette: Custodia per cassette + chess_piece: Pezzo degli scacchi + coin: Moneta + copper: Rame + hammer: Martello + microphone: Microfono + mimikaki: Cucchiaio per pulire le orecchie + sack: Sacco + scales: Bilancia + chibi_inset: Illustrazione di Chibi + damaged: Danneggiato + diamond_(shape): Diamante (forma) + gourd: Zucca + holding_gift: Tenere un regalo + inlet: Ingresso + key: Chiave + leash: Guinzaglio + Lever: Leva + molecule: Molecola + money: Denaro + Painting_(Object): Quadro + photo_(object): Foto (oggetto) + sand: Sabbia + stubble: Pula + trophy: Trofeo + tube_top: Tubo superiore + water_bottle: Bottiglia d'acqua + lotion: Crema solare/Lozione per il corpo + lotion_bottle: Bottiglia di lozione + + - name: Armi + color: rgba(189, 182, 107, .4) + tags: + weapon: Arma + weapon_on_back: Arma sulla schiena + weapon_over_shoulder: Arma sulla spalla + huge_weapon: Arma di grandi dimensioni + planted_weapon: Arma piantata a terra + broken_weapon: Arma rotta + planted_sword: Spada piantata + sword: Spada + scabbard: Fodero + unsheathing: Sguainare + katana: Katana + saber_(weapon): Sciabola (arma) + scythe: Falce + nose_hatchet: Ascia da boscaiolo + dagger: Pugnale + scissors: Forbici + axe: Ascia + hatchet: Accetta + stake: Paletto + lance: Lancia + trident: Tridente + bow_(weapon): Arco + arrow: Freccia + claw_(weapon): Artiglio (arma) + rifle,: Fucile + gun: Pistola + handgun: Pistola + thompson_submachine_gun: Fucile mitragliatore Thompson + magazine_(weapon): Caricatore (arma) + dynamite: Dinamite + bomb: Bomba + track missiles: Missili tracciatori + complex Trajectory: Traiettoria complessa + tank: Carro armato + cannon: Cannone + military_vehicle: Veicolo militare + motorcycle: Motocicletta + ship: Nave + watercraft: Imbarcazione + car: Auto + machine: Macchina + machinery: Armamento meccanico + mechanical_arms: Braccia meccaniche + mechanization: Meccanizzazione + robot_ears: Orecchie robot + robot_joints: Articolazioni robotiche + variable_fighter: Caccia variabile (Macross) + sorcerer's_sutra_scroll: Rotolo di sutra del mago + + - name: Cibo + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: Rotolo di sushi + apple: Mela + aubergine: Melanzana + burger: Hamburger + cake: Torta + candy: Caramella + candy_apple: Mela caramellata + candy_cane: Bastoncino di zucchero + carrot: Carota + cigarette: Sigaretta + coffee: Caffè + cookie: Biscotto + cotton_candy_: Zucchero filato + cream: Panna + dango: Dango + doughnut: Ciambella + drink: Bevanda + egg: Uovo + fruit: Frutta + Gelatin: Gelatina + ice_cream: Gelato + kafuu_chino: Kafuu Chino (caffè) + makizushi: Makizushi (rotolo di sushi) + meat: Carne + noodles: Noodles + obento: Obento (scatola pranzo giapponese) + onigiri: Onigiri + pancake: Pancake + pasties: Pasticcini + peach: Pesca + ramen: Ramen + sake: Sake (liquore giapponese) + taiyaki: Taiyaki + tea: Tè + teacup: Tazza da tè + wagashi: Wagashi (dolci giapponesi) + wine: Vino + jam: Marmellata + pocky: Pocky + bottled_water: Acqua in bottiglia + sweet_potato: Patata dolce + sweets: Dolci + food: Cibo + food_in_mouth: Cibo in bocca + food_on_: Cibo sul viso + food_on_body: Cibo sul corpo + food_print: Stampa di cibo + food_stand: Stand di cibo + in_food: Nel cibo (personaggio) + chips: Patatine + potato_chips: Patatine + telstar: Pallone Telstar + sundae: Sundae + tempura: Tempura + + - name: Animali + color: rgba(189, 182, 107, .4) + tags: + reptile: Rettile + crow: Corvo + bird: Uccello + penguin: Penguin + chick: Pulcino + manjuu_(azur_lane): Manjuu (Azur Lane) + shell: Conchiglia + wriggle_nightbug: Insetto notturno ondeggiante + dragonfly: Libellula + mammal: Mammifero + wolf: Lupo + 扶桑花: Cavallo + whale: Balena + cat: Gatto + cat_teaser: Giocattolo per gatti + dog: Cane + dog_tags: Targhette per cani + fox: Volpe + bunny: Coniglio + snow_bunny: Coniglio della neve + stuffed_bunny: Coniglio di peluche + horse: Cavallo + cow: Mucca + dragon: Drago + loong: Drago cinese + eastern_dragon: Drago orientale + snake: Serpente + slime: Slime + bear: Orso + panda: Panda + teddy_bear: Orsacchiotto + tiger: Tigre + bat: Pipistrello + hamster: Criceto + mouse: Topo + squirrel: Scoiattolo + + - name: Piante + color: rgba(189, 182, 107, .4) + tags: + plant: Pianta + flower: Fiore + vase: Vaso + bouquet: Mazzo di fiori + flower_bloom: Fiori in fiore + plum_blossom: Fiore di prugna + cherry_blossoms: Fiori di ciliegio + wisteria: Glicine + hibiscus: Ibisco + hydrangea: Ortensia + rose: Rosa + spider_lily: Giglio ragno + lily: Giglio + lotus: Loto + bamboo: Bambù + entangled_plants: Piante intrecciate + orchid: Orchidea + chrysanthemum: Crisantemo + narcissu: Narciso + tree: Albero + branch: Ramo + forest: Foresta + pine_tree: Pino + palm_tree: Palma + maple_tree: Acero + bush/shrub,: Cespuglio + christmas_tree: Albero di Natale + maple_leaf: Foglia d'acero + pumpkin: Zucca + jack-o'-lantern: Zucca intagliata + spring_onion: Cipollotto + +- name: Obiettivo + groups: + - name: Obiettivo + color: rgba(99, 201, 2, .4) + tags: + panorama: Panorama + landscape: Obiettivo paesaggistico (vista lontana) + wide_shot: Obiettivo grandangolare (vista panoramica) + medium_shot: Obiettivo medio + mid_shot: Obiettivo medio + full_shot: Ritratto a figura intera + bust: Ritratto a mezzo busto + upper_body: Parte superiore del corpo + lower_body: Parte inferiore del corpo + cowboy_shot: Parte superiore del corpo + coscia superiore (obiettivo cowboy) + portrait: Ritratto (viso + spalle + occasionalmente petto) + profile: Ritratto di profilo (versione di profilo del ritratto) + + - name: Primo piano + color: rgba(99, 201, 2, .4) + tags: + close-up: Primo piano + macro_shot: Obiettivo macro + inset: Inserimento di un altro obiettivo o immagine + cross-section: Sezione trasversale + x-ray: Raggi X + solo_focus: Messa a fuoco su un singolo personaggio (adatta a scene complesse) + xx_focus: Messa a fuoco su xx + face_focus: Messa a fuoco sul viso + eyes_focus: Messa a fuoco sugli occhi + foot_focus: Messa a fuoco sui piedi + hip_focus: Messa a fuoco sui fianchi + ass_focus: Messa a fuoco sul sedere + vehicle_focus: Messa a fuoco sul veicolo + between_legs: Tra le gambe (sottolineando) + between_breasts: Tra i seni (evidenziando) + between_fingers: Tra le dita (evidenziando) + peeking: Spiare + peeking_out: Spiare (atteggiamento) + peeping: Spiare (sottolineando il punto di vista) + midriff_peek: Spiata all'ombelico + armpit_peek: Spiata all'ascella + pussy_peek: Spiata alla vagina + panty_peek: Spiata alle mutandine + pantyshot: Pantyshot + caught: Sorpreso sul fatto + + - name: Altri schemi + color: rgba(99, 201, 2, .4) + tags: + aerial: Aereo + turn_one's_back: Girarsi + upskirt: Vista sotto la gonna + phone_screen: Schermo del telefono + multiple_views: Scomposizione in più angolazioni + mirror selfie: Selfie allo specchio + three-quarter view: Vista a tre quarti + + - name: Angoli di ripresa + color: rgba(99, 201, 2, .4) + tags: + front view: Vista frontale + from_side: Vista laterale + from_above: Vista dall'alto ↘ + from_below: Vista dal basso ↗ + from_outside: Da fuori verso dentro + from_back: Vista da dietro + from behind: Vista da dietro + dynamic_angle: Angolo dinamico + cinematic_angle: Angolo cinematografico + dutch angle: Angolo olandese + foreshortening: Prospettiva + fisheye: Prospettiva grandangolare + + - name: Effetti + color: rgba(99, 201, 2, .4) + tags: + depth of field: Profondità di campo (armonia tra soggetto e sfondo) + lens_flare: Abbaglio dell'obiettivo + motion_blur: Sfocatura del movimento + motion_lines: Linee di movimento + speed_lines: Linee di velocità + bokeh: Bokeh + chromatic_aberration: Aberrazione cromatica + overexposure: Sovraesposizione + contour_deepening: Intensificazione dei contorni + + - name: Azioni del protagonista + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: Guardare lo spettatore + eye-contact: Contatto visivo + eyeball: Fissare con gli occhi + stare: Fissare + looking_back: Sguardo all'indietro + gradient: Inclinazione del personaggio + looking_down: Sguardo del personaggio verso il basso ↘ + looking_up: Sguardo del personaggio verso l'alto ↗ + facing_away: Rivolto altrove + looking_to_the_side: Guardare di lato + looking_away: Guardare altrove + looking_ahead: Guardare avanti + looking_afar: Guardare lontano + looking_outside: Guardare fuori + head_tilt: Inclinare la testa + head_down: Abbassare la testa + sideways_glance: Sguardo laterale veloce + upshirt: Sguardo dal basso della camicia + upshorts: Sguardo dal basso della gonna + looking_at_another: Guardare un altro + looking_at_phone: Guardare il telefono + looking_at_animal: Guardare un animale + looking_at_mirror: Guardarsi allo specchio + looking_at_hand: Guardare la mano + looking_at_hands: Guardare le mani + looking_at_food: Guardare il cibo + looking_at_screen: Guardare lo schermo + +- name: Hanfu + groups: + - name: "Stile Tang:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, abiti in stile Tang,: Stile Tang + + - name: Shan superiore + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: Shan superiore arancione + red upper shan: Shan superiore rosso + green upper shan: Shan superiore verde + blue upper shan: Shan superiore blu + pink upper shan: Shan superiore rosa + yellow upper shan: Shan superiore giallo + white upper shan: Shan superiore bianco + light blue upper shan: Shan superiore azzurro + light green upper shan: Shan superiore verde chiaro + light red upper shan: Shan superiore rosso chiaro + cyan blue upper shan: Shan superiore blu ciano + light purple upper shan: Shan superiore viola chiaro + black with blue upper shan: Shan superiore nero con blu + white with orange upper shan: Shan superiore bianco con arancione + pink with black upper shan: Shan superiore rosa con nero + + - name: Shan superiore lungo + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: Shan superiore lungo arancione + red long upper shan: Shan superiore lungo rosso + green long upper shan: Shan superiore lungo verde + blue long upper shan: Shan superiore lungo blu + pink long upper shan: Shan superiore lungo rosa + yellow long upper shan: Shan superiore lungo giallo + white long upper shan: Shan superiore lungo bianco + light blue long upper shan: Shan superiore lungo azzurro + light green long upper shan: Shan superiore lungo verde chiaro + light red long upper shan: Shan superiore lungo rosso chiaro + cyan blue long upper shan: Shan superiore lungo blu ciano + light purple long upper shan: Shan superiore lungo viola chiaro + black with blue long upper shan: Shan superiore lungo nero con blu + white with orange long upper shan: Shan superiore lungo bianco con arancione + pink with black long upper shan: Shan superiore lungo rosa con nero + + - name: Gonna aperta al petto + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: Gonna aperta al petto bianca + red chest po skirt: Gonna aperta al petto rossa + green chest po skirt: Gonna aperta al petto verde + blue chest po skirt: Gonna aperta al petto blu + pink chest po skirt: Gonna aperta al petto rosa + purple chest po skirt: Gonna aperta al petto viola + multicolour chest po skirt: Gonna aperta al petto multicolore + purple with white chest po skirt: Gonna aperta al petto viola con bianco + white with yellow chest po skirt: Gonna aperta al petto bianca con giallo + blue with white chest po skirt: Gonna aperta al petto blu con bianco + orange with white chest po skirt: Gonna aperta al petto arancione con bianco + green with white chest po skirt: Gonna aperta al petto verde con bianco + light orange with white chest po skirt: Gonna aperta al petto arancione chiaro con bianco + pink with white chest po skirt: Gonna aperta al petto rosa con bianco + white with pink chest po skirt: Gonna aperta al petto bianca con rosa + + - name: Gonna a pieghe al petto + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: Gonna a pieghe al petto bianca + red chest pleated skirt: Gonna a pieghe al petto rossa + green chest pleated skirt: Gonna a pieghe al petto verde + blue chest pleated skirt: Gonna a pieghe al petto blu + pink chest pleated skirt: Gonna a pieghe al petto rosa + purple chest pleated skirt: Gonna a pieghe al petto viola + multicolour chest pleated skirt: Gonna a pieghe al petto multicolore + purple with white chest pleated skirt: Gonna a pieghe al petto viola con bianco + white with yellow chest pleated skirt: Gonna a pieghe al petto bianca con giallo + blue with white chest pleated skirt: Gonna a pieghe al petto blu con bianco + orange with white chest pleated skirt: Gonna a pieghe al petto arancione con bianco + green with white chest pleated skirt: Gonna a pieghe al petto verde con bianco + light orange with white chest pleated skirt: Gonna a pieghe al petto arancione chiaro con bianco + pink with white chest pleated skirt: Gonna a pieghe al petto rosa con bianco + white with pink chest pleated skirt: Gonna a pieghe al petto bianca con rosa + + - name: Cintura + color: rgba(178, 33, 34, .4) + tags: + green waistband: Cintura verde + yellow waistband: Cintura gialla + red waistband: Cintura rossa + pink waistband: Cintura rosa + orange waistband: Cintura arancione + light blue waistband: Cintura azzurra + light green waistband: Cintura verde chiaro + green with yellow waistband: Cintura verde con giallo + purple with white waistband: Cintura viola con bianco + red with white waistband: Cintura rossa con bianco + red with black waistband: Cintura rossa con nero + yellow with white waistband: Cintura gialla con bianco + + - name: Pibo + color: rgba(178, 33, 34, .4) + tags: + white pibo: Pibo bianco + orange pibo: Pibo arancione + black pibo: Pibo nero + pink pibo: Pibo rosa + red pibo: Pibo rosso + purple pibo: Pibo viola + light green pibo: Pibo verde chiaro + white with yellow pibo: Pibo bianco con giallo + + - type: wrap + + - name: "Stile Song:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, abiti in stile Song,: Stile Song + + - name: Camicia corta + color: rgba(178, 33, 34, .4) + tags: + purple short shan: Shan corto viola + red short shan: Shan corto rosso + green short shan: Shan corto verde + blue short shan: Shan corto blu + pink short shan: Shan corto rosa + yellow short shan: Shan corto giallo + white short shan: Shan corto bianco + light blue short shan: Shan corto azzurro + light green short shan: Shan corto verde chiaro + light red short shan: Shan corto rosso chiaro + cyan blue short shan: Shan corto blu ciano + light purple short shan: Shan corto viola chiaro + black with blue short shan: Shan corto nero con blu + white with yellow short shan: Shan corto bianco con giallo + light yellow with green with white short shan: Shan corto giallo chiaro con verde e bianco + + - name: Camicia lunga + color: rgba(178, 33, 34, .4) + tags: + purple long shan: Shan lungo viola + red long shan: Shan lungo rosso + green long shan: Shan lungo verde + blue long shan: Shan lungo blu + pink long shan: Shan lungo rosa + yellow long shan: Shan lungo giallo + white long shan: Shan lungo bianco + light blue long shan: Shan lungo azzurro + light green long shan: Shan lungo verde chiaro + light red long shan: Shan lungo rosso chiaro + cyan blue long shan: Shan lungo blu ciano + light purple long shan: Shan lungo viola chiaro + black with blue long shan: Shan lungo nero con blu + white with yellow long shan: Shan lungo bianco con giallo + light yellow with green with white long shan: Shan lungo giallo chiaro con verde e bianco + + - name: Gonna a pieghe + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: Gonna a pieghe bianca + red pleated skirt: Gonna a pieghe rossa + green pleated skirt: Gonna a pieghe verde + blue pleated skirt: Gonna a pieghe blu + pink pleated skirt: Gonna a pieghe rosa + light blue pleated skirt: Gonna a pieghe azzurra + white golden pleated skirt: Gonna a pieghe bianco oro + gradient green pleated skirt: Gonna a pieghe verde sfumato + translucent white pleated skirt: Gonna a pieghe bianco traslucido + red cyan gradient pleated skirt: Gonna a pieghe rosso ciano sfumato + red green gradient pleated skirt: Gonna a pieghe rosso verde sfumato + green with white pleated skirt: Gonna a pieghe verde con bianco + light yellow with green with white pleated skirt: Gonna a pieghe giallo chiaro con verde e bianco + + - name: Songmo + color: rgba(178, 33, 34, .4) + tags: + orange songmo: Songmo arancione + red songmo: Songmo rosso + green songmo: Songmo verde + blue songmo: Songmo blu + pink songmo: Songmo rosa + yellow songmo: Songmo giallo + white songmo: Songmo bianco + purple songmo: Songmo viola + green floral songmo: Songmo verde floreale + purple floral songmo: Songmo viola floreale + cyan floral songmo: Songmo ciano floreale + + - type: wrap + + - name: "Stile Ming:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, abiti in stile Ming,: Stile Ming + + - name: Giacca + color: rgba(178, 33, 34, .4) + tags: + short coat: Giacca corta + long coat: Giacca lunga + + - name: Gonna + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: Gonna mamian + + - name: Colletto + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Colletto sovrapposto + round collar: Colletto rotondo + standing collar: Colletto a stelo + square collar: Colletto quadrato + + - name: Decorazioni + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Spalline nuvola + embroidery: Ricamo + woven gold: Tessuto dorato + makeup flower: Fiore truccato + bufu: Bufu diff --git a/group_tags/ja_JP.yaml b/group_tags/ja_JP.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f259d204e08d4bc3eea03fc06f4d3b0a8c7124a2 --- /dev/null +++ b/group_tags/ja_JP.yaml @@ -0,0 +1,4322 @@ +# 👍ヒントワードの統合元:「路过银河(zhihu)」、「不明な作者(Google Drive)」、「インターネット」など、これらの作者に無私な貢献を感謝します! +# +# ⚠️このファイルの内容を変更しないでください。このファイルの作者は定期的に更新する可能性がありますので、変更すると更新時に競合が発生する可能性があります。 +# ⚠️カスタムキーワードグループを作成する場合は、このファイルをコピーして「custom.yaml」という名前に変更し、そのファイルで変更を行ってください。 +# ⚠️プラグインは、custom.yamlファイルを優先して読み込みます。custom.yamlファイルが存在しない場合は、このファイルを読み込みます。 +# +# ⚠️現在のファイルの前に自分のコンテンツを追加したい場合は、prepend.yamlファイルを作成します。 +# ⚠️現在のファイルの後に自分のコンテンツを追加したい場合は、append.yamlファイルを作成します。 +# ⚠️custom.yaml: 現在のファイルを上書きします +# ⚠️prepend.yaml: 現在のファイルの前に追加します +# ⚠️append.yaml: 現在のファイルの後に追加します +# +# ⚠️専門のテキストエディタ(例:Visual Studio Code)を使用して、このファイルを編集することをお勧めします。これにより、エンコーディングやフォーマットエラーが回避されます。 +# ⚠️Windowsのメモ帳は使用しないでください。 +# ⚠️編集後は、https://www.yamllint.com/ にアクセスしてコンテンツのフォーマットが正しいかどうかを確認してください。 + +# コンテンツのフォーマット: +# - name: 一次分類名 +# groups: 二次分類リスト +# - name: 二次分類名 +# color: キーワードのデフォルトテキスト色(空欄でも可)。CSSカラーコードを使用します。例:#ff0000、red、rgb(255,0,0)、rgba(255,0,0,1)、hsl(0,100%,50%)、hsla(0,100%,50%,1) +# tags: キーワードリスト +# - 英語のキーワード: ローカライズされた翻訳 +# - 英語のキーワード: ローカライズされた翻訳 +# ... + +# このコンテンツのローカライズ翻訳は、機械翻訳によるものであり、正確でない場合があります。修正が必要な場合は、GitHubにPRを提出して修正してください。 +# 分類の誤りやキーワードの誤り、キーワードの翻訳の誤りなどの問題がある場合は、GitHubにIssueを提出してフィードバックしてください。 + +- name: 人物 + groups: + - name: キャラクター + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1人の女の子 + 1boy: 1人の男の子 + 2girls: 2人の女の子 + 2boys: 2人の男の子 + 3girls: 3人の女の子 + 3boys: 3人の男の子 + girl: 女の子 + boy: 男の子 + solo: 一人 + multiple_girls: 複数の女の子 + little_girl: 小さな女の子 + little_boy: 小さな男の子 + shota: ショタ + loli: ロリ + kawaii: 可愛い + mesugaki: メスガキ + adorable_girl: 可愛い女の子 + bishoujo: 美少女 + gyaru: ギャル + sisters: 姉妹 + ojousama: お嬢様 + female: 女性 + mature_female: 成熟した女性 + mature: 成熟した + female_pervert: 痴女 + male: 男性 + milf: 熟女 + otoko_no_ko: 男の娘 + crossdressing: 女装 + + - name: 身分 + color: rgba(255, 123, 2, .4) + tags: + lifeguard: ライフセーバー + boxer: ボクサー + scientist: 科学者 + athletes: アスリート + office lady: オフィスレディ + monk: 修道士 + crobat: 曲芸師 + nun: 修道女 + nurse: 看護師 + stewardess: スチュワーデス + student: 学生 + waitress: ウェイトレス + teacher: 教師 + racer: レーサー + police: 警察官 + soldier: 兵士 + cheerleader: チアリーダー + actor: 俳優 + actress: 女優 + spy: スパイ + agent: エージェント + assassin: 暗殺者 + poet: 詩人 + samurai: 侍 + dancing girl: ダンスガール + motorcyclist: モーターサイクリスト + hacker: ハッカー + magician: 魔術師 + detective: 探偵 + doll: 人形 + maid: メイド + pilot: パイロット + diver: ダイバー + bar censor: バーセンサー + missionary: 宣教師 + firefighter: 消防士 + goalkeeper: ゴールキーパー + chef: シェフ + astronaut: 宇宙飛行士 + cashier: レジ係 + mailman: 郵便配達員 + barista: バリスタ + the hermit: 隠者 + makihitsuji: 牧羊人 + office_lady: オフィスレディ + race_queen: レースクイーン + queen: 女王 + doctor: 医師 + knight: 騎士 + housemaid: メイド + dancer: ダンサー + ballerina: バレリーナ + gym_leader: ジムリーダー + trap: 男の娘 + female: 女性 + harem: ハーレム + idol: アイドル + male: 男性 + priest: 司祭 + cleric: 聖職者(キリスト教) + wa_maid: 和風メイド + yaoi: ヤオイ + yuri: 百合 + albino: アルビノ患者 + amputee: 切断者 + + - name: 二次元キャラクター + color: rgba(255, 123, 2, .4) + tags: + pokemon: ポケモン + teddy bear: テディベア + mario: マリオ + pikachu: ピカチュウ + neon genesis evangelion: 新世紀エヴァンゲリオン + hatsune miku: 初音ミク + harry potter: ハリー・ポッター + doraemon: ドラえもん + saint seiya: 聖闘士星矢 + gojou satoru: 五条悟 + avengers: アベンジャーズ + mazinger: マジンガー + captain america: キャプテン・アメリカ + crayon shin-chan: クレヨンしんちゃん + slam dunk: スラムダンク + sun wukong: 孫悟空 + witch: 魔女 + miko: 巫女 + ninja: 忍者 + vampire: 吸血鬼 + knight: 騎士 + magical_girl: 魔法少女 + orc: オーク + druid: ドルイド + elf: エルフ + fairy: 妖精 + furry: ファーリー + mermaid: 人魚 + kamen rider: 仮面ライダー + magister: 魔導師 + spider-man: スパイダーマン + santa alter: サンタオルタ + monster_girl: モンスター娘 + cat_girl: 猫娘 + dog_girl: 犬娘 + fox_girl: 狐娘 + kitsune: キツネ + kyuubi: 九尾狐 + raccoon_girl: タヌキ娘 + wolf_girl: 狼女の子 + bunny_girl: バニーガール + horse_girl: 馬娘 + cow_girl: 牛娘 + dragon_girl: ドラゴン娘 + centaur: ケンタウロス + slime_musume: スライム娘 + spider_girl: スパイダーガール + dominatrix: 女王(SM) + sailor_senshi: セーラー戦士 + mecha: メカ + mecha_musume: メカ娘 + humanoid_robot_: 人型ロボット + cyborg: サイボーグ + angel: 天使 + devil: 悪魔 + dark_elf: ダークエルフ + imp: インプ + succubus: サキュバス + giantess: 巨人女性 + minigirl: ミニガール + monster: モンスター + multiple girls: 複数の少女 + no humans: 人間以外 + + - name: 年齢 + color: rgba(255, 123, 2, .4) + tags: + toddler: 幼児 + kindergartener: 幼稚園児 + child: 子供 + underage: 未成年 + teenager: 10代 + teen: 10代 + early teen: 10代前半(11-15) + adult: 大人 + elder: 年配者 + old: 高齢者 + loli: ロリ + shota: ショタ + + - name: 皮膚 + color: rgba(255, 123, 2, .4) + tags: + white_skin: 白い肌 + pale_skin: 蒼白な肌 + fair_skin: 良い肌 + brown_skin: 茶色の肌 + deep_skin: 濃い肌 + dark_skin: 黒い肌 + black_skin: 黒い肌 + shiny_skin: 輝く肌 + white_marble_glowing_skin: 白い大理石の輝く肌 + tattoo: 入れ墨 + tan: 日焼け + tanlines: 日焼け痕 + oil: オイリー + + - name: 体型 + color: rgba(255, 123, 2, .4) + tags: + skinny: スリム + plump: ふっくら + curvy: 曲線美のある体型 + gyaru: ギャル + pregnant: 妊娠中 + fat: 太っている + thin: 細い + slender: すらりとした + glamor: 魅力的な + tall: 背が高い + petite: 小柄 + chibi: ちび + muscular: 筋肉質 + + - name: 顔の形 + color: rgba(255, 123, 2, .4) + tags: + slender face: 細い顔 + round face: 丸顔 + oval face: 卵型の顔 + baby face: 赤ちゃんの顔 + inverted triangle face: 逆三角形の顔 + heart shaped face: ハート型の顔 + diamond face: ダイヤモンド型の顔 + square face: 四角い顔 + long face: 長い顔 + triangular face: 三角形の顔 + + - name: 髪の毛 + color: rgba(255, 123, 2, .4) + tags: + white hair: 白髪 + blonde hair: 金髪 + silver hair: 銀髪 + grey hair: 灰色の髪 + purple hair: 紫髪 + red hair: 赤髪 + yellow hair: 黄色の髪 + green hair: 緑髪 + blue hair: 青髪 + black hair: 黒髪 + brown hair: 茶髪 + straight_hair: ストレートヘア + short hair: ショートヘア + curly hair: カールヘア + long hair: ロングヘア + pony-tail: ポニーテール + bunches: おさげ + streaked hair: ストリーク入りの髪 + grey gradient hair: グレーグラデーションの髪 + light brown hair: 明るい茶髪 + two-tone hair: 2色の髪 + multicolored hair: 多色の髪 + high ponytail: ハイポニーテール + twintails: ツインテール + braided ponytail: 結び目のあるポニーテール + ponytail: ポニーテール + short ponytail: ショートポニーテール + twin braids: ツインブレード + medium hair: ミディアムヘア + very long hair: 非常に長い髪 + braided bangs: 編み込みバング + swept bangs: サイドバング + hair between eyes: 目の間の髪 + bob cut: ボブカット + hime cut: 姫カット + crossed bangs: クロスバング + bangs: バング + blunt bangs: ブラントバング + air bangs: エアバング + hair wings: 髪の翼 + long bangs: 長い前髪 + side_blunt_bangs: サイドブラントバング + centre parting bangs: センターパーティングバング + asymmetric bangs: アシンメトリーバング + disheveled hair: 乱れた髪 + wavy hair: ウェーブヘア + hair in takes: 髪を取る + hair pink flowers: 髪のピンクの花 + ahoge: アホ毛 + antenna hair: アンテナヘア + Side ponytail: サイドポニーテール + forehead: 額 + drill hair: ドリルヘア + hair bun: 髪の束 + double bun: ダブルバン + messy hair: 乱れた髪型 + hair_flaps: 髪のフラップ + + - name: 顔 + color: rgba(255, 123, 2, .4) + tags: + makeup: メイク + fundoshi: フンドシ + eyeshadow: アイシャドウ + lipstick: 口紅 + mascara: マスカラ + long_eyelashes: 長いまつげ + red_lips_: 赤い唇 + facepaint: 顔のペイント + lipgloss: リップグロス + colored_eyelashes: カラフルなまつげ + blush: ブラッシュ + light_blush: 淡いほお紅 + anime_style_blush: アニメ風のほお紅 + nose_blush: 鼻のほお紅 + nosebleed: 鼻血 + bruise_on_face: 顔にあざ + facial_mark: 顔のマーク + forehead_mark: 額のマーク + anger_vein: 怒りの静脈 + mole: ほくろ + mole_under_eye: 目の下のほくろ + freckles: そばかす + food_on_face: 顔に食べ物 + rice_on_face: 顔にご飯 + cream_on_face: 顔にクリーム + mustache: 口ひげ + goatee: ゴートひげ + whisker_markings: ひげのマーキング + scar: 傷跡 + scar_across_eye: 目の上の傷跡 + smoking_pipe: たばこパイプ + tattoo: 入れ墨 + + - name: 耳 + color: rgba(255, 123, 2, .4) + tags: + elf ears: エルフの耳 + fake animal ears: 動物の耳(フェイク) + cat ears: 猫の耳 + dog ears: 犬の耳 + fox ears: 狐の耳 + bunny ears: ウサギの耳 + bear ears: クマの耳 + wolf ears: オオカミの耳 + horse ears: 馬の耳 + cow ears: 牛の耳 + mouse ears: ネズミの耳 + pig ears: 豚の耳 + sheep ears: 羊の耳 + deer ears: 鹿の耳 + goat ears: ヤギの耳 + antelope ears: アンテロープの耳 + rhino ears: サイの耳 + elephant ears: ゾウの耳 + bat ears: コウモリの耳 + dragon ears: ドラゴンの耳 + demon ears: 悪魔の耳 + angel ears: 天使の耳 + alien ears: 宇宙人の耳 + ear_blush: 耳の紅潮 + ear_ornament: 耳飾り + ear_piercing: 耳ピアス + animal_ears: 動物の耳 + ears_down: 耳を下げる + fake_animal_ears: フェイクの動物の耳 + floppy_ears: 垂れた耳 + animal_ear_fluff: 動物の耳の毛 + fox_ears: 狐の耳 + cat_ears: 猫の耳 + lion_ears: ライオンの耳 + jaguar_ears: ジャガーの耳 + tiger_ears: 虎の耳 + dog_ears: 犬の耳 + coyote_ears: コヨーテの耳 + bunny_ears: ウサギの耳 + horse_ears: 馬の耳 + pointy_ears: 尖った耳 + long_pointy_ears: 長い尖った耳 + mouse_ears: ネズミの耳 + raccoon_ears: アライグマの耳 + squirrel_ears: リスの耳 + bear_ears: クマの耳 + panda_ears: パンダの耳 + bat_ears: コウモリの耳 + robot_ears: ロボットの耳 + extra_ears: 追加の耳 + ears_through_headwear: 帽子やヘッドウェアから出ている耳 + alpaca_ears: アルパカの耳 + horns: 角 + fake_horns: フェイクの角 + dragon_horns: ドラゴンの角 + oni_horns: 鬼の角 + antlers: 角 + curled_horns: 曲がった角 + goat_horns: ヤギの角 + hair_on_horn: 角の上の髪 + + - name: 眉毛 + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: 濃い眉毛 + cocked eyebrow: 眉を上げる + short eyebrows: 短い眉毛 + v-shaped eyebrows: V字型の眉毛 + + - name: 目 + color: rgba(255, 123, 2, .4) + tags: + blue eyes: 青い目 + red eyes: 赤い目 + brown eyes: 茶色の目 + green eyes: 緑の目 + purple eyes: 紫の目 + yellow eyes: 黄色い目 + pink eyes: ピンクの目 + black eyes: 黒い目 + aqua eyes: アクアの目 + orange eyes: オレンジの目 + grey eyes: 灰色の目 + multicolored eyes: 多色の目 + white eyes: 白い目 + gradient eyes: グラデーションの目 + closed eyes: 閉じた目 + half-closed eyes: 半開きの目 + crying with eyes open: 目を開けて泣く + narrowed eyes: 細めた目 + hidden eyes: 隠れた目 + heart-shaped eyes: ハート型の目 + button eyes: ボタンの目 + cephalopod eyes: 軟体動物の目 + eyes visible through hair: 髪の中から見える目 + glowing eyes: 輝く目 + empty eyes: 空っぽの目 + rolling eyes: 回転する目 + cross eyed: 斜視 + blank eyes: 空白の目 + no eyes: 目がない + sparkling eyes: 輝く目 + extra eyes: 追加の目 + crazy eyes: 狂気のある目 + solid circle eyes: 完全な丸い目 + solid oval eyes: 完全な楕円形の目 + uneven eyes: 均一でない目 + blood from eyes: 目から血液 + + - name: 瞳孔 + color: rgba(255, 123, 2, .4) + tags: + pupils: 瞳孔 + bright_pupils: 明るい瞳孔 + heterochromia: 異色瞳 + slit_pupils: 細長い瞳孔 + snake_pupils: 蛇の瞳孔 + symbol-shaped_pupils: シンボル型の瞳孔 + heart-shaped_pupils: ハート型の瞳孔 + diamond-shaped_pupils: ダイヤモンド型の瞳孔 + star-shaped_pupils: 星型の瞳孔 + dilated_pupils: 拡張した瞳孔 + no_pupils: 瞳孔がない + ringed_eyes: 瞳孔の輪郭 + constricted_pupils: 収縮した瞳孔 + star_in_eye: 目の中の星 + x-shaped_pupils: X字型の瞳孔 + horizontal_pupils: 横長の瞳孔 + dashed_eyes: 点線の目 + butterfly-shaped_pupils: 蝶の瞳孔 + rectangular_pupils: 長方形の瞳孔 + square_pupils: 四角い瞳孔 + dot_pupils: 点状の瞳孔 + extra_pupils: 追加の瞳孔 + mismatched_pupils: 不揃いな瞳孔 + "+_+": 十字の瞳孔 + cross-shaped_pupils: 十字型の瞳孔 + purple_pupils: 紫色の瞳孔 + orange_pupils: オレンジの瞳孔 + blue_pupils: 青い瞳孔 + symbol_in_eye: 目の中のシンボル + + - name: 鼻 + color: rgba(255, 123, 2, .4) + tags: + pointed nose: 尖った鼻 + small nose: 小さな鼻 + big nose: 大きな鼻 + no_nose: 鼻がない + dot_nose: 点状の鼻 + nose_bubble: 鼻の泡 + smelling: 匂いを嗅ぐ + nose: 鼻 + nosebleed: 鼻血 + snot: 鼻水 + snout: 鼻先 + + - name: 口 + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: 栗の口 + thick lips: 厚い唇 + puffy lips: ふっくらとした唇 + lipstick: リップスティック + heart-shaped mouth: ハート型の口 + pout: ふくれっ面 + open mouth: 口を開ける + closed mouth: 口を閉じる + shark mouth: サメの口 + parted lips: 口を開ける + mole under mouth: 口の下のほくろ + open_mouth: 口を開ける + gasping: 息を切らす(口を大きく開ける) + Slightly_open_mouth: 少しだけ口を開ける + wavy_mouth: 波打つ口 + close_mouth: 口を閉じる + dot_mouth: ドットの口 + no_mouth: 口がない + gag: ギャグ + gnaw: かじる + :3: 猫の口 + :o: 口を開ける + :>: V字の口 + parted_lips: 口を開ける + bit_gag: 口を噛む + chestnut_mouth: 栗の口 + cleave_gag: 口をふさぐ + closed_mouth: 口を閉じる + covered_mouth: 口を覆う + extra_mouth: 追加の口 + hair_in_mouth: 口に髪が入っている + hair_tie_in_mouth: 口に髪の結び目を持っている + homu: ほむぺ + lips: 唇 + mouth: 口 + mouth_hold: 口で保持する + oral: 口で + pacifier: おしゃぶり + Pouted lips: ふくれっ面 + sideways_mouth: 横向きの口 + spoon_in_mouth: 口にスプーンを持っている + triangle_mouth: 三角の口 + saliva: 唾液 + drooling: よだれを垂らす + mouth_drool: 口の端に唾液の滴状の欠け + + - name: 歯 + color: rgba(255, 123, 2, .4) + tags: + teeth: 歯 + upper_teeth: 上歯 + fang: 牙 + skin_fang: 肌色の牙 + round_teeth: 丸い歯 + sharp_teeth: 鋭い歯 + clenched_teeth: 歯を食いしばる + tongue: 舌 + buck_teeth: 兎歯 + fang_out: 牙を出す + fangs: 牙 + spiked_club: トゲ付きの棍棒 + tooth: 歯 + toothbrush: 歯ブラシ + tusks: 象牙 + shark_mouth: 鮫の歯 + + - name: 舌 + color: rgba(255, 123, 2, .4) + tags: + :q: 舌を上唇に置く + :p: 舌を下唇に置く + ;p: 眨眼と舌を伸ばす + french_kiss: フレンチキス + long_tongue: 長い舌 + oral_invitation: 射精を迎えるために舌を出す + tongue: 舌 + tongue_out: 舌を出す + uvula: 扁桃腺 + + - name: 爪 + color: rgba(255, 123, 2, .4) + tags: + fingernails: 爪 + toenails: 足の爪 + nail_polish: ネイルポリッシュ + toenail_polish: 足のネイルポリッシュ + black_nails: 黒い爪 + red_nails: 赤い爪 + pink_nails: ピンクの爪 + long_fingernails: 長い爪 + nail: 爪 + multicolored_nails: 多色の爪 + nail_art: ネイルアート + brown_vest: 茶色のベスト + + - name: 肩 + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: 裸の肩 + collarbonea: 鎖骨 + armpits: 脇の下 + armpit_crease: 脇の下のしわ + + - name: 胸部 + color: rgba(255, 123, 2, .4) + tags: + chest: 胸部 + flat chest: 平らな胸(A) + small_breasts: 小さい胸(B) + medium breasts: 中くらいの胸(C) + big breasts: 大きい胸(D) + huge breasts: 巨大な胸(E) + gigantic breasts: 超巨大な胸(F) + between breasts: 乳房の間 + breasts apart: 胸を分ける + hanging breasts: 下垂した胸 + bouncing breasts: 弾む胸 + cleavage: 谷間 + areola: 乳輪 + nipples: 乳首 + pectorals: 大胸筋 + large_pectorals: 大きな胸筋 + unbuttoned clothes: 前を開けた服 + + - name: 腰 + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: 細い腰 + slender_waist: 細身の腰 + + - name: 腹部 + color: rgba(255, 123, 2, .4) + tags: + midriff: 腹部 + belly: お腹 + absolute_territory: 腹筋 + inflation: 膨らんだ腹部 + navel: へそ + groin: 腹股沟 + pregnant: 妊娠 + + - name: 翼 + color: rgba(255, 123, 2, .4) + tags: + wings: 翼 + bat_wings: バットウィング + butterfly_wings: バタフライウィング + black_wings: 黒い翼 + demon_wings: 悪魔の翼 + asymmetrical_wings: 非対称の翼 + detached_wings: 本体から離れた翼 + fairy_wings: 妖精の翼 + fake_wings: 偽の翼 + fiery_wings: 燃えるような翼 + insect_wings: 昆虫の翼 + large_wings: 大きな翼 + low_wings: 腰の位置にある翼 + mini_wings: ミニ翼 + multicolored_wings: 多色の翼 + multiple_wings: 複数の翼 + no_wings: 翼がない + winged_helmet: 翼のついたヘルメット + +- name: 衣服や装飾品 + groups: + - name: 正装 + color: rgba(230, 84, 128, .4) + tags: + suit: スーツ + tuxedo: タキシード + formal_dress: フォーマルドレス + evening_gown: イブニングガウン + canonicals: カノニカルス(夜会服) + cocktail_dress: カクテルドレス + gown: ガウン + japanese_clothes: 着物 + kimono: 着物 + sleeveless_kimono: 袖なし着物 + short_kimono: 短い着物 + print_kimono: プリント着物 + furisode: 振袖(着物の一部) + obi: 帯(着物用) + sash: サッシュ + cheongsam: チャイナドレス + china_dress: チャイナドレス + print_cheongsam: プリントチャイナドレス + pelvic_curtain: ペリネウムカーテン(チャイナドレスの前掛け) + wedding_dress: ウェディングドレス + uchikake: 白無垢(和風の結婚衣装) + school_uniform: 学生服 + sailor: セーラー服 + serafuku: セーラー服 + summer_uniform: 夏季制服 + kindergarten_uniform: 幼稚園制服 + police_uniform: 警察制服 + naval_uniform: 海軍制服 + military_uniform: 陸軍制服 + ss_uniform/nazi_uniform: SS制服/ナチス制服 + maid: メイド服 + stile_uniform: 女侍従の制服 + miko: 巫女服 + overalls: オーバーオール + business_suit: ビジネススーツ + nurse: ナース服 + chef_uniform: シェフの制服 + labcoat: 白衣 + cheerleader: チアリーダー服 + band_uniform: バンドの制服 + space_suit: スペーススーツ + leotard: レオタード + domineering: 修道女服 + + - name: スタイル + color: rgba(230, 84, 128, .4) + tags: + china_dress: 中国服 + chinese_style: 中国風 + traditional_clothes: 伝統衣装|民族衣装 + japanese_clothes: 和風衣装 + hanten_(clothes): 半纏(和風) + hanbok: 韓服 + korean_clothes: 朝鮮服 + western: 西部スタイル + german_clothes: ドイツ服 + gothic: ゴシックスタイル + lolita: ロリータスタイル + gothic_lolita: ゴシックロリータスタイル + byzantine_fashion: ビザンチンスタイル + Tropical: 熱帯特徴の + indian_style: インド風 + Ao_Dai: ベトナム校服(アオザイ) + ainu_clothes: アイヌ人の衣装 + arabian_clothes: アラビア風衣装 + egyptian_clothes: エジプト風衣装 + costume: コスチューム + animal_costume: 動物系コスチューム(ファーコート) + bunny_costume: バニーガール衣装 + adapted_costume: オリジナルコスチューム改変 + cat_costume: 猫系コスチューム + dog_costume: 犬系コスチューム + bear_costume: クマコスチューム + embellished_costume: 装飾されたコスチューム + santa_costume: サンタ衣装 + halloween_costume: ハロウィン衣装 + kourindou_tengu_costume: 香霖堂天狗衣装 + alternate_costume: オリジナルと異なる服装 + costume_switch: お着替えプレイ + meme_attire: ミーム衣装 + + - name: カジュアルウェア + color: rgba(230, 84, 128, .4) + tags: + casual: カジュアル + loungewear: ルームウェア + hoodie: パーカー + homewear: ホームウェア + pajamas: パジャマ + nightgown: ナイトガウン + sleepwear: 寝間着 + babydoll: ベビードール + print_pajamas: プリントパジャマ + polka_dot_pajamas: 水玉パジャマ + yukata: 浴衣 + chinese_clothes: 唐装 + hanfu: 漢服 + Taoist robe: 道袍 + robe: ローブ + robe_of_blending: ブレンディングローブ + cloak: クローク + hooded_cloak: フード付きクローク + winter_clothes: 冬服 + down jacket: ダウンジャケット + santa: サンタ衣装 + harem_outfit: ハーレム衣装 + shrug_(clothing): 肩をすくめる(衣類) + + - name: スポーツウェア + color: rgba(230, 84, 128, .4) + tags: + sportswear: スポーツウェア + gym_uniform: 体育服 + athletic_leotard: 体操服 + tennis_uniform: テニスウェア + baseball_uniform: 野球ユニフォーム + letterman_jacket: レターマンジャケット + volleyball_uniform: バレーボールユニフォーム + biker_clothes: 自転車スポーツウェア + bikesuit: 自転車用スーツ + wrestling_outfit: レスリング用衣装 + dougi: 道着 + + - name: 水着 + color: rgba(230, 84, 128, .4) + tags: + swimsuit: 水着 + swimwear: 水着 + wet_swimsuit: 濡れた水着 + school_swimsuit: スクール水着 + new_school_swimsuit: 新しいスクール水着 + old_school_swimsuit: 古いスクール水着 + competition_school_swimsuit: 競泳用スクール水着 + competition_swimsuit: 競泳用水着 + casual_one-piece_swimsuit: ワンピース水着 + front_zipper_swimsuit: 前ファスナー水着 + highleg_swimsuit: ハイレグ水着 + one-piece_swimsuit: ワンピース水着 + swimsuit_of_perpetual_summer: 永遠の夏の水着(FGO学生制服) + bikini: ビキニ + highleg_bikini: ハイウエストビキニ + lowleg_bikini: ローライズビキニ + slingshot_swimsuit: V字型水着 + sailor_bikini: セーラー服風ビキニ + shell_bikini: 貝殻ビキニ + sports_bikini: スポーツビキニ + string_bikini: ストリングビキニ + strapless_bikini: ストラップレスビキニ + side-tie_bikini: サイドタイビキニ + front-tie_bikini_top: 前結びビキニトップ + multi-strapped_bikini: マルチストラップビキニ + thong_bikini: Tバックビキニ + front-tie_bikini: 前結びビキニ + frilled_bikini: フリルビキニ + o-ring_bikini: Oリング付きビキニ + eyepatch_bikini: アイパッチビキニ + layered_bikini: レイヤードビキニ + bow_bikini: リボン付きビキニ + frilled_swimsuit: フリル水着 + polka_dot_swimsuit: 水玉柄水着 + striped_swimsuit: ストライプ水着 + striped_bikini: ストライプビキニ + plaid_bikini: チェック柄ビキニ + polka_dot_bikini: 水玉柄ビキニ + print_bikini: プリントビキニ + american_flag_bikini: アメリカ国旗ビキニ + german_flag_bikini: ドイツ国旗ビキニ + impossible_swimsuit: 体に描かれた水着 + bikini_top: ビキニトップのみ + bikini_top_only: ビキニトップのみ + bikini_top_removed: ビキニトップを外した + bikini_bottom_only: ビキニボトムのみ + bikini_bottom: ビキニパンツ + untied_bikini: 結ばれていないビキニ + bikini_aside: 三角ビキニを横にずらす + swimsuit_aside: 水着の股部分を横にずらす + swimsuit_under_clothes: 服の下に水着を着る + torn_swimsuit: 破れた水着 + bikini_skirt: ビキニスカート + swim_briefs: 水泳用パンツ + swim_cap: 水泳帽 + swim_trunks: 水泳用トランクス + male_swimwear: 男性用水着 + + - name: 制服 + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: 改造された制服 + anzio_military_uniform: アンツィオ軍服 + anzio_school_uniform: アンツィオ学生服 + aria_company_uniform: アリア社の制服 + ashford_academy_uniform: アッシュフォード学園制服 + bc_freedom_military_uniform: BC自由学園軍服 + chaldea_uniform: カルデア制服 + chi-hatan_military_uniform: 地八丹単学院軍服 + fleur_de_lapin_uniform: フルール・ド・ラパン制服 + garreg_mach_monastery_uniform: ガルグ・マク大修道院制服 + gem_uniform_(houseki_no_kuni): 宝石の国の制服 + hanasakigawa_school_uniform: 花咲川女子学園制服 + hikarizaka_private_high_school_uniform: 光坂高校制服 + homurahara_academy_uniform: 穂群原学園制服 + kamiyama_high_school_uniform: 神山高校制服 + keizoku_military_uniform: 継続高校軍服 + kita_high_school_uniform: 北高校制服 + kiyosumi_school_uniform: 清澄高校制服 + luna_nova_school_uniform: ルーナノヴァ魔法学校制服 + meiji_schoolgirl_uniform: 明治女学生制服 + mitakihara_school_uniform: 見滝原中学校制服 + nami_junior_high_school_uniform: 波路中学校制服 + nanairogaoka_middle_school_uniform: 七色丘中学校制服 + nanamori_school_uniform: 七森中学校制服 + naoetsu_high_school_uniform: 直江津高校制服 + national_shin_ooshima_school_uniform: 新大島学園制服 + ooarai_military_uniform: 大洗連隊軍服 + ooarai_school_uniform: 大洗連隊学生服 + otonokizaka_school_uniform: 国立音ノ木坂学院女子制服 + paradis_military_uniform: パラディ島軍服 + polar_chaldea_uniform: 極地カルデア制服 + pravda_military_uniform: プラウダ学園軍服 + pravda_school_uniform: プラウダ学園制服 + rabbit_house_uniform: ラビットハウス制服 + raimon_soccer_uniform: 雷門サッカー部ユニフォーム + ryouou_school_uniform: 陵桜学園制服 + sailor_senshi_uniform: 美少女戦士制服 + sakugawa_school_uniform: 栅川中学校制服 + sakuragaoka_high_school_uniform: 桜丘女子高等学校制服 + saunders_military_uniform: サンダース学園軍服 + saunders_school_uniform: サンダース学園制服 + seishou_elementary_school_uniform: 聖祥大附小学校制服 + shinda_sekai_sensen_uniform: 死後世界戦線制服 + shuuchiin_academy_uniform: 秀知院学園制服 + shuujin_academy_uniform: 秀尽学院制服 + st._gloriana's_military_uniform: 聖グロリアナ軍服 + st._gloriana's_school_uniform: 聖グロリアナ女学園制服 + starlight_academy_uniform: スターライト学園制服 + tokisadame_school_uniform: 時定高校制服 + tokiwadai_school_uniform: 常盤台中学校制服 + tomoeda_elementary_school_uniform: 友枝小学校制服 + tsab_ground_military_uniform: 時空管理局軍服 + u.a._school_uniform: 雄英高校制服 + uranohoshi_school_uniform: 浦の星女学院制服 + yasogami_school_uniform: 八十神高校制服 + mismatched_bikini: 色違いビキニ + multicolored_bikini: 多色ビキニ + + - name: 上着物 + color: rgba(230, 84, 128, .4) + tags: + blouse: ブラウス + white_shirt: 白シャツ + collared_shirt: 襟付きシャツ + dress_shirt: ドレスシャツ + sailor_shirt: セーラーシャツ + cropped_shirt: クロップトップ + t-shirt: Tシャツ + casual T-shirts: カジュアルTシャツ + short sleeve T-shirts: 半袖Tシャツ + off-shoulder_shirt: オフショルダーシャツ + shrug_(clothing): 肩をすくめる(衣類) + cardigan: カーディガン + criss-cross_halter: クリスクロスハルター + frilled_shirt: フリルシャツ + sweatshirt: スウェットシャツ + hawaiian_shirt: ハワイアンシャツ + hoodie: フーディー + Impossible shirt: フィットしすぎるシャツ + kappougi: (料理時に着る)かっぽう着 + plaid_shirt: チェック柄シャツ + polo_shirt: ポロシャツ + print_shirt: プリントシャツ + shirt: シャツ + sleeveless_hoodie: ノースリーブフーディー + sleeveless_shirt: ノースリーブシャツ + striped_shirt: ストライプシャツ + tank_top: タンクトップ + vest: ベスト + waistcoat: ウェストコート + camisole: キャミソール + tied_shirt: 結び付けられたシャツ + undershirt: アンダーシャツ + crop_top: クロップトップ + highleg: ハイレグの衣類 + clothing_cutout: 衣類のカットアウト + back_cutout: バックカットアウト + cleavage_cutout: 胸元のカットアウト + navel_cutout: へそ出しカットアウト + midriff: 腹出しのトップス + heart_cutout: ハート型のカットアウト + torn_clothes: 破れた衣服 + torn_shirt: 破れたシャツ + undressing: 着替え中 + clothes_down: 衣服を下げる + shirt_lift: シャツをたくし上げる + shirt_pull: シャツを引っ張る + shirt_tucked_in: シャツをズボンに入れる + clothes_tug: 衣服を引っ張る + shirt_tug: シャツを引っ張る + untucked_shirt: シャツを出す + lifted_by_self: 自分で服を上げる + untied: 自分で服を上げる + open_clothes: 開いた服 + unbuttoned shirt: ボタンを外したシャツ + button_gap: ボタン間の隙間(ボタンを外していない) + partially_unbuttoned: 部分的にボタンを外した + partially_unzipped: 上部分のジッパーを少し開けた + clothes_removed: 脱いだ衣服 + shirt_removed: シャツを脱いだ + wardrobe_error: 衣服のズレ + undersized_clothes: サイズが小さすぎる衣服 + tight: きつくなった衣服 + wedgie: ウェッジ(股間部分の衣服が食い込むこと) + wardrobe_malfunction: 衣服のトラブル(破れるなど) + taut_shirt: 張り詰めたシャツ + taut_clothes: 張り詰めた衣服 + underbust: 下胸囲に食い込む + oversized_clothes: 大きすぎる衣服 + oversized_shirt: 大きすぎるシャツ + borrowed_garments: 彼氏の服 + strap_slip: ストラップが滑落(露出の原因) + wet_shirt: 濡れたシャツ + clothes_theft: 衣服の盗難 + + - name: コート + color: rgba(230, 84, 128, .4) + tags: + blazer: ブレザー(ジャケット) + overcoat: オーバーコート(大衣) + double-breasted: ダブルブレスト(二重ボタン) + long_coat: ロングコート + haori: 羽織(広衣) + winter_coat: 冬用コート + hooded_coat: フード付きコート + fur_coat: 毛皮コート + fur-trimmed_coat: 毛皮飾りコート + duffel_coat: ダッフルコート + fishnet_top: フィッシュネットトップ + parka: パーカー(フード付きジャケット) + jacket: ジャケット + jacket_partially_removed: ジャケット部分的に取り外された + jacket_removed: ジャケットが取り外された + open_jacket: オープンジャケット(スプレッドレッグスと一緒に) + cropped_jacket: クロップドジャケット(短めのジャケット) + track_jacket: トラックジャケット(スポーツジャケット) + hooded_track_jacket: フード付きトラックジャケット + military_jacket: ミリタリージャケット + camouflage_jacket: 迷彩ジャケット + leather_jacket: レザージャケット + letterman_jacket: レターマンジャケット + bomber_jacket: ボンバージャケット + denim_jacket: デニムジャケット + loating_jacket: ロートングジャケット(カジュアルジャケット) + fur-trimmed_jacket: 毛皮飾りジャケット + two-tone_jacket: 2トーンジャケット + trench_coat: トレンチコート + furisode: 振袖(着物の一部) + windbreaker: ウインドブレーカー + raincoat: レインコート + hagoromo: 羽衣(はごろも) + tunic: チュニック(束腰の上着) + cape: ケープ(肩掛け) + capelet: ケープレット(小さなケープ) + winter_clothes: 冬服 + sweater: セーター + pullover_sweaters: プルオーバーセーター + ribbed_sweater: リブ編みセーター + sweater_vest: セーターベスト + backless_sweater: バックレスセーター + aran_sweater: アランセーター(アイルランドセーター) + beige_sweater: ベージュセーター + brown_sweater: ブラウンセーター + hooded_sweater: フード付きセーター + off-shoulder_sweater: オフショルダーセーター + striped_sweater: ストライプセーター + virgin_killer_sweater: バージンキラーセーター + down_jacket: ダウンジャケット + puffer_jacket: パファージャケット + + - name: その他 + color: rgba(230, 84, 128, .4) + tags: + transparent: 透明な + burnt_clothes: 焼けた服 + dissolving_clothes: 溶けた服 + dirty_clothes: 汚れた服 + expressive_clothes: 表現力豊かな服 + impossible_clothes: 非現実的な包み込み度のある服 + living_clothes: 生きている服 + leotard_under_clothes: レオタードの下に着る服 + multicolored_clothes: 多色の服 + ofuda_on_clothes: 服に貼られた御札 + wringing_clothes: 濡れた服を絞る + clothesline: 洗濯物を干す + shiny_clothes: 光沢のある服 + kariginu: 狩衣(かりぎぬ) + front-tie_top: 前で結ぶトップス + jacket_on_shoulders: ジャケットを肩にかける + short_jumpsuit: ショートジャンプスーツ + harness: ハーネス(背中の帯状のもの) + rigging: 船装 + aiguillette: エギュレット(肩章) + + - name: 腰部 + color: rgba(230, 84, 128, .4) + tags: + apron: エプロン + waist_apron: ウエストエプロン + maid_apron: メイドエプロン + bow tied at the waist: ウエストで結んだリボン + waist_cape: ウエストケープ + clothes_around_waist: ウエストに巻く服 + jacket_around_waist: ウエストに巻いたジャケット + sweater_around_waist: ウエストに巻いたセーター + loincloth: 腰巻き + bustier: ブスティエ(胸当て) + corset: コルセット(胴締め) + girdle: ガードル(腰締め) + + - name: よろい + color: rgba(230, 84, 128, .4) + tags: + armor: アーマー(鎧) + bikini_armor: ビキニアーマー + full_armor: フルアーマー + plate_armor: プレートアーマー + japanese_armor: 日本の鎧 + kusazuri: 草摺(くさずり) + power_armor: パワーアーマー + mecha: メカ + helmet: ヘルメット + kabuto: 兜(かぶと) + off-shoulder_armor: オフショルダーアーマー + shoulder_armor: ショルダーアーマー + muneate: 胸当て(日本の弓道用胸甲) + breastplate: 胸当て + faulds: 腹当て + greaves: 脛当て + shin_guards: 脛当て + armored_boots: アーマードブーツ + + - name: スカート + color: rgba(230, 84, 128, .4) + tags: + dress: ドレス + microdress: ミクロドレス + long_dress: ロングドレス + off-shoulder_dress: オフショルダードレス + strapless_dress: ストラップレスドレス + backless_dress: バックレスドレス + halter_dress: ハルタードレス + sundress: サンドレス + sleeveless_dress: スリーブレスドレス + sailor_dress: セーラードレス + summer_dress: サマードレス + china_dress: チャイナドレス + pinafore_dress: ピナフォアドレス + sweater_dress: スウェータードレス + wedding_dress: ウェディングドレス + armored_dress: アーマードドレス + frilled_dress: フリルドレス + lace-trimmed_dress: レーストリムのドレス + collared_dress: 襟付きドレス + fur-trimmed_dress: 毛皮飾りドレス + layered_dress: レイヤードドレス + pleated_dress: プリーツドレス + taut_dress: 張り詰めたドレス + pencil_dress: ペンシルドレス + impossible_dress: 非現実的なタイトな服 + multicolored_dress: 多色のドレス + striped_dress: ストライプドレス + checkered_skirt: チェック柄スカート + plaid_dress: プレイドドレス + ribbed_dress: リブ編みドレス + polka_dot_dress: ポルカドットドレス + print_dress: プリントドレス + vertical-striped_dress: 縦縞ドレス + see-through_dress: 透明ドレス + skirt: スカート + microskirt: ミクロスカート + miniskirt: ミニスカート + skirt_suit: スカートスーツ + bikini_skirt: ビキニスカート + pleated_skirt: プリーツスカート + pencil_skirt: ペンシルスカート + bubble_skirt: バブルスカート + tutu: チュチュ(バレエスカート) + ballgown: ボールガウン(舞踏会のドレス) + pettiskirt: ペチスカート(子供用) + showgirl_skirt: ショーガールスカート + Medium length skirt: ミディアム丈スカート + beltskirt: ベルトスカート + denim_skirt: デニムスカート + suspender_skirt: サスペンダースカート + skirt_set: トップスとセットのスカート + long_skirt: ロングスカート + summer_long_skirt: 夏用ロングスカート + overskirt: オーバースカート + hakama_skirt: 袴スカート + high-waist_skirt: ハイウエストスカート + kimono_skirt: 着物スカート + suspender_long_skirt: サスペンダーロングスカート + chiffon_skirt: シフォンスカート + frilled_skirt: フリルスカート + fur-trimmed_skirt: 毛皮飾りスカート + lace_skirt: レーススカート + lace-trimmed_skirt: レーストリムスカート + ribbon-trimmed_skirt: リボン飾りスカート + layered_skirt: レイヤードスカート + print_skirt: プリントスカート + multicolored_skirt: 多色のスカート + striped_skirt: ストライプスカート + vertical-striped_skirt: 縦縞スカート + plaid_skirt: プレイドスカート + flared_skirt: フレアスカート + floral_skirt: 花柄スカート + + - name: スカートとのインタラクション + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: エレガントにスカートを持つ + skirt_tug: スカートの裾を引っ張る + dress_tug: ドレスの裾を押さえる + skirt_lift: スカートをめくる + skirt_around_one_leg: 一本の脚にスカートを掛ける + skirt_removed: 脱ぎ捨てられたスカート + dress_removed: ドレスを脱ぐ + open_skirt: 開いたスカート + + - name: パンツ + color: rgba(230, 84, 128, .4) + tags: + dress_bow: ドレスのリボン + dressing_another: 他の人に着せる + shorts_under_skirt: スカートの下にショートパンツを穿く + side_slit: サイドスリット + shorts: ショートパンツ + micro_shorts: ミクロショーツ + short_shorts: ショートショーツ + hot_pants: ホットパンツ + cutoffs: カットオフショーツ + striped_shorts: ストライプショートパンツ + suspender_shorts: サスペンダーショートパンツ + denim_shorts: デニムショートパンツ + puffy_shorts: パフィーショートパンツ + dolphin_shorts: ドルフィンショーツ + dolfin_shorts: ドルフィンショーツ + tight_pants: タイトパンツ + crotchless_pants: クロッチレスパンツ + track_pants: トラックパンツ + yoga_pants: ヨガパンツ + bike_shorts: バイクショーツ + gym_shorts: ジムショーツ + pants: パンツ + puffy_pants: パフィーパンツ + pumpkin_pants: パンプキンパンツ + hakama_pants: 袴パンツ + harem_pants: ハーレムパンツ + bloomers: ブルーマー + buruma: ブルマ(女子用ブルーマー) + jeans: ジーンズ + cargo_pants: カーゴパンツ + camouflage_pants: 迷彩パンツ + capri_pants: カプリパンツ + chaps: シャップス(チャップス) + jumpsuit: ジャンプスーツ(特に女性用) + lowleg_pants: 低ウエストパンツ + plaid_pants: プレイドパンツ + single_pantsleg: 片方のパンツレッグ + striped_pants: ストライプパンツ + + - name: パンツとのインタラクション + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: アシンメトリーなパンツ + leotard_aside: レオタードのクロッチを一側に寄せる + open_fly: 開いたファスナーのパンツ + pants_down: パンツを脱ぐ + pants_rolled_up: パンツをまくり上げる + pants_tucked_in: パンツを中に入れる + torn_jeans: 破れたジーンズ + torn_pants: 破れたパンツ + torn_shorts: 破れたショートパンツ + + - name: 靴下 + color: rgba(230, 84, 128, .4) + tags: + bodystocking: ボディストッキング + pantyhose: パンスト + leggings: レギンス + legwear: レギンス(一般的な言葉) + thighhighs: サイハイソックス(膝上までの長いソックス) + kneehighs: ニーハイソックス(膝までのソックス) + socks: ソックス + bare_legs: 裸足 + black_bodystocking: 黒いボディストッキング + white_bodystocking: 白いボディストッキング + stocking_under_clothes: 服の下のストッキング + black_pantyhose: 黒いパンスト + white_pantyhose: 白いパンスト + thighband_pantyhose: レッグバンド付きパンスト + pantylines: パンティラインが浮かび上がるパンスト + single_leg_pantyhose: 片足だけパンスト + panties_under_pantyhose: パンストの下にパンティを履く + fishnets: フィッシュネットストッキング + stirrup_legwear: スティラップレッグウェア + toeless_legwear: つま先開きのレッグウェア + mismatched_legwear: ミスマッチのレッグウェア + two-tone_legwear: 2トーンのレッグウェア + asymmetrical_legwear: アシンメトリーなレッグウェア + uneven_legwear: 長さの異なるレッグウェア + white_thighhighs: 白いサイハイソックス + black_thighhighs: 黒いサイハイソックス + pink_thighhighs: ピンクのサイハイソックス + suspenders: サスペンダー + garter_straps: ガーターストラップ + torn_legwear: 破れたレッグウェア + torn_thighhighs: 破れたサイハイソックス + see-through_legwear_: 透明なレッグウェア + frilled_legwear: フリルのついたレッグウェア + lace-trimmed_legwear: レーストリムのレッグウェア + seamed_legwear: シームのあるレッグウェア + back-seamed_legwear: バックシームのあるレッグウェア + animal_ear_legwear: 動物の耳のついたサイハイソックス + striped_legwear: ストライプのレッグウェア + vertical-striped_legwear: 縦縞のレッグウェア + polka_dot_legwear: ポルカドットのレッグウェア + print_legwear: プリントのレッグウェア + legwear_under_shorts: ショートパンツの下にレッグウェアを履く + over-kneehighs: オーバーニーソックス + bobby_socks: ボビーソックス(白い短いソックス) + tabi: 足袋(たび) + loose_socks: ルーズソックス + ankle_socks: アンクルソックス + leg_warmers: レッグウォーマー + single_sock: 一つだけのソックス + striped_socks: ストライプソックス + + - name: 靴下とのインタラクション + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: 切り抜きのあるソックス + thighhighs_under_boots: ブーツの下にサイハイソックスを履く + adjusting_legwear: レッグウェアの調整 + pantyhose_pull: 脱ぎ下ろされたパンスト + socks_removed: ソックスを脱ぐ + sock_pull: ソックスを引っ張る + thighhighs_pull: サイハイソックスを引っ張 + + - name: その他 + color: rgba(230, 84, 128, .4) + tags: + garters: ガーター + leg_garter: レッグガーター + garter_straps: ガーターストラップ + thigh_strap: 太ももストラップ + thigh_ribbon: 太ももリボン + leg_ribbon: 脚リボン + bandaid_on_leg: 脚に包帯 + bandaged_leg: 包帯を巻いた脚 + ankle_lace-up: 足首レースアップ + thigh_holster: 太ももホルスター + bandaid_on_knee: 膝にバンドエイド + argyle_legwear: アーガイル柄のレッグウェア + bow_legwear: ボウのついたレッグウェア + arm_garter: アームガーター + + - name: 素材 + color: rgba(230, 84, 128, .4) + tags: + armored: アーマー付き + canvas: キャンバスの + denim: デニム + fluffy: ふわふわした + fur: 毛皮 + latex: ラテックス + leather: 革製 + see-through: 透明な + spandex: スパンデックス + tight: タイトな + + - name: 装飾 + color: rgba(230, 84, 128, .4) + tags: + frilled: フリルの + center_frills: 中央のフリル + crease: シワのある + layered: レイヤー構造の + lace: レース + fur_trim: 毛皮のトリム + fur-trimmed: 毛皮のトリムのある + fine_fabric_emphasis: 細かい生地の強調 + latex_thighhighs: ラテックス製の太ももハイソックス + see-through_thighhighs: 透明な太ももハイソックス + ass_cutout: お尻が見える服 + asymmetrical_clothes: 非対称の服 + back_bow: 背中に結ぶリボン + costume_switch: 衣装の切り替え + cross-laced_clothes: クロスレースの服 + double_vertical_stripe: 服に2本の縦ストライプ + halter_top: ハルタートップ + multicolored_legwear: 多色のレッグウェア + navy_blue_legwear: ネイビーブルーのレッグウェア + nontraditional_miko: 伝統的でない巫女服 + side_cutout: サイドカットアウトの服 + side_slit: サイドスリットの服 + sideless_outfit: サイドがない服 + single_kneehigh: 片方だけ履くニーハイソックス + single_vertical_stripe: 1本の縦ストライプが露出した服 + turtleneck: タートルネックの服 + two-sided_fabric: 両面の生地を使用した服のデザイン + o-ring: Oリング付きの衣類 + o-ring_top: Oリング付きのトップス + fringe_trim: フリンジのトリム + loose_belt: ゆるいベルトの服 + pom_pom_(clothes): ポンポンのついた衣類 + drawstring: 衣服の紐 + full-length_zipper: フルレングスのジッパーがついた衣類 + gathers: ギャザーのある衣類 + gusset: 衣服に縫い込まれた補強部分 + breast_pocket: 胸ポケット + + - name: パターン + color: rgba(230, 84, 128, .4) + tags: + argyle: アーガイル柄 + checkered: チェック柄 + colored_stripes: カラフルなストライプ + diagonal_stripes: 対角線ストライプ + horizontal_stripes: 横ストライプ + multicolored_stripes: 多色ストライプ + polka_dot_: 水玉模様 + ribbed: リブ編み + striped: 横縞模様 + unmoving_pattern: 静止パターン + vertical_stripes: 縦ストライプ + plaid: チェック柄 + animal_print: アニマルプリント + cat_print: ネコプリント + bear_print: クマプリント + bird_print: 鳥プリント + bunny_print: ウサギプリント + cow_print: ウシプリント + dragon_print: ドラゴンプリント + fish_print: 魚プリント + frog_print: カエルプリント + shark_print: サメプリント + snake_print: ヘビ柄 + zebra_print: ゼブラ柄 + tiger_print: 虎柄 + leopard_print: レオパード柄 + jaguar_print: ジャガー柄 + bat_print: バットプリント + aardwolf_print: アードウルフプリント + african_wild_dog_print: アフリカ野犬プリント + cheetah_print: チータープリント + dog_print: 犬プリント + fox_print: キツネプリント + giraffe_print: キリンプリント + panda_print: パンダプリント + sand_cat_print: 砂猫プリント + whale_print: クジラプリント + white_tiger_print: ホワイトタイガープリント + goldfish_print: 金魚プリント + wing_print: 羽プリント + spider_web_print: クモの巣プリント + butterfly_print: 蝶々プリント + floral_print: 花柄 + leaf_print: 葉柄 + clover_print: クローバー柄 + maple_leaf_print: 紅葉柄 + rose_print: バラ柄 + strawberry_print: イチゴ柄 + cherry_print: チェリー柄 + bamboo_print: 竹柄 + carrot_print: ニンジン柄 + hibiscus_print: ハイビスカス柄 + jack-o'-lantern_print: ジャックオーランタン柄 + petal_print: 花びら柄 + sunflower_print: ひまわり柄 + watermelon_print: スイカ柄 + sky_print: 空柄 + cloud_print: 雲柄 + lightning_bolt_print: 稲妻柄 + rainbow_print: 虹柄 + snowflake_print: 雪の結晶柄 + starry_sky_print: 星空柄 + crescent_print: 三日月柄 + star_print: 星柄 + star_(symbol): 星の形のシンボル + moon_print: 月柄 + sun_print: 太陽柄 + character_print: 文字柄 + clothes_writing_: 衣服に書かれた文字 + anchor_print: アンカープリント + cherry_blossom_print: 桜柄 + musical_note_print: 音符柄 + triangle_print: 三角柄 + arrow_print: 矢印プリント + wave_print: 波柄 + peace_symbol: 平和のシンボル(☮) + heart_print: ハート柄 + flame_print: 炎柄 + hitodama_print: 人魂柄 + paw_print: 足跡柄 + skeleton_print: 骸骨柄 + skull_print: 髑髏柄 + sparkle_print: 輝く柄 + yin_yang_print: 陰陽柄 + cross_print: 十字架の要素の柄 + camoflage: 迷彩 + flag_print: 旗柄 + bone_print: 骨柄 + ghost_print: ゴーストプリント + mushroom_print: キノコ柄 + onigiri_print: おにぎり柄 + cat_ear: 猫耳の形 + cat_ear_cutout: 猫耳の形のくり抜き + + - name: 靴 + color: rgba(230, 84, 128, .4) + tags: + barefoot: 裸足 + no_shoes: 靴なし + shoes_removed: 靴を脱いだ + single_shoe: 一つだけの靴 + the_only_shoe: 一つだけの靴 + black_loafers: 黒いローファー + shoes: 靴 + uwabaki: 室内履き + platform_footwear: プラットフォームシューズ + high_heels: ハイヒール + stiletto_heels: スティレットヒール + strappy_heels: ストラップ付きハイヒール + platform_heels_: プラットフォームハイヒール + rudder_footwear: 船の舵用の靴 + sandals: サンダル + barefoot_sandals: 裸足サンダル + clog_sandals: 木靴サンダル + geta: 下駄 + slippers: スリッパ + skates: スケート靴 + roller_skates: ローラースケート + animal_feet: 動物の足 + animal_slippers: 動物のスリッパ + anklet: アンクレット + shackles: 手錠 + brown_footwear: 茶色の靴 + cross-laced_footwear: クロスレースの靴 + loafers: ローファー + mary_janes: メリージェーンズ + mismatched_footwear: ミスマッチの靴 + pointy_footwear: 先の尖った靴 + pumps: パンプス + sandals_removed: サンダルを脱いだ + shoe_soles: 靴底 + shoelaces: 靴紐 + sneakers: スニーカー + winged_footwear: 羽のついた靴 + zouri: 草履 + + - name: ブーツ + color: rgba(230, 84, 128, .4) + tags: + boots: ブーツ + boots_removed: ブーツを脱いだ + thigh_boots: 大腿ブーツ + knee_boots: ニーブーツ + cross-laced_footwear: クロスレースの靴 + ankle_boots: アンクルブーツ + high_heel_boots: ハイヒールブーツ + toeless_boots: つま先の露出したブーツ + lace-up_boots: レースアップブーツ + fur-trimmed_boots: 毛皮トリムのブーツ + snow_boots: スノーブーツ + anklet: アンクレット + rubber_boots: ゴム長靴 + santa_boots: サンタブーツ + leather_boots: 革ブーツ + thighhighs_under_boots: ブーツの下の太ももハイソックス + combat_boots: コンバットブーツ + doc_martens: ドクターマーチン + rain_boots: 雨靴 + belt_boots: ベルトブーツ + fur_boots: ファーブーツ + single_boot: 一つだけのブーツ + + - name: 靴底 + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: 靴底 + arched_soles: アーチのある靴底 + paw_print_soles: 足跡のついた靴底 + horseshoe: 蹄鉄 + + - name: 襟元 + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: セーラーカラー + fur_collar: 毛皮の襟 + frilled_collar: フリルの襟 + popped_collar: 立ち襟 + choker: チョーカー + black_choker: 黒いチョーカー + belt_collar: ベルト付き襟 + frilled_choker: フリルのチョーカー + neckerchief: ネッカチーフ + red_neckerchief: 赤いネッカチーフ + necktie: ネクタイ + short_necktie: 短いネクタイ + white_necktie: 白いネクタイ + bowtie: ボウタイ + headphones_around_neck: 首にかけたヘッドフォン + goggles_around_neck: 首にかけたゴーグル + neck_bell: 首につけたベル + neck_ruff: 襟巻き + v-neck: Vネック + towel_around_neck: 首にかけたタオル + loose_necktie: ゆるいネクタイ + neck_tattoo: 首のタトゥー + ascot: アスコット + ribbon_choker: リボンのチョーカー + maebari/pasties: 前貼り/乳貼り + latex: ラテックス + torn_clothes: ぼろぼろの服 + iron_cross: 鉄十字勲章 + chinese_knot: 中国結び + cross_necklace: 十字架のネックレス + bead_necklace: ビーズのネックレス + pearl_necklace: 真珠のネックレス + heart_necklace: ハートのネックレス + carrot_necklace: 人参のネックレス + chain_necklace: チェーンのネックレス + magatama_necklace: 勾玉のネックレス + tooth_necklace: 歯のネックレス + key_necklace: キーのネックレス + anchor_necklace: アンカーのネックレス + skull_necklace: 髑髏のネックレス + shell_necklace: 貝殻のネックレス + gold_necklace: 金のネックレス + crescent_necklace: 三日月のネックレス + ring_necklace: リングのネックレス + feather_necklace: 羽のネックレス + bone_necklace: 骨のネックレス + ankh_necklace: アンクのネックレス + multiple_necklaces: 複数のネックレス + bullet_necklace: 弾丸のネックレス + holding_necklace: ネックレスを持っている + necklace_removed: ネックレスを外した + brown_neckwear: 茶色の首飾り + checkered_neckwear: チェック柄の襟飾り + diagonal-striped_neckwear: 斜めストライプの襟飾り + halterneck: ハルターネック + mole_on_neck: 首にほくろ + neck: 首 + neck_ribbon: 首にリボンを結ぶ + neck_ring: 首輪 + necklace: ネックレス + plaid_neckwear: チェック柄の襟飾り + plunging_neckline: V字の切り込み + print_neckwear: プリントの襟飾り + sleeveless_turtleneck: 袖なしタートルネック + star_necklace: 星のネックレス + striped_neckwear: ストライプの襟飾り + turtleneck_sweater: タートルネックのセーター + undone_necktie: 解けたネクタイ + whistle_around_neck: 首にかけた笛 + + - name: スカーフ + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: チェック柄のスカーフ + striped_scarf: ストライプのスカーフ + print_scarf: プリントのスカーフ + vertical-striped_scarf: 縦ストライプのスカーフ + polka_dot_scarf: 水玉模様のスカーフ + argyle_scarf: アーガイル柄のスカーフ + beige_scarf: ベージュのスカーフ + scarf_bow: スカーフのリボン + fur_scarf: 毛皮のスカーフ + naked_scarf: 裸のスカーフ + multicolored_scarf: 多色のスカーフ + floating_scarf: 浮遊するスカーフ + long_scarf: 長いスカーフ + arm_scarf: 腕のスカーフ + scarf_on_head: 頭に巻いたスカーフ + scarf_over_mouth: 口にかけたスカーフ + scarf_removed: スカーフを外した + adjusting_scarf: スカーフを調整中 + holding_scarf: スカーフを持っている + scarf_pull: スカーフを引っ張る + brown_scarf: 茶色のスカーフ + scarf: スカーフ + + - name: メガネ + color: rgba(230, 84, 128, .4) + tags: + glasses: メガネ + eyewear: 眼鏡 + monocle: モノクル + under-rim_eyewear: アンダーリムの眼鏡 + rimless_eyewear: リムレスの眼鏡 + semi-rimless_eyewear: セミリムレスの眼鏡 + red-framed_eyewear: 赤いフレームの眼鏡 + round_eyewear: 丸いフレームの眼鏡 + black-framed_eyewear: 黒いフレームの眼鏡 + tinted_eyewear: 色付きの眼鏡 + medical_eyepatch: 医療用アイパッチ + bandage_over_one_eye: 一つの目に包帯を巻いた + crooked_eyewear: 曲がった眼鏡 + eyewear_removed: 眼鏡を外した + sunglasses: サングラス + goggles: ゴーグル + Blindfold: 目隠し + eyepatch: 目帯 + visor: バイザー + bespectacled: メガネをかけた + blue-framed_eyewear: 青いフレームの眼鏡 + brown-framed_eyewear: 茶色のフレームの眼鏡 + coke-bottle_glasses: 底の厚い丸眼鏡 + no_eyewear: 眼鏡なし + opaque_glasses: 不透明な眼鏡 + over-rim_eyewear: オーバーリムの眼鏡 + + - name: マスク + color: rgba(230, 84, 128, .4) + tags: + mask: マスク + half_mask: ハーフマスク + masked: マスクをつけた + mask_lift: マスクを上げる + mask_on_head: 頭にかぶったマスク + mask_removed: マスクを外した + mouth_mask: 口マスク + surgical_mask: 医療用マスク + plague_doctor_mask: ペスト医師のマスク + gas_mask: ガスマスク + visor: バイザー + helmet: ヘルメット + fox_mask: キツネのマスク + diving_mask: ダイビングマスク + diving_mask_on_head: 頭につけたダイビングマスク + oni_mask: 鬼の面 + tengu_mask: 天狗の面 + ninja_mask: 忍者のマスク + skull_mask: スカルマスク + hockey_mask: アイスホッケーマスク + bird_mask: 鳥のマスク + stone_mask: 石の鬼の面 + horse_mask: 馬のマスク + masquerade_mask: マスカレードのマスク + domino_mask: SMマスク + + - name: 腕 + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: 長袖 + short_sleeves: 半袖 + wide_sleeves: ワイドスリーブ + furisode: 振袖 + detached_sleeves: 取り外し可能な袖 + single_sleeve: 一つの袖 + sleeveless: 袖なし + asymmetrical_sleeves: 非対称な袖 + puffy_sleeves: パフスリーブ + puffy_long_sleeves: パフスリーブの長袖 + puffy_short_sleeves: パフスリーブの半袖 + frilled_sleeves: フリル付き袖 + juliet_sleeves: ジュリエットスリーブ + bandaged_arm: 包帯巻きの腕 + raglan_sleeves: ラグランスリーブ + vambraces: 前腕防具 + layered_sleeves: 重ねた袖 + fur-trimmed_sleeves: 毛皮のトリム付き袖 + see-through_sleeves: 透ける袖 + torn_sleeves: 破れた袖 + sleeves_past_fingers: 指先までの袖 + sleeves_past_wrists: 手首までの袖 + sleeves_past_elbows: 肘までの袖 + sleeves_pushed_up: 押し上げられた袖 + arm_out_of_sleeve: 袖から出た腕 + uneven_sleeves: 不均一な袖 + mismatched_sleeves: 組み合わせの異なる袖 + sleeve_rolled_up: 袖をまくった + sleeves_rolled_up: 一方の袖をまくった + feather-trimmed_sleeves: 羽飾りのついた袖 + hands_in_opposite_sleeves: 両手を逆の袖に入れた + lace-trimmed_sleeves: レーストリムのついた袖 + pinching_sleeves: 袖をつまむ + puffy_detached_sleeves: パフスリーブの取り外し可能な袖 + ribbed_sleeves: リブ編みの袖 + single_detached_sleeve: 一方の袖が取り外されていない + sleeves_folded_up: 折りたたまれた袖 + striped_sleeves: ストライプの袖 + wrist_cuffs: 袖口の手首カフス + armband: 腕章 + armlet: 腕輪 + + - name: 手 + color: rgba(230, 84, 128, .4) + tags: + bandage: 包帯 + leash: リード + arm_tattoo: 腕のタトゥー + number_tattoo: 数字のタトゥー + bead_bracelet: ビーズのブレスレット + bracelet: ブレスレット + flower_bracelet: 花のブレスレット + spiked_bracelet: スパイクのついたブレスレット + wrist_cuffs: 手首カフス + wristband: 腕バンド + bracer: ブレイサー + cuffs: 袖口 + bound_wrists: 手首を縛られた + wrist_scrunchie: 手首のスクランチー + handcuffs: 手錠 + shackles: 手錠 + chains: チェーン + chain_leash: チェーンのリード + + - name: 手袋 + color: rgba(230, 84, 128, .4) + tags: + gloves: 手袋 + gloves_removed: 手袋を脱いだ + no_gloves: 手袋なし + single_glove: 一つの手袋 + single_elbow_glove: 肘までの一つの手袋 + long_gloves: 長手袋 + elbow_gloves: 肘までの手袋 + bridal_gauntlets: 花嫁のガントレット + half_gloves: 半手袋 + fingerless_gloves: 指なし手袋 + partially_fingerless_gloves: 部分的に指なし手袋 + paw_gloves: パウ手袋 + mittens: ミトン + baseball_mitt: 野球のミット + fur-trimmed_gloves: 毛皮のトリム付き手袋 + latex_gloves: ラテックス手袋 + lace-trimmed_gloves: レーストリムのついた手袋 + leather_gloves: 皮の手袋 + frilled_gloves: フリル付き手袋 + mismatched_gloves: 組み合わせの異なる手袋 + multicolored_gloves: 多色の手袋 + asymmetrical_gloves: 非対称な手袋 + brown_gloves: 茶色の手袋 + oven_mitts: オーブンミット + print_gloves: プリント手袋 + striped_gloves: ストライプの手袋 + torn_gloves: 破れた手袋 + + - name: 耳飾り + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: 十字のイヤリング + crystal_earrings: クリスタルのイヤリング + earrings: イヤリング + flower_earrings: 花のイヤリング + heart_earrings: ハートのイヤリング + hoop_earrings: フープイヤリング + multiple_earrings: 複数のイヤリング + pill_earrings: 薬の形をしたイヤリング + single_earring: 一つのイヤリング + skull_earrings: スカルのイヤリング + star_earrings: 星のイヤリング + + - name: 頭飾り + color: rgba(230, 84, 128, .4) + tags: + halo: ハロー + mechanical_halo: 機械のハロー + headwear: 頭飾り + headpiece: 頭飾り + headwear_removed: 頭飾りを外した + head_wreath: 頭の花輪 + crown: 王冠 + mini_crown: ミニクラウン + tiara: ティアラ + diadem: 同上 + tilted_headwear: 傾けられた頭飾り + head_fins: 頭のヒレ + maid_headdress: メイドのヘッドドレス + bridal_veil: 花嫁のベール + headband: ヘッドバンド + helmet: ヘルメット + alternate_headwear: 異なる頭飾り + fur-trimmed_headwear: 毛皮のトリム付き頭飾り + goggles_on_headwear: 頭飾りにゴーグル + earphones: イヤホン + earmuffs: イヤーマフ + ears_through_headwear: 頭飾りから耳が出ている + xx_on_head: 頭にxx + leaf_on_head: 頭に葉 + topknot: お団子 + suigintou: 水銀燈 + triangular_headpiece: 三角形の頭飾り + forehead_protector: 額当て + radio_antenna: ラジオアンテナ + animal_hood: 動物のフード + arrow_(symbol): 矢印 + axe: 斧 + bald: はげ頭 + bandana: バンダナ + bob_cut: ボブカット + bone: 骨 + bowl_cut: ボウルカット + circlet: 円環 + double_bun: ダブルバン + double_dildo: ダブルディルド + drill: ドリル + faucet: 蛇口 + hachimaki: 鉢巻 + hair_behind_ear: 耳の後ろの髪 + hair_bell: 髪につけたベル + hair_bun: 髪の束 + hair_down: 髪を下ろした + hair_flaps: 揺れる髪 + hair_flip: 髪をかき上げる + hair_flower: 髪に花をつけた + hair_spread_out: 広がった髪 + hair_up: 髪を上げた + helm: ヘルムをかぶった + helmet_removed: ヘルメットを外した + horned_helmet: 角のついたヘルメット + japari_bun: ジャパリまんじゅう + kerchief: ケーフィア + mami_mogu_mogu: マミモグモグ + mob_cap: モブキャップ + one_side_up: 片方の髪を上げた + owl: フクロウ + pier: ピアス + pillow: 枕 + raised_fist: 上げられた拳 + skull_and_crossbones: 髑髏と十字骨 + stone: 石 + turban: ターバン + twin_drills: ツインドリルヘアスタイル + updo: アップスタイル + wet_hair: 濡れた髪 + headdress: 頭部装飾品 + adjusting_headwear: 頭飾りの調整 + bear_hair_ornament: クマの模様の頭飾り + brown_headwear: 茶色の頭飾り + horned_headwear: 角状の頭飾り + horns_through_headwear: 頭飾りに角の穴がある + no_headwear: 頭飾りなし + object_on_head: 頭に物体がある + print_headwear: プリントの頭飾り + bone_hair_ornament: 骨型の装飾品 + bunny_hair_ornament: ウサギの装飾品 + horn_ornament: 角に装飾品がある + animal_on_head: 頭に動物がいる + behind-the-head_headphones: 後頭部にヘッドフォンをつける + bird_on_head: 頭に鳥がいる + cat_ear_headphones: 猫耳のヘッドフォン + cat_on_head: 頭に猫がいる + eyewear_on_head: 頭に眼鏡がある + forehead: 額 + forehead_jewel: 額の宝石 + forehead_kiss: 額にキス + forehead_mark: 額に模様 + forehead-to-forehead: 額同士が触れる + goggles_on_head: 頭にゴーグルをつける + head: 頭 + head_bump: 頭にこぶ + head_down: 頭を下げる + head_mounted_display: 頭に装着したディスプレイ + head_out_of_frame: 頭の一部がフレーム外 + head_rest: 頭を支える + head_tilt: 頭を傾ける + head_wings: 頭に羽がある + headgear: 頭部装飾品(一定のSF要素を含む) + headphones: ヘッドフォン + heads-up_display: HUD(ゲームやSFのスタイル) + headset: ヘッドセット + inter_headset: EVAの神経接続器 + on_head: 頭に乗っている + person_on_head: 頭の上に人がいる + single_head_wing: 一つの羽のついた頭 + - name: 帽子 + color: rgba(230, 84, 128, .4) + tags: + hat: 帽子 + no_hat: 帽子なし + large_hat: 大きな帽子 + mini_hat: ミニ帽子 + witch_hat: 魔女の帽子 + mini_witch_hat: ミニ魔女帽子 + wizard_hat: 魔法使いの帽子 + party_hat: パーティーハット + jester_cap: 小丑の帽子 + tokin_hat: ときん帽 + top_hat: トップハット + mini_top_hat: ミニトップハット + bowler_hat: ボウラーハット + pillbox_hat: ピルボックスハット + cloche_hat: クロッシェハット + side_cap: サイドキャップ + military_hat: 軍帽 + beret: ベレー帽 + garrison_cap: ガリソンキャップ + police_hat: 警察帽 + nurse_cap: ナースキャップ + chef_hat: シェフハット + school_hat: 学生帽 + pirate_hat: 海賊の帽子 + cabbie_hat: キャビーハット + bucket_hat: バケットハット + hardhat: 安全帽 + straw_hat: ストローハット + sun_hat: 日よけ帽子 + rice_hat: 米の葉帽子 + animal_hat: 動物の帽子 + fur_hat: 毛皮の帽子 + hat_with_ears: 耳のついた帽子 + bobblehat: ボブルハット + pillow_hat: 枕帽子 + pumpkin_hat: パンプキンハット + baseball_cap: 野球帽 + flat_cap: フラットキャップ + torn_hat: 破れた帽子 + mob_cap: モブキャップ + newsboy_cap: ニュースボーイキャップ + bowknot_over_white_beret: 白いベレー帽に結び目 + backwards_hat: 後ろ向きの帽子 + bowl_hat: ボウルハット + cat_hat: 猫の帽子 + chat_log: チャットログスタイル + cowboy_hat: カウボーイハット + dixie_cup_hat: ディキシーカップ帽 + hat_bow: リボンのついた帽子 + hat_feather: 羽根のついた帽子 + hat_flower: 花のついた帽子 + hat_ornament: 飾りのついた帽子 + hat_over_one_eye: 一つの目を隠す帽子 + hat_removed: 帽子を取り外した + hat_ribbon: リボンのついた帽子 + hat_tip: 帽子のつばを持つ + hatching_(texture): ハッチング(テクスチャ) + hatsune_miku_(cosplay): 初音ミクのコスプレ + is_that_so: そうなのか + porkpie_hat: ポークパイハット + sailor_hat: セーラーハット + santa_hat: サンタの帽子 + sideways_hat: 帽子のつばを横に + what: 作者の気まぐれ + what_if: 別の世界線 + + - name: 髪飾り + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: 髪リボン + hairband: 髪バンド + hair_tie: 髪留め + lolita_hairband: ロリータヘアバンド + frilled_hairband: フリルのついたヘアバンド + lace-trimmed_hairband: レーストリムのついたヘアバンド + hair_bobbles: 髪ゴム + hair_ornament: 髪飾り + hair_flower: 髪の花 + x_hair_ornament: X型の髪飾り + hair_bow: ヘアボウ + frog_hair_ornament: カエルの髪飾り + heart_hair_ornament: ハートの髪飾り + butterfly_hair_ornament: 蝶の髪飾り + star_hair_ornament: 星の髪飾り + food-themed_hair_ornament: 食べ物のテーマの髪飾り + anchor_hair_ornament: アンカー型の髪飾り + bat_hair_ornament: コウモリの髪飾り + carrot_hair_ornament: 人参の髪飾り + cat_hair_ornament: 猫の髪飾り + clover_hair_ornament: クローバーの髪飾り + crescent_hair_ornament: 三日月の髪飾り + cross_hair_ornament: 十字の髪飾り + d-pad_hair_ornament: 十字キーの髪飾り + fish_hair_ornament: 魚の形の髪飾り + hairpods: 髪の毛に対になったワイヤレスイヤホンのような髪飾り + leaf_hair_ornament: 葉の髪飾り + musical_note_hair_ornament: 音符の髪飾り + pumpkin_hair_ornament: カボチャの髪飾り + skull_hair_ornament: 髑髏の髪飾り + snake_hair_ornament: 蛇型の髪飾り + snowflake_hair_ornament: 雪の結晶の髪飾り + strawberry_hair_ornament: 苺の髪飾り + sunflower_hair_ornament: ひまわりの髪飾り + hairpin: ヘアピン + hairclip: 髪クリップ + hair_tubes: 髪の管 + hair_stick: 髪棒 + hair_bun: 髪の束 + single_hair_bun: 一つの髪の束 + hair_bell: 髪の鈴 + hair_rings: 髪の輪 + + - name: 小装飾品 + color: rgba(230, 84, 128, .4) + tags: + ring: 指輪 + wedding_band: 結婚指輪 + earrings: イヤリング + single_earring: 一つのイヤリング + stud_earrings: スタッドイヤリング + necklace: ネックレス + jewelry: ジュエリー + crystal: クリスタル + brooch: ブローチ + gem: 宝石 + chest_jewel: 胸の宝石 + forehead_jewel: 額の宝石 + tassel: タッセル + belly_chain_: ベリーチェーン + lace: レース + ribbon: リボン + stitches: ステッチ + scarf: スカーフ + bandaid: 絆創膏 + collar: 襟 + belt: ベルト + steam: 蒸気 + bell: ベル + amulet: 護符 + emblem: エンブレム + flag_print: 旗のプリント + anchor_symbol: アンカーのシンボル + cross: 十字 + diffraction_spikes: 衍射スパイク + iron_cross: 鉄十字 + latin_cross: ラテン十字 + lace-trimmed_hairband: レーストリムのついたヘアバンド + ankle_lace-up: 足首のレースアップ + st._gloriana's_(emblem): セントグロリアナの紋章 + heart_lock_(kantai_collection): ハートロック(艦これ) + garters: ガーター + thigh_strap: 太ももストラップ + thigh_ribbon: 太ももリボン + leg_garter: 脚のガーター + garter_straps: ガーターストラップ + leg_ribbon: 脚リボン + bandaid_on_leg: 脚に絆創膏 + bandaged_leg: 包帯巻きの脚 + arm_garter: 腕のガーター + joints: 関節 + kneepits: 膝の裏 + knee_pads: ニーパッド + thigh_holster: 太ももホルスター + bandaid_on_knee: 膝に絆創膏 + + - name: 首飾り + color: rgba(230, 84, 128, .4) + tags: + bracelet: ブレスレット + choker: チョーカー + metal collar: 金属の首輪 + ring: 指輪 + wristband: 腕バンド + pendant: ペンダント + brooch: ブローチ + hoop earrings: フープイヤリング + bangle: バングル + stud earrings: スタッドイヤリング + sunburst: 太陽の飾り + pearl bracelet: 真珠のブレスレット + drop earrings: ドロップイヤリング + puppet rings: 人形の指輪 + corsage: コサージュ + sapphire brooch: サファイアのブローチ + jewelry: ジュエリー + necklace: ネックレス + +- name: 表情動作 + groups: + - name: 笑 + color: rgba(241, 229, 140, .4) + tags: + smile: 微笑 + laughing: 大笑 + kind_smile: 幸せな笑顔 + :d: 幸せな笑顔_:D😀 + ;d: 瞬き笑顔_:D + grin: 歯を見せて笑う + teasing_smile: からかわれて笑う、歯を見せてバカ笑い + seductive_smile: 魅惑的な微笑み + smirk: ニヤリと笑う、得意げな笑顔 + giggling: くすくす笑い + smug: うぬぼれた + naughty_face: いたずらっ子の顔 + evil smile: 邪悪な笑み + crazy_smile: 狂気じみた笑い + happy: 幸せ|幸福 + happy_birthday: 誕生日おめでとう + happy_halloween: ハッピーハロウィン + happy_new_year: 明けましておめでとう + happy_tears: 幸せな涙 + happy_valentine: ハッピー・バレンタイン + + - name: 哭 + color: rgba(241, 229, 140, .4) + tags: + sad: 悲しい + tear: 泣きじゃくる + crying: 大泣き + crying_with_eyes_open: 目を開けて泣く + streaming_tears: 涙を流す + teardrop: 涙滴 + tearing_clothes: 衣服を引き裂く + tearing_up: 泣きそうな表情 + tears: 涙 + wiping_tears: 涙を拭く + badmood: 機嫌が悪い + + - name: 不开心 + color: rgba(241, 229, 140, .4) + tags: + frustrated: 意気消沈 + frustrated_brow: 顔をしかめる + annoyed: 苦悩している + anguish: 苦悩 + sigh: ため息 + gloom: 陰気な + disappointed: がっかりした + despair: 絶望 + + - name: 蔑视 + color: rgba(241, 229, 140, .4) + tags: + disgust: 嫌悪(ゴミのような目) + disdain: 軽蔑 + contempt: 蔑視 + shaded_face: 顔に陰がある、蔑視に合わせる + jitome: 軽蔑の目つき + frown: 顔をしかめる + wince: 顔をしかめる(性交前) + furrowed_brow: 顔の眉をひそめる + fear_kubrick: 恐怖で横目 + laughing: 笑っている + + - name: 生气 + color: rgba(241, 229, 140, .4) + tags: + angry: 怒っている + glaring: 怒りのまなざし + serious: 真剣な(angryと似ている) + kubrick_stare: 横目で睨む + evil: 邪悪な + sulking: 不機嫌な + screaming: 叫び|大声で叫ぶ + shouting: 叫ぶ + + - name: 其他表情 + color: rgba(241, 229, 140, .4) + tags: + expressionless: 無表情 + sleepy: 眠い + drunk: 酔っぱらっている + bored: 退屈な + confused: 困惑させる + thinking: 考える + lonely: 孤独な + light_blush: 軽い顔紅 + blush: 顔紅 + shy: 内気な + embarrass: 恥ずかしい(困った) + facepalm: 手で顔を覆う + flustered: 戸惑った + sweat: 汗をかく + scared: 怖がっている + ahegao: アヘ顔 + endured_face: 忍耐の表情 + restrained: 忍耐 + dark_persona: ダークな + crazy: 狂気じみた + exhausted: 疲れ切った + Tsundere: ツンデレ + yandere: 病的な愛情を持つ + multiple_persona: 複数の人格 + Jekyll_and_Hyde: 複数の人格 + twitching: 痙攣 + spasm: 痙攣 + trembling: 震え + rape_face: 強姦顔 + rolling_eyes: 目を回す(絶頂の目) + envy: 嫉妬 + female_orgasm: 絶頂 + heavy_breathing: 重い呼吸、おそらく使用されない + naughty: いたずらっ子 + expressions: 表情の差分(おおよそ) + moaning: 喘ぎ声 + scowl: 嫌いな目つき + + - name: 基础动作 + color: rgba(241, 229, 140, .4) + tags: + standing: 立っている + on back: 仰向けになる + on stomach: うつ伏せになる + kneeling: ひざまずく + on_side: 横たわる + on_stomach: うつ伏せになる + top-down_bottom-up: うつ伏せでお尻を突き出す + the_pose: うつ伏せで足を突き出す + bent_over: お尻を突き出すポーズ + upside-down: 逆さま + reversal: 逆転 + fighting_stance: 戦闘姿勢 + leaning_to_the_side: 一方に寄りかかる + leaning: 寄りかかる|体を傾ける + leaning_back: 身体を後ろに傾ける + leaning_on_object: 物に寄りかかる + arched_back: 背中を反らす + leaning_forward: 身体を前に傾ける + afloat: 浮かぶ(水上に) + lying: 横になる + fetal_position: 胎児の姿勢(横になる) + lying_on_person: 人の上に横になる + lying_on_the_lake: 湖の上に横になる + lying_on_water: 水の上に横になる + on_back: 仰向けになる + prone_bone: 背後から仰向けに + reclining: 斜めに倒れた姿勢 + sleeping_upright: 直立して寝る + presenting: 披露(後に部位を追加) + spinning: 回転する + posing: ポーズをとる + stylish_pose: おしゃれなポーズ + public_indecency: 公然わいせつ + parody: パロディ + in_container: 容器の中に + against_glass: ガラスに押し付ける(効果なし) + aiming: 狙う + aiming_at_viewer: 見る人を狙う + applying_makeup: 化粧する + bathing: 入浴する + biting: 噛む + bleeding: 出血する + blowing: 吹く + bowing: お辞儀する + breathing_fire: 火を吹く + broom_riding: ほうきに乗る + brushing_teeth: 歯を磨く + bubble_blowing: 泡を吹く + bullying: いじめる + burning: 燃える + cast: 投げる + chasing: 追いかける + cleaning: 掃除する + climbing: 登る + comforting: 慰める + cooking: 料理する + crying: 泣く + cuddling: 抱きしめる + dancing: 踊る + diving: 潜る + dragging: 引っ張る + drawing: 描く + drawing_bow: 弓を引く + dreaming: 夢を見る + drinking: 飲む + driving: 運転する + dropping: (意図せずに)落とす + drying: 乾かす(入浴後) + dual_wielding: 両手持ち + exercise: 運動する + fighting: 戦闘中の + firing: 射撃する + fishing: 釣りをする + flapping: 手をバタバタと動かす + flashing: 露出する + fleeing: 逃げる + flexing: 筋肉を見せる + flying: 飛ぶ + flying_kick: 飛び蹴り + hair_brushing: 髪をとかす + hair_tucking: 髪をかき上げる + hanging: 吊るす + hitting: 打つ + imagining: 想像中の + jumping: 跳ぶ + kicking: 蹴る + licking: 舐める + licking_lips: 唇を舐める + lip_biting: 唇を噛む + meditation: 瞑想する + painting: 絵を描く + Painting_(Action): 絵を描く + playing_card: トランプをする + playing_games: ゲームをする + playing_instrument: 楽器を演奏する + pole_dancing: ポールダンス + praying: 祈る + punching: パンチをする + pushing: 押す + railing: 手で手すりをつかむ + reading: 読む + riding: 乗る + running: 走る + sewing: 縫う + shopping: 買い物をする + showering: シャワーを浴びる + sing: 歌う + singing: 歌う + slashing: 斬る + sleeping: 眠る + smelling: 匂いを嗅ぐ + smoking: タバコを吸う + sneezing: くしゃみをする + snowing: 雪が降る + soaking_feet: 足を浸す + soccer: サッカー + spilling: 容器から液体をこぼす動作 + spitting: 口から液体を吐く動作 + splashing: 水しぶきを上げる + standing_on_liquid: 液体の上に立つ + standing_on_one_leg: 片脚立ち + standing_split: 立ち高抬脚 + steepled_fingers: 指先を交差させる + strangling: 絞める + sweeping: 掃除する + swimming: 泳ぐ + swing: 揺れる + tail_wagging: 尾を振る + taking_picture: 写真を撮る|セルフィー + talking: 台詞のある + talking_on_phone: 電話をする + teasing: からかう + thinking: 考える + tickling: くすぐる + toilet_use: トイレを使う + tossing_: 投げる + tripping: 転ぶ + trolling: いたずら行為 + twitching: 痙攣 + tying: 結ぶ(動作) + unsheathing: 鞘から抜く + untying: 解く + unzipping: ファスナーを開ける(動作) + wading: 水に足を浸す + waking_up: 目を覚ます + walking: 歩く + walking_on_liquid: 液体の上を歩く + washing: 洗う + whispering: ささやく + wrestling: レスリング(スポーツ) + writing: 書く + yawning: あくびをする + hiding: 隠れる + + - name: 手部动作 + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: 背後で手を組む + arm_above_head: 手を頭の上に + arm_behind_head: 頭の後ろに手を回す + arms_crossed: 腕を交差させる + arm_support: 手で支える + armpits: 脇を見せる + arms_up: 手を上げる + hands_on_hips: 両手を腰に当てる + arm_around_waist: 一方の手で腰を抱く + caramelldansen: 有名な手を伸ばして腰を振る動作 + hands_in_opposite_sleeves: 両手を反対の袖に入れる + waving: 手を振る + crossed_arms: 両腕を交差させる + outstretched_arms: 両腕を伸ばす + v_arms: 両腕をV字に広げる + w_arms: 両腕をW字に広げる + salute: 敬礼する + reaching: (目的を持って)手を伸ばす + reaching_out: 絵の外に手を伸ばす + stretch: 体を伸ばす + hugging_own_legs: 自分の足を抱きしめる + arm_blade: 腕の刃 + arm_grab: 腕を掴む + arm_held_back: 手を後ろに引く + arm_ribbon: 腕のリボン + bandaged_arm: 包帯を巻いた腕 + bandaid_on_arm: 腕にバンドエイドを貼る + bound_arms: 腕を拘束する + convenient_arm: 鍵部位を隠す手 + extra_arms: 追加の腕 + locked_arms: 両腕を組む + outstretched_arm: 腕を伸ばす + waving_arms: 腕を振り回す + arm_at_side: 一方の手を横に垂らす + arm_behind_back: 一方の手を背中に回す + shou: 一方の手を頭の後ろに + arm_cannon: 腕砲 + arm_hug: 腕を組む + arm_up: 腕を上げる + arms_at_sides: 両手を横に垂らす + arms_behind_head: 両手で頭を抱える + hand_to_mouth: 手を口元に当てる + shushing: シュッとするジェスチャー + cat_pose: 猫の手のポーズ + claw_pose: 爪のポーズ + paw_pose: 招き猫のポーズ(手首を下げる) + fox_shadow_puppet: キツネの手のポーズ + double_fox_shadow_puppet: b + finger_gun: 指を銃の形にするジェスチャー + v: Vサイン + double_v: 二重V + thumbs_up: 親指を立てる + index_finger_raised: 人差し指を立てる + middle_finger: 国際的なフレンドリーなジェスチャー + grimace: しかめっ面をする + eyelid_pull: しかめっ面をする + fingersmile: 指で笑顔を作る + wiping_tears: 涙を拭く + finger_on_trigger: トリガーに指をかける準備のジェスチャー + pointing_at_self: 自分を指さす + pointing_at_viewer: 見ている人を指さす + pointing_up: 上を指す + poking: ツンツンする + hand_gesture: 手のジェスチャーをする + ok_sign: OKのサイン + shading_eyes: 目を遮るジェスチャー + finger_biting: 指を噛む + finger_in_mouth: 指を口に入れる + fingering_through_clothes: 衣服を通して指で触る + fingers_together: 指をくっつける + hair_twirling: 指で髪を巻く + hands_clasped: 両手を組む|両手を握りしめる + holding_hair: 髪を握る|指で髪を回す + pointing: 指で指す + sharp_fingernails: 鋭い爪 + sleeves_past_fingers: 袖が指を超える + spread_fingers: 指を広げる + trigger_discipline: トリガーに指を置かない + w: 手でWの形を作る + balancing: バランスを保つポーズ + curvy: 魅力的なポーズ + multiple_views: 複数の視点|複数のポーズ + pose: ポーズ + ready_to_draw: 抜刀の準備をするポーズ + trefoil: 尻を見せるポーズ + zombie_pose: ゾンビのポーズ + beckoning: 手で招く + bunching_hair: 髪を束ねる + carrying: 抱える + carrying_over_shoulder: 肩に担ぐ + carrying_under_arm: 脇に挟む + cheering: 応援する + finger_to_mouth: 口元に手を当てる + cheek_pinching: ほっぺたをつねる + cheek_poking: ほっぺたを突く + chin_stroking: あごを撫でる + hair_pull: 髪を引っ張る + covering_mouth: 口を覆う + covering_xx: xxを覆う + self_fondle: 自分を愛撫する + adjusting_thighhigh: タイハイを調整する + chin_rest: あごを支える + head_rest: 頭を支える + take: 取る + _sheet_grab: シーツを掴む + groping: 触り回す + skirt_lift: スカートをめくる + crotch_grab: 股間を掴む + covering_chest_by_hand: 手で胸を隠す + bangs_pinned_back: 前髪を留める + clothes_lift: 衣類をめくり上げる + dress_lift: ドレスをめくり上げる + kimono_lift: 着物をめくり上げる + lifted_by_another: 他人に衣類をめくられる + lifted_by_self: 自分で衣類をめくり上げる + shirt_lift: シャツを引き上げる + skirt_basket: スカートをめくり上げたときにできるバスケットの形 + skirt_flip: スカートをめくり上げる(突発的な状況を含む) + bikini_lift: 上に引き上げたビキニ + leg_lift: 一本足を上げる + lifting_person: 人を抱き上げる + strap_lift: 衣類のストラップを上に引っ張る + wind_lift: 風によるめくれ上がり|上昇気流 + bikini_pull: ビキニを引っ張る + cheek_pull: ほっぺたを引っ張る + clothes_pull: 衣類を引っ張る + dress_pull: ドレスの胸部分を剥ぎ取る + hair_pulled_back: 髪を後ろに引っ張る + kimono_pull: 着物を剥ぎ取る + leotard_pull: レオタードを剥ぎ取る + mask_pull: マスクを引っ張る + pants_pull: パンツを引っ張る + pulled_by_another: 別の人に引っ張られる(または衣類を引っ張られる) + pulled_by_self: 自分で衣類を引っ張り下ろす + pulling: 引っ張る + shirt_pull: シャツを引っ張る + shorts_pull: ショートパンツを脱ぐ + skirt_pull: スカートを引っ張る + swimsuit_pull: 水着を引っ張る + zipper_pull_tab: ファスナーの引き手を引く + adjusting_clothes: 服の調整 + adjusting_eyewear: 眼鏡の調整 + adjusting_gloves: 手袋の調整 + adjusting_hair: 髪の調整 + adjusting_hat: 帽子の整理 + adjusting_swimsuit: 水着の調整 + + - name: 手の動き(何かを持っている) + color: rgba(241, 229, 140, .4) + tags: + holding: 何かを持っている + holding_animal: 動物を抱いている + holding_arrow: 弓を引いている + holding_axe: 斧を握っている + holding_bag: バッグを持っている + holding_ball: ボールを抱えている + holding_basket: バスケットを持っている + holding_book: 本を抱えている + holding_bottle: ボトルを持っている + holding_bouquet: 花束を手に持っている + holding_bow_(weapon): 弓を持っている(武器) + holding_bowl: 両手でボウルを持っている + holding_box: 箱を持っている + holding_breath: 息を止めている + holding_broom: ほうきを持っている + holding_camera: カメラを手に持っている + holding_can: 缶を持っている + holding_candy: キャンディを手に持っている + holding_card: カードを手に持っている + holding_cat: 猫を抱いている + holding_chopsticks: 箸を持っている + holding_cigarette: タバコをくわえている + holding_clothes: 衣類を持っている + holding_condom: コンドームを手に持っている + holding_cup: カップを手に持っている + holding_dagger: 短剣を手に持っている + holding_doll: 人形を抱いている + holding_eyewear: 眼鏡を持っている|眼鏡を外している + holding_fan: 扇子を持っている + holding_flag: 旗を手に持っている + holding_flower: 花を持っている + holding_food: 食べ物を持っている + holding_fork: フォークを持っている + holding_fruit: 果物を持っている + holding_gift: ギフトを持っている + holding_gun: 銃を持っている + holding_hands: 手をつないでいる + holding_hat: 帽子を持っている + holding_head: 頭を抱えている + holding_helmet: ヘルメットを持っている + holding_innertube: インナーチューブを持っている + holding_instrument: 楽器を持っている + holding_knife: ナイフを持っている + holding_leaf: 葉を持っている + holding_lollipop: ぺろぺろキャンディを持っている + holding_mask: マスクを持っている + holding_microphone: マイクを持っている + holding_needle: 針を持っている + holding_own_foot: 自分の足を握っている + holding_paintbrush: 絵筆を持っている + holding_paper: 紙を持っている + holding_pen: ペンを握っている + holding_pencil: 鉛筆を手に持っている + holding_phone: 携帯電話を持っている + holding_pillow: 枕を抱えている + holding_pipe: パイプを持っている + holding_pizza: ピザを持っている + holding_plate: 皿を持っている + holding_poke_ball: ポケモンのモンスターボールを持っている + holding_pokemon: ポケモンを抱いている + holding_polearm: 長柄武器を手に持っている + holding_sack: 袋を持っている + holding_scythe: 鎌を手に持っている + holding_sheath: 刀鞘を握っている + holding_shield: 盾を手に持っている + holding_shoes: 靴を持っている + holding_sign: 看板を手に持っている + holding_spear: 槍を手に持っている + holding_spoon: スプーンを持っている + holding_staff: 杖を手に持っている + holding_strap: ストラップを引いている + holding_stuffed_animal: ぬいぐるみを抱いている + holding_stylus: スタイラスを手に持っている + holding_sword: 剣を手に持っている + holding_syringe: 注射器を手に持っている + holding_towel: タオルを持っている + holding_tray: トレイを支えている + holding_umbrella: 傘をさしている + holding_wand: ステッキを握っている + holding_whip: 鞭を握っている + arm_around_neck: 片手で首を抱えている + arms_around_neck: 両手で首を抱えている + + - name: 手の動き(場所に置いている) + color: rgba(241, 229, 140, .4) + tags: + covering: 覆っている動作 + covering_face: 顔を覆っている + covering_ass: 尻を覆っている + covering_crotch: 股間を覆っている + covering_eyes: 目を覆っている + covering_mouth: 口を覆っている + covering_nipples: 乳首を覆っている + hands_on_another's_: 両手で他人の顔を触っている + hands_on_another's_cheeks: 両手で相手の頬を触っている + hands_on_ass: 両手で尻を触っている + hands_on_feet: 両手で足を触っている + hands_on_headwear: 両手で頭につけたものに触れている + hands_on_hilt: 両手で刀の柄に添えている + hands_on_lap: 両手を膝の間に置いている + hands_on_own_face: 両手で自分の顔を触っている + hands_on_own_cheeks: 両手で自分の頬を触っている + hands_on_own_chest: 両手で自分の胸を触っている + hands_on_own_head: 両手で自分の頭を触っている + hands_on_own_knees: 両手で自分の膝を触っている + hands_on_own_stomach: 両手で自分のお腹を触っている + hands_on_own_thighs: 両手で自分の太ももを触っている + hands_on_another's_shoulders: 両手で他人の肩を触っている + hands_on_hips: 両手を腰に当てている|両手を腰に置いている + hand_on_another's_: 手が相手の顔に触れている + hand_on_another's_cheek: 手が相手の頬に触れている + hand_on_another's_chest: 手が相手の胸に当たっている + hand_on_another's_chin: 手が相手の顎を支えている + hand_on_another's_head: 手が相手の頭に当たっている + hand_on_another's_shoulder: 手が相手の肩に当たっている + hand_on_another's_stomach: 手が相手のお腹に当たっている + hand_on_ass: 手が尻に当たっている + hand_on_head: 手が頭に当たっている + hand_on_headwear: 手が帽子に触れている + hand_on_hilt: 手が刀の柄に当たっている + hand_on_hip: 手が腰に当たっている|手が腰に置かれている + hand_on_own_: 手を自分の顔に当てている + hand_on_own_cheek: 手を自分の頬に当てている + hand_on_own_chest: 手を自分の胸に当てている + hand_on_own_chin: 手が自分の顎に当たっている + hand_on_own_stomach: 手を自分のお腹に当てている + hand_on_shoulder: 手が肩に当たっている + hand_in_another's_hair: 手が相手の髪に当たっている + hand_in_hair: 手が髪に埋まっている + hand_in_pocket: 手をポケットに入れている + + - name: 手の動き(何かをつかんでいる) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: 尻をつかんでいる + flat_chest_grab: 平らな胸をつかんでいる + grabbing: つかんでいる + grabbing_another's_ass: 相手の尻をつかんでいる + grabbing_another's_hair: 相手の髪をつかんでいる + grabbing_from_behind: 後ろから胸を揉んでいる|後ろから胸をつかんでいる + grabbing_own_ass: 自分の尻をつかんでいる + guided_penetration: 男性器をつかんで自分に挿入している + hair_grab: 髪をつかんでいる + leg_grab: 脚をつかんでいる + necktie_grab: ネクタイをつかんでいる + neckwear_grab: 首元の衣類をつかんでいる + penis_grab: 男性器をつかんでいる + pillow_grab: 枕をつかんでいる + sheet_grab: シーツをつかんでいる + tail_grab: 尾をつかんでいる + thigh_grab: 太ももをつかんでいる + torso_grab: 胴体をつかんでいる + wrist_grab: 手首をつかんでいる + + - name: 脚の動き + color: rgba(241, 229, 140, .4) + tags: + legs_up: 一本の脚を上げている + spread legs: 脚を広げている + legs_together: 脚を閉じている + crossed_legs: 脚を組んでいる + m_legs: M字開脚 + standing_split,_leg_up: M字開脚 + curtsy: カーテシー(メイドが行うお辞儀) + hand_between_legs: 脚の間に手を置いている + open_stance: 開脚の姿勢 + convenient_leg: 股間を隠す脚の位置 + leg_lock: 両脚で締め付けている + legs: 両脚 + legs_over_head: 両脚を頭の上に上げている + squatting,_open_legs: しゃがんで脚を開いている + knees_together_feet_apart: 膝をくっつけて足を広げている + animal_on_lap: 膝の上に動物がいる + hand_on_own_knee: 手を自分の膝に置いている + knee_up: 膝を上げている + knees: 膝 + knees_to_chest: 膝を胸に近づけている + on_lap: 膝の上に座っている + sitting: 座っている + wariza: 腰掛け座り + straddling: 跨がって座っている + yokozuwari: 横座り + sitting_backwards: 後ろ向きに座っている + sitting_in_tree: 木に座っている + sitting_on_xx: 物の上に座っている + butterfly_sitting: 胡蝶座り + lotus_position: 蓮華座 + sitting_on_railing: 手すりに座っている + sitting_on_rock: 岩の上に座っている + sitting_on_stairs: 階段に座っている + sitting_on_table: テーブルに座っている + sitting_on_water: 水の上に座っている + cushion: 座布団 + indian_style: 脚を組んで座っている + sitting_on_chair: 椅子に座っている + sidesaddle: サイドサドル + sitting_on_bed: ベッドに座っている + sitting_on_desk: 机に座っている + sitting_on_lap: 大腿の上に座っている + sitting_on_person: 人の上に座っている + upright_straddle: 対面座位 + squatting: しゃがんでいる + one_knee: 一本の膝 + kneeling: 跪いている + all_fours: 四つん這い + gravure_pose: グラビアポーズ + kicking: 蹴っている + high_kick: ハイキック + soaking_feet: 足を浸している + reclining: 横になっている + hugging_own_legs: 自分の脚を抱えている + bare_legs: 裸足 + between_legs: (強調)両脚の間 + cropped_legs: 脚の一部のみ描かれている + k/da_(league_of_legends): KDA(リーグ・オブ・レジェンド) + leg_belt: 脚にベルトを巻いている + leg_hair: 脚の毛 + leg_up: 脚を上げている + legs_apart: 脚を開いている + lowleg: M字開脚 + mechanical_legs: 機械の足 + multiple_legs: 複数の足を持つキャラクター + no_legs: 脚が描かれていない + no_legwear: 下半身が裸 + tail_between_legs: 尾を脚の間に挟んでいる + barefoot: 裸足 + foot_out_of_frame: 片足がフレーム外 + footprints: 足跡 + dirty_feet: 足の描き方が間違っている + feet: 足 + feet_out_of_frame: 両足がフレーム外 + feet_up: 足を上げている + wrong_feet: 足の描き方が間違っている + cameltoe: キャメルトウ + pigeon-toed: 内股の脚 + tiptoes: 足の指先立ち + toe-point: 足先 + amputee: 切断された|片足|肢体が欠損した|切断された少女 + ankle_strap: 足首のストラップ + ankle_wrap: 足首を巻いている + crossed_ankles: 足首を交差させている + pince-nez: ピンネジ(脚のない眼鏡) + folded: 脚を上げて股間を露出している + thick_thighs: 太ももが太い + thigh_holster: 腿にホルスターまたはツールバッグまたは銃のケースがある + + - name: その他の動作 + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: 胸同士が触れている|胸が胸に当たっている + back-to-back: 背中合わせ + cunnilingus: クンニ + eye_contact: 目と目が合う(視線の交差) + facing_another: 相手を向いている + facing_away: 向かい合っている(顔がとても近い) + feeding: 餌を与える + finger_in_another's_mouth: 口の中に指を入れる + fingering: 手淫 + french_kiss: フレンチキス + giving: 渡す|与える + grinding: 股間をすり合わせる|お尻をすり合わせる + groping: 乱暴な愛撫 + holding_hands: 手をつないでいる + hug: 抱擁 + imminent_kiss: キスをする直前 + incoming_food: 食べ物を受け取る + incoming_gift: ギフトを受け取る + interlocked_fingers: 手を組んでいる + Kabedon: 壁ドン + lap_pillow: 膝枕 + licking_penis: 男性器を舐める + long_tongue: 長い舌 + mimikaki: 耳かき + oral_invitation: 射精を迎えるために舌を出す + princess_carry: プリンセスキャリー + shared_bathing: 共同入浴|鴛鴦浴 + shared_food: 食べ物を共有する|口移し + sitting_on_head: 頭の上に座っている + sitting_on_shoulder: 肩に座っている + slapping: 打つ + spanking: 尻を叩く + special_feeling_(meme): 雪の中で傘をさす恋人たちのミーム + symmetrical_docking: 胸同士が圧迫されている + tongue: 舌 + tongue_out: 舌を出す + uvula: のどちんこ|口蓋垂 + ear_biting: 耳を噛む + mixed_bathing: 混浴 + +- name: 画面 + groups: + - name: 画質 + color: rgba(0, 255, 255, .4) + tags: + checkered: チェック柄 + lowres: 低解像度 + highres: 高解像度 + absurdres: 非現実的な高解像度 + incredibly absurdres: 非現実的に高い解像度 + huge filesize: 超高解像度/巨大なファイルサイズ + wallpaper: 壁紙 + pixel art: ピクセルアート + monochrome: モノクロ画像 + colorful: カラフルな + + - name: 芸術スタイル + color: rgba(0, 255, 255, .4) + tags: + artbook: アートブック + game cg: ゲームCG + comic: コミック + 4koma: 4コマ漫画 + animated gif: アニメーションGIF + dakimakura: 抱き枕 + cosplay: コスプレ + crossover: クロスオーバー + dark: ダークな + light: 明るい + guro: グロ + realistic: リアル + photo: 写真 + real: 真実の + landscape/scenery: 風景 + cityscape: 都市風景 + science fiction: 科学技術の幻想 + original: オリジナル + parody: パロディ + personification: 擬人化 + optical illusion: 視覚の錯覚 + fine art parody: 名画のパロディ + sketch: スケッチ + traditional media: 伝統的なメディア(手描き) + watercolor (medium): 水彩画 + silhouette: シルエット + cover: カバー + album: アルバム + sample: 文字入りの画像 + back: 背後の画像 + bust: バストアップ + profile: 横顔 + expressions: 表情 + everyone: 作品の主要なキャラクターが集まったもの + column lineup: 列ごとの小さな画像で構成された大きな画像 + transparent background: 透明な背景 + simple background: シンプルな背景 + gradient background: グラデーションの背景 + zoom layer: 背景が前景の拡大版 + 8 Bit Game: 8ビットゲーム + 1980s anime: 1980年代のアニメ + disney movie: ディズニー映画 + goth: ゴスロック + 80s movie: 1980年代の映画 + bubble bobble: バブルボブル + style of Pixar: ピクサーのスタイル + Polaroid art: ポラロイドアート + Kaleidoscope Photography: カレイドスコープ写真 + opal render: オパールレンダリング + chemigram: ケミグラム + Studio Ghibli: スタジオジブリのスタイル + dreamlike: 夢のような + (faux traditional media): 模擬伝統的なメディアのスタイル + genshin impact: 原神 + azur lane: アズールレーン + kantai collection: 艦隊これくしょん + rebecca (cyberpunk): レベッカ(サイバーパンク) + chainsaw man: チェンソーマン + Magic Vortex: 魔法の渦巻き + ((dieselpunk)): ディーゼルパンク + magazine scan: 雑誌のスキャン + album cover: アルバムのカバー + (lineart): 線画 + synthwave: シンセウェーブ + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): ロココ + + - name: 芸術の種類 + color: rgba(0, 255, 255, .4) + tags: + monochrome: モノクロ画像 + Collage: コラージュアート + Dalle de verre: ガラスモザイク + pixel art: ピクセルアート + Encaustic painting: エンカウスティック絵画 + Ink wash painting: 水墨画 + Mezzotint: メゾチント + silhouette: シルエット + illustration: イラスト + (((ink))), ((watercolor)): 水彩画 + illustration,(((ukiyoe))),((sketch)),((japanese_art)): 浮世絵 + ((wash painting)),((ink s...)): 中国風 + ((dyeing)),((oil painting)),((impasto)): 油絵 + (posing sketch), (monochrome): モノクロのポーズスケッチ + sketch: スケッチ + (monochrome), (gray scale), (pencil sketch lines: 鉛筆スケッチ + (watercolor pencil): 水彩鉛筆 + + - name: 芸術派 + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): アール・ヌーヴォー + ((classicism)): 古典主義 + ((futurism)): フューチャリズム + ((Dadaism)): ダダイスム + ((abstract art)): 抽象芸術 + ((ASCII art)): ASCIIアート + + - name: アーティストのスタイル + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): アルフォンス・ミュシャのスタイル + ((Monet style)): モネのスタイル + + - name: 照明 + color: rgba(0, 255, 255, .4) + tags: + rim light: リムライト + Volumetric Lighting: ボリューメトリックライティング + glowing neon lights: 発光するネオンライト + Cinematic Lighting: シネマティックな照明 + lens flare: レンズフレア + metallic luster: 金属の光沢 + moody lighting: ムーディな照明 + Tyndall effect: ティンダル効果 + light leaks: 光漏れのエフェクト + background light: 背景の光 + available light: 天然光 + + - name: リアル + color: rgba(0, 255, 255, .4) + tags: + realistic: リアル + highres: 厚塗り(スタイル) + photo_(medium): 写真風(スタイル) + oil_painting: 油絵 + reality: 現実 + polaroid: ポラロイド写真 + + - name: スケッチ + color: rgba(0, 255, 255, .4) + tags: + sketch: スケッチ + flat_color: フラットカラー + monochrome: モノクロ + spot_color: スポットカラー + halftone: ハーフトーン + greyscale: グレースケール + high_contrast: 高コントラスト + partially_colored: 部分的に着色された + chromatic_aberration: 色収差 + contour_deepening: 輪郭の強調 + outline: アウトライン + silhouette: シルエット + + - name: ペン + color: rgba(0, 255, 255, .4) + tags: + traditional_media: 伝統的なメディア(紙など) + faux_traditional_media: 伝統的なメディアの模倣 + marker_(medium): マーカー + copics: コピック + pencil_sketch_lines: 鉛筆スケッチ + graphite_(medium): グラファイト鉛筆 + colored_pencil_(medium): カラーペンシル + millipen_(medium): ミリペン + nib_pen_(medium): ニブペン + ballpoint_pen_(medium)_: ボールペン + pastel_color: 淡い色彩 + watercolor_(medium): 水彩 + acrylic_paint_(medium): アクリル絵の具 + contour_deepening: 線の太さ + + - name: 色 + color: rgba(0, 255, 255, .4) + tags: + orange: オレンジ色 + blue: 青色 + red: 赤色 + light_brown: 明るい茶色 + dark_pink: 濃いピンク色 + khaki: カーキ色 + blonde: 金髪の + brown: 茶色 + black: 黒色 + gray: 灰色 + darkgray: 濃い灰色 + silver: 銀色 + lightgray: 明るい灰色 + gainsboro: ゲインズボロ色 + whitesmoke: ホワイトスモーク色 + snow: 雪色 + ghostwhite: ゴーストホワイト色 + floralwhite: フローラルホワイト色 + linen: 亜麻色 + antiquewhite: アンティークホワイト色 + papayawhip: パパイヤホイップ色 + blanchedalmond: ブランチドアーモンド色 + bisque: ビスク色 + moccasin: モカシン色 + navajowhite: ナバホホワイト色 + peachpuff: ピーチパフ色 + mistyrose: ミスティローズ色 + lavenderblush: ラベンダーブラッシュ色 + seashell: シーシェル色 + oldlace: オールドレース色 + ivory: アイボリー色 + honeydew: ハニーデュー色 + mintcream: ミントクリーム色 + azure: 空色 + aliceblue: アリスブルー色 + lavender: ラベンダー色 + lightsteelblue: 明るい鋼色 + lightslategray: 明るいスレートグレー色 + slategray: スレートグレー色 + steelblue: 鋼色 + royalblue: ロイヤルブルー色 + midnightblue: 真夜中の青色 + navy: 海軍色 + darkblue: 濃い青色 + mediumblue: 中間の青色 + dodgerblue: ドッジャーブルー色 + cornflowerblue: コーンフラワーブルー色 + skyblue: 空色 + lightblue: 明るい青色 + powderblue: パウダーブルー色 + paleturquoise: ペイルターコイズ色 + lightcyan: 明るいシアン色 + cyan: シアン色 + aquamarine: アクアマリン色 + turquoise: ターコイズ色 + mediumturquoise: 中間のターコイズ色 + darkturquoise: 濃い青緑色 + lightseagreen: 明るいシーグリーン色 + cadetblue: カデットブルー色 + darkcyan: 濃いシアン色 + teal: ティール色 + darkslategray: 濃いスレートグレー色 + darkgreen: 濃い緑色 + green: 緑色 + forestgreen: 森林緑色 + seagreen: 海緑色 + mediumseagreen: 中間の海緑色 + mediumaquamarine: 中間のアクアマリン色 + darkseagreen: 濃い緑松石色 + palegreen: 淡い緑色 + lightgreen: 明るい緑色 + springgreen: 春の緑色 + mediumspringgreen: 中間の春の緑色 + lawngreen: 芝生の緑色 + chartreuse: シャルトリューズ色 + greenyellow: グリーンイエロー色 + lime: ライム色 + limegreen: ライムグリーン色 + yellowgreen: 黄緑色 + darkolivegreen: 濃いオリーブグリーン色 + olivedrab: オリーブドラブ色 + olive: オリーブ色 + darkkhaki: 濃いカーキ色 + palegoldenrod: 淡いゴールデンロッド色 + cornsilk: コーンシルク色 + beige: ベージュ色 + lightyellow: 明るい黄色 + lightgoldenrodyellow: 明るいゴールデンロッドイエロー色 + lemonchiffon: レモンシフォン色 + wheat: 小麦色 + burlywood: バーリーウッド色 + tan: 茶褐色 + yellow: 黄色 + gold: 金色 + sandybrown: 砂色 + darkorange: 濃いオレンジ色 + goldenrod: ゴールデンロッド色 + peru: ペルー色 + darkgoldenrod: 濃いゴールデンロッド色 + chocolate: チョコレート色 + sienna: シエナ色 + saddlebrown: サドルブラウン色 + maroon: マルーン色 + darkred: 濃い赤色 + firebrick: ファイアブリック色 + indianred: インディアンレッド色 + rosybrown: ロージーブラウン色 + darksalmon: 濃いサーモン色 + lightcoral: 明るいコーラル色 + salmon: サーモン色 + lightsalmon: 明るいサーモン色 + coral: コーラル色 + tomato: トマト色 + orangered: オレンジレッド色 + crimson: 深紅色 + mediumvioletred: 中間の紫罗兰赤色 + deeppink: 濃いピンク色 + hotpink: ホットピンク色 + palevioletred: 淡い紫罗兰赤色 + pink: ピンク色 + lightpink: 明るいピンク色 + thistle: シスル色 + magenta: マゼンタ色 + fuchsia: フクシャ色 + violet: 紫色 + plum: プラム色 + orchid: オーキッド色 + mediumorchid: 中間のオーキッド色 + darkorchid: 濃いオーキッド色 + darkviolet: 濃い紫罗兰色 + darkmagenta: 濃いマゼンタ色 + purple: 紫色 + indigo: インディゴ色 + darkslateblue: 濃いスレートブルー色 + blueviolet: ブルーバイオレット色 + mediumpurple: 中間の紫色 + slateblue: スレートブルー色 + mediumslateblue: 中間のスレートブルー色 + + - name: 背景 + color: rgba(0, 255, 255, .4) + tags: + fantasy: ファンタジー風 + ban: 科学技術の幻想 + cyberpunk: サイバーパンク + depth_of_field: 被写界深度(描写法) + blurry: ぼかし背景 + blurry_foreground: ぼかし前景 + simple_background: シンプルな背景 + black_background: 黒い背景 + white_background: 白い背景 + transparent_background: 透明な背景 + beige_background: ベージュの背景 + brown_background: 茶色の背景 + tan_background: 褐色の背景 + grey_background: 灰色の背景 + two-tone_background: 二色調の背景 + gradient_background: グラデーションの背景 + multicolored_background: 多色の背景 + rainbow_background: 虹の背景 + abstract_background: 抽象的な背景 + argyle_background: アーガイル模様の背景 + checkered_background: チェック柄の背景 + floral_background: 花のデザインの背景 + halftone_background: ハーフトーンの背景 + heart_background: ハート模様の背景 + honeycomb_background: ハチの巣模様の背景 + plaid_background: プレイド模様の背景 + polka_dot: 水玉模様の背景 + striped_background: 縞模様の背景 + scenery: 風景 + landscape: 風景 + foral_background: 花柄の背景 + crop_top_overhang: トップ部分がはみ出した作物 + starry_background: 星空の背景 + sparkle_background: 輝く星の背景 + cityscape: 都市の風景 + city_lights: 都市の灯りの背景 + clock_background: 時計の背景 + bubble_background: 泡の背景 + border: 枠線 + pillarboxed: 柱状の背景 + rounded_corners: 角が丸い背景またはフレーム + viewfinder: ビューファインダー + windowboxed: ウィンドウボックス(背景) + outside_border: 一部が背景の枠外に描かれている + flashback: フラッシュバックのシーン + wall_of_text: テキストの背景 + background_text: 背景テキスト + +- name: 環境 + groups: + - name: 季節 + color: rgba(31, 144, 255, .4) + tags: + in spring: 春 + in summer: 夏 + in autumn: 秋 + in winter: 冬 + (autumn maple forest:1.3),(very few fallen leaves),(path): 秋の風景 + + - name: 天気 + color: rgba(31, 144, 255, .4) + tags: + day: 昼間 + dusk: 夕暮れ + night: 夜 + rain: 雨 + in the rain: 雨の中で + rainy days: 雨の日 + sunset: 日の入り + cloudy: 曇り + full moon: 満月 + sun: 太陽 + moon: 月 + full_moon: 満月 + stars: 星 + sky: 空 + universe: 宇宙 + snow,ice: 雪氷 + snowflakes: 雪片 + lighting: 稲妻 + rainbow: 虹 + meteor shower: 流星群 + cumulonimbus: 積乱雲 + + - name: 自然 + color: rgba(31, 144, 255, .4) + tags: + nature: 自然 + sea: 海 + ocean: 海洋 + beach: 浜辺 + hills: 丘陵 + in a meadow: 牧草地で + on the beach: 浜辺で + underwater: 水中で + over the sea: 海上で + grove: 森林 + on a desert: 砂漠で + plateau: 高原 + cliff: 崖 + canyon: 渓谷 + oasis: オアシス + bamboo forest: 竹林 + glacier: 氷河 + floating island: 浮島 + volcano: 火山 + savanna: サバンナ + waterfall: 滝 + stream: 小川 + wasteland: 荒地 + field: 野原 + rice paddy: 田んぼ + wheat field: 麦畑 + flower field: 花畑 + flower sea: 花海 + space: 宇宙 + starry sky: 星空 + lake: 湖 + river: 川 + onsen: 温泉 + flowers meadows: 花の草原 + Alps: アルプス山脈 + Dreamy forest: 夢の森(幻想的な感じ、光の粒子が幽玄) + + - name: 水 + color: rgba(31, 144, 255, .4) + tags: + ocean: 海 + dripping: 滴る + beach: 浜辺 + lake: 湖 + waterfall: 滝 + ripples: 波紋 + swirl: 渦巻き + waves: 波 + seashell: 貝殻 + seaweed: 海藻 + + - name: 空 + color: rgba(31, 144, 255, .4) + tags: + sky: 空 + gradient_sky: 傾斜した空 + night_sky: 夜空 + starry_sky: 星空 + hyper_galaxy: 超銀河 + star_(sky): 星(空にある) + star_trail: 星の軌跡 + sunset: 夕日 + moon: 月 + lunar: 月の、月球の + crescent: 三日月 + crescent_moon: 新月 + full_moon: 満月 + moonlight: 月光 + scarlet_moon: 緋色の月 + universe: 宇宙 + space: 宇宙 + planet: 惑星 + from_space_station: 宇宙ステーションから + satellite: 人工衛星 + + - name: 雲 + color: rgba(31, 144, 255, .4) + tags: + cirrus: ウネリ雲 + Cirrocumulus: ウネリ積雲 + Cirrostratus: ウネリ層雲 + Altocumulus: 中高層積雲 + Altostratus: 中高層層雲 + stratus: 層雲 + Stratocumulus: 層積雲 + cumulus: 積雲 + Cumulonimbus: 積乱雲 + Nimbostratus: 雨層雲 + cirrus_fibratus: 繊維状ウネリ雲 + cirrus_uncinus: 鉤状ウネリ雲 + cirrus_spissatus: 密なウネリ雲 + cirrus_floccus: 綿毛状ウネリ雲 + cirrus_castellanus: 城状ウネリ雲 + cirrus_intortus: もつれたウネリ雲 + cirrocumulus: ウネリ積雲 + cirrocumulus_stratiformis: 層状ウネリ積雲 + cirrocumulus_floccus: 綿毛状ウネリ積雲 + cirrocumulus_castellanus: 城状ウネリ積雲 + cirrocumulus_lacunosus: 網状ウネリ積雲 + cirrostratus: ウネリ層雲 + cirrostratus_fibratus: 繊維状ウネリ層雲 + cirrostratus_nebulosus: 霧状ウネリ層雲 + altocumulus: 中高層積雲 + altocumulus_strataformis: 層状中高層積雲 + altocumulus_lenticularis: レンズ状中高層積雲 + altocumulus_castellanus: 城状中高層積雲 + altocumulus_floccus: 綿毛状中高層積雲 + altocumulus_lacunosus: 網状中高層積雲 + altostratus: 中高層層雲 + altostratus_undulatus: 波状中高層層雲 + altostratus_duplicates: 重複中高層層雲 + altostratus_pannus: 断片中高層層雲 + altostratus_translucidus: 透明中高層層雲 + altostratus_opacus: 不透明中高層層雲 + altostratus_radiatus: 放射状中高層層雲 + altostratus_mammatus: 乳状中高層層雲 + stratus_fractus: 断片雲 + stratus_nebulosus: 霧雲 + stratus_undulatus: 波状雲 + stratocumulus: 層積雲 + stratocumulus_stratiformis: 層状層積雲 + stratocumulus_cumulogentis: 積雨性層積雲 + stratocumulus_castellanus: 城状層積雲 + stratocumulus_lenticularis: レンズ状層積雲 + stratocumulus_lacunosus: 綿毛状層積雲 + cumulus_humilis: 低積雲 + cumulus_mediocris: 中積雲 + cumulus_congestus: 濃積雲 + cumulus_fractus: 断片積雲 + cumulonimbus: 積乱雲 + cumulonimbus_calvus: はらはら積乱雲 + cumulonimbus_capillatus: 鬣積乱雲 + cumulonimbus_incus: 鉄砲積乱雲 + + - name: 雰囲気 + color: rgba(31, 144, 255, .4) + tags: + new year: 新年 + year of the rabbit: 兎年 + valentine: バレンタイン + lantern festival: 元宵節 + summer festival: 夏祭り + tanabata: 七夕 + mid-autumn festival: 中秋節 + halloween: ハロウィン + christmas: クリスマス + explosion: 爆発 + water vapor: 水蒸気 + fireworks: 花火 + ceiling window: 天窓 + colourful glass: カラフルなガラス + stain glass: ステンドグラス + Graffiti wall: グラフィティの壁 + mosaic background: モザイクの背景 + liquid background, Sputtered water: 液体の背景 + magic circles: 魔法の輪 + fluorescent mushroom forests background: 蛍光キノコの森の背景 + (((colorful bubble))): カラフルな泡 + in the ocean: 海辺の夕焼け + against backlight at dusk: 夕暮れの逆光 + golden hour lighting: ゴールデンアワーの照明 + strong rim light: 強いリムライト + intense shadows: 濃い影 + +- name: シーン + groups: + - name: 屋外 + color: rgba(159, 32, 240, .4) + tags: + castle: 城 + city: 街 + waterpark: 水上公園 + carousel: カルーセル + ferris wheel: 観覧車 + aquarium: 水族館 + zoo: 動物園 + bowling alley: ボウリング場 + art gallery: 美術館 + museum: 博物館 + planetarium: 惑星館 + swimming pool: プール + stadium: スタジアム + temple: 寺院 + bus stop: バス停 + train station: 駅 + fountain: 噴水 + playground: 遊び場 + market stall: 市場の屋台 + phone booth: 電話ボックス + railroad tracks: 鉄道の線路 + airport: 空港 + tunnel: トンネル + skyscraper: 超高層ビル + cityscape: 都市の景観 + ruins: 遺跡 + greco-roman architectur: グレコローマ建築 + east asian architecture: 東アジアの建築物 + torii: 鳥居 + church: 教会 + shop: 店舗 + street: 街路 + cyberpunk city: サイバーパンクの街 + in the cyberpunk city: サイバーパンクの街で + chinese style architecture: 中国風建築 + gohei: 御幣 + Bustling city: 繁華な都市 + laboratory: 研究室 + coffee house: コーヒーハウス + gym: ジム + library: 図書館 + prison: 刑務所 + engine room: 機関室 + handrail: 手すり + neon lights: ネオンライト + street lamp: 街灯 + road: 道路 + shanty town/slum: 貧民街 + warehouse: 倉庫 + gothic architecture: ゴシック建築 + restaurant: レストラン + treehouse: 木の家 + modern,Europe: モダン、ヨーロッパ + Industrial wind, Chinese architecture: 工業風、中国建築 + building_ruins: 建物の廃墟 + bar: バー + izakaya: 居酒屋 + cafe: カフェ + bakery: パン屋 + convenience store: コンビニ + supermarket: スーパーマーケット + pharmacy: 薬局 + theater: 劇場 + movie theater: 映画館 + workshop: 作業場 + courtroom: 法廷 + park: 公園 + Trapeze: 鉄棒;ブランコ + classroom: 教室 + botanical garden: 植物園 + amusement_park: 遊園地 + Disney_land: ディズニーランド + arena: アリーナ + wrestling_ring: レスリングリング + Auditorium: 講堂 + concert: コンサート + Japanese_hotel: 和風旅館 + jail_bars: 刑務所のバー + in_the_movie_theatre: 映画館で + stage: ステージ + harbor: 港 + casino: カジノ + billiard: ビリヤード台 + dungeon: ダンジョン + grave: 墓 + graveyard: 墓地 + tombstone: 墓石 + monolith: 巨大な石の物体 + rappelling: レーベル + building: 建物 + architecture: 建築 + magnificent_architecture: 壮大な建築 + Skyscraper: 超高層ビル + east_asian_architecture: 東アジアの建築 + cathedral: 大聖堂 + chinese_style_loft: 中国風ロフト + traditional_chinese_room: 伝統的な中国の部屋 + turret: タレット + tower: タワー + mosque: モスク + reservoir: 貯水池 + railroad: 鉄道 + railway: 鉄道 + bridge: 橋 + under_bridge: 橋の下 + remains: 遺跡 + rubble_ruins: 廃墟 + + - name: 都市 + color: rgba(159, 32, 240, .4) + tags: + city: 街 + cityscape: 都市の景観 + street: 街路 + downtown: ダウンタウン + crowd: 人混み + alley: 小道 + in_main_street: 大通りで + Intersection: 交差点 + avenue: 大通り + lawn: 芝生 + road: 道 + path: 小道 + pavement: 舗装道路 + road_sign: 道路標識 + traffic_cone: 交通コーン + lamppost: 街灯 + power_lines: 電線柱と電線 + fence: フェンス + railing: 手すり + bench: ベンチ + vending_machine: 自動販売機 + + - name: 屋内 + color: rgba(159, 32, 240, .4) + tags: + indoor: 屋内 + bathroom: 浴室 + toilet stall: トイレの個室 + otaku room: オタクの部屋 + cafeteria: カフェテリア + classroom: 教室 + clubroom: クラブルーム + bedroom: 寝室 + kitchen: キッチン + dormitory: 寮 + dungeon: 地下室 + infirmary: 医務室 + stage: ステージ + electrical room: 配電室 + server room: サーバールーム + basement: 地下室 + art room: 美術室 + bathing: 浴室 + stairs: 階段 + greenhouse: 温室 + + - name: 床 + color: rgba(159, 32, 240, .4) + tags: + floor: 床 + tile_floor: タイル床 + + - name: 家具 + color: rgba(159, 32, 240, .4) + tags: + bedroom: 家具 + tatami: 畳 + bed: ベッド + couch: ソファ + kotatsu: 炬燵 + fireplace: 暖炉 + window_: 窓 + sash: 窓枠 + curtains: カーテン + door: ドア + sliding_doors: 引き戸 + clothes_rack: 洋服掛け + air_conditioner: エアコン + table: テーブル + school_desk: 学校の机 + chair: 椅子 + armchair: 肘掛け椅子 + lounge_chair: リクライニングチェア + beach_chair: ビーチチェア + folding_chair: 折りたたみ椅子 + invisible_chair: 目に見えない椅子 + office_chair: オフィスチェア + wheelchair: 車椅子 + + - name: 寝具 + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: ベッドシーツ + mattress: マットレス + futon: 布団 + cushion: クッション + carpet: カーペット + pillow: 枕 + dumpling_Hug_Pillow: 餃子型抱き枕 + pillow_hug: 抱き枕 + yes-no_pillow: Yes/No枕 + stuffed_animal: ぬいぐるみ + stuffed_bunny: ぬいぐるみのウサギ + koakuma: 小悪魔 + + - name: 浴室 + color: rgba(159, 32, 240, .4) + tags: + bathroom: 浴室 + bathtub,: 浴槽 + rubber_duck: ゴムのアヒル + shower_head: シャワーヘッド + toilet: トイレ + squat_toilet: 和式トイレ + soap: 石鹸 + tiles: タイル + +- name: アイテム + groups: + - name: 学習用具 + color: rgba(189, 182, 107, .4) + tags: + notebook: ノートブック + paintbrush: 絵筆 + pencil: 鉛筆 + book: 本 + open_book: 開いた本 + book_stack: 本の積み重ね + bookshelf: 本棚 + school_bag: 学校のバッグ(ハンドバッグ) + backpack: バックパック + + - name: デジタル機器 + color: rgba(189, 182, 107, .4) + tags: + computer: コンピューター + mouse: マウス + cellphone: 携帯電話 + Smartphones: スマートフォン + handheld_game_console_: 携帯ゲーム機 + nintendo_3ds: ニンテンドー3DS + nintendo_ds: ニンテンドーDS + nintendo_switch: ニンテンドースイッチ + buttons: ボタン + power_lines: 電源コード + cable: ケーブル + + - name: 食器 + color: rgba(189, 182, 107, .4) + tags: + pot: 鍋 + teapot: ティーポット + ladle: おたま + can: 缶 + soda_can: 缶入り飲料 + cup: カップ + plate: 皿 + tray: トレイ + bowl: ボウル + fork: フォーク + chopsticks: 箸 + spoon: スプーン + drinking_glass: グラス + tumbler: タンブラー + beer_mug: ビールジョッキ + gift_box: ギフトボックス + heart-shaped_box: ハート型のギフトボックス + candle: ろうそく + + - name: 楽器 + color: rgba(189, 182, 107, .4) + tags: + music: 音楽 + guitar: ギター + piano: ピアノ + cello: チェロ + playing_instrument: 楽器演奏 + wind_chime: 風鈴 + + - name: その他のアイテム + color: rgba(189, 182, 107, .4) + tags: + wristwatch: 腕時計 + folding_fan: 扇子 + paper_fan: 扇子 + uchiwa: 団扇 + umbrella: 傘 + transparent_umbrella: 透明傘 + closed_umbrella: 閉じた傘 + oil-paper_umbrella: 和傘 + Parasol: 遮光傘 + basket: バスケット + bouquet: 花束 + bucket: バケツ + pail: バケツ + camera: カメラ + gohei: 御幣(邪気除けの布) + lantern/lamp: 提灯 + whip: 鞭 + riding_crop: 馬鞭 + ofuda: お札 + cane: 杖 + wand: 杖 + magic: 魔法 + trading_card: トレーディングカード + playing_card: トランプ + Cassette: カセット + chess_piece: チェスの駒 + coin: コイン + copper: 銅貨 + hammer: ハンマー + microphone: マイクロフォン + mimikaki: 耳かき + sack: 麻袋 + scales: スケール + chibi_inset: チビ挿絵 + damaged: 損傷した + diamond_(shape): ダイヤモンド(形状) + gourd: ひょうたん + holding_gift: ギフトを持っている + inlet: 入り口 + key: キー + leash: リード + Lever: レバー + molecule: 分子 + money: お金 + Painting_(Object): 絵画(物体) + photo_(object): 写真(物体) + sand: 砂 + stubble: ひげそりの剃り残し + trophy: トロフィー + tube_top: チューブトップ + water_bottle: 水筒 + lotion: 日焼け止めクリーム|ボディローション + lotion_bottle: ローションのボトル + + - name: 武器 + color: rgba(189, 182, 107, .4) + tags: + weapon: 武器 + weapon_on_back: 背中の武器 + weapon_over_shoulder: 肩にかけた武器 + huge_weapon: 大型武器 + planted_weapon: 地面に刺さった武器 + broken_weapon: 壊れた武器 + planted_sword: 立てかけた剣 + sword: 剣 + scabbard: 鞘 + unsheathing: 鞘から抜く + katana: 刀 + saber_(weapon): サーベル(武器) + scythe: 鎌 + nose_hatchet: 鼻斧 + dagger: 短剣 + scissors: ハサミ + axe: 斧 + hatchet: 手斧 + stake: 杭 + lance: 槍 + trident: 三叉槍 + bow_(weapon): 弓 + arrow: 矢 + claw_(weapon): 爪(武器) + rifle,: ライフル + gun: 銃 + handgun: ハンドガン + thompson_submachine_gun: トンプソンサブマシンガン + magazine_(weapon): 弾倉(武器) + dynamite: ダイナマイト + bomb: 爆弾 + track missiles: 追尾ミサイル + complex Trajectory: 複雑な軌道 + tank: 戦車 + cannon: 大砲 + military_vehicle: 軍用車両 + motorcycle: オートバイ + ship: 船 + watercraft: 水上船舶 + car: 車 + machine: 機械 + machinery: 機械武装 + mechanical_arms: メカニカルアーム + mechanization: 機械化 + robot_ears: ロボットの耳 + robot_joints: ロボットの関節 + variable_fighter: 可変戦闘機 + sorcerer's_sutra_scroll: 魔術師の経典 + + - name: 食べ物 + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: 寿司ロール + apple: りんご + aubergine: ナス + burger: バーガー + cake: ケーキ + candy: キャンディー + candy_apple: キャンディーアップル + candy_cane: キャンディーケイン + carrot: にんじん + cigarette: タバコ + coffee: コーヒー + cookie: クッキー + cotton_candy_: 綿菓子 + cream: クリーム + dango: 団子 + doughnut: ドーナツ + drink: 飲み物 + egg: 卵 + fruit: 果物 + Gelatin: ゼリー + ice_cream: アイスクリーム + kafuu_chino: 香風智乃 + makizushi: 巻き寿司 + meat: 肉 + noodles: 麺類 + obento: お弁当 + onigiri: おにぎり + pancake: パンケーキ + pasties: パイ + peach: 桃 + ramen: ラーメン + sake: 日本酒 + taiyaki: たい焼き + tea: お茶 + teacup: ティーカップ + wagashi: 和菓子 + wine: ワイン + jam: ジャム + pocky: ポッキー + bottled_water: ボトル入り水 + sweet_potato: さつまいも + sweets: お菓子 + food: 食べ物 + food_in_mouth: 口に食べ物 + food_on_: 顔に食べ物 + food_on_body: 体に食べ物 + food_print: 食べ物のプリント + food_stand: 食品スタンド + in_food: 食べ物の中にいる(キャラクター) + chips: ポテトチップス + potato_chips: ポテトチップス + telstar: テルスター + sundae: サンデー + tempura: 天ぷら + + - name: 動物 + color: rgba(189, 182, 107, .4) + tags: + reptile: 爬虫類 + crow: カラス + bird: 鳥 + penguin: ペンギン + chick: ひよこ + manjuu_(azur_lane): マンジュウ(アズールレーン) + shell: 貝殻 + wriggle_nightbug: リグル・ナイトバグ + dragonfly: トンボ + mammal: 哺乳動物 + wolf: オオカミ + 扶桑花: 馬 + whale: クジラ + cat: 猫 + cat_teaser: 猫じゃらし + dog: 犬 + dog_tags: 犬のタグ + fox: キツネ + bunny: ウサギ + snow_bunny: スノーバニー + stuffed_bunny: ぬいぐるみのウサギ + horse: 馬 + cow: 牛 + dragon: ドラゴン + loong: 中国の龍 + eastern_dragon: 東洋の龍 + snake: 蛇 + slime: スライム + bear: クマ + panda: パンダ + teddy_bear: テディベア + tiger: 虎 + bat: コウモリ + hamster: ハムスター + mouse: ネズミ + squirrel: リス + + - name: 植物 + color: rgba(189, 182, 107, .4) + tags: + plant: 植物 + flower: 花 + vase: 花瓶 + bouquet: 花束 + flower_bloom: 花が咲く + plum_blossom: 梅の花 + cherry_blossoms: 桜の花 + wisteria: 藤 + hibiscus: ハイビスカス + hydrangea: 紫陽花 + rose: バラ + spider_lily: 彼岸花 + lily: ユリ + lotus: 蓮の花 + bamboo: 竹 + entangled_plants: 絡み合った植物 + orchid: 蘭 + chrysanthemum: 菊 + narcissu: スイセン + tree: 木 + branch: 枝 + forest: 森 + pine_tree: 松の木 + palm_tree: ヤシの木 + maple_tree: カエデの木 + bush/shrub,: 低木 + christmas_tree: クリスマスツリー + maple_leaf: カエデの葉 + pumpkin: カボチャ + jack-o'-lantern: ジャックオーランタン + spring_onion: ネギ + +- name: レンズ + groups: + - name: レンズ + color: rgba(99, 201, 2, .4) + tags: + panorama: パノラマ + landscape: 風景 + wide_shot: ワイドショット + medium_shot: 中景 + mid_shot: 中景 + full_shot: 全身像 + bust: バスト + upper_body: 上半身 + lower_body: 下半身 + cowboy_shot: 上半身+太もも(カウボーイショット) + portrait: 肖像画 + profile: プロフィール + + - name: クローズアップ + color: rgba(99, 201, 2, .4) + tags: + close-up: クローズアップ + macro_shot: マクロ撮影 + inset: 挿入 + cross-section: 断面図 + x-ray: X線 + solo_focus: 単独の焦点 + xx_focus: XXに焦点を当てる + face_focus: 顔に焦点を当てる + eyes_focus: 目に焦点を当てる + foot_focus: 足に焦点を当てる + hip_focus: 尻に焦点を当てる + ass_focus: 尻に焦点を当てる + vehicle_focus: 車両に焦点を当てる + between_legs: 脚の間(強調) + between_breasts: 胸の間(強調) + between_fingers: 指の間(強調) + peeking: 覗き込む + peeking_out: 覗き出す(の姿勢) + peeping: 覗き見る(視点を強調) + midriff_peek: へそ見せ + armpit_peek: 脇見せ + pussy_peek: マンコ見せ + panty_peek: パンティ見せ + pantyshot: パンチラ + caught: 逮捕された + + - name: 他の構図 + color: rgba(99, 201, 2, .4) + tags: + aerial: 空中 + turn_one's_back: 背を向ける + upskirt: スカートの中 + phone_screen: 携帯電話の画面 + multiple_views: 複数の視点 + mirror selfie: 鏡の自撮り + three-quarter view: 3分の4の視点 + + - name: カメラの角度 + color: rgba(99, 201, 2, .4) + tags: + front view: 正面視点 + from_side: 横から + from_above: 上から↘ + from_below: 下から↗ + from_outside: 外から内へ + from_back: 背後から + from behind: 背後から + dynamic_angle: ダイナミックな角度 + cinematic_angle: 映画的な角度 + dutch angle: オランダ角度 + foreshortening: 遠近法 + fisheye: 魚眼 + + - name: 効果 + color: rgba(99, 201, 2, .4) + tags: + depth of field: 被写界深度 + lens_flare: レンズフレア + motion_blur: モーションブラー + motion_lines: 動きを表す線 + speed_lines: スピードライン + bokeh: ボケ + chromatic_aberration: 色収差 + overexposure: 過曝 + contour_deepening: 等高線強調 + + - name: 主人公の動作 + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: 視聴者を見る + eye-contact: アイコンタクト + eyeball: 注視 + stare: 凝視 + looking_back: 振り返る + gradient: グラデーション + looking_down: 下を見る↘ + looking_up: 上を見る↗ + facing_away: 向きを変える + looking_to_the_side: 横を見る + looking_away: 見ない + looking_ahead: 先を見る + looking_afar: 遠くを見る + looking_outside: 外を見る + head_tilt: 頭を傾ける + head_down: 頭を下げる + sideways_glance: 横目でちらっと見る + upshirt: シャツの下を覗く + upshorts: スカートの下を覗く + looking_at_another: 別のものを見る + looking_at_phone: 携帯電話を見る + looking_at_animal: 動物を見る + looking_at_mirror: 鏡を見る + looking_at_hand: 手を見る + looking_at_hands: 両手を見る + looking_at_food: 食べ物を見る + looking_at_screen: 画面を見る + +- name: 漢服 + groups: + - name: "唐風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: 唐風の衣装 + + - name: 上杉 + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: オレンジの上杉 + red upper shan: レッドの上杉 + green upper shan: グリーンの上杉 + blue upper shan: ブルーの上杉 + pink upper shan: ピンクの上杉 + yellow upper shan: イエローの上杉 + white upper shan: ホワイトの上杉 + light blue upper shan: ライトブルーの上杉 + light green upper shan: ライトグリーンの上杉 + light red upper shan: ライトレッドの上杉 + cyan blue upper shan: シアンブルーの上杉 + light purple upper shan: ライトパープルの上杉 + black with blue upper shan: ブルーブラックの上杉 + white with orange upper shan: オレンジホワイトの上杉 + pink with black upper shan: ピンクブラックの上杉 + + - name: 長上杉 + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: オレンジの長い上杉 + red long upper shan: レッドの長い上杉 + green long upper shan: グリーンの長い上杉 + blue long upper shan: ブルーの長い上杉 + pink long upper shan: ピンクの長い上杉 + yellow long upper shan: イエローの長い上杉 + white long upper shan: ホワイトの長い上杉 + light blue long upper shan: ライトブルーの長い上杉 + light green long upper shan: ライトグリーンの長い上杉 + light red long upper shan: ライトレッドの長い上杉 + cyan blue long upper shan: シアンブルーの長い上杉 + light purple long upper shan: ライトパープルの長い上杉 + black with blue long upper shan: ブルーブラックの長い上杉 + white with orange long upper shan: オレンジホワイトの長い上杉 + pink with black long upper shan: ピンクブラックの長い上杉 + + - name: 齊胸破裙 + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: 白い破れたスカート + red chest po skirt: 赤い破れたスカート + green chest po skirt: 緑の破れたスカート + blue chest po skirt: 青い破れたスカート + pink chest po skirt: ピンクの破れたスカート + purple chest po skirt: 紫の破れたスカート + multicolour chest po skirt: カラフルな破れたスカート + purple with white chest po skirt: 紫と白の破れたスカート + white with yellow chest po skirt: 白と黄色の破れたスカート + blue with white chest po skirt: ライトブルーの破れたスカート + orange with white chest po skirt: オレンジと白の破れたスカート + green with white chest po skirt: グリーンと白の破れたスカート + light orange with white chest po skirt: ライトオレンジと白の破れたスカート + pink with white chest po skirt: ピンクと白の破れたスカート + white with pink chest po skirt: 白とピンクの破れたスカート + + - name: 齊胸褶裙 + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: 白いプリーツスカート + red chest pleated skirt: 赤いプリーツスカート + green chest pleated skirt: 緑のプリーツスカート + blue chest pleated skirt: 青いプリーツスカート + pink chest pleated skirt: ピンクのプリーツスカート + purple chest pleated skirt: 紫のプリーツスカート + multicolour chest pleated skirt: カラフルなプリーツスカート + purple with white chest pleated skirt: 紫と白のプリーツスカート + white with yellow chest pleated skirt: 白と黄色のプリーツスカート + blue with white chest pleated skirt: ライトブルーのプリーツスカート + orange with white chest pleated skirt: オレンジと白のプリーツスカート + green with white chest pleated skirt: グリーンと白のプリーツスカート + light orange with white chest pleated skirt: ライトオレンジと白のプリーツスカート + pink with white chest pleated skirt: ピンクと白のプリーツスカート + white with pink chest pleated skirt: 白とピンクのプリーツスカート + + - name: 系帶 + color: rgba(178, 33, 34, .4) + tags: + green waistband: 緑のベルト + yellow waistband: 黄色のベルト + red waistband: 赤いベルト + pink waistband: ピンクのベルト + orange waistband: オレンジのベルト + light blue waistband: ライトブルーのベルト + light green waistband: ライトグリーンのベルト + green with yellow waistband: 黄緑のベルト + purple with white waistband: 紫と白のベルト + red with white waistband: 赤と白のベルト + red with black waistband: 赤と黒のベルト + yellow with white waistband: 黄色と白のベルト + + - name: 披帛 + color: rgba(178, 33, 34, .4) + tags: + white pibo: 白い披肩 + orange pibo: オレンジの披肩 + black pibo: 黒い披肩 + pink pibo: ピンクの披肩 + red pibo: 赤い披肩 + purple pibo: 紫の披肩 + light green pibo: ライトグリーンの披肩 + white with yellow pibo: 黄白の披肩 + + - type: wrap + + - name: "宋風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: 宋風の衣装 + + - name: 短衫 + color: rgba(178, 33, 34, .4) + tags: + purple short shan: 紫の短い杉 + red short shan: レッドの短い杉 + green short shan: グリーンの短い杉 + blue short shan: ブルーの短い杉 + pink short shan: ピンクの短い杉 + yellow short shan: イエローの短い杉 + white short shan: ホワイトの短い杉 + light blue short shan: ライトブルーの短い杉 + light green short shan: ライトグリーンの短い杉 + light red short shan: ライトレッドの短い杉 + cyan blue short shan: シアンブルーの短い杉 + light purple short shan: ライトパープルの短い杉 + black with blue short shan: ブルーブラックの短い杉 + white with yellow short shan: 黄白の短い杉 + light yellow with green with white short shan: ライトイエローグリーン白の短い杉 + + - name: 長衫 + color: rgba(178, 33, 34, .4) + tags: + purple long shan: 紫の長い杉 + red long shan: レッドの長い杉 + green long shan: グリーンの長い杉 + blue long shan: ブルーの長い杉 + pink long shan: ピンクの長い杉 + yellow long shan: イエローの長い杉 + white long shan: ホワイトの長い杉 + light blue long shan: ライトブルーの長い杉 + light green long shan: ライトグリーンの長い杉 + light red long shan: ライトレッドの長い杉 + cyan blue long shan: シアンブルーの長い杉 + light purple long shan: ライトパープルの長い杉 + black with blue long shan: ブルーブラックの長い杉 + white with yellow long shan: 黄白の長い杉 + light yellow with green with white long shan: ライトイエローグリーン白の長い杉 + + - name: 百褶裙 + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: 白いプリーツスカート + red pleated skirt: 赤いプリーツスカート + green pleated skirt: 緑のプリーツスカート + blue pleated skirt: 青いプリーツスカート + pink pleated skirt: ピンクのプリーツスカート + light blue pleated skirt: ライトブルーのプリーツスカート + white golden pleated skirt: 白金のプリーツスカート + gradient green pleated skirt: グラデーション緑のプリーツスカート + translucent white pleated skirt: 半透明白のプリーツスカート + red cyan gradient pleated skirt: 赤青グラデーションのプリーツスカート + red green gradient pleated skirt: 赤緑グラデーションのプリーツスカート + green with white pleated skirt: 白緑のプリーツスカート + light yellow with green with white pleated skirt: ライトイエローグリーン白のプリーツスカート + + - name: 宋抹 + color: rgba(178, 33, 34, .4) + tags: + orange songmo: オレンジの宋抹 + red songmo: レッドの宋抹 + green songmo: グリーンの宋抹 + blue songmo: ブルーの宋抹 + pink songmo: ピンクの宋抹 + yellow songmo: イエローの宋抹 + white songmo: ホワイトの宋抹 + purple songmo: 紫の宋抹 + green floral songmo: グリーンの花柄宋抹 + purple floral songmo: 紫の花柄宋抹 + cyan floral songmo: 青の花柄宋抹 + + - type: wrap + + - name: "明風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: 明風の衣装 + + - name: 上衣 + color: rgba(178, 33, 34, .4) + tags: + short coat: ショートコート + long coat: ロングコート + + - name: スカート + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: マミアンスカート + + - name: 襟元 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 重ね襟 + round collar: ラウンド襟 + standing collar: 立襟 + square collar: スクエア襟 + + - name: 装飾 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 雲肩 + embroidery: 刺繍 + woven gold: 織り金 + makeup flower: メイクアップフラワー + bufu: 補服 diff --git a/group_tags/ko_KR.yaml b/group_tags/ko_KR.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7eac4ebf9d92dbe3315208af1d3ca571932476b7 --- /dev/null +++ b/group_tags/ko_KR.yaml @@ -0,0 +1,4430 @@ +# 👍힌트 키워드 출처 통합: 路过银河(zhihu), 알려지지 않은 저자(Google Drive), 인터넷 등등, 이러한 저자들의 무한한 공헌에 감사드립니다! +# +# ⚠️본 파일의 내용을 수정하지 않는 것이 좋습니다. 이 파일의 작성자는 주기적으로 업데이트할 수 있으며, 파일을 수정하면 업데이트 시 충돌이 발생할 수 있습니다. +# ⚠️사용자 정의 키워드 그룹이 필요한 경우, 이 파일을 복사하여 custom.yaml으로 이름을 변경한 후 custom.yaml에서 수정하십시오. +# ⚠️플러그인은 custom.yaml 파일을 우선적으로 읽습니다. custom.yaml 파일이 없으면 이 파일을 읽습니다. +# +# ⚠️현재 파일 앞에 자신의 내용을 추가하려면 prepend.yaml 파일을 생성하십시오. +# ⚠️현재 파일 뒤에 자신의 내용을 추가하려면 append.yaml 파일을 생성하십시오. +# ⚠️custom.yaml: 현재 파일을 덮어씁니다 +# ⚠️prepend.yaml: 현재 파일 앞에 추가합니다 +# ⚠️append.yaml: 현재 파일 뒤에 추가합니다 +# +# ⚠️전문적인 텍스트 편집기(예: Visual Studio Code)를 사용하여 이 파일을 편집하는 것이 좋습니다. 인코딩 및 형식 오류를 피할 수 있습니다. +# ⚠️Windows 기본 메모장을 사용하여 이 파일을 편집하지 마십시오. +# ⚠️수정한 후에는 https://www.yamllint.com/ 에서 내용 형식을 확인할 수 있습니다. + +# 콘텐츠 형식: +# - name: 1차 분류 이름 +# groups: 2차 분류 목록 +# - name: 2차 분류 이름 +# color: 키워드 텍스트의 기본 색상 (비워둘 수 있음), CSS 색상 코드 예시: #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: 키워드 목록 +# - 영어 키워드: 로컬라이즈된 번역 +# - 영어 키워드: 로컬라이즈된 번역 +# ... + +# 이 콘텐츠의 로컬라이즈된 번역은 기계 번역을 통해 제공되었으며, 정확하지 않을 수 있습니다. 오류를 발견하신 경우 Github로 이동하여 PR을 제출하여 수정해주시기 바랍니다. +# 분류 오류, 키워드 오류, 키워드 번역 오류 등의 문제가 있을 경우 Github로 이동하여 Issue를 제출하여 피드백해주시기 바랍니다. + +- name: 인물 + groups: + - name: 개체 + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1소녀 + 1boy: 1소년 + 2girls: 2소녀 + 2boys: 2소년 + 3girls: 3소녀 + 3boys: 3소년 + girl: 소녀 + boy: 소년 + solo: 혼자 + multiple_girls: 여러 소녀 + little_girl: 작은 소녀 + little_boy: 작은 소년 + shota: 쇼타 + loli: 로리 + kawaii: 귀여운 + mesugaki: 암컷 악마 + adorable_girl: 사랑스러운 소녀 + bishoujo: 미소녀 + gyaru: 갸루 + sisters: 자매 + ojousama: 아가씨 + female: 여성 + mature_female: 성숙한 여성 + mature: 성숙한 + female_pervert: 여성 변태 + male: 남성 + milf: 성숙한 여성 + otoko_no_ko: 남자처럼 생긴 여자 + crossdressing: 남장 + + - name: 신분 + color: rgba(255, 123, 2, .4) + tags: + lifeguard: 구명원 + boxer: 복싱 선수 + scientist: 과학자 + athletes: 운동선수 + office lady: 직장 여성 + monk: 승려 + crobat: 공중곡예사 + nun: 수녀 + nurse: 간호사 + stewardess: 승무원 + student: 학생 + waitress: 여성 서비스원 + teacher: 선생님 + racer: 레이서 + police: 경찰 + soldier: 군인 + cheerleader: 치어리더 + actor: 남자 배우 + actress: 여자 배우 + spy: 스파이 + agent: 요원 + assassin: 암살자 + poet: 시인 + samurai: 사무라이 + dancing girl: 무도하는 소녀 + motorcyclist: 오토바이 타는 사람 + hacker: 해커 + magician: 마술사 + detective: 탐정 + doll: 인형 + maid: 하녀 + pilot: 조종사 + diver: 잠수사 + bar censor: 바 관리자 + missionary: 선교사 + firefighter: 소방관 + goalkeeper: 골키퍼 + chef: 요리사 + astronaut: 우주비행사 + cashier: 계산원 + mailman: 우편배달원 + barista: 바리스타 + the hermit: 은둔자 + makihitsuji: 양치기 + office_lady: 사무직 여성 + race_queen: 레이스 퀸 + queen: 여왕 + doctor: 의사 + knight: 기사 + housemaid: 하녀 + dancer: 무용수 + ballerina: 발레리나 + gym_leader: 체육관 리더 + trap: 남자로 변장한 여자 + female: 여자 + harem: 후궁 + idol: 아이돌 + male: 남자 + priest: 신부 + cleric: 성직자(기독교) + wa_maid: 일본식 하녀 + yaoi: 야오이 + yuri: 유리 + albino: 백색증 환자 + amputee: 절단 수술을 받은 사람 + + - name: 2차원 캐릭터 + color: rgba(255, 123, 2, .4) + tags: + pokemon: 포켓몬 + teddy bear: 테디 베어 + mario: 마리오 + pikachu: 피카츄 + neon genesis evangelion: 신세기 에반게리온 + hatsune miku: 하츠네 미쿠 + harry potter: 해리 포터 + doraemon: 도라에몽 + saint seiya: 성검전설 + gojou satoru: 五条悟 + avengers: 어벤져스 + mazinger: 마징가 + captain america: 캡틴 아메리카 + crayon shin-chan: 크레용 신짱 + slam dunk: 슬램덩크 + sun wukong: 손오공 + witch: 마녀 + miko: 미코 + ninja: 닌자 + vampire: 흡혈귀 + knight: 기사 + magical_girl: 마법소녀 + orc: 오크 + druid: 드루이드 + elf: 요정 + fairy: 요정 + furry: 수인 + mermaid: 인어 + kamen rider: 가면라이더 + magister: 마도사 + spider-man: 스파이더맨 + santa alter: 산타 오르타 + monster_girl: 괴물 소녀 + cat_girl: 고양이 소녀 + dog_girl: 개 소녀 + fox_girl: 여우 소녀 + kitsune: 여우요괴 + kyuubi: 구미호 + raccoon_girl: 너구리 소녀 + wolf_girl: 늑대 소녀 + bunny_girl: 토끼 소녀 + horse_girl: 말 소녀 + cow_girl: 소 소녀 + dragon_girl: 용 소녀 + centaur: 인간말 + slime_musume: 슬라임 소녀 + spider_girl: 거미 소녀 + dominatrix: 여왕(SM에서) + sailor_senshi: 세일러 문 + mecha: 메카 + mecha_musume: 메카 소녀 + humanoid_robot_: 인간형 로봇 + cyborg: 사이보그 + angel: 천사 + devil: 악마 + dark_elf: 다크 엘프 + imp: 작은 악마 + succubus: 서큐버스 + giantess: 거인 여자 + minigirl: 소형 소녀 + monster: 괴물 + multiple girls: 다수의 소녀 + no humans: 인간이 아님 + + - name: 나이 + color: rgba(255, 123, 2, .4) + tags: + toddler: 유아 + kindergartener: 유치원생 + child: 어린이 + underage: 미성년자 + teenager: 십대(13-19) + teen: 십대(13-19) + early teen: 초기 십대(11-15) + adult: 성인 + elder: 노인 + old: 노년 + loli: 로리 + shota: 쇼타 + + - name: 피부 + color: rgba(255, 123, 2, .4) + tags: + white_skin: 백피부 + pale_skin: 창백한 피부 + fair_skin: 고운 피부 + brown_skin: 갈색 피부 + deep_skin: 짙은 피부 + dark_skin: 검은 피부 + black_skin: 검은 피부 + shiny_skin: 빛나는 피부 + white_marble_glowing_skin: 흰 대리석 빛나는 피부 + tattoo: 문신 + tan: 썬탠 + tanlines: 썬탠 자국 + oil: 기름진 피부 + + - name: 체형 + color: rgba(255, 123, 2, .4) + tags: + skinny: 마른 + plump: 통통한 + curvy: 아찔한 체형 + gyaru: 갸루(일본 스타일) + pregnant: 임신한 + fat: 비만 + thin: 가늘은 + slender: 날씬한 + glamor: 매력적인 + tall: 키가 큰 + petite: 작은 + chibi: 귀여운 + muscular: 근육질 + + - name: 얼굴형 + color: rgba(255, 123, 2, .4) + tags: + slender face: 날씬한 얼굴 + round face: 둥근 얼굴 + oval face: 알약 모양 얼굴 + baby face: 아기 얼굴 + inverted triangle face: 역삼각형 얼굴 + heart shaped face: 하트 모양 얼굴 + diamond face: 다이아몬드 얼굴 + square face: 사각 얼굴 + long face: 긴 얼굴 + triangular face: 삼각형 얼굴 + + - name: 머리카락 + color: rgba(255, 123, 2, .4) + tags: + white hair: 흰 머리카락 + blonde hair: 금발 머리카락 + silver hair: 은색 머리카락 + grey hair: 회색 머리카락 + purple hair: 보라색 머리카락 + red hair: 빨간 머리카락 + yellow hair: 노란 머리카락 + green hair: 초록 머리카락 + blue hair: 파란 머리카락 + black hair: 검은 머리카락 + brown hair: 갈색 머리카락 + straight_hair: 직진 머리카락 + short hair: 짧은 머리카락 + curly hair: 곱슬머리 + long hair: 긴 머리카락 + pony-tail: 포니테일 + bunches: 두 묶음 + streaked hair: 염색한 머리카락 + grey gradient hair: 회색 그라데이션 머리카락 + light brown hair: 밝은 갈색 + two-tone hair: 두 가지 색상의 머리카락 + multicolored hair: 다색 머리카락 + high ponytail: 높은 포니테일 + twintails: 두 번째 꼬리 + braided ponytail: 땋은 포니테일 + ponytail: 포니테일 + short ponytail: 짧은 포니테일 + twin braids: 두 가닥 땋은 머리카락 + medium hair: 중간 길이 머리카락 + very long hair: 아주 긴 머리카락 + braided bangs: 땋은 앞머리 + swept bangs: 쓸어 올린 앞머리 + hair between eyes: 눈 사이의 머리카락 + bob cut: 밥 컷 + hime cut: 히메 컷 + crossed bangs: 교차한 앞머리 + bangs: 앞머리 + blunt bangs: 뽀족한 앞머리 + air bangs: 공기 앞머리 + hair wings: 날개 모양의 머리카락 + long bangs: 긴 앞머리 + side_blunt_bangs: 측면 뽀족한 앞머리 + centre parting bangs: 가운데로 가르는 앞머리 + asymmetric bangs: 비대칭 앞머리 + disheveled hair: 헝클어진 머리 + wavy hair: 파도 모양의 머리카락 + hair in takes: 묶음 머리 + hair pink flowers: 분홍색 꽃 머리 + ahoge: 아호게 + antenna hair: 안테나 머리 + Side ponytail: 측면 포니테일 + forehead: 이마 + drill hair: 드릴 머리 + hair bun: 머리둥근 + double bun: 두 개의 머리둥근 + messy hair: 엉망진창인 머리 + hair_flaps: 머리털 + + - name: 얼굴 + color: rgba(255, 123, 2, .4) + tags: + makeup: 메이크업 + fundoshi: 파운데이션 + eyeshadow: 아이섀도우 + lipstick: 립스틱 + mascara: 마스카라 + long_eyelashes: 긴 속눈썹 + red_lips_: 빨간 입술 + facepaint: 얼굴 페인트 + lipgloss: 립글로스 + colored_eyelashes: 컬러 속눈썹 + blush: 볼터치 + light_blush: 연한 볼터치 + anime_style_blush: 애니메이션 스타일 볼터치 + nose_blush: 코볼터치 + nosebleed: 코피 + bruise_on_face: 얼굴에 멍 + facial_mark: 얼굴 표식 + forehead_mark: 이마 표식 + anger_vein: 화난 표정 + mole: 점 + mole_under_eye: 눈 밑의 점 + freckles: 주근깨 + food_on_face: 음식이 얼굴에 묻음 + rice_on_face: 얼굴에 밥 + cream_on_face: 얼굴에 크림 + mustache: 콧수염 + goatee: 염소 수염 + whisker_markings: 수염 자국 + scar: 흉터 + scar_across_eye: 눈을 가로지르는 흉터 + smoking_pipe: 담배파이프 + tattoo: 타투 + + - name: 귀 + color: rgba(255, 123, 2, .4) + tags: + elf ears: 엘프 귀 + fake animal ears: 가짜 동물 귀 + cat ears: 고양이 귀 + dog ears: 개 귀 + fox ears: 여우 귀 + bunny ears: 토끼 귀 + bear ears: 곰 귀 + wolf ears: 늑대 귀 + horse ears: 말 귀 + cow ears: 소 귀 + mouse ears: 쥐 귀 + pig ears: 돼지 귀 + sheep ears: 양 귀 + deer ears: 사슴 귀 + goat ears: 염소 귀 + antelope ears: 영양 귀 + rhino ears: 코뿔소 귀 + elephant ears: 코끼리 귀 + bat ears: 박쥐 귀 + dragon ears: 용 귀 + demon ears: 악마 귀 + angel ears: 천사 귀 + alien ears: 외계인 귀 + ear_blush: 귀 홍조 + ear_ornament: 귀 장식 + ear_piercing: 귀에 구멍 뚫기 + animal_ears: 동물 귀 + ears_down: 귀 내려놓음 + fake_animal_ears: 가짜 동물 귀 + floppy_ears: 너덜너덜한 귀 + animal_ear_fluff: 동물 귀 털 + fox_ears: 여우 귀 + cat_ears: 고양이 귀 + lion_ears: 사자 귀 + jaguar_ears: 표범 귀 + tiger_ears: 호랑이 귀 + dog_ears: 개 귀 + coyote_ears: 코요테 귀 + bunny_ears: 토끼 귀 + horse_ears: 말 귀 + pointy_ears: 뾰족한 귀 + long_pointy_ears: 긴 뾰족한 귀 + mouse_ears: 쥐 귀 + raccoon_ears: 너구리 귀 + squirrel_ears: 다람쥐 귀 + bear_ears: 곰 귀 + panda_ears: 판다 귀 + bat_ears: 박쥐 귀 + robot_ears: 로봇 귀 + extra_ears: 추가 귀 + ears_through_headwear: 모자나 머리 장식을 통과하는 귀 + alpaca_ears: 알파카 귀 + horns: 뿔 + fake_horns: 가짜 뿔 + dragon_horns: 용 뿔 + oni_horns: 오니 뿔 + antlers: 사슴 뿔 + curled_horns: 꼬인 뿔 + goat_horns: 염소 뿔 + hair_on_horn: 뿔 위의 털 + + - name: 눈썹 + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: 두꺼운 눈썹 + cocked eyebrow: 눈썹을 찌푸림 + short eyebrows: 짧은 눈썹 + v-shaped eyebrows: V자형 눈썹 + + - name: 눈 + color: rgba(255, 123, 2, .4) + tags: + blue eyes: 파란 눈 + red eyes: 빨간 눈 + brown eyes: 갈색 눈 + green eyes: 초록 눈 + purple eyes: 보라 눈 + yellow eyes: 노란 눈 + pink eyes: 분홍 눈 + black eyes: 검은 눈 + aqua eyes: 아쿠아 눈 + orange eyes: 주황 눈 + grey eyes: 회색 눈 + multicolored eyes: 다색 눈 + white eyes: 흰 눈 + gradient eyes: 그라데이션 눈 + closed eyes: 눈 감음 + half-closed eyes: 반쯤 감은 눈 + crying with eyes open: 눈 뜨고 울음 + narrowed eyes: 눈을 가늘게 뜸 + hidden eyes: 눈 숨김 + heart-shaped eyes: 하트 모양 눈 + button eyes: 단추 눈 + cephalopod eyes: 조개류 눈 + eyes visible through hair: 머리카락 사이로 보이는 눈 + glowing eyes: 빛나는 눈 + empty eyes: 빈 눈 + rolling eyes: 눈 굴리기 + cross eyed: 졸린 눈 + blank eyes: 텅 빈 눈 + no eyes: 눈 없음 + sparkling eyes: 반짝이는 눈 + extra eyes: 추가 눈 + crazy eyes: 미친 눈 + solid circle eyes: 실선 원 눈 + solid oval eyes: 실선 타원 눈 + uneven eyes: 불규칙한 눈 + blood from eyes: 눈에서 피 흐름 + eyeshadow: 아이섀도우 + red eyeshadow: 빨간색 아이섀도우 + blue eyeshadow: 파란색 아이섀도우 + purple eyeshadow: 보라색 아이섀도우 + pink eyeshadow: 분홍색 아이섀도우 + green eyeshadow: 초록색 아이섀도우 + bags under eyes: 눈밑 처짐 + ringed eyes: 눈썹 주변 + covered eyes: 눈 가리기 + covering eyes: 눈 가리기 + shading eyes: 눈 가리기 + devil eyes: 악마 눈 + slit pupils: 고양이 눈 + bloodshot eyes: 충혈된 눈 + tsurime: 눈끝 올림 + tareme: 눈끝 내림 + constricted pupils: 동공 수축 + devil pupils: 악마의 눈동자 + snake pupils: 뱀 눈동자 + pupils sparkling: 눈동자 반짝임 + flower-shaped pupils: 꽃 모양 눈동자 + heart-shaped pupils: 하트 모양 눈동자 + heterochromia: 이색 눈동자 + color contact lenses: 컬러 콘택트 렌즈 + longeyelashes: 긴 속눈썹 + colored eyelashes: 컬러 속눈썹 + mole under eye: 눈 아래 점 + light_eyes: 밝은 눈 + glowing_eye: 빛나는 눈 + shiny_eyes: 반짝이는 눈 + sparkling_eyes: 반짝이는 눈 + gradient_eyes: 그라데이션 눈 + anime_style_eyes: 애니메이션 스타일 눈 + water_eyes: 물빛 눈 + beautiful_detailed_eyes: 아름다운 디테일이 있는 눈 + solid_oval_eyes_: 솔리드 타원 눈 + solid_circle_pupils: 솔리드 원 눈동자 + blush_stickers: 블러셔 스티커 + heart_in_eye: 눈 속에 하트 + evil_eyes: 악마 같은 눈 + crazy_eyes: 미친 듯한 눈 + empty_eyes: 빛이 없는 눈 + covered_eyes: 가려진 눈 + hollow_eyes: 별 모양 눈동자 + multicolored_eyes: 다채로운 눈 + ringed_eyes: 눈썹 주변 + sanpaku: 삼백증 (동공이 치우쳐 있는 상태) + mismatched_sclera: 눈자리가 맞지 않음 + eye_relfection: 눈 반사 (효과 없음) + mechanical_eye: 기계 눈 + cephalopod_eyes: 조개류 눈 + clock_eyes: 시계 눈 + compound_eyes: 복합 눈 + fisheye: 물고기 눈 + devil_eyes: 악마의 눈 + bloodshot_eyes: 핏줄이 돋은 눈 + blood_from_eyes: 눈에서 피 흐름 + aqua_eyes: 청색 눈 + solid_eyes: 확고한 눈 + sparkling_anime_eyes: 반짝이는 애니메이션 눈 + blue_eyes: 파란 눈 + brown_eyes: 갈색 눈 + closed_eyes: 눈 감은 상태 + crying_with_eyes_open: 눈 뜨고 울음 + extra_eyes: 여러 개의 눈 + eye_contact: 눈빛 소통 + eye_of_horus: 호루스의 눈 + eyeball: 눈알 + eyeliner: 아이라이너 + eyes: 눈 + glint: 강한 감정이 반영된 눈빛 + glowing_eyes: 빛나는 두 눈 + half-closed_eye: 반쯤 감은 눈 (한쪽) + half-closed_eyes: 반쯤 감은 눈 (양쪽) + horizontal_pupils: + jitome: 경멸하는 눈빛 + light_brown_eyes: 밝은 갈색 눈 + no_eyes: 눈 그려지지 않음 + one-eyed: 눈 반사 + reflective_eyes: + silver_eyes: 은색 눈 + spiral_eyes: 소용돌이 눈 + third_eye: 세 번째 눈 + uneven_eyes: 크기가 다른 눈 + flaming_eye: 불꽃 눈 + eyes_closed: 눈 감음 + half_closed_eyes: 반쯤 감은 눈 (양쪽) + narrowed_eyes: 눈을 가늘게 뜸 + squinting: 눈을 가늘게 뜨고 보기 + tears: 눈물 + sharp_eyes: 날카로운 눈 + slanted_eyes: 날카로운 눈 + upturned_eyes: 올라간 눈 + cross-eyed: 졸린 눈 + hair_over_eyes: 머리카락이 눈을 가리고 있음 + eyes_visible_through_hair: 머리카락 사이로 눈이 보임 + hair_over_one_eye: 머리카락이 한쪽 눈을 가림 + one_eye_covered: 한쪽 눈이 가려짐 + bags_under_eyes: 눈밑 처짐 + eyepatch: 안대 + medical_eyepatch: 의료용 안대 + scar_across_eye: 눈 위에 흉터 + no_blindfold: 가리개(눈 가리는 요소) 제외 + no_eyepatch: 안대 제외 + ahegao: 아헤가오 + + - name: 동공 + color: rgba(255, 123, 2, .4) + tags: + pupils: 동공 + bright_pupils: 밝은 동공 + heterochromia: 이색 동공 + slit_pupils: 세로 동공/고양이 눈 + snake_pupils: 동공 반짝임 + symbol-shaped_pupils: 심볼 모양 동공 + heart-shaped_pupils: 하트 모양 동공 + diamond-shaped_pupils: 다이아몬드 모양 동공 + star-shaped_pupils: 별 모양 동공 + dilated_pupils: 동공 확장 + no_pupils: 동공 없음 + ringed_eyes: 회전하는 눈 + constricted_pupils: 수축한 동공 (효과 없음) + star_in_eye: 눈 속의 별 + x-shaped_pupils: X자 모양 동공 + horizontal_pupils: 수평 동공 + dashed_eyes: 점선 눈 + butterfly-shaped_pupils: 나비 모양 동공 + rectangular_pupils: 직사각형 동공 + square_pupils: 사각형 동공 + dot_pupils: 점 동공 + extra_pupils: 추가 동공 + mismatched_pupils: 맞지 않는 동공 + "+_+": 십자 모양 눈 + cross-shaped_pupils: 십자 모양 동공 (효과 없음) + purple_pupils: 보라색 동공 + orange_pupils: 주황색 동공 + blue_pupils: 파란색 동공 + symbol_in_eye: 눈 속에 심볼 + + - name: 코 + color: rgba(255, 123, 2, .4) + tags: + pointed nose: 뾰족한 코 + small nose: 작은 코 + big nose: 큰 코 + no_nose: 코 없음 + dot_nose: 점 모양 코 + nose_bubble: 코 거품 + smelling: 냄새를 맡음 + nose: 코 + nosebleed: 코피 + snot: 콧물 + snout: 동물의 입코부위 + + - name: 입 + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: 밤색 입 + thick lips: 두꺼운 입술 + puffy lips: 부풀어 오른 입술 + lipstick: 립스틱 + heart-shaped mouth: 하트 모양 입 + pout: 삐죽한 입 + open mouth: 입 벌림 + closed mouth: 입 닫음 + shark mouth: 상어 입 + parted lips: 벌린 입 + mole under mouth: 아래 입술에 점 + open_mouth: 입 벌림 + gasping: 숨을 헐떡임 (입 벌림) + Slightly_open_mouth: 약간 벌린 입 + wavy_mouth: 파도 모양 입 + close_mouth: 입 닫음 + dot_mouth: 점 모양 입 + no_mouth: 입 없음 + gag: 입 막음 + gnaw: 깨물음 + :3: 고양이 입 + :o: 입 벌림 + :>: V자 모양 입 + parted_lips: 입술 벌림 + bit_gag: 입 막음 + chestnut_mouth: 밤색 입 + cleave_gag: 입 막음 + closed_mouth: 입 닫음 + covered_mouth: 입 가림 + extra_mouth: 여러 개의 입 + hair_in_mouth: 입 안에 머리카락 + hair_tie_in_mouth: 머리카락을 입에 물고 있음 + homu: 입술을 삐죽거림 + lips: 입술 + mouth: 입 + mouth_hold: 입으로 잡음 + oral: 입으로 + pacifier: 유모차 + Pouted lips: 내밀은 입술 + sideways_mouth: 측면 얼굴에 입을 그림 + spoon_in_mouth: 숟가락을 입에 놓음 + triangle_mouth: 삼각형 입 + saliva: 침 + drooling: 침 흘림 + mouth_drool: 입술에 침 모양의 틈 + + - name: 이빨 + color: rgba(255, 123, 2, .4) + tags: + teeth: 이빨 + upper_teeth: 윗니 + fang: 송곳니 + skin_fang: 피부색 송곳니 + round_teeth: 둥근 이빨 + sharp_teeth: 날카로운 이빨 + clenched_teeth: 이빨 깨물기 + tongue: 혀 + buck_teeth: 톱니모양 이빨 + fang_out: 송곳니 드러냄 + fangs: 송곳니 + spiked_club: 가시 돌맹이 + tooth: 이 + toothbrush: 칫솔 + tusks: 엄니 + shark_mouth: 상어 이빨 + + - name: 혀 + color: rgba(255, 123, 2, .4) + tags: + :q: 혀를 윗입술에 대다 + :p: 혀를 아랫입술에 대다 + ;p: 눈 깜빡이면서 혀를 내밀다 + french_kiss: 프렌치 키스 + long_tongue: 긴 혀 + oral_invitation: 사정을 맞이하기 위해 혀를 내밀다 + tongue: 혀 + tongue_out: 혀 내밀기 + uvula: 작은 혀, 입천장, 혀뼈 + + - name: 손톱 + color: rgba(255, 123, 2, .4) + tags: + fingernails: 손톱 + toenails: 발톱 + nail_polish: 네일 폴리쉬 + toenail_polish: 발톱 폴리쉬 + black_nails: 검은색 손톱 + red_nails: 빨간색 손톱 + pink_nails: 분홍색 손톱 + long_fingernails: 긴 손톱 + nail: 손톱 + multicolored_nails: 다채로운 손톱 + nail_art: 네일 아트 + brown_vest: 갈색 조끼 + + - name: 어깨 + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: 벌거숭이 어깨 + collarbonea: 쇄골 + armpits: 겨드랑이 + armpit_crease: 겨드랑이 주름 + + - name: 가슴 + color: rgba(255, 123, 2, .4) + tags: + chest: 가슴 + flat chest: 납작한 가슴(A컵) + small_breasts: 작은 가슴(B컵) + medium breasts: 중간 크기 가슴(C컵) + big breasts: 큰 가슴(D컵) + huge breasts: 거대한 가슴(E컵) + gigantic breasts: 엄청나게 큰 가슴(F컵) + between breasts: 가슴 사이 + breasts apart: 가슴이 분리됨 + hanging breasts: 가슴이 늘어짐 + bouncing breasts: 가슴이 튀김 + cleavage: 가슴 간격 + areola: 유두 + nipples: 유두 + pectorals: 흉근 + large_pectorals: 큰 흉근 + unbuttoned clothes: 옷을 풀어놓은 가슴 + + - name: 허리 + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: 좁은 허리 + slender_waist: 날씬한 허리 + + - name: 배 + color: rgba(255, 123, 2, .4) + tags: + midriff: 배 + belly: 배 + absolute_territory: 복근 + inflation: 부풀어 오른 배 + navel: 배꼽 + groin: 사타구니 + pregnant: 임신 + + - name: 날개 + color: rgba(255, 123, 2, .4) + tags: + wings: 날개 + bat_wings: 박쥐 날개 + butterfly_wings: 나비 날개 + black_wings: 검은 날개 + demon_wings: 악마의 날개 + asymmetrical_wings: 비대칭 날개 + detached_wings: 본체와 연결되지 않은 날개 + fairy_wings: 요정의 날개 + fake_wings: 가짜 날개 + fiery_wings: 불타는 날개 + insect_wings: 곤충 날개 + large_wings: 큰 날개 + low_wings: 허리에 있는 날개 + mini_wings: 작은 날개 + multicolored_wings: 다양한 색상의 날개 + multiple_wings: 여러 쌍의 날개 + no_wings: 날개 없음 + winged_helmet: 날개 달린 헬멧 + +- name: 의류 + groups: + - name: 정장 + color: rgba(230, 84, 128, .4) + tags: + suit: 정장 + tuxedo: 꼬리 재킷 + formal_dress: 정장 + evening_gown: 이브닝 가운 + canonicals: 야간 의상 + cocktail_dress: 칵테일 드레스 + gown: 여성 한복 + japanese_clothes: 일본의 옷 + kimono: 기모노 + sleeveless_kimono: 민소매 기모노 + short_kimono: 짧은 기모노 + print_kimono: 프린트 기모노 + furisode: 푸리소데 (기모노의 일부) + obi: 동의 (기모노 액세서리) + sash: 띠 + cheongsam: 청숨 + china_dress: 중국복 + print_cheongsam: 프린트 청숨 + pelvic_curtain: 청숨류 옷의 앞치마 + wedding_dress: 웨딩 드레스 + uchikake: 우치카케 (일본 결혼식 의상) + school_uniform: 교복 + sailor: 선원복 + serafuku: 선원복 + summer_uniform: 여름 교복 + kindergarten_uniform: 유치원 교복 + police_uniform: 경찰복 + naval_uniform: 해군복 + military_uniform: 군복 + ss_uniform/nazi_uniform: 나치 군복 + maid: 메이드복 + stile_uniform: 하녀의 군복 + miko: 미코복 + overalls: 작업복 + business_suit: 비즈니스 정장 + nurse: 간호사복 + chef_uniform: 요리사 유니폼 + labcoat: 백색 작업복 + cheerleader: 치어리더복 + band_uniform: 밴드 유니폼 + space_suit: 우주복 + leotard: 레오타드 + domineering: 수녀복 + + - name: 스타일 + color: rgba(230, 84, 128, .4) + tags: + china_dress: 중국 의상 + chinese_style: 중국 스타일 + traditional_clothes: 전통 의상|민속 의상 + japanese_clothes: 일본 스타일 의상 + hanten_(clothes): 한텐 (일본 의상) + hanbok: 한복 + korean_clothes: 한국 의상 + western: 서부 스타일 + german_clothes: 독일 의상 + gothic: 고딕 스타일 + lolita: 로리타 스타일 + gothic_lolita: 고딕 로리타 스타일 + byzantine_fashion: 비잔틴 패션 + Tropical: 열대 특징의 + indian_style: 인도 스타일 + Ao_Dai: 베트남 교복 (아오 다이) + ainu_clothes: 아이누인의 의상 + arabian_clothes: 아랍 의상 + egyptian_clothes: 이집트 스타일 의상 + costume: 의상 + animal_costume: 동물 시리즈 의상 (모피 의상) + bunny_costume: 토끼 의상 + adapted_costume: 원작 의상 변형 + cat_costume: 고양이 시리즈 의상 + dog_costume: 개 시리즈 의상 + bear_costume: 곰 의상 + embellished_costume: 장식된 의상 + santa_costume: 산타 의상 + halloween_costume: 할로윈 의상 + kourindou_tengu_costume: 칸린도우 텐구 의상 + alternate_costume: 원작과 다른 옷 + costume_switch: 옷 갈아입기 + meme_attire: 밈 의상 + + - name: 캐주얼 의상 + color: rgba(230, 84, 128, .4) + tags: + casual: 캐주얼 + loungewear: 루지웨어 + hoodie: 후드티 + homewear: 홈웨어 + pajamas: 잠옷 + nightgown: 잠옷 + sleepwear: 잠옷 + babydoll: 베이비돌 잠옷 + print_pajamas: 프린트 잠옷 + polka_dot_pajamas: 점박이 잠옷 + yukata: 유카타 + chinese_clothes: 중국복 + hanfu: 한복 + Taoist robe: 도복 + robe: 가운 + robe_of_blending: 혼합 가운 + cloak: 망토 + hooded_cloak: 후드 망토 + winter_clothes: 겨울 옷 + down jacket: 패딩 + santa: 산타복 + harem_outfit: 하렘복 + shrug_(clothing): 어깨를 으쓱하는 (의상) + + - name: 운동복 + color: rgba(230, 84, 128, .4) + tags: + sportswear: 운동복 + gym_uniform: 체육복 + athletic_leotard: 체조복 + tennis_uniform: 테니스 유니폼 + baseball_uniform: 야구 유니폼 + letterman_jacket: 운동부 재킷 + volleyball_uniform: 배구 유니폼 + biker_clothes: 자전거 운동복 + bikesuit: 자전거 복장 + wrestling_outfit: 씨름복 + dougi: 도복 + + - name: 수영복 + color: rgba(230, 84, 128, .4) + tags: + swimsuit: 수영복 + swimwear: 수영복 + wet_swimsuit: 젖은 수영복 + school_swimsuit: 학교 수영복 + new_school_swimsuit: 신형 학교 수영복 + old_school_swimsuit: 구형 학교 수영복 + competition_school_swimsuit: 경쟁용 학교 수영복 + competition_swimsuit: 경쟁용 수영복 + casual_one-piece_swimsuit: 일반 원피스 수영복 + front_zipper_swimsuit: 앞지퍼 수영복 + highleg_swimsuit: 하이레그 수영복 + one-piece_swimsuit: 원피스 수영복 + swimsuit_of_perpetual_summer: 영원한 여름의 수영복 (FGO 학생복) + bikini: 비키니 + highleg_bikini: 하이웨이스트 비키니 + lowleg_bikini: 로웨스트 비키니 + slingshot_swimsuit: V자 비키니 + sailor_bikini: 선원복 비키니 + shell_bikini: 조개 비키니 + sports_bikini: 스포츠 비키니 + string_bikini: 스트링 비키니 + strapless_bikini: 민소매 비키니 + side-tie_bikini: 사이드 타이 비키니 + front-tie_bikini_top: 앞 묶음 비키니 탑 + multi-strapped_bikini: 다중 스트랩 비키니 + thong_bikini: T자 비키니 + front-tie_bikini: 앞 묶음 비키니 + frilled_bikini: 프릴 비키니 + o-ring_bikini: O링이 달린 비키니 + eyepatch_bikini: 안대 비키니 + layered_bikini: 레이어드 비키니 + bow_bikini: 리본이 달린 비키니 + frilled_swimsuit: 프릴 수영복 + polka_dot_swimsuit: 점박이 수영복 + striped_swimsuit: 줄무늬 수영복 + striped_bikini: 줄무늬 비키니 + plaid_bikini: 체크 비키니 + polka_dot_bikini: 점박이 비키니 + print_bikini: 프린트 비키니 + american_flag_bikini: 미국 국기 비키니 + german_flag_bikini: 독일 국기 비키니 + impossible_swimsuit: 인체 그림 같은 수영복 + bikini_top: 비키니 탑만 + bikini_top_only: 비키니 탑만 + bikini_top_removed: 비키니 탑 벗김 + bikini_bottom_only: 비키니 하의만 + bikini_bottom: 비키니 하의 + untied_bikini: 풀린 비키니 + bikini_aside: 삼각형 비키니 + swimsuit_aside: 수영복 삼각형 + swimsuit_under_clothes: 옷 아래에 입은 수영복 + torn_swimsuit: 찢어진 수영복 + bikini_skirt: 비키니 스커트 + swim_briefs: 남성용 수영복 + swim_cap: 수영 모자 + swim_trunks: 남성용 수영 팬츠 + + - name: 교복 + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: 변형된 교복 + anzio_military_uniform: 안치오 군복 + anzio_school_uniform: 안치오 교복 + aria_company_uniform: 아리아 회사 교복 + ashford_academy_uniform: 애쉬포드 학원 교복 + bc_freedom_military_uniform: BC 자유학원 군복 + chaldea_uniform: 캘데아 교복 + chi-hatan_military_uniform: 치하탄 학원 군복 + fleur_de_lapin_uniform: 플뢰르 드 라팡 제복 + garreg_mach_monastery_uniform: 가르그 막 수도원 교복 + gem_uniform_(houseki_no_kuni): 보석의 나라 제복 + hanasakigawa_school_uniform: 하나사키가와 여자학원 교복 + hikarizaka_private_high_school_uniform: 히카리자카 사립 고등학교 교복 + homurahara_academy_uniform: 호무라하라 학원 교복 + kamiyama_high_school_uniform: 카미야마 고등학교 교복 + keizoku_military_uniform: 계속 고등학교 군복 + kita_high_school_uniform: 키타 고등학교 교복 + kiyosumi_school_uniform: 키요스미 고등학교 교복 + luna_nova_school_uniform: 루나노바 마법학교 교복 + meiji_schoolgirl_uniform: 메이지 시대 여학생 교복 + mitakihara_school_uniform: 미타키하라 중학교 교복 + nami_junior_high_school_uniform: 나미 중학교 교복 + nanairogaoka_middle_school_uniform: 나나이로가오카 중학교 교복 + nanamori_school_uniform: 나나모리 중학교 교복 + naoetsu_high_school_uniform: 나오에츠 고등학교 교복 + national_shin_ooshima_school_uniform: 신오오시마 국립학교 교복 + ooarai_military_uniform: 오아라이 연대 군복 + ooarai_school_uniform: 오아라이 연대 교복 + otonokizaka_school_uniform: 음노키자카 여자학교 교복 + paradis_military_uniform: 파라디스 섬 군복 + polar_chaldea_uniform: 극지 캘데아 교복 + pravda_military_uniform: 프라브다 연대 군복 + pravda_school_uniform: 프라브다 연대 교복 + rabbit_house_uniform: 토끼 하우스 제복 + raimon_soccer_uniform: 라이몬 축구 교복 + ryouou_school_uniform: 료오우 학원 교복 + sailor_senshi_uniform: 세일러 전사 제복 + sakugawa_school_uniform: 사구와 중학교 교복 + sakuragaoka_high_school_uniform: 사쿠라가오카 여자고등학교 교복 + saunders_military_uniform: 산더스 연대 군복 + saunders_school_uniform: 산더스 연대 교복 + seishou_elementary_school_uniform: 세이쇼 대부초등학교 교복 + shinda_sekai_sensen_uniform: 사후 세계 전선 제복 + shuuchiin_academy_uniform: 슈우치인 학원 교복 + shuujin_academy_uniform: 슈진 학원 교복 + st._gloriana's_military_uniform: 세인트 글로리아나 군복 + st._gloriana's_school_uniform: 세인트 글로리아나 여학원 교복 + starlight_academy_uniform: 스타라이트 학원 교복 + tokisadame_school_uniform: 토키사다메 고교 교복 + tokiwadai_school_uniform: 토키와다이 중학교 교복 + tomoeda_elementary_school_uniform: 토모에다 초등학교 교복 + tsab_ground_military_uniform: TSAB 지상군 군복 + u.a._school_uniform: 우.에이. 고등학교 교복 + uranohoshi_school_uniform: 우라노호시 여자학원 교복 + yasogami_school_uniform: 야소가미 고등학교 교복 + mismatched_bikini: 쌍둥이 비키니 + multicolored_bikini: 다색 비키니 + + - name: 상의 + color: rgba(230, 84, 128, .4) + tags: + blouse: 여성용 블라우스 + white_shirt: 흰 셔츠 + collared_shirt: 칼라 셔츠 + dress_shirt: 드레스 셔츠 + sailor_shirt: 선원복 셔츠 + cropped_shirt: 크롭트 셔츠 + t-shirt: 티셔츠 + casual T-shirts: 캐주얼 티셔츠 + short sleeve T-shirts: 반팔 티셔츠 + off-shoulder_shirt: 어깨 노출 셔츠 + shrug_(clothing): 어깨를 으쓱하는 (의상) + cardigan: 카디건 + criss-cross_halter: 십자 끈 헬터넥 + frilled_shirt: 프릴 셔츠 + sweatshirt: 스웨트셔츠 + hawaiian_shirt: 하와이안 셔츠 + hoodie: 후드티 + Impossible shirt: 비현실적인 셔츠 + kappougi: (요리할 때 입는) 가운 + plaid_shirt: 체크 셔츠 + polo_shirt: 폴로 셔츠 + print_shirt: 프린트 셔츠 + shirt: 셔츠 + sleeveless_hoodie: 민소매 후드티 + sleeveless_shirt: 민소매 셔츠 + striped_shirt: 줄무늬 셔츠 + tank_top: 탱크탑 + vest: 조끼 + waistcoat: 조끼 + camisole: 캐미솔 + tied_shirt: 묶은 셔츠 + undershirt: 속옷 + crop_top: 크롭 탑 + highleg: 높은 허벅지 스타일의 의상 + clothing_cutout: 의상의 구멍 + back_cutout: 등 노출 상의 + cleavage_cutout: 가슴 노출 상의 + navel_cutout: 배꼽 노출 상의 + midriff: 배 노출 상의 + heart_cutout: 하트 모양 개구 + torn_clothes: 찢어진 옷 + torn_shirt: 찢어진 셔츠 + undressing: 옷을 벗는 중 + clothes_down: 옷을 내림 + shirt_lift: 셔츠를 올림 + shirt_pull: 셔츠를 당김 + shirt_tucked_in: 셔츠를 바지에 넣음 + clothes_tug: 옷을 잡아당김 + shirt_tug: 셔츠를 잡아당김 + untucked_shirt: 넣지 않은 셔츠 + lifted_by_self: 자신이 옷을 들어올림 + untied: 자신이 옷을 벗음 + open_clothes: 열린 옷 + unbuttoned shirt: 단추를 풀은 셔츠 + button_gap: 단추 사이 간격 (풀리지 않음) + partially_unbuttoned: 일부 단추를 풀은 + partially_unzipped: 일부 상단 지퍼를 열은 + clothes_removed: 벗은 옷 + shirt_removed: 벗은 셔츠 + wardrobe_error: 옷이 미끄러짐 + undersized_clothes: 사이즈가 작은 옷 + tight: 꽉 조여진 옷 + wedgie: 엉덩이에 끼는 (속옷으로 인한) + wardrobe_malfunction: 옷이 예기치 않게 망가짐 + taut_shirt: 팽팽한 셔츠 + taut_clothes: 팽팽한 옷 + underbust: 가슴 아래 조여진 + oversized_clothes: 크기가 큰 옷 + oversized_shirt: 크기가 큰 셔츠 + borrowed_garments: 남자친구의 옷 + strap_slip: 옷 끈이 미끄러짐 (노출로 이어짐) + wet_shirt: 젖은 셔츠 + clothes_theft: 옷을 훔침 + + - name: 외투 + color: rgba(230, 84, 128, .4) + tags: + blazer: 블레이저 + overcoat: 외투 + double-breasted: 더블 브레스트(더블 버튼 + long_coat: 롱 코트 + haori: 하오리(한 종류의 넓은 상의) + winter_coat: 겨울 코트 + hooded_coat: 후드 코트 + fur_coat: 모피 코트 + fur-trimmed_coat: 모피 장식 코트 + duffel_coat: 더플 코트 + fishnet_top: 어망 상의 + parka: 파카 + jacket: 재킷 + jacket_partially_removed: 재킷 일부 제거 + jacket_removed: 재킷 제거 + open_jacket: 오픈 재킷(넓은 다리와 함께) + cropped_jacket: 크롭 재킷 + track_jacket: 트랙 재킷 + hooded_track_jacket: 후드 트랙 재킷 + military_jacket: 군복 재킷 + camouflage_jacket: 카모플라주 재킷 + leather_jacket: 가죽 재킷 + letterman_jacket: 레터맨 재킷 + bomber_jacket: 폭격기 재킷 + denim_jacket: 데님 재킷 + loating_jacket: 캐주얼 재킷 + fur-trimmed_jacket: 모피 장식 재킷 + two-tone_jacket: 이중 색상 재킷 + trench_coat: 트렌치 코트 + furisode: 풍선소마(한복의 일부) + windbreaker: 바람막이 + raincoat: 우비 + hagoromo: 깃옷 + tunic: 허리띠 외투 + cape: 망토 + capelet: 어깨를 덮는 작은 망토 + winter_clothes: 겨울 옷 + sweater: 스웨터 + pullover_sweaters: 풀오버 스웨터 + ribbed_sweater: 리브드 스웨터 + sweater_vest: 스웨터 조끼 + backless_sweater: 백리스 스웨터 + aran_sweater: 아란 스웨터 + beige_sweater: 베이지 스웨터 + brown_sweater: 갈색 스웨터 + hooded_sweater: 후드 스웨터 + off-shoulder_sweater: 어깨 노출 스웨터 + striped_sweater: 줄무늬 스웨터 + virgin_killer_sweater: 버진 킬러 스웨터 + down_jacket: 다운 재킷 + puffer_jacket: 패딩 재킷 + + - name: 기타 + color: rgba(230, 84, 128, .4) + tags: + transparent: 투명한 + burnt_clothes: 탄 총 옷 + dissolving_clothes: 녹아버린 옷 + dirty_clothes: 더러운 옷 + expressive_clothes: 표현력이 풍부한 옷 + impossible_clothes: 비현실적인 포장 정도의 옷 + living_clothes: 생체 옷 + leotard_under_clothes: 속옷으로 입은 레오타드 + multicolored_clothes: 다색 옷 + ofuda_on_clothes: 옷에 붙은 부적 + wringing_clothes: 옷을 비틀기 + clothesline: 옷걸이 + shiny_clothes: 광택이 있는 옷 + kariginu: 사냥복 + front-tie_top: 앞에서 매는 옷 + jacket_on_shoulders: 어깨에 재킷을 걸쳐 + short_jumpsuit: 반바지 점프수트 + harness: 어깨끈; 매듭 + rigging: 선체 + aiguillette: 어깨끈 + + - name: 허리 + color: rgba(230, 84, 128, .4) + tags: + apron: 앞치마 + waist_apron: 허리 앞치마 + maid_apron: 메이드 앞치마 + bow tied at the waist: 허리에 매는 리본 + waist_cape: 허리에 매는 작은 망토 + clothes_around_waist: 허리에 있는 옷 + jacket_around_waist: 허리에 매는 재킷 + sweater_around_waist: 허리에 매는 스웨터 + loincloth: 허리 둘레 천 + bustier: 부스티에 + corset: 코르셋 + girdle: 허리띠 + + - name: 갑옷 + color: rgba(230, 84, 128, .4) + tags: + armor: 갑옷 + bikini_armor: 비키니 갑옷 + full_armor: 전체 갑옷 착용 + plate_armor: 판금 갑옷 + japanese_armor: 일본 갑옷 + kusazuri: 배 갑옷|풀주(일본식 하반신 갑옷) + power_armor: 동력 갑옷 + mecha: 메카 + helmet: 헬멧 + kabuto: 헬멧(일본식) + off-shoulder_armor: 어깨 없는 갑옷 + shoulder_armor: 어깨 갑옷 + muneate: 일본 궁도 보호 가슴갑옷 + breastplate: 흉갑 + faulds: 배갑 + greaves: 정강이갑 + shin_guards: 정강이갑 + armored_boots: 장갑이 있는 부츠 + + - name: 치마 + color: rgba(230, 84, 128, .4) + tags: + dress: 드레스 + microdress: 미니 드레스 + long_dress: 롱 드레스 + off-shoulder_dress: 어깨 노출 드레스 + strapless_dress: 미착용 드레스 + backless_dress: 등 노출 드레스 + halter_dress: 목에 묶는 드레스 + sundress: 썬드레스(여름용 민소매 드레스) + sleeveless_dress: 민소매 드레스 + sailor_dress: 선원복 스타일의 드레스 + summer_dress: 여름용 긴 드레스 + china_dress: 중국 의상 + pinafore_dress: 앞치마 드레스 + sweater_dress: 앞치마 드레스 + wedding_dress: 웨딩 드레스 + armored_dress: 전투복 드레스 + frilled_dress: 프릴 드레스 + lace-trimmed_dress: 레이스 장식 드레스 + collared_dress: 카라 있는 드레스 + fur-trimmed_dress: 모피 장식 드레스 + layered_dress: 층을 이룬 드레스 + pleated_dress: 주름 장식 드레스 + taut_dress: 팽팽한 드레스 + pencil_dress: 연필 스커트 + impossible_dress: 지나치게 타이트한 옷 + multicolored_dress: 다색 드레스 + striped_dress: 줄무늬 드레스 + checkered_skirt: 체크무늬 스커트 + plaid_dress: 체크무늬 드레스 + ribbed_dress: 리브드 드레스 + polka_dot_dress: 점자 드레스 + print_dress: 프린트 드레스 + vertical-striped_dress: 세로 줄무늬 드레스 + see-through_dress: 비치는 드레스 + skirt: 스커트 + microskirt: 미니 스커트 + miniskirt: 미니 스커트 + skirt_suit: 스커트 정장 + bikini_skirt: 비키니 스커트 + pleated_skirt: 주름 스커트 + pencil_skirt: 펜슬 스커트 + bubble_skirt: 버블 스커트 + tutu: 투투(발레 드레스) + ballgown: 볼 가운(공식 드레스) + pettiskirt: 페티코트(아동용 버블 스커트) + showgirl_skirt: 쇼걸 의상 + Medium length skirt: 중간 길이 스커트 + beltskirt: 벨트 스커트 + denim_skirt: 데님 스커트 + suspender_skirt: 끈 스커트 + skirt_set: 상의와 매치되는 스커트 + long_skirt: 롱 스커트 + summer_long_skirt: 여름용 롱 스커트 + overskirt: 겉치마 + hakama_skirt: 하카마(일본식 스커트) + high-waist_skirt: 높은 허리 스커트 + kimono_skirt: 기모노 스커트 + suspender_long_skirt: 끈 스커트; 치마 + chiffon_skirt: 쉬폰 스커트 + frilled_skirt: 프릴 스커트 + fur-trimmed_skirt: 모피 장식 스커트 + lace_skirt: 레이스 스커트 + lace-trimmed_skirt: 레이스 장식 스커트 + ribbon-trimmed_skirt: 리본 장식 스커트 + layered_skirt: 층을 이룬 반스커트 + print_skirt: 프린트 스커트 + multicolored_skirt: 다색 스커트 + striped_skirt: 줄무늬 스커트 + vertical-striped_skirt: 세로 줄무늬 스커트 + plaid_skirt: 체크무늬 스커트 + flared_skirt: 플레어 스커트 + floral_skirt: 꽃무늬 스커트 + + - name: 치마와 상호작용 + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: 우아하게 치마를 들고 있음 + skirt_tug: 치마를 잡고 당김 + dress_tug: 드레스를 눌러 잡음 + skirt_lift: 치마를 들어올림 + skirt_around_one_leg: 한 다리에 치마를 걸침 + skirt_removed: 벗은 치마 + dress_removed: 벗은 드레스 + open_skirt: 열린 치마 + + - name: 바지 + color: rgba(230, 84, 128, .4) + tags: + dress_bow: 드레스에 달린 리본 + dressing_another: 옷을 입히는 중 + shorts_under_skirt: 치마 아래에 반바지를 입음 + side_slit: 측면 틈 + shorts: 반바지 + micro_shorts: 미니 반바지 + short_shorts: 숏 팬츠 + hot_pants: 핫 팬츠 + cutoffs: 숏 팬츠 + striped_shorts: 줄무늬 반바지 + suspender_shorts: 끈 반바지 + denim_shorts: 데님 반바지 + puffy_shorts: 퍼프 반바지 + dolphin_shorts: 돌고래 반바지 + dolfin_shorts: 돌고래 반바지 + tight_pants: 타이트한 바지/운동복 + crotchless_pants: 사창 바지(타이트) + track_pants: 운동 바지 + yoga_pants: 요가 바지 + bike_shorts: 자전거 반바지 + gym_shorts: 체육 반바지 + pants: 바지 + puffy_pants: 퍼프 바지/와이드 바지 + pumpkin_pants: 호박 바지 + hakama_pants: 하카마 바지 + harem_pants: 하렘 바지 + bloomers: 블루머 + buruma: 여성용 블루머 + jeans: 청바지 + cargo_pants: 카고 바지 + camouflage_pants: 카모플라주 바지 + capri_pants: 카프리 바지 + chaps: 챕(가죽 바지) + jumpsuit: (특히 여성용) 점프수트 + lowleg_pants: 저허리 바지 + plaid_pants: 체크무늬 바지 + single_pantsleg: 한쪽 다리 긴 바지 + striped_pants: 줄무늬 바지 + + - name: 바지와 상호작용 + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: 비대칭 바지 + leotard_aside: 레오타드의 밑바닥을 한 쪽으로 접음 + open_fly: 열린 바지 지퍼 + pants_down: 바지를 내림 + pants_rolled_up: 바지를 롤업 + pants_tucked_in: 바지를 넣음 + torn_jeans: 찢어진 청바지 + torn_pants: 찢어진 바지 + torn_shorts: 찢어진 반바지 + + - name: 양말 + color: rgba(230, 84, 128, .4) + tags: + bodystocking: 올인원 양말 + pantyhose: 팬티 스타킹|스타킹 + leggings: 레깅스 + legwear: 다리에 착용되는 의복(스타킹이나 긴 양말을 포괄) + thighhighs: 허벅지까지 오는 양말 + kneehighs: 무릎까지 오는 양말 + socks: 양말 + bare_legs: 맨 다리 + black_bodystocking: 검은색 올인원 양말 + white_bodystocking: 흰색 올인원 양말 + stocking_under_clothes: 옷 아래에 있는 스타킹 + black_pantyhose: 검은색 스타킹 + white_pantyhose: 흰색 스타킹 + thighband_pantyhose: 허벅지 밴드가 있는 스타킹 + pantylines: 딱딱한 스타킹(선으로 표시) + single_leg_pantyhose: 한쪽 다리에만 착용하는 스타킹 + panties_under_pantyhose: 스타킹 안에 속옷을 입음 + fishnets: 어망 양말(소재) + stirrup_legwear: 스타킹 + toeless_legwear: 발가락이 드러난 양말 + mismatched_legwear: 다른 색상의 양말 + two-tone_legwear: 이중 색상 양말 + asymmetrical_legwear: 비대칭 양말 + uneven_legwear: 긴 양말 + white_thighhighs: 흰색 허벅지까지 오는 양말 + black_thighhighs: 검은색 허벅지까지 오는 양말 + pink_thighhighs: 분홍색 허벅지까지 오는 양말 + suspenders: 삭스 홀더 + garter_straps: 가터 스트랩 + torn_legwear: 찢어진 양말 + torn_thighhighs: 찢어진 허벅지까지 오는 양말 + see-through_legwear_: 투명한 양말 + frilled_legwear: 프릴 양말 + lace-trimmed_legwear: 레이스 장식 양말 + seamed_legwear: 줄무늬가 있는 양말 + back-seamed_legwear: 가운데 검은 줄이 있는 양말 + animal_ear_legwear: 동물 귀가 달린 허벅지까지 오는 양말 + striped_legwear: 줄무늬 양말 + vertical-striped_legwear: 세로 줄무늬 양말 + polka_dot_legwear: 점자 양말 + print_legwear: 프린트 양말 + legwear_under_shorts: 반바지 위에 양말을 입음 + over-kneehighs: 무릎 위 양말 + bobby_socks: 바비 양말(흰색 양말) + tabi: 일본식 두꺼운 단추 양말(타비) + loose_socks: 바지 양말 + ankle_socks: 발목 양말 + leg_warmers: 다리 보호대|다리 워머 + single_sock: 한쪽 양말 + striped_socks: 줄무늬 양말 + + - name: 양말과 상호작용 + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: 양말에 구멍이 있음 + thighhighs_under_boots: 부츠 위에 허벅지까지 오는 양말을 신음 + adjusting_legwear: 양말을 정리함 + pantyhose_pull: 내린 스타킹 + socks_removed: 양말을 벗음 + sock_pull: 양말을 당김(짧은 양말) + thighhighs_pull: 양말을 당김(긴 양말) + + - name: 기타 + color: rgba(230, 84, 128, .4) + tags: + garters: 가터 + leg_garter: 다리 가터 + garter_straps: 스타킹의 가터 스트랩 + thigh_strap: 허벅지 끈 + thigh_ribbon: 허벅지 리본 + leg_ribbon: 다리 리본 + bandaid_on_leg: 다리에 반창고 + bandaged_leg: 붕대로 감싼 다리 + ankle_lace-up: 발목 끈 + thigh_holster: 허벅지 홀스터 + bandaid_on_knee: 무릎에 반창고 + argyle_legwear: 아가일 패턴 양말 + bow_legwear: 리본이 달린 양말 + arm_garter: 팔 가터 + + - name: 재질 + color: rgba(230, 84, 128, .4) + tags: + armored: 갑옷의 + canvas: 캔버스의 + denim: 데님 + fluffy: 푹신한 + fur: 모피 + latex: 라텍스 + leather: 가죽의 + see-through: 투명한 + spandex: 스판덱스 + tight: 타이트한 + + - name: 장식 + color: rgba(230, 84, 128, .4) + tags: + frilled: 주름 장식 + center_frills: 중앙 주름 장식 + crease: 주름이 있는 + layered: 층으로 이루어진 + lace: 레이스 + fur_trim: 털 장식 + fur-trimmed: 털 장식이 있는 + fine_fabric_emphasis: 소재 강조 + latex_thighhighs: 라텍스 소재의 오버 무릎 양말 + see-through_thighhighs: 투명한 오버 무릎 양말 + ass_cutout: 엉덩이를 드러내는 의상 + asymmetrical_clothes: 비대칭 의상 + back_bow: (의상) 등 뒤에 달린 리본 + costume_switch: 의상 교체 + cross-laced_clothes: 교차하는 레이스 장식의 의상 + double_vertical_stripe: 의상에 두 개의 수직 줄무늬 + halter_top: 목 뒤를 묶는 상의 의상 + multicolored_legwear: 다채로운 색상의 다리 의상 + navy_blue_legwear: 진청색 다리 의상 + nontraditional_miko: 변형된 일본 의상 + side_cutout: 측면이 개방된 의상 + side_slit: 측면에 틈이 있는 의상 + sideless_outfit: 측면이 없는 의상 + single_kneehigh: 한쪽 다리에 착용하는 너무 무릎 위의 의상 + single_vertical_stripe: 한쪽 의상에 있는 수직 줄무늬 + turtleneck: 넥이 높은 의상 + two-sided_fabric: 양면 스타일의 의상 + o-ring: O형 링이 있는 의류 + o-ring_top: O형 링이 있는 상의 + fringe_trim: 가닥 장식(스카프 끝) + loose_belt: 헐렁한 벨트(의류) + pom_pom_(clothes): 작은 모피 공(의류 장식) + drawstring: 의류의 끈 + full-length_zipper: 전신 길이의 지퍼가 있는 의상 + gathers: 주름 장식(의류) + gusset: 의류에 달린 안감 + breast_pocket: 가슴 주머니 + + - name: 패턴 + color: rgba(230, 84, 128, .4) + tags: + argyle: 아가일 무늬 + checkered: 체크무늬 + colored_stripes: 다채로운 줄무늬 + diagonal_stripes: 대각선 줄무늬 + horizontal_stripes: 수평 줄무늬 + multicolored_stripes: 다채로운 줄무늬 + polka_dot_: 점무늬 + ribbed: 골지무늬 + striped: 줄무늬 + unmoving_pattern: 연속적인 패턴 + vertical_stripes: 수직 줄무늬 + plaid: 격자무늬 + animal_print: 동물 무늬 + cat_print: 고양이 무늬 + bear_print: 곰 무늬 + bird_print: 새 무늬 + bunny_print: 토끼 무늬 + cow_print: 젖소 무늬 + dragon_print: 용 무늬 + fish_print: 물고기 무늬 + frog_print: 개구리 무늬 + shark_print: 상어 무늬 + snake_print: 뱀 무늬 + zebra_print: 얼룩말 무늬 + tiger_print: 호랑이 무늬 + leopard_print: 표범 무늬 + jaguar_print: 재규어 무늬 + bat_print: 박쥐 무늬 + aardwolf_print: 아드볼프 무늬 + african_wild_dog_print: 아프리카 들개 무늬 + cheetah_print: 치타 무늬 + dog_print: 개 무늬 + fox_print: 여우 무늬 + giraffe_print: 기린 무늬 + panda_print: 판다 무늬 + sand_cat_print: 사막고양이 무늬 + whale_print: 고래 무늬 + white_tiger_print: 백호 무늬 + goldfish_print: 금붕어 무늬 + wing_print: 날개 무늬 + spider_web_print: 거미줄 무늬 + butterfly_print: 나비 무늬 + floral_print: 꽃무늬 + leaf_print: 잎 무늬 + clover_print: 클로버 무늬 + maple_leaf_print: 단풍잎 무늬 + rose_print: 장미 무늬 + strawberry_print: 딸기 무늬 + cherry_print: 체리 무늬 + bamboo_print: 대나무 무늬 + carrot_print: 당근 무늬 + hibiscus_print: 히비스커스 무늬 + jack-o'-lantern_print: 호박 등 무늬 + petal_print: 꽃잎 무늬 + sunflower_print: 해바라기 무늬 + watermelon_print: 수박 무늬 + sky_print: 하늘 무늬 + cloud_print: 구름 무늬 + lightning_bolt_print: 번개 무늬 + rainbow_print: 무지개 무늬 + snowflake_print: 눈송이 무늬 + starry_sky_print: 별무리 무늬 + crescent_print: 초승달 무늬 + star_print: 별 무늬 + star_(symbol): 별 모양 기호 + moon_print: 달 무늬 + sun_print: 태양 무늬 + character_print: 문자 무늬 + clothes_writing_: 의류에 쓰인 글 + anchor_print: 닻 무늬 + cherry_blossom_print: 벚꽃 무늬 + musical_note_print: 음표 무늬 + triangle_print: 삼각형 무늬 + arrow_print: 화살표 무늬 + wave_print: 파도 무늬 + peace_symbol: ☮(조조부 의상에 있음) + heart_print: 하트 모양 패턴|하트 무늬 + flame_print: 불꽃 무늬 + hitodama_print: 히토다마 무늬 + paw_print: 발자국 무늬 + skeleton_print: 해골 무늬 + skull_print: 해골 무늬 + sparkle_print: 반짝이는 무늬 + yin_yang_print: 음양 무늬 + cross_print: 십자가 요소 패턴 + camoflage: 카모플라주 + flag_print: 국기 무늬 + bone_print: 뼈 무늬 + ghost_print: 유령 무늬 + mushroom_print: 버섯 무늬 + onigiri_print: 오니기리 무늬 + cat_ear: 고양이 귀 스타일 + cat_ear_cutout: 고양이 귀 스타일의 구멍이 있는 것 + + - name: 신발 + color: rgba(230, 84, 128, .4) + tags: + barefoot: 맨발 + no_shoes: 신발 없음 + shoes_removed: 벗은 신발 + single_shoe: 한쪽 신발 + the_only_shoe: 한쪽 신발 + black_loafers: 블랙 로퍼(작은 가죽 구두) + shoes: 운동화 + uwabaki: 실내화 + platform_footwear: 플랫폼 신발 + high_heels: 하이힐 + stiletto_heels: 가는 뒷꿈치의 하이힐 + strappy_heels: 끈이 있는 하이힐 + platform_heels_: 플랫폼 하이힐 + rudder_footwear: C형 함선 소녀 전용 신발 + sandals: 샌들 + barefoot_sandals: 맨발 샌들 + clog_sandals: 나무 깔창 샌들 + geta: 겨울용 나무 깔창 + slippers: 슬리퍼 + skates: 스케이트 + roller_skates: 롤러 스케이트 + animal_feet: 동물 발 + animal_slippers: 동물 슬리퍼 + anklet: 발목 장식 + shackles: 족쇄 + brown_footwear: 갈색 신발 + cross-laced_footwear: 교차하는 끈이 있는 신발 + loafers: 로퍼 + mary_janes: 메리 제인 신발 + mismatched_footwear: 다른 색상의 신발 + pointy_footwear: 날카로운 모양의 신발 + pumps: 저고리에 맞춘 하이힐 + sandals_removed: 벗은 샌들 + shoe_soles: 신발 밑창 + shoelaces: 신발 끈 + sneakers: 운동화 + winged_footwear: 날개가 달린 신발 + zouri: 일본식 초승달 모양의 신발 + + - name: 부츠 + color: rgba(230, 84, 128, .4) + tags: + boots: 부츠 + boots_removed: 벗은 부츠 + thigh_boots: 허벅지 부츠 + knee_boots: 무릎 위 부츠 (말 부츠) + cross-laced_footwear: 신발 끈이 있는 부츠 + ankle_boots: 발목 부츠 + high_heel_boots: 고무 힐 부츠 + toeless_boots: 발가락이 드러난 부츠 + lace-up_boots: 끈으로 묶는 부츠 + fur-trimmed_boots: 모피 장식 부츠 + snow_boots: 눈 부츠 + anklet: 발목 장식 + rubber_boots: 고무 부츠 + santa_boots: 산타 부츠 + leather_boots: 가죽 부츠 + thighhighs_under_boots: 부츠 아래의 장거리 양말 + combat_boots: 전투 부츠 + doc_martens: 닥터 마틴 부츠 + rain_boots: 비 부츠 + belt_boots: 벨트 부츠 + fur_boots: 낮은 굽의 캐주얼 가죽 부츠 + single_boot: 한 쪽 발에는 부츠를 신지 않음 + + - name: 신발 밑창 + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: 신발 밑창 + arched_soles: 아치형 밑창 + paw_print_soles: 발자국이 있는 밑창 + horseshoe: 말굽 + + - name: 칼라 + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: 선원 칼라 + fur_collar: 모피 칼라 + frilled_collar: 프릴 칼라 + popped_collar: 세운 칼라 + choker: 목걸이 + black_choker: 검은색 목걸이 + belt_collar: 벨트 칼라 + frilled_choker: 프릴 목걸이 + neckerchief: 넥타이 + red_neckerchief: 빨간색 넥타이 + necktie: 넥타이 + short_necktie: 짧은 넥타이 + white_necktie: 흰색 넥타이 + bowtie: 보타이 + headphones_around_neck: 목에 걸친 헤드폰 + goggles_around_neck: 목에 걸친 고글 + neck_bell: 목에 걸린 종 + neck_ruff: 칼라 + v-neck: V넥 + towel_around_neck: 목에 걸친 수건 + loose_necktie: 헐렁한 넥타이 + neck_tattoo: 목 타투 + ascot: 넥타이 모양 넓은 칼라 + ribbon_choker: 리본 목걸이 + maebari/pasties: 암걸이/유방용품 + latex: 라텍스 + torn_clothes: 찢어진 옷 + iron_cross: 철 십자가 훈장 + chinese_knot: 중국 매듭 + cross_necklace: 십자가 목걸이 + bead_necklace: 구슬 목걸이 + pearl_necklace: 진주 목걸이 + heart_necklace: 하트 모양 목걸이 + carrot_necklace: 당근 목걸이 + chain_necklace: 체인 목걸이 + magatama_necklace: 마가타마 목걸이 + tooth_necklace: 이빨 목걸이 + key_necklace: 열쇠 목걸이 + anchor_necklace: 닻 목걸이 + skull_necklace: 해골 목걸이 + shell_necklace: 조개껍질 목걸이 + gold_necklace: 금 목걸이 + crescent_necklace: 초승달 목걸이 + ring_necklace: 반지 목걸이 + feather_necklace: 깃털 목걸이 + bone_necklace: 뼈 목걸이 + ankh_necklace: 안크 십자가 목걸이 + multiple_necklaces: 여러 개의 목걸이 + bullet_necklace: 총알 목걸이 + holding_necklace: 손에 들고 있는 목걸이 + necklace_removed: 목걸이를 제거함 + brown_neckwear: 갈색 칼라 장식 + checkered_neckwear: 체크무늬 칼라 + diagonal-striped_neckwear: 대각선 줄무늬 칼라 + halterneck: 목에 매는 끈 + mole_on_neck: 목에 점이 있음 + neck: 목 + neck_ribbon: 목에 묶인 리본 + neck_ring: 목걸이 + necklace: 목걸이 + plaid_neckwear: 격자무늬 칼라 + plunging_neckline: 깊은 V넥 + print_neckwear: 프린트 칼라 + sleeveless_turtleneck: 민소매 목도리 + star_necklace: 별 모양 목걸이 + striped_neckwear: 줄무늬 칼라 + turtleneck_sweater: 목도리 달린 스웨터 + undone_necktie: 풀린 넥타이 + whistle_around_neck: 목에 걸친 휘파람 + + - name: 스카프 + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: 격자무늬 스카프 + striped_scarf: 줄무늬 스카프 + print_scarf: 프린트 스카프 + vertical-striped_scarf: 세로 줄무늬 스카프 + polka_dot_scarf: 점 스카프 + argyle_scarf: 아가일 스카프 + beige_scarf: 베이지 스카프 + scarf_bow: 스카프 리본 + fur_scarf: 모피 스카프 + naked_scarf: 벗은 스카프 + multicolored_scarf: 다색 스카프 + floating_scarf: 떠다니는 스카프 + long_scarf: 긴 스카프 + arm_scarf: 팔 스카프 + scarf_on_head: 머리에 두른 스카프 + scarf_over_mouth: 입에 덮은 스카프 + scarf_removed: 벗은 스카프 + adjusting_scarf: 스카프 조절 + holding_scarf: 손에 든 스카프 + scarf_pull: 스카프 잡아당기기 + brown_scarf: 갈색 스카프 + scarf: 스카프 + + - name: 안경 + color: rgba(230, 84, 128, .4) + tags: + glasses: 안경 + eyewear: 안경 + monocle: 단안경 + under-rim_eyewear: 안경테 아래 안경 + rimless_eyewear: 무테 안경 + semi-rimless_eyewear: 반무테 안경 + red-framed_eyewear: 빨간 테 안경 + round_eyewear: 둥근 테 안경 + black-framed_eyewear: 검정 테 안경 + tinted_eyewear: 색안경 + medical_eyepatch: 의료용 안대 + bandage_over_one_eye: 한쪽 눈에 반창고를 감은 안대 + crooked_eyewear: 비스듬한 안경 + eyewear_removed: 안경을 벗음 + sunglasses: 선글라스 + goggles: 고글 + blindfold: 눈가리개 + eyepatch: 안대 (한쪽 눈) + visor: 얼굴 보호대 | 썬캡의 채광판 + bespectacled: 안경을 쓴 + blue-framed_eyewear: 파란 테 안경 + brown-framed_eyewear: 갈색 테 안경 + coke-bottle_glasses: 유리병처럼 두꺼운 원형 안경 + no_eyewear: 안경을 벗은 + opaque_glasses: 불투명한 안경 + over-rim_eyewear: 위쪽 반무테 안경 + + - name: 가면 + color: rgba(230, 84, 128, .4) + tags: + mask: 가면 + half_mask: 반 가면 + masked: 가면을 쓴 + mask_lift: 가면을 올림 + mask_on_head: 머리 위에 올린 가면 + mask_removed: 벗은 가면 + mouth_mask: 입 마스크 + surgical_mask: 수술용 마스크 + plague_doctor_mask: 역병 의사 마스크 + gas_mask: 가스 마스크 + visor: 얼굴 보호대 + helmet: 헬멧 + fox_mask: 여우 가면 + diving_mask: 다이빙 마스크 + diving_mask_on_head: 머리에 착용하는 다이빙 마스크 + oni_mask: 오니 가면 + tengu_mask: 텐구 가면 + ninja_mask: 닌자 가면 + skull_mask: 해골 가면 + hockey_mask: 하키 마스크 + bird_mask: 새 가면 + stone_mask: 돌 가면 + horse_mask: 말 가면 + masquerade_mask: 마스커레이드 가면 + domino_mask: 도미노 가면 + + - name: 팔 + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: 긴 소매 + short_sleeves: 짧은 소매 + wide_sleeves: 넓은 소매 + furisode: 풍도 + detached_sleeves: 분리형 소매 + single_sleeve: 한쪽 소매 + sleeveless: 민소매 + asymmetrical_sleeves: 비대칭 소매 + puffy_sleeves: 퍼프 소매 + puffy_long_sleeves: 퍼프 긴 소매 + puffy_short_sleeves: 퍼프 짧은 소매 + frilled_sleeves: 주름 소매 + juliet_sleeves: 줄리엣 소매 + bandaged_arm: 밴드로 감싼 팔 + raglan_sleeves: 래글런 소매 + vambraces: 팔뚝 방어구 + layered_sleeves: 겹겹이 쌓인 소매 + fur-trimmed_sleeves: 모피 장식 소매 + see-through_sleeves: 비침 소매 + torn_sleeves: 찢어진 소매 + sleeves_past_fingers: 소매가 손가락을 넘어감 + sleeves_past_wrists: 소매가 손목을 넘어감 + sleeves_past_elbows: 소매가 팔꿈치를 넘어감 + sleeves_pushed_up: 소매를 올림 + arm_out_of_sleeve: 소매 밖으로 나온 팔 + uneven_sleeves: 균일하지 않은 소매 + mismatched_sleeves: 맞지 않는 소매 + sleeve_rolled_up: 소매를 올려서 말림 + sleeves_rolled_up: 한쪽 소매를 올려서 말림 + feather-trimmed_sleeves: 깃털 장식 소매 + hands_in_opposite_sleeves: 손을 교차하여 소매 안에 넣음 + lace-trimmed_sleeves: 레이스 장식 소매 + pinching_sleeves: 소매를 집어서 조여봄 + puffy_detached_sleeves: 퍼프 소매를 분리함 + ribbed_sleeves: 골지 소매 + single_detached_sleeve: 한쪽 소매를 분리하지 않은 소매 + sleeves_folded_up: 소매를 접어서 말림 + striped_sleeves: 줄무늬 소매 + wrist_cuffs: 소매와 분리된 손목 커프스 + armband: 소매받침(팔띠) + armlet: 팔찌 + + - name: 손 + color: rgba(230, 84, 128, .4) + tags: + bandage: 붕대 + leash: 가죽끈 + arm_tattoo: 팔 문신 + number_tattoo: 숫자 문신 + bead_bracelet: 구슬 팔찌 + bracelet: 팔찌 + flower_bracelet: 꽃 팔찌 + spiked_bracelet: 쐐기 팔찌 + wrist_cuffs: 손목 장식 + wristband: 팔띠 + bracer: 팔 보호대 + cuffs: 소매 + bound_wrists: 손목 묶음 + wrist_scrunchie: 손목 스크런치 + handcuffs: 수갑 + shackles: 족쇄 + chains: 사슬 + chain_leash: 사슬 끈 + + - name: 장갑 + color: rgba(230, 84, 128, .4) + tags: + gloves: 장갑 + gloves_removed: 장갑 벗음 + no_gloves: 장갑 없음 + single_glove: 한쪽 장갑 + single_elbow_glove: 팔꿈치까지 착용한 한쪽 장갑 + long_gloves: 긴 장갑 + elbow_gloves: 팔꿈치 장갑 + bridal_gauntlets: 신부 장갑 + half_gloves: 짧은 장갑|반 장갑 + fingerless_gloves: 손가락이 노출된 장갑 + partially_fingerless_gloves: 일부 손가락이 노출된 장갑 + paw_gloves: 발톱 장갑(손가락 분리형 장갑) + mittens: 손가락이 연결된 장갑(두 손가락 장갑) + baseball_mitt: 야구 장갑 + fur-trimmed_gloves: 모피 장식 장갑 + latex_gloves: 라텍스 장갑 + lace-trimmed_gloves: 레이스 장식 장갑 + leather_gloves: 가죽 장갑 + frilled_gloves: 주름 장식 장갑 + mismatched_gloves: 색이 다른 장갑 + multicolored_gloves: 다색 장갑 + asymmetrical_gloves: 비대칭 장갑 + brown_gloves: 갈색 장갑 + oven_mitts: 오븐 장갑 + print_gloves: 프린트 장갑 + striped_gloves: 줄무늬 장갑 + torn_gloves: 찢어진 장갑 + + - name: 귀걸이 + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: 십자가 귀걸이 + crystal_earrings: 크리스탈 귀걸이 + earrings: 귀걸이 + flower_earrings: 꽃 귀걸이 + heart_earrings: 하트 귀걸이 + hoop_earrings: 후프 귀걸이 + multiple_earrings: 다중 귀걸이 + pill_earrings: 알약 모양 귀걸이 + single_earring: 한쪽 귀걸이 + skull_earrings: 해골 귀걸이 + star_earrings: 별 모양 귀걸이 + + - name: 헤어 악세서리 + color: rgba(230, 84, 128, .4) + tags: + halo: 헤일로 + mechanical_halo: 기계식 헤일로 + headwear: 헤어 악세서리 + headpiece: 헤어 악세서리 + headwear_removed: 헤어 악세서리 제거됨 + head_wreath: 머리 화관 + crown: 왕관 + mini_crown: 미니 왕관 + tiara: 티아라 + diadem: 위와 동일 + tilted_headwear: 기울어진 헤어 악세서리 + head_fins: 머리 지느러미 + maid_headdress: 메이드 헤드드레스 + bridal_veil: 신부 베일 + headband: 헤어밴드 + helmet: 헬멧 + alternate_headwear: 다른 디자인의 헤어 악세서리 + fur-trimmed_headwear: 모피 장식 헤어 악세서리 + goggles_on_headwear: 모자 위의 고글 + earphones: 이어폰 + earmuffs: 귀마개 + ears_through_headwear: 헤어 악세서리로 귀가 통과함 + xx_on_head: 머리 위에 xx + leaf_on_head: 머리 위의 잎 + topknot: 머리 맨 위에 묶은 머리스타일 + suigintou: 수이긴토우(캐릭터 이름) + triangular_headpiece: 삼각형 모양의 헤어 악세서리 + forehead_protector: 이마 보호대 + radio_antenna: 라디오 안테나 + animal_hood: 동물 귀 후드 + arrow_(symbol): 화살표 + axe: 도끼 + bald: 대머리 + bandana: 반다나 + bob_cut: 밥 컷 + bone: 뼈 + bowl_cut: 사발 머리 + circlet: 작은 왕관 + double_bun: 두 개의 빵머리 + double_dildo: 이중 딜도 + drill: 드릴 + faucet: 수도꼭지 + hachimaki: 하치마키(머리띠) + hair_behind_ear: 귀 뒤로 된 머리 + hair_bell: 머리에 달린 종 + hair_bun: 머리 빵머리 + hair_down: 풀어진 머리 + hair_flaps: 흔들리는 머리 + hair_flip: 머리 치기 + hair_flower: 머리에 꽃 장식 + hair_spread_out: 퍼진 머리 + hair_up: 머리 올림 + helm: 헬멧을 쓴 + helmet_removed: 헬멧을 벗은 + horned_helmet: 뿔 모양 헬멧 + japari_bun: 자파리 번(머리스타일) + kerchief: 머리수건 + mami_mogu_mogu: 마미 모구 모구(캐릭터 이름) + mob_cap: 모브 캡(머리띠 스타일) + one_side_up: 한 쪽으로 올린 머리 + owl: 부엉이 + pier: 부두 + pillow: 베게 + raised_fist: 올린 주먹 + skull_and_crossbones: 해골과 십자 뼈 + stone: 돌 + turban: 터번 + twin_drills: 두 개의 드릴 머리스타일 + updo: 머리를 위로 말린 스타일 + wet_hair: 젖은 머리 + headdress: 머리 장식(일반적인 용어) + adjusting_headwear: 헤어 악세서리 정리 중 + bear_hair_ornament: 곰 머리 장식 + brown_headwear: 갈색 헤어 악세서리 + horned_headwear: 뿔 모양 헤어 악세서리 + horns_through_headwear: 뿔을 통과한 헤어 악세서리 + no_headwear: 헤어 악세서리 없음 + object_on_head: 머리 위에 헤어 악세서리가 아닌 물체 + print_headwear: 인쇄된 헤어 악세서리 + bone_hair_ornament: 뼈 모양 장식품 + bunny_hair_ornament: 토끼 모양 장식품 + horn_ornament: 뿔 위에 장식품 + animal_on_head: 머리 위에 동물 + behind-the-head_headphones: 뒤로 끼는 헤드폰 + bird_on_head: 머리 위의 새 + cat_ear_headphones: 고양이 귀 스타일 헤드폰 + cat_on_head: 머리 위에 고양이 + eyewear_on_head: 머리 위에 안경 + forehead: 이마 + forehead_jewel: 이마에 보석 + forehead_kiss: 이마에 키스 + forehead_mark: 이마에 문양 + forehead-to-forehead: 이마를 맞대는 + goggles_on_head: 머리 위에 고글 + head: 머리 + head_bump: 머리에 부딪힌 + head_down: 머리를 숙인 + head_mounted_display: 머리에 장착된 디스플레이 + head_out_of_frame: 머리 일부가 프레임 밖으로 나옴 + head_rest: 머리를 기대는 + head_tilt: 머리를 기울인 + head_wings: 머리 위에 날개 + headgear: 머리 장식(일부 공상 과학 요소 포함) + headphones: 헤드폰 + heads-up_display: HUD(게임 및 공상 과학 스타일) + headset: 헤드셋 + inter_headset: EVA 신경 연결기 + on_head: 머리 위에 + person_on_head: 머리 위에 작은 인형 + single_head_wing: 한 쪽 머리에 날개 + + - name: 모자 + color: rgba(230, 84, 128, .4) + tags: + hat: 모자 + no_hat: 모자 없음 + large_hat: 큰 모자 + mini_hat: 미니 모자 + witch_hat: 마녀 모자 + mini_witch_hat: 미니 마녀 모자 + wizard_hat: 마법사 모자 + party_hat: 파티 모자 + jester_cap: 어릿광대 모자 + tokin_hat: 대형 모자 + top_hat: 탑햇 + mini_top_hat: 미니 탑햇 + bowler_hat: 볼러 모자 + pillbox_hat: 핀 모자 + cloche_hat: 클로슈 모자 + side_cap: 사이드 모자 + military_hat: 군모 + beret: 베레모 + garrison_cap: 가리슨 모자 + police_hat: 경찰 모자 + nurse_cap: 간호사 모자 + chef_hat: 요리사 모자 + school_hat: 교복 모자 + pirate_hat: 해적 모자 + cabbie_hat: 택시 운전사 모자 + bucket_hat: 양궁 모자 + hardhat: 안전모 + straw_hat: 대나무 모자 + sun_hat: 해몽 모자 + rice_hat: 두건 + animal_hat: 동물 모자 + fur_hat: 모피 모자 + hat_with_ears: 귀가 달린 모자 + bobblehat: 볼펜 모자 + pillow_hat: 베개 모자 + pumpkin_hat: 호박 모자 + baseball_cap: 야구 모자 + flat_cap: 플랫 캡 + torn_hat: 찢어진 모자 + mob_cap: 평민 모자 + newsboy_cap: 보이 모자 + bowknot_over_white_beret: 흰색 베레모 위의 리본 + backwards_hat: 뒤집어진 모자 + bowl_hat: 그릇 모양 모자 + cat_hat: 고양이 귀 모자 + chat_log: 채팅창 스타일 + cowboy_hat: 카우보이 모자 + dixie_cup_hat: 개방형 모자 + hat_bow: 리본이 달린 모자 + hat_feather: 깃털이 달린 모자 + hat_flower: 꽃이 달린 모자 + hat_ornament: 장식이 달린 모자 + hat_over_one_eye: 모자가 한 쪽 눈을 가리고 있음 + hat_removed: 모자를 벗음 + hat_ribbon: 리본이 달린 모자 + hat_tip: 모자 덮개를 꼭 집어 쥼 + hatching_(texture): 음영 처리 (질감) + hatsune_miku_(cosplay): 하츠네 미쿠 (코스프레) + is_that_so: 그러다니까요 + porkpie_hat: 포크파이 모자 + sailor_hat: 선원 모자 + santa_hat: 산타 모자 + sideways_hat: 모자 덮개를 측면으로 치움 + what: 작가가 발작 + what_if: 다른 세계선 + + - name: 헤어 액세서리 + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: 헤어 리본 + hairband: 헤어 밴드 + hair_tie: 헤어 고리 + lolita_hairband: 로리타 헤어 밴드 + frilled_hairband: 프릴 헤어 밴드 + lace-trimmed_hairband: 레이스 장식 헤어 밴드 + hair_bobbles: 헤어 고리 + hair_ornament: 헤어 장식 + hair_flower: 헤어 꽃 + x_hair_ornament: X 모양 헤어 장식 + hair_bow: 헤어 리본 + frog_hair_ornament: 개구리 헤어 장식 + heart_hair_ornament: 하트 모양 헤어 장식 + butterfly_hair_ornament: 나비 헤어 장식 + star_hair_ornament: 별 모양 헤어 장식 + food-themed_hair_ornament: 음식 테마 헤어 장식 + anchor_hair_ornament: 닻 모양 헤어 장식 + bat_hair_ornament: 박쥐 헤어 장식 + carrot_hair_ornament: 당근 헤어 장식 + cat_hair_ornament: 고양이 테마 헤어 장식 + clover_hair_ornament: 클로버 헤어 장식 + crescent_hair_ornament: 초승달 헤어 장식 + cross_hair_ornament: 십자 헤어 장식 + d-pad_hair_ornament: 방향키 헤어 장식 + fish_hair_ornament: 물고기 헤어 장식 + hairpods: 머리 위에 무선 블루투스 같은 헤어 장식 + leaf_hair_ornament: 잎사귀 헤어 장식 + musical_note_hair_ornament: 음표 헤어 장식 + pumpkin_hair_ornament: 호박 헤어 장식 + skull_hair_ornament: 해골 헤어 장식 + snake_hair_ornament: 뱀 헤어 장식 + snowflake_hair_ornament: 눈꽃 헤어 장식 + strawberry_hair_ornament: 딸기 헤어 장식 + sunflower_hair_ornament: 해바라기 헤어 장식 + hairpin: 머리핀 + hairclip: 헤어 클립 + hair_tubes: 헤어 튜브 + hair_stick: 헤어 스틱 + hair_bun: 머리 꽂이 + single_hair_bun: 단일 머리 꽂이 + hair_bell: 헤어 벨 + hair_rings: 헤어 링 + + - name: 작은 장식 + color: rgba(230, 84, 128, .4) + tags: + ring: 반지 + wedding_band: 결혼 반지 + earrings: 귀걸이 + single_earring: 한쪽 귀걸이 + stud_earrings: 스터드 귀걸이 + necklace: 목걸이 + jewelry: 보석류 + crystal: 크리스탈 + brooch: 브로치 + gem: 보석 + chest_jewel: 가슴 앞 보석 + forehead_jewel: 이마 앞 보석 + tassel: 태슬 + belly_chain_: 배 체인 + lace: 레이스 + ribbon: 리본 + stitches: 수놓은 장식 + scarf: 스카프 + bandaid: 밴드 에이드 + collar: 칼라 + belt: 벨트 + steam: 스팀 + bell: 종 + amulet: 부적 + emblem: 엠블럼 + flag_print: 깃발 인쇄 + anchor_symbol: 닻 기호 + cross: 십자 + diffraction_spikes: 회절 스파이크 + iron_cross: 철제 십자 + latin_cross: 라틴 십자 + lace-trimmed_hairband: 레이스 장식 헤어 밴드 + ankle_lace-up: 발목 끈 + st._gloriana's_(emblem): 세인트 글로리아나 교 여학교 엠블럼 + heart_lock_(kantai_collection): 하트 잠금장치 (함대 컬렉션) + garters: 가터벨트 + thigh_strap: 허벅지 스트랩 + thigh_ribbon: 허벅지 리본 + leg_garter: 다리 가터 + garter_straps: 스타킹 가터의 스트랩 + leg_ribbon: 다리 리본 + bandaid_on_leg: 다리에 밴드 에이드 + bandaged_leg: 붕대로 감싼 다리 + arm_garter: 팔 가터 + joints: 관절 + kneepits: 무릎 + knee_pads: 무릎 보호대 + thigh_holster: 허벅지 홀스터 + bandaid_on_knee: 무릎에 밴드 에이드 + + - name: 보석류 + color: rgba(230, 84, 128, .4) + tags: + bracelet: 팔찌 + choker: 체인 목걸이 + metal collar: 금속 목걸이 + ring: 반지 + wristband: 팔찌 + pendant: 펜던트 + brooch: 브로치 + hoop earrings: 후프 귀걸이 + bangle: 팔찌 + stud earrings: 스터드 귀걸이 + sunburst: 태양 모양 보석 + pearl bracelet: 진주 팔찌 + drop earrings: 드롭 귀걸이 + puppet rings: 인형 반지 + corsage: 코르사주 + sapphire brooch: 사파이어 브로치 + jewelry: 보석류 + necklace: 목걸이 + +- name: 표정 동작 + groups: + - name: 웃음 + color: rgba(241, 229, 140, .4) + tags: + smile: 웃음 + laughing: 크게 웃음 + kind_smile: 행복한 웃음 + :d: 행복한 웃음_:D😀 + ;d: 눈 깜빡이며 웃음_:D + grin: 이빨을 드러낸 웃음 + teasing_smile: 놀림을 받아 웃음, 입을 벌리고 웃음 + seductive_smile: 매혹적인 웃음 + smirk: 어리석게 웃음, 자기만족스러운 웃음 + giggling: 킥킥 웃음 + smug: 자만스러운 + naughty_face: 장난스러운 얼굴 + evil smile: 사악한 웃음 + crazy_smile: 미친듯이 웃음 + happy: 행복|행복한 + happy_birthday: 생일 축하합니다 + happy_halloween: 할로윈을 즐겁게 보내세요 + happy_new_year: 새해 복 많이 받으세요 + happy_tears: 행복한 눈물 + happy_valentine: 발렌타인데이를 즐겁게 보내세요 + + - name: 울음 + color: rgba(241, 229, 140, .4) + tags: + sad: 슬픈 + tear: 흐느낌 + crying: 크게 울음 + crying_with_eyes_open: 눈을 뜨고 울음 + streaming_tears: 눈물이 흐름 + teardrop: 눈물 방울 + tearing_clothes: 옷을 찢음 + tearing_up: 울고 싶은 표정 + tears: 눈물 + wiping_tears: 눈물을 닦음 + badmood: 기분이 나쁜 + + - name: 우울 + color: rgba(241, 229, 140, .4) + tags: + frustrated: 낙담한 + frustrated_brow: 낙담한 이마 + annoyed: 괴로운 + anguish: 고뇌 + sigh: 한숨 + gloom: 우울한 + disappointed: 실망한 + despair: 절망 + + - name: 경멸 + color: rgba(241, 229, 140, .4) + tags: + disgust: 혐오(쓰레기 같은 시선) + disdain: 경멸 + contempt: 경멸 + shaded_face: 얼굴에 그림자가 있음, 경멸과 함께 + jitome: 경멸적인 시선 + frown: 미간을 찌푸림/이마를 찡그림 + wince: 미간을 찌푸리고 이마를 찡그림(성교 전) + furrowed_brow: 이마 주름 + fear_kubrick: 두려워하는 시선 + laughing: 웃고 있는 + + - name: 화남 + color: rgba(241, 229, 140, .4) + tags: + angry: 화난 + glaring: 몹시 노려보는 + serious: 진지한 (화난 것과 비슷) + kubrick_stare: 옆으로 돌아서 응시하는 + evil: 사악한 + sulking: 화난_떠는 + screaming: 비명을 지르는|큰 소리로 외치는 + shouting: 소리 지르는 + + - name: 기타 표정 + color: rgba(241, 229, 140, .4) + tags: + expressionless: 표정이 없는 + sleepy: 졸린 + drunk: 취한 + bored: 지루한 + confused: 혼란스러운 + thinking: 생각하는 + lonely: 외로운 + light_blush: 약간 얼굴이 붉은 + blush: 얼굴이 붉은 + shy: 수줍은 + embarrass: 수줍은(당황한) + facepalm: 얼굴을 메는 + flustered: 당황한 + sweat: 땀을 흘리는 + scared: 무서워하는 + ahegao: 아헤가오 + endured_face: 참는 표정 + restrained: 참는 + dark_persona: 어둠에 빠진 + crazy: 미친 + exhausted: 지친 + Tsundere: 츤데레 + yandere: 야애니 + multiple_persona: 다중 인격 + Jekyll_and_Hyde: 다중 인격 + twitching: 경련 + spasm: 경련 + trembling: 떨림 + rape_face: 강간 얼굴 + rolling_eyes: 눈을 돌림(오르가즘 눈) + envy: 질투 + female_orgasm: 절정 + heavy_breathing: 숨이 터지는, 효과 없을 수도 있음 + naughty: 장난스러운 + expressions: 표정 차분(대략) + moaning: 신음 + scowl: 업신여기는 눈빛 + + - name: 기본 동작 + color: rgba(241, 229, 140, .4) + tags: + standing: 서있기 + on back: 누워있기 + on stomach: 엎드려있기 + kneeling: 무릎 꿇기 + on_side: 옆으로 누워있기 + on_stomach: 엎드려있기 + top-down_bottom-up: 엎드린 엉덩이 + the_pose: 엎드려 발을 들어올리기 + bent_over: 엉덩이를 들어올리는 자세 + upside-down: 거꾸로 뒤집힌 자세 + reversal: 뒤집기 + fighting_stance: 전투 자세 + leaning_to_the_side: 한 쪽에 기대기 + leaning: 몸을 기울이기|기울어지다 + leaning_back: 몸을 뒤로 기울이기 + leaning_on_object: 물체에 기대기 + arched_back: 몸을 아치 모양으로 구부리기 + leaning_forward: 몸을 앞으로 기울이기 + afloat: 물 위에 뜨기 + lying: 누워있기 + fetal_position: 태아 자세로 누워있기 + lying_on_person: 사람 위에 누워있기 + lying_on_the_lake: 호수 위에 누워있기 + lying_on_water: 물 위에 누워있기 + on_back: 등으로 누워있기 + prone_bone: 엎드려서 뒤로 들어가기 + reclining: 기울어져 누워있기 + sleeping_upright: (누워있지 않고) 서있는 자세로 자다 + presenting: (부위를) 보여주기 + spinning: 돌리기 + posing: 자세 취하기 + stylish_pose: 세련된 자세 + public_indecency: 공공적인 외설 + parody: 흉내 내기 + in_container: 용기 안에 + against_glass: 유리에 압착하기 (무효) + aiming: 조준하기 + aiming_at_viewer: 독자를 조준하기 + applying_makeup: 화장하기 + bathing: 목욕하기 + biting: 물기 + bleeding: 피 흘리기 + blowing: 불어불다 + bowing: 인사하기 + breathing_fire: 불을 뿜기 + broom_riding: 비행 빗자루를 타기 + brushing_teeth: 이를 닦기 + bubble_blowing: 거품 불기 + bullying: 괴롭히기 + burning: 불태우기 + cast: 던지기 + chasing: 추격하기 + cleaning: 청소하기 + climbing: 등반하기 + comforting: 위로하기 + cooking: 요리하기 + crying: 울기 + cuddling: 포옹하기 + dancing: 춤추기 + diving: 잠수하기 + dragging: 끌기 + drawing: 그리기 + drawing_bow: 활을 당기기 + dreaming: 꿈꾸기 + drinking: 마시기 + driving: 운전하기 + dropping: (실수로) 떨어뜨리기 + drying: 말리기 (목욕 후) + dual_wielding: 양손에 무기를 들고 싸우기 + exercise: 운동하기 + fighting: 전투 중인 + firing: 발사하기 + fishing: 낚시하기 + flapping: 퍼덕이는 동작 + flashing: 드러내기 + fleeing: 도망가는 + flexing: 근육 자랑하기 + flying: 날기 + flying_kick: 날아차기 + hair_brushing: 머리 빗기 + hair_tucking: 머리를 넘기기 + hanging: 매달리기 + hitting: 치기 + imagining: 상상하고 있는 + jumping: 점프하기 + kicking: 차기 + licking: 핥기 + licking_lips: 입술 핥기 + lip_biting: 입술 물기 + meditation: 명상하기 + painting: 그림 그리기 + Painting_(Action): 그림 그리기 + playing_card: 카드 놀이하기 + playing_games: 게임하기 + playing_instrument: 악기 연주하기 + pole_dancing: 폴댄스 + praying: 기도하기 + punching: 펀치하기 + pushing: 밀기 + railing: 손으로 받치기 + reading: 읽기 + riding: 타기 + running: 달리기 + sewing: 박음질하기 + shopping: 쇼핑하기 + showering: 샤워하기 + sing: 노래 부르기 + singing: 노래 부르기 + slashing: 베기 + sleeping: 잠자기 + smelling: 냄새 맡기 + smoking: 흡연하기 + sneezing: 재채기하기 + snowing: 눈이 내리기 + soaking_feet: 발 담그기 + soccer: 축구하기 + spilling: 용기에서 액체를 쏟아내는 동작 + spitting: 입에서 액체를 뱉는 동작 + splashing: 물을 튀기기 + standing_on_liquid: 물 위에 서기 + standing_on_one_leg: 한 다리로 서기 + standing_split: 서서 다리를 벌리기 + steepled_fingers: 손가락 끝을 맞대기 + strangling: 목을 조르기 + sweeping: 쓸기 + swimming: 수영하기 + swing: 흔들기 + tail_wagging: 꼬리 흔들기 + taking_picture: 사진 찍기|셀카 + talking: 대화하기 + talking_on_phone: 전화하기 + teasing: 놀리기 + thinking: 생각하기 + tickling: 간지럽히기 + toilet_use: 화장실 사용하기 + tossing_: 던지기 + tripping: 넘어지기 + trolling: 트롤링 + twitching: 경련 + tying: 매듭짓기 + unsheathing: 칼집에서 뽑는 + untying: 풀기 + unzipping: 지퍼 열기 + wading: 물에 발 담그기 + waking_up: 깨어나기 + walking: 걷기 + walking_on_liquid: 액체 위를 걷기 + washing: 씻기 + whispering: 속삭이기 + wrestling: 겨루기 + writing: 쓰기 + yawning: 하품하기 + hiding: 숨기기 + + - name: 손 동작 + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: 등 뒤로 손 놓기 + arm_above_head: 손 머리 위에 + arm_behind_head: 손 머리 뒤로 + arms_crossed: 팔을 가슴 앞에서 교차하기 + arm_support: 손으로 지지하기 + armpits: 겨드랑이 보여주기 + arms_up: 손들어올리기 + hands_on_hips: 양손을 허리에 대기 + arm_around_waist: 한 손으로 허리를 감기 + caramelldansen: 유명한 손을 휘둘러 허리를 비틀기 + hands_in_opposite_sleeves: 양손을 반대쪽 소매에 넣기 + waving: 손 흔들기 + crossed_arms: 팔 교차하기 + outstretched_arms: 팔을 뻗기 + v_arms: V자 모양으로 팔 흔들기 + w_arms: W자 모양으로 팔 흔들기 + salute: 경례하기 + reaching: 목표를 향해 손 내밀기 + reaching_out: 그림 밖으로 손 내밀기 + stretch: 몸을 쭉 펴기 + hugging_own_legs: 다리를 껴안기 + arm_blade: 팔에 칼날 + arm_grab: 팔 잡기 + arm_held_back: 팔을 뒤로 당기기 + arm_ribbon: 팔에 리본 + bandaged_arm: 매듭으로 감싼 팔 + bandaid_on_arm: 팔에 반창고 붙이기 + bound_arms: 팔을 묶인 상태 + convenient_arm: 중요 부위를 가리는 팔 + extra_arms: 여러 개의 팔 + locked_arms: 서로 팔을 맞대기 + outstretched_arm: 팔을 뻗기 + waving_arms: 팔을 흔들기 + arm_at_side: 한 손을 옆에 내려놓기 + arm_behind_back: 한 손을 등 뒤로 내려놓기 + shou: 한 손을 머리 뒤에 올리기 + arm_cannon: 손 포탄 + arm_hug: 팔을 맞대기 + arm_up: 손 들기 + arms_at_sides: 양손을 옆에 내려놓기 + arms_behind_head: 양손을 머리 뒤에 대기 + hand_to_mouth: 손을 입가에 대기 + shushing: 쉿 손 모양 + cat_pose: 고양이 손 모양 + claw_pose: 발톱 손 모양 + paw_pose: 팔로 고양이 손 모양 (손목을 구부리기) + fox_shadow_puppet: 여우 손 모양 + double_fox_shadow_puppet: 더블 여우 손 모양 + finger_gun: 손가락 총 손 모양 + v: 승리 손 모양 + double_v: 더블 V + thumbs_up: 엄지손가락 올리기 + index_finger_raised: 검지손가락 올리기 + middle_finger: 국제 친선 손 모양 + grimace: 찡그림 + eyelid_pull: 찡그림 + fingersmile: 손으로 웃는 얼굴 표현하기 + wiping_tears: 눈물 닦기 + finger_on_trigger: 방아쇠를 당기기 준비 + pointing_at_self: 자기 자신을 가리키기 + pointing_at_viewer: 시청자를 가리키기 + pointing_up: 위쪽 가리키기 + poking: 찌르기 + hand_gesture: 손 모양 + ok_sign: OK 손 모양 + shading_eyes: 눈 가리기 + finger_biting: 손가락 물기 + finger_in_mouth: 손가락 입에 넣기 + fingering_through_clothes: 옷 속에서 손가락 움직이기 + fingers_together: 손가락 모아붙이기 + hair_twirling: 손가락으로 머리 말기 + hands_clasped: 양손 손가락 교차하기|양손을 꽉 쥐기 + holding_hair: 머리를 쥐고 있기|손가락으로 머리 감기 + pointing: 손가락으로 가리키기 + sharp_fingernails: 날카로운 손톱 + sleeves_past_fingers: 소매가 손가락을 덮음 + spread_fingers: 손가락 벌리기 + trigger_discipline: 방아쇠 위에 손가락 올리지 않기 + w: 손가락을 W자 모양으로 벌리기 + balancing: 균형을 잡은 자세 + curvy: 매력적인 자세 + multiple_views: 다양한 각도|자세 + pose: 자세 + ready_to_draw: 칼을 뽑을 준비 자세 + trefoil: 엉덩이를 보여주는 자세 + zombie_pose: 좀비 자세 + beckoning: 손으로 부르기 + bunching_hair: 머리를 쥐고 있기 + carrying: 들기 + carrying_over_shoulder: 어깨에 메기 + carrying_under_arm: 겨드랑이에 끼고 들기 + cheering: 응원하기 + finger_to_mouth: 손 입가에 대기 + cheek_pinching: 볼 두드리기 + cheek_poking: 볼 찌르기 + chin_stroking: 턱 문지르기 + hair_pull: 머리를 당기기 + covering_mouth: 입 가리기 + covering_xx: xx 가리기 + self_fondle: 자기 자신을 쓰다듬기 + adjusting_thighhigh: 오버니트 조절하기 + chin_rest: 턱을 받치기 + head_rest: 머리를 받치기 + take: 손에 들기 + _sheet_grab: 시트 잡기 + groping: 촉감을 주다 + skirt_lift: 치마 올리기 + crotch_grab: 손으로 crotch를 잡기 + covering_chest_by_hand: 손으로 가슴 가리기 + bangs_pinned_back: 앞머리를 올리기 + clothes_lift: 옷 올리기 + dress_lift: 드레스 올리기 + kimono_lift: 키모노 올리기 + lifted_by_another: 다른 사람에게 옷을 들려주기 + lifted_by_self: 자신의 옷을 들려주기 + shirt_lift: 셔츠를 당기기|올리기|채취하기 + skirt_basket: 치마를 들어 올려 바구니 모양 만들기 + skirt_flip: 치마를 들어 올리기 (긴장 상황) + bikini_lift: 비키니 올리기 + leg_lift: 한 다리 들어 올리기 + lifting_person: 사람 들어 올리기 + strap_lift: 스트랩을 올려 당기기 + wind_lift: 바람이 올라가는 효과|상승 기류 + bikini_pull: 비키니를 당기기 + cheek_pull: 볼 당기기 + clothes_pull: 옷을 당기기 + dress_pull: 드레스 앞부분을 벗기기 + hair_pulled_back: 머리를 뒤로 당기기 + kimono_pull: 키모노 벗기기 + leotard_pull: 레오타드 벗기기 + mask_pull: 마스크 당기기 + pants_pull: 바지를 당기기 + pulled_by_another: 다른 사람에게 당겨지기 (또는 옷을 당기기) + pulled_by_self: 자신의 옷을 당기기 + pulling: 당기기 + shirt_pull: 셔츠를 당기기 + shorts_pull: 반바지 벗기기 + skirt_pull: 치마를 당기기 + swimsuit_pull: 수영복을 당기기 + zipper_pull_tab: 지퍼를 당기는 손잡이 + adjusting_clothes: 옷을 조정하기 + adjusting_eyewear: 안경을 조정하기 + adjusting_gloves: 장갑을 조정하기 + adjusting_hair: 머리를 정리하기 + adjusting_hat: 모자를 정리하기 + adjusting_swimsuit: 수영복을 조정하기 + + - name: 손동작(무언가를 잡고 있는) + color: rgba(241, 229, 140, .4) + tags: + holding: 무언가를 잡고 있는 + holding_animal: 동물을 안고 있는 + holding_arrow: 활을 당기는 + holding_axe: 도끼를 쥐고 있는 + holding_bag: 가방을 들고 있는 + holding_ball: 공을 안고 있는 + holding_basket: 바구니를 들고 있는 + holding_book: 책을 들고 있는 + holding_bottle: 병을 들고 있는 + holding_bouquet: 꽃다발을 손에 들고 있는 + holding_bow_(weapon): 활(무기)을 들고 있는 + holding_bowl: 그릇을 들고 있는 + holding_box: 상자를 들고 있는 + holding_breath: 숨을 참고 있는 + holding_broom: 빗자루를 손에 들고 있는 + holding_camera: 카메라를 손에 들고 있는 + holding_can: 캔을 들고 있는 + holding_candy: 사탕을 손에 들고 있는 + holding_card: 카드를 손에 들고 있는 + holding_cat: 고양이를 안고 있는 + holding_chopsticks: 젓가락을 들고 있는 + holding_cigarette: 담배를 입에 물고 있는 + holding_clothes: 옷을 들고 있는 + holding_condom: 콘돔을 들고 있는 + holding_cup: 컵을 손에 들고 있는 + holding_dagger: 단검을 손에 들고 있는 + holding_doll: 인형을 안고 있는 + holding_eyewear: 안경을 들고 있는|안경을 벗고 있는 + holding_fan: 부채를 들고 있는 + holding_flag: 깃발을 손에 들고 있는 + holding_flower: 꽃을 들고 있는 + holding_food: 음식을 들고 있는 + holding_fork: 포크를 들고 있는 + holding_fruit: 과일을 들고 있는 + holding_gift: 선물을 들고 있는 + holding_gun: 총을 들고 있는 + holding_hands: 손을 잡고 있는 + holding_hat: 모자를 들고 있는 + holding_head: 손에 머리를 안고 있는 + holding_helmet: 헬멧을 들고 있는 + holding_innertube: 물패도를 들고 있는 + holding_instrument: 악기를 들고 있는 + holding_knife: 칼을 들고 있는 + holding_leaf: 잎을 들고 있는 + holding_lollipop: 막대사탕을 들고 있는 + holding_mask: 가면을 들고 있는 + holding_microphone: 마이크를 들고 있는 + holding_needle: 바늘을 들고 있는 + holding_own_foot: 자신의 발을 잡고 있는 + holding_paintbrush: 붓을 손에 잡고 있는 + holding_paper: 종이를 들고 있는 + holding_pen: 펜을 쥐고 있는 + holding_pencil: 연필을 손에 들고 있는 + holding_phone: 핸드폰을 들고 있는 + holding_pillow: 베개를 안고 있는 + holding_pipe: 담배꽁초를 들고 있는 + holding_pizza: 피자를 들고 있는 + holding_plate: 접시를 들고 있는 + holding_poke_ball: 포켓볼을 들고 있는 + holding_pokemon: 포켓몬을 안고 있는 + holding_polearm: 장창을 손에 들고 있는 + holding_sack: 자루를 들고 있는 + holding_scythe: 낫을 손에 들고 있는 + holding_sheath: 칼집을 쥐고 있는 + holding_shield: 방패를 들고 있는 + holding_shoes: 신발을 들고 있는 + holding_sign: 표지판을 들고 있는 + holding_spear: 창을 손에 들고 있는 + holding_spoon: 숟가락을 들고 있는 + holding_staff: 지팡이를 들고 있는 + holding_strap: 끈을 잡고 있는 + holding_stuffed_animal: 봉제인형을 안고 있는 + holding_stylus: 펜을 손에 들고 있는 + holding_sword: 검을 손에 들고 있는 + holding_syringe: 주사기를 손에 들고 있는 + holding_towel: 수건을 들고 있는 + holding_tray: 쟁반을 들고 있는 + holding_umbrella: 우산을 펼쳐서 들고 있는 + holding_wand: 지팡이를 쥐고 있는 + holding_whip: 채찍을 쥐고 있는 + arm_around_neck: 한 손으로 목을 감싸는 + arms_around_neck: 양 손으로 목을 감싸는 + + - name: 손동작(어딘가에 놓는) + color: rgba(241, 229, 140, .4) + tags: + covering: 가리는 동작 + covering_face: 얼굴 가리기 + covering_ass: 엉덩이 가리기 + covering_crotch: 음부 가리기 + covering_eyes: 눈 가리기 + covering_mouth: 입 막기 + covering_nipples: 유두 가리기 + hands_on_another's_: 상대방의 얼굴에 양 손 올리기 + hands_on_another's_cheeks: 상대방의 뺨에 양 손 올리기 + hands_on_ass: 엉덩이에 양 손 올리기 + hands_on_feet: 발에 양 손 올리기 + hands_on_headwear: 머리 위의 장식에 손 대기 + hands_on_hilt: 칼의 손잡이에 양 손 올리기 + hands_on_lap: 양 다리 사이에 손 올리기 + hands_on_own_face: 얼굴에 손 올리기 + hands_on_own_cheeks: 본인의 뺨에 손 올리기 + hands_on_own_chest: 본인의 가슴에 손 올리기 + hands_on_own_head: 본인의 머리에 손 올리기 + hands_on_own_knees: 본인의 무릎에 손 올리기 + hands_on_own_stomach: 본인의 배에 손 올리기 + hands_on_own_thighs: 본인의 허벅지에 손 올리기 + hands_on_another's_shoulders: 상대방의 어깨에 양 손 올리기 + hands_on_hips: 양 손으로 허리를 꽉 쥐기|손을 허리에 올리기 + hand_on_another's_: 손이 상대방의 얼굴에 닿기 + hand_on_another's_cheek: 손이 상대방의 뺨에 닿기 + hand_on_another's_chest: 손이 상대방의 가슴 앞에 닿기 + hand_on_another's_chin: 손이 상대방의 턱을 받치기 + hand_on_another's_head: 손이 상대방의 머리 위에 올리기 + hand_on_another's_shoulder: 손이 상대방의 어깨에 올리기 + hand_on_another's_stomach: 손이 상대방의 배 위에 올리기 + hand_on_ass: 손이 엉덩이에 닿기 + hand_on_head: 손이 머리 위에 올리기 + hand_on_headwear: 손이 모자에 닿기 + hand_on_hilt: 손이 칼의 손잡이에 닿기 + hand_on_hip: 손이 허리에 걸치기|손을 허리에 올리기 + hand_on_own_: 손이 얼굴에 닿기 + hand_on_own_cheek: 손이 본인의 뺨에 닿기 + hand_on_own_chest: 손이 본인의 가슴 앞에 닿기 + hand_on_own_chin: 손이 본인의 턱에 닿기 + hand_on_own_stomach: 손이 본인의 배 위에 닿기 + hand_on_shoulder: 손이 어깨에 닿기 + hand_in_another's_hair: 손이 상대방의 머리카락에 닿기 + hand_in_hair: 손이 머리카락에 파묻히기 + hand_in_pocket: 손이 주머니에 넣기 + + - name: 손동작(무언가를 붙잡고 있는) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: 엉덩이를 붙잡기 + flat_chest_grab: 작은 가슴을 붙잡기 + grabbing: 붙잡기 + grabbing_another's_ass: 상대방의 엉덩이를 붙잡기 + grabbing_another's_hair: 상대방의 머리카락을 붙잡기 + grabbing_from_behind: 뒤에서 가슴을 잡기|뒤에서 가슴을 붙잡기 + grabbing_own_ass: 자신의 엉덩이를 붙잡기 + guided_penetration: 남성의 성기를 붙잡고 자신에게 삽입하기 + hair_grab: 머리카락을 붙잡기 + leg_grab: 다리를 붙잡기 + necktie_grab: 넥타이를 붙잡기 + neckwear_grab: 목에 착용한 의상을 붙잡기 + penis_grab: 음경을 붙잡기 + pillow_grab: 베개를 붙잡기 + sheet_grab: 시트를 붙잡기 + tail_grab: 꼬리를 붙잡기 + thigh_grab: 허벅지를 붙잡기 + torso_grab: 상체를 붙잡기 + wrist_grab: 손목을 붙잡기 + + - name: 다리 동작 + color: rgba(241, 229, 140, .4) + tags: + legs_up: 한 다리 올리기 + spread legs: 다리 벌리기 + legs_together: 다리 모으기 + crossed_legs: 교차 다리 + m_legs: M자 다리 흔들기 + standing_split,_leg_up: M자 다리 흔들기 + curtsy: 절하는 자세 (메이드 인사) + hand_between_legs: 다리 사이의 손 + open_stance: 편안한 자세 + convenient_leg: 중요한 부분을 가려주는 다리 + leg_lock: 다리로 잠그기 + legs: 다리 + legs_over_head: 다리를 머리 위로 올리기 + squatting,_open_legs: 앉았다 일어나기, 다리 벌리기 + knees_together_feet_apart: 무릎은 합치고 발은 벌리기 + animal_on_lap: 무릎 위에 동물 + hand_on_own_knee: 손을 자신의 무릎 위에 올리기 + knee_up: 무릎 올리기 + knees: 무릎 + knees_to_chest: 무릎을 가슴에 대기 + on_lap: 무릎 위에 + sitting: 앉기 + wariza: 오리 앉기 + straddling: 가로막다 + yokozuwari: 옆으로 앉기 + sitting_backwards: 뒤로 앉기 + sitting_in_tree: 나무 위에 앉기 + sitting_on_xx: 물체 위에 앉기 + butterfly_sitting: 나비 앉기 + lotus_position: 책상 위에 앉기 + sitting_on_railing: 난간 위에 앉기 + sitting_on_rock: 바위 위에 앉기 + sitting_on_stairs: 계단 위에 앉기 + sitting_on_table: 탁자 위에 앉기 + sitting_on_water: 물 위에 앉기 + cushion: 좌쿠션 + indian_style: 앉아서 다리를 꼬다 + sitting_on_chair: 의자 위에 앉기 + sidesaddle: 안장 위에 옆으로 앉기 + sitting_on_bed: 침대 위에 앉기 + sitting_on_desk: 책상 위에 앉기 + sitting_on_lap: 대퇴부 위에 앉기 + sitting_on_person: 사람 위에 앉기 + upright_straddle: 마주 보며 앉는 자세 + squatting: 앉았다 일어나기 + one_knee: 한쪽 무릎 + kneeling: 무릎 꿇기 + all_fours: 네 발로 서기 + gravure_pose: 그라비아 포즈 + kicking: 발차기 + high_kick: 높은 발차기 + soaking_feet: 발 담그기 + reclining: 기대기 + hugging_own_legs: 자신의 다리를 껴안다 + bare_legs: 맨 다리 + between_legs: (강조) 두 다리 사이 + cropped_legs: 일부분만 그린 다리 + k/da_(league_of_legends): KDA 조합 (리그 오브 레전드) + leg_belt: 다리에 끈을 묶은 것 + leg_hair: 다리털 + leg_up: 다리 올리기 + legs_apart: 다리 벌리기 + lowleg: M자 다리 흔들기 + mechanical_legs: 기계 다리 + multiple_legs: 다리가 여러 개인 캐릭터 + no_legs: 다리가 없음 + no_legwear: 다리 아래가 벌어져 있음 + tail_between_legs: 꼬리를 다리 사이로 넣음 + barefoot: 맨발 + foot_out_of_frame: 한 발이 사진에 없음 + footprints: 발자국 + dirty_feet: 발 그림이 잘못됨 + feet: 발 + feet_out_of_frame: 두 발이 사진에 없음 + feet_up: 발을 들어 올리기 + wrong_feet: 발 그림이 잘못됨 + cameltoe: 낙타 발 + pigeon-toed: 안으로 굽은 다리 + tiptoes: 발끝에 세우기 + toe-point: 발끝 + amputee: 절단|한쪽 다리|사지 결손|절단된 소녀 + ankle_strap: 발목에 끈 + ankle_wrap: 발목을 감싸는 것 + crossed_ankles: 교차된 발목 + pince-nez: 코에 끼는 안경|다리가 없는 안경 + folded: 다리를 들어 올리고 음부를 드러냄 + thick_thighs: 두꺼운 허벅지 + thigh_holster: 허벅지에 끈이나 도구 가방 또는 권총집 + + - name: 기타 동작 + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: 가슴이 서로 닿음|가슴이 서로 밀착 + back-to-back: 등이 맞닿음 + cunnilingus: 음막을 핥기 + eye_contact: 눈빛 교환 + facing_another: 상대방을 마주보기 + facing_away: 상대방과 얼굴을 붙임 + feeding: 먹이 주기 + finger_in_another's_mouth: 상대방의 입 안에 손가락 넣기 + fingering: 손가락으로 자극하기 + french_kiss: 프렌치 키스 + giving: 건네주기 + grinding: 허벅지로 마사지하기|엉덩이로 밀기 + groping: 촉진 + holding_hands: 손 잡기 + hug: 포옹 + imminent_kiss: 곧 키스할 예정 + incoming_food: 음식을 건네주기 + incoming_gift: 선물을 건네주기 + interlocked_fingers: 손을 조여 맞물림 + Kabedon: 벽에 등을 대기 + lap_pillow: 무릎 베개 + licking_penis: 음경 핥기 + long_tongue: 긴 혀 + mimikaki: 귀를 꼬집기 + oral_invitation: 사정을 맞이하기 위해 혀를 내밀기 + princess_carry: 공주 안고 다니기 + shared_bathing: 함께 목욕하기 + shared_food: 음식 공유하기|입으로 음식 건네주기 + sitting_on_head: 머리 위에 앉기 + sitting_on_shoulder: 어깨 위에 앉기 + slapping: 얼굴을 때리기 + spanking: 엉덩이를 때리기 + special_feeling_(meme): 눈에 띄는 커플 신호 + symmetrical_docking: 가슴이 밀착 + tongue: 혀 + tongue_out: 혀 내밀기 + uvula: 구개 힘|구개 막|구개 + ear_biting: 귀 물기 + mixed_bathing: 혼합 목욕 + +- name: 그림 + groups: + - name: 화질 + color: rgba(0, 255, 255, .4) + tags: + checkered: 체크무늬 + lowres: 저해상도 + highres: 고해상도 + absurdres: 초고해상도 + incredibly absurdres: 극고해상도 + huge filesize: 초고해상도/대용량 파일 + wallpaper: 배경화면 + pixel art: 픽셀 아트 + monochrome: 흑백 이미지 + colorful: 다채로운 + + - name: 예술 스타일 + color: rgba(0, 255, 255, .4) + tags: + artbook: 아트북 + game cg: 게임 CG + comic: 만화 + 4koma: 4컷 만화 + animated gif: 애니메이션 GIF + dakimakura: 담요 + cosplay: 코스프레 + crossover: 크로스오버 + dark: 어둠의 + light: 밝은 + guro: 그로테스크 + realistic: 현실적인 + photo: 사진 + real: 실제 + landscape/scenery: 풍경 + cityscape: 도시 풍경 + science fiction: 공상 과학 + original: 원작 + parody: 패러디 + personification: 의인화 + optical illusion: 시각적 오류 + fine art parody: 명화 모방 + sketch: 스케치 + traditional media: 전통 매체 (손그림) + watercolor (medium): 수채화 + silhouette: 실루엣 + cover: 표지 + album: 앨범 + sample: 샘플 + back: 등장인물 뒷모습 + bust: 상반신 + profile: 측면 + expressions: 표정 + everyone: 한 작품의 중요 인물 모음 + column lineup: 작은 그림들이 큰 그림을 이룸 + transparent background: 투명한 배경 + simple background: 단순한 배경 + gradient background: 그라디언트 배경 + zoom layer: 배경이 전경의 확대판 + 8 Bit Game: 8비트 게임 + 1980s anime: 80년대 애니메이션 + disney movie: 디즈니 영화 + goth: 고스 락 + 80s movie: 80년대 영화 + bubble bobble: 버블 보블 + style of Pixar: 픽사 애니메이션 스타일 + Polaroid art: 폴라로이드 아트 + Kaleidoscope Photography: 케일리도스코프 사진 + opal render: 오팔 렌더링 + chemigram: 화학 사진 + Studio Ghibli: 스튜디오 지브리 스타일 + dreamlike: 꿈 같은 + (faux traditional media): 가짜 전통 매체 스타일 + genshin impact: 원신 + azur lane: 아즈르 레인 + kantai collection: 함대 컬렉션 + rebecca (cyberpunk): 레베카 (사이버펑크) + chainsaw man: 전기톱인간 + Magic Vortex: 마법 소용돌이 + ((dieselpunk)): 디젤펑크 + magazine scan: 잡지 스캔 + album cover: 앨범 표지 + (lineart): 선화 + synthwave: 신스웨이브 + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): 로코코 + + - name: 예술 유형 + color: rgba(0, 255, 255, .4) + tags: + monochrome: 흑백 이미지 + Collage: 콜라주 아트 + Dalle de verre: 유리 색칠 + pixel art: 픽셀 아트 + Encaustic painting: 엔코스틱 페인팅 + Ink wash painting: 수묵화 + Mezzotint: 메조틴트 + silhouette: 실루엣 + illustration: 일러스트레이션 + (((ink))), ((watercolor)): 수채화 + illustration,(((ukiyoe))),((sketch)),((japanese_art)): 우키요에 + ((wash painting)),((ink s...)): 중국풍 + ((dyeing)),((oil painting)),((impasto)): 유화 + (posing sketch), (monochrome): 흑백 스케치 + sketch: 손으로 그린 스케치 + (monochrome), (gray scale), (pencil sketch lines: 연필 스케치 + (watercolor pencil): 수채 연필 + + - name: 예술 파도 + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): 아르 누보 + ((classicism)): 고전주의 + ((futurism)): 퓨처리즘 + ((Dadaism)): 다다이즘 + ((abstract art)): 추상 미술 + ((ASCII art)): ASCII 아트 + + - name: 예술가 스타일 + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): 알폰스 무하 + ((Monet style)): 모네 스타일 + + - name: 조명 + color: rgba(0, 255, 255, .4) + tags: + rim light: 테두리 빛 + Volumetric Lighting: 부피 조명 + glowing neon lights: 발광하는 네온 빛 + Cinematic Lighting: 영화 수준의 조명 + lens flare: 렌즈 플레어 + metallic luster: 금속 광택 + moody lighting: 분위기 있는 조명 + Tyndall effect: 틴달 효과 + light leaks: 빛 색산 + background light: 배경 조명 + available light: 자연광 + + - name: 사실적인 + color: rgba(0, 255, 255, .4) + tags: + realistic: 사실적인 + highres: 두꺼운 페인트 (스타일) + photo_(medium): 사진 (스타일) + oil_painting: 유화 + reality: 현실 + polaroid: 폴라로이드 사진 + + - name: 스케치 + color: rgba(0, 255, 255, .4) + tags: + sketch: 스케치 + flat_color: 단색 + monochrome: 흑백 + spot_color: 단색 + halftone: 반음조 + greyscale: 그레이스케일 + high_contrast: 고대비 + partially_colored: 부분 채색 + chromatic_aberration: 색차, 색 흐림 + contour_deepening: 윤곽 강조 + outline: 윤곽선 + silhouette: 실루엣 + + - name: 붓 + color: rgba(0, 255, 255, .4) + tags: + traditional_media: 전통 캔버스 (종이 등) + faux_traditional_media: 가짜 전통 매체 스타일 + marker_(medium): 마커 + copics: 마커 (중성 회색) + pencil_sketch_lines: 연필 스케치 + graphite_(medium): 그래파이트 연필 + colored_pencil_(medium): 색연필 + millipen_(medium): 밀리펜 + nib_pen_(medium): 그림용 펜 + ballpoint_pen_(medium)_: 볼펜 + pastel_color: 부드러운 색상 + watercolor_(medium): 수채화 + acrylic_paint_(medium): 아크릴 페인팅 + contour_deepening: 선 굵게 + + - name: 색상 + color: rgba(0, 255, 255, .4) + tags: + orange: 주황색 + blue: 파란색 + red: 빨간색 + light_brown: 연한 갈색 + dark_pink: 진한 핑크색 + khaki: 카키색 + blonde: 금발 + brown: 갈색 + black: 검은색 + gray: 회색 + darkgray: 짙은 회색 + silver: 은색 + lightgray: 연한 회색 + gainsboro: 게인스보로 + whitesmoke: 화이트 스모크 + snow: 눈색 + ghostwhite: 유령의 흰색 + floralwhite: 화이트 꽃색 + linen: 리넨색 + antiquewhite: 안티크 화이트 + papayawhip: 파파야 화이트 + blanchedalmond: 블랜치드 알몬드 + bisque: 비스크 + moccasin: 모카신 + navajowhite: 나바호 화이트 + peachpuff: 복숭아색 + mistyrose: 흐린 장미색 + lavenderblush: 연보라색 + seashell: 조개껍질색 + oldlace: 올드 레이스 + ivory: 상아색 + honeydew: 꿀색 + mintcream: 민트 크림색 + azure: 하늘색 + aliceblue: 앨리스 블루 + lavender: 라벤더색 + lightsteelblue: 연한 강철색 + lightslategray: 연한 슬레이트 회색 + slategray: 슬레이트 회색 + steelblue: 강철색 + royalblue: 로열 블루 + midnightblue: 한밤중의 파랑색 + navy: 해군색 + darkblue: 짙은 파랑색 + mediumblue: 중간 파랑색 + dodgerblue: 도저 블루 + cornflowerblue: 국화색 + skyblue: 하늘색 + lightblue: 연한 파랑색 + powderblue: 파우더 블루 + paleturquoise: 연한 청록색 + lightcyan: 연한 청록색 + cyan: 청록색 + aquamarine: 아쿠아마린색 + turquoise: 터쿠아즈색 + mediumturquoise: 중간 터쿠아즈색 + darkturquoise: 짙은 터쿠아즈색 + lightseagreen: 연한 바다색 + cadetblue: 카뎃 블루 + darkcyan: 짙은 청록색 + teal: 틸색 + darkslategray: 짙은 슬레이트 회색 + darkgreen: 짙은 녹색 + green: 녹색 + forestgreen: 숲색 + seagreen: 바다색 + mediumseagreen: 중간 바다색 + mediumaquamarine: 중간 아쿠아마린색 + darkseagreen: 짙은 바다색 + palegreen: 연한 녹색 + lightgreen: 연한 초록색 + springgreen: 봄 초록색 + mediumspringgreen: 중간 봄 초록색 + lawngreen: 잔디색 + chartreuse: 새끼노랑색 + greenyellow: 녹색 노랑색 + lime: 라임색 + limegreen: 황록색 + yellowgreen: 노란 녹색 + darkolivegreen: 짙은 올리브색 + olivedrab: 올리브색 + olive: 올리브색 + darkkhaki: 짙은 카키색 + palegoldenrod: 연한 황금색 + cornsilk: 옥수수색 + beige: 베이지색 + lightyellow: 연한 노란색 + lightgoldenrodyellow: 연한 황금색 + lemonchiffon: 레몬 시폰색 + wheat: 밀색 + burlywood: 버리우드색 + tan: 황갈색 + yellow: 노란색 + gold: 금색 + sandybrown: 모래갈색 + darkorange: 짙은 주황색 + goldenrod: 황금색 + peru: 페루색 + darkgoldenrod: 짙은 황금색 + chocolate: 초콜릿색 + sienna: 시에나색 + saddlebrown: 안장 갈색 + maroon: 청갈색 + darkred: 짙은 빨간색 + firebrick: 벽돌색 + indianred: 인디안 레드색 + rosybrown: 로지 브라운색 + darksalmon: 짙은 연어색 + lightcoral: 연한 코랄색 + salmon: 연어색 + lightsalmon: 연한 연어색 + coral: 코랄색 + tomato: 토마토색 + orangered: 주황빨강색 + crimson: 짙은 붉은색 + mediumvioletred: 중간 보라빛 빨강색 + deeppink: 짙은 분홍색 + hotpink: 핫 핑크색 + palevioletred: 연한 보라빛 빨강색 + pink: 분홍색 + lightpink: 연한 분홍색 + thistle: 디스들색 + magenta: 마젠타색 + fuchsia: 후크샤색 + violet: 보라색 + plum: 자두색 + orchid: 난초색 + mediumorchid: 중간 난초색 + darkorchid: 짙은 난초색 + darkviolet: 짙은 보라색 + darkmagenta: 짙은 마젠타색 + purple: 보라색 + indigo: 남색 + darkslateblue: 짙은 슬레이트 파랑색 + blueviolet: 파란 보라색 + mediumpurple: 중간 보라색 + slateblue: 슬레이트 파랑색 + mediumslateblue: 중간 슬레이트 파랑색 + + - name: 배경 + color: rgba(0, 255, 255, .4) + tags: + fantasy: 판타지 스타일 + ban: 공상 과학 + cyberpunk: 사이버펑크 + depth_of_field: 초점 깊이 (그림 스타일) + blurry: 흐린 배경 + blurry_foreground: 흐린 전경 + simple_background: 단순한 배경 + black_background: 검은색 배경 + white_background: 흰색 배경 + transparent_background: 투명 배경 + beige_background: 베이지색 배경 + brown_background: 갈색 배경 + tan_background: 황갈색 배경 + grey_background: 회색 배경 + two-tone_background: 이중톤 배경 + gradient_background: 그라디언트 배경 + multicolored_background: 다채로운 배경 + rainbow_background: 무지개 배경 + abstract_background: 추상적인 배경 + argyle_background: 아가일 배경 + checkered_background: 체크무늬 배경 + floral_background: 꽃무늬 배경 + halftone_background: 점자 배경 + heart_background: 하트 배경 + honeycomb_background: 벌집 스타일 배경 + plaid_background: 격자무늬 배경 + polka_dot: 도트무늬 배경 + striped_background: 줄무늬 배경 + scenery: 풍경 + landscape: 경치 + foral_background: 꽃무늬 배경 + crop_top_overhang: 상단 잘린 부분 + starry_background: 별빛이 나는 배경 + sparkle_background: 반짝이는 별빛이 나는 배경 + cityscape: 도시 풍경 + city_lights: 도시 조명 + clock_background: 시계 배경 + bubble_background: 거품 배경 + border: 테두리 + pillarboxed: 세로로 잘린 배경 + rounded_corners: 배경이 둥근 모서리 + viewfinder: 뷰파인더 + windowboxed: 윈도우박스 배경 + outside_border: 일부가 배경 프레임 밖에 있는 + flashback: 회상 장면 + wall_of_text: 글 배경 + background_text: 배경 텍스트 + +- name: 환경 + groups: + - name: 계절 + color: rgba(31, 144, 255, .4) + tags: + in spring: 봄 + in summer: 여름 + in autumn: 가을 + in winter: 겨울 + (autumn maple forest:1.3),(very few fallen leaves),(path): 가을 풍경 + + - name: 날씨 + color: rgba(31, 144, 255, .4) + tags: + day: 낮 + dusk: 황혼 + night: 밤 + rain: 비 + in the rain: 비 내리는 중 + rainy days: 비 오는 날 + sunset: 일몰 + cloudy: 흐림 + full moon: 보름달 + sun: 태양 + moon: 달 + full_moon: 보름달 + stars: 별들 + sky: 하늘 + universe: 우주 + snow,ice: 눈, 얼음 + snowflakes: 눈송이 + lighting: 번개 + rainbow: 무지개 + meteor shower: 유성우 + cumulonimbus: 적란운 + + - name: 자연 + color: rgba(31, 144, 255, .4) + tags: + nature: 자연 + sea: 바다 + ocean: 대양 + beach: 해변 + hills: 언덕 + in a meadow: 초원에서 + on the beach: 해변에서 + underwater: 수중 + over the sea: 바다 위에서 + grove: 숲 + on a desert: 사막 위에서 + plateau: 고원 + cliff: 절벽 + canyon: 협곡 + oasis: 오아시스 + bamboo forest: 대나무 숲 + glacier: 빙하 + floating island: 떠다니는 섬 + volcano: 화산 + savanna: 대초원 + waterfall: 폭포 + stream: 시냇물 + wasteland: 황무지 + field: 들판 + rice paddy: 논 + wheat field: 밀밭 + flower field: 꽃밭 + flower sea: 꽃바다 + space: 우주 + starry sky: 별이 빛나는 하늘 + lake: 호수 + river: 강 + onsen: 온천 + flowers meadows: 꽃이 가득한 초원 + Alps: 알프스 산맥 + Dreamy forest: 환상적인 숲(환상적인 느낌, 빛 입자가 조용함) + mountain: 산맥 + on a hill: 언덕 위에서 + the top of the hill: 언덕 꼭대기 + outdoors: 야외 + + - name: 물 + color: rgba(31, 144, 255, .4) + tags: + ocean: 대해 + dripping: 물방울 + beach: 해변 + lake: 호수 + waterfall: 폭포 + ripples: 잔물결 + swirl: 소용돌이 + waves: 파도 + seashell: 조개껍질 + seaweed: 해초 + + - name: 하늘 + color: rgba(31, 144, 255, .4) + tags: + sky: 하늘 + gradient_sky: 기울어진 하늘 + night_sky: 밤하늘 + starry_sky: 별이 빛나는 하늘 + hyper_galaxy: 초음속 은하 + star_(sky): 별(하늘의) + star_trail: 별빛 자국 + sunset: 일몰 + moon: 달 + lunar: 달의, 월의 + crescent: 초승달 + crescent_moon: 새로운 달 + full_moon: 보름달 + moonlight: 달빛 + scarlet_moon: 주홍 달 + universe: 우주 + space: 우주 + planet: 행성 + from_space_station: 우주 정거장에서 + satellite: 인공위성 + + - name: 구름 + color: rgba(31, 144, 255, .4) + tags: + cirrus: 백운 + Cirrocumulus: 웅크리는 적운 + Cirrostratus: 웅크리는 층운 + Altocumulus: 중층운 + Altostratus: 중층층운 + stratus: 층운 + Stratocumulus: 층층운 + cumulus: 적운 + Cumulonimbus: 적란운 + Nimbostratus: 비층운 + cirrus_fibratus: 섬세한 백운 + cirrus_uncinus: 후크 모양 백운 + cirrus_spissatus: 빽빽한 백운 + cirrus_floccus: 솜털 모양 백운 + cirrus_castellanus: 성 모양 백운 + cirrus_intortus: 엉큰 백운 + cirrocumulus: 웅크리는 적운 종류 + cirrocumulus_stratiformis: 층상 웅크리는 적운 + cirrocumulus_floccus: 솜털 모양 웅크리는 적운 + cirrocumulus_castellanus: 성 모양 웅크리는 적운 + cirrocumulus_lacunosus: 그물 모양 웅크리는 적운 + cirrostratus: 웅크리는 층운 종류 + cirrostratus_fibratus: 섬세한 웅크리는 층운 + cirrostratus_nebulosus: 안개 모양 웅크리는 층운 + altocumulus: 중층운 종류 + altocumulus_strataformis: 층상 중층운 + altocumulus_lenticularis: 렌즈 모양 중층운 + altocumulus_castellanus: 성 모양 중층운 + altocumulus_floccus: 솜털 모양 중층운 + altocumulus_lacunosus: 그물 모양 중층운 + altostratus: 중층층운 종류 + altostratus_undulatus: 파도 모양 중층층운 + altostratus_duplicates: 중복 중층층운 + altostratus_pannus: 조각 중층층운 + altostratus_translucidus: 투명 중층층운 + altostratus_opacus: 불투명 중층층운 + altostratus_radiatus: 방사형 중층층운 + altostratus_mammatus: 유방 모양 중층층운 + stratus_fractus: 파편 층운 + stratus_nebulosus: 안개 층운 + stratus_undulatus: 파도 모양 층운 + stratocumulus: 층층운 종류 + stratocumulus_stratiformis: 층상 층층운 + stratocumulus_cumulogentis: 적란성 층층운 + stratocumulus_castellanus: 성 모양 층층운 + stratocumulus_lenticularis: 렌즈 모양 층층운 + stratocumulus_lacunosus: 솜털 모양 층층운 + cumulus_humilis: 희미한 적운 + cumulus_mediocris: 보통 적운 + cumulus_congestus: 짙은 적운 + cumulus_fractus: 파편 적운 + cumulonimbus: 적란운 종류 + cumulonimbus_calvus: 대머리 적란운 + cumulonimbus_capillatus: 머리카락 모양 적란운 + cumulonimbus_incus: 모루 적란운 + + - name: 분위기 + color: rgba(31, 144, 255, .4) + tags: + new year: 새해 + year of the rabbit: 토끼 년 + valentine: 발렌타인데이 + lantern festival: 달맞이 축제 + summer festival: 여름 축제 + tanabata: 칠석 + mid-autumn festival: 추석 + halloween: 할로윈 + christmas: 크리스마스 + explosion: 폭발 + water vapor: 수증기 + fireworks: 불꽃놀이 + ceiling window: 바닥 창문 + colourful glass: 다채로운 유리 + stain glass: 스테인드 글라스 + Graffiti wall: 그래피티 벽 + mosaic background: 모자이크 배경 + liquid background, Sputtered water: 액체 배경 + magic circles: 마법진 + fluorescent mushroom forests background: 형광 버섯 숲 + (((colorful bubble))): 다채로운 거품 + in the ocean: 해변에서 일몰 + against backlight at dusk: 황혼에 역광으로 + golden hour lighting: 황금 시간대 조명 + strong rim light: 강한 가장자리 빛 + intense shadows: 강렬한 그림자 + +- name: 장면 + groups: + - name: 야외 + color: rgba(159, 32, 240, .4) + tags: + castle: 성 + city: 도시 + waterpark: 워터파크 + carousel: 회전목마 + ferris wheel: 대관람차 + aquarium: 수족관 + zoo: 동물원 + bowling alley: 볼링장 + art gallery: 미술관 + museum: 박물관 + planetarium: 천문대 + swimming pool: 수영장 + stadium: 경기장 + temple: 사원 + bus stop: 버스 정류장 + train station: 기차역 + fountain: 분수 + playground: 놀이터 + market stall: 시장 장사 + phone booth: 공중 전화부스 + railroad tracks: 철도 + airport: 공항 + tunnel: 터널 + skyscraper: 초고층 빌딩 + cityscape: 도시 풍경 + ruins: 폐허 + greco-roman architecture: 그리스 로마 건축 + east asian architecture: 동아시아 건축 + torii: 토리 + church: 교회 + shop: 상점 + street: 거리 + cyberpunk city: 사이버펑크 도시 + in the cyberpunk city: 사이버펑크 도시에서 + chinese style architecture: 중국식 건축 + gohei: 고배 + bustling city: 번화한 도시 + laboratory: 실험실 + coffee house: 커피집 + gym: 체육관 + library: 도서관 + prison: 감옥 + engine room: 엔진실 + handrail: 난간 + neon lights: 네온 조명 + street lamp: 가로등 + road: 도로 + shanty town/slum: 빈민가 + warehouse: 창고 + gothic architecture: 고딕 양식 건축 + restaurant: 레스토랑 + treehouse: 나무 위의 집 + modern, Europe: 현대적인 유럽 + industrial wind, Chinese architecture: 산업적인 중국 건축 + building ruins: 건물 폐허 + bar: 바 + izakaya: 이자카야 (일본식 주점) + cafe: 카페 + bakery: 빵집 + convenience store: 편의점 + supermarket: 슈퍼마켓 + pharmacy: 약국 + theater: 극장 + movie theater: 영화관 + workshop: 작업장 + courtroom: 법정 + park: 공원 + trapeze: 공중 놀이기구 + classroom: 교실 + botanical garden: 식물원 + amusement park: 놀이공원 + Disney land: 디즈니랜드 + arena: 경기장 + wrestling ring: 겨루기 장소 + auditorium: 강당 + concert: 콘서트 + Japanese hotel: 일본식 호텔 + jail bars: 감옥 바 + in the movie theatre: 영화관에서 + stage: 무대 + harbor: 항구 + casino: 카지노 + billiard: 당구대 + dungeon: 지하 감옥 + grave: 무덤 + graveyard: 묘지 + tombstone: 묘비 + monolith: 거대한 돌 + rappelling: 래플링 + building: 건물 + architecture: 건축 + magnificent architecture: 웅장한 건축 + Skyscraper: 초고층 빌딩 + east_asian_architecture: 동아시아 건축 + cathedral: 대성당 + chinese style loft: 중국식 로프트 + traditional chinese room: 전통 중국식 방 + turret: 탑 + tower: 탑 + mosque: 모스크 + reservoir: 저수지 + railroad: 철도 + railway: 철도 + bridge: 다리 + under bridge: 다리 아래 + remains: 폐허 + rubble ruins: 폐허 + + - name: 도시 + color: rgba(159, 32, 240, .4) + tags: + city: 도시 + cityscape: 도시 풍경 + street: 거리 + downtown: 시내 + crowd: 군중 + alley: 골목 + in main street: 대로에서 + intersection: 교차로 + avenue: 대로 + lawn: 잔디밭 + road: 도로 + path: 길 + pavement: 포장도로 + road sign: 도로 표지판 + traffic cone: 교통 표지펀 + lamppost: 가로등 + power lines: 전선과 전봇대 + fence: 울타리 + railing: 난간 + bench: 벤치 + vending machine: 자동판매기 + + - name: 실내 + color: rgba(159, 32, 240, .4) + tags: + indoor: 실내 + bathroom: 욕실 + toilet stall: 화장실 칸 + otaku room: 오타쿠 방 + cafeteria: 카페테리아 + classroom: 교실 + clubroom: 동아리방 + bedroom: 침실 + kitchen: 부엌 + dormitory: 기숙사 + dungeon: 지하감옥 + infirmary: 진료실 + stage: 무대 + electrical room: 전기실 + server room: 서버실 + basement: 지하실 + art room: 미술실 + bathing: 목욕 + stairs: 계단 + greenhouse: 온실 + + - name: 바닥 + color: rgba(159, 32, 240, .4) + tags: + floor: 바닥 + tile floor: 타일 바닥 + + - name: 가구 + color: rgba(159, 32, 240, .4) + tags: + bedroom: 침실 + tatami: 다다미 + bed: 침대 + couch: 소파 + kotatsu: 코타츠 + fireplace: 벽난로 + window_: 창문 + sash: 창틀 + curtains: 커튼 + door: 문 + sliding doors: 슬라이딩 문 + clothes rack: 옷걸이 + air conditioner: 에어컨 + table: 탁자 + school desk: 학교 책상 + chair: 의자 + armchair: 안락의자 + lounge chair: 라운지 의자 + beach chair: 해변 의자 + folding chair: 접이식 의자 + invisible chair: 투명 의자 + office chair: 사무용 의자 + wheelchair: 휠체어 + + - name: 침구 + color: rgba(159, 32, 240, .4) + tags: + bed sheet: 침대 시트 + mattress: 매트리스 + futon: 이불 + cushion: 쿠션 + carpet: 카펫 + pillow: 베개 + dumpling hug pillow: 만두 안아베개 + pillow hug: 안아베개 + yes-no pillow: 예/아니오 베개 + stuffed animal: 봉제 동물 + stuffed bunny: 봉제 토끼 + koakuma: 코아쿠마 + + - name: 욕실 + color: rgba(159, 32, 240, .4) + tags: + bathroom: 욕실 + bathtub: 욕조 + rubber duck: 고무 오리 + shower head: 샤워기 + toilet: 화장실 + squat toilet: 앉지 않는 화장실 + soap: 비누 + tiles: 타일 + +- name: 물건 + groups: + - name: 학용품 + color: rgba(189, 182, 107, .4) + tags: + notebook: 노트북 + paintbrush: 붓 + pencil: 연필 + book: 책 + open_book: 열린 책 + book_stack: 책 더미 + bookshelf: 책장 + school_bag: 가방 + backpack: 배낭 + + - name: 디지털 기기 + color: rgba(189, 182, 107, .4) + tags: + computer: 컴퓨터 + mouse: 마우스 + cellphone: 휴대폰 + Smartphones: 스마트폰 + handheld_game_console_: 휴대용 게임 콘솔 + nintendo_3ds: 닌텐도 3DS + nintendo_ds: 닌텐도 DS + nintendo_switch: 닌텐도 스위치 + buttons: 버튼 + power_lines: 전원선 + cable: 케이블 + + - name: 식기 + color: rgba(189, 182, 107, .4) + tags: + pot: 냄비 + teapot: 찻주전자 + ladle: 국자 + can: 캔 + soda_can: 캔 음료 + cup: 컵 + plate: 접시 + tray: 쟁반 + bowl: 그릇 + fork: 포크 + chopsticks: 젓가락 + spoon: 숟가락 + drinking_glass: 유리잔 + tumbler: 일반 유리컵 + beer_mug: 맥주잔 + gift_box: 선물 상자 + heart-shaped_box: 하트 모양 상자 + candle: 양초 + + - name: 악기 + color: rgba(189, 182, 107, .4) + tags: + music: 음악 + guitar: 기타 + piano: 피아노 + cello: 첼로 + playing_instrument: 악기 연주 + wind_chime: 풍경음 + + - name: 기타 물품 + color: rgba(189, 182, 107, .4) + tags: + wristwatch: 손목시계 + folding_fan: 접이식 부채 + paper_fan: 종이 부채 + uchiwa: 부채 + umbrella: 우산 + transparent_umbrella: 투명 우산 + closed_umbrella: 접힌 우산 + oil-paper_umbrella: 종이 우산 + Parasol: 선글라스 + basket: 바구니 + bouquet: 꽃다발 + bucket: 양동이 + pail: 양동이 + camera: 카메라 + gohei: 구베이(악마를 쫓아내는 봉) + lantern/lamp: 랜턴 + whip: 채찍 + riding_crop: 말채찍 + ofuda: 오부다(일본의 부적) + cane: 지팡이 + wand: 지팡이 + magic: 마법 + trading_card: 트레이딩 카드 + playing_card: 플레잉 카드 + Cassette: 카세트 + chess_piece: 체스말 + coin: 동전 + copper: 동전 + hammer: 망치 + microphone: 마이크 + mimikaki: 귀지팡이 + sack: 주머니 + scales: 저울 + chibi_inset: 치비 삽화 + damaged: 손상된 + diamond_(shape): 다이아몬드(모양) + gourd: 호박 + holding_gift: 선물을 들고 있는 + inlet: 입구 + key: 열쇠 + leash: 목줄 + Lever: 레버 + molecule: 분자 + money: 돈 + Painting_(Object): 그림(물건) + photo_(object): 사진(물체) + sand: 모래 + stubble: 다발 + trophy: 트로피 + tube_top: 튜브 탑 + water_bottle: 물병 + lotion: 로션 + lotion_bottle: 로션 병 + + - name: 무기 + color: rgba(189, 182, 107, .4) + tags: + weapon: 무기 + weapon_on_back: 등에 있는 무기 + weapon_over_shoulder: 어깨 위의 무기 + huge_weapon: 거대한 무기 + planted_weapon: 땅에 꽂은 무기 + broken_weapon: 부서진 무기 + planted_sword: 세운 검 + sword: 칼 + scabbard: 칼집 + unsheathing: 칼을 빼는 + katana: 카타나 + saber_(weapon): 사브르(무기) + scythe: 낫 + nose_hatchet: 코 도끼 + dagger: 단검 + scissors: 가위 + axe: 도끼 + hatchet: 손도끼 + stake: 말뚝 + lance: 창 + trident: 삼지창 + bow_(weapon): 활 + arrow: 화살 + claw_(weapon): 발톱(무기) + rifle,: 소총 + gun: 총 + handgun: 권총 + thompson_submachine_gun: 톰슨 기관단총 + magazine_(weapon): 탄창(무기) + dynamite: 다이너마이트 + bomb: 폭탄 + track missiles: 유도 미사일 + complex Trajectory: 복잡한 궤적 + tank: 탱크 + cannon: 대포 + military_vehicle: 군용 차량 + motorcycle: 오토바이 + ship: 배 + watercraft: 수상선 + car: 자동차 + machine: 기계 + machinery: 기계 무장 + mechanical_arms: 기계 팔 + mechanization: 기계화 + robot_ears: 로봇 귀 + robot_joints: 로봇 관절 + variable_fighter: 가변 싸우는 기체 + sorcerer's_sutra_scroll: 마법사의 경전 + + - name: 음식 + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: 초밥 롤 + apple: 사과 + aubergine: 가지 + burger: 버거 + cake: 케이크 + candy: 사탕 + candy_apple: 사과 사탕 + candy_cane: 사탕 지팡이 + carrot: 당근 + cigarette: 담배 + coffee: 커피 + cookie: 쿠키 + cotton_candy_: 솜사탕 + cream: 크림 + dango: 당고 + doughnut: 도넛 + drink: 음료 + egg: 계란 + fruit: 과일 + Gelatin: 젤리 + ice_cream: 아이스크림 + kafuu_chino: 카푸치노 + makizushi: 매트초밥 + meat: 고기 + noodles: 면 + obento: 도시락 + onigiri: 주먹밥 + pancake: 팬케이크 + pasties: 페이스트리 + peach: 복숭아 + ramen: 라면 + sake: 일본 전통주 + taiyaki: 타이야키 + tea: 차 + teacup: 티컵 + wagashi: 와가시 + wine: 와인 + jam: 잼 + pocky: 포키 + bottled_water: 물병 + sweet_potato: 고구마 + sweets: 과자 + food: 음식 + food_in_mouth: 입 안의 음식 + food_on_: 얼굴에 음식 + food_on_body: 몸에 음식 + food_print: 음식 프린트 + food_stand: 음식 판매대 + in_food: (캐릭터) 음식 안에 + chips: 감자칩 + potato_chips: 감자칩 + telstar: 텔스타 공 + sundae: 선데 + + - name: 동물 + color: rgba(189, 182, 107, .4) + tags: + reptile: 파충류 + crow: 까마귀 + bird: 새 + penguin: 펭귄 + chick: 병아리 + manjuu_(azur_lane): 만주(아즈레인) + shell: 조개 + wriggle_nightbug: 기생충 + dragonfly: 잠자리 + mammal: 포유류 + wolf: 늑대 + 扶桑花: 말 + whale: 고래 + cat: 고양이 + cat_teaser: 고양이 장난감 + dog: 개 + dog_tags: 개 태그 + fox: 여우 + bunny: 토끼 + snow_bunny: 눈 토끼 + stuffed_bunny: 토끼 인형 + horse: 말 + cow: 소 + dragon: 용 + loong: 중국 용 + eastern_dragon: 동양 용 + snake: 뱀 + slime: 슬라임 + bear: 곰 + panda: 판다 + teddy_bear: 테디베어 + tiger: 호랑이 + bat: 박쥐 + hamster: 햄스터 + mouse: 쥐 + squirrel: 다람쥐 + + - name: 식물 + color: rgba(189, 182, 107, .4) + tags: + plant: 식물 + flower: 꽃 + vase: 꽃병 + bouquet: 꽃다발 + flower_bloom: 꽃이 피는 + plum_blossom: 매화 + cherry_blossoms: 벚꽃 + wisteria: 덩굴 + hibiscus: 히비스커스 + hydrangea: 수국 + rose: 장미 + spider_lily: 호접란 + lily: 백합 + lotus: 연꽃 + bamboo: 대나무 + entangled_plants: 뒤얽힌 식물 + orchid: 난초 + chrysanthemum: 국화 + narcissu: 수선화 + tree: 나무 + branch: 나뭇가지 + forest: 숲 + pine_tree: 소나무 + palm_tree: 야자수 + maple_tree: 단풍나무 + bush/shrub,: 덤불 + christmas_tree: 크리스마스 트리 + maple_leaf: 단풍잎 + pumpkin: 호박 + jack-o'-lantern: 할로윈 호박 등 + spring_onion: 대파 + +- name: 렌즈 + groups: + - name: 렌즈 + color: rgba(99, 201, 2, .4) + tags: + panorama: 파노라마 + landscape: 풍경 렌즈(원경) + wide_shot: 파노라마 렌즈(광각 렌즈) + medium_shot: 중경 렌즈 + mid_shot: 중경 렌즈 + full_shot: 풀샷 + bust: 반신 + upper_body: 상반신 + lower_body: 하반신 + cowboy_shot: 상반신+허벅지(카우보이 렌즈) + portrait: 초상화(얼굴+어깨+가끔 가슴 추가) + profile: 측면 초상화(측면 얼굴 초상화) + + - name: 근접 촬영 렌즈 + color: rgba(99, 201, 2, .4) + tags: + close-up: 근접 촬영 렌즈 + macro_shot: 매크로 렌즈 + inset: 다른 촬영 렌즈 또는 이미지 삽입 + cross-section: 단면도 + x-ray: 엑스레이 + solo_focus: 개별 인물에 초점(복잡한 장면에 적합) + xx_focus: xx에 초점 + face_focus: 얼굴에 초점 + eyes_focus: 눈에 초점 + foot_focus: 발에 초점 + hip_focus: 엉덩이에 초점 + ass_focus: 엉덩이에 초점 + vehicle_focus: 탈것에 초점 + between_legs: (강조)다리 사이 + between_breasts: (강조)가슴 사이 + between_fingers: (강조)손가락 사이 + peeking: espiando + peeking_out: espiando (postura) + peeping: espiando (énfasis en el ángulo de visión) + midriff_peek: 배꼽 훔쳐보기 + armpit_peek: 겨드랑이 훔쳐보기 + pussy_peek: 퍼시 훔쳐보기 + panty_peek: 팬티 훔쳐보기 + pantyshot: 팬티 노출 + caught: 발각된 + + - name: 기타 구도 + color: rgba(99, 201, 2, .4) + tags: + aerial: 공중 + turn_one's_back: 등을 돌리다 + upskirt: 치마 밑 시점 + phone_screen: 휴대폰 화면 + multiple_views: 다중 시점 분해 + mirror selfie: 거울 셀카 + three-quarter view: 3/4 시점 + + - name: 렌즈 각도 + color: rgba(99, 201, 2, .4) + tags: + front view: 정면 시점 + from_side: 측면 시점 + from_above: 위쪽에서 ↘ + from_below: 아래쪽에서 ↗ + from_outside: 외부에서 내부로 + from_back: 등 뒤 시점 + from behind: 등 뒤 시점 + dynamic_angle: 동적 각도 + cinematic_angle: 영화 각도 + dutch angle: 기울어진 각도 + foreshortening: 원근법 + fisheye: 원근 효과 + + - name: 효과 + color: rgba(99, 201, 2, .4) + tags: + depth of field: 피사계심도 (인물과 배경 조화) + lens_flare: 렌즈 플레어 + motion_blur: 움직임에 의한 흐림 + motion_lines: 움직임을 나타내는 선 + speed_lines: 속도 선 + bokeh: 보케 + chromatic_aberration: 색차 + overexposure: 과노출 + contour_deepening: 등고선 강조 + + - name: 주인공 동작 + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: 시청자를 바라보는 + eye-contact: 눈빛 교감 + eyeball: 응시하다 + stare: 응시하다 + looking_back: 뒤돌아보기 + gradient: 인물 기울기 + looking_down: 아래를 바라보는 인물 시점 ↘ + looking_up: 위를 바라보는 인물 시점 ↗ + facing_away: 다른 방향을 향한 + looking_to_the_side: 측면을 바라보는 + looking_away: 다른 방향을 바라보는 + looking_ahead: 앞을 내다보는 + looking_afar: 멀리 바라보는 + looking_outside: 외부를 바라보는 + head_tilt: 머리 기울이기 + head_down: 머리 숙이기 + sideways_glance: 살짝 옆으로 훔쳐보기 + upshirt: 셔츠 아래로 훔쳐보기 + upshorts: 치마 아래로 훔쳐보기 + looking_at_another: 다른 사람을 바라보는 + looking_at_phone: 핸드폰을 바라보는 + looking_at_animal: 동물을 바라보는 + looking_at_mirror: 거울을 보는 + looking_at_hand: 손을 바라보는 + looking_at_hands: 양손을 바라보는 + looking_at_food: 음식을 바라보는 + looking_at_screen: 화면을 바라보는 + +- name: 한복 + groups: + - name: "당풍:" + color: rgba(178, 33, 34, .4) + tags: + hanbok, tang style outfits,: 당풍 + + - name: 상수 + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: 주황색 상수 + red upper shan: 빨간색 상수 + green upper shan: 초록색 상수 + blue upper shan: 파란색 상수 + pink upper shan: 분홍색 상수 + yellow upper shan: 노란색 상수 + white upper shan: 흰색 상수 + light blue upper shan: 연한 파란색 상수 + light green upper shan: 연한 초록색 상수 + light red upper shan: 연한 빨간색 상수 + cyan blue upper shan: 청록색 상수 + light purple upper shan: 연한 보라색 상수 + black with blue upper shan: 검은색과 파란색 상수 + white with orange upper shan: 주황색과 흰색 상수 + pink with black upper shan: 분홍색과 검은색 상수 + + - name: 장상수 + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: 주황색 + red long upper shan: 빨간색 + green long upper shan: 초록색 + blue long upper shan: 파란색 + pink long upper shan: 분홍색 + yellow long upper shan: 노란색 + white long upper shan: 흰색 + light blue long upper shan: 연한 파란색 + light green long upper shan: 연한 초록색 + light red long upper shan: 연한 빨간색 + cyan blue long upper shan: 청록색 + light purple long upper shan: 연한 보라색 + black with blue long upper shan: 검은색과 파란색 + white with orange long upper shan: 주황색과 흰색 + pink with black long upper shan: 분홍색과 검은색 + + - name: 가슴 터진 치마 + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: 흰색 터진 치마 + red chest po skirt: 빨간색 터진 치마 + green chest po skirt: 초록색 터진 치마 + blue chest po skirt: 파란색 터진 치마 + pink chest po skirt: 분홍색 터진 치마 + purple chest po skirt: 보라색 터진 치마 + multicolour chest po skirt: 다색 터진 치마 + purple with white chest po skirt: 보라색과 흰색 터진 치마 + white with yellow chest po skirt: 흰색과 노란색 터진 치마 + blue with white chest po skirt: 하늘색 터진 치마 + orange with white chest po skirt: 주황색과 흰색 터진 치마 + green with white chest po skirt: 연두색 터진 치마 + light orange with white chest po skirt: 연한 노란색과 흰색 터진 치마 + pink with white chest po skirt: 분홍색과 흰색 터진 치마 + white with pink chest po skirt: 흰색에 분홍색 터진 치마 + + - name: 가슴 주름 치마 + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: 흰색 주름 치마 + red chest pleated skirt: 빨간색 주름 치마 + green chest pleated skirt: 초록색 주름 치마 + blue chest pleated skirt: 파란색 주름 치마 + pink chest pleated skirt: 분홍색 주름 치마 + purple chest pleated skirt: 보라색 주름 치마 + multicolour chest pleated skirt: 다색 주름 치마 + purple with white chest pleated skirt: 보라색과 흰색 주름 치마 + white with yellow chest pleated skirt: 흰색과 노란색 주름 치마 + blue with white chest pleated skirt: 하늘색 주름 치마 + orange with white chest pleated skirt: 주황색과 흰색 주름 치마 + green with white chest pleated skirt: 연두색 주름 치마 + light orange with white chest pleated skirt: 연한 노란색과 흰색 주름 치마 + pink with white chest pleated skirt: 분홍색과 흰색 주름 치마 + white with pink chest pleated skirt: 흰색에 분홍색 주름 치마 + + - name: 띠 + color: rgba(178, 33, 34, .4) + tags: + green waistband: 초록색 띠 + yellow waistband: 노란색 띠 + red waistband: 빨간색 띠 + pink waistband: 분홍색 띠 + orange waistband: 주황색 띠 + light blue waistband: 연한 파란색 띠 + light green waistband: 연한 초록색 띠 + green with yellow waistband: 노란색과 초록색 띠 + purple with white waistband: 보라색과 흰색 띠 + red with white waistband: 빨간색과 흰색 띠 + red with black waistband: 빨간색과 검은색 띠 + yellow with white waistband: 노란색과 흰색 띠 + + - name: 겉옷 + color: rgba(178, 33, 34, .4) + tags: + white pibo: 흰색 겉옷 + orange pibo: 주황색 겉옷 + black pibo: 검은색 겉옷 + pink pibo: 분홍색 겉옷 + red pibo: 빨간색 겉옷 + purple pibo: 보라색 겉옷 + light green pibo: 연한 초록색 겉옷 + white with yellow pibo: 노란색과 흰색 겉옷 + + - type: wrap + + - name: "송풍:" + color: rgba(178, 33, 34, .4) + tags: + hanbok, song style outfits,: 송풍 + + - name: 짧은 상의 + color: rgba(178, 33, 34, .4) + tags: + purple short shan: 보라색 짧은 상의 + red short shan: 빨간색 짧은 상의 + green short shan: 초록색 짧은 상의 + blue short shan: 파란색 짧은 상의 + pink short shan: 분홍색 짧은 상의 + yellow short shan: 노란색 짧은 상의 + white short shan: 흰색 짧은 상의 + light blue short shan: 연한 파란색 짧은 상의 + light green short shan: 연한 초록색 짧은 상의 + light red short shan: 연한 빨간색 짧은 상의 + cyan blue short shan: 청록색 짧은 상의 + light purple short shan: 연한 보라색 짧은 상의 + black with blue short shan: 검은색과 파란색 짧은 상의 + white with yellow short shan: 노란색과 흰색 짧은 상의 + light yellow with green with white short shan: 연한 노란색과 초록색과 흰색 짧은 상의 + + - name: 긴 상의 + color: rgba(178, 33, 34, .4) + tags: + purple long shan: 보라색 긴 상의 + red long shan: 빨간색 긴 상의 + green long shan: 초록색 긴 상의 + blue long shan: 파란색 긴 상의 + pink long shan: 분홍색 긴 상의 + yellow long shan: 노란색 긴 상의 + white long shan: 흰색 긴 상의 + light blue long shan: 연한 파란색 긴 상의 + light green long shan: 연한 초록색 긴 상의 + light red long shan: 연한 빨간색 긴 상의 + cyan blue long shan: 청록색 긴 상의 + light purple long shan: 연한 보라색 긴 상의 + black with blue long shan: 검은색과 파란색 긴 상의 + white with yellow long shan: 노란색과 흰색 긴 상의 + light yellow with green with white long shan: 연한 노란색과 초록색과 흰색 긴 상의 + + - name: 주름 치마 + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: 흰색 치마 + red pleated skirt: 빨간색 치마 + green pleated skirt: 초록색 치마 + blue pleated skirt: 파란색 치마 + pink pleated skirt: 분홍색 치마 + light blue pleated skirt: 연한 파란색 치마 + white golden pleated skirt: 흰색 금색 치마 + gradient green pleated skirt: 그라데이션 초록색 치마 + translucent white pleated skirt: 반투명 흰색 치마 + red cyan gradient pleated skirt: 빨간색 청록색 그라데이션 치마 + red green gradient pleated skirt: 빨간색 초록색 그라데이션 치마 + green with white pleated skirt: 흰색 초록색 치마 + light yellow with green with white pleated skirt: 연한 노란색 초록색 흰색 치마 + + - name: 송모 + color: rgba(178, 33, 34, .4) + tags: + orange songmo: 주황색 송모 + red songmo: 빨간색 송모 + green songmo: 초록색 송모 + blue songmo: 파란색 송모 + pink songmo: 분홍색 송모 + yellow songmo: 노란색 송모 + white songmo: 흰색 송모 + purple songmo: 보라색 송모 + green floral songmo: 초록색 꽃무늬 송모 + purple floral songmo: 보라색 꽃무늬 송모 + cyan floral songmo: 청록색 꽃무늬 송모 + + - type: wrap + + - name: "명풍:" + color: rgba(178, 33, 34, .4) + tags: + hanbok, ming style outfits,: 명풍 + + - name: 상의 + color: rgba(178, 33, 34, .4) + tags: + short coat: 짧은 외투 + long coat: 긴 외투 + + - name: 치마 + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: 마면 치마 + + - name: 칼라 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 교차 칼라 + round collar: 둥근 칼라 + standing collar: 선 칼라 + square collar: 사각 칼라 + + - name: 장식 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 구름 어깨 + embroidery: 자수 + woven gold: 직조 금 + makeup flower: 화장 꽃 + bufu: 보복 의복 diff --git a/group_tags/pt_PT.yaml b/group_tags/pt_PT.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d94a6ae12c22e0621d3cd2ae634954cdbb38acf1 --- /dev/null +++ b/group_tags/pt_PT.yaml @@ -0,0 +1,4432 @@ +# 👍Palavras-chave integradas de várias fontes: "路过银河" (Zhihu), autor desconhecido (Google Drive), internet, etc. Agradecemos a esses autores por sua generosa contribuição! +# +# ⚠️Recomendamos não modificar o conteúdo deste arquivo, pois o autor pode atualizá-lo periodicamente e fazer alterações pode causar conflitos durante as atualizações. +# ⚠️Se você deseja personalizar as palavras-chave, copie este arquivo, renomeie-o para "custom.yaml" e faça as alterações no arquivo "custom.yaml". +# ⚠️O plugin irá priorizar a leitura do arquivo "custom.yaml". Se o arquivo "custom.yaml" não existir, ele lerá este arquivo. +# +# ⚠️Se desejar apenas adicionar seu próprio conteúdo antes do arquivo atual, você pode criar um arquivo prepend.yaml. +# ⚠️Se desejar apenas adicionar seu próprio conteúdo após o arquivo atual, você pode criar um arquivo append.yaml. +# ⚠️custom.yaml: Substitui o arquivo atual +# ⚠️prepend.yaml: Adiciona antes do arquivo atual +# ⚠️append.yaml: Adiciona após o arquivo atual +# +# ⚠️Recomendamos o uso de um editor de texto profissional (como o Visual Studio Code) para editar este arquivo, a fim de evitar problemas de codificação e formatação. +# ⚠️Não use o Bloco de Notas padrão do Windows para editar este arquivo. +# ⚠️Após a modificação, você pode verificar se o formato do conteúdo está correto em https://www.yamllint.com/. + +# Formato do conteúdo: +# - name: Nome da categoria principal +# groups: Lista de subcategorias +# - name: Nome da subcategoria +# color: Cor padrão do texto das palavras-chave (pode ser deixado em branco). Código de cor CSS, por exemplo: #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: Lista de palavras-chave +# - Palavra-chave em inglês: Tradução localizada +# - Palavra-chave em inglês: Tradução localizada +# ... + +# A tradução localizada deste conteúdo foi feita por meio de tradução automática e pode conter imprecisões. Se você encontrar algum problema, sinta-se à vontade para enviar um PR no GitHub para correção. +# Se houver erros de categorização, erros de palavras-chave ou erros de tradução de palavras-chave, fique à vontade para enviar um problema (issue) no GitHub para fornecer feedback. + +- name: Personagem + groups: + - name: Objeto + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1 menina + 1boy: 1 menino + 2girls: 2 meninas + 2boys: 2 meninos + 3girls: 3 meninas + 3boys: 3 meninos + girl: menina + boy: menino + solo: individual + multiple_girls: várias meninas + little_girl: menina pequena + little_boy: menino pequeno + shota: shota + loli: loli + kawaii: fofo + mesugaki: mesugaki + adorable_girl: menina adorável + bishoujo: bishoujo + gyaru: gyaru + sisters: irmãs + ojousama: ojousama + female: feminino + mature_female: mulher madura + mature: maduro + female_pervert: pervertida feminina + male: masculino + milf: milf + otoko_no_ko: otoko no ko + crossdressing: crossdressing + + - name: Identidade + color: rgba(255, 123, 2, .4) + tags: + lifeguard: salva-vidas + boxer: boxeador + scientist: cientista + athletes: atletas + office lady: mulher de escritório + monk: monge + crobat: artista de circo + nun: freira + nurse: enfermeira + stewardess: aeromoça + student: estudante + waitress: garçonete + teacher: professor + racer: piloto de corrida + police: policial + soldier: soldado + cheerleader: líder de torcida + actor: ator + actress: atriz + spy: espião + agent: agente + assassin: assassino + poet: poeta + samurai: samurai + dancing girl: dançarina + motorcyclist: motociclista + hacker: hacker + magician: mágico + detective: detetive + doll: boneca + maid: empregada + pilot: piloto + diver: mergulhador + bar censor: censor de bar + missionary: missionário + firefighter: bombeiro + goalkeeper: goleiro + chef: chef + astronaut: astronauta + cashier: caixa + mailman: carteiro + barista: barista + the hermit: eremita + makihitsuji: pastor + office_lady: senhorita de escritório + race_queen: rainha da corrida + queen: rainha + doctor: médico + knight: cavaleiro + housemaid: empregada doméstica + dancer: dançarina + ballerina: bailarina + gym_leader: líder de ginásio + trap: trap + female: mulher + harem: harém + idol: ídolo + male: homem + priest: padre + cleric: clérigo + wa_maid: empregada estilo japonês + yaoi: yaoi + yuri: yuri + albino: albino + amputee: amputado + + - name: Personagem de Anime + color: rgba(255, 123, 2, .4) + tags: + pokemon: Pokémon + teddy bear: urso de pelúcia + mario: Mario + pikachu: Pikachu + neon genesis evangelion: Neon Genesis Evangelion + hatsune miku: Hatsune Miku + harry potter: Harry Potter + doraemon: Doraemon + saint seiya: Cavaleiros do Zodíaco + gojou satoru: Gojou Satoru + avengers: Vingadores + mazinger: Mazinger + captain america: Capitão América + crayon shin-chan: Shin-chan + slam dunk: Slam Dunk + sun wukong: Sun Wukong + witch: bruxa + miko: miko + ninja: ninja + vampire: vampiro + knight: cavaleiro + magical_girl: garota mágica + orc: orc + druid: druida + elf: elfo + fairy: fada + furry: furry + mermaid: sereia + kamen rider: Kamen Rider + magister: magíster + spider-man: Homem-Aranha + santa alter: Papai Noel + monster_girl: garota monstro + cat_girl: garota gato + dog_girl: garota cachorro + fox_girl: garota raposa + kitsune: kitsune + kyuubi: kyuubi + raccoon_girl: garota guaxinim + wolf_girl: garota lobo + bunny_girl: garota coelho + horse_girl: garota cavalo + cow_girl: garota vaca + dragon_girl: garota dragão + centaur: centauro + slime_musume: slime musume + spider_girl: garota aranha + dominatrix: dominatrix + sailor_senshi: Sailor Senshi + mecha: mecha + mecha_musume: mecha musume + humanoid_robot_: robô humanoide + cyborg: ciborgue + angel: anjo + devil: diabo + dark_elf: elfo negro + imp: imp + succubus: succubus + giantess: giganta + minigirl: garota mini + monster: monstro + multiple girls: garotas mágicas + no humans: não humanos + + - name: Idade + color: rgba(255, 123, 2, .4) + tags: + toddler: criança pequena + kindergartener: criança em idade pré-escolar + child: criança + underage: menor de idade + teenager: adolescente (13-19) + teen: adolescente (13-19) + early teen: início da adolescência (11-15) + adult: adulto + elder: idoso + old: velho + loli: loli + shota: shota + + - name: Pele + color: rgba(255, 123, 2, .4) + tags: + white_skin: pele branca + pale_skin: pele pálida + fair_skin: pele clara + brown_skin: pele marrom + deep_skin: pele escura + dark_skin: pele escura + black_skin: pele negra + shiny_skin: pele brilhante + white_marble_glowing_skin: pele branca de mármore brilhante + tattoo: tatuagem + tan: bronzeado + tanlines: marcas de bronzeado + oil: oleoso + + - name: Corpo + color: rgba(255, 123, 2, .4) + tags: + skinny: magro + plump: cheinho + curvy: curvilíneo + gyaru: gyaru + pregnant: grávida + fat: gordo + thin: magro + slender: esbelto + glamor: glamoroso + tall: alto + petite: pequeno + chibi: chibi + muscular: musculoso + + - name: Formato do Rosto + color: rgba(255, 123, 2, .4) + tags: + slender face: rosto fino + round face: rosto redondo + oval face: rosto oval + baby face: rosto de bebê + inverted triangle face: rosto em formato de triângulo invertido + heart shaped face: rosto em formato de coração + diamond face: rosto em formato de diamante + square face: rosto quadrado + long face: rosto longo + triangular face: rosto triangular + + - name: Cabelo + color: rgba(255, 123, 2, .4) + tags: + white hair: cabelo branco + blonde hair: cabelo loiro + silver hair: cabelo prateado + grey hair: cabelo cinza + purple hair: cabelo roxo + red hair: cabelo vermelho + yellow hair: cabelo amarelo + green hair: cabelo verde + blue hair: cabelo azul + black hair: cabelo preto + brown hair: cabelo castanho + straight_hair: cabelo liso + short hair: cabelo curto + curly hair: cabelo cacheado + long hair: cabelo longo + pony-tail: rabo de cavalo + bunches: maria-chiquinha + streaked hair: cabelo com mechas + grey gradient hair: cabelo cinza gradiente + light brown hair: cabelo castanho claro + two-tone hair: cabelo bicolor + multicolored hair: cabelo multicolorido + high ponytail: rabo de cavalo alto + twintails: duas marias-chiquinhas + braided ponytail: rabo de cavalo trançado + ponytail: rabo de cavalo + short ponytail: rabo de cavalo curto + twin braids: tranças duplas + medium hair: cabelo médio + very long hair: cabelo muito longo + braided bangs: franja trançada + swept bangs: franja varrida + hair between eyes: cabelo entre os olhos + bob cut: corte bob + hime cut: corte hime + crossed bangs: franja cruzada + bangs: franja + blunt bangs: franja reta + air bangs: franja ao vento + hair wings: asas de cabelo + long bangs: franja longa + side_blunt_bangs: franja lateral reta + centre parting bangs: franja dividida ao meio + asymmetric bangs: franja assimétrica + disheveled hair: cabelo bagunçado + wavy hair: cabelo ondulado + hair in takes: cabelo preso + hair pink flowers: flores rosas no cabelo + ahoge: ahoge + antenna hair: cabelo antena + Side ponytail: rabo de cavalo lateral + forehead: testa + drill hair: cabelo em formato de broca + hair bun: coque + double bun: dois coques + messy hair: cabelo bagunçado + hair_flaps: abas de cabelo + + - name: Rosto + color: rgba(255, 123, 2, .4) + tags: + makeup: maquiagem + fundoshi: fundoshi + eyeshadow: sombra para os olhos + lipstick: batom + mascara: rímel + long_eyelashes: cílios longos + red_lips_: lábios vermelhos + facepaint: pintura facial + lipgloss: gloss labial + colored_eyelashes: cílios coloridos + blush: blush + light_blush: blush leve + anime_style_blush: blush estilo anime + nose_blush: blush no nariz + nosebleed: sangramento nasal + bruise_on_face: hematoma no rosto + facial_mark: marca facial + forehead_mark: marca na testa + anger_vein: veia de raiva + mole: pinta + mole_under_eye: pinta sob o olho + freckles: sardas + food_on_face: comida no rosto + rice_on_face: arroz no rosto + cream_on_face: creme no rosto + mustache: bigode + goatee: cavanhaque + whisker_markings: marcações de bigode + scar: cicatriz + scar_across_eye: cicatriz através do olho + smoking_pipe: cachimbo + tattoo: tatuagem + + - name: Orelhas + color: rgba(255, 123, 2, .4) + tags: + elf ears: orelhas de elfo + fake animal ears: orelhas de animal falsas + cat ears: orelhas de gato + dog ears: orelhas de cachorro + fox ears: orelhas de raposa + bunny ears: orelhas de coelho + bear ears: orelhas de urso + wolf ears: orelhas de lobo + horse ears: orelhas de cavalo + cow ears: orelhas de vaca + mouse ears: orelhas de rato + pig ears: orelhas de porco + sheep ears: orelhas de ovelha + deer ears: orelhas de veado + goat ears: orelhas de cabra + antelope ears: orelhas de antílope + rhino ears: orelhas de rinoceronte + elephant ears: orelhas de elefante + bat ears: orelhas de morcego + dragon ears: orelhas de dragão + demon ears: orelhas de demônio + angel ears: orelhas de anjo + alien ears: orelhas de alienígena + ear_blush: orelhas coradas + ear_ornament: enfeite de orelha + ear_piercing: piercing de orelha + animal_ears: orelhas de animal + ears_down: orelhas abaixadas + fake_animal_ears: orelhas de animal falsas + floppy_ears: orelhas caídas + animal_ear_fluff: pelúcia nas orelhas de animal + fox_ears: orelhas de raposa + cat_ears: orelhas de gato + lion_ears: orelhas de leão + jaguar_ears: orelhas de jaguar + tiger_ears: orelhas de tigre + dog_ears: orelhas de cachorro + coyote_ears: orelhas de coiote + bunny_ears: orelhas de coelho + horse_ears: orelhas de cavalo + pointy_ears: orelhas pontudas + long_pointy_ears: orelhas pontudas e longas + mouse_ears: orelhas de rato + raccoon_ears: orelhas de guaxinim + squirrel_ears: orelhas de esquilo + bear_ears: orelhas de urso + panda_ears: orelhas de panda + bat_ears: orelhas de morcego + robot_ears: orelhas de robô + extra_ears: orelhas extras + ears_through_headwear: orelhas através de chapéus ou acessórios de cabeça + alpaca_ears: orelhas de alpaca + horns: chifres + fake_horns: chifres falsos + dragon_horns: chifres de dragão + oni_horns: chifres de oni + antlers: galhadas + curled_horns: chifres enrolados + goat_horns: chifres de cabra + hair_on_horn: cabelo nos chifres + + - name: Sobrancelhas + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: sobrancelhas grossas + cocked eyebrow: sobrancelha arqueada + short eyebrows: sobrancelhas curtas + v-shaped eyebrows: sobrancelhas em forma de V + + - name: Olhos + color: rgba(255, 123, 2, .4) + tags: + blue eyes: Olhos azuis + red eyes: Olhos vermelhos + brown eyes: Olhos castanhos + green eyes: Olhos verdes + purple eyes: Olhos roxos + yellow eyes: Olhos amarelos + pink eyes: Olhos rosa + black eyes: Olhos pretos + aqua eyes: Olhos aqua + orange eyes: Olhos laranja + grey eyes: Olhos cinza + multicolored eyes: Olhos multicoloridos + white eyes: Olhos brancos + gradient eyes: Olhos com gradiente + closed eyes: Olhos fechados + half-closed eyes: Olhos meio fechados + crying with eyes open: Chorando de olhos abertos + narrowed eyes: Olhos semicerrados + hidden eyes: Olhos escondidos + heart-shaped eyes: Olhos em formato de coração + button eyes: Olhos de botão + cephalopod eyes: Olhos de cefalópode + eyes visible through hair: Olhos visíveis através do cabelo + glowing eyes: Olhos brilhantes + empty eyes: Olhos vazios + rolling eyes: Olhos revirados + cross eyed: Olhos cruzados + blank eyes: Olhos vazios + no eyes: Sem olhos + sparkling eyes: Olhos brilhantes + extra eyes: Olhos extras + crazy eyes: Olhos loucos + solid circle eyes: Olhos com círculo sólido + solid oval eyes: Olhos com oval sólido + uneven eyes: Olhos desiguais + blood from eyes: Sangue saindo dos olhos + eyeshadow: Sombra para os olhos + red eyeshadow: Sombra vermelha para os olhos + blue eyeshadow: Sombra azul para os olhos + purple eyeshadow: Sombra roxa para os olhos + pink eyeshadow: Sombra rosa para os olhos + green eyeshadow: Sombra verde para os olhos + bags under eyes: Bolsas sob os olhos + ringed eyes: Olhos com anéis + covered eyes: Olhos cobertos + covering eyes: Cobrindo os olhos + shading eyes: Sombreamento nos olhos + devil eyes: Olhos demoníacos + slit pupils: Pupila fendida + bloodshot eyes: Olhos vermelhos + tsurime: Olhos puxados para cima + tareme: Olhos puxados para baixo + constricted pupils: Pupila contraída + devil pupils: Pupila demoníaca + snake pupils: Pupila de cobra + pupils sparkling: Pupila brilhante + flower-shaped pupils: Pupila em formato de flor + heart-shaped pupils: Pupila em formato de coração + heterochromia: Heterocromia + color contact lenses: Lentes de contato coloridas + longeyelashes: Cílios longos + colored eyelashes: Cílios coloridos + mole under eye: Pinta abaixo do olho + light_eyes: Olhos claros + glowing_eye: Olho brilhante + shiny_eyes: Olhos brilhantes + sparkling_eyes: Olhos brilhantes + gradient_eyes: Olhos com gradiente + anime_style_eyes: Olhos estilo anime + water_eyes: Olhos de água + beautiful_detailed_eyes: Olhos lindos e detalhados + solid_oval_eyes_: Olhos oval sólido + solid_circle_pupils: Pupila com círculo sólido + blush_stickers: Adesivos de blush + heart_in_eye: Coração no olho + evil_eyes: Olhos malignos + crazy_eyes: Olhos loucos + empty_eyes: Olhos vazios + covered_eyes: Olhos cobertos + hollow_eyes: Olhos ocos + multicolored_eyes: Olhos multicoloridos + ringed_eyes: Olhos com anéis + sanpaku: Sanpaku (pupila deslocada) + mismatched_sclera: Esclera desigual + eye_relfection: Reflexo nos olhos (sem efeito) + mechanical_eye: Olho mecânico + cephalopod_eyes: Olhos de cefalópode + clock_eyes: Olhos de relógio + compound_eyes: Olhos compostos + fisheye: Olho de peixe + devil_eyes: Olhos de demônio + bloodshot_eyes: Olhos com vasos sanguíneos visíveis + blood_from_eyes: Sangue saindo dos olhos + aqua_eyes: Olhos aqua + solid_eyes: Olhos firmes + sparkling_anime_eyes: Olhos brilhantes estilo anime + blue_eyes: Olhos azuis + brown_eyes: Olhos castanhos + closed_eyes: Olhos fechados + crying_with_eyes_open: Chorando de olhos abertos + extra_eyes: Olhos extras + eye_contact: Contato visual + eye_of_horus: Olho de Hórus + eyeball: Globo ocular + eyeliner: Delineador + eyes: Olhos + glint: Brilho nos olhos + glowing_eyes: Olhos brilhantes + half-closed_eye: Olho meio fechado (um olho) + half-closed_eyes: Olhos meio fechados + horizontal_pupils: Pupila horizontal + jitome: Olhar desdenhoso + light_brown_eyes: Olhos castanho claro + no_eyes: Sem olhos desenhados + one-eyed: Olho único + reflective_eyes: Olhos reflexivos + silver_eyes: Olhos prateados + spiral_eyes: Olhos em espiral + third_eye: Terceiro olho + uneven_eyes: Olhos desiguais + flaming_eye: Olho em chamas + eyes_closed: Olhos fechados + half_closed_eyes: Olhos meio fechados + narrowed_eyes: Olhos semicerrados + squinting: Olhos semicerrados + tears: Lágrimas + sharp_eyes: Olhos afiados + slanted_eyes: Olhos inclinados + upturned_eyes: Olhos voltados para cima + cross-eyed: Olhos vesgos + hair_over_eyes: Cabelo sobre os olhos + eyes_visible_through_hair: Olhos visíveis através do cabelo + hair_over_one_eye: Cabelo sobre um olho + one_eye_covered: Um olho coberto + bags_under_eyes: Bolsas sob os olhos + eyepatch: Tapa-olho + medical_eyepatch: Tapa-olho médico + scar_across_eye: Cicatriz sobre o olho + no_blindfold: Sem venda nos olhos + no_eyepatch: Sem tapa-olho + ahegao: Ahegao + + - name: Pupila + color: rgba(255, 123, 2, .4) + tags: + pupils: Pupila + bright_pupils: Pupila brilhante + heterochromia: Heterocromia + slit_pupils: Pupila fendida / Pupila de gato + snake_pupils: Pupila de cobra + symbol-shaped_pupils: Pupila em formato de símbolo + heart-shaped_pupils: Pupila em formato de coração + diamond-shaped_pupils: Pupila em formato de diamante + star-shaped_pupils: Pupila em formato de estrela + dilated_pupils: Pupila dilatada + no_pupils: Sem pupila + ringed_eyes: Olhos com anéis + constricted_pupils: Pupila contraída (sem efeito) + star_in_eye: Estrela no olho + x-shaped_pupils: Pupila em formato de X + horizontal_pupils: Pupila horizontal + dashed_eyes: Olhos tracejados + butterfly-shaped_pupils: Pupila em formato de borboleta + rectangular_pupils: Pupila retangular + square_pupils: Pupila quadrada + dot_pupils: Pupila pontilhada + extra_pupils: Pupilas extras + mismatched_pupils: Pupilas desiguais + "+_+": Pupila em formato de estrela (sem efeito) + cross-shaped_pupils: Pupila em formato de cruz (sem efeito) + purple_pupils: Pupila roxa + orange_pupils: Pupila laranja + blue_pupils: Pupila azul + symbol_in_eye: Símbolo no olho + + - name: Nariz + color: rgba(255, 123, 2, .4) + tags: + pointed nose: Nariz pontudo + small nose: Nariz pequeno + big nose: Nariz grande + no_nose: Sem nariz + dot_nose: Pontinho no nariz + nose_bubble: Bolha no nariz + smelling: Cheirando + nose: Nariz + nosebleed: Sangramento nasal + snot: Muco + snout: Focinho + + - name: Boca + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: Boca de castanha + thick lips: Lábios grossos + puffy lips: Lábios inchados + lipstick: Batom + heart-shaped mouth: Boca em formato de coração + pout: Bico + open mouth: Boca aberta + closed mouth: Boca fechada + shark mouth: Boca de tubarão + parted lips: Lábios separados + mole under mouth: Pinta abaixo da boca + open_mouth: Boca aberta + gasping: Ofegando (boca aberta) + Slightly_open_mouth: Boca ligeiramente aberta + wavy_mouth: Boca ondulada + close_mouth: Boca fechada + dot_mouth: Pontinho na boca + no_mouth: Sem boca + gag: Mordaça + gnaw: Roendo + :3: Boca de gato + :o: Boca aberta + :>: Boca em forma de V + parted_lips: Lábios separados + bit_gag: Mordaça de morder + chestnut_mouth: Boca de castanha + cleave_gag: Mordaça de amordaçar + closed_mouth: Boca fechada + covered_mouth: Boca coberta + extra_mouth: Bocas extras + hair_in_mouth: Cabelo na boca + hair_tie_in_mouth: Prendedor de cabelo na boca + homu: Boca de biquinho + lips: Lábios + mouth: Boca + mouth_hold: Segurando com a boca + oral: Com a boca + pacifier: Chupeta + Pouted lips: Lábios franzidos + sideways_mouth: Boca desenhada de lado + spoon_in_mouth: Colher na boca + triangle_mouth: Boca em formato de triângulo + saliva: Saliva + drooling: Babando + mouth_drool: Boca com gotas de saliva + + - name: Dentes + color: rgba(255, 123, 2, .4) + tags: + teeth: Dentes + upper_teeth: Dentes superiores + fang: Presa + skin_fang: Presa de pele + round_teeth: Dentes redondos + sharp_teeth: Dentes afiados + clenched_teeth: Dentes cerrados + tongue: Língua + buck_teeth: Dentes salientes + fang_out: Presas expostas + fangs: Presas + spiked_club: Clava com espinhos + tooth: Dente + toothbrush: Escova de dentes + tusks: Presas + shark_mouth: Boca de tubarão + + - name: Língua + color: rgba(255, 123, 2, .4) + tags: + :q: Língua sobre o lábio superior + :p: Língua sobre o lábio inferior + ;p: Piscada com língua para fora + french_kiss: Beijo francês + long_tongue: Língua longa + oral_invitation: Convite oral + tongue: Língua + tongue_out: Língua para fora + uvula: Úvula + + - name: Unhas + color: rgba(255, 123, 2, .4) + tags: + fingernails: Unhas das mãos + toenails: Unhas dos pés + nail_polish: Esmalte de unhas + toenail_polish: Esmalte de unhas dos pés + black_nails: Unhas pretas + red_nails: Unhas vermelhas + pink_nails: Unhas rosa + long_fingernails: Unhas das mãos compridas + nail: Unha + multicolored_nails: Unhas multicoloridas + nail_art: Arte nas unhas + brown_vest: Colete marrom + + - name: Ombros + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: Ombros nus + collarbonea: Clavícula + armpits: Axilas + armpit_crease: Dobra da axila + + - name: Peito + color: rgba(255, 123, 2, .4) + tags: + chest: Peito + flat chest: Peito plano + small_breasts: Seios pequenos + medium breasts: Seios médios + big breasts: Seios grandes + huge breasts: Seios enormes + gigantic breasts: Seios gigantes + between breasts: Entre os seios + breasts apart: Seios separados + hanging breasts: Seios caídos + bouncing breasts: Seios saltitantes + cleavage: Decote + areola: Aréola + nipples: Mamilos + pectorals: Peitorais + large_pectorals: Peitorais grandes + unbuttoned clothes: Roupas desabotoadas + + - name: Cintura + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: Cintura estreita + slender_waist: Cintura esbelta + + - name: Abdômen + color: rgba(255, 123, 2, .4) + tags: + midriff: Abdômen + belly: Barriga + absolute_territory: Abdômen definido + inflation: Abdômen inflado + navel: Umbigo + groin: Virilha + pregnant: Grávida + + - name: Asas + color: rgba(255, 123, 2, .4) + tags: + wings: Asas + bat_wings: Asas de morcego + butterfly_wings: Asas de borboleta + black_wings: Asas negras + demon_wings: Asas de demônio + asymmetrical_wings: Asas assimétricas + detached_wings: Asas separadas do corpo + fairy_wings: Asas de fada + fake_wings: Asas falsas + fiery_wings: Asas em chamas + insect_wings: Asas de inseto + large_wings: Asas grandes + low_wings: Asas baixas + mini_wings: Asas pequenas + multicolored_wings: Asas multicoloridas + multiple_wings: Múltiplas asas + no_wings: Sem asas + winged_helmet: Capacete com asas + +- name: Abbigliamento + groups: + - name: Vestido Formal + color: rgba(230, 84, 128, .4) + tags: + suit: Terno + tuxedo: Fraque + formal_dress: Vestido formal + evening_gown: Vestido de noite + canonicals: Vestido de festa + cocktail_dress: Vestido de coquetel + gown: Vestido longo feminino + japanese_clothes: Roupas japonesas + kimono: Quimono + sleeveless_kimono: Quimono sem mangas + short_kimono: Quimono curto + print_kimono: Quimono estampado + furisode: Furisode (parte do quimono) + obi: Faixa (usada com quimono) + sash: Faixa decorativa + cheongsam: Qipao + china_dress: Qipao + print_cheongsam: Qipao estampado + pelvic_curtain: Parte frontal do qipao + wedding_dress: Vestido de noiva + uchikake: Uchikake (vestido de noiva japonês) + school_uniform: Uniforme escolar + sailor: Uniforme de marinheiro + serafuku: Uniforme de marinheiro + summer_uniform: Uniforme de verão + kindergarten_uniform: Uniforme de jardim de infância + police_uniform: Uniforme policial + naval_uniform: Uniforme naval + military_uniform: Uniforme militar + ss_uniform/nazi_uniform: Uniforme nazista + maid: Fantasia de empregada + stile_uniform: Uniforme de camareira + miko: Roupa de sacerdotisa xintoísta + overalls: Macacão + business_suit: Terno de negócio + nurse: Uniforme de enfermeira + chef_uniform: Uniforme de chef + labcoat: Jaleco + cheerleader: Uniforme de líder de torcida + band_uniform: Uniforme de banda + space_suit: Roupa espacial + leotard: Maiô + domineering: Hábito de freira + + - name: Estilo + color: rgba(230, 84, 128, .4) + tags: + china_dress: Traje chinês + chinese_style: Estilo chinês + traditional_clothes: Roupas tradicionais | Roupas étnicas + japanese_clothes: Roupas japonesas + hanten_(clothes): Hanten (japonês) + hanbok: Hanbok (roupa tradicional coreana) + korean_clothes: Roupas coreanas + western: Estilo ocidental + german_clothes: Roupas alemãs + gothic: Estilo gótico + lolita: Estilo Lolita + gothic_lolita: Estilo gótico Lolita + byzantine_fashion: Moda bizantina + Tropical: Características tropicais + indian_style: Estilo indiano + Ao_Dai: Ao Dai (uniforme vietnamita) + ainu_clothes: Roupas ainu (povo indígena do Japão) + arabian_clothes: Roupas árabes + egyptian_clothes: Roupas egípcias + costume: Fantasia + animal_costume: Fantasia de animal + bunny_costume: Fantasia de coelho + adapted_costume: Fantasia adaptada + cat_costume: Fantasia de gato + dog_costume: Fantasia de cachorro + bear_costume: Fantasia de urso + embellished_costume: Fantasia decorada + santa_costume: Fantasia de Papai Noel + halloween_costume: Fantasia de Halloween + kourindou_tengu_costume: Fantasia de Tengu de Kourindou + alternate_costume: Fantasia alternativa + costume_switch: Troca de fantasias + meme_attire: Vestimenta de meme + + - name: Roupa Casual + color: rgba(230, 84, 128, .4) + tags: + casual: Casual + loungewear: Roupas de ficar em casa + hoodie: Moletom com capuz + homewear: Roupas de casa + pajamas: Pijama + nightgown: Camisola + sleepwear: Roupa de dormir + babydoll: Babydoll + print_pajamas: Pijama estampado + polka_dot_pajamas: Pijama de bolinhas + yukata: Yukata (quimono de verão) + chinese_clothes: Roupas chinesas + hanfu: Hanfu (roupa tradicional chinesa) + Taoist robe: Roupão taoísta + robe: Roupão + robe_of_blending: Roupão misto + cloak: Capa + hooded_cloak: Capa com capuz + winter_clothes: Roupas de inverno + down jacket: Casaco de plumas + santa: Roupa de Papai Noel + harem_outfit: Roupa de harém + shrug_(clothing): Encolhimento de ombros (roupa) + + - name: Roupa Esportiva + color: rgba(230, 84, 128, .4) + tags: + sportswear: Roupas esportivas + gym_uniform: Uniforme de academia + athletic_leotard: Collant atlético + tennis_uniform: Uniforme de tênis + baseball_uniform: Uniforme de beisebol + letterman_jacket: Jaqueta colegial + volleyball_uniform: Uniforme de vôlei + biker_clothes: Roupas de ciclismo + bikesuit: Conjunto de ciclismo + wrestling_outfit: Roupa de luta livre + dougi: Roupa de artes marciais + + - name: Roupa de Banho + color: rgba(230, 84, 128, .4) + tags: + swimsuit: Maiô + swimwear: Roupa de banho + wet_swimsuit: Maiô molhado + school_swimsuit: Maiô escolar (sukumizu) + new_school_swimsuit: Novo estilo de sukimizu + old_school_swimsuit: Estilo antigo de sukimizu + competition_school_swimsuit: Maiô de competição escolar + competition_swimsuit: Roupa de banho de competição + casual_one-piece_swimsuit: Maiô de uma peça casual + front_zipper_swimsuit: Maiô com zíper frontal + highleg_swimsuit: Maiô de perna alta + one-piece_swimsuit: Maiô de uma peça + swimsuit_of_perpetual_summer: Maiô do verão perpétuo (Alter Ego de Fate/Grand Order) + bikini: Biquíni + highleg_bikini: Biquíni de cintura alta + lowleg_bikini: Biquíni de cintura baixa + slingshot_swimsuit: Maiô tipo estilingue + sailor_bikini: Biquíni estilo marinheiro + shell_bikini: Biquíni de conchas + sports_bikini: Biquíni esportivo + string_bikini: Biquíni de amarração + strapless_bikini: Biquíni sem alças + side-tie_bikini: Biquíni com amarração lateral + front-tie_bikini_top: Top de biquíni com amarração frontal + multi-strapped_bikini: Biquíni com várias tiras + thong_bikini: Biquíni fio dental + front-tie_bikini: Biquíni com amarração frontal + frilled_bikini: Biquíni com babados + o-ring_bikini: Biquíni com argola + eyepatch_bikini: Biquíni com tapa-olho + layered_bikini: Biquíni em camadas + bow_bikini: Biquíni com laço + frilled_swimsuit: Maiô com babados + polka_dot_swimsuit: Maiô de bolinhas + striped_swimsuit: Maiô listrado + striped_bikini: Biquíni listrado + plaid_bikini: Biquíni xadrez + polka_dot_bikini: Biquíni de bolinhas + print_bikini: Biquíni estampado + american_flag_bikini: Biquíni com bandeira dos Estados Unidos + german_flag_bikini: Biquíni com bandeira da Alemanha + impossible_swimsuit: Maiô com pintura corporal realista + bikini_top: Apenas o top do biquíni + bikini_top_only: Apenas o top do biquíni + bikini_top_removed: Top do biquíni removido + bikini_bottom_only: Apenas a parte de baixo do biquíni + bikini_bottom: Parte de baixo do biquíni + untied_bikini: Biquíni desamarrado + bikini_aside: Biquíni puxado para o lado + swimsuit_aside: Roupa de banho puxada para o lado + swimsuit_under_clothes: Roupa de banho por baixo das roupas + torn_swimsuit: Maiô rasgado + bikini_skirt: Saia de biquíni + swim_briefs: Sunga + swim_cap: Touca de natação + swim_trunks: Sungão + male_swimwear: Roupa de banho masculina + + - name: Uniforme + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: Uniforme adaptado + anzio_military_uniform: Uniforme militar de Anzio + anzio_school_uniform: Uniforme escolar de Anzio + aria_company_uniform: Uniforme da empresa Aria + ashford_academy_uniform: Uniforme da Academia Ashford + bc_freedom_military_uniform: Uniforme militar da BC Freedom High School + chaldea_uniform: Uniforme de Chaldea + chi-hatan_military_uniform: Uniforme militar da Academia Chi-Ha-Tan + fleur_de_lapin_uniform: Fantasia de coelhinha Fleur de Lapin + garreg_mach_monastery_uniform: Uniforme do Mosteiro de Garreg Mach + gem_uniform_(houseki_no_kuni): Uniforme das Gems (Land of the Lustrous) + hanasakigawa_school_uniform: Uniforme escolar de Hanasakigawa + hikarizaka_private_high_school_uniform: Uniforme da Escola Hikarizaka Private High School + homurahara_academy_uniform: Uniforme da Academia Homurahara + kamiyama_high_school_uniform: Uniforme da Escola Kamiyama High School + keizoku_military_uniform: Uniforme militar da Keizoku High School + kita_high_school_uniform: Uniforme da Escola Kita High School + kiyosumi_school_uniform: Uniforme da Escola Kiyosumi + luna_nova_school_uniform: Uniforme da Escola de Magia Luna Nova + meiji_schoolgirl_uniform: Uniforme de estudante da era Meiji + mitakihara_school_uniform: Uniforme da Escola Mitakihara + nami_junior_high_school_uniform: Uniforme da Escola Nami Junior High School + nanairogaoka_middle_school_uniform: Uniforme da Escola Nanairogaoka Middle School + nanamori_school_uniform: Uniforme da Escola Nanamori + naoetsu_high_school_uniform: Uniforme da Escola Naoetsu High School + national_shin_ooshima_school_uniform: Uniforme da Escola Nacional Shin Ooshima + ooarai_military_uniform: Uniforme militar de Ooarai + ooarai_school_uniform: Uniforme escolar de Ooarai + otonokizaka_school_uniform: Uniforme da Escola Otonokizaka + paradis_military_uniform: Uniforme militar de Paradis + polar_chaldea_uniform: Uniforme polar de Chaldea + pravda_military_uniform: Uniforme militar de Pravda + pravda_school_uniform: Uniforme escolar de Pravda + rabbit_house_uniform: Uniforme da Casa Coelho + raimon_soccer_uniform: Uniforme do time de futebol do Raimon + ryouou_school_uniform: Uniforme da Escola Ryouou + sailor_senshi_uniform: Uniforme das Sailor Senshi (Sailor Moon) + sakugawa_school_uniform: Uniforme da Escola Sakugawa + sakuragaoka_high_school_uniform: Uniforme da Escola Sakuragaoka High School + saunders_military_uniform: Uniforme militar de Saunders + saunders_school_uniform: Uniforme escolar de Saunders + seishou_elementary_school_uniform: Uniforme da Escola Elementar Seishou + shinda_sekai_sensen_uniform: Uniforme da Shinda Sekai Sensen + shuuchiin_academy_uniform: Uniforme da Academia Shuuchiin + shuujin_academy_uniform: Uniforme da Academia Shuujin + st._gloriana's_military_uniform: Uniforme militar de St. Gloriana + st._gloriana's_school_uniform: Uniforme escolar de St. Gloriana + starlight_academy_uniform: Uniforme da Academia Starlight + tokisadame_school_uniform: Uniforme da Escola Tokisadame + tokiwadai_school_uniform: Uniforme da Escola Tokiwadai + tomoeda_elementary_school_uniform: Uniforme da Escola Elementar Tomoeda + tsab_ground_military_uniform: Uniforme militar da TSAB Ground Forces + u.a._school_uniform: Uniforme da U.A. High School + uranohoshi_school_uniform: Uniforme da Escola Uranohoshi + yasogami_school_uniform: Uniforme da Escola Yasogami + mismatched_bikini: Biquíni descombinado + multicolored_bikini: Biquíni multicolorido + + - name: Blusa + color: rgba(230, 84, 128, .4) + tags: + blouse: Blusa feminina + white_shirt: Camisa branca + collared_shirt: Camisa com colarinho + dress_shirt: Camisa social + sailor_shirt: Camisa de marinheiro + cropped_shirt: Blusa curta + t-shirt: Camiseta + casual T-shirts: Camisetas casuais + short sleeve T-shirts: Camisetas de manga curta + off-shoulder_shirt: Blusa ombro a ombro + shrug_(clothing): Bolero (roupa) + cardigan: Cardigã + criss-cross_halter: Blusa halter com cruzamento + frilled_shirt: Blusa com babados + sweatshirt: Moletom + hawaiian_shirt: Camisa havaiana + hoodie: Moletom com capuz + Impossible shirt: Camisa impossível + kappougi: Kappougi (roupa usada na culinária) + plaid_shirt: Camisa xadrez + polo_shirt: Camisa polo + print_shirt: Camisa estampada + shirt: Camisa + sleeveless_hoodie: Moletom sem mangas + sleeveless_shirt: Camisa sem mangas + striped_shirt: Camisa listrada + tank_top: Regata + vest: Colete + waistcoat: Colete + camisole: Camisole + tied_shirt: Camisa amarrada + undershirt: Camiseta básica + crop_top: Top curto + highleg: Roupa de perna alta + clothing_cutout: Roupa com recorte + back_cutout: Blusa com recorte nas costas + cleavage_cutout: Blusa com recorte no decote + navel_cutout: Blusa com recorte no umbigo + midriff: Blusa cropped + heart_cutout: Blusa com recorte em formato de coração + torn_clothes: Roupas rasgadas + torn_shirt: Camisa rasgada + undressing: Despir-se + clothes_down: Roupas abaixadas + shirt_lift: Levantando a camisa + shirt_pull: Puxando a camisa + shirt_tucked_in: Camisa por dentro da calça + clothes_tug: Puxando as roupas + shirt_tug: Puxando a camisa + untucked_shirt: Camisa desabotoada + lifted_by_self: Levantando a própria roupa + untied: Desamarrando a roupa + open_clothes: Roupas abertas + unbuttoned shirt: Camisa desabotoada + button_gap: Espaço entre os botões + partially_unbuttoned: Parcialmente desabotoado + partially_unzipped: Parcialmente deszipado + clothes_removed: Roupas removidas + shirt_removed: Camisa removida + wardrobe_error: Problema com a roupa + undersized_clothes: Roupas apertadas + tight: Roupas apertadas + wedgie: Calcinha enfiada (por causa da roupa) + wardrobe_malfunction: Problema com a roupa (como rasgo) + taut_shirt: Camisa esticada + taut_clothes: Roupas esticadas + underbust: Roupa abaixo do busto + oversized_clothes: Roupas largas + oversized_shirt: Camisa larga + borrowed_garments: Roupas emprestadas do namorado + strap_slip: Alça da roupa escorregando (expondo) + wet_shirt: Camisa molhada + clothes_theft: Roubo de roupas + + - name: Casaco + color: rgba(230, 84, 128, .4) + tags: + blazer: Blazer + overcoat: Sobretudo + double-breasted: Casaco de botões duplos + long_coat: Casaco longo + haori: Haori + winter_coat: Casaco de inverno + hooded_coat: Casaco com capuz + fur_coat: Casaco de pele + fur-trimmed_coat: Casaco com acabamento em pele + duffel_coat: Casaco de lã grossa + fishnet_top: Top de rede + parka: Parka + jacket: Casaco + jacket_partially_removed: Casaco parcialmente removido + jacket_removed: Casaco removido + open_jacket: Casaco aberto (com pernas afastadas) + cropped_jacket: Casaco curto + track_jacket: Casaco de treino + hooded_track_jacket: Casaco de treino com capuz + military_jacket: Casaco militar + camouflage_jacket: Casaco camuflado + leather_jacket: Jaqueta de couro + letterman_jacket: Jaqueta colegial + bomber_jacket: Jaqueta bomber + denim_jacket: Jaqueta jeans + loating_jacket: Jaqueta casual + fur-trimmed_jacket: Jaqueta com acabamento em pele + two-tone_jacket: Jaqueta bicolor + trench_coat: Trench coat + furisode: Furisode (parte do quimono) + windbreaker: Corta-vento + raincoat: Capa de chuva + hagoromo: Hagoromo + tunic: Túnica + cape: Capa + capelet: Capa curta + winter_clothes: Roupas de inverno + sweater: Suéter + pullover_sweaters: Suéter de gola alta + ribbed_sweater: Suéter de gola canelada + sweater_vest: Colete de tricô + backless_sweater: Suéter sem costas + aran_sweater: Suéter de tricô irlandês + beige_sweater: Suéter bege + brown_sweater: Suéter marrom + hooded_sweater: Suéter com capuz + off-shoulder_sweater: Suéter de ombros de fora + striped_sweater: Suéter listrado + virgin_killer_sweater: Suéter "assassino de virgens" + down_jacket: Casaco de plumas + puffer_jacket: Casaco acolchoado + + - name: Outros + color: rgba(230, 84, 128, .4) + tags: + transparent: Transparente + burnt_clothes: Roupas queimadas + dissolving_clothes: Roupas dissolvendo + dirty_clothes: Roupas sujas + expressive_clothes: Roupas expressivas + impossible_clothes: Roupas com nível de envolvimento irreal + living_clothes: Roupas vivas + leotard_under_clothes: Collant sob as roupas + multicolored_clothes: Roupas multicoloridas + ofuda_on_clothes: Ofuda nas roupas + wringing_clothes: Torcendo as roupas + clothesline: Varal de roupas + shiny_clothes: Roupas brilhantes + kariginu: Kariginu + front-tie_top: Top amarrado na frente + jacket_on_shoulders: Casaco nos ombros + short_jumpsuit: Macacão curto + harness: Arnês + rigging: Equipamento + aiguillette: Aiguillette + + - name: Cintura + color: rgba(230, 84, 128, .4) + tags: + apron: Avental + waist_apron: Avental de cintura + maid_apron: Avental de empregada + bow tied at the waist: Laço amarrado na cintura + waist_cape: Capa de cintura + clothes_around_waist: Roupas ao redor da cintura + jacket_around_waist: Casaco amarrado na cintura + sweater_around_waist: Suéter amarrado na cintura + loincloth: Tanga + bustier: Corselete + corset: Corset + girdle: Cinta + + - name: Armadura + color: rgba(230, 84, 128, .4) + tags: + armor: Armadura + bikini_armor: Armadura de biquíni + full_armor: Armadura completa + plate_armor: Armadura de placas + japanese_armor: Armadura japonesa + kusazuri: Kusazuri + power_armor: Armadura de energia + mecha: Mecha + helmet: Capacete + kabuto: Kabuto (capacete japonês) + off-shoulder_armor: Armadura sem ombreiras + shoulder_armor: Ombreiras + muneate: Muneate (proteção para arco japonês) + breastplate: Peitoral + faulds: Faulds + greaves: Grevas + shin_guards: Caneleiras + armored_boots: Botas com armadura + + - name: Saia + color: rgba(230, 84, 128, .4) + tags: + dress: Vestido + microdress: Microvestido + long_dress: Vestido longo + off-shoulder_dress: Vestido com ombros de fora + strapless_dress: Vestido sem alças + backless_dress: Vestido com as costas de fora + halter_dress: Vestido com alças ao redor do pescoço + sundress: Vestido de alças finas (usado em dias quentes) + sleeveless_dress: Vestido sem mangas + sailor_dress: Vestido estilo marinheiro + summer_dress: Vestido de verão + china_dress: Vestido chinês + pinafore_dress: Vestido avental + sweater_dress: Vestido de suéter + wedding_dress: Vestido de noiva + armored_dress: Vestido com armadura + frilled_dress: Vestido com babados + lace-trimmed_dress: Vestido com acabamento em renda + collared_dress: Vestido com colarinho + fur-trimmed_dress: Vestido com acabamento em pele + layered_dress: Vestido em camadas + pleated_dress: Vestido plissado + taut_dress: Vestido justo + pencil_dress: Vestido lápis + impossible_dress: Vestido extremamente justo + multicolored_dress: Vestido multicolorido + striped_dress: Vestido listrado + checkered_skirt: Saia xadrez + plaid_dress: Vestido xadrez + ribbed_dress: Vestido com gola canelada + polka_dot_dress: Vestido de bolinhas + print_dress: Vestido estampado + vertical-striped_dress: Vestido listrado na vertical + see-through_dress: Vestido transparente + skirt: Saia + microskirt: Minissaia + miniskirt: Minissaia + skirt_suit: Conjunto de saia + bikini_skirt: Saia de biquíni + pleated_skirt: Saia plissada + pencil_skirt: Saia lápis + bubble_skirt: Saia balonê + tutu: Tutu + ballgown: Vestido de baile + pettiskirt: Saia de armação (infantil) + showgirl_skirt: Saia de showgirl + Medium length skirt: Saia de comprimento médio + beltskirt: Saia com cinto + denim_skirt: Saia jeans + suspender_skirt: Saia suspensório + skirt_set: Conjunto de saia com blusa + long_skirt: Saia longa + summer_long_skirt: Saia longa de verão + overskirt: Saia sobreposta + hakama_skirt: Saia hakama + high-waist_skirt: Saia de cintura alta + kimono_skirt: Saia de quimono + suspender_long_skirt: Saia suspensório longa + chiffon_skirt: Saia de chiffon + frilled_skirt: Saia com babados + fur-trimmed_skirt: Saia com acabamento em pele + lace_skirt: Saia de renda + lace-trimmed_skirt: Saia com acabamento em renda + ribbon-trimmed_skirt: Saia com acabamento em fita + layered_skirt: Saia em camadas + print_skirt: Saia estampada + multicolored_skirt: Saia multicolorida + striped_skirt: Saia listrada + vertical-striped_skirt: Saia listrada na vertical + plaid_skirt: Saia xadrez + flared_skirt: Saia evasê + floral_skirt: Saia floral + + - name: Interação com saia + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: Segurando a saia com elegância + skirt_tug: Puxando a barra da saia + dress_tug: Pressionando a barra do vestido + skirt_lift: Levantando a saia + skirt_around_one_leg: Saia pendurada em uma perna + skirt_removed: Saia removida + dress_removed: Vestido removido + open_skirt: Saia aberta + + - name: Calças + color: rgba(230, 84, 128, .4) + tags: + dress_bow: Laço no vestido + dressing_another: Vestindo outra pessoa + shorts_under_skirt: Shorts por baixo da saia + side_slit: Fenda lateral + shorts: Shorts + micro_shorts: Microshorts + short_shorts: Shorts curtos + hot_pants: Hot pants + cutoffs: Shorts desfiados + striped_shorts: Shorts listrados + suspender_shorts: Shorts suspensório + denim_shorts: Shorts jeans + puffy_shorts: Shorts bufantes + dolphin_shorts: Shorts estilo golfinho + dolfin_shorts: Shorts estilo golfinho + tight_pants: Calças justas + crotchless_pants: Calças sem entrepernas (justas) + track_pants: Calças de treino + yoga_pants: Calças de ioga + bike_shorts: Shorts de ciclismo + gym_shorts: Shorts de ginástica + pants: Calças + puffy_pants: Calças bufantes + pumpkin_pants: Calças estilo abóbora + hakama_pants: Calças hakama + harem_pants: Calças harem + bloomers: Calças estilo balão + buruma: Calças estilo balão (versão feminina) + jeans: Calças jeans + cargo_pants: Calças cargo + camouflage_pants: Calças camufladas + capri_pants: Calças capri + chaps: Chaps (calças de couro com pernas largas) + jumpsuit: Macacão + lowleg_pants: Calças de cintura baixa + plaid_pants: Calças xadrez + single_pantsleg: Calça de perna única + striped_pants: Calças listradas + + - name: Interação com calças + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: Calças assimétricas + leotard_aside: Deslocando a parte inferior do collant para o lado + open_fly: Zíper aberto das calças + pants_down: Calças abaixadas + pants_rolled_up: Calças dobradas + pants_tucked_in: Calças enfiadas + torn_jeans: Calças jeans rasgadas + torn_pants: Calças rasgadas + torn_shorts: Shorts rasgados + + - name: Meias + color: rgba(230, 84, 128, .4) + tags: + bodystocking: Meia-calça + pantyhose: Meia-calça + leggings: Leggings + legwear: Meia-calça (termo geral para meias-calças ou meias longas) + thighhighs: Meias até a coxa + kneehighs: Meias até o joelho + socks: Meias curtas + bare_legs: Pernas nuas + black_bodystocking: Meia-calça preta + white_bodystocking: Meia-calça branca + stocking_under_clothes: Meia sob as roupas + black_pantyhose: Meia-calça preta + white_pantyhose: Meia-calça branca + thighband_pantyhose: Meia-calça com faixa na coxa + pantylines: Meia-calça justa (destacando as linhas) + single_leg_pantyhose: Meia-calça em uma perna só + panties_under_pantyhose: Calcinha por baixo da meia-calça + fishnets: Meia arrastão + stirrup_legwear: Meia-calça com alça no pé + toeless_legwear: Meia-calça sem dedos + mismatched_legwear: Meia-calça de cores diferentes + two-tone_legwear: Meia-calça bicolor + asymmetrical_legwear: Meia-calça assimétrica + uneven_legwear: Meias de comprimentos diferentes + white_thighhighs: Meias até a coxa brancas + black_thighhighs: Meias até a coxa pretas + pink_thighhighs: Meias até a coxa rosa + suspenders: Suspensórios + garter_straps: Alças de suspensório + torn_legwear: Meia-calça rasgada + torn_thighhighs: Meias até a coxa rasgadas + see-through_legwear_: Meia-calça transparente + frilled_legwear: Meia-calça com babados + lace-trimmed_legwear: Meia-calça com acabamento em renda + seamed_legwear: Meia-calça com costura + back-seamed_legwear: Meia-calça com costura atrás + animal_ear_legwear: Meia-calça com orelhas de animal + striped_legwear: Meia-calça listrada + vertical-striped_legwear: Meia-calça listrada na vertical + polka_dot_legwear: Meia-calça de bolinhas + print_legwear: Meia-calça estampada + legwear_under_shorts: Meia-calça usada por baixo de shorts + over-kneehighs: Meias acima do joelho + bobby_socks: Meias curtas brancas + tabi: Tabi (meias japonesas com separação para o dedão) + loose_socks: Meias folgadas + ankle_socks: Meias de tornozelo + leg_warmers: Polainas + single_sock: Meia curta única + striped_socks: Meias listradas + + - name: Interação com meias + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: Meias com recorte + thighhighs_under_boots: Meias até a coxa usadas com botas + adjusting_legwear: Ajustando a meia-calça + pantyhose_pull: Puxando a meia-calça para baixo + socks_removed: Removendo as meias + sock_pull: Puxando a meia (curta) + thighhighs_pull: Puxando a meia até a coxa + + - name: Outros + color: rgba(230, 84, 128, .4) + tags: + garters: Ligas + leg_garter: Liga da perna|Ligas + garter_straps: Alças de liga + thigh_strap: Tira da coxa + thigh_ribbon: Fita da coxa + leg_ribbon: Fita da perna + bandaid_on_leg: Band-Aid na perna + bandaged_leg: Perna enfaixada + ankle_lace-up: Amarração no tornozelo + thigh_holster: Coldre de coxa + bandaid_on_knee: Band-Aid no joelho + argyle_legwear: Meias com padrão argyle + bow_legwear: Meias com laço + arm_garter: Ligas de braço + + - name: Material + color: rgba(230, 84, 128, .4) + tags: + armored: Blindado + canvas: Lona + denim: Jeans + fluffy: Felpudo + fur: Pele + latex: Látex + leather: Couro + see-through: Transparente + spandex: Spandex + tight: Justo + + - name: Decoração + color: rgba(230, 84, 128, .4) + tags: + frilled: Babado + center_frills: Babados centrais + crease: Amassado + layered: Camadas + lace: Renda + fur_trim: Acabamento de pele + fur-trimmed: Com acabamento de pele + fine_fabric_emphasis: Ênfase em tecido fino + latex_thighhighs: Meias coxa de látex + see-through_thighhighs: Meias coxa transparentes + ass_cutout: Roupa com recorte nas nádegas + asymmetrical_clothes: Roupas assimétricas + back_bow: Laço nas costas + costume_switch: Troca de figurino + cross-laced_clothes: Roupas com renda cruzada + double_vertical_stripe: Roupas com duas listras verticais + halter_top: Top estilo halter + multicolored_legwear: Roupas para pernas multicoloridas + navy_blue_legwear: Roupas para pernas azul-marinho + nontraditional_miko: Vestimenta miko não tradicional + side_cutout: Roupa com recorte lateral + side_slit: Roupa com fenda lateral + sideless_outfit: Roupa sem laterais + single_kneehigh: Kneehigh único + single_vertical_stripe: Roupa com listra vertical única + turtleneck: Gola alta + two-sided_fabric: Roupa com tecido de dois lados + o-ring: Roupa com anel em forma de "O" + o-ring_top: Top com anel em forma de "O" + fringe_trim: Acabamento de franjas + loose_belt: Cinto folgado + pom_pom_(clothes): Enfeite de pom-pom (roupa) + drawstring: Cordão de roupa + full-length_zipper: Zíper de comprimento total + gathers: Pregas + gusset: Painel + breast_pocket: Bolso no peito + + - name: Padrão + color: rgba(230, 84, 128, .4) + tags: + argyle: Argyle + checkered: Xadrez + colored_stripes: Listras coloridas + diagonal_stripes: Listras diagonais + horizontal_stripes: Listras horizontais + multicolored_stripes: Listras multicoloridas + polka_dot_: Estampa de bolinhas + ribbed: Estampado em relevo + striped: Listrado + unmoving_pattern: Padrão imóvel + vertical_stripes: Listras verticais + plaid: Tartan + animal_print: Estampa animal + cat_print: Estampa de gato + bear_print: Estampa de urso + bird_print: Estampa de pássaro + bunny_print: Estampa de coelho + cow_print: Estampa de vaca + dragon_print: Estampa de dragão + fish_print: Estampa de peixe + frog_print: Estampa de sapo + shark_print: Estampa de tubarão + snake_print: Estampa de cobra + zebra_print: Estampa de zebra + tiger_print: Estampa de tigre + leopard_print: Estampa de leopardo + jaguar_print: Estampa de onça + bat_print: Estampa de morcego + aardwolf_print: Estampa de lobo-da-terra + african_wild_dog_print: Estampa de cão selvagem africano + cheetah_print: Estampa de chita + dog_print: Estampa de cachorro + fox_print: Estampa de raposa + giraffe_print: Estampa de girafa + panda_print: Estampa de panda + sand_cat_print: Estampa de gato-do-deserto + whale_print: Estampa de baleia + white_tiger_print: Estampa de tigre branco + goldfish_print: Estampa de peixe dourado + wing_print: Estampa de asa + spider_web_print: Estampa de teia de aranha + butterfly_print: Estampa de borboleta + floral_print: Estampa floral + leaf_print: Estampa de folha + clover_print: Estampa de trevo + maple_leaf_print: Estampa de folha de bordo + rose_print: Estampa de rosa + strawberry_print: Estampa de morango + cherry_print: Estampa de cereja + bamboo_print: Estampa de bambu + carrot_print: Estampa de cenoura + hibiscus_print: Estampa de hibisco + jack-o'-lantern_print: Estampa de abóbora + petal_print: Estampa de pétala + sunflower_print: Estampa de girassol + watermelon_print: Estampa de melancia + sky_print: Estampa de céu + cloud_print: Estampa de nuvem + lightning_bolt_print: Estampa de raio + rainbow_print: Estampa de arco-íris + snowflake_print: Estampa de flocos de neve + starry_sky_print: Estampa de céu estrelado + crescent_print: Estampa de lua crescente + star_print: Estampa de estrela + star_(symbol): Símbolo de estrela + moon_print: Estampa de lua + sun_print: Estampa de sol + character_print: Estampa de personagem + clothes_writing_: Escrita em roupas + anchor_print: Estampa de âncora + cherry_blossom_print: Estampa de flor de cerejeira + musical_note_print: Estampa de nota musical + triangle_print: Estampa de triângulo + arrow_print: Estampa de seta + wave_print: Estampa de onda + peace_symbol: Símbolo da paz (☮) (usado por Jotaro Kujo em roupas) + heart_print: Estampa de coração + flame_print: Estampa de chama + hitodama_print: Estampa de hitodama + paw_print: Estampa de pata + skeleton_print: Estampa de esqueleto + skull_print: Estampa de caveira + sparkle_print: Estampa brilhante + yin_yang_print: Estampa de yin-yang + cross_print: Padrão com cruz + camoflage: Camuflagem + flag_print: Estampa de bandeira + bone_print: Estampa de osso + ghost_print: Estampa de fantasma + mushroom_print: Estampa de cogumelo + onigiri_print: Estampa de onigiri + cat_ear: Modelo de orelha de gato + cat_ear_cutout: Modelo de orelha de gato vazada + + - name: Sapatos + color: rgba(230, 84, 128, .4) + tags: + barefoot: Descalço + no_shoes: Sem sapatos + shoes_removed: Sapatos removidos + single_shoe: Sapato único + the_only_shoe: O único sapato + black_loafers: Mocassins pretos + shoes: Tênis + uwabaki: Sapatos internos + platform_footwear: Calçado plataforma + high_heels: Saltos altos + stiletto_heels: Saltos agulha + strappy_heels: Saltos com tiras + platform_heels_: Saltos plataforma + rudder_footwear: Calçado de leme + sandals: Sandálias + barefoot_sandals: Sandálias descalças + clog_sandals: Sandálias de tamanco + geta: Geta (sandálias japonesas) + slippers: Chinelos + skates: Patins + roller_skates: Patins de rodas + animal_feet: Patas de animais + animal_slippers: Chinelos de animais + anklet: Tornozeleira + shackles: Algemas + brown_footwear: Calçado marrom + cross-laced_footwear: Calçado com amarração cruzada + loafers: Mocassins + mary_janes: Sapatos Mary Jane + mismatched_footwear: Sapatos descombinados + pointy_footwear: Calçado pontudo + pumps: Sapatos de salto baixo + sandals_removed: Sandálias removidas + shoe_soles: Solas de sapato + shoelaces: Cadarços + sneakers: Tênis + winged_footwear: Calçado com asas + zouri: Zouri (sapatos japoneses) + + - name: Botas + color: rgba(230, 84, 128, .4) + tags: + boots: Botas + boots_removed: Botas removidas + thigh_boots: Botas acima do joelho + knee_boots: Botas até o joelho + cross-laced_footwear: Calçado com amarração cruzada + ankle_boots: Botas de tornozelo + high_heel_boots: Botas de salto alto + toeless_boots: Botas sem dedos + lace-up_boots: Botas com amarração + fur-trimmed_boots: Botas com acabamento de pele + snow_boots: Botas de neve + anklet: Tornozeleira + rubber_boots: Botas de borracha + santa_boots: Botas de Papai Noel + leather_boots: Botas de couro + thighhighs_under_boots: Meias coxa sob as botas + combat_boots: Botas de combate + doc_martens: Botas Doc Martens + rain_boots: Botas de chuva + belt_boots: Botas com cinto + fur_boots: Botas de pele de cano curto + single_boot: Uma bota única + + - name: Solas de sapato + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: Solas de sapato + arched_soles: Solas arqueadas + paw_print_soles: Solas com estampa de pata + horseshoe: Ferradura + + - name: Gola + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: Gola marinheiro + fur_collar: Gola de pele + frilled_collar: Gola com babados + popped_collar: Gola levantada + choker: Gargantilha + black_choker: Gargantilha preta + belt_collar: Gola com cinto + frilled_choker: Gargantilha com babados + neckerchief: Lenço no pescoço + red_neckerchief: Lenço vermelho no pescoço + necktie: Gravata + short_necktie: Gravata curta + white_necktie: Gravata branca + bowtie: Gravata borboleta + headphones_around_neck: Fones de ouvido no pescoço + goggles_around_neck: Óculos de proteção no pescoço + neck_bell: Sino no pescoço + neck_ruff: Gola franzida + v-neck: Decote em V + towel_around_neck: Toalha no pescoço + loose_necktie: Gravata folgada + neck_tattoo: Tatuagem no pescoço + ascot: Ascot + ribbon_choker: Gargantilha de fita + maebari/pasties: Maebari/pasties (acessórios para os seios) + latex: Látex + torn_clothes: Roupas rasgadas + iron_cross: Cruz de ferro + chinese_knot: Nó chinês + cross_necklace: Colar com cruz + bead_necklace: Colar de contas + pearl_necklace: Colar de pérolas + heart_necklace: Colar de coração + carrot_necklace: Colar de cenoura + chain_necklace: Colar de corrente + magatama_necklace: Colar de magatama + tooth_necklace: Colar de dente + key_necklace: Colar de chave + anchor_necklace: Colar de âncora + skull_necklace: Colar de caveira + shell_necklace: Colar de concha + gold_necklace: Colar de ouro + crescent_necklace: Colar de lua crescente + ring_necklace: Colar de anel + feather_necklace: Colar de pena + bone_necklace: Colar de osso + ankh_necklace: Colar de ankh + multiple_necklaces: Múltiplos colares + bullet_necklace: Colar de bala + holding_necklace: Segurando um colar + necklace_removed: Colar removido + brown_neckwear: Acessório marrom para o pescoço + checkered_neckwear: Acessório quadriculado para o pescoço + diagonal-striped_neckwear: Acessório com listras diagonais para o pescoço + halterneck: Halterneck + mole_on_neck: Pinta no pescoço + neck: Pescoço + neck_ribbon: Fita amarrada no pescoço + neck_ring: Anel no pescoço + necklace: Colar + plaid_neckwear: Acessório xadrez para o pescoço + plunging_neckline: Decote profundo + print_neckwear: Acessório estampado para o pescoço + sleeveless_turtleneck: Suéter sem mangas com gola alta + star_necklace: Colar de estrela + striped_neckwear: Acessório listrado para o pescoço + turtleneck_sweater: Suéter de gola alta + undone_necktie: Gravata desamarrada + whistle_around_neck: Apito pendurado no pescoço + + - name: Cachecol + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: Cachecol xadrez + striped_scarf: Cachecol listrado + print_scarf: Cachecol estampado + vertical-striped_scarf: Cachecol de listras verticais + polka_dot_scarf: Cachecol de bolinhas + argyle_scarf: Cachecol argyle + beige_scarf: Cachecol bege + scarf_bow: Laço de cachecol + fur_scarf: Cachecol de pele + naked_scarf: Cachecol nu + multicolored_scarf: Cachecol multicolorido + floating_scarf: Cachecol flutuante + long_scarf: Cachecol longo + arm_scarf: Cachecol de braço + scarf_on_head: Cachecol na cabeça + scarf_over_mouth: Cachecol sobre a boca + scarf_removed: Cachecol removido + adjusting_scarf: Ajustando o cachecol + holding_scarf: Segurando o cachecol + scarf_pull: Puxando o cachecol + brown_scarf: Cachecol marrom + scarf: Cachecol + + - name: Óculos + color: rgba(230, 84, 128, .4) + tags: + glasses: Óculos + eyewear: Óculos + monocle: Monóculo + under-rim_eyewear: Óculos de aro inferior + rimless_eyewear: Óculos sem aro + semi-rimless_eyewear: Óculos semiaro + red-framed_eyewear: Óculos com armação vermelha + round_eyewear: Óculos redondos + black-framed_eyewear: Óculos com armação preta + tinted_eyewear: Óculos coloridos + medical_eyepatch: Tapa-olho médico + bandage_over_one_eye: Bandagem sobre um olho + crooked_eyewear: Óculos tortos + eyewear_removed: Óculos removidos + sunglasses: Óculos de sol + goggles: Óculos de proteção + Blindfold: Venda nos olhos + eyepatch: Tapa-olho + visor: Viseira + bespectacled: De óculos + blue-framed_eyewear: Óculos com armação azul + brown-framed_eyewear: Óculos com armação marrom + coke-bottle_glasses: Óculos com lentes grossas como uma garrafa de Coca-Cola + no_eyewear: Sem óculos + opaque_glasses: Óculos opacos + over-rim_eyewear: Óculos de aro superior + + - name: Máscara + color: rgba(230, 84, 128, .4) + tags: + mask: Máscara + half_mask: Meia máscara + masked: Mascaramento + mask_lift: Levantando a máscara + mask_on_head: Máscara na cabeça + mask_removed: Máscara removida + mouth_mask: Máscara para boca + surgical_mask: Máscara cirúrgica + plague_doctor_mask: Máscara de médico da peste + gas_mask: Máscara de gás + visor: Viseira + helmet: Capacete + fox_mask: Máscara de raposa + diving_mask: Máscara de mergulho + diving_mask_on_head: Máscara de mergulho na cabeça + oni_mask: Máscara de oni + tengu_mask: Máscara de tengu + ninja_mask: Máscara de ninja + skull_mask: Máscara de caveira + hockey_mask: Máscara de hóquei + bird_mask: Máscara de pássaro + stone_mask: Máscara de pedra + horse_mask: Máscara de cavalo + masquerade_mask: Máscara de baile de máscaras + domino_mask: Máscara de dominó + + - name: Braço + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: Mangas compridas + short_sleeves: Mangas curtas + wide_sleeves: Mangas largas + furisode: Furisode + detached_sleeves: Mangas destacáveis + single_sleeve: Manga única + sleeveless: Sem manga + asymmetrical_sleeves: Mangas assimétricas + puffy_sleeves: Mangas bufantes + puffy_long_sleeves: Mangas bufantes longas + puffy_short_sleeves: Mangas bufantes curtas + frilled_sleeves: Mangas com babados + juliet_sleeves: Mangas estilo Julieta + bandaged_arm: Braço enfaixado + raglan_sleeves: Mangas raglan + vambraces: Braçadeiras + layered_sleeves: Mangas em camadas + fur-trimmed_sleeves: Mangas com acabamento de pele + see-through_sleeves: Mangas transparentes + torn_sleeves: Mangas rasgadas + sleeves_past_fingers: Mangas que passam dos dedos + sleeves_past_wrists: Mangas que passam dos pulsos + sleeves_past_elbows: Mangas que passam dos cotovelos + sleeves_pushed_up: Mangas dobradas + arm_out_of_sleeve: Braço fora da manga + uneven_sleeves: Mangas irregulares + mismatched_sleeves: Mangas diferentes + sleeve_rolled_up: Manga enrolada + sleeves_rolled_up: Mangas enroladas + feather-trimmed_sleeves: Mangas com acabamento de penas + hands_in_opposite_sleeves: Mãos em mangas opostas + lace-trimmed_sleeves: Mangas com acabamento de renda + pinching_sleeves: Beliscando as mangas + puffy_detached_sleeves: Mangas bufantes destacáveis + ribbed_sleeves: Mangas com nervuras + single_detached_sleeve: Manga única não destacada + sleeves_folded_up: Mangas dobradas + striped_sleeves: Mangas listradas + wrist_cuffs: Punhos das mangas + armband: Braçadeira + armlet: Braçadeira + + - name: Mão + color: rgba(230, 84, 128, .4) + tags: + bandage: Bandagem + leash: Coleira + arm_tattoo: Tatuagem no braço + number_tattoo: Tatuagem de número + bead_bracelet: Pulseira de contas + bracelet: Pulseira + flower_bracelet: Pulseira de flores + spiked_bracelet: Pulseira com espinhos + wrist_cuffs: Braceletes de pulso + wristband: Faixa de pulso + bracer: Braçadeira + cuffs: Punhos + bound_wrists: Punhos amarrados + wrist_scrunchie: Elástico de pulso + handcuffs: Algemas + shackles: Grilhões + chains: Correntes + chain_leash: Corrente com coleira + + - name: Luva + color: rgba(230, 84, 128, .4) + tags: + gloves: Luvas + gloves_removed: Luvas removidas + no_gloves: Sem luvas + single_glove: Luva única + single_elbow_glove: Luva única no cotovelo + long_gloves: Luvas compridas + elbow_gloves: Luvas de cotovelo + bridal_gauntlets: Luvas de noiva + half_gloves: Luvas curtas + fingerless_gloves: Luvas sem dedos + partially_fingerless_gloves: Luvas parcialmente sem dedos + paw_gloves: Luvas de patas + mittens: Luvas sem dedos + baseball_mitt: Luva de beisebol + fur-trimmed_gloves: Luvas com acabamento de pele + latex_gloves: Luvas de látex + lace-trimmed_gloves: Luvas com acabamento de renda + leather_gloves: Luvas de couro + frilled_gloves: Luvas com babados + mismatched_gloves: Luvas diferentes + multicolored_gloves: Luvas multicoloridas + asymmetrical_gloves: Luvas assimétricas + brown_gloves: Luvas marrons + oven_mitts: Luvas de forno + print_gloves: Luvas estampadas + striped_gloves: Luvas listradas + torn_gloves: Luvas rasgadas + + - name: Brinco + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: Brincos de cruz + crystal_earrings: Brincos de cristal + earrings: Brincos + flower_earrings: Brincos de flores + heart_earrings: Brincos de coração + hoop_earrings: Brincos de argola + multiple_earrings: Múltiplos brincos + pill_earrings: Brincos em formato de pílula + single_earring: Brinco único + skull_earrings: Brincos de caveira + star_earrings: Brincos de estrela + + - name: Acessório de cabeça + color: rgba(230, 84, 128, .4) + tags: + halo: Halo + mechanical_halo: Halo mecânico + headwear: Acessório de cabeça + headpiece: Acessório de cabeça + headwear_removed: Acessório de cabeça removido + head_wreath: Coroa de flores + crown: Coroa + mini_crown: Mini coroa + tiara: Tiara + diadem: Diadema + tilted_headwear: Acessório de cabeça inclinado + head_fins: Barbatanas de cabeça + maid_headdress: Touca de empregada + bridal_veil: Véu de noiva + headband: Faixa de cabeça + helmet: Capacete + alternate_headwear: Acessório de cabeça alternativo + fur-trimmed_headwear: Acessório de cabeça com acabamento de pele + goggles_on_headwear: Óculos sobre o acessório de cabeça + earphones: Fones de ouvido + earmuffs: Protetores auriculares + ears_through_headwear: Orelhas através do acessório de cabeça + xx_on_head: XX na cabeça + leaf_on_head: Folha na cabeça + topknot: Coque + suigintou: Cabeça de mercúrio + triangular_headpiece: Acessório de cabeça triangular + forehead_protector: Protetor de testa + radio_antenna: Antena de rádio + animal_hood: Capuz de animal + arrow_(symbol): Símbolo de flecha + axe: Machado + bald: Careca + bandana: Bandana + bob_cut: Corte bob + bone: Osso + bowl_cut: Corte tigela + circlet: Diadema + double_bun: Coque duplo + double_dildo: Dildo duplo + drill: Broca + faucet: Torneira + hachimaki: Hachimaki + hair_behind_ear: Cabelo atrás da orelha + hair_bell: Sino no cabelo + hair_bun: Coque + hair_down: Cabelo solto + hair_flaps: Abas de cabelo + hair_flip: Cabelo jogado para trás + hair_flower: Flor no cabelo + hair_spread_out: Cabelo espalhado + hair_up: Cabelo preso + helm: Com capacete + helmet_removed: Capacete removido + horned_helmet: Capacete com chifres + japari_bun: Pão japari + kerchief: Lenço + mami_mogu_mogu: Mami Mogu Mogu + mob_cap: Touca feminina + one_side_up: Cabelo preso de um lado + owl: Coruja + pier: Pier + pillow: Travesseiro + raised_fist: Punho erguido + skull_and_crossbones: Caveira e ossos cruzados + stone: Pedra + turban: Turbante + twin_drills: Duas mechas + updo: Penteado preso + wet_hair: Cabelo molhado + headdress: Enfeite de cabeça + adjusting_headwear: Ajustando o acessório de cabeça + bear_hair_ornament: Ornamento de cabelo de urso + brown_headwear: Acessório de cabeça marrom + horned_headwear: Acessório de cabeça com chifres + horns_through_headwear: Chifres através do acessório de cabeça + no_headwear: Sem acessório de cabeça + object_on_head: Objeto na cabeça + print_headwear: Acessório de cabeça estampado + bone_hair_ornament: Ornamento de cabelo em forma de osso + bunny_hair_ornament: Ornamento de cabelo de coelho + horn_ornament: Chifre com ornamento + animal_on_head: Animal na cabeça + behind-the-head_headphones: Fones de ouvido atrás da cabeça + bird_on_head: Pássaro na cabeça + cat_ear_headphones: Fones de ouvido com orelhas de gato + cat_on_head: Gato na cabeça + eyewear_on_head: Óculos na cabeça + forehead: Testa + forehead_jewel: Joia na testa + forehead_kiss: Beijo na testa + forehead_mark: Marca na testa + forehead-to-forehead: Testa com testa + goggles_on_head: Óculos na cabeça + head: Cabeça + head_bump: Protuberância na cabeça + head_down: Cabeça baixa + head_mounted_display: Display montado na cabeça + head_out_of_frame: Cabeça fora do quadro + head_rest: Apoio para a cabeça + head_tilt: Inclinação da cabeça + head_wings: Asas na cabeça + headgear: Acessório de cabeça (com elementos de ficção científica) + headphones: Fones de ouvido + heads-up_display: Display de cabeça erguida + headset: Fone de ouvido com suporte na cabeça + inter_headset: Conector neural EVA + on_head: Na cabeça + person_on_head: Pessoa na cabeça + single_head_wing: Asa única na cabeça + + - name: Chapéu + color: rgba(230, 84, 128, .4) + tags: + hat: Chapéu + no_hat: Sem chapéu + large_hat: Chapéu grande + mini_hat: Mini chapéu + witch_hat: Chapéu de bruxa + mini_witch_hat: Mini chapéu de bruxa + wizard_hat: Chapéu de mago + party_hat: Chapéu de festa + jester_cap: Chapéu de bobo da corte + tokin_hat: Chapéu de gala + top_hat: Cartola + mini_top_hat: Mini cartola + bowler_hat: Chapéu coco + pillbox_hat: Chapéu caixa de pílulas + cloche_hat: Chapéu cloche + side_cap: Chapéu lateral + military_hat: Chapéu militar + beret: Boina + garrison_cap: Chapéu de guarnição + police_hat: Chapéu de polícia + nurse_cap: Touca de enfermeira + chef_hat: Chapéu de chef + school_hat: Chapéu escolar + pirate_hat: Chapéu de pirata + cabbie_hat: Chapéu de motorista de táxi + bucket_hat: Chapéu de pescador + hardhat: Capacete de segurança + straw_hat: Chapéu de palha + sun_hat: Chapéu de sol + rice_hat: Chapéu de arroz + animal_hat: Chapéu de animal + fur_hat: Chapéu de pele + hat_with_ears: Chapéu com orelhas + bobblehat: Chapéu de pompom + pillow_hat: Chapéu de travesseiro + pumpkin_hat: Chapéu de abóbora + baseball_cap: Boné de beisebol + flat_cap: Boné de aba reta + torn_hat: Chapéu rasgado + mob_cap: Chapéu de camponesa + newsboy_cap: Boné de jornaleiro + bowknot_over_white_beret: Laço sobre a boina branca + backwards_hat: Chapéu virado para trás + bowl_hat: Chapéu em forma de tigela + cat_hat: Chapéu de orelhas de gato + chat_log: Estilo de caixa de chat + cowboy_hat: Chapéu de cowboy + dixie_cup_hat: Chapéu de copo descartável + hat_bow: Chapéu com laço + hat_feather: Chapéu com pena + hat_flower: Chapéu com flor + hat_ornament: Chapéu com enfeite + hat_over_one_eye: Chapéu cobrindo um olho + hat_removed: Chapéu removido + hat_ribbon: Chapéu com fita + hat_tip: Chapéu com aba dobrada + hatching_(texture): Textura de hachura + hatsune_miku_(cosplay): Cosplay de Hatsune Miku + is_that_so: É assim que é + porkpie_hat: Chapéu porkpie + sailor_hat: Chapéu de marinheiro + santa_hat: Chapéu de Papai Noel + sideways_hat: Chapéu inclinado para o lado + what: O que + what_if: E se + + - name: Acessório de cabelo + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: Fita de cabelo + hairband: Faixa de cabelo + hair_tie: Elástico de cabelo + lolita_hairband: Faixa de cabelo estilo Lolita + frilled_hairband: Faixa de cabelo com babados + lace-trimmed_hairband: Faixa de cabelo com renda + hair_bobbles: Presilhas de cabelo + hair_ornament: Enfeite de cabelo + hair_flower: Flor de cabelo + x_hair_ornament: Enfeite de cabelo em forma de X + hair_bow: Laço de cabelo + frog_hair_ornament: Enfeite de cabelo de sapo + heart_hair_ornament: Enfeite de cabelo em forma de coração + butterfly_hair_ornament: Enfeite de cabelo em forma de borboleta + star_hair_ornament: Enfeite de cabelo em forma de estrela + food-themed_hair_ornament: Enfeite de cabelo com tema de comida + anchor_hair_ornament: Enfeite de cabelo em forma de âncora + bat_hair_ornament: Enfeite de cabelo em forma de morcego + carrot_hair_ornament: Enfeite de cabelo em forma de cenoura + cat_hair_ornament: Enfeite de cabelo em forma de gato + clover_hair_ornament: Enfeite de cabelo em forma de trevo + crescent_hair_ornament: Enfeite de cabelo em forma de lua crescente + cross_hair_ornament: Enfeite de cabelo em forma de cruz + d-pad_hair_ornament: Enfeite de cabelo em forma de direcional + fish_hair_ornament: Enfeite de cabelo em forma de peixe + hairpods: Enfeites de cabelo em forma de fones de ouvido sem fio + leaf_hair_ornament: Enfeite de cabelo em forma de folha + musical_note_hair_ornament: Enfeite de cabelo em forma de nota musical + pumpkin_hair_ornament: Enfeite de cabelo em forma de abóbora + skull_hair_ornament: Enfeite de cabelo em forma de caveira + snake_hair_ornament: Enfeite de cabelo em forma de cobra + snowflake_hair_ornament: Enfeite de cabelo em forma de flocos de neve + strawberry_hair_ornament: Enfeite de cabelo em forma de morango + sunflower_hair_ornament: Enfeite de cabelo em forma de girassol + hairpin: Grampo de cabelo + hairclip: Presilha de cabelo + hair_tubes: Tubos de cabelo + hair_stick: Palito de cabelo + hair_bun: Coque de cabelo + single_hair_bun: Coque de cabelo único + hair_bell: Sino de cabelo + hair_rings: Anéis de cabelo + + - name: Pequenos adornos + color: rgba(230, 84, 128, .4) + tags: + ring: Anel + wedding_band: Aliança de casamento + earrings: Brincos + single_earring: Brinco único + stud_earrings: Brincos de tarracha + necklace: Colar + jewelry: Joia + crystal: Cristal + brooch: Broche + gem: Gema + chest_jewel: Joia de peito + forehead_jewel: Joia de testa + tassel: Franja + belly_chain_: Corrente de barriga + lace: Renda + ribbon: Fita + stitches: Costuras + scarf: Cachecol + bandaid: Curativo + collar: Colarinho + belt: Cinto + steam: Vapor + bell: Sino + amulet: Amuleto + emblem: Emblema + flag_print: Estampa de bandeira + anchor_symbol: Símbolo de âncora + cross: Cruz + diffraction_spikes: Raios de difração + iron_cross: Cruz de ferro + latin_cross: Cruz latina + lace-trimmed_hairband: Faixa de cabelo com renda + ankle_lace-up: Amarração de tornozelo + st._gloriana's_(emblem): Emblema de St. Gloriana + heart_lock_(kantai_collection): Fechadura de coração (Kantai Collection) + garters: Ligueiros + thigh_strap: Tira de coxa + thigh_ribbon: Fita de coxa + leg_garter: Ligueiro + garter_straps: Alças de ligueiro + leg_ribbon: Fita de perna + bandaid_on_leg: Curativo na perna + bandaged_leg: Perna enfaixada + arm_garter: Ligueiro de braço + joints: Articulações + kneepits: Cavas do joelho + knee_pads: Joelheiras + thigh_holster: Coldre de coxa + bandaid_on_knee: Curativo no joelho + + - name: Joias + color: rgba(230, 84, 128, .4) + tags: + bracelet: Pulseira + choker: Gargantilha + metal collar: Coleira de metal + ring: Anel + wristband: Pulseira de pulso + pendant: Pingente + brooch: Broche + hoop earrings: Brincos de argola + bangle: Pulseira rígida + stud earrings: Brincos de tarracha + sunburst: Adorno de sol + pearl bracelet: Pulseira de pérolas + drop earrings: Brincos pendentes + puppet rings: Anéis de marionete + corsage: Corsage + sapphire brooch: Broche de safira + jewelry: Joias + necklace: Colar + +- name: Espressioni e movimenti + groups: + - name: Sorrindo + color: rgba(241, 229, 140, .4) + tags: + smile: Sorriso + laughing: Riso + kind_smile: Sorriso feliz + :d: Riso feliz_:D😀 + ;d: Piscadela sorrindo_:D + grin: Sorriso largo + teasing_smile: Sorriso provocante + seductive_smile: Sorriso sedutor + smirk: Sorriso irônico + giggling: Risadinha + smug: Satisfeito + naughty_face: Rosto travesso + evil smile: Sorriso malévolo + crazy_smile: Sorriso louco + happy: Feliz + happy_birthday: Feliz aniversário + happy_halloween: Feliz Halloween + happy_new_year: Feliz Ano Novo + happy_tears: Lágrimas de felicidade + happy_valentine: Feliz Dia dos Namorados + + - name: Chorando + color: rgba(241, 229, 140, .4) + tags: + sad: Triste + tear: Soluço + crying: Choro + crying_with_eyes_open: Chorando com os olhos abertos + streaming_tears: Lágrimas escorrendo + teardrop: Lágrima + tearing_clothes: Rasgando roupas + tearing_up: Expressão prestes a chorar + tears: Lágrimas + wiping_tears: Enxugando lágrimas + badmood: De mau humor + + - name: Infeliz + color: rgba(241, 229, 140, .4) + tags: + frustrated: Frustrado + frustrated_brow: Testa franzida de frustração + annoyed: Irritado + anguish: Angústia + sigh: Suspiro + gloom: Melancólico + disappointed: Decepcionado + despair: Desespero + + - name: Desprezo + color: rgba(241, 229, 140, .4) + tags: + disgust: Nojo (olhar como se fosse lixo) + disdain: Desdém + contempt: Desprezo + shaded_face: Rosto sombreado, expressando desprezo + jitome: Olhar de desprezo + frown: Testa franzida + wince: Testa franzida (antes do ato sexual) + furrowed_brow: Testa franzida + fear_kubrick: Olhar de medo de lado + laughing: Rindo + + - name: Raiva + color: rgba(241, 229, 140, .4) + tags: + angry: Com raiva + glaring: Olhar furioso + serious: Sério (parecido com raiva) + kubrick_stare: Olhar de lado com raiva + evil: Malévolo + sulking: Emburrado + screaming: Gritando + shouting: Gritando + + - name: Outras expressões + color: rgba(241, 229, 140, .4) + tags: + expressionless: Sem expressão + sleepy: Sonolento + drunk: Bêbado + bored: Entediado + confused: Confuso + thinking: Pensando + lonely: Solitário + light_blush: Leve rubor + blush: Ruborizado + shy: Tímido + embarrass: Envergonhado + facepalm: Mão no rosto + flustered: Nervoso + sweat: Suando + scared: Assustado + ahegao: Ahegao + endured_face: Rosto de aguentar + restrained: Restrito + dark_persona: Persona sombria + crazy: Louco + exhausted: Esgotado + Tsundere: Tsundere + yandere: Yandere + multiple_persona: Personalidades múltiplas + Jekyll_and_Hyde: Jekyll e Hyde + twitching: Tiques + spasm: Espasmo + trembling: Tremendo + rape_face: Rosto de estupro + rolling_eyes: Revirar os olhos + envy: Inveja + female_orgasm: Orgasmo feminino + heavy_breathing: Respiração pesada + naughty: Travesso + expressions: Expressões faciais (aproximadamente) + moaning: Gemendo + scowl: Olhar de desaprovação + + - name: Ações básicas + color: rgba(241, 229, 140, .4) + tags: + standing: Em pé + on back: Deitado de costas + on stomach: Deitado de barriga para baixo + kneeling: Ajoelhado + on_side: Deitado de lado + on_stomach: Deitado de barriga para baixo + top-down_bottom-up: Deitado de barriga para cima com o bumbum empinado + the_pose: Deitado no chão e levantando os pés + bent_over: Posição empinada + upside-down: De cabeça para baixo + reversal: Inversão + fighting_stance: Posição de luta + leaning_to_the_side: Encostado de lado + leaning: Encostado|Corpo inclinado + leaning_back: Corpo inclinado para trás + leaning_on_object: Encostado em um objeto + arched_back: Corpo arqueado + leaning_forward: Corpo inclinado para frente + afloat: Flutuando (na água) + lying: Deitado + fetal_position: Posição fetal (deitado) + lying_on_person: Deitado sobre alguém + lying_on_the_lake: Deitado na superfície do lago + lying_on_water: Deitado na água + on_back: Deitado de costas + prone_bone: Posição de quatro apoios + reclining: Deitado inclinado + sleeping_upright: Dormindo em pé (não deitado) + presenting: Apresentando (seguido de parte do corpo) + spinning: Girando + posing: Posando + stylish_pose: Posição estilosa + public_indecency: Indecência pública + parody: Paródia + in_container: Dentro de um recipiente + against_glass: Pressionado contra o vidro (ineficaz) + aiming: Mirando + aiming_at_viewer: Mirando para o leitor + applying_makeup: Aplicando maquiagem + bathing: Tomando banho + biting: Mordendo + bleeding: Sangrando + blowing: Soprando + bowing: Curvando-se + breathing_fire: Cuspindo fogo + broom_riding: Montando em uma vassoura + brushing_teeth: Escovando os dentes + bubble_blowing: Soprando bolhas + bullying: Bullying + burning: Queimando + cast: Arremessando + chasing: Perseguindo + cleaning: Limpando + climbing: Escalando + comforting: Confortando + cooking: Cozinhando + crying: Chorando + cuddling: Aconchegando-se + dancing: Dançando + diving: Mergulhando + dragging: Arrastando algo + drawing: Desenhando + drawing_bow: Puxando o arco + dreaming: Sonhando + drinking: Bebendo + driving: Dirigindo + dropping: Deixando cair (acidentalmente) + drying: Secando (após o banho) + dual_wielding: Empunhando duas armas + exercise: Fazendo exercícios + fighting: Em combate + firing: Disparando + fishing: Pescando + flapping: Batendo asas + flashing: Exibindo + fleeing: Fugindo + flexing: Exibindo músculos + flying: Voando + flying_kick: Chute no ar + hair_brushing: Escovando o cabelo + hair_tucking: Ajeitando o cabelo + hanging: Pendurado + hitting: Batendo + imagining: Imaginando + jumping: Saltando + kicking: Chutando + licking: Lambendo + licking_lips: Lambendo os lábios + lip_biting: Mordendo os lábios + meditation: Meditando + painting: Pintando + Painting_(Action): Pintando + playing_card: Jogando cartas + playing_games: Jogando jogos + playing_instrument: Tocando instrumento + pole_dancing: Dançando no poste + praying: Orando + punching: Soco + pushing: Empurrando + railing: Segurando em corrimão + reading: Lendo + riding: Montando + running: Correndo + sewing: Costurando + shopping: Fazendo compras + showering: Tomando banho de chuveiro + sing: Cantando + singing: Cantando + slashing: Golpeando + sleeping: Dormindo + smelling: Cheirando + smoking: Fumando + sneezing: Espirrando + snowing: Neve caindo + soaking_feet: Deixando os pés de molho + soccer: Jogando futebol + spilling: Derramando líquido de um recipiente + spitting: Cuspir líquido da boca + splashing: Salpicando + standing_on_liquid: Em pé sobre líquido + standing_on_one_leg: Em pé em uma perna + standing_split: Fazendo espacate em pé + steepled_fingers: Dedos entrelaçados + strangling: Estrangulando + sweeping: Varrendo + swimming: Nadando + swing: Balançando + tail_wagging: Abanando o rabo + taking_picture: Tirando foto|Selfie + talking: Falando + talking_on_phone: Falando ao telefone + teasing: Provocando + thinking: Pensando + tickling: Fazendo cócegas + toilet_use: Usando o banheiro + tossing_: Lançando + tripping: Tropeçando + trolling: Trolando + twitching: Tiques + tying: Amarrando (ação) + unsheathing: Desembainhando + untying: Desamarrando + unzipping: Abrindo o zíper + wading: Vadear + waking_up: Acordando + walking: Caminhando + walking_on_liquid: Caminhando sobre líquido + washing: Limpando + whispering: Sussurrando + wrestling: Lutando + writing: Escrevendo + yawning: Bocejando + hiding: Escondendo + + - name: Ações das mãos + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: Mãos atrás das costas + arm_above_head: Mão acima da cabeça + arm_behind_head: Mão atrás da cabeça + arms_crossed: Braços cruzados + arm_support: Mão apoiada + armpits: Axilas expostas + arms_up: Braços levantados + hands_on_hips: Mãos na cintura + arm_around_waist: Braço em volta da cintura + caramelldansen: Ação famosa de esticar as mãos e balançar o quadril + hands_in_opposite_sleeves: Mãos nas mangas opostas + waving: Acenar + crossed_arms: Braços cruzados + outstretched_arms: Braços estendidos + v_arms: Braços formando um V + w_arms: Braços formando um W + salute: Saudação + reaching: Estender a mão (com propósito) + reaching_out: Estender a mão para fora + stretch: Espreguiçar + hugging_own_legs: Abraçar as próprias pernas + arm_blade: Lâmina no braço + arm_grab: Agarrar o braço + arm_held_back: Braço puxado para trás + arm_ribbon: Fita no braço + bandaged_arm: Braço enfaixado + bandaid_on_arm: Band-Aid no braço + bound_arms: Braços amarrados + convenient_arm: Braço cobrindo uma parte do corpo + extra_arms: Múltiplos braços + locked_arms: Braços entrelaçados + outstretched_arm: Braço estendido + waving_arms: Agitar os braços + arm_at_side: Mão pendurada ao lado + arm_behind_back: Mão atrás das costas + shou: Mão apoiada na cabeça + arm_cannon: Canhão de mão + arm_hug: Abraço com os braços + arm_up: Levantar a mão + arms_at_sides: Mãos penduradas ao lado + arms_behind_head: Mãos atrás da cabeça + hand_to_mouth: Mão próxima à boca + shushing: Sinal de silêncio + cat_pose: Pose de garras de gato + claw_pose: Pose de garras + paw_pose: Pose de pata de gato (pulso dobrado) + fox_shadow_puppet: Pose de raposa com as mãos + double_fox_shadow_puppet: b + finger_gun: Gestual de arma com o dedo + v: Gestual de vitória + double_v: Gestual de dupla vitória + thumbs_up: Polegar para cima + index_finger_raised: Indicador levantado + middle_finger: Gestual de amizade internacional + grimace: Fazer careta + eyelid_pull: Fazer careta + fingersmile: Fazer um rosto sorridente com os dedos + wiping_tears: Limpar as lágrimas + finger_on_trigger: Gestual de dedo no gatilho + pointing_at_self: Apontar para si mesmo + pointing_at_viewer: Apontar para o espectador + pointing_up: Apontar para cima + poking: Cutucar + hand_gesture: Fazer gesto com a mão + ok_sign: Sinal de OK + shading_eyes: Sinal de proteção solar + finger_biting: Morder o dedo + finger_in_mouth: Chupar o dedo + fingering_through_clothes: Mover o dedo através das roupas + fingers_together: Dedos juntos + hair_twirling: Enrolar o cabelo com os dedos + hands_clasped: Mãos entrelaçadas + holding_hair: Segurar o cabelo + pointing: Apontar com o dedo + sharp_fingernails: Unhas afiadas + sleeves_past_fingers: Mangas passando dos dedos + spread_fingers: Espalhar os dedos + trigger_discipline: Dedo fora do gatilho + w: Dedos formando um W + balancing: Pose de equilíbrio + curvy: Pose atraente + multiple_views: Múltiplas visualizações + pose: Pose + ready_to_draw: Pronto para desenhar + trefoil: Pose feminina mostrando os glúteos + zombie_pose: Pose de zumbi + beckoning: Chamar com a mão + bunching_hair: Segurar o cabelo em um punhado + carrying: Carregar + carrying_over_shoulder: Carregar sobre o ombro + carrying_under_arm: Carregar sob o braço + cheering: Torcer + finger_to_mouth: Mão no rosto próximo à boca + cheek_pinching: Beliscar a bochecha + cheek_poking: Cutucar a bochecha + chin_stroking: Acariciar o queixo + hair_pull: Puxar o cabelo + covering_mouth: Cobrir a boca + covering_xx: Cobrir xx + self_fondle: Carinho em si mesmo + adjusting_thighhigh: Ajustar meias acima do joelho + chin_rest: Apoiar o queixo + head_rest: Apoiar a cabeça + take: Segurar + _sheet_grab: Agarrar o lençol + groping: Tocar de forma exploratória + skirt_lift: Levantar a saia + crotch_grab: Agarrar a virilha + covering_chest_by_hand: Cobrir o peito com a mão + bangs_pinned_back: Prender a franja para trás + clothes_lift: Levantar as roupas + dress_lift: Levantar o vestido + kimono_lift: Levantar o quimono + lifted_by_another: Ser levantado por outra pessoa + lifted_by_self: Levantar a própria roupa + shirt_lift: Levantar a camisa + skirt_basket: Formação de "cesta" ao levantar a saia + skirt_flip: Levantar a saia (incluindo situações repentinas) + bikini_lift: Desamarrar o biquíni + leg_lift: Levantar uma perna + lifting_person: Levantar uma pessoa + strap_lift: Desamarrar a alça da roupa + wind_lift: Efeito de vento | Corrente ascendente + bikini_pull: Puxar o biquíni + cheek_pull: Puxar a bochecha + clothes_pull: Puxar a roupa + dress_pull: Descobrir a parte superior de um vestido + hair_pulled_back: Cabelo puxado para trás + kimono_pull: Desamarrar o quimono + leotard_pull: Descobrir um collant + mask_pull: Puxar a máscara + pants_pull: Puxar as calças + pulled_by_another: Ser puxado por outra pessoa (ou puxar a roupa) + pulled_by_self: Puxar a própria roupa + pulling: Puxar + shirt_pull: Puxar a camisa + shorts_pull: Tirar shorts + skirt_pull: Puxar a saia + swimsuit_pull: Puxar o maiô + zipper_pull_tab: Puxar o zíper + adjusting_clothes: Ajustar as roupas + adjusting_eyewear: Ajustar os óculos + adjusting_gloves: Ajustar as luvas + adjusting_hair: Arrumar o cabelo + adjusting_hat: Ajustar o chapéu + adjusting_swimsuit: Ajustar o maiô + + - name: Ações das mãos (segurando algo) + color: rgba(241, 229, 140, .4) + tags: + holding: Segurando algo + holding_animal: Segurando um animal + holding_arrow: Puxando um arco + holding_axe: Segurando um machado + holding_bag: Segurando uma bolsa + holding_ball: Segurando uma bola + holding_basket: Segurando uma cesta + holding_book: Segurando um livro + holding_bottle: Segurando uma garrafa + holding_bouquet: Segurando um buquê + holding_bow_(weapon): Segurando um arco (arma) + holding_bowl: Segurando uma tigela + holding_box: Segurando uma caixa + holding_breath: Prendendo a respiração + holding_broom: Segurando uma vassoura + holding_camera: Segurando uma câmera + holding_can: Segurando uma lata + holding_candy: Segurando um doce + holding_card: Segurando um cartão + holding_cat: Segurando um gato + holding_chopsticks: Segurando hashis + holding_cigarette: Segurando um cigarro + holding_clothes: Segurando roupas + holding_condom: Segurando uma camisinha + holding_cup: Segurando uma xícara + holding_dagger: Segurando uma adaga + holding_doll: Segurando uma boneca + holding_eyewear: Segurando óculos | Removendo óculos + holding_fan: Segurando um leque + holding_flag: Segurando uma bandeira + holding_flower: Segurando uma flor + holding_food: Segurando comida + holding_fork: Segurando um garfo + holding_fruit: Segurando uma fruta + holding_gift: Segurando um presente + holding_gun: Segurando uma arma + holding_hands: Segurando as mãos + holding_hat: Segurando um chapéu + holding_head: Segurando a própria cabeça + holding_helmet: Segurando um capacete + holding_innertube: Segurando uma boia + holding_instrument: Segurando um instrumento + holding_knife: Segurando uma faca + holding_leaf: Segurando uma folha + holding_lollipop: Segurando um pirulito + holding_mask: Segurando uma máscara + holding_microphone: Segurando um microfone + holding_needle: Segurando uma agulha de costura + holding_own_foot: Segurando o próprio pé + holding_paintbrush: Segurando um pincel + holding_paper: Segurando papel + holding_pen: Segurando uma caneta + holding_pencil: Segurando um lápis + holding_phone: Segurando um celular + holding_pillow: Segurando um travesseiro + holding_pipe: Segurando um cachimbo + holding_pizza: Segurando uma pizza + holding_plate: Segurando um prato + holding_poke_ball: Segurando uma Pokébola + holding_pokemon: Segurando um Pokémon + holding_polearm: Segurando uma arma de haste + holding_sack: Segurando um saco + holding_scythe: Segurando uma foice + holding_sheath: Segurando uma bainha + holding_shield: Segurando um escudo + holding_shoes: Segurando sapatos + holding_sign: Segurando uma placa + holding_spear: Segurando uma lança + holding_spoon: Segurando uma colher + holding_staff: Segurando um cajado + holding_strap: Segurando uma alça + holding_stuffed_animal: Segurando um bicho de pelúcia + holding_stylus: Segurando uma caneta stylus + holding_sword: Segurando uma espada + holding_syringe: Segurando uma seringa + holding_towel: Segurando uma toalha + holding_tray: Segurando uma bandeja + holding_umbrella: Segurando um guarda-chuva + holding_wand: Segurando uma varinha + holding_whip: Segurando um chicote + arm_around_neck: Braço em volta do pescoço + arms_around_neck: Braços em volta do pescoço + + - name: Ações das mãos (colocando em algum lugar) + color: rgba(241, 229, 140, .4) + tags: + covering: Ação de cobrir + covering_face: Cobrindo o rosto + covering_ass: Cobrindo o traseiro + covering_crotch: Cobrindo a virilha + covering_eyes: Cobrindo os olhos + covering_mouth: Cobrindo a boca + covering_nipples: Cobrindo os mamilos + hands_on_another's_: Mãos no rosto de outra pessoa + hands_on_another's_cheeks: Mãos nas bochechas de outra pessoa + hands_on_ass: Mãos nas nádegas + hands_on_feet: Mãos nos pés + hands_on_headwear: Mãos tocando adorno de cabeça + hands_on_hilt: Mãos no cabo + hands_on_lap: Mãos no colo + hands_on_own_face: Mãos no próprio rosto + hands_on_own_cheeks: Mãos nas próprias bochechas + hands_on_own_chest: Mãos no próprio peito + hands_on_own_head: Mãos na própria cabeça + hands_on_own_knees: Mãos nos próprios joelhos + hands_on_own_stomach: Mãos no próprio estômago + hands_on_own_thighs: Mãos nas próprias coxas + hands_on_another's_shoulders: Mãos nos ombros de outra pessoa + hands_on_hips: Mãos nas cinturas | Mãos nos quadris + hand_on_another's_: Mão tocando o rosto de outra pessoa + hand_on_another's_cheek: Mão acariciando a bochecha de outra pessoa + hand_on_another's_chest: Mão no peito de outra pessoa + hand_on_another's_chin: Mão segurando o queixo de outra pessoa + hand_on_another's_head: Mão na cabeça de outra pessoa + hand_on_another's_shoulder: Mão no ombro de outra pessoa + hand_on_another's_stomach: Mão na barriga de outra pessoa + hand_on_ass: Mão nas nádegas + hand_on_head: Mão na cabeça + hand_on_headwear: Mão tocando adorno de cabeça + hand_on_hilt: Mão no cabo + hand_on_hip: Mão nas cinturas | Mão nos quadris + hand_on_own_: Mão no próprio rosto + hand_on_own_cheek: Mão na própria bochecha + hand_on_own_chest: Mão no próprio peito + hand_on_own_chin: Mão tocando o próprio queixo + hand_on_own_stomach: Mão no próprio estômago + hand_on_shoulder: Mão no ombro + hand_in_another's_hair: Mão no cabelo de outra pessoa + hand_in_hair: Mão no próprio cabelo + hand_in_pocket: Mão no bolso + + - name: Ações das mãos (agarrando algo) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: Agarrar as nádegas + flat_chest_grab: Agarrar o peito plano + grabbing: Agarrar | Segurar + grabbing_another's_ass: Agarrar as nádegas de outra pessoa + grabbing_another's_hair: Agarrar o cabelo de outra pessoa + grabbing_from_behind: Apalpar os seios por trás + grabbing_own_ass: Agarrar as próprias nádegas + guided_penetration: Agarrar o órgão masculino e inserir em si mesmo + hair_grab: Agarrar o cabelo + leg_grab: Agarrar a perna + necktie_grab: Agarrar a gravata + neckwear_grab: Agarrar a roupa do pescoço + penis_grab: Agarrar o pênis + pillow_grab: Agarrar o travesseiro + sheet_grab: Agarrar o lençol + tail_grab: Agarrar a cauda + thigh_grab: Agarrar a coxa + torso_grab: Agarrar o tronco + wrist_grab: Agarrar o pulso + + - name: Ações das Pernas + color: rgba(241, 229, 140, .4) + tags: + legs_up: Levantar uma perna + spread legs: Abrir as pernas + legs_together: Juntar as pernas + crossed_legs: Cruzar as pernas + m_legs: Posição em "M" com as pernas + standing_split,_leg_up: Posição em "M" com as pernas + curtsy: Reverência (estilo empregada) + hand_between_legs: Mãos entre as pernas + open_stance: Descansar em posição + convenient_leg: Cruzar as pernas para cobrir partes íntimas + leg_lock: Prender algo com as pernas + legs: Pernas + legs_over_head: Levantar as pernas acima da cabeça + squatting,_open_legs: Agachar com as pernas abertas + knees_together_feet_apart: Joelhos juntos, pés separados + animal_on_lap: Animal no colo + hand_on_own_knee: Mão no próprio joelho + knee_up: Levantar o joelho + knees: Joelhos + knees_to_chest: Joelhos no peito + on_lap: No colo + sitting: Sentado(a) + wariza: Sentar como um pato + straddling: Sentar-se de pernas abertas + yokozuwari: Sentar-se de lado + sitting_backwards: Sentar-se de costas + sitting_in_tree: Sentar-se em uma árvore + sitting_on_xx: Sentar-se em cima de algo + butterfly_sitting: Sentar-se como uma borboleta + lotus_position: Sentar-se em posição de lótus + sitting_on_railing: Sentar-se em uma grade + sitting_on_rock: Sentar-se em uma pedra + sitting_on_stairs: Sentar-se em escadas + sitting_on_table: Sentar-se em uma mesa + sitting_on_water: Sentar-se na água + cushion: Almofada + indian_style: Sentar-se em estilo indiano + sitting_on_chair: Sentar-se em uma cadeira + sidesaddle: Sentar-se de lado em uma sela + sitting_on_bed: Sentar-se em uma cama + sitting_on_desk: Sentar-se em uma mesa de aula + sitting_on_lap: Sentar-se nas pernas de alguém + sitting_on_person: Sentar-se em cima de alguém + upright_straddle: Posição sentada frente a frente + squatting: Agachamento + one_knee: Um joelho + kneeling: Ajoelhar-se + all_fours: Ficar de quatro + gravure_pose: Pose de gravura + kicking: Chutar + high_kick: Chute alto + soaking_feet: Mergulhar os pés + reclining: Deitado(a) + hugging_own_legs: Abraçar as próprias pernas + bare_legs: Pernas nuas + between_legs: (Ênfase) Entre as pernas + cropped_legs: Apenas parte das pernas desenhadas + k/da_(league_of_legends): Grupo K/DA (League of Legends) + leg_belt: Cinto nas pernas + leg_hair: Pelos nas pernas + leg_up: Levantar a perna + legs_apart: Pernas afastadas + lowleg: Posição em "M" com as pernas + mechanical_legs: Pernas mecânicas + multiple_legs: Personagem com várias pernas + no_legs: Sem pernas desenhadas + no_legwear: Parte inferior do corpo nua + tail_between_legs: Rabo entre as pernas + barefoot: Descalço(a) + foot_out_of_frame: Pé fora do quadro + footprints: Pegadas + dirty_feet: Desenho dos pés incorreto + feet: Pés + feet_out_of_frame: Pés fora do quadro + feet_up: Levantar os pés + wrong_feet: Erro no desenho dos pés + cameltoe: Cameltoe + pigeon-toed: Pernas viradas para dentro + tiptoes: Ficar nas pontas dos pés + toe-point: Ponta dos dedos do pé + amputee: Amputado(a) + ankle_strap: Tira no tornozelo + ankle_wrap: Enfaixar o tornozelo + crossed_ankles: Cruzar os tornozelos + pince-nez: Óculos de aro sem hastes + folded: Levantar a perna e expor a virilha + thick_thighs: Coxas grossas + thigh_holster: Coldre na coxa + + - name: Outras Ações + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: Contato assimétrico dos peitos + back-to-back: De costas um para o outro + cunnilingus: Sexo oral na mulher + eye_contact: Contato visual + facing_another: Encarar o outro + facing_away: Face a face (com os rostos muito próximos) + feeding: Alimentar + finger_in_another's_mouth: Dedo na boca do outro + fingering: Estimulação manual + french_kiss: Beijo francês + giving: Dar + grinding: Atrito sexual + groping: Apalpar + holding_hands: Segurar as mãos + hug: Abraço + imminent_kiss: Beijo iminente + incoming_food: Receber comida + incoming_gift: Receber presente + interlocked_fingers: Dedos entrelaçados + Kabedon: Encostar-se na parede + lap_pillow: Almofada no colo + licking_penis: Lamber o pênis + long_tongue: Língua longa + mimikaki: Limpar os ouvidos + oral_invitation: Estender a língua para receber ejaculação + princess_carry: Carregar como uma princesa + shared_bathing: Banho compartilhado + shared_food: Compartilhar comida com a boca + sitting_on_head: Sentar-se na cabeça + sitting_on_shoulder: Sentar-se no ombro + slapping: Dar tapas + spanking: Spanking (palmadas no bumbum) + special_feeling_(meme): Meme de casal com guarda-chuva na neve + symmetrical_docking: Contato simétrico dos peitos + tongue: Língua + tongue_out: Língua para fora + uvula: Úvula + ear_biting: Morder a orelha + mixed_bathing: Banho misto + +- name: Imagem + groups: + - name: Qualidade da imagem + color: rgba(0, 255, 255, .4) + tags: + checkered: Xadrez + lowres: Baixa resolução + highres: Alta resolução + absurdres: Resolução extremamente alta + incredibly absurdres: Resolução incrivelmente alta + huge filesize: Resolução super alta/tamanho grande do arquivo + wallpaper: Papel de parede + pixel art: Arte em pixel + monochrome: Imagem monocromática + colorful: Colorido + + - name: Estilo artístico + color: rgba(0, 255, 255, .4) + tags: + artbook: Livro de arte + game cg: CG de jogo + comic: Quadrinhos + 4koma: Mangá de 4 painéis + animated gif: Imagem GIF animada + dakimakura: Travesseiro de abraçar + cosplay: Cosplay + crossover: Crossover + dark: Escuro + light: Claro + guro: Guro + realistic: Realista + photo: Foto + real: Real + landscape/scenery: Paisagem + cityscape: Paisagem urbana + science fiction: Ficção científica + original: Original + parody: Paródia + personification: Personificação + optical illusion: Ilusão de ótica + fine art parody: Paródia de arte fina + sketch: Esboço + traditional media: Mídia tradicional (desenho à mão) + watercolor (medium): Aquarela transparente + silhouette: Silhueta + cover: Capa + album: Álbum + sample: Imagem com texto + back: Imagem de costas + bust: Busto + profile: Perfil + expressions: Expressões (várias expressões) + everyone: Todos os principais personagens em uma obra + column lineup: Imagem grande composta por várias pequenas em coluna + transparent background: Fundo transparente + simple background: Fundo simples + gradient background: Fundo em degradê + zoom layer: Fundo é uma versão ampliada do primeiro plano + 8 Bit Game: Jogo em 8 bits + 1980s anime: Anime dos anos 80 + disney movie: Filme da Disney + goth: Estilo gótico + 80s movie: Filme dos anos 80 + bubble bobble: Bubble Bobble + style of Pixar: Estilo da Pixar + Polaroid art: Arte em Polaroid + Kaleidoscope Photography: Fotografia de caleidoscópio + opal render: Renderização de opala + chemigram: Química gráfica + Studio Ghibli: Estilo do Studio Ghibli + dreamlike: Onírico + (faux traditional media): Estilo de pintura simulando mídia tradicional + genshin impact: Impacto Genshin + azur lane: Azur Lane + kantai collection: Coleção Kantai + rebecca (cyberpunk): Rebecca (cyberpunk) + chainsaw man: Chainsaw Man + Magic Vortex: Vórtice mágico + ((dieselpunk)): Dieselpunk + magazine scan: Digitalização de revista + album cover: Capa de álbum + (lineart): Arte em linha + synthwave: Synthwave + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): Lococo + + - name: Tipo de arte + color: rgba(0, 255, 255, .4) + tags: + monochrome: Imagem monocromática + Collage: Colagem + Dalle de verre: Vitral + pixel art: Pixel art + Encaustic painting: Pintura em encáustica + Ink wash painting: Pintura em tinta da China + Mezzotint: Mezzotinta + silhouette: Silhueta + illustration: Ilustração + (((ink))), ((watercolor)): Aquarela + illustration,(((ukiyoe))),((sketch)),((japanese_art)): Ukiyo-e + ((wash painting)),((ink s...)): Estilo chinês + ((dyeing)),((oil painting)),((impasto)): Pintura a óleo + (posing sketch), (monochrome): Esboço em preto e branco + sketch: Esboço à mão livre + (monochrome), (gray scale), (pencil sketch lines: Esboço a lápis + (watercolor pencil): Lápis de cor aquarelável + + - name: Movimento artístico + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): Art Nouveau + ((classicism)): Classicismo + ((futurism)): Futurismo + ((Dadaism)): Dadaísmo + ((abstract art)): Arte abstrata + ((ASCII art)): Arte ASCII + + - name: Estilo do artista + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): Estilo de Alphonse Mucha + ((Monet style)): Estilo de Monet + + - name: Iluminação + color: rgba(0, 255, 255, .4) + tags: + rim light: Luz de contorno + Volumetric Lighting: Iluminação volumétrica + glowing neon lights: Luzes de néon brilhantes + Cinematic Lighting: Iluminação cinematográfica + lens flare: Flare de lente + metallic luster: Brilho metálico + moody lighting: Iluminação atmosférica + Tyndall effect: Efeito Tyndall + light leaks: Vazamentos de luz + background light: Luz de fundo + available light: Luz natural + + - name: Realismo + color: rgba(0, 255, 255, .4) + tags: + realistic: Realista + highres: Espessura de tinta (estilo) + photo_(medium): Foto (estilo) + oil_painting: Pintura a óleo + reality: Realidade + polaroid: Foto instantânea + + - name: Esboço + color: rgba(0, 255, 255, .4) + tags: + sketch: Esboço + flat_color: Cor plana + monochrome: Monocromático + spot_color: Cor sólida + halftone: Meio-tom + greyscale: Escala de cinza + high_contrast: Alto contraste + partially_colored: Parcialmente colorido + chromatic_aberration: Aberração cromática + contour_deepening: Aprofundamento do contorno + outline: Contorno + silhouette: Silhueta + + - name: Pincel + color: rgba(0, 255, 255, .4) + tags: + traditional_media: Mídia tradicional (como papel) + faux_traditional_media: Estilo simulando mídia tradicional + marker_(medium): Marcador + copics: Copics (cinza neutro) + pencil_sketch_lines: Esboço a lápis + graphite_(medium): Lápis de grafite + colored_pencil_(medium): Lápis de cor + millipen_(medium): Caneta de desenho + nib_pen_(medium): Caneta de desenho + ballpoint_pen_(medium)_: Caneta esferográfica + pastel_color: Cores suaves + watercolor_(medium): Aquarela + acrylic_paint_(medium): Pintura acrílica + contour_deepening: Aprofundamento do contorno + + - name: Cor + color: rgba(0, 255, 255, .4) + tags: + orange: Laranja + blue: Azul + red: Vermelho + light_brown: Marrom claro + dark_pink: Rosa escuro + khaki: Cáqui + blonde: Loiro + brown: Marrom + black: Preto + gray: Cinza + darkgray: Cinza escuro + silver: Prata + lightgray: Cinza claro + gainsboro: Cinza gainsboro + whitesmoke: Fumaça branca + snow: Neve + ghostwhite: Branco fantasma + floralwhite: Branco floral + linen: Linho + antiquewhite: Branco antigo + papayawhip: Papaya whip + blanchedalmond: Amêndoa branqueada + bisque: Bisque + moccasin: Mocassim + navajowhite: Branco navajo + peachpuff: Pêssego + mistyrose: Rosa nebuloso + lavenderblush: Lavanda avermelhada + seashell: Concha marinha + oldlace: Renda antiga + ivory: Marfim + honeydew: Melão + mintcream: Creme de menta + azure: Azul celeste + aliceblue: Azul alice + lavender: Lavanda + lightsteelblue: Azul aço claro + lightslategray: Cinza ardósia claro + slategray: Cinza ardósia + steelblue: Azul aço + royalblue: Azul royal + midnightblue: Azul meia-noite + navy: Azul-marinho + darkblue: Azul escuro + mediumblue: Azul médio + dodgerblue: Azul dodger + cornflowerblue: Azul centáurea + skyblue: Azul céu + lightblue: Azul claro + powderblue: Azul pó + paleturquoise: Turquesa pálido + lightcyan: Ciano claro + cyan: Ciano + aquamarine: Água-marinha + turquoise: Turquesa + mediumturquoise: Turquesa média + darkturquoise: Turquesa escura + lightseagreen: Verde mar claro + cadetblue: Azul cadete + darkcyan: Ciano escuro + teal: Verde-azulado + darkslategray: Cinza ardósia escuro + darkgreen: Verde escuro + green: Verde floresta + forestgreen: Verde floresta + seagreen: Verde mar + mediumseagreen: Verde pedra preciosa médio + mediumaquamarine: Água-marinha média + darkseagreen: Verde mar claro + palegreen: Verde claro + lightgreen: Verde claro + springgreen: Verde primavera + mediumspringgreen: Verde relva médio + lawngreen: Verde grama + chartreuse: Chartreuse + greenyellow: Verde-amarelado + lime: Limão + limegreen: Verde limão + yellowgreen: Verde-amarelado + darkolivegreen: Verde-oliva escuro + olivedrab: Verde-oliva + olive: Verde-oliva + darkkhaki: Cáqui escuro + palegoldenrod: Ouro pálido + cornsilk: Seda de milho + beige: Bege + lightyellow: Amarelo claro + lightgoldenrodyellow: Ouro claro + lemonchiffon: Chiffon de limão + wheat: Trigo + burlywood: Madeira robusta + tan: Bronzeado + yellow: Amarelo + gold: Ouro + sandybrown: Marrom arenoso + darkorange: Laranja escuro + goldenrod: Ouro velho + peru: Peru + darkgoldenrod: Ouro velho escuro + chocolate: Chocolate + sienna: Siena + saddlebrown: Marrom sela + maroon: Borgonha + darkred: Vermelho escuro + firebrick: Tijolo refratário + indianred: Vermelho indiano + rosybrown: Marrom rosado + darksalmon: Salmão escuro + lightcoral: Coral claro + salmon: Salmão + lightsalmon: Salmão claro + coral: Coral + tomato: Tomate + orangered: Laranja avermelhado + crimson: Carmesim + mediumvioletred: Vermelho-violeta médio + deeppink: Rosa intenso + hotpink: Rosa quente + palevioletred: Vermelho-violeta pálido + pink: Rosa + lightpink: Rosa claro + thistle: Cardo + magenta: Magenta + fuchsia: Fúcsia + violet: Violeta + plum: Ameixa + orchid: Orquídea + mediumorchid: Orquídea média + darkorchid: Orquídea escura + darkviolet: Violeta escuro + darkmagenta: Magenta escuro + purple: Roxo + indigo: Anil + darkslateblue: Azul ardósia escuro + blueviolet: Azul-violeta + mediumpurple: Roxo médio + slateblue: Azul ardósia + mediumslateblue: Azul ardósia médio + + - name: Fundo + color: rgba(0, 255, 255, .4) + tags: + fantasy: Estilo de fantasia + ban: Ficção científica + cyberpunk: Cyberpunk + depth_of_field: Profundidade de campo (técnica de pintura) + blurry: Fundo desfocado + blurry_foreground: Primeiro plano desfocado + simple_background: Fundo simples + black_background: Fundo preto + white_background: Fundo branco + transparent_background: Fundo transparente + beige_background: Fundo bege + brown_background: Fundo marrom + tan_background: Fundo marrom-avermelhado + grey_background: Fundo cinza + two-tone_background: Fundo de duas cores + gradient_background: Fundo com gradiente + multicolored_background: Fundo multicolorido + rainbow_background: Fundo arco-íris + abstract_background: Fundo abstrato + argyle_background: Fundo em losangos + checkered_background: Fundo quadriculado + floral_background: Fundo com flores + halftone_background: Fundo com retículas + heart_background: Fundo rosa + honeycomb_background: Fundo em formato de colmeia + plaid_background: Fundo em xadrez + polka_dot: Fundo com bolinhas + striped_background: Fundo listrado + scenery: Paisagem + landscape: Paisagem + foral_background: Fundo com padrão floral + crop_top_overhang: Saliência superior cortada + starry_background: Fundo estrelado + sparkle_background: Fundo com brilho de estrelas + cityscape: Paisagem urbana + city_lights: Fundo com luzes da cidade + clock_background: Fundo com relógios + bubble_background: Fundo com bolhas + border: Borda + pillarboxed: Fundo com formato de pilar + rounded_corners: Fundo ou moldura com cantos arredondados + viewfinder: Visor de câmera + windowboxed: Fundo com moldura + outside_border: Parte da imagem está fora da moldura de fundo + flashback: Cena de flashback + wall_of_text: Fundo de texto + background_text: Texto de fundo + +- name: Ambiente + groups: + - name: Estação do ano + color: rgba(31, 144, 255, .4) + tags: + in spring: Primavera + in summer: Verão + in autumn: Outono + in winter: Inverno + (autumn maple forest:1.3),(very few fallen leaves),(path): Floresta de bordo no outono + + - name: Tempo + color: rgba(31, 144, 255, .4) + tags: + day: Dia + dusk: Crepúsculo + night: Noite + rain: Chuva + in the rain: Na chuva + rainy days: Dias chuvosos + sunset: Pôr do sol + cloudy: Nublado + full moon: Lua cheia + sun: Sol + moon: Lua + full_moon: Lua cheia + stars: Estrelas + sky: Céu + universe: Universo + snow,ice: Neve, gelo + snowflakes: Flocos de neve + lighting: Relâmpago + rainbow: Arco-íris + meteor shower: Chuva de meteoros + cumulonimbus: Cumulonimbus + + - name: Natureza + color: rgba(31, 144, 255, .4) + tags: + nature: Natureza + sea: Mar + ocean: Oceano + beach: Praia + hills: Colinas + in a meadow: Em um prado + on the beach: Na praia + underwater: Subaquático + over the sea: Sobre o mar + grove: Bosque + on a desert: No deserto + plateau: Planalto + cliff: Penhasco + canyon: Cânion + oasis: Oásis + bamboo forest: Floresta de bambu + glacier: Glaciar + floating island: Ilha flutuante + volcano: Vulcão + savanna: Savana + waterfall: Cachoeira + stream: Riacho + wasteland: Terreno baldio + field: Campo + rice paddy: Arrozal + wheat field: Campo de trigo + flower field: Campo de flores + flower sea: Mar de flores + space: Espaço + starry sky: Céu estrelado + lake: Lago + river: Rio + onsen: Fonte termal + flowers meadows: Prados floridos + Alps: Alpes + Dreamy forest: Floresta dos sonhos (sensação de irrealidade, partículas de luz) + mountain: Montanha + on a hill: Em uma colina + the top of the hill: O topo da colina + outdoors: Ao ar livre + + - name: Água + color: rgba(31, 144, 255, .4) + tags: + ocean: Oceano + dripping: Pingando + beach: Praia + lake: Lago + waterfall: Cachoeira + ripples: Ondulações + swirl: Redemoinho + waves: Ondas + seashell: Concha marinha + seaweed: Alga marinha + + - name: Céu + color: rgba(31, 144, 255, .4) + tags: + sky: Céu + gradient_sky: Céu em gradiente + night_sky: Céu noturno + starry_sky: Céu estrelado + hyper_galaxy: Hiper galáxia + star_(sky): Estrela (no céu) + star_trail: Rastro de estrela + sunset: Pôr do sol + moon: Lua + lunar: Lunar + crescent: Crescente + crescent_moon: Lua crescente + full_moon: Lua cheia + moonlight: Luz da lua + scarlet_moon: Lua escarlate + universe: Universo + space: Espaço + planet: Planeta + from_space_station: Da estação espacial + satellite: Satélite + + - name: Nuvens + color: rgba(31, 144, 255, .4) + tags: + cirrus: Cirrus + Cirrocumulus: Cirrocúmulos + Cirrostratus: Cirroestratos + Altocumulus: Altocúmulos + Altostratus: Altoestratos + stratus: Estratos + Stratocumulus: Stratocúmulos + cumulus: Cúmulos + Cumulonimbus: Cumulonimbos + Nimbostratus: Nimboestratos + cirrus_fibratus: Cirrus fibratus + cirrus_uncinus: Cirrus uncinus + cirrus_spissatus: Cirrus spissatus + cirrus_floccus: Cirrus floccus + cirrus_castellanus: Cirrus castellanus + cirrus_intortus: Cirrus intortus + cirrocumulus: Cirrocúmulos + cirrocumulus_stratiformis: Cirrocúmulos estratiformes + cirrocumulus_floccus: Cirrocúmulos floccus + cirrocumulus_castellanus: Cirrocúmulos castellanus + cirrocumulus_lacunosus: Cirrocúmulos lacunosus + cirrostratus: Cirroestratos + cirrostratus_fibratus: Cirroestratos fibratus + cirrostratus_nebulosus: Cirroestratos nebulosus + altocumulus: Altocúmulos + altocumulus_strataformis: Altocúmulos estratiformes + altocumulus_lenticularis: Altocúmulos lenticulares + altocumulus_castellanus: Altocúmulos castellanus + altocumulus_floccus: Altocúmulos floccus + altocumulus_lacunosus: Altocúmulos lacunosus + altostratus: Altoestratos + altostratus_undulatus: Altoestratos ondulados + altostratus_duplicates: Altoestratos duplicados + altostratus_pannus: Altoestratos pannus + altostratus_translucidus: Altoestratos translúcidos + altostratus_opacus: Altoestratos opacus + altostratus_radiatus: Altoestratos radiatus + altostratus_mammatus: Altoestratos mammatus + stratus_fractus: Estratos fragmentados + stratus_nebulosus: Estratos nebulosus + stratus_undulatus: Estratos ondulados + stratocumulus: Stratocúmulos + stratocumulus_stratiformis: Stratocúmulos estratiformes + stratocumulus_cumulogentis: Stratocúmulos cumulogentis + stratocumulus_castellanus: Stratocúmulos castellanus + stratocumulus_lenticularis: Stratocúmulos lenticulares + stratocumulus_lacunosus: Stratocúmulos lacunosus + cumulus_humilis: Cúmulos humilis + cumulus_mediocris: Cúmulos mediocris + cumulus_congestus: Cúmulos congestus + cumulus_fractus: Cúmulos fragmentados + cumulonimbus: Cumulonimbos + cumulonimbus_calvus: Cumulonimbos calvus + cumulonimbus_capillatus: Cumulonimbos capillatus + cumulonimbus_incus: Cumulonimbos incus + + - name: Atmosfera + color: rgba(31, 144, 255, .4) + tags: + new year: Ano novo + year of the rabbit: Ano do Coelho + valentine: Dia dos Namorados + lantern festival: Festival das Lanternas + summer festival: Festival de Verão + tanabata: Festival Tanabata + mid-autumn festival: Festival do Meio do Outono + halloween: Halloween + christmas: Natal + explosion: Explosão + water vapor: Vapor de água + fireworks: Fogos de artifício + ceiling window: Janela no teto + colourful glass: Vidro colorido + stain glass: Vitral + Graffiti wall: Parede de grafite + mosaic background: Fundo de mosaico + liquid background, Sputtered water: Fundo líquido, Água borrifada + magic circles: Círculos mágicos + fluorescent mushroom forests background: Fundo de floresta de cogumelos fluorescentes + (((colorful bubble))): Bolha colorida + in the ocean: No oceano + against backlight at dusk: Contra a luz de fundo ao entardecer + golden hour lighting: Iluminação da hora dourada + strong rim light: Luz de borda intensa + intense shadows: Sombras intensas + +- name: Cenário + groups: + - name: Ao ar livre + color: rgba(159, 32, 240, .4) + tags: + castle: Castelo + city: Cidade + waterpark: Parque aquático + carousel: Carrossel + ferris wheel: Roda-gigante + aquarium: Aquário + zoo: Zoológico + bowling alley: Boliche + art gallery: Galeria de arte + museum: Museu + planetarium: Planetário + swimming pool: Piscina + stadium: Estádio + temple: Templo + bus stop: Parada de ônibus + train station: Estação de trem + fountain: Fonte + playground: Parque infantil + market stall: Barraca de mercado + phone booth: Cabine telefônica + railroad tracks: Trilhos de trem + airport: Aeroporto + tunnel: Túnel + skyscraper: Arranha-céu + cityscape: Paisagem urbana + ruins: Ruínas + greco-roman architectur: Arquitetura greco-romana + east asian architecture: Arquitetura asiática oriental + torii: Torii + church: Igreja + shop: Loja + street: Rua + cyberpunk city: Cidade cyberpunk + in the cyberpunk city: Na cidade cyberpunk + chinese style architecture: Arquitetura de estilo chinês + gohei: Gohei + Bustling city: Cidade movimentada + laboratory: Laboratório + coffee house: Casa de café + gym: Academia + library: Biblioteca + prison: Prisão + engine room: Sala de máquinas + handrail: Corrimão + neon lights: Luzes de néon + street lamp: Poste de luz + road: Estrada + shanty town/slum: Favela + warehouse: Armazém + gothic architecture: Arquitetura gótica + restaurant: Restaurante + treehouse: Casa na árvore + modern,Europe: Moderno, Europa + Industrial wind, Chinese architecture: Arquitetura chinesa industrial + building_ruins: Ruínas de prédio + bar: Bar + izakaya: Izakaya + cafe: Café + bakery: Padaria + convenience store: Loja de conveniência + supermarket: Supermercado + pharmacy: Farmácia + theater: Teatro + movie theater: Cinema + workshop: Oficina + courtroom: Tribunal + park: Parque + Trapeze: Trapézio + classroom: Sala de aula + botanical garden: Jardim botânico + amusement_park: Parque de diversões + Disney_land: Disneylândia + arena: Arena + wrestling_ring: Ringue de luta livre + Auditorium: Auditório + concert: Concerto + Japanese_hotel: Hotel japonês + jail_bars: Barras de prisão + in_the_movie_theatre: No cinema + stage: Palco + harbor: Porto + casino: Cassino + billiard: Mesa de bilhar + dungeon: Calabouço + grave: Sepultura + graveyard: Cemitério + tombstone: Lápide + monolith: Monólito + rappelling: Rappel + building: Edifício + architecture: Arquitetura + magnificent_architecture: Arquitetura magnífica + Skyscraper: Arranha-céu + east_asian_architecture: Arquitetura asiática oriental + cathedral: Catedral + chinese_style_loft: Loft de estilo chinês + traditional_chinese_room: Quarto tradicional chinês + turret: Torre + tower: Torre + mosque: Mesquita + reservoir: Reservatório + railroad: Ferrovia + railway: Ferrovia + bridge: Ponte + under_bridge: Sob a ponte + remains: Ruínas + rubble_ruins: Ruínas + + - name: Cidade + color: rgba(159, 32, 240, .4) + tags: + city: Cidade + cityscape: Paisagem urbana + street: Rua + downtown: Centro da cidade + crowd: Multidão + alley: Beco + in_main_street: Na rua principal + Intersection: Interseção + avenue: Avenida + lawn: Gramado + road: Estrada + path: Caminho + pavement: Pavimento + road_sign: Placa de trânsito + traffic_cone: Cone de trânsito + lamppost: Poste de luz + power_lines: Postes e fios de energia + fence: Cerca + railing: Corrimão + bench: Banco + vending_machine: Máquina de venda automática + + - name: Interior + color: rgba(159, 32, 240, .4) + tags: + indoor: Interior + bathroom: Banheiro + toilet stall: Cabine do banheiro + otaku room: Quarto de otaku + cafeteria: Cafeteria + classroom: Sala de aula + clubroom: Sala de clube + bedroom: Quarto + kitchen: Cozinha + dormitory: Dormitório + dungeon: Calabouço + infirmary: Enfermaria + stage: Palco + electrical room: Sala elétrica + server room: Sala de servidores + basement: Porão + art room: Sala de arte + bathing: Banho + stairs: Escadas + greenhouse: Estufa + + - name: Piso + color: rgba(159, 32, 240, .4) + tags: + floor: Piso + tile_floor: Piso de madeira + + - name: Mobília + color: rgba(159, 32, 240, .4) + tags: + bedroom: Quarto + tatami: Tatame + bed: Cama + couch: Sofá + kotatsu: Mesa aquecida + fireplace: Lareira + window_: Janela + sash: Bandeira da janela + curtains: Cortinas + door: Porta + sliding_doors: Portas de correr + clothes_rack: Cabide + air_conditioner: Ar condicionado + table: Mesa + school_desk: Carteira escolar + chair: Cadeira + armchair: Poltrona + lounge_chair: Poltrona reclinável + beach_chair: Cadeira de praia + folding_chair: Cadeira dobrável + invisible_chair: Cadeira invisível + office_chair: Cadeira de escritório + wheelchair: Cadeira de rodas + + - name: Roupas de cama + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: Lençol + mattress: Colchão + futon: Futon japonês + cushion: Almofada + carpet: Tapete + pillow: Travesseiro + dumpling_Hug_Pillow: Travesseiro em forma de bolinho + pillow_hug: Travesseiro de abraçar + yes-no_pillow: Travesseiro de sim-não + stuffed_animal: Pelúcia + stuffed_bunny: Coelho de pelúcia + koakuma: Koakuma + + - name: Banheiro + color: rgba(159, 32, 240, .4) + tags: + bathroom: Banheiro + bathtub,: Banheira + rubber_duck: Pato de borracha + shower_head: Chuveiro + toilet: Vaso sanitário + squat_toilet: Vaso sanitário estilo oriental + soap: Sabonete + tiles: Azulejos + +- name: Itens + groups: + - name: Materiais de Estudo + color: rgba(189, 182, 107, .4) + tags: + notebook: Caderno + paintbrush: Pincel + pencil: Lápis + book: Livro + open_book: Livro Aberto + book_stack: Pilha de Livros + bookshelf: Estante de Livros + school_bag: Mochila Escolar + backpack: Mochila + + - name: Dispositivos Eletrônicos + color: rgba(189, 182, 107, .4) + tags: + computer: Computador + mouse: Mouse + cellphone: Celular + Smartphones: Smartphone + handheld_game_console_: Console de Jogos Portátil + nintendo_3ds: Nintendo 3DS + nintendo_ds: Nintendo DS + nintendo_switch: Nintendo Switch + buttons: Botões + power_lines: Cabo de Energia + cable: Cabo + + - name: Utensílios de Cozinha + color: rgba(189, 182, 107, .4) + tags: + pot: Panela + teapot: Chaleira + ladle: Concha + can: Lata + soda_can: Lata de Refrigerante + cup: Copo + plate: Prato + tray: Bandeja + bowl: Tigela + fork: Garfo + chopsticks: Hashi + spoon: Colher + drinking_glass: Copo de Água + tumbler: Copo Comum + beer_mug: Caneca de Cerveja + gift_box: Caixa de Presente + heart-shaped_box: Caixa em Forma de Coração + candle: Vela + + - name: Instrumentos Musicais + color: rgba(189, 182, 107, .4) + tags: + music: Música + guitar: Guitarra + piano: Piano + cello: Violoncelo + playing_instrument: Tocando Instrumento + wind_chime: Carrilhão + + - name: Outros Itens + color: rgba(189, 182, 107, .4) + tags: + wristwatch: Relógio de Pulso + folding_fan: Leque Dobrável + paper_fan: Leque de Papel + uchiwa: Leque Japonês + umbrella: Guarda-chuva + transparent_umbrella: Guarda-chuva Transparente + closed_umbrella: Guarda-chuva Fechado + oil-paper_umbrella: Guarda-chuva de Papel Oleado + Parasol: Guarda-sol + basket: Cesta + bouquet: Buquê + bucket: Balde + pail: Balde + camera: Câmera + gohei: Gohei (Tira de Papel Sagrado) + lantern/lamp: Lanterna + whip: Chicote + riding_crop: Chicote de Montaria + ofuda: Ofuda (Tira de Papel Sagrado) + cane: Bengala + wand: Varinha + magic: Magia + trading_card: Carta de Troca + playing_card: Carta de Jogar + Cassette: Fita Cassete + chess_piece: Peça de Xadrez + coin: Moeda + copper: Moeda de Cobre + hammer: Martelo + microphone: Microfone + mimikaki: Espátula de Limpeza de Ouvido + sack: Saco de Juta + scales: Balança + chibi_inset: Ilustração Chibi + damaged: Danificado + diamond_(shape): Diamante (Formato) + gourd: Cabaça + holding_gift: Segurando Presente + inlet: Entrada + key: Chave + leash: Coleira + Lever: Alavanca + molecule: Molécula + money: Dinheiro + Painting_(Object): Pintura (Objeto) + photo_(object): Foto (Objeto) + sand: Areia + stubble: Restolho + trophy: Troféu + tube_top: Top Tubo + water_bottle: Garrafa de Água + lotion: Loção Protetora Solar/Loção Corporal + lotion_bottle: Frasco de Loção + + - name: Armas + color: rgba(189, 182, 107, .4) + tags: + weapon: Arma + weapon_on_back: Arma nas Costas + weapon_over_shoulder: Arma sobre o Ombro + huge_weapon: Arma de Grande Tamanho + planted_weapon: Arma Cravada no Chão + broken_weapon: Arma Quebrada + planted_sword: Espada Cravada (plantada) + sword: Espada + scabbard: Bainha + unsheathing: Desembainhando + katana: Katana + saber_(weapon): Sabre (Arma) + scythe: Foice + nose_hatchet: Machado de Nariz + dagger: Adaga + scissors: Tesoura + axe: Machado + hatchet: Machadinha + stake: Estaca + lance: Lança + trident: Tridente + bow_(weapon): Arco + arrow: Flecha + claw_(weapon): Garra (Arma) + rifle,: Rifle + gun: Arma de Fogo + handgun: Pistola + thompson_submachine_gun: Metralhadora Thompson + magazine_(weapon): Carregador (Arma) + dynamite: Dinamite + bomb: Bomba + track missiles: Mísseis Rastreadores + complex Trajectory: Trajetória Complexa + tank: Tanque + cannon: Canhão + military_vehicle: Veículo Militar + motorcycle: Motocicleta + ship: Navio + watercraft: Embarcação + car: Carro + machine: Máquina + machinery: Armamento Mecânico + mechanical_arms: Braços Mecânicos + mechanization: Mecanização + robot_ears: Ouvidos de Robô + robot_joints: Articulações de Robô + variable_fighter: Caça Variável + sorcerer's_sutra_scroll: Rolo de Sutra do Feiticeiro + + - name: Comida + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: Sushi Enrolado + apple: Maçã + aubergine: Berinjela + burger: Hambúrguer + cake: Bolo + candy: Doce + candy_apple: Maçã do Amor + candy_cane: Bengala de Doce + carrot: Cenoura + cigarette: Cigarro + coffee: Café + cookie: Biscoito + cotton_candy_: Algodão Doce + cream: Creme + dango: Bolinho de Arroz + doughnut: Donut + drink: Bebida + egg: Ovo + fruit: Fruta + Gelatin: Gelatina + ice_cream: Sorvete + kafuu_chino: Kafuu Chino + makizushi: Sushi Enrolado em Alga + meat: Carne + noodles: Macarrão + obento: Obento + onigiri: Onigiri + pancake: Panqueca + pasties: Pastéis + peach: Pêssego + ramen: Ramen + sake: Saquê Japonês + taiyaki: Taiyaki + tea: Chá + teacup: Xícara de Chá + wagashi: Wagashi + wine: Vinho + jam: Geléia + pocky: Pocky + bottled_water: Água Engarrafada + sweet_potato: Batata-doce + sweets: Doces + food: Comida + food_in_mouth: Comida na Boca + food_on_: Comida no Rosto + food_on_body: Comida no Corpo + food_print: Estampa de Comida + food_stand: Barraca de Comida + in_food: (Personagem) na Comida + chips: Batatas Fritas + potato_chips: Batatas Fritas + telstar: Bola de Futebol Telstar + sundae: Sundae + tempura: Tempurá + + - name: Animais + color: rgba(189, 182, 107, .4) + tags: + reptile: Réptil + crow: Corvo + bird: Pássaro + penguin: Pinguim + chick: Pintinho + manjuu_(azur_lane): Manjuu (Azur Lane) + shell: Concha + wriggle_nightbug: Besouro + dragonfly: Libélula + mammal: Mamífero + wolf: Lobo + 扶桑花: Cavalo + whale: Baleia + cat: Gato + cat_teaser: Brinquedo para Gato + dog: Cachorro + dog_tags: Placa de Identificação de Cachorro + fox: Raposa + bunny: Coelho + snow_bunny: Coelho da Neve + stuffed_bunny: Coelho de Pelúcia + horse: Cavalo + cow: Vaca + dragon: Dragão + loong: Dragão Chinês + eastern_dragon: Dragão Oriental + snake: Cobra + slime: Slime + bear: Urso + panda: Panda + teddy_bear: Urso de Pelúcia + tiger: Tigre + bat: Morcego + hamster: Hamster + mouse: Rato + squirrel: Esquilo + + - name: Plantas + color: rgba(189, 182, 107, .4) + tags: + plant: Planta + flower: Flor + vase: Vaso de Flores + bouquet: Buquê + flower_bloom: Flor em Flor + plum_blossom: Flor de Ameixeira + cherry_blossoms: Flores de Cerejeira + wisteria: Glicínia + hibiscus: Hibisco + hydrangea: Hortênsia + rose: Rosa + spider_lily: Lírio-Aranha + lily: Lírio + lotus: Lótus + bamboo: Bambu + entangled_plants: Plantas Entrelaçadas + orchid: Orquídea + chrysanthemum: Crisântemo + narcissu: Narciso + tree: Árvore + branch: Galho + forest: Floresta + pine_tree: Pinheiro + palm_tree: Palmeira + maple_tree: Árvore de Bordo + bush/shrub,: Arbusto + christmas_tree: Árvore de Natal + maple_leaf: Folha de Bordo + pumpkin: Abóbora + jack-o'-lantern: Lanterna de Abóbora + spring_onion: Cebolinha + +- name: Lente + groups: + - name: Lente + color: rgba(99, 201, 2, .4) + tags: + panorama: Panorama + landscape: Lente de paisagem (visão distante) + wide_shot: Lente de grande angular (panorâmica) + medium_shot: Lente de médio alcance + mid_shot: Lente de médio alcance + full_shot: Plano geral + bust: Plano de meio corpo + upper_body: Plano do tronco superior + lower_body: Plano do tronco inferior + cowboy_shot: Plano do tronco superior + coxa superior (lente de cowboy) + portrait: Retrato (rosto + ombros + ocasionalmente o peito) + profile: Retrato de perfil (versão de perfil do retrato) + + - name: Close-up + color: rgba(99, 201, 2, .4) + tags: + close-up: Close-up + macro_shot: Lente macro + inset: Inserção de outra lente ou imagem + cross-section: Seção transversal + x-ray: Raio-X + solo_focus: Foco em uma única pessoa (adequado para cenas complexas) + xx_focus: Foco em xx + face_focus: Foco no rosto + eyes_focus: Foco nos olhos + foot_focus: Foco nos pés + hip_focus: Foco nos quadris + ass_focus: Foco nas nádegas + vehicle_focus: Foco no veículo + between_legs: (Ênfase) entre as pernas + between_breasts: (Destaque) nos seios + between_fingers: (Destaque) entre os dedos + peeking: Espiando + peeking_out: Espiando (posição de espiar) + peeping: Espiando (ênfase na perspectiva) + midriff_peek: Espiando o umbigo + armpit_peek: Espiando a axila + pussy_peek: Espiando a virilha + panty_peek: Espiando a calcinha + pantyshot: Flagrante de calcinha + caught: Pego em flagrante + + - name: Outras composições + color: rgba(99, 201, 2, .4) + tags: + aerial: Aéreo + turn_one's_back: Virar as costas + upskirt: Ângulo de baixo da saia + phone_screen: Tela do celular + multiple_views: Múltiplas vistas + mirror selfie: Selfie no espelho + three-quarter view: Visão de 3/4 + + - name: Ângulos da lente + color: rgba(99, 201, 2, .4) + tags: + front view: Visão frontal + from_side: Visão lateral + from_above: De cima ↘ + from_below: De baixo ↗ + from_outside: De fora para dentro + from_back: Visão traseira + from behind: Visão traseira + dynamic_angle: Ângulo dinâmico + cinematic_angle: Ângulo cinematográfico + dutch angle: Ângulo holandês + foreshortening: Encurtamento perspectivo + fisheye: Efeito de olho de peixe + + - name: Efeitos + color: rgba(99, 201, 2, .4) + tags: + depth of field: Profundidade de campo (harmonia entre pessoa e cenário) + lens_flare: Flare da lente + motion_blur: Desfoque de movimento + motion_lines: Linhas de movimento + speed_lines: Linhas de velocidade + bokeh: Desfoque de fundo + chromatic_aberration: Aberração cromática + overexposure: Superexposição + contour_deepening: Aprofundamento do contorno + + - name: Ações do protagonista + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: Olhando para o espectador + eye-contact: Contato visual + eyeball: Olhando fixamente + stare: Olhar fixo + looking_back: Olhar para trás + gradient: Inclinação do personagem + looking_down: Olhar para baixo ↘ + looking_up: Olhar para cima ↗ + facing_away: Olhando para outro lugar + looking_to_the_side: Olhando para o lado + looking_away: Olhando para outro lugar + looking_ahead: Olhar para o futuro + looking_afar: Olhar para longe + looking_outside: Olhando para fora + head_tilt: Inclinação da cabeça + head_down: Cabeça baixa + sideways_glance: Olhar de relance para o lado + upshirt: Olhar por baixo da camisa + upshorts: Olhar por baixo da saia + looking_at_another: Olhando para outra pessoa + looking_at_phone: Olhando para o celular + looking_at_animal: Olhando para um animal + looking_at_mirror: Olhando para o espelho + looking_at_hand: Olhando para a mão + looking_at_hands: Olhando para as duas mãos + looking_at_food: Olhando para a comida + looking_at_screen: Olhando para a tela + +- name: Hanfu + groups: + - name: "Estilo Tang:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: Estilo Tang + + - name: Shangshan + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: Shangshan superior laranja + red upper shan: Shangshan superior vermelho + green upper shan: Shangshan superior verde + blue upper shan: Shangshan superior azul + pink upper shan: Shangshan superior rosa + yellow upper shan: Shangshan superior amarelo + white upper shan: Shangshan superior branco + light blue upper shan: Shangshan superior azul claro + light green upper shan: Shangshan superior verde claro + light red upper shan: Shangshan superior vermelho claro + cyan blue upper shan: Shangshan superior azul ciano + light purple upper shan: Shangshan superior roxo claro + black with blue upper shan: Shangshan superior preto com azul + white with orange upper shan: Shangshan superior branco com laranja + pink with black upper shan: Shangshan superior rosa com preto + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: Shangshan longo laranja + red long upper shan: Shangshan longo vermelho + green long upper shan: Shangshan longo verde + blue long upper shan: Shangshan longo azul + pink long upper shan: Shangshan longo rosa + yellow long upper shan: Shangshan longo amarelo + white long upper shan: Shangshan longo branco + light blue long upper shan: Shangshan longo azul claro + light green long upper shan: Shangshan longo verde claro + light red long upper shan: Shangshan longo vermelho claro + cyan blue long upper shan: Shangshan longo azul ciano + light purple long upper shan: Shangshan longo roxo claro + black with blue long upper shan: Shangshan longo preto com azul + white with orange long upper shan: Shangshan longo branco com laranja + pink with black long upper shan: Shangshan longo rosa com preto + + - name: Qixiong Poqun + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: Saia poqun branca + red chest po skirt: Saia poqun vermelha + green chest po skirt: Saia poqun verde + blue chest po skirt: Saia poqun azul + pink chest po skirt: Saia poqun rosa + purple chest po skirt: Saia poqun roxa + multicolour chest po skirt: Saia poqun multicolorida + purple with white chest po skirt: Saia poqun roxa com branca + white with yellow chest po skirt: Saia poqun branca com amarela + blue with white chest po skirt: Saia poqun azul com branca + orange with white chest po skirt: Saia poqun laranja com branca + green with white chest po skirt: Saia poqun verde com branca + light orange with white chest po skirt: Saia poqun laranja claro com branca + pink with white chest po skirt: Saia poqun rosa com branca + white with pink chest po skirt: Saia poqun branca com rosa + + - name: Qixiong Zhequn + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: Saia plissada branca + red chest pleated skirt: Saia plissada vermelha + green chest pleated skirt: Saia plissada verde + blue chest pleated skirt: Saia plissada azul + pink chest pleated skirt: Saia plissada rosa + purple chest pleated skirt: Saia plissada roxa + multicolour chest pleated skirt: Saia plissada multicolorida + purple with white chest pleated skirt: Saia plissada roxa com branca + white with yellow chest pleated skirt: Saia plissada branca com amarela + blue with white chest pleated skirt: Saia plissada azul com branca + orange with white chest pleated skirt: Saia plissada laranja com branca + green with white chest pleated skirt: Saia plissada verde com branca + light orange with white chest pleated skirt: Saia plissada laranja claro com branca + pink with white chest pleated skirt: Saia plissada rosa com branca + white with pink chest pleated skirt: Saia plissada branca com rosa + + - name: Xidai + color: rgba(178, 33, 34, .4) + tags: + green waistband: Faixa de cintura verde + yellow waistband: Faixa de cintura amarela + red waistband: Faixa de cintura vermelha + pink waistband: Faixa de cintura rosa + orange waistband: Faixa de cintura laranja + light blue waistband: Faixa de cintura azul claro + light green waistband: Faixa de cintura verde clara + green with yellow waistband: Faixa de cintura verde com amarela + purple with white waistband: Faixa de cintura roxa com branca + red with white waistband: Faixa de cintura vermelha com branca + red with black waistband: Faixa de cintura vermelha com preta + yellow with white waistband: Faixa de cintura amarela com branca + + - name: Pibo + color: rgba(178, 33, 34, .4) + tags: + white pibo: Pibo branco + orange pibo: Pibo laranja + black pibo: Pibo preto + pink pibo: Pibo rosa + red pibo: Pibo vermelho + purple pibo: Pibo roxo + light green pibo: Pibo verde claro + white with yellow pibo: Pibo branco com amarelo + + - type: wrap + + - name: "Estilo Song:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: Estilo Song + + - name: Duanshan + color: rgba(178, 33, 34, .4) + tags: + purple short shan: Duanshan curto roxo + red short shan: Duanshan curto vermelho + green short shan: Duanshan curto verde + blue short shan: Duanshan curto azul + pink short shan: Duanshan curto rosa + yellow short shan: Duanshan curto amarelo + white short shan: Duanshan curto branco + light blue short shan: Duanshan curto azul claro + light green short shan: Duanshan curto verde claro + light red short shan: Duanshan curto vermelho claro + cyan blue short shan: Duanshan curto azul ciano + light purple short shan: Duanshan curto roxo claro + black with blue short shan: Duanshan curto preto com azul + white with yellow short shan: Duanshan curto branco com amarelo + light yellow with green with white short shan: Duanshan curto amarelo claro com verde com branco + + - name: Changshan + color: rgba(178, 33, 34, .4) + tags: + purple long shan: Changshan longo roxo + red long shan: Changshan longo vermelho + green long shan: Changshan longo verde + blue long shan: Changshan longo azul + pink long shan: Changshan longo rosa + yellow long shan: Changshan longo amarelo + white long shan: Changshan longo branco + light blue long shan: Changshan longo azul claro + light green long shan: Changshan longo verde claro + light red long shan: Changshan longo vermelho claro + cyan blue long shan: Changshan longo azul ciano + light purple long shan: Changshan longo roxo claro + black with blue long shan: Changshan longo preto com azul + white with yellow long shan: Changshan longo branco com amarelo + light yellow with green with white long shan: Changshan longo amarelo claro com verde com branco + + - name: Baizhequn + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: Saia plissada branca + red pleated skirt: Saia plissada vermelha + green pleated skirt: Saia plissada verde + blue pleated skirt: Saia plissada azul + pink pleated skirt: Saia plissada rosa + light blue pleated skirt: Saia plissada azul claro + white golden pleated skirt: Saia plissada branca dourada + gradient green pleated skirt: Saia plissada verde degradê + translucent white pleated skirt: Saia plissada branca translúcida + red cyan gradient pleated skirt: Saia plissada vermelha com degradê ciano + red green gradient pleated skirt: Saia plissada vermelha com degradê verde + green with white pleated skirt: Saia plissada verde com branca + light yellow with green with white pleated skirt: Saia plissada amarela clara com verde com branca + + - name: Songmo + color: rgba(178, 33, 34, .4) + tags: + orange songmo: Songmo laranja + red songmo: Songmo vermelho + green songmo: Songmo verde + blue songmo: Songmo azul + pink songmo: Songmo rosa + yellow songmo: Songmo amarelo + white songmo: Songmo branco + purple songmo: Songmo roxo + green floral songmo: Songmo verde com estampa floral + purple floral songmo: Songmo roxo com estampa floral + cyan floral songmo: Songmo ciano com estampa floral + + - type: wrap + + - name: "Estilo Ming:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: Estilo Ming + + - name: Upper garment + color: rgba(178, 33, 34, .4) + tags: + short coat: Casaco curto + long coat: Casaco longo + + - name: Skirt + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: Saia mamian + + - name: Collar + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Gola sobreposta + round collar: Gola redonda + standing collar: Gola em pé + square collar: Gola quadrada + + - name: Decoration + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Ombreiras em nuvem + embroidery: Bordado + woven gold: Tecido dourado + makeup flower: Flor de maquiagem + bufu: Bufu diff --git a/group_tags/ru_RU.yaml b/group_tags/ru_RU.yaml new file mode 100644 index 0000000000000000000000000000000000000000..06f24d8d08223cae92dd1ac6383e7422e5def35a --- /dev/null +++ b/group_tags/ru_RU.yaml @@ -0,0 +1,4431 @@ +# 👍Источники интеграции подсказок: "路过银河" (zhihu), неизвестный автор (Google Drive), Интернет и т. д. Благодарим этих авторов за их бескорыстный вклад! +# +# ⚠️Рекомендуется не изменять содержимое этого файла, поскольку автор этого файла может периодически обновлять его, и изменение файла может привести к конфликтам при обновлении. +# ⚠️Если вам нужно настроить пользовательские ключевые слова, скопируйте этот файл, переименуйте его в custom.yaml и внесите изменения в custom.yaml. +# ⚠️Плагин будет прочитывать файл custom.yaml в первую очередь. Если файл custom.yaml не существует, будет прочитан этот файл. +# +# ⚠️Если вы хотите добавить свое собственное содержимое перед текущим файлом, вы можете создать файл prepend.yaml. +# ⚠️Если вы хотите добавить свое собственное содержимое после текущего файла, вы можете создать файл append.yaml. +# ⚠️custom.yaml: Перезаписывает текущий файл +# ⚠️prepend.yaml: Добавляет перед текущим файлом +# ⚠️append.yaml: Добавляет после текущего файла +# +# ⚠️Рекомендуется использовать профессиональный текстовый редактор (например, Visual Studio Code) для редактирования этого файла, чтобы избежать проблем с кодировкой и форматированием. +# ⚠️Не редактируйте этот файл с помощью стандартного блокнота Windows. +# ⚠️После внесения изменений рекомендуется проверить правильность формата содержимого на https://www.yamllint.com/. + +# Формат содержимого: +# - name: Название первого уровня +# groups: Список второго уровня +# - name: Название второго уровня +# color: Цвет текста ключевых слов по умолчанию (может быть пустым). Код CSS-цвета, например: #ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: Список ключевых слов +# - Английское ключевое слово: Локализованный перевод +# - Английское ключевое слово: Локализованный перевод +# ... + +# Локализованные переводы в этом содержимом сделаны автоматически и могут содержать неточности. Если вы заметили ошибку, пожалуйста, отправьте исправление через PR на GitHub. +# Если вы обнаружили ошибку в классификации, ключевых словах или переводе ключевых слов, пожалуйста, отправьте отчет об ошибке через Issue на GitHub. + +- name: Персона + groups: + - name: Объект + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1 девушка + 1boy: 1 мальчик + 2girls: 2 девушки + 2boys: 2 мальчика + 3girls: 3 девушки + 3boys: 3 мальчика + girl: девушка + boy: мальчик + solo: одиночный + multiple_girls: несколько девушек + little_girl: маленькая девочка + little_boy: маленький мальчик + shota: шота + loli: лоли + kawaii: милый + mesugaki: мэсугаки + adorable_girl: прелестная девушка + bishoujo: бисёдзё + gyaru: гяру + sisters: сестры + ojousama: оджоусама + female: женщина + mature_female: зрелая женщина + mature: зрелый + female_pervert: женская извращенка + male: мужчина + milf: милфа + otoko_no_ko: отоко-но-ко + crossdressing: переодевание + + - name: Личность + color: rgba(255, 123, 2, .4) + tags: + lifeguard: спасатель + boxer: боксёр + scientist: ученый + athletes: спортсмен + office lady: офисная леди + monk: монах + crobat: акробат + nun: монахиня + nurse: медсестра + stewardess: стюардесса + student: студент + waitress: официантка + teacher: учитель + racer: гонщик + police: полицейский + soldier: солдат + cheerleader: болельщица + actor: актер + actress: актриса + spy: шпион + agent: агент + assassin: убийца + poet: поэт + samurai: самурай + dancing girl: танцовщица + motorcyclist: мотоциклист + hacker: хакер + magician: фокусник + detective: детектив + doll: кукла + maid: горничная + pilot: пилот + diver: ныряльщик + bar censor: цензор в баре + missionary: миссионер + firefighter: пожарник + goalkeeper: вратарь + chef: повар + astronaut: астронавт + cashier: кассир + mailman: почтальон + barista: бариста + the hermit: отшельник + makihitsuji: пастух + office_lady: офисная леди + race_queen: королева гонок + queen: королева + doctor: врач + knight: рыцарь + housemaid: горничная + dancer: танцор + ballerina: балерина + gym_leader: тренер по гимнастике + trap: ловушка + female: женщина + harem: гарем + idol: идол + male: мужчина + priest: священник + cleric: священник (христианство) + wa_maid: японская горничная + yaoi: яой + yuri: юри + albino: альбинос + amputee: ампутант + + - name: Двумерный персонаж + color: rgba(255, 123, 2, .4) + tags: + pokemon: покемон + teddy bear: мишка + mario: Марио + pikachu: Пикачу + neon genesis evangelion: Неоновый генезис Евангелион + hatsune miku: Хацунэ Мику + harry potter: Гарри Поттер + doraemon: Дораэмон + saint seiya: Святой Сейя + gojou satoru: Годжо Сатору + avengers: Мстители + mazinger: Мазингер + captain america: Капитан Америка + crayon shin-chan: Крейзишин-чан + slam dunk: Баскетбол Кай + sun wukong: Сунь-Гок + witch: Ведьма + miko: Мико + ninja: Ниндзя + vampire: Вампир + knight: Рыцарь + magical_girl: Волшебная девочка + orc: Орк + druid: Друид + elf: Эльф + fairy: Фея + furry: Зверолюд + mermaid: Русалка + kamen rider: Камен Райдер + magister: Магистр + spider-man: Человек-паук + santa alter: Санта Альтер + monster_girl: Девушка-монстр + cat_girl: Кошечка + dog_girl: Собачка + fox_girl: Лисичка + kitsune: Кицунэ + kyuubi: Кюуби + raccoon_girl: Енот-девочка + wolf_girl: Волчица + bunny_girl: Зайка + horse_girl: Лошадь-девушка + cow_girl: Корова-девушка + dragon_girl: Дракон-девушка + centaur: Кентавр + slime_musume: Слизь-девушка + spider_girl: Паук-девушка + dominatrix: Доминатрикс + sailor_senshi: Морячка-воительница + mecha: Меха + mecha_musume: Меха-девушка + humanoid_robot_: Гуманоидный робот + cyborg: Киборг + angel: Ангел + devil: Дьявол + dark_elf: Темный эльф + imp: Имп + succubus: Суккуб + giantess: Гигантесса + minigirl: Мини-девочка + monster: Монстр + multiple girls: Множество девушек + no humans: Без людей + + - name: Возраст + color: rgba(255, 123, 2, .4) + tags: + toddler: малыш + kindergartener: детсадовец + child: ребенок + underage: несовершеннолетний + teenager: подросток (13-19) + teen: подросток (13-19) + early teen: ранний подросток (11-15) + adult: взрослый + elder: пожилой человек + old: старик + loli: лоли + shota: шота + + - name: Кожа + color: rgba(255, 123, 2, .4) + tags: + white_skin: белая кожа + pale_skin: бледная кожа + fair_skin: светлая кожа + brown_skin: коричневая кожа + deep_skin: темная кожа + dark_skin: темная кожа + black_skin: черная кожа + shiny_skin: блестящая кожа + white_marble_glowing_skin: белая мраморная светящаяся кожа + tattoo: татуировка + tan: загар + tanlines: загарные полосы + oil: маслянистая кожа + + - name: Фигура + color: rgba(255, 123, 2, .4) + tags: + skinny: худощавый + plump: плотный + curvy: изогнутый + gyaru: гяру + pregnant: беременная + fat: толстый + thin: тонкий + slender: стройный + glamor: очарование + tall: высокий + petite: маленький + chibi: чиби + muscular: мускулистый + + - name: Тип лица + color: rgba(255, 123, 2, .4) + tags: + slender face: узкое лицо + round face: круглое лицо + oval face: овальное лицо + baby face: детское лицо + inverted triangle face: обратное треугольное лицо + heart shaped face: лицо в форме сердца + diamond face: алмазное лицо + square face: квадратное лицо + long face: длинное лицо + triangular face: треугольное лицо + + - name: Волосы + color: rgba(255, 123, 2, .4) + tags: + white hair: белые волосы + blonde hair: блонд волосы + silver hair: серебряные волосы + grey hair: серые волосы + purple hair: фиолетовые волосы + red hair: рыжие волосы + yellow hair: желтые волосы + green hair: зеленые волосы + blue hair: синие волосы + black hair: черные волосы + brown hair: коричневые волосы + straight_hair: прямые волосы + short hair: короткие волосы + curly hair: кудрявые волосы + long hair: длинные волосы + pony-tail: хвостик + bunches: косички + streaked hair: пряди + grey gradient hair: серый градиент волос + light brown hair: светло-коричневые волосы + two-tone hair: двухцветные волосы + multicolored hair: многоцветные волосы + high ponytail: высокий хвостик + twintails: два хвостика + braided ponytail: косичка-хвостик + ponytail: хвостик + short ponytail: короткий хвостик + twin braids: две косички + medium hair: средние волосы + very long hair: очень длинные волосы + braided bangs: косичка на челке + swept bangs: прическа с боковыми челками + hair between eyes: волосы между глазами + bob cut: каре + hime cut: прическа химэ + crossed bangs: перекрещенные челки + bangs: челка + blunt bangs: прямая челка + air bangs: воздушная челка + hair wings: волосы-крылья + long bangs: длинная челка + side_blunt_bangs: боковая прямая челка + centre parting bangs: пробор посередине + asymmetric bangs: асимметричная челка + disheveled hair: растрепанные волосы + wavy hair: волнистые волосы + hair in takes: волосы в виде взлетающих самолетов + hair pink flowers: волосы с розовыми цветами + ahoge: ахоге + antenna hair: волосы-антенны + Side ponytail: боковой хвостик + forehead: лоб + drill hair: волосы-сверло + hair bun: пучок + double bun: двойной пучок + messy hair: неряшливая прическа + hair_flaps: волосы-лопасти + + - name: Лицо + color: rgba(255, 123, 2, .4) + tags: + makeup: макияж + fundoshi: фундоши + eyeshadow: тени для век + lipstick: губная помада + mascara: тушь для ресниц + long_eyelashes: длинные ресницы + red_lips_: красные губы + facepaint: роспись лица + lipgloss: блеск для губ + colored_eyelashes: цветные ресницы + blush: румяна + light_blush: легкие румяна + anime_style_blush: аниме-стиль румян + nose_blush: румяна на носу + nosebleed: носовое кровотечение + bruise_on_face: синяк на лице + facial_mark: лицевая метка + forehead_mark: метка на лбу + anger_vein: венозная ярость + mole: родинка + mole_under_eye: родинка под глазом + freckles: веснушки + food_on_face: еда на лице + rice_on_face: рис на лице + cream_on_face: сливки на лице + mustache: усы + goatee: козлиная борода + whisker_markings: отметины усов + scar: шрам + scar_across_eye: шрам через глаз + smoking_pipe: курительная трубка + tattoo: татуировка + + - name: Уши + color: rgba(255, 123, 2, .4) + tags: + elf ears: эльфийские уши + fake animal ears: поддельные уши животного + cat ears: кошачьи уши + dog ears: собачьи уши + fox ears: лисьи уши + bunny ears: кроличьи уши + bear ears: медвежьи уши + wolf ears: волчьи уши + horse ears: лошадиные уши + cow ears: коровьи уши + mouse ears: мышиные уши + pig ears: свиньиные уши + sheep ears: овечьи уши + deer ears: оленьи уши + goat ears: козьи уши + antelope ears: антилопьи уши + rhino ears: носорожьи уши + elephant ears: слоновьи уши + bat ears: летучие мышиные уши + dragon ears: драконьи уши + demon ears: демонические уши + angel ears: ангельские уши + alien ears: инопланетные уши + ear_blush: румянец на ушах + ear_ornament: украшение на ухе + ear_piercing: прокол уха + animal_ears: звериные уши + ears_down: опущенные уши + fake_animal_ears: поддельные звериные уши + floppy_ears: мягкие уши + animal_ear_fluff: пушистые звериные уши + fox_ears: лисьи уши + cat_ears: кошачьи уши + lion_ears: львиные уши + jaguar_ears: ягуаровы уши + tiger_ears: тигровые уши + dog_ears: собачьи уши + coyote_ears: койотовы уши + bunny_ears: кроличьи уши + horse_ears: лошадиные уши + pointy_ears: остроконечные уши + long_pointy_ears: длинные остроконечные уши + mouse_ears: мышиные уши + raccoon_ears: енотовы уши + squirrel_ears: белка уши + bear_ears: медвежьи уши + panda_ears: пандьи уши + bat_ears: летучие мышиные уши + robot_ears: роботические уши + extra_ears: дополнительные уши + ears_through_headwear: уши через головной убор + alpaca_ears: альпаковы уши + horns: рога + fake_horns: поддельные рога + dragon_horns: драконьи рога + oni_horns: они рога + antlers: оленьи рога + curled_horns: закрученные рога + goat_horns: козьи рога + hair_on_horn: волосы на роге + + - name: брови + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: густые брови + cocked eyebrow: поднятая бровь + short eyebrows: короткие брови + v-shaped eyebrows: брови в форме V + + - name: Глаза + color: rgba(255, 123, 2, .4) + tags: + blue eyes: Голубые глаза + red eyes: Красные глаза + brown eyes: Коричневые глаза + green eyes: Зеленые глаза + purple eyes: Фиолетовые глаза + yellow eyes: Желтые глаза + pink eyes: Розовые глаза + black eyes: Черные глаза + aqua eyes: Водянисто-голубые глаза + orange eyes: Оранжевые глаза + grey eyes: Серые глаза + multicolored eyes: Многоцветные глаза + white eyes: Белые глаза + gradient eyes: Градиентные глаза + closed eyes: Закрытые глаза + half-closed eyes: Полузакрытые глаза + crying with eyes open: Плачущие глаза с открытыми глазами + narrowed eyes: Суженные глаза + hidden eyes: Скрытые глаза + heart-shaped eyes: Глаза в форме сердца + button eyes: Кнопочные глаза + cephalopod eyes: Глаза головоногих + eyes visible through hair: Глаза видны сквозь волосы + glowing eyes: Светящиеся глаза + empty eyes: Пустые глаза + rolling eyes: Покатывающие глаза + cross eyed: Косоглазие + blank eyes: Пустые глаза + no eyes: Без глаз + sparkling eyes: Искрящиеся глаза + extra eyes: Дополнительные глаза + crazy eyes: Сумасшедшие глаза + solid circle eyes: Сплошные круглые глаза + solid oval eyes: Сплошные овальные глаза + uneven eyes: Неравные глаза + blood from eyes: Кровь из глаз + eyeshadow: Тени для век + red eyeshadow: Красные тени для век + blue eyeshadow: Синие тени для век + purple eyeshadow: Фиолетовые тени для век + pink eyeshadow: Розовые тени для век + green eyeshadow: Зеленые тени для век + bags under eyes: Мешки под глазами + ringed eyes: Кольцевые глаза + covered eyes: Покрытые глаза + covering eyes: Покрывающие глаза + shading eyes: Затеняющие глаза + devil eyes: Глаза дьявола + slit pupils: Раздвоенные зрачки + bloodshot eyes: Красные глаза + tsurime: Взгляд с поднятым уголком глаза + tareme: Взгляд с опущенным уголком глаза + constricted pupils: Суженные зрачки + devil pupils: Дьявольские зрачки + snake pupils: Зрачки змеи + pupils sparkling: Сверкающие зрачки + flower-shaped pupils: Цветочные зрачки + heart-shaped pupils: Сердцевидные зрачки + heterochromia: Гетерохромия + color contact lenses: Цветные контактные линзы + longeyelashes: Длинные ресницы + colored eyelashes: Цветные ресницы + mole under eye: Родинка под глазом + light_eyes: Светлые глаза + glowing_eye: Светящийся глаз + shiny_eyes: Блестящие глаза + sparkling_eyes: Искрящиеся глаза + gradient_eyes: Градиентные глаза + anime_style_eyes: Аниме-стиль глаз + water_eyes: Водянистые глаза + beautiful_detailed_eyes: Красивые детализированные глаза + solid_oval_eyes_: Сплошные овальные глаза + solid_circle_pupils: Сплошные круглые зрачки + blush_stickers: Стикеры с румянами + heart_in_eye: Сердце в глазе + evil_eyes: Злые глаза + crazy_eyes: Сумасшедшие глаза + empty_eyes: Пустые глаза + covered_eyes: Покрытые глаза + hollow_eyes: Звездообразные зрачки + multicolored_eyes: Многоцветные глаза + ringed_eyes: Кольцевые глаза + sanpaku: Санпаку (смещение зрачков) + mismatched_sclera: Несоответствующая склера + eye_relfection: Отражение глаз (без эффекта) + mechanical_eye: Механический глаз + cephalopod_eyes: Глаза головоногих + clock_eyes: Часовые глаза + compound_eyes: Составные глаза + fisheye: Рыбий глаз + devil_eyes: Глаза дьявола + bloodshot_eyes: Глаза, покрытые кровью + blood_from_eyes: Кровь из глаз + aqua_eyes: Аквамариновые глаза + solid_eyes: Твердые глаза + sparkling_anime_eyes: Искрящиеся аниме-глаза + blue_eyes: Голубые глаза + brown_eyes: Коричневые глаза + closed_eyes: Закрытые глаза + crying_with_eyes_open: Плач с открытыми глазами + extra_eyes: Дополнительные глаза + eye_contact: Взгляд в глаза + eye_of_horus: Глаз Хоруса + eyeball: Глазное яблоко + eyeliner: Подводка + eyes: Глаза + glint: Блеск в глазах + glowing_eyes: Светящиеся глаза + half-closed_eye: Полузакрытый глаз (один глаз) + half-closed_eyes: Полузакрытые глаза + horizontal_pupils: + jitome: Презрительный взгляд + light_brown_eyes: Светло-коричневые глаза + no_eyes: Без нарисованных глаз + one-eyed: Один глаз с отражением + reflective_eyes: + silver_eyes: Серебряные глаза + spiral_eyes: Вихревые глаза + third_eye: Третий глаз + uneven_eyes: Неравные глаза + flaming_eye: Пламенный взгляд + eyes_closed: Глаза закрыты + half_closed_eyes: Полузакрытые глаза + narrowed_eyes: Суженные глаза + squinting: Смотреть сквозь прищуренные глаза + tears: Слезы + sharp_eyes: Острые глаза + slanted_eyes: Наклонные глаза + upturned_eyes: Поднятые глаза + cross-eyed: Косоглазие + hair_over_eyes: Волосы закрывают глаза + eyes_visible_through_hair: Глаза видны сквозь волосы + hair_over_one_eye: Волосы закрывают один глаз + one_eye_covered: Один глаз закрыт + bags_under_eyes: Мешки под глазами + eyepatch: Повязка на глаз + medical_eyepatch: Медицинская повязка на глаз + scar_across_eye: Шрам через глаз + no_blindfold: Без повязки на глаза + no_eyepatch: Без повязки на глаз + ahegao: Ахегао + + - name: Зрачки + color: rgba(255, 123, 2, .4) + tags: + pupils: Зрачки + bright_pupils: Яркие зрачки + heterochromia: Гетерохромия + slit_pupils: Вертикальные зрачки/зрачки кошки + snake_pupils: Мерцающие зрачки + symbol-shaped_pupils: Зрачки в форме символа + heart-shaped_pupils: Зрачки в форме сердца + diamond-shaped_pupils: Зрачки в форме алмаза + star-shaped_pupils: Зрачки в форме звезды + dilated_pupils: Расширенные зрачки + no_pupils: Без зрачков + ringed_eyes: Кольцевые глаза + constricted_pupils: Суженные зрачки (без эффекта) + star_in_eye: Звезда в глазу + x-shaped_pupils: Зрачки в форме X + horizontal_pupils: Горизонтальные зрачки + dashed_eyes: Пунктирные глаза + butterfly-shaped_pupils: Зрачки в форме бабочки + rectangular_pupils: Прямоугольные зрачки + square_pupils: Квадратные зрачки + dot_pupils: Точечные зрачки + extra_pupils: Дополнительные зрачки + mismatched_pupils: Несоответствующие зрачки + "+_+": Звездочки в виде креста + cross-shaped_pupils: Зрачки в форме креста (без эффекта) + purple_pupils: Фиолетовые зрачки + orange_pupils: Оранжевые зрачки + blue_pupils: Синие зрачки + symbol_in_eye: Символ в глазу + + - name: Нос + color: rgba(255, 123, 2, .4) + tags: + pointed nose: Острый нос + small nose: Маленький нос + big nose: Большой нос + no_nose: Без носа + dot_nose: Точечный нос + nose_bubble: Пузырь на носу + smelling: Обонять + nose: Нос + nosebleed: Кровотечение из носа + snot: Сопли + snout: Морда животного + + - name: Рот + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: Гороховый рот + thick lips: Толстые губы + puffy lips: Отекшие губы + lipstick: Губная помада + heart-shaped mouth: Губы в форме сердца + pout: Дуть губы + open mouth: Открытый рот + closed mouth: Закрытый рот + shark mouth: Акулья пасть + parted lips: Раздвинутые губы + mole under mouth: Родинка под ртом + open_mouth: Открытый рот + gasping: Задыхаться (открытый рот) + Slightly_open_mouth: Немного приоткрытый рот + wavy_mouth: Волнистый рот + close_mouth: Закрытый рот + dot_mouth: Точечный рот + no_mouth: Без рта + gag: Заткнуть рот + gnaw: Грызть + :3: Котовский рот + :o: Открытый рот + :>: Рот в форме V + parted_lips: Раздвинутые губы + bit_gag: Заткнуть рот + chestnut_mouth: Гороховый рот + cleave_gag: Заткнуть рот + closed_mouth: Закрытый рот + covered_mouth: Покрытый рот + extra_mouth: Дополнительные рты + hair_in_mouth: Волосы в рту + hair_tie_in_mouth: Закусить волосы + homu: Дуть губы + lips: Губы + mouth: Рот + mouth_hold: Держать во рту + oral: Оральный + pacifier: Пустышка + Pouted lips: Выпячивающиеся губы + sideways_mouth: Нарисовать рот в профиль + spoon_in_mouth: Ложка во рту + triangle_mouth: Треугольный рот + saliva: Слюна + drooling: Слюнотечение + mouth_drool: Рот с капельками слюны + + - name: Зубы + color: rgba(255, 123, 2, .4) + tags: + teeth: Зубы + upper_teeth: Верхние зубы + fang: Клык + skin_fang: Кожаный клык + round_teeth: Круглые зубы + sharp_teeth: Острые зубы + clenched_teeth: Сжатые зубы + tongue: Язык + buck_teeth: Перекошенные зубы + fang_out: Выступающий клык + fangs: Клыки + spiked_club: Шипастая дубина + tooth: Зуб + toothbrush: Зубная щетка + tusks: Бивни + shark_mouth: Зубы акулы + + - name: Язык + color: rgba(255, 123, 2, .4) + tags: + :q: Язык на верхней губе + :p: Язык на нижней губе + ;p: Подмигивание с языком + french_kiss: Французский поцелуй + long_tongue: Длинный язык + oral_invitation: Приглашение языком + tongue: Язык + tongue_out: Высунутый язык + uvula: Малый язык + + - name: Ногти + color: rgba(255, 123, 2, .4) + tags: + fingernails: Ногти на пальцах рук + toenails: Ногти на пальцах ног + nail_polish: Лак для ногтей + toenail_polish: Лак для ногтей на ногах + black_nails: Черные ногти + red_nails: Красные ногти + pink_nails: Розовые ногти + long_fingernails: Длинные ногти + nail: Ноготь + multicolored_nails: Многоцветные ногти + nail_art: Нейл-арт + brown_vest: Коричневый жилет + + - name: Плечо + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: Голые плечи + collarbonea: Ключица + armpits: Подмышки + armpit_crease: Складка подмышки + + - name: Грудь + color: rgba(255, 123, 2, .4) + tags: + chest: Грудь + flat chest: Плоская грудь (A) + small_breasts: Маленькая грудь (B) + medium breasts: Средняя грудь (C) + big breasts: Большая грудь (D) + huge breasts: Огромная грудь (E) + gigantic breasts: Гигантская грудь (F) + between breasts: Между грудью + breasts apart: Раздвоенная грудь + hanging breasts: Обвисшая грудь + bouncing breasts: Подпрыгивающая грудь + cleavage: Декольте + areola: Ареола + nipples: Соски + pectorals: Грудные мышцы + large_pectorals: Большие грудные мышцы + unbuttoned clothes: Расстегнутая одежда на груди + + - name: Талия + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: Узкая талия + slender_waist: Тонкая талия + + - name: Живот + color: rgba(255, 123, 2, .4) + tags: + midriff: Живот + belly: Живот + absolute_territory: Пресс + inflation: Вздутый живот + navel: Пупок + groin: Пах + + - name: Крылья + color: rgba(255, 123, 2, .4) + tags: + wings: Крылья + bat_wings: Крылья летучей мыши + butterfly_wings: Крылья бабочки + black_wings: Черные крылья + demon_wings: Крылья демона + asymmetrical_wings: Асимметричные крылья + detached_wings: Отдельные крылья + fairy_wings: Феиные крылья + fake_wings: Поддельные крылья + fiery_wings: Пылающие крылья + insect_wings: Крылья насекомого + large_wings: Большие крылья + low_wings: Низко расположенные крылья + mini_wings: Миниатюрные крылья + multicolored_wings: Многоцветные крылья + multiple_wings: Несколько пар крыльев + no_wings: Без крыльев + winged_helmet: Шлем с крыльями + +- name: Одежда + groups: + - name: формальная одежда + color: rgba(230, 84, 128, .4) + tags: + suit: костюм + tuxedo: смокинг + formal_dress: вечернее платье + evening_gown: вечернее платье + canonicals: вечерний наряд + cocktail_dress: коктейльное платье + gown: женское платье + japanese_clothes: японская одежда + kimono: кимоно + sleeveless_kimono: безрукавное кимоно + short_kimono: короткое кимоно + print_kimono: печатное кимоно + furisode: фурисоде (часть кимоно) + obi: пояс для кимоно + sash: пояс + cheongsam: китайское платье + china_dress: китайское платье + print_cheongsam: печатное китайское платье + pelvic_curtain: передняя часть платья китайского стиля + wedding_dress: свадебное платье + uchikake: белый учикаке (японская свадебная одежда) + school_uniform: школьная форма + sailor: моряцкая форма + serafuku: моряцкая форма + summer_uniform: летняя школьная форма + kindergarten_uniform: форма детского сада + police_uniform: полицейская форма + naval_uniform: морская форма + military_uniform: военная форма + ss_uniform/nazi_uniform: форма СС/нацистская форма + maid: горничная + stile_uniform: форма служанки + miko: одежда мико (священницы в шинтоизме) + overalls: комбинезон + business_suit: деловой костюм + nurse: медсестра + chef_uniform: кухонная форма + labcoat: белый халат + cheerleader: форма чирлидера + band_uniform: форма музыкального оркестра + space_suit: космический костюм + leotard: трико + domineering: монашеская одежда + + - name: Стиль + color: rgba(230, 84, 128, .4) + tags: + china_dress: китайская одежда + chinese_style: китайский стиль + traditional_clothes: традиционная одежда|национальная одежда + japanese_clothes: японская одежда + hanten_(clothes): хантен (японская одежда) + hanbok: ханбок (корейская одежда) + korean_clothes: корейская одежда + western: западный стиль + german_clothes: немецкая одежда + gothic: готический стиль + lolita: лолита-стиль + gothic_lolita: готическо-лолита-стиль + byzantine_fashion: византийская мода + Tropical: тропический стиль + indian_style: индийский стиль + Ao_Dai: ао дай (вьетнамская форма) + ainu_clothes: одежда айну + arabian_clothes: арабская одежда + egyptian_clothes: египетская одежда + costume: костюм + animal_costume: костюм животного (меховой костюм) + bunny_costume: костюм кролика + adapted_costume: адаптированный костюм + cat_costume: костюм кошки + dog_costume: костюм собаки + bear_costume: костюм медведя + embellished_costume: украшенный костюм + santa_costume: костюм Санта-Клауса + halloween_costume: костюм на Хэллоуин + kourindou_tengu_costume: костюм тенгу из Куриндо + alternate_costume: альтернативный наряд + costume_switch: игра в переодевание + meme_attire: мематический наряд + + - name: Кэжуальная одежда + color: rgba(230, 84, 128, .4) + tags: + casual: повседневный + loungewear: домашняя одежда + hoodie: худи + homewear: домашняя одежда + pajamas: пижама + nightgown: ночная рубашка + sleepwear: ночная одежда + babydoll: сексуальная ночная одежда + print_pajamas: печатные пижамы + polka_dot_pajamas: пижама в горошек + yukata: юката (японская одежда) + chinese_clothes: традиционная китайская одежда + hanfu: ханьфу (китайская одежда) + Taoist robe: даоистский халат + robe: халат + robe_of_blending: халат с смешанным узором + cloak: плащ + hooded_cloak: плащ с капюшоном + winter_clothes: зимняя одежда + down jacket: пуховик + santa: костюм Санта-Клауса + harem_outfit: одежда гарема + shrug_(clothing): плечики (одежда) + + - name: Спортивная одежда + color: rgba(230, 84, 128, .4) + tags: + sportswear: спортивная одежда + gym_uniform: спортивная форма + athletic_leotard: гимнастический купальник + tennis_uniform: теннисная форма + baseball_uniform: форма бейсбольной команды + letterman_jacket: куртка бейсбольной команды + volleyball_uniform: волейбольная форма + biker_clothes: одежда для велосипедистов + bikesuit: велосипедный костюм + wrestling_outfit: реслинговый костюм + dougi: доги (форма для боевых искусств) + + - name: Купальник + color: rgba(230, 84, 128, .4) + tags: + swimsuit: купальник + swimwear: плавательный костюм + wet_swimsuit: мокрый купальник + school_swimsuit: школьный купальник + new_school_swimsuit: новый школьный купальник + old_school_swimsuit: старый школьный купальник + competition_school_swimsuit: соревновательный школьный купальник + competition_swimsuit: соревновательный купальник + casual_one-piece_swimsuit: однокусочный купальник на каждый день + front_zipper_swimsuit: купальник с передней молнией + highleg_swimsuit: высокоподрезанный купальник + one-piece_swimsuit: однокусочный купальник + swimsuit_of_perpetual_summer: купальник вечного лета (костюм ученицы в Fate/Grand Order) + bikini: бикини + highleg_bikini: бикини с высоким вырезом + lowleg_bikini: бикини с низким вырезом + slingshot_swimsuit: купальник-пропеллер + sailor_bikini: бикини в стиле морячки + shell_bikini: бикини с мотивом раковины + sports_bikini: спортивное бикини + string_bikini: бикини на завязках + strapless_bikini: бикини без бретелей + side-tie_bikini: бикини с боковыми завязками + front-tie_bikini_top: бикини с завязкой спереди (верх) + multi-strapped_bikini: бикини с несколькими ремешками + thong_bikini: бикини-стринги + front-tie_bikini: бикини с завязкой спереди + frilled_bikini: оборчатое бикини + o-ring_bikini: бикини с кольцом + eyepatch_bikini: бикини с повязкой на глаз + layered_bikini: наслоенное бикини + bow_bikini: бикини с бантом + frilled_swimsuit: оборчатый купальник + polka_dot_swimsuit: купальник в горошек + striped_swimsuit: полосатый купальник + striped_bikini: полосатое бикини + plaid_bikini: клетчатое бикини + polka_dot_bikini: купальник в горошек + print_bikini: печатное бикини + american_flag_bikini: бикини в американском флаге + german_flag_bikini: бикини в немецком флаге + impossible_swimsuit: купальник с рисунком на теле + bikini_top: только верх бикини + bikini_top_only: только верх бикини + bikini_top_removed: снятый верх бикини + bikini_bottom_only: только низ бикини + bikini_bottom: низ бикини + untied_bikini: развязанное бикини + bikini_aside: бикини с боковым завязыванием + swimsuit_aside: купальник с боковым завязыванием + swimsuit_under_clothes: купальник под одеждой + torn_swimsuit: разорванный купальник + bikini_skirt: юбка для бикини + swim_briefs: плавательные трусы + swim_cap: плавательная шапочка + swim_trunks: плавки + male_swimwear: мужская плавательная одежда + + - name: форма + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: адаптированная форма + anzio_military_uniform: военная форма Анцио + anzio_school_uniform: школьная форма Анцио + aria_company_uniform: форма компании Ариа + ashford_academy_uniform: форма Ашфордской академии + bc_freedom_military_uniform: военная форма BC Freedom + chaldea_uniform: форма Чалдеи + chi-hatan_military_uniform: военная форма Чи-Хатан + fleur_de_lapin_uniform: форма Флер де Лапен + garreg_mach_monastery_uniform: форма монастыря Гаррег Мах + gem_uniform_(houseki_no_kuni): форма из аниме "Драгоценность" + hanasakigawa_school_uniform: школьная форма Ханасакигавы + hikarizaka_private_high_school_uniform: форма Частной высшей школы Хикаридзака + homurahara_academy_uniform: школьная форма Хомурахары + kamiyama_high_school_uniform: школьная форма Камиямы + keizoku_military_uniform: военная форма Кейдзоку + kita_high_school_uniform: школьная форма Кита + kiyosumi_school_uniform: школьная форма Киёсуми + luna_nova_school_uniform: школьная форма Луна-Нова + meiji_schoolgirl_uniform: форма школьницы эпохи Мэйдзи + mitakihara_school_uniform: школьная форма Митакихары + nami_junior_high_school_uniform: школьная форма Нами + nanairogaoka_middle_school_uniform: школьная форма Нанайрогаока + nanamori_school_uniform: школьная форма Нанамори + naoetsu_high_school_uniform: школьная форма Наоэцу + national_shin_ooshima_school_uniform: школьная форма Национальной шин-оошимской школы + ooarai_military_uniform: военная форма Ооарай + ooarai_school_uniform: школьная форма Ооарай + otonokizaka_school_uniform: школьная форма Отонокидзака + paradis_military_uniform: военная форма Парадиса + polar_chaldea_uniform: форма Чалдеи в полярных широтах + pravda_military_uniform: военная форма Правды + pravda_school_uniform: школьная форма Правды + rabbit_house_uniform: форма Рэббит Хаус + raimon_soccer_uniform: футбольная форма Раймон + ryouou_school_uniform: школьная форма Рёо + sailor_senshi_uniform: форма морячки-воительницы + sakugawa_school_uniform: школьная форма Сакугавы + sakuragaoka_high_school_uniform: школьная форма Сакурагаоки + saunders_military_uniform: военная форма Сондерс + saunders_school_uniform: школьная форма Сондерс + seishou_elementary_school_uniform: школьная форма Сэйсё + shinda_sekai_sensen_uniform: форма Сенсен Мира-после + shuuchiin_academy_uniform: школьная форма Шуучиин + shuujin_academy_uniform: школьная форма Шуудзин + st._gloriana's_military_uniform: военная форма Святой Глорианы + st._gloriana's_school_uniform: школьная форма Святой Глорианы + starlight_academy_uniform: школьная форма Академии Звездного Света + tokisadame_school_uniform: школьная форма Токисадамэ + tokiwadai_school_uniform: школьная форма Токивадай + tomoeda_elementary_school_uniform: школьная форма Томоэда + tsab_ground_military_uniform: военная форма Земной службы ТСАБ + u.a._school_uniform: школьная форма У.А. + uranohoshi_school_uniform: школьная форма Уранохоси + yasogami_school_uniform: школьная форма Ясогами + mismatched_bikini: несоответствующее бикини + multicolored_bikini: многоцветное бикини + + - name: блузка + color: rgba(230, 84, 128, .4) + tags: + blouse: блузка + white_shirt: белая рубашка + collared_shirt: рубашка с воротником + dress_shirt: рубашка + sailor_shirt: морская рубашка + cropped_shirt: укороченная рубашка + t-shirt: футболка + casual T-shirts: повседневные футболки + short sleeve T-shirts: футболки с короткими рукавами + off-shoulder_shirt: рубашка с открытыми плечами + shrug_(clothing): жакет + cardigan: кардиган + criss-cross_halter: рубашка с перекрещивающимися бретелями + frilled_shirt: рубашка с оборками + sweatshirt: толстовка + hawaiian_shirt: гавайская рубашка + hoodie: худи + Impossible shirt: невозможная рубашка + kappougi: каппоги (куртка для готовки) + plaid_shirt: клетчатая рубашка + polo_shirt: поло + print_shirt: рубашка с принтом + shirt: рубашка + sleeveless_hoodie: безрукавка с капюшоном + sleeveless_shirt: безрукавка + striped_shirt: полосатая рубашка + tank_top: майка + vest: жилет + waistcoat: жилет + camisole: топ на бретелях + tied_shirt: рубашка с завязкой + undershirt: нательная рубашка + crop_top: укороченный топ + highleg: высокораскроенная одежда + clothing_cutout: вырезы на одежде + back_cutout: вырез на спине + cleavage_cutout: вырез для декольте + navel_cutout: вырез для пупка + midriff: обнаженный живот + heart_cutout: вырез в форме сердца + torn_clothes: разорванная одежда + torn_shirt: разорванная рубашка + undressing: раздевание + clothes_down: опущенная одежда + shirt_lift: поднятая рубашка + shirt_pull: опущенная рубашка + shirt_tucked_in: заправленная рубашка + clothes_tug: потягивание одежды + shirt_tug: потягивание рубашки + untucked_shirt: расстегнутая рубашка + lifted_by_self: поднятая самим собой + untied: развязанная + open_clothes: раскрытая одежда + unbuttoned shirt: расстегнутая рубашка + button_gap: зазор между пуговицами + partially_unbuttoned: частично расстегнутая + partially_unzipped: частично расстегнутая молния + clothes_removed: снятая одежда + shirt_removed: снятая рубашка + wardrobe_error: ошибка с гардеробом + undersized_clothes: маленькая одежда + tight: обтягивающая одежда + wedgie: зажатие (из-за одежды) + wardrobe_malfunction: сбой с гардеробом + taut_shirt: натянутая рубашка + taut_clothes: натянутая одежда + underbust: под грудью + oversized_clothes: большая одежда + oversized_shirt: большая рубашка + borrowed_garments: одежда от парня + strap_slip: спущенные бретели (одежда) + wet_shirt: мокрая рубашка + clothes_theft: кража одежды + + - name: Пальто + color: rgba(230, 84, 128, .4) + tags: + blazer: блейзер + overcoat: пальто + double-breasted: двубортный + long_coat: длинное пальто + haori: хаори (японское верхнее пальто) + winter_coat: зимнее пальто + hooded_coat: пальто с капюшоном + fur_coat: меховое пальто + fur-trimmed_coat: меховое пальто с отделкой + duffel_coat: дюфель + fishnet_top: рубашка из сетки + parka: парка + jacket: куртка + jacket_partially_removed: частично снятая куртка + jacket_removed: снятая куртка + open_jacket: раскрытая куртка + cropped_jacket: укороченная куртка + track_jacket: спортивная куртка + hooded_track_jacket: спортивная куртка с капюшоном + military_jacket: военная куртка + camouflage_jacket: камуфляжная куртка + leather_jacket: кожаная куртка + letterman_jacket: куртка с буквами + bomber_jacket: бомбер + denim_jacket: джинсовая куртка + loating_jacket: повседневная куртка + fur-trimmed_jacket: меховая куртка с отделкой + two-tone_jacket: двухцветная куртка + trench_coat: тренчкот + furisode: фурисоде (часть кимоно) + windbreaker: ветровка + raincoat: плащ от дождя + hagoromo: хагоромо (полушубок) + tunic: туника + cape: плащ + capelet: пелерина + winter_clothes: зимняя одежда + sweater: свитер + pullover_sweaters: свитера с воротником + ribbed_sweater: свитер с ребристым узором + sweater_vest: жилет-свитер + backless_sweater: свитер с открытой спиной + aran_sweater: аранский свитер + beige_sweater: бежевый свитер + brown_sweater: коричневый свитер + hooded_sweater: свитер с капюшоном + off-shoulder_sweater: свитер с открытыми плечами + striped_sweater: полосатый свитер + virgin_killer_sweater: "свитер для убийцы девственности" + down_jacket: пуховик + puffer_jacket: пуховик + + - name: Прочее + color: rgba(230, 84, 128, .4) + tags: + transparent: прозрачный + burnt_clothes: обгоревшая одежда + dissolving_clothes: растворяющаяся одежда + dirty_clothes: грязная одежда + expressive_clothes: выразительная одежда + impossible_clothes: невозможная одежда + living_clothes: одежда, ожившая + leotard_under_clothes: леотард под одеждой + multicolored_clothes: многоцветная одежда + ofuda_on_clothes: одежда с офудой (бумажной табличкой) + wringing_clothes: выжимание одежды + clothesline: бельевая веревка + shiny_clothes: блестящая одежда + kariginu: каригину (японская одежда) + front-tie_top: топ с завязкой спереди + jacket_on_shoulders: носить куртку на плечах + short_jumpsuit: короткий комбинезон + harness: кожаный ремень; обвязка + rigging: такелаж + aiguillette: плечевой шнур + + - name: Талия + color: rgba(230, 84, 128, .4) + tags: + apron: фартук + waist_apron: поясной фартук + maid_apron: фартук горничной + bow tied at the waist: бант, завязанный на талии + waist_cape: накидка на талию + clothes_around_waist: одежда вокруг талии + jacket_around_waist: куртка на талии + sweater_around_waist: свитер на талии + loincloth: пелена на талии + bustier: корсет + corset: корсет + girdle: корсет + + - name: Броня + color: rgba(230, 84, 128, .4) + tags: + armor: доспехи + bikini_armor: бикини-доспехи + full_armor: полные доспехи + plate_armor: латы + japanese_armor: японские доспехи + kusazuri: кусазури (нижняя часть японского доспеха) + power_armor: силовые доспехи + mecha: мех + helmet: шлем + kabuto: кабуто (японский шлем) + off-shoulder_armor: доспехи без плеч + shoulder_armor: наплечники + muneate: мунэатэ (японская защита груди для стрельбы из лука) + breastplate: нагрудник + faulds: фолы (защита живота) + greaves: наголенники + shin_guards: наголенники + armored_boots: бронированные сапоги + + - name: Платье + color: rgba(230, 84, 128, .4) + tags: + dress: платье + microdress: мини-платье + long_dress: длинное платье + off-shoulder_dress: платье с открытыми плечами + strapless_dress: платье без бретелей + backless_dress: платье с открытой спиной + halter_dress: платье на шее с открытой спиной + sundress: летнее платье без рукавов + sleeveless_dress: платье без рукавов + sailor_dress: морское платье + summer_dress: летнее платье + china_dress: китайское платье + pinafore_dress: фартук-платье + sweater_dress: свитер-платье + wedding_dress: свадебное платье + armored_dress: доспехи-платье + frilled_dress: платье с оборками + lace-trimmed_dress: платье с кружевными отделками + collared_dress: платье с воротником + fur-trimmed_dress: платье с меховыми отделками + layered_dress: многослойное платье + pleated_dress: платье с складками + taut_dress: облегающее платье + pencil_dress: платье-карандаш + impossible_dress: слишком облегающая одежда + multicolored_dress: платье с множеством цветов + striped_dress: полосатое платье + checkered_skirt: клетчатая юбка + plaid_dress: клетчатое платье + ribbed_dress: ребристое платье + polka_dot_dress: платье в горошек + print_dress: платье с принтом + vertical-striped_dress: платье в вертикальную полоску + see-through_dress: прозрачное платье + skirt: юбка + microskirt: мини-юбка + miniskirt: мини-юбка + skirt_suit: костюм с юбкой + bikini_skirt: бикини-юбка + pleated_skirt: юбка с складками + pencil_skirt: юбка-карандаш + bubble_skirt: пышная юбка + tutu: туту (юбка для балета) + ballgown: пышная вечерняя юбка + pettiskirt: пышная детская юбка + showgirl_skirt: костюм танцовщицы + Medium length skirt: юбка средней длины + beltskirt: юбка с поясом + denim_skirt: джинсовая юбка + suspender_skirt: сарафан + skirt_set: юбка в комплекте с верхом + long_skirt: длинная юбка + summer_long_skirt: летняя длинная юбка + overskirt: наружная юбка + hakama_skirt: хакама (японская юбка) + high-waist_skirt: юбка с высокой талией + kimono_skirt: юбка кимоно + suspender_long_skirt: сарафан с подтяжками + chiffon_skirt: шифоновая юбка + frilled_skirt: юбка с оборками + fur-trimmed_skirt: юбка с меховыми отделками + lace_skirt: кружевная юбка + lace-trimmed_skirt: юбка с кружевными отделками + ribbon-trimmed_skirt: юбка с атласными отделками + layered_skirt: многослойная юбка + print_skirt: юбка с принтом + multicolored_skirt: юбка с множеством цветов + striped_skirt: полосатая юбка + vertical-striped_skirt: юбка в вертикальную полоску + plaid_skirt: клетчатая юбка + flared_skirt: расклешенная юбка + floral_skirt: юбка с цветочным узором + + - name: Взаимодействие с юбкой + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: изящно держать юбку + skirt_tug: потянуть за юбку + dress_tug: прижать платье + skirt_lift: поднять юбку + skirt_around_one_leg: юбка на одной ноге + skirt_removed: снятая юбка + dress_removed: снятое платье + open_skirt: раскрытая юбка + + - name: брюки + color: rgba(230, 84, 128, .4) + tags: + dress_bow: бант на платье + dressing_another: одевание + shorts_under_skirt: шорты под юбкой + side_slit: боковой разрез + shorts: шорты + micro_shorts: микро-шорты + short_shorts: шорты-хот-пэнтс + hot_pants: шорты-хот-пэнтс + cutoffs: шорты-хот-пэнтс + striped_shorts: полосатые шорты + suspender_shorts: шорты-сарафан + denim_shorts: джинсовые шорты + puffy_shorts: пышные шорты + dolphin_shorts: шорты-дельфины + dolfin_shorts: шорты-дельфины + tight_pants: облегающие штаны / спортивные штаны + crotchless_pants: штаны без шагов (облегающие) + track_pants: спортивные штаны + yoga_pants: йога-штаны + bike_shorts: велосипедные шорты + gym_shorts: спортивные шорты + pants: брюки + puffy_pants: пышные брюки / широкие брюки + pumpkin_pants: брюки-тыквы + hakama_pants: хакама (японские брюки) + harem_pants: шаровары + bloomers: брюки-блумеры + buruma: женские брюки-блумеры + jeans: джинсы + cargo_pants: карго-брюки + camouflage_pants: камуфляжные брюки + capri_pants: капри (семисантиметровые брюки) + chaps: штаны-чапсы (сверху широкие, снизу узкие) + jumpsuit: комбинезон (особенно женский) + lowleg_pants: брюки с низкой талией + plaid_pants: клетчатые брюки + single_pantsleg: брюки с одной длинной ногой + striped_pants: полосатые брюки + + - name: Взаимодействие с брюками + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: несимметричные штаны + leotard_aside: откинутый леотард + open_fly: открытая молния на штанах + pants_down: спущенные штаны + pants_rolled_up: подвернутые штаны + pants_tucked_in: заправленные штаны + torn_jeans: рваные джинсы + torn_pants: рваные штаны + torn_shorts: рваные шорты + + - name: Носки + color: rgba(230, 84, 128, .4) + tags: + bodystocking: боди-чулки + pantyhose: колготки + leggings: леггинсы + legwear: чулки (общее название для колготок или чулок) + thighhighs: чулки выше колена + kneehighs: чулки до колена + socks: носки + bare_legs: голые ноги + black_bodystocking: черные боди-чулки + white_bodystocking: белые боди-чулки + stocking_under_clothes: чулки под одеждой + black_pantyhose: черные колготки + white_pantyhose: белые колготки + thighband_pantyhose: колготки с бандажом на бедре + pantylines: колготки с выраженными линиями + single_leg_pantyhose: одноногие колготки + panties_under_pantyhose: трусики под колготками + fishnets: сетчатые чулки + stirrup_legwear: чулки с петлей под стопой + toeless_legwear: чулки без пальцев + mismatched_legwear: несоответствующие чулки + two-tone_legwear: двухцветные чулки + asymmetrical_legwear: несимметричные чулки + uneven_legwear: неравномерные чулки + white_thighhighs: белые чулки выше колена + black_thighhighs: черные чулки выше колена + pink_thighhighs: розовые чулки выше колена + suspenders: подвязки + garter_straps: подвязки для чулок + torn_legwear: рваные чулки + torn_thighhighs: рваные чулки выше колена + see-through_legwear_: прозрачные чулки + frilled_legwear: чулки с оборками + lace-trimmed_legwear: чулки с кружевными отделками + seamed_legwear: чулки с швом + back-seamed_legwear: чулки с задним швом + animal_ear_legwear: чулки с ушками животных + striped_legwear: полосатые чулки + vertical-striped_legwear: вертикально полосатые чулки + polka_dot_legwear: чулки в горошек + print_legwear: чулки с принтом + legwear_under_shorts: чулки под шортами + over-kneehighs: чулки выше колена + bobby_socks: белые носки + tabi: таби (японские носки) + loose_socks: свободные носки + ankle_socks: носки до щиколотки + leg_warmers: наколенники / носки-трубы + single_sock: одна носка + striped_socks: полосатые носки + + - name: Взаимодействие с носками + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: вырез на чулке + thighhighs_under_boots: чулки под сапогами + adjusting_legwear: корректировка чулок + pantyhose_pull: спущенные колготки + socks_removed: снятые носки + sock_pull: потянуть носок + thighhighs_pull: потянуть чулок + + - name: Прочее + color: rgba(230, 84, 128, .4) + tags: + garters: подвязки + leg_garter: ножная подвязка + garter_straps: подвязки для чулок + thigh_strap: бедренный ремень + thigh_ribbon: бедренная лента + leg_ribbon: лента на ноге + bandaid_on_leg: пластырь на ноге + bandaged_leg: перевязанная нога + ankle_lace-up: шнуровка на щиколотке + thigh_holster: бедренная кобура + bandaid_on_knee: пластырь на колене + argyle_legwear: чулки с аржильным узором + bow_legwear: чулки с бантом + arm_garter: нарукавная подвязка + + - name: Материал + color: rgba(230, 84, 128, .4) + tags: + armored: бронированный + canvas: холстовый + denim: джинсовый + fluffy: пушистый + fur: меховой + latex: латексный + leather: кожаный + see-through: прозрачный + spandex: спандексовый + tight: облегающий + + - name: Декорирование + color: rgba(230, 84, 128, .4) + tags: + frilled: оборчатый + center_frills: оборка по центру + crease: складка + layered: многослойный + lace: кружевной + fur_trim: меховая отделка + fur-trimmed: меховая отделка + fine_fabric_emphasis: акцент на тонкой ткани + latex_thighhighs: латексные чулки выше колена + see-through_thighhighs: прозрачные чулки выше колена + ass_cutout: вырез для ягодиц + asymmetrical_clothes: несимметричная одежда + back_bow: бант на спине + costume_switch: смена костюма + cross-laced_clothes: одежда с перекрещенной шнуровкой + double_vertical_stripe: две вертикальные полосы на одежде + halter_top: топ с завязками на шее + multicolored_legwear: многоцветная одежда для ног + navy_blue_legwear: темно-синяя одежда для ног + nontraditional_miko: нестандартная одежда мико + side_cutout: вырез сбоку + side_slit: боковой разрез + sideless_outfit: одежда без боковины + single_kneehigh: одна чулка выше колена + single_vertical_stripe: одна вертикальная полоса на одежде + turtleneck: водолазка + two-sided_fabric: двухсторонняя ткань + o-ring: одежда с кольцом + o-ring_top: топ с кольцом + fringe_trim: отделка кисточками + loose_belt: свободный пояс + pom_pom_(clothes): помпон (декор на одежде) + drawstring: завязка на одежде + full-length_zipper: молния на всю длину одежды + gathers: складки на одежде + gusset: вставка на одежде + breast_pocket: карман на груди + + - name: Узор + color: rgba(230, 84, 128, .4) + tags: + argyle: аржильный узор + checkered: клетчатый узор + colored_stripes: цветные полосы + diagonal_stripes: диагональные полосы + horizontal_stripes: горизонтальные полосы + multicolored_stripes: многоцветные полосы + polka_dot_: узор в горошек + ribbed: ребристый узор + striped: полосатый узор + unmoving_pattern: неподвижный узор + vertical_stripes: вертикальные полосы + plaid: клетчатый узор + animal_print: животный узор + cat_print: узор с котами + bear_print: узор с медведями + bird_print: узор с птицами + bunny_print: узор с кроликами + cow_print: узор с коровами + dragon_print: узор с драконами + fish_print: узор с рыбами + frog_print: узор с лягушками + shark_print: узор с акулами + snake_print: узор со змеями + zebra_print: узор со зебрами + tiger_print: узор с тиграми + leopard_print: узор с леопардами + jaguar_print: узор с ягуарами + bat_print: узор с летучими мышами + aardwolf_print: узор с ардвольфами + african_wild_dog_print: узор с африканскими дикими собаками + cheetah_print: узор с гепардами + dog_print: узор с собаками + fox_print: узор с лисами + giraffe_print: узор с жирафами + panda_print: узор с пандами + sand_cat_print: узор с песчаными котами + whale_print: узор с китами + white_tiger_print: узор с белыми тиграми + goldfish_print: узор с золотыми рыбками + wing_print: узор с крыльями + spider_web_print: узор с паутиной + butterfly_print: узор с бабочками + floral_print: цветочный узор + leaf_print: узор с листьями + clover_print: узор с клевером + maple_leaf_print: узор с кленовым листом + rose_print: узор с розами + strawberry_print: узор с клубникой + cherry_print: узор с вишней + bamboo_print: узор с бамбуком + carrot_print: узор с морковью + hibiscus_print: узор с гибискусом + jack-o'-lantern_print: узор с тыквой + petal_print: узор с лепестками + sunflower_print: узор с подсолнухами + watermelon_print: узор с арбузом + sky_print: узор с небом + cloud_print: узор с облаками + lightning_bolt_print: узор с молнией + rainbow_print: узор с радугой + snowflake_print: узор с снежинкой + starry_sky_print: узор с звездным небом + crescent_print: узор с полумесяцем + star_print: узор со звездой + star_(symbol): символ звезды + moon_print: узор с луной + sun_print: узор с солнцем + character_print: символьный узор + clothes_writing_: надписи на одежде + anchor_print: узор с якорями + cherry_blossom_print: узор с цветущими сакурами + musical_note_print: узор со музыкальными нотами + triangle_print: узор с треугольниками + arrow_print: узор со стрелками + wave_print: узор с волнами + peace_symbol: узор с символом мира (☮) + heart_print: узор с сердцами + flame_print: узор с пламенем + hitodama_print: узор с огоньками + paw_print: узор с лапами + skeleton_print: узор с скелетом + skull_print: узор с черепом + sparkle_print: узор с блестками + yin_yang_print: узор с символом инь-янь + cross_print: узор с крестом + camoflage: камуфляжный узор + flag_print: узор с флагом + bone_print: узор с костями + ghost_print: узор с призраками + mushroom_print: узор с грибами + onigiri_print: узор с ониксирами + cat_ear: узор с кошачьими ушками + cat_ear_cutout: вырез с кошачьими ушками + + - name: Обувь + color: rgba(230, 84, 128, .4) + tags: + barefoot: Босиком + no_shoes: Без обуви + shoes_removed: Снятая обувь + single_shoe: Одна туфля + the_only_shoe: Одна туфля + black_loafers: Черные мокасины + shoes: Кроссовки + uwabaki: Внутренняя обувь + platform_footwear: Платформенная обувь + high_heels: Туфли на высоком каблуке + stiletto_heels: Туфли на тонком каблуке + strappy_heels: Туфли на тонком каблуке с ремешками + platform_heels_: Туфли на платформе с высоким каблуком + rudder_footwear: Обувь для капитанов кораблей + sandals: Сандалии + barefoot_sandals: Сандалии для босиком + clog_sandals: Деревянные сандалии + geta: Деревянные тапочки + slippers: Тапочки + skates: Коньки + roller_skates: Роликовые коньки + animal_feet: Лапы животных + animal_slippers: Тапочки в виде животных + anklet: Браслет на ноге + shackles: Кандалы + brown_footwear: Коричневая обувь + cross-laced_footwear: Обувь с перекрещенными шнурками + loafers: Мокасины + mary_janes: Туфли Мэри Джейн + mismatched_footwear: Несоответствующая обувь + pointy_footwear: Остроносая обувь + pumps: Туфли на низком каблуке + sandals_removed: Снятые сандалии + shoe_soles: Подошвы обуви + shoelaces: Шнурки + sneakers: Кроссовки + winged_footwear: Обувь с крыльями + zouri: Японские соломенные туфли + + - name: Ботинки + color: rgba(230, 84, 128, .4) + tags: + boots: Ботинки + boots_removed: Снятые сапоги + thigh_boots: Сапоги до бедра + knee_boots: Сапоги до колена + cross-laced_footwear: Обувь с перекрещенными шнурками + ankle_boots: Ботильоны + high_heel_boots: Ботинки на высоком каблуке + toeless_boots: Ботинки без пальцев + lace-up_boots: Ботинки на шнуровке + fur-trimmed_boots: Сапоги с меховой отделкой + snow_boots: Сапоги для снега + anklet: Браслет на ноге + rubber_boots: Резиновые сапоги + santa_boots: Санта Клаусовские сапоги + leather_boots: Кожаные сапоги + thighhighs_under_boots: Колготки под сапогами + combat_boots: Боевые ботинки + doc_martens: Ботинки Доктора Мартенса + rain_boots: Дождевые сапоги + belt_boots: Ботинки с ремнем + fur_boots: Меховые ботинки с низким каблуком + single_boot: Одна надетая ботинка + + - name: Подошва обуви + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: Подошвы обуви + arched_soles: Дуговидные подошвы + paw_print_soles: Подошвы с отпечатками лап + horseshoe: Подкова + + - name: Воротник + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: Морской воротник + fur_collar: Меховой воротник + frilled_collar: Оборчатый воротник + popped_collar: Поднятый воротник + choker: Чокер + black_choker: Черный чокер + belt_collar: Кожаный воротник + frilled_choker: Оборчатый чокер + neckerchief: Шейный платок + red_neckerchief: Красный шейный платок + necktie: Галстук + short_necktie: Короткий галстук + white_necktie: Белый галстук + bowtie: Бабочка + headphones_around_neck: Наушники на шее + goggles_around_neck: Защитные очки на шее + neck_bell: Подвеска на шее + neck_ruff: Воротник + v-neck: V-образный вырез + towel_around_neck: Полотенце на шее + loose_necktie: Свободный галстук + neck_tattoo: Татуировка на шее + ascot: Ассоциация + ribbon_choker: Ленточный чокер + maebari/pasties: Maebari/пасты + latex: Латекс + torn_clothes: Разорванная одежда + iron_cross: Железный крест + chinese_knot: Китайский узел + cross_necklace: Крестное ожерелье + bead_necklace: Бусы + pearl_necklace: Жемчужное ожерелье + heart_necklace: Сердечное ожерелье + carrot_necklace: Морковное ожерелье + chain_necklace: Цепочка + magatama_necklace: Ожерелье из магатамы + tooth_necklace: Ожерелье из зубов + key_necklace: Ожерелье с ключом + anchor_necklace: Ожерелье с якорем + skull_necklace: Ожерелье со черепом + shell_necklace: Ожерелье из раковин + gold_necklace: Золотое ожерелье + crescent_necklace: Ожерелье в форме полумесяца + ring_necklace: Ожерелье с кольцом + feather_necklace: Ожерелье с пером + bone_necklace: Ожерелье из костей + ankh_necklace: Ожерелье с анхом + multiple_necklaces: Несколько ожерелий + bullet_necklace: Ожерелье из пуль + holding_necklace: Держит ожерелье + necklace_removed: Снятое ожерелье + brown_neckwear: Коричневая шейная одежда + checkered_neckwear: Клетчатая шейная одежда + diagonal-striped_neckwear: Шейная одежда в диагональную полоску + halterneck: Шейка на шее + mole_on_neck: Родинка на шее + neck: Шея + neck_ribbon: Лента на шее + neck_ring: Кольцо на шее + necklace: Ожерелье + plaid_neckwear: Шейная одежда в клетку + plunging_neckline: Глубокий вырез + print_neckwear: Шейная одежда с принтом + sleeveless_turtleneck: Безрукавка с высоким воротником + star_necklace: Звездное ожерелье + striped_neckwear: Полосатая шейная одежда + turtleneck_sweater: Свитер с воротником-хомутом + undone_necktie: Расстегнутый галстук + whistle_around_neck: Свисток на шее + + - name: Шарф + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: Шотландский шарф + striped_scarf: Полосатый шарф + print_scarf: Шарф с принтом + vertical-striped_scarf: Вертикально полосатый шарф + polka_dot_scarf: Шарф в горошек + argyle_scarf: Шарф в клетку + beige_scarf: Бежевый шарф + scarf_bow: Бант на шарфе + fur_scarf: Меховой шарф + naked_scarf: Обнаженный шарф + multicolored_scarf: Многоцветный шарф + floating_scarf: Парящий шарф + long_scarf: Длинный шарф + arm_scarf: Шарф на руке + scarf_on_head: Шарф на голове + scarf_over_mouth: Шарф на рту + scarf_removed: Снятый шарф + adjusting_scarf: Регулировка шарфа + holding_scarf: Держит шарф + scarf_pull: Вытягивание шарфа + brown_scarf: Коричневый шарф + scarf: Шарф + + - name: Очки + color: rgba(230, 84, 128, .4) + tags: + glasses: Очки + eyewear: Очки + monocle: Однолинзовые очки + under-rim_eyewear: Очки с нижней рамкой + rimless_eyewear: Безрамочные очки + semi-rimless_eyewear: Полуримлиссовые очки + red-framed_eyewear: Очки с красной оправой + round_eyewear: Круглые очки + black-framed_eyewear: Очки с черной оправой + tinted_eyewear: Очки с тонировкой + medical_eyepatch: Медицинская повязка на глаз + bandage_over_one_eye: Бинт на одном глазу + crooked_eyewear: Кривые очки + eyewear_removed: Снятые очки + sunglasses: Солнцезащитные очки + goggles: Защитные очки + Blindfold: Повязка на глаза + eyepatch: Повязка на глаз + visor: Маска/козырек + bespectacled: В очках + blue-framed_eyewear: Очки с синей оправой + brown-framed_eyewear: Очки с коричневой оправой + coke-bottle_glasses: Очки с толстыми линзами + no_eyewear: Без очков + opaque_glasses: Очки без прозрачных линз + over-rim_eyewear: Очки с верхней рамкой + + - name: Маска + color: rgba(230, 84, 128, .4) + tags: + mask: Маска + half_mask: Полумаска + masked: С маской + mask_lift: Поднятая маска + mask_on_head: Маска на голове + mask_removed: Снятая маска + mouth_mask: Медицинская маска + surgical_mask: Хирургическая маска + plague_doctor_mask: Маска чумного доктора + gas_mask: Противогаз + visor: Маска/козырек + helmet: Шлем + fox_mask: Лисья маска + diving_mask: Маска для подводного плавания + diving_mask_on_head: Маска для подводного плавания на голове + oni_mask: Маска они + tengu_mask: Маска тэнгу + ninja_mask: Ниндзя маска + skull_mask: Маска черепа + hockey_mask: Хоккейная маска + bird_mask: Птичья маска + stone_mask: Каменная маска + horse_mask: Лошадиная маска + masquerade_mask: Маскарадная маска + domino_mask: Маска домино + + - name: Рука + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: Длинные рукава + short_sleeves: Короткие рукава + wide_sleeves: Широкие рукава + furisode: Фурисодэ + detached_sleeves: Отстегивающиеся рукава + single_sleeve: Один рукав + sleeveless: Безрукавка + asymmetrical_sleeves: Асимметричные рукава + puffy_sleeves: Пышные рукава + puffy_long_sleeves: Пышные длинные рукава + puffy_short_sleeves: Пышные короткие рукава + frilled_sleeves: Оборчатые рукава + juliet_sleeves: Рукава Жюльетты + bandaged_arm: Повязка на руке + raglan_sleeves: Рукава реглан + vambraces: Наручи + layered_sleeves: Слойные рукава + fur-trimmed_sleeves: Рукава с меховой отделкой + see-through_sleeves: Прозрачные рукава + torn_sleeves: Разорванные рукава + sleeves_past_fingers: Рукава до пальцев + sleeves_past_wrists: Рукава до запястий + sleeves_past_elbows: Рукава до локтей + sleeves_pushed_up: Рукава подвернуты + arm_out_of_sleeve: Рука из рукава + uneven_sleeves: Неравные рукава + mismatched_sleeves: Несоответствующие рукава + sleeve_rolled_up: Рукав завернут + sleeves_rolled_up: Одна завернутая рукав + feather-trimmed_sleeves: Рукава с перьями + hands_in_opposite_sleeves: Руки в противоположных рукавах + lace-trimmed_sleeves: Рукава с кружевной отделкой + pinching_sleeves: Сжатие рукавов + puffy_detached_sleeves: Пышные отстегивающиеся рукава + ribbed_sleeves: Ребристые рукава + single_detached_sleeve: Один отстегнутый рукав + sleeves_folded_up: Завернутые рукава + striped_sleeves: Полосатые рукава + wrist_cuffs: Манжеты на запястьях + armband: Браслет на руке + armlet: Браслет на руке + + - name: Руки + color: rgba(230, 84, 128, .4) + tags: + bandage: Бинт + leash: Поводок + arm_tattoo: Татуировка на руке + number_tattoo: Числовая татуировка + bead_bracelet: Браслет из бусин + bracelet: Браслет + flower_bracelet: Цветочный браслет + spiked_bracelet: Браслет с шипами + wrist_cuffs: Наручники + wristband: Браслет на запястье + bracer: Наруч + cuffs: Манжеты + bound_wrists: Связанные запястья + wrist_scrunchie: Резинка на запястье + handcuffs: Наручники + shackles: Кандалы + chains: Цепи + chain_leash: Цепной поводок + + - name: Перчатки + color: rgba(230, 84, 128, .4) + tags: + gloves: Перчатки + gloves_removed: Снятые перчатки + no_gloves: Без перчаток + single_glove: Одна перчатка + single_elbow_glove: Одна перчатка до локтя + long_gloves: Длинные перчатки + elbow_gloves: Перчатки до локтя + bridal_gauntlets: Свадебные перчатки + half_gloves: Половинчатые перчатки + fingerless_gloves: Перчатки без пальцев + partially_fingerless_gloves: Частично безпальцевые перчатки + paw_gloves: Лапки на перчатках + mittens: Варежки + baseball_mitt: Бейсбольная перчатка + fur-trimmed_gloves: Перчатки с меховой отделкой + latex_gloves: Латексные перчатки + lace-trimmed_gloves: Перчатки с кружевной отделкой + leather_gloves: Кожаные перчатки + frilled_gloves: Оборчатые перчатки + mismatched_gloves: Несоответствующие перчатки + multicolored_gloves: Многоцветные перчатки + asymmetrical_gloves: Асимметричные перчатки + brown_gloves: Коричневые перчатки + oven_mitts: Кухонные перчатки + print_gloves: Перчатки с принтом + striped_gloves: Полосатые перчатки + torn_gloves: Разорванные перчатки + + - name: Украшение для ушей + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: Крестовые серьги + crystal_earrings: Хрустальные серьги + earrings: Серьги + flower_earrings: Цветочные серьги + heart_earrings: Серьги в форме сердца + hoop_earrings: Серьги-обручи + multiple_earrings: Несколько сережек + pill_earrings: Серьги в форме таблетки + single_earring: Одна серьга + skull_earrings: Серьги со черепом + star_earrings: Звездные серьги + + - name: Головные уборы + color: rgba(230, 84, 128, .4) + tags: + halo: Ореол + mechanical_halo: Механический ореол + headwear: Головной убор + headpiece: Головной убор + headwear_removed: Головной убор снят + head_wreath: Венок на голове + crown: Корона + mini_crown: Мини-корона + tiara: Тиара + diadem: То же самое + tilted_headwear: Наклоненный головной убор + head_fins: Головные плавники + maid_headdress: Головной убор горничной + bridal_veil: Вуаль невесты + headband: Ободок на голове + helmet: Шлем + alternate_headwear: Альтернативный головной убор + fur-trimmed_headwear: Головной убор с меховой отделкой + goggles_on_headwear: Защитные очки на головном уборе + earphones: Наушники + earmuffs: Ушные муфты + ears_through_headwear: Уши сквозь головной убор + xx_on_head: xx на голове + leaf_on_head: Лист на голове + topknot: Косичка на голове + suigintou: Сьюгинтоу (вид прически) + triangular_headpiece: Треугольный головной убор + forehead_protector: Защитник лба + radio_antenna: Радиоантенна + animal_hood: Капюшон с ушками животного + arrow_(symbol): Стрелка (символ) + axe: Топор + bald: Лысый + bandana: Бандана + bob_cut: Каре (прическа) + bone: Кость + bowl_cut: Чашечка (прическа) + circlet: Венок + double_bun: Две косички + double_dildo: Двусторонний фаллоимитатор + drill: Сверло + faucet: Кран + hachimaki: Хачимаки (повязка на голову) + hair_behind_ear: Волосы за ухом + hair_bell: Колокольчик на волосах + hair_bun: Косичка на голове + hair_down: Распущенные волосы + hair_flaps: Клапаны волос + hair_flip: Перекидывание волос + hair_flower: Цветок на волосах + hair_spread_out: Распущенные волосы + hair_up: Прическа собранная вверх + helm: Головной убор с шлемом + helmet_removed: Снятый шлем + horned_helmet: Шлем с рожками + japari_bun: Жапари-булочка (вид прически) + kerchief: Платок на голову + mami_mogu_mogu: Мами Могу Могу (вид прически) + mob_cap: Кепка с завязками + one_side_up: Прическа с поднятыми волосами с одной стороны + owl: Сова + pier: Пирсинг + pillow: Подушка + raised_fist: Поднятый кулак + skull_and_crossbones: Череп и перекрещенные кости + stone: Камень + turban: Тюрбан + twin_drills: Две косички-шнеки + updo: Прическа с поднятыми волосами + wet_hair: Влажные волосы + headdress: Головное украшение (обобщенно) + adjusting_headwear: Регулировка головного убора + bear_hair_ornament: Украшение для волос с изображением медведя + brown_headwear: Коричневый головной убор + horned_headwear: Головной убор с рожками + horns_through_headwear: Рожки сквозь головной убор + no_headwear: Без головного убора + object_on_head: Объект на голове, не являющийся головным убором + print_headwear: Головной убор с принтом + bone_hair_ornament: Украшение для волос в форме кости + bunny_hair_ornament: Украшение для волос в форме кролика + horn_ornament: Украшение на рожке + animal_on_head: Животное на голове + behind-the-head_headphones: Наушники, надетые за головой + bird_on_head: Птица на голове + cat_ear_headphones: Наушники в форме кошачих ушей + cat_on_head: Кошка на голове + eyewear_on_head: Очки на голове + forehead: Лоб + forehead_jewel: Драгоценный камень на лбу + forehead_kiss: Поцелуй на лоб + forehead_mark: Рисунок на лбу + forehead-to-forehead: Лоб к лобу + goggles_on_head: Защитные очки на голове + head: Голова + head_bump: Ушиб головы + head_down: Голова опущена + head_mounted_display: Головной дисплей + head_out_of_frame: Часть головы не попала в кадр + head_rest: Голова на подушке + head_tilt: Голова наклонена + head_wings: Крылья на голове + headgear: Головной убор (с элементами научной фантастики) + headphones: Наушники + heads-up_display: Интерфейс головного дисплея + headset: Гарнитура + inter_headset: Межсетевое подключение EVA + on_head: На голове + person_on_head: Человек на голове + single_head_wing: Одно крыло на голове + + - name: Шляпа + color: rgba(230, 84, 128, .4) + tags: + hat: Шляпа + no_hat: Без шляпы + large_hat: Большая шляпа + mini_hat: Мини-шляпа + witch_hat: Шляпа ведьмы + mini_witch_hat: Мини-шляпа ведьмы + wizard_hat: Шляпа волшебника + party_hat: Праздничная шляпа + jester_cap: Шапка шута + tokin_hat: Шляпа с большими полями + top_hat: Цилиндр + mini_top_hat: Мини-цилиндр + bowler_hat: Боулер + pillbox_hat: Шляпка-пилюльница + cloche_hat: Колокольчик + side_cap: Боковая шапка + military_hat: Военная шапка + beret: Берет + garrison_cap: Фуражка + police_hat: Шапка полицейского + nurse_cap: Шапка медсестры + chef_hat: Шапка повара + school_hat: Школьная шапка + pirate_hat: Пиратская шляпа + cabbie_hat: Шляпа таксиста + bucket_hat: Рыбацкая шляпа + hardhat: Защитный шлем + straw_hat: Соломенная шляпа + sun_hat: Солнечная шляпа + rice_hat: Рисовая шляпа + animal_hat: Шляпа с животными + fur_hat: Шапка из меха + hat_with_ears: Шляпа с ушками + bobblehat: Шапка с помпоном + pillow_hat: Шапка-подушка + pumpkin_hat: Шапка с тыквой + baseball_cap: Бейсболка + flat_cap: Кепка + torn_hat: Разорванная шляпа + mob_cap: Шапка мятежника + newsboy_cap: Кепка газетчика + bowknot_over_white_beret: Белая беретка с бантом + backwards_hat: Шляпа задом наперед + bowl_hat: Шляпа в форме чаши + cat_hat: Шапка с кошачьими ушами + chat_log: Стиль чата + cowboy_hat: Ковбойская шляпа + dixie_cup_hat: Шляпа из пластмассового стаканчика + hat_bow: Шляпа с бантом + hat_feather: Шляпа с пером + hat_flower: Шляпа с цветком + hat_ornament: Шляпа с украшением + hat_over_one_eye: Шляпа накрывает один глаз + hat_removed: Снятая шляпа + hat_ribbon: Шляпа с лентой + hat_tip: Поднятая шляпа + hatching_(texture): Шляпа с текстурой клетки + hatsune_miku_(cosplay): Косплей Хацуне Мику + is_that_so: Совершенно верно (фраза) + porkpie_hat: Шляпа Поркпай + sailor_hat: Матросская шляпа + santa_hat: Шапка Санта-Клауса + sideways_hat: Шляпа наискось + what: Автор совершил ошибку + what_if: Другая версия реальности + + - name: Украшения для волос + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: Лента для волос + hairband: Ободок для волос + hair_tie: Резинка для волос + lolita_hairband: Ободок Лолиты + frilled_hairband: Ободок с оборками + lace-trimmed_hairband: Ободок с кружевной отделкой + hair_bobbles: Резинки для волос + hair_ornament: Украшение для волос + hair_flower: Цветок для волос + x_hair_ornament: Украшение для волос в форме X + hair_bow: Бант для волос + frog_hair_ornament: Украшение для волос в форме лягушки + heart_hair_ornament: Украшение для волос в форме сердца + butterfly_hair_ornament: Украшение для волос в форме бабочки + star_hair_ornament: Украшение для волос в форме звезды + food-themed_hair_ornament: Украшение для волос в виде еды + anchor_hair_ornament: Украшение для волос в форме якоря + bat_hair_ornament: Украшение для волос в форме летучей мыши + carrot_hair_ornament: Украшение для волос в форме моркови + cat_hair_ornament: Украшение для волос в форме кошки + clover_hair_ornament: Украшение для волос в форме клевера + crescent_hair_ornament: Украшение для волос в форме полумесяца + cross_hair_ornament: Украшение для волос в форме креста + d-pad_hair_ornament: Украшение для волос в форме джойстика + fish_hair_ornament: Украшение для волос в форме рыбы + hairpods: Украшения для волос, похожие на беспроводные наушники + leaf_hair_ornament: Украшение для волос в форме листа + musical_note_hair_ornament: Украшение для волос в форме ноты + pumpkin_hair_ornament: Украшение для волос в форме тыквы + skull_hair_ornament: Украшение для волос в форме черепа + snake_hair_ornament: Украшение для волос в форме змеи + snowflake_hair_ornament: Украшение для волос в форме снежинки + strawberry_hair_ornament: Украшение для волос в форме клубники + sunflower_hair_ornament: Украшение для волос в форме подсолнуха + hairpin: Заколка + hairclip: Заколка для волос + hair_tubes: Трубочки для волос + hair_stick: Палочка для волос + hair_bun: Коса + single_hair_bun: Одиночная коса + hair_bell: Звонок для волос + hair_rings: Кольца для волос + + - name: Маленькие украшения + color: rgba(230, 84, 128, .4) + tags: + ring: Кольцо + wedding_band: Обручальное кольцо + earrings: Серьги + single_earring: Одна серьга + stud_earrings: Студ-серьги + necklace: Ожерелье + jewelry: Ювелирные изделия + crystal: Кристалл + brooch: Брошь + gem: Драгоценный камень + chest_jewel: Драгоценный камень на груди + forehead_jewel: Драгоценный камень на лбу + tassel: Бахрома + belly_chain_: Цепь на животе + lace: Кружево + ribbon: Лента + stitches: Швы + scarf: Шарф + bandaid: Пластырь + collar: Воротник + belt: Ремень + steam: Пар + bell: Колокольчик + amulet: Амулет + emblem: Эмблема + flag_print: Флаг (принт) + anchor_symbol: Символ якоря + cross: Крест + diffraction_spikes: Дифракционные звезды + iron_cross: Железный крест + latin_cross: Латинский крест + lace-trimmed_hairband: Ободок с кружевной отделкой + ankle_lace-up: Шнуровка на щиколотке + st._gloriana's_(emblem): Эмблема Святого Глорианы + heart_lock_(kantai_collection): Замок в форме сердца (Kantai Collection) + garters: Подвязки + thigh_strap: Ремень на бедре + thigh_ribbon: Лента на бедре + leg_garter: Околоштанина (подвязка) + garter_straps: Ремни для чулок + leg_ribbon: Лента на ноге + bandaid_on_leg: Пластырь на ноге + bandaged_leg: Повязанная нога + arm_garter: Рукавная повязка + joints: Суставы + kneepits: Коленки + knee_pads: Наколенники + thigh_holster: Кобура на бедре + bandaid_on_knee: Пластырь на колене + + - name: Ювелирные изделия + color: rgba(230, 84, 128, .4) + tags: + bracelet: Браслет + choker: Ошейник + metal collar: Металлический ошейник + ring: Кольцо + wristband: Браслет на запястье + pendant: Подвеска + brooch: Брошь + hoop earrings: Серьги-кольца + bangle: Браслет на руку + stud earrings: Серьги-гвоздики + sunburst: Ювелирное изделие в форме солнца + pearl bracelet: Жемчужный браслет + drop earrings: Серьги-подвески + puppet rings: Кольца-куклы + corsage: Бутоньерка + sapphire brooch: Сапфировая брошь + jewelry: Ювелирные изделия + necklace: Ожерелье + +- name: Выражение и движение + groups: + - name: Улыбка + color: rgba(241, 229, 140, .4) + tags: + smile: Улыбка + laughing: Смех + kind_smile: Радостная улыбка + :d: Счастливая улыбка_:D😀 + ;d: Улыбка с морганием_:D + grin: Улыбка с зубами + teasing_smile: Улыбка от шуток, глупая улыбка + seductive_smile: Соблазнительная улыбка + smirk: Ухмылка, самодовольная улыбка + giggling: Смех в стиле "хи-хи" + smug: Заносчивая улыбка + naughty_face: Шаловливое лицо + evil smile: Злобная улыбка + crazy_smile: Безумная улыбка + happy: Счастье|Счастливый + happy_birthday: С днем рождения + happy_halloween: Счастливого Хэллоуина + happy_new_year: С Новым годом + happy_tears: Счастливые слезы + happy_valentine: Счастливого Дня святого Валентина + + - name: Плач + color: rgba(241, 229, 140, .4) + tags: + sad: Грусть + tear: Рыдание + crying: Плач + crying_with_eyes_open: Плач с открытыми глазами + streaming_tears: Льются слезы + teardrop: Слеза + tearing_clothes: Разрыв одежды + tearing_up: Выражение готовности к плачу + tears: Слезы + wiping_tears: Стирание слез + badmood: Плохое настроение + + - name: Недовольство + color: rgba(241, 229, 140, .4) + tags: + frustrated: Расстроенность + frustrated_brow: Расстроенные брови + annoyed: Раздраженный + anguish: Мучение + sigh: Вздох + gloom: Уныние + disappointed: Разочарование + despair: Отчаяние + + - name: Презрение + color: rgba(241, 229, 140, .4) + tags: + disgust: Отвращение (взгляд, как на мусор) + disdain: Презрение + contempt: Презрение + shaded_face: Лицо с тенью, в сочетании с презрением + jitome: Презрительный взгляд + frown: Напряженные брови/сморщенное лобное взгляд + wince: Напряженные брови/сморщенное лобное взгляд (перед сексом) + furrowed_brow: Сморщенные брови + fear_kubrick: Испуганный взгляд в сторону + laughing: Смех + + - name: Злость + color: rgba(241, 229, 140, .4) + tags: + angry: Злой + glaring: Злобный взгляд + serious: Серьезный (немного похоже на злость) + kubrick_stare: Взгляд в сторону с косой головой + evil: Злобный + sulking: Злой/обиженный + screaming: Крик|Громкий крик + shouting: Кричать + + - name: Другие эмоции + color: rgba(241, 229, 140, .4) + tags: + expressionless: Безэмоциональное лицо + sleepy: Сонный + drunk: Пьяный + bored: Скучающий + confused: Запутанный + thinking: Думающий + lonely: Одинокий + light_blush: Легкое покраснение лица + blush: Покраснение лица + shy: Застенчивый + embarrass: Смущенный + facepalm: Прикрывает лицо рукой + flustered: Смущенный + sweat: Потеть + scared: Испуганный + ahegao: Ахегао + endured_face: Выдержанное лицо + restrained: Сдержанный + dark_persona: Темная личность + crazy: Сумасшедший + exhausted: Изнуренный + Tsundere: Цундере + yandere: Яндере + multiple_persona: Множественные личности + Jekyll_and_Hyde: Джекилл и Хайд + twitching: Судороги + spasm: Спазм + trembling: Дрожь + rape_face: Лицо насилия + rolling_eyes: Поворот глаз (высокая точка) + envy: Зависть + female_orgasm: Женский оргазм + heavy_breathing: Тяжелое дыхание, возможно, бесполезное + naughty: Непослушный + expressions: Выражения лица (примерно) + moaning: Стон + scowl: Презрительный взгляд + + - name: Основные движения + color: rgba(241, 229, 140, .4) + tags: + standing: Стояние + on back: Лежа на спине + on stomach: Лежа на животе + kneeling: Сидя на коленях + on_side: Боком + on_stomach: Лежа на животе + top-down_bottom-up: Лежа на животе с поднятой попой + the_pose: Лежа на животе с поднятыми ногами + bent_over: Согнутая поза + upside-down: Вверх ногами + reversal: Обращение + fighting_stance: Боевая стойка + leaning_to_the_side: Наклонившись в сторону + leaning: Прислонившись|Наклоняясь + leaning_back: Наклонившись назад + leaning_on_object: Опираясь на объект + arched_back: Согнутая спина + leaning_forward: Наклонившись вперед + afloat: Плавающий (на воде) + lying: Лежа + fetal_position: Поза эмбриона (лежа) + lying_on_person: Лежа на человеке + lying_on_the_lake: Лежа на озере + lying_on_water: Лежа в воде + on_back: Лежа на спине + prone_bone: Лежа на животе, поза сзади + reclining: Склонившись|Лежа на боку + sleeping_upright: Спящий на ногах|Спящий в вертикальном положении + presenting: Представление (с последующим членом) + spinning: Вращение + posing: Позирование + stylish_pose: Стильная поза + public_indecency: Публичное непристойное поведение + parody: Пародия + in_container: В контейнере + against_glass: Против стекла (безрезультатно) + aiming: Прицеливание + aiming_at_viewer: Прицеливание на зрителя + applying_makeup: Нанесение макияжа + bathing: Принятие ванны + biting: Покусывание + bleeding: Кровотечение + blowing: Дуть + bowing: Поклон + breathing_fire: Выдыхание огня + broom_riding: Езда на метле + brushing_teeth: Чистка зубов + bubble_blowing: Дуть пузырьки + bullying: Задирачество + burning: Горение + cast: Бросок + chasing: Погоня + cleaning: Уборка + climbing: Восхождение + comforting: Утешение + cooking: Готовка + crying: Плач + cuddling: Обнимание + dancing: Танец + diving: Подводное плавание + dragging: Тащить что-то + drawing: Рисование + drawing_bow: Натягивание лука + dreaming: Мечта + drinking: Питье + driving: Вождение + dropping: (Случайно) уронить + drying: Вытирание (после ванны) + dual_wielding: Двойное владение оружием + exercise: Занятие спортом + fighting: Борьба + firing: Выстрел + fishing: Рыбная ловля + flapping: Порхание + flashing: Показывать + fleeing: Бегство + flexing: Показывать мышцы + flying: Полет + flying_kick: Полет и удар ногой + hair_brushing: Расчесывание волос + hair_tucking: Подбор волос + hanging: Подвешивание + hitting: Удар + imagining: Воображение + jumping: Прыжок + kicking: Удар ногой + licking: Лизание + licking_lips: Лизание губ + lip_biting: Покусывание губ + meditation: Медитация + painting: Живопись + Painting_(Action): Рисование + playing_card: Игра в карты + playing_games: Игра в игры + playing_instrument: Игра на инструменте + pole_dancing: Танец на шесте + praying: Молитва + punching: Удар кулаком + pushing: Толчок + railing: Опора на стекло + reading: Чтение + riding: Езда + running: Бег + sewing: Шитье + shopping: Шоппинг + showering: Принятие душа + sing: Пение + singing: Пение + slashing: Рубить + sleeping: Сон + smelling: Понюхать + smoking: Курение + sneezing: Чихание + snowing: Снегопад + soaking_feet: Погружение ног в воду + soccer: Футбол + spilling: Разливание жидкости из контейнера + spitting: Плевать + splashing: Брызги + standing_on_liquid: Стояние на воде или жидкости + standing_on_one_leg: Стояние на одной ноге + standing_split: Стоячий шпагат|Поднятая нога в стоячей позе + steepled_fingers: Пальцы сведены вместе + strangling: Придушение + sweeping: Подметание + swimming: Плавание + swing: Качание + tail_wagging: Покачивание хвостом + taking_picture: Фотографирование|Селфи + talking: Говорить + talking_on_phone: Разговор по телефону + teasing: Дразнить + thinking: Думать + tickling: Щекотка + toilet_use: Использование туалета + tossing_: Бросание + tripping: Спотыкание + trolling: Троллинг + twitching: Судороги + tying: Завязывание (действие) + unsheathing: Вынимание из ножен + untying: Развязывание + unzipping: Расстегивание молнии + wading: Проходить по воде + waking_up: Просыпание + walking: Ходьба + walking_on_liquid: Ходьба по жидкости + washing: Мытье + whispering: Шепот + wrestling: Борьба (спортивная) + writing: Письмо + yawning: Зевота + hiding: Скрытие + + - name: Движения рук + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: Руки позади спины + arm_above_head: Руки над головой + arm_behind_head: Рука за головой + arms_crossed: Скрещенные руки на груди + arm_support: Поддержка рукой + armpits: Видны подмышки + arms_up: Руки вверх + hands_on_hips: Руки на бедрах + arm_around_waist: Одна рука обхватывает талию + caramelldansen: Известное движение рук и кручение бедер + hands_in_opposite_sleeves: Руки в обратных рукавах + waving: Махание рукой + crossed_arms: Скрещенные руки + outstretched_arms: Вытянутые руки + v_arms: Руки в форме V + w_arms: Руки в форме W + salute: Поклон + reaching: Рука протянута (с целью) + reaching_out: Рука протянута в сторону рисунка + stretch: Растяжка + hugging_own_legs: Объятие своих ног + arm_blade: Рука с клинком + arm_grab: Захват руки + arm_held_back: Рука удерживается сзади + arm_ribbon: Лента на руке + bandaged_arm: Перевязанная рука + bandaid_on_arm: Пластырь на руке + bound_arms: Связанные руки + convenient_arm: Рука, скрывающая ключевую часть + extra_arms: Дополнительные руки + locked_arms: Заключенные руки + outstretched_arm: Вытянутая рука + waving_arms: Махание руками + arm_at_side: Одна рука внизу + arm_behind_back: Одна рука позади спины + shou: Одна рука за головой + arm_cannon: Рука-пушка + arm_hug: Объятие рукой + arm_up: Поднятая рука + arms_at_sides: Руки внизу + arms_behind_head: Руки за головой + hand_to_mouth: Рука у рта + shushing: Жест "тише" + cat_pose: Жест "кошачья лапка" + claw_pose: Жест "коготь" + paw_pose: Жест "поднятая лапка" (котэ-маунт) + fox_shadow_puppet: Жест "лиса" + double_fox_shadow_puppet: b + finger_gun: Жест "пистолет" + v: Жест "победа" + double_v: Жест "двойная победа" + thumbs_up: Жест "поднятый большой палец" + index_finger_raised: Поднятый указательный палец + middle_finger: Жест "средний палец" + grimace: Гримаса + eyelid_pull: Гримаса + fingersmile: Улыбка с помощью пальцев + wiping_tears: Стирание слез + finger_on_trigger: Готовность нажать на курок + pointing_at_self: Указывать на себя + pointing_at_viewer: Указывать на зрителя + pointing_up: Указывать вверх + poking: Тыкание + hand_gesture: Жест рукой + ok_sign: Жест "OK" + shading_eyes: Затенение глаз + finger_biting: Кусание пальца + finger_in_mouth: Пальцы в роте + fingering_through_clothes: Поглаживание через одежду + fingers_together: Пальцы вместе + hair_twirling: Пальцы закручивают волосы + hands_clasped: Сжатые руки|Сжатие рук + holding_hair: Удерживание волос|Пальцы обвивают волосы + pointing: Указывание пальцем + sharp_fingernails: Острые ногти на пальцах + sleeves_past_fingers: Рукава длиннее пальцев + spread_fingers: Разведение пальцев + trigger_discipline: Палец не на курке + w: Пальцы в форме W + balancing: Поза в равновесии + curvy: Поза, подчеркивающая изгибы + multiple_views: Множественные виды|Позы + pose: Поза + ready_to_draw: Готовность вытащить оружие + trefoil: Поза, показывающая ягодицы + zombie_pose: Поза зомби + beckoning: Приглашение рукой + bunching_hair: Удерживание пряди волос + carrying: Несение + carrying_over_shoulder: Носить на плече + carrying_under_arm: Носить под мышкой + cheering: Поддержка + finger_to_mouth: Рука у рта + cheek_pinching: Щипание щек + cheek_poking: Тыкание в щеку + chin_stroking: Поглаживание подбородка + hair_pull: Потягивание волос + covering_mouth: Покрытие рта + covering_xx: Покрытие xx + self_fondle: Поглаживание себя + adjusting_thighhigh: Регулировка чулок + chin_rest: Опора подбородка + head_rest: Опора головы + take: Взятие + _sheet_grab: Захват простыни + groping: Ласкание + skirt_lift: Поднятие юбки + crotch_grab: Захват паха + covering_chest_by_hand: Покрытие груди рукой + bangs_pinned_back: Поднятые челки + clothes_lift: Поднятие одежды + dress_lift: Поднятие платья + kimono_lift: Поднятие кимоно + lifted_by_another: Поднятие одежды другим человеком + lifted_by_self: Поднятие собственной одежды + shirt_lift: Поднятие, расстегивание, завертывание рубашки + skirt_basket: Форма корзины при поднятии юбки + skirt_flip: Поднятие юбки (включая неожиданности) + bikini_lift: Открытие бикини + leg_lift: Поднятие ноги + lifting_person: Поднятие другого человека + strap_lift: Поднятие лямок одежды + wind_lift: Ветер, воздушные потоки, поднятие + bikini_pull: Тянуть бикини + cheek_pull: Тянуть щеку + clothes_pull: Тянуть одежду + dress_pull: Снятие верхней части платья + hair_pulled_back: Заколка волос + kimono_pull: Снятие кимоно + leotard_pull: Снятие леотарда + mask_pull: Снятие маски + pants_pull: Тянуть штаны + pulled_by_another: Тянуть (или тянуть одежду) другим человеком + pulled_by_self: Тянуть собственную одежду + pulling: Тянуть + shirt_pull: Расстегивание рубашки + shorts_pull: Снятие шорт + skirt_pull: Тянуть юбку + swimsuit_pull: Снятие купальника + zipper_pull_tab: Застежка-молния + adjusting_clothes: Поправлять одежду + adjusting_eyewear: Подправить очки + adjusting_gloves: Поправить перчатки + adjusting_hair: Привести в порядок волосы + adjusting_hat: Причесать шляпу + adjusting_swimsuit: Поправить купальник + + - name: Движение рук (держит что-то) + color: rgba(241, 229, 140, .4) + tags: + holding: Держит что-то + holding_animal: Обнимает животное + holding_arrow: Тянет за стрелу + holding_axe: Держит топор + holding_bag: Несет сумку + holding_ball: Обнимает мяч + holding_basket: Несет корзину + holding_book: Держит книгу + holding_bottle: Держит бутылку + holding_bouquet: Держит букет + holding_bow_(weapon): Держит лук (оружие) + holding_bowl: Держит миску + holding_box: Держит ящик + holding_breath: Задерживает дыхание + holding_broom: Держит метлу + holding_camera: Держит камеру + holding_can: Держит банку + holding_candy: Держит конфету + holding_card: Держит карту + holding_cat: Обнимает кошку + holding_chopsticks: Держит палочки для еды + holding_cigarette: Держит сигарету + holding_clothes: Держит одежду + holding_condom: Держит презерватив + holding_cup: Держит чашку + holding_dagger: Держит кинжал + holding_doll: Обнимает куклу + holding_eyewear: Держит очки|Снимает очки + holding_fan: Держит веер + holding_flag: Держит флаг + holding_flower: Держит цветок + holding_food: Держит еду + holding_fork: Держит вилку + holding_fruit: Держит фрукт + holding_gift: Держит подарок + holding_gun: Держит пистолет + holding_hands: Держит руки + holding_hat: Держит шляпу + holding_head: Держит голову + holding_helmet: Держит шлем + holding_innertube: Держит круг для плавания + holding_instrument: Держит инструмент + holding_knife: Держит нож + holding_leaf: Держит лист + holding_lollipop: Держит леденец + holding_mask: Держит маску + holding_microphone: Держит микрофон + holding_needle: Держит иглу для шитья + holding_own_foot: Держит свою ногу + holding_paintbrush: Держит кисть + holding_paper: Держит бумагу + holding_pen: Держит ручку + holding_pencil: Держит карандаш + holding_phone: Держит телефон + holding_pillow: Обнимает подушку + holding_pipe: Держит трубку + holding_pizza: Держит пиццу + holding_plate: Держит тарелку + holding_poke_ball: Держит покебол + holding_pokemon: Обнимает покемона + holding_polearm: Держит длинное оружие + holding_sack: Несет мешок + holding_scythe: Держит серп + holding_sheath: Держит ножны + holding_shield: Держит щит + holding_shoes: Держит обувь + holding_sign: Держит вывеску + holding_spear: Держит копье + holding_spoon: Держит ложку + holding_staff: Держит посох + holding_strap: Тянет за ремень + holding_stuffed_animal: Обнимает плюшевую игрушку + holding_stylus: Держит стилус + holding_sword: Держит меч + holding_syringe: Держит шприц + holding_towel: Держит полотенце + holding_tray: Держит поднос + holding_umbrella: Держит зонтик + holding_wand: Держит палочку + holding_whip: Держит кнут + arm_around_neck: Одна рука обнимает шею + arms_around_neck: Обе руки обнимают шею + + - name: Движение рук (положение где-то) + color: rgba(241, 229, 140, .4) + tags: + covering: Покрывающее движение + covering_face: Покрывает лицо + covering_ass: Покрывает задницу + covering_crotch: Покрывает пах + covering_eyes: Покрывает глаза + covering_mouth: Покрывает рот + covering_nipples: Покрывает соски + hands_on_another's_: Обе руки на лице другого + hands_on_another's_cheeks: Обе руки на щеках другого + hands_on_ass: Обе руки на заднице + hands_on_feet: Обе руки на ногах + hands_on_headwear: Обе руки на головном уборе + hands_on_hilt: Обе руки на рукояти + hands_on_lap: Обе руки на коленях + hands_on_own_face: Обе руки на своем лице + hands_on_own_cheeks: Обе руки на своих щеках + hands_on_own_chest: Обе руки на своей груди + hands_on_own_head: Обе руки на своей голове + hands_on_own_knees: Обе руки на своих коленях + hands_on_own_stomach: Обе руки на своем животе + hands_on_own_thighs: Обе руки на своих бедрах + hands_on_another's_shoulders: Обе руки на плечах другого + hands_on_hips: Обе руки на бедрах|Обе руки на пояснице + hand_on_another's_: Рука касается лица другого + hand_on_another's_cheek: Рука касается щеки другого + hand_on_another's_chest: Рука на груди другого + hand_on_another's_chin: Рука подбирает подбородок другого + hand_on_another's_head: Рука на голове другого + hand_on_another's_shoulder: Рука на плече другого + hand_on_another's_stomach: Рука на животе другого + hand_on_ass: Рука на заднице + hand_on_head: Рука на голове + hand_on_headwear: Рука касается головного убора + hand_on_hilt: Рука на рукояти + hand_on_hip: Рука на бедре|Рука на пояснице + hand_on_own_: Рука на своем лице + hand_on_own_cheek: Рука на своей щеке + hand_on_own_chest: Рука на своей груди + hand_on_own_chin: Рука касается своего подбородка + hand_on_own_stomach: Рука на своем животе + hand_on_shoulder: Рука на плече + hand_in_another's_hair: Рука в волосах другого + hand_in_hair: Рука в волосах + hand_in_pocket: Рука в кармане + + - name: Движение рук (схватывает что-то) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: Схватывает задницу + flat_chest_grab: Схватывает плоскую грудь + grabbing: Схватывает + grabbing_another's_ass: Схватывает задницу другого + grabbing_another's_hair: Схватывает волосы другого + grabbing_from_behind: Схватывает грудь сзади + grabbing_own_ass: Схватывает свою задницу + guided_penetration: Схватывает мужской орган и вводит его в себя + hair_grab: Схватывает волосы + leg_grab: Схватывает ногу + necktie_grab: Схватывает галстук + neckwear_grab: Схватывает одежду на шее + penis_grab: Схватывает пенис + pillow_grab: Схватывает подушку + sheet_grab: Схватывает простыню + tail_grab: Схватывает хвост + thigh_grab: Схватывает бедро + torso_grab: Схватывает торс + wrist_grab: Схватывает запястье + + - name: Движение ног + color: rgba(241, 229, 140, .4) + tags: + legs_up: Поднимает одну ногу + spread legs: Разводит ноги + legs_together: Ноги вместе + crossed_legs: Скрещенные ноги + m_legs: Поза "M" + standing_split,_leg_up: Поза "M" + curtsy: Куртси (поклонение) + hand_between_legs: Рука между ног + open_stance: Открытое положение + convenient_leg: Нога, закрывающая интимные места + leg_lock: Зажимает ногами + legs: Ноги + legs_over_head: Ноги над головой + squatting,_open_legs: Приседает с разведенными ногами + knees_together_feet_apart: Колени вместе, стопы разведены + animal_on_lap: Животное на коленях + hand_on_own_knee: Рука на собственном колене + knee_up: Поднимает колено + knees: Колени + knees_to_chest: Колени к груди + on_lap: На коленях + sitting: Сидит + wariza: Позиция "утка" + straddling: Сидит верхом + yokozuwari: Боком сидит + sitting_backwards: Сидит спиной + sitting_in_tree: Сидит на дереве + sitting_on_xx: Сидит на чем-то + butterfly_sitting: Сидит в позе "бабочка" + lotus_position: Сидит в позе "лотос" + sitting_on_railing: Сидит на перилах + sitting_on_rock: Сидит на камне + sitting_on_stairs: Сидит на ступеньках + sitting_on_table: Сидит на столе + sitting_on_water: Сидит на воде + cushion: Подушка + indian_style: Сидит в позе "индийский стиль" + sitting_on_chair: Сидит на стуле + sidesaddle: Сидит верхом на седле + sitting_on_bed: Сидит на кровати + sitting_on_desk: Сидит на партнере + sitting_on_lap: Сидит на коленях + sitting_on_person: Сидит на человеке + upright_straddle: Сидит в позе "лицом к лицу" + squatting: Приседает + one_knee: Одно колено + kneeling: Сидит на коленях + all_fours: На четвереньках + gravure_pose: Гравюрная поза + kicking: Пинает + high_kick: Высокий удар ногой + soaking_feet: Мочит ноги + reclining: Опирается + hugging_own_legs: Обнимает свои ноги + bare_legs: Голые ноги + between_legs: (акцент) Между ног + cropped_legs: Показана только часть ног + k/da_(league_of_legends): Команда KDA (League of Legends) + leg_belt: Ремень на ноге + leg_hair: Волосы на ноге + leg_up: Поднимает ногу + legs_apart: Разведенные ноги + lowleg: Поза "M" + mechanical_legs: Механические ноги + multiple_legs: Лицо с несколькими ногами + no_legs: Без ног + no_legwear: Без одежды ниже пояса + tail_between_legs: Хвост между ног + barefoot: Босиком + foot_out_of_frame: Одна нога за пределами кадра + footprints: Следы ног + dirty_feet: Неправильное изображение ног + feet: Ноги + feet_out_of_frame: Обе ноги за пределами кадра + feet_up: Поднимает ноги + wrong_feet: Ошибка в изображении ног + cameltoe: Кэмелто + pigeon-toed: Воронья походка + tiptoes: На цыпочках + toe-point: Пальцы ног + amputee: Ампутация|Одна нога|Увечье|Девушка с недостатком конечностей + ankle_strap: Ремешок на щиколотке + ankle_wrap: Повязка на щиколотке + crossed_ankles: Скрещенные щиколотки + pince-nez: Пинсе-нез|Очки без заушников + folded: Поднятая нога, обнажающая интимные места + thick_thighs: Полноватые бедра + thigh_holster: Кобура на бедре + + - name: Другие движения + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: Соприкосновение грудей + back-to-back: Спина к спине + cunnilingus: Кунилингус + eye_contact: Взгляд в глаза + facing_another: Смотрит на другого + facing_away: Лицо к лицу (близко) + feeding: Кормление + finger_in_another's_mouth: Палец в роте другого + fingering: Пальцы во влагалище + french_kiss: Французский поцелуй + giving: Дает|Передает + grinding: Тереться + groping: Лапание + holding_hands: Держатся за руки + hug: Объятие + imminent_kiss: Приближение к поцелую + incoming_food: Подача еды + incoming_gift: Подача подарка + interlocked_fingers: Сцепленные пальцы + Kabedon: Кабедон + lap_pillow: Подушка на коленях + licking_penis: Облизывание пениса + long_tongue: Длинный язык + mimikaki: Чистка ушей + oral_invitation: Приглашение к оральному сексу + princess_carry: Перенос принцессы + shared_bathing: Общая ванна + shared_food: Общая еда|Передача еды во рту + sitting_on_head: Сидит на голове + sitting_on_shoulder: Сидит на плече + slapping: Хлопок + spanking: Шлепок по заднице + special_feeling_(meme): Мем "Один зонтик в снегу" + symmetrical_docking: Соприкосновение грудей + tongue: Язык + tongue_out: Высунутый язык + uvula: Небный язычок + ear_biting: Укус уха + mixed_bathing: Смешанное купание + +- name: Изображение + groups: + - name: Качество изображения + color: rgba(0, 255, 255, .4) + tags: + checkered: клетчатый + lowres: низкое разрешение + highres: высокое разрешение + absurdres: чрезвычайно высокое разрешение + incredibly absurdres: невероятно высокое разрешение + huge filesize: очень высокое разрешение/большой размер файла + wallpaper: обои + pixel art: пиксельное искусство + monochrome: монохромное изображение + colorful: красочное + + - name: Художественный стиль + color: rgba(0, 255, 255, .4) + tags: + artbook: художественная книга + game cg: игровая CG-графика + comic: комикс + 4koma: 4-панельный комикс + animated gif: анимированный GIF + dakimakura: дакимакура (подушка с персонажем) + cosplay: косплей + crossover: кроссовер + dark: темный + light: светлый + guro: гуро (макабр) + realistic: реалистичный + photo: фотография + real: реальный + landscape/scenery: пейзаж + cityscape: городской пейзаж + science fiction: научная фантастика + original: оригинальный + parody: пародия + personification: олицетворение + optical illusion: оптическая иллюзия + fine art parody: пародия на произведение изобразительного искусства + sketch: эскиз + traditional media: традиционные материалы (рисунок от руки) + watercolor (medium): акварель + silhouette: силуэт + cover: обложка + album: альбом + sample: образец + back: задний план + bust: бюст + profile: профиль + expressions: выражения + everyone: все основные персонажи в одном произведении + column lineup: композиция из маленьких изображений в одну линию + transparent background: прозрачный фон + simple background: простой фон + gradient background: градиентный фон + zoom layer: увеличенный фон + 8 Bit Game: игра в стиле 8 бит + 1980s anime: аниме 1980-х годов + disney movie: фильм Disney + goth: готический стиль + 80s movie: фильм 80-х годов + bubble bobble: игра Bubble Bobble + style of Pixar: стиль Pixar + Polaroid art: искусство в стиле Polaroid + Kaleidoscope Photography: калейдоскопическая фотография + opal render: опаловая отрисовка + chemigram: химический графический процесс + Studio Ghibli: стиль студии Ghibli + dreamlike: сказочный + (faux traditional media): имитация традиционных материалов + genshin impact: стиль Genshin Impact + azur lane: стиль Azur Lane + kantai collection: стиль Kantai Collection + rebecca (cyberpunk): стиль Rebecca (киберпанк) + chainsaw man: стиль Chainsaw Man + Magic Vortex: магический вихрь + ((dieselpunk)): дизельпанк + magazine scan: сканирование журнала + album cover: обложка альбома + (lineart): линейный стиль + synthwave: синтвейв + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): стиль Лококо + + - name: Тип искусства + color: rgba(0, 255, 255, .4) + tags: + monochrome: монохромное изображение + Collage: коллажное искусство + Dalle de verre: стеклянная мозаика + pixel art: пиксельное искусство + Encaustic painting: восковая живопись + Ink wash painting: гуашевая живопись + Mezzotint: меццотинто (гравюра) + silhouette: силуэт + illustration: иллюстрация + (((ink))), ((watercolor)): акварельная живопись + illustration,(((ukiyoe))),((sketch)),((japanese_art)): укиё-э + ((wash painting)),((ink s...)): китайский стиль + ((dyeing)),((oil painting)),((impasto)): масляная живопись + (posing sketch), (monochrome): чёрно-белый набросок + sketch: эскиз + (monochrome), (gray scale), (pencil sketch lines: карандашный набросок + (watercolor pencil): цветные карандаши + + - name: Художественные направления + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): модерн + ((classicism)): классицизм + ((futurism)): футуризм + ((Dadaism)): дадаизм + ((abstract art)): абстракционизм + ((ASCII art)): ASCII-арт + + - name: Стиль художника + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): стиль Альфонса Мухи + ((Monet style)): стиль Моне + + - name: Освещение + color: rgba(0, 255, 255, .4) + tags: + rim light: контурный свет + Volumetric Lighting: объемное освещение + glowing neon lights: светящиеся неоновые огни + Cinematic Lighting: кинематографическое освещение + lens flare: свечение от объектива + metallic luster: металлический блеск + moody lighting: настроенное освещение + Tyndall effect: эффект Тиндаля + light leaks: просачивание света + background light: фоновое освещение + available light: естественное освещение + + - name: Реализм + color: rgba(0, 255, 255, .4) + tags: + realistic: реалистический + highres: толстый слой краски (стиль) + photo_(medium): фотография (стиль) + oil_painting: масляная живопись + reality: реальность + polaroid: фотография (полароид) + + - name: Эскиз + color: rgba(0, 255, 255, .4) + tags: + sketch: эскиз + flat_color: плоский цвет + monochrome: монохромный + spot_color: сплошной цвет + halftone: полутоновый + greyscale: оттенки серого + high_contrast: высокий контраст + partially_colored: частичное окрашивание + chromatic_aberration: хроматическая аберрация + contour_deepening: углубление контура + outline: контур + silhouette: силуэт + + - name: Кисть + color: rgba(0, 255, 255, .4) + tags: + traditional_media: традиционные материалы (бумага и т. д.) + faux_traditional_media: имитация традиционных материалов + marker_(medium): маркер + copics: маркеры Copics (серый) + pencil_sketch_lines: карандашный набросок + graphite_(medium): графитовый карандаш + colored_pencil_(medium): цветные карандаши + millipen_(medium): ручка для рисования + nib_pen_(medium): ручка с наконечником + ballpoint_pen_(medium)_: шариковая ручка + pastel_color: пастельные цвета + watercolor_(medium): акварель + acrylic_paint_(medium): акриловая живопись + contour_deepening: утолщение линии + + - name: Цвет + color: rgba(0, 255, 255, .4) + tags: + orange: оранжевый + blue: синий + red: красный + light_brown: светло-коричневый + dark_pink: темно-розовый + khaki: хаки + blonde: блондин + brown: коричневый + black: черный + gray: серый + darkgray: темно-серый + silver: серебряный + lightgray: светло-серый + gainsboro: гейнсборо + whitesmoke: дымчато-белый + snow: снежный + ghostwhite: призрачно-белый + floralwhite: цветочно-белый + linen: льняной + antiquewhite: старинно-белый + papayawhip: папайя + blanchedalmond: бланшированный миндаль + bisque: бисквитный + moccasin: мокасин + navajowhite: навахо + peachpuff: персиковый + mistyrose: туманно-розовый + lavenderblush: бледно-лавандовый + seashell: ракушка + oldlace: старое кружево + ivory: слоновая кость + honeydew: медовый + mintcream: мятный + azure: лазурный + aliceblue: синий Алисы + lavender: лавандовый + lightsteelblue: светло-стальной + lightslategray: светло-сине-серый + slategray: сине-серый + steelblue: стальной + royalblue: королевский синий + midnightblue: полуночно-синий + navy: темно-синий + darkblue: темно-синий + mediumblue: средний синий + dodgerblue: синий Доджера + cornflowerblue: васильковый + skyblue: небесно-голубой + lightblue: светло-голубой + powderblue: пудрово-голубой + paleturquoise: бледно-бирюзовый + lightcyan: светло-циановый + cyan: циановый + aquamarine: аквамариновый + turquoise: бирюзовый + mediumturquoise: средне-бирюзовый + darkturquoise: темно-бирюзовый + lightseagreen: светло-морской + cadetblue: кадетский синий + darkcyan: темно-циановый + teal: сине-зеленый + darkslategray: темно-сине-серый + darkgreen: темно-зеленый + green: зеленый + forestgreen: лесной зеленый + seagreen: морской зеленый + mediumseagreen: средне-морской зеленый + mediumaquamarine: средне-аквамариновый + darkseagreen: темно-морской зеленый + palegreen: бледно-зеленый + lightgreen: светло-зеленый + springgreen: весенне-зеленый + mediumspringgreen: средне-весенне-зеленый + lawngreen: газонный зеленый + chartreuse: зеленовато-желтый + greenyellow: зелено-желтый + lime: лаймовый + limegreen: лаймово-зеленый + yellowgreen: желто-зеленый + darkolivegreen: темно-оливковый + olivedrab: серо-зеленый + olive: оливковый + darkkhaki: темно-хаки + palegoldenrod: бледно-золотистый + cornsilk: кукурузный шелк + beige: бежевый + lightyellow: светло-желтый + lightgoldenrodyellow: светло-золотисто-желтый + lemonchiffon: лимонный шифон + wheat: пшеничный + burlywood: светло-коричневый + tan: желто-коричневый + yellow: желтый + gold: золотой + sandybrown: песчано-коричневый + darkorange: темно-оранжевый + goldenrod: золотистый + peru: перуанский + darkgoldenrod: темно-золотистый + chocolate: шоколадный + sienna: сиена + saddlebrown: седельно-коричневый + maroon: темно-бордовый + darkred: темно-красный + firebrick: кирпичный + indianred: индийский красный + rosybrown: розово-коричневый + darksalmon: темно-лососевый + lightcoral: светло-коралловый + salmon: лососевый + lightsalmon: светло-лососевый + coral: коралловый + tomato: томатный + orangered: оранжево-красный + crimson: малиновый + mediumvioletred: средне-фиолетово-красный + deeppink: глубокий розовый + hotpink: ярко-розовый + palevioletred: бледно-фиолетово-красный + pink: розовый + lightpink: светло-розовый + thistle: чертополох + magenta: пурпурный + fuchsia: фуксия + violet: фиолетовый + plum: сливовый + orchid: орхидея + mediumorchid: средне-орхидейный + darkorchid: темно-орхидейный + darkviolet: темно-фиолетовый + darkmagenta: темно-пурпурный + purple: пурпурный + indigo: индиго + darkslateblue: темно-сине-голубой + blueviolet: сине-фиолетовый + mediumpurple: средне-пурпурный + slateblue: сине-голубой + mediumslateblue: средне-сине-голубой + + - name: фон + color: rgba(0, 255, 255, .4) + tags: + fantasy: фэнтези стиль + ban: научно-фантастический стиль + cyberpunk: киберпанк + depth_of_field: глубина резкости (художественный приём) + blurry: размытый фон + blurry_foreground: размытый передний план + simple_background: простой фон + black_background: черный фон + white_background: белый фон + transparent_background: прозрачный фон + beige_background: бежевый фон + brown_background: коричневый фон + tan_background: желто-коричневый фон + grey_background: серый фон + two-tone_background: двухцветный фон + gradient_background: градиентный фон + multicolored_background: многоцветный фон + rainbow_background: радужный фон + abstract_background: абстрактный фон + argyle_background: клетчатый фон + checkered_background: шахматный фон + floral_background: фон с цветочным узором + halftone_background: фон с полутоновыми точками + heart_background: фон с сердечками + honeycomb_background: фон в виде сот + plaid_background: фон в клетку + polka_dot: фон в горошек + striped_background: полосатый фон + scenery: пейзаж + landscape: ландшафт + foral_background: фон с цветочным узором + crop_top_overhang: обрезанный верх фона + starry_background: звездное небо + sparkle_background: фон со сверкающими звездами + cityscape: городской пейзаж + city_lights: городские огни + clock_background: фон с часами + bubble_background: фон с пузырьками + border: рамка + pillarboxed: фон с боковыми полосами + rounded_corners: фон или рамка с закругленными углами + viewfinder: видоискатель фотоаппарата + windowboxed: фон с окантовкой (как рамка) + outside_border: часть изображения за пределами рамки + flashback: сцена воспоминания + wall_of_text: фон из текста + background_text: текст на фоне + +- name: окружение + groups: + - name: сезон + color: rgba(31, 144, 255, .4) + tags: + in spring: весна + in summer: лето + in autumn: осень + in winter: зима + (autumn maple forest:1.3),(very few fallen leaves),(path): осенний лес кленов (1.3), (очень мало упавших листьев), (тропинка) + + - name: погода + color: rgba(31, 144, 255, .4) + tags: + day: день + dusk: сумерки + night: ночь + rain: дождь + in the rain: под дождем + rainy days: дождливые дни + sunset: закат + cloudy: облачно + full moon: полнолуние + sun: солнце + moon: луна + full_moon: полнолуние + stars: звезды + sky: небо + universe: вселенная + snow,ice: снег, лед + snowflakes: снежинки + lighting: молния + rainbow: радуга + meteor shower: метеорный дождь + cumulonimbus: кучево-дождевые облака + + - name: природа + color: rgba(31, 144, 255, .4) + tags: + nature: природа + sea: море + ocean: океан + beach: пляж + hills: холмы + in a meadow: на лугу + on the beach: на пляже + underwater: под водой + over the sea: над морем + grove: роща + on a desert: в пустыне + plateau: плато + cliff: утес + canyon: каньон + oasis: оазис + bamboo forest: бамбуковый лес + glacier: ледник + floating island: плавающий остров + volcano: вулкан + savanna: саванна + waterfall: водопад + stream: ручей + wasteland: пустошь + field: поле + rice paddy: рисовое поле + wheat field: пшеничное поле + flower field: цветочное поле + flower sea: цветущее море + space: космос + starry sky: звездное небо + lake: озеро + river: река + onsen: горячий источник + flowers meadows: цветущие луга + Alps: Альпы + Dreamy forest: Мечтательный лес (сказочная атмосфера, световые частицы, тишина) + mountain: гора + on a hill: на холме + the top of the hill: вершина холма + outdoors: на открытом воздухе + + - name: вода + color: rgba(31, 144, 255, .4) + tags: + ocean: океан + dripping: капельница + beach: пляж + lake: озеро + waterfall: водопад + ripples: рябь + swirl: вихрь + waves: волны + seashell: ракушка + seaweed: водоросли + + - name: небо + color: rgba(31, 144, 255, .4) + tags: + sky: небо + gradient_sky: градиентное небо + night_sky: ночное небо + starry_sky: звездное небо + hyper_galaxy: гипергалактика + star_(sky): звезда (в небе) + star_trail: след звезды + sunset: закат + moon: луна + lunar: лунный + crescent: полумесяц + crescent_moon: новолуние + full_moon: полнолуние + moonlight: лунный свет + scarlet_moon: багровая луна + universe: вселенная + space: космос + planet: планета + from_space_station: с космической станции + satellite: спутник + + - name: облака + color: rgba(31, 144, 255, .4) + tags: + cirrus: перистые облака + Cirrocumulus: киррокумулусы + Cirrostratus: кирростратусы + Altocumulus: высококучевые облака + Altostratus: высокослоистые облака + stratus: слоистые облака + Stratocumulus: слоистокучевые облака + cumulus: кучевые облака + Cumulonimbus: кучево-дождевые облака + Nimbostratus: дождевые облака + cirrus_fibratus: перистые облака-волосы + cirrus_uncinus: перистые крючковатые облака + cirrus_spissatus: перистые плотные облака + cirrus_floccus: перистые пушистые облака + cirrus_castellanus: перистые башенные облака + cirrus_intortus: перистые перемешанные облака + cirrocumulus: киррокумулусы + cirrocumulus_stratiformis: слоистые киррокумулусы + cirrocumulus_floccus: пушистые киррокумулусы + cirrocumulus_castellanus: башенные киррокумулусы + cirrocumulus_lacunosus: сетчатые киррокумулусы + cirrostratus: кирростратусы + cirrostratus_fibratus: перистые кирростратусы + cirrostratus_nebulosus: туманные кирростратусы + altocumulus: высококучевые облака + altocumulus_strataformis: слоистые высококучевые облака + altocumulus_lenticularis: линзовидные высококучевые облака + altocumulus_castellanus: башенные высококучевые облака + altocumulus_floccus: пушистые высококучевые облака + altocumulus_lacunosus: сетчатые высококучевые облака + altostratus: высокослоистые облака + altostratus_undulatus: волнистые высокослоистые облака + altostratus_duplicates: сложные высокослоистые облака + altostratus_pannus: клочковые высокослоистые облака + altostratus_translucidus: просвечивающие высокослоистые облака + altostratus_opacus: непрозрачные высокослоистые облака + altostratus_radiatus: радиальные высокослоистые облака + altostratus_mammatus: грудные высокослоистые облака + stratus_fractus: слоистые раздробленные облака + stratus_nebulosus: туманные слоистые облака + stratus_undulatus: волнистые слоистые облака + stratocumulus: слоистокучевые облака + stratocumulus_stratiformis: слоистые слоистокучевые облака + stratocumulus_cumulogentis: кучевые слоистокучевые облака + stratocumulus_castellanus: башенные слоистокучевые облака + stratocumulus_lenticularis: линзовидные слоистокучевые облака + stratocumulus_lacunosus: пушистые слоистокучевые облака + cumulus_humilis: скромные кучевые облака + cumulus_mediocris: средние кучевые облака + cumulus_congestus: густые кучевые облака + cumulus_fractus: раздробленные кучевые облака + cumulonimbus: кучево-дождевые облака + cumulonimbus_calvus: лысые кучево-дождевые облака + cumulonimbus_capillatus: пушистые кучево-дождевые облака + cumulonimbus_incus: кузовные кучево-дождевые облака + + - name: атмосфера + color: rgba(31, 144, 255, .4) + tags: + new year: новый год + year of the rabbit: год кролика + valentine: день святого Валентина + lantern festival: фестиваль фонарей + summer festival: летний фестиваль + tanabata: танабата + mid-autumn festival: фестиваль середины осени + halloween: Хэллоуин + christmas: Рождество + explosion: взрыв + water vapor: водяной пар + fireworks: фейерверк + ceiling window: потолочное окно + colourful glass: красочное стекло + stain glass: витраж + Graffiti wall: граффити на стене + mosaic background: мозаичный фон + liquid background, Sputtered water: жидкий фон, распыленная вода + magic circles: магические круги + fluorescent mushroom forests background: фон светящихся грибных лесов + (((colorful bubble))): (((красочный пузырь))) + in the ocean: на берегу океана + against backlight at dusk: против света на закате + golden hour lighting: освещение золотого часа + strong rim light: яркий контурный свет + intense shadows: интенсивные тени + +- name: Сцена + groups: + - name: На открытом воздухе + color: rgba(159, 32, 240, .4) + tags: + castle: Замок + city: Город + waterpark: Водный парк + carousel: Карусель + ferris wheel: Колесо обозрения + aquarium: Аквариум + zoo: Зоопарк + bowling alley: Боулинг-клуб + art gallery: Художественная галерея + museum: Музей + planetarium: Планетарий + swimming pool: Бассейн + stadium: Стадион + temple: Храм + bus stop: Автобусная остановка + train station: Железнодорожная станция + fountain: Фонтан + playground: Детская площадка + market stall: Рыночная лавка + phone booth: Телефонная будка + railroad tracks: Железнодорожные пути + airport: Аэропорт + tunnel: Туннель + skyscraper: Небоскреб + cityscape: Городской пейзаж + ruins: Руины + greco-roman architecture: Греко-римская архитектура + east asian architecture: Восточноазиатская архитектура + torii: Тории + church: Церковь + shop: Магазин + street: Улица + cyberpunk city: Киберпанк город + in the cyberpunk city: В киберпанк городе + chinese style architecture: Китайская архитектура + gohei: Гохэи + bustling city: Шумный город + laboratory: Лаборатория + coffee house: Кофейня + gym: Спортзал + library: Библиотека + prison: Тюрьма + engine room: Машинное отделение + handrail: Перила + neon lights: Неоновые огни + street lamp: Уличный фонарь + road: Дорога + shanty town/slum: Трущобы + warehouse: Склад + gothic architecture: Готическая архитектура + restaurant: Ресторан + treehouse: Домик на дереве + modern,Europe: Современная, Европа + industrial wind, Chinese architecture: Промышленный ветер, китайская архитектура + building_ruins: Руины здания + bar: Бар + izakaya: Изакая + cafe: Кафе + bakery: Пекарня + convenience store: Магазин удобств + supermarket: Супермаркет + pharmacy: Аптека + theater: Театр + movie theater: Кинотеатр + workshop: Мастерская + courtroom: Зал суда + park: Парк + trapeze: Трапеция; Качели + classroom: Классная комната + botanical garden: Ботанический сад + amusement park: Парк развлечений + Disney_land: Диснейленд + arena: Арена + wrestling_ring: Ринг для борьбы + auditorium: Аудитория + concert: Концерт + japanese hotel: Японский отель + jail bars: Решетки тюрьмы + in_the_movie_theatre: В кинотеатре + stage: Сцена + harbor: Гавань + casino: Казино + billiard: Бильярд + dungeon: Подземелье + grave: Могила + graveyard: Кладбище + tombstone: Надгробный камень + monolith: Монолит + rappelling: Спуск по веревке + building: Здание + architecture: Архитектура + magnificent_architecture: Великолепная архитектура + Skyscraper: Небоскреб + east_asian_architecture: Восточноазиатская архитектура + cathedral: Собор + chinese_style_loft: Китайский стильный чердак + traditional_chinese_room: Традиционная китайская комната + turret: Башенный блок + tower: Башня + mosque: Мечеть + reservoir: Водохранилище + railroad: Железная дорога + railway: Железная дорога + bridge: Мост + under_bridge: Под мостом + remains: Руины + rubble_ruins: Руины + + - name: Город + color: rgba(159, 32, 240, .4) + tags: + city: Город + cityscape: Городской пейзаж + street: Улица + downtown: Центр города + crowd: Толпа + alley: Переулок + in_main_street: На главной улице + intersection: Перекресток + avenue: Проспект + lawn: Лужайка + road: Дорога + path: Путь + pavement: Мостовая + road_sign: Дорожный знак + traffic_cone: Дорожный конус + lamppost: Фонарный столб + power_lines: Линии электропередачи + fence: Забор + railing: Ограждение + bench: Скамейка + vending_machine: Торговый автомат + + - name: В помещении + color: rgba(159, 32, 240, .4) + tags: + indoor: В помещении + bathroom: Ванная комната + toilet stall: Туалетная кабина + otaku room: Комната отаку + cafeteria: Кафетерий + classroom: Классная комната + clubroom: Клубная комната + bedroom: Спальня + kitchen: Кухня + dormitory: Общежитие + dungeon: Подвал + infirmary: Медицинский кабинет + stage: Сцена + electrical room: Электрическая комната + server room: Комната серверов + basement: Подвал + art room: Художественная комната + bathing: Купание + stairs: Лестница + greenhouse: Теплица + + - name: Пол + color: rgba(159, 32, 240, .4) + tags: + floor: Пол + tile_floor: Деревянный пол + + - name: Мебель + color: rgba(159, 32, 240, .4) + tags: + bedroom: Мебель + tatami: Татами + bed: Кровать + couch: Диван + kotatsu: Котацу + fireplace: Камин + window_: Окно + sash: Шашка + curtains: Занавески + door: Дверь + sliding_doors: Скользящие двери + clothes_rack: Вешалка для одежды + air_conditioner: Кондиционер + table: Стол + school_desk: Школьная партa + chair: Стул + armchair: Кресло + lounge_chair: Шезлонг + beach_chair: Пляжное кресло + folding_chair: Складной стул + invisible_chair: Невидимый стул + office_chair: Офисное кресло + wheelchair: Инвалидная коляска + + - name: Постельное белье + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: Простыня + mattress: Матрас; Подушка + futon: Японский матрас + cushion: Подушка + carpet: Ковер + pillow: Подушка + dumpling_Hug_Pillow: Подушка в виде пельменя + pillow_hug: Подушка для обнимания + yes-no_pillow: Подушка "Да/Нет" + stuffed_animal: Мягкая игрушка + stuffed_bunny: Мягкий кролик + koakuma: Коакума + + - name: Ванная комната + color: rgba(159, 32, 240, .4) + tags: + bathroom: Ванная комната + bathtub,: Ванна + rubber_duck: Резиновая уточка + shower_head: Душевая головка + toilet: Туалет + squat_toilet: Горизонтальный туалет + soap: Мыло + tiles: Плитка + +- name: Вещи + groups: + - name: Учебные принадлежности + color: rgba(189, 182, 107, .4) + tags: + notebook: Тетрадь + paintbrush: Кисть + pencil: Карандаш + book: Книга + open_book: Открытая книга + book_stack: Стопка книг + bookshelf: Книжная полка + school_bag: Школьная сумка + backpack: Рюкзак + + - name: Электронные устройства + color: rgba(189, 182, 107, .4) + tags: + computer: Компьютер + mouse: Мышь + cellphone: Мобильный телефон + Smartphones: Смартфоны + handheld_game_console_: Портативная игровая приставка + nintendo_3ds: Nintendo 3DS + nintendo_ds: Nintendo DS + nintendo_switch: Nintendo Switch + buttons: Кнопки + power_lines: Сетевой кабель + cable: Кабель + + - name: Посуда + color: rgba(189, 182, 107, .4) + tags: + pot: Кастрюля + teapot: Чайник + ladle: Черпак + can: Банка + soda_can: Газировка в банке + cup: Кружка + plate: Тарелка + tray: Поднос + bowl: Миска + fork: Вилка + chopsticks: Палочки + spoon: Ложка + drinking_glass: Стакан для питья + tumbler: Обычный стакан + beer_mug: Пивной кружка + gift_box: Подарочная коробка + heart-shaped_box: Коробка в форме сердца + candle: Свеча + + - name: Музыкальные инструменты + color: rgba(189, 182, 107, .4) + tags: + music: Музыка + guitar: Гитара + piano: Фортепиано + cello: Виолончель + playing_instrument: Игра на инструменте + wind_chime: Ветровое колокольчик + + - name: Прочие предметы + color: rgba(189, 182, 107, .4) + tags: + wristwatch: Наручные часы + folding_fan: Складной веер + paper_fan: Бумажный веер + uchiwa: Веер + umbrella: Зонтик + transparent_umbrella: Прозрачный зонтик + closed_umbrella: Закрытый зонтик + oil-paper_umbrella: Бумажный зонтик + Parasol: Парасоль + basket: Корзина + bouquet: Букет + bucket: Ведро + pail: Ведро + camera: Камера + gohei: Гохэй (оберег) + lantern/lamp: Фонарь + whip: Кнут + riding_crop: Ездовой кнут + ofuda: Офуда (оберег) + cane: Трость + wand: Волшебная палочка + magic: Магия + trading_card: Торговая карта + playing_card: Игральная карта + Cassette: Кассета + chess_piece: Шахматная фигура + coin: Монета + copper: Медная монета + hammer: Молоток + microphone: Микрофон + mimikaki: Щипчики для ушей + sack: Мешок + scales: Весы + chibi_inset: Чиби-вкладка + damaged: Поврежденный + diamond_(shape): Алмаз (форма) + gourd: Гурда + holding_gift: Держит подарок + inlet: Вход + key: Ключ + leash: Поводок + Lever: Рычаг, ручка управления + molecule: Молекула + money: Деньги + Painting_(Object): Картина (предмет) + photo_(object): Фотография (предмет) + sand: Песок + stubble: Подстилка + trophy: Трофей + tube_top: Топ-труба + water_bottle: Водная бутылка + lotion: Лосьон + lotion_bottle: Флакон с лосьоном + + - name: Оружие + color: rgba(189, 182, 107, .4) + tags: + weapon: Оружие + weapon_on_back: Оружие на спине + weapon_over_shoulder: Оружие через плечо + huge_weapon: Крупнокалиберное оружие + planted_weapon: Закрепленное оружие + broken_weapon: Сломанное оружие + planted_sword: Посаженный меч + sword: Меч + scabbard: Ножны + unsheathing: Вынимание из ножен + katana: Катана + saber_(weapon): Сабля (оружие) + scythe: Коса + nose_hatchet: Нож для обработки дерева + dagger: Кинжал + scissors: Ножницы + axe: Топор + hatchet: Топорик + stake: Колья + lance: Копье + trident: Трезубец + bow_(weapon): Лук + arrow: Стрела + claw_(weapon): Коготь (оружие) + rifle,: Винтовка + gun: Пистолет + handgun: Ручной пистолет + thompson_submachine_gun: Пистолет-пулемет Томпсона + magazine_(weapon): Магазин (оружие) + dynamite: Динамит + bomb: Бомба + track missiles: Управляемые ракеты + complex Trajectory: Сложная траектория + tank: Танк + cannon: Пушка + military_vehicle: Военная техника + motorcycle: Мотоцикл + ship: Корабль + watercraft: Водный транспорт + car: Автомобиль + machine: Машина + machinery: Вооружение механизмами + mechanical_arms: Механические руки + mechanization: Механизация + robot_ears: Роботические уши + robot_joints: Роботические сочленения + variable_fighter: Вариабельный истребитель + sorcerer's_sutra_scroll: Свиток заклинаний волшебника + + - name: Еда + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: Суши-ролл + apple: Яблоко + aubergine: Баклажан + burger: Бургер + cake: Торт + candy: Конфета + candy_apple: Карамельное яблоко + candy_cane: Леденец-тросточка + carrot: Морковь + cigarette: Сигарета + coffee: Кофе + cookie: Печенье + cotton_candy_: Сахарная вата + cream: Сливки + dango: Данго (японская сладость) + doughnut: Пончик + drink: Напиток + egg: Яйцо + fruit: Фрукт + Gelatin: Желатин, пудинг + ice_cream: Мороженое + kafuu_chino: Кафуу Чино (напиток) + makizushi: Маки-суши + meat: Мясо + noodles: Лапша + obento: Обенто (японская ланч-коробка) + onigiri: Онигири (рисовый шарик) + pancake: Блин + pasties: Пирожки + peach: Персик + ramen: Рамен (японская лапша) + sake: Саке (японское алкогольное питье) + taiyaki: Тайяки (японская выпечка) + tea: Чай + teacup: Чашка для чая + wagashi: Вагаши (японская сладость) + wine: Вино + jam: Джем + pocky: Покки (японская сладость) + bottled_water: Бутилированная вода + sweet_potato: Сладкий картофель + sweets: Сладости + food: Еда + food_in_mouth: Еда во рту + food_on_: Еда на лице + food_on_body: Еда на теле + food_print: Отпечаток от еды + food_stand: Палатка с едой + in_food: (Персонаж) в еде + chips: Чипсы + potato_chips: Картофельные чипсы + telstar: Телестар (футбольный мяч) + sundae: Сандэ (мороженое с добавками) + tempura: Тэмпура (японская закуска) + + - name: Животные + color: rgba(189, 182, 107, .4) + tags: + reptile: Пресмыкающееся + crow: Ворона + bird: Птица + penguin: Пингвин + chick: Цыпленок + manjuu_(azur_lane): Мандзю (морской котик) + shell: Ракушка + wriggle_nightbug: Ползучий ночной жук + dragonfly: Стрекоза + mammal: Млекопитающее + wolf: Волк + 扶桑花: Лошадь + whale: Кит + cat: Кошка + cat_teaser: Игрушка для кошки + dog: Собака + dog_tags: Собачьи теги + fox: Лиса + bunny: Кролик + snow_bunny: Снежный кролик + stuffed_bunny: Мягкая игрушка кролика + horse: Лошадь + cow: Корова + dragon: Дракон + loong: Лун (китайский дракон) + eastern_dragon: Восточный дракон + snake: Змея + slime: Слизь + bear: Медведь + panda: Панда + teddy_bear: Плюшевый мишка + tiger: Тигр + bat: Летучая мышь + hamster: Хомяк + mouse: Мышь + squirrel: Белка + + - name: Растения + color: rgba(189, 182, 107, .4) + tags: + plant: Растение + flower: Цветок + vase: Ваза + bouquet: Букет + flower_bloom: Цветение цветка + plum_blossom: Цветок сливы + cherry_blossoms: Цветы вишни + wisteria: Глициния + hibiscus: Гибискус + hydrangea: Гортензия + rose: Роза + spider_lily: Пауковое лилия + lily: Лилия + lotus: Лотос + bamboo: Бамбук + entangled_plants: Запутанные растения + orchid: Орхидея + chrysanthemum: Хризантема + narcissu: Нарцисс + tree: Дерево + branch: Ветка + forest: Лес + pine_tree: Сосна + palm_tree: Пальма + maple_tree: Клён + bush/shrub,: Куст + christmas_tree: Рождественская ёлка + maple_leaf: Клёновый лист + pumpkin: Тыква + jack-o'-lantern: Фонарь Джека + spring_onion: Зеленый лук + +- name: Объектив + groups: + - name: Объектив + color: rgba(99, 201, 2, .4) + tags: + panorama: Панорама + landscape: Ландшафтный объектив (дальний план) + wide_shot: Объектив широкого ракурса + medium_shot: Объектив среднего плана + mid_shot: Объектив среднего плана + full_shot: Полный план + bust: Полуплан + upper_body: Верхняя половина тела + lower_body: Нижняя половина тела + cowboy_shot: Верхняя половина тела + верхняя часть бедра (кадр "каубой") + portrait: Портрет (лицо + плечи + иногда грудь) + profile: Профильный портрет (боковой вид портрета) + + - name: Крупный план + color: rgba(99, 201, 2, .4) + tags: + close-up: Крупный план + macro_shot: Макрообъектив + inset: Вставка другого кадра или изображения + cross-section: Поперечное сечение + x-ray: Рентгеновский снимок + solo_focus: Фокус на одном персонаже (подходит для сложных сцен) + xx_focus: Фокус на xx + face_focus: Фокус на лице + eyes_focus: Фокус на глазах + foot_focus: Фокус на ногах + hip_focus: Фокус на ягодицах + ass_focus: Фокус на заднице + vehicle_focus: Фокус на транспортном средстве + between_legs: (Упор на) между ног + between_breasts: (Выделение) груди + between_fingers: (Выделение) между пальцами + peeking: Подглядывание + peeking_out: Подглядывание (поза) + peeping: Подглядывание (акцент на точку зрения) + midriff_peek: Подглядывание в пупок + armpit_peek: Подглядывание в подмышечную впадину + pussy_peek: Подглядывание в пах + panty_peek: Подглядывание под юбку + pantyshot: Просвет в юбке + caught: Пойман на месте преступления + + - name: Другие композиции + color: rgba(99, 201, 2, .4) + tags: + aerial: Воздушный + turn_one's_back: Поворот спины + upskirt: Вид снизу на юбку + phone_screen: Экран телефона + multiple_views: Множественные ракурсы + mirror selfie: Селфи в зеркале + three-quarter view: Трехчетвертный ракурс + + - name: Углы съемки + color: rgba(99, 201, 2, .4) + tags: + front view: Фронтальный ракурс + from_side: Боковой ракурс + from_above: Сверху ↘ + from_below: Снизу ↗ + from_outside: Снаружи внутрь + from_back: Сзади + from behind: Сзади + dynamic_angle: Динамичный ракурс + cinematic_angle: Кинематографический ракурс + dutch angle: Голландский ракурс + foreshortening: Сокращение перспективы + fisheye: Рыбий глаз + + - name: Эффекты + color: rgba(99, 201, 2, .4) + tags: + depth of field: Глубина резкости (согласование объекта и фона) + lens_flare: Вспышка на объективе + motion_blur: Размытие движения + motion_lines: Линии движения + speed_lines: Линии скорости + bokeh: Боке (размытость фона) + chromatic_aberration: Хроматическая аберрация (цветовая дисторсия) + overexposure: Пересвет + contour_deepening: Усиление контуров + + - name: Действия главного героя + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: Смотреть на зрителя + eye-contact: Глазной контакт + eyeball: Пристальный взгляд + stare: Уставиться + looking_back: Оглядываться + gradient: Наклон тела + looking_down: Взгляд вниз ↘ + looking_up: Взгляд вверх ↗ + facing_away: Обратиться в другую сторону + looking_to_the_side: Смотреть в сторону + looking_away: Отвести взгляд + looking_ahead: Смотреть вперед + looking_afar: Смотреть вдаль + looking_outside: Смотреть наружу + head_tilt: Поворот головы + head_down: Наклон головы вниз + sideways_glance: Боковой взгляд + upshirt: Подглядывание снизу под рубашку + upshorts: Подглядывание снизу под юбку + looking_at_another: Смотреть на другого + looking_at_phone: Смотреть на телефон + looking_at_animal: Смотреть на животное + looking_at_mirror: Смотреть в зеркало + looking_at_hand: Смотреть на руку + looking_at_hands: Смотреть на обе руки + looking_at_food: Смотреть на еду + looking_at_screen: Смотреть на экран + +- name: Китайская одежда + groups: + - name: "стиль Тан:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: стиль Тан + + - name: Шань + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: Оранжевый верхний Шань + red upper shan: Красный верхний Шань + green upper shan: Зеленый верхний Шань + blue upper shan: Синий верхний Шань + pink upper shan: Розовый верхний Шань + yellow upper shan: Желтый верхний Шань + white upper shan: Белый верхний Шань + light blue upper shan: Светло-синий верхний Шань + light green upper shan: Светло-зеленый верхний Шань + light red upper shan: Светло-красный верхний Шань + cyan blue upper shan: Голубой верхний Шань + light purple upper shan: Светло-фиолетовый верхний Шань + black with blue upper shan: Черный с синим верхний Шань + white with orange upper shan: Белый с оранжевым верхний Шань + pink with black upper shan: Розовый с черным верхний Шань + + - name: Длинный Шань + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: Оранжевый длинный Шань + red long upper shan: Красный длинный Шань + green long upper shan: Зеленый длинный Шань + blue long upper shan: Синий длинный Шань + pink long upper shan: Розовый длинный Шань + yellow long upper shan: Желтый длинный Шань + white long upper shan: Белый длинный Шань + light blue long upper shan: Светло-синий длинный Шань + light green long upper shan: Светло-зеленый длинный Шань + light red long upper shan: Светло-красный длинный Шань + cyan blue long upper shan: Голубой длинный Шань + light purple long upper shan: Светло-фиолетовый длинный Шань + black with blue long upper shan: Черный с синим длинный Шань + white with orange long upper shan: Белый с оранжевым длинный Шань + pink with black long upper shan: Розовый с черным длинный Шань + + - name: Чи-сянь по юбке + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: Белая Чи-сянь по юбке + red chest po skirt: Красная Чи-сянь по юбке + green chest po skirt: Зеленая Чи-сянь по юбке + blue chest po skirt: Синяя Чи-сянь по юбке + pink chest po skirt: Розовая Чи-сянь по юбке + purple chest po skirt: Фиолетовая Чи-сянь по юбке + multicolour chest po skirt: Многоцветная Чи-сянь по юбке + purple with white chest po skirt: Фиолетово-белая Чи-сянь по юбке + white with yellow chest po skirt: Бело-желтая Чи-сянь по юбке + blue with white chest po skirt: Голубая Чи-сянь по юбке + orange with white chest po skirt: Оранжево-белая Чи-сянь по юбке + green with white chest po skirt: Зелено-белая Чи-сянь по юбке + light orange with white chest po skirt: Светло-оранжево-белая Чи-сянь по юбке + pink with white chest po skirt: Розово-белая Чи-сянь по юбке + white with pink chest po skirt: Бело-розовая Чи-сянь по юбке + + - name: Чи-сянь по складкам + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: Белая Чи-сянь по складкам + red chest pleated skirt: Красная Чи-сянь по складкам + green chest pleated skirt: Зеленая Чи-сянь по складкам + blue chest pleated skirt: Синяя Чи-сянь по складкам + pink chest pleated skirt: Розовая Чи-сянь по складкам + purple chest pleated skirt: Фиолетовая Чи-сянь по складкам + multicolour chest pleated skirt: Многоцветная Чи-сянь по складкам + purple with white chest pleated skirt: Фиолетово-белая Чи-сянь по складкам + white with yellow chest pleated skirt: Бело-желтая Чи-сянь по складкам + blue with white chest pleated skirt: Голубая Чи-сянь по складкам + orange with white chest pleated skirt: Оранжево-белая Чи-сянь по складкам + green with white chest pleated skirt: Зелено-белая Чи-сянь по складкам + light orange with white chest pleated skirt: Светло-оранжево-белая Чи-сянь по складкам + pink with white chest pleated skirt: Розово-белая Чи-сянь по складкам + white with pink chest pleated skirt: Бело-розовая Чи-сянь по складкам + + - name: Пояс + color: rgba(178, 33, 34, .4) + tags: + green waistband: Зеленый пояс + yellow waistband: Желтый пояс + red waistband: Красный пояс + pink waistband: Розовый пояс + orange waistband: Оранжевый пояс + light blue waistband: Светло-синий пояс + light green waistband: Зелено-белый пояс + green with yellow waistband: Зелено-желтый пояс + purple with white waistband: Фиолетово-белый пояс + red with white waistband: Красно-белый пояс + red with black waistband: Красно-черный пояс + yellow with white waistband: Желто-белый пояс + + - name: Покрывало + color: rgba(178, 33, 34, .4) + tags: + white pibo: Белое покрывало + orange pibo: Оранжевое покрывало + black pibo: Черное покрывало + pink pibo: Розовое покрывало + red pibo: Красное покрывало + purple pibo: Фиолетовое покрывало + light green pibo: Светло-зеленое покрывало + white with yellow pibo: Бело-желтое покрывало + + - type: wrap + + - name: "стиль Сун:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: стиль Сун + + - name: Короткая рубашка + color: rgba(178, 33, 34, .4) + tags: + purple short shan: Фиолетовая короткая рубашка + red short shan: Красная короткая рубашка + green short shan: Зеленая короткая рубашка + blue short shan: Синяя короткая рубашка + pink short shan: Розовая короткая рубашка + yellow short shan: Желтая короткая рубашка + white short shan: Белая короткая рубашка + light blue short shan: Светло-синяя короткая рубашка + light green short shan: Светло-зеленая короткая рубашка + light red short shan: Светло-красная короткая рубашка + cyan blue short shan: Голубая короткая рубашка + light purple short shan: Светло-фиолетовая короткая рубашка + black with blue short shan: Черная с синей короткая рубашка + white with yellow short shan: Белая с желтой короткая рубашка + light yellow with green with white short shan: Светло-желто-зеленая короткая рубашка + + - name: Длинная рубашка + color: rgba(178, 33, 34, .4) + tags: + purple long shan: Фиолетовая длинная рубашка + red long shan: Красная длинная рубашка + green long shan: Зеленая длинная рубашка + blue long shan: Синяя длинная рубашка + pink long shan: Розовая длинная рубашка + yellow long shan: Желтая длинная рубашка + white long shan: Белая длинная рубашка + light blue long shan: Светло-синяя длинная рубашка + light green long shan: Светло-зеленая длинная рубашка + light red long shan: Светло-красная длинная рубашка + cyan blue long shan: Голубая длинная рубашка + light purple long shan: Светло-фиолетовая длинная рубашка + black with blue long shan: Черная с синей длинная рубашка + white with yellow long shan: Белая с желтой длинная рубашка + light yellow with green with white long shan: Светло-желто-зеленая длинная рубашка + + - name: Многослойная юбка + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: Белая юбка + red pleated skirt: Красная юбка + green pleated skirt: Зеленая юбка + blue pleated skirt: Синяя юбка + pink pleated skirt: Розовая юбка + light blue pleated skirt: Светло-синяя юбка + white golden pleated skirt: Белая золотая юбка + gradient green pleated skirt: Градиентная зеленая юбка + translucent white pleated skirt: Прозрачная белая юбка + red cyan gradient pleated skirt: Красно-голубая градиентная юбка + red green gradient pleated skirt: Красно-зеленая градиентная юбка + green with white pleated skirt: Зелено-белая юбка + light yellow with green with white pleated skirt: Светло-желто-зелено-белая юбка + + - name: Суньмао + color: rgba(178, 33, 34, .4) + tags: + orange songmo: Оранжевый суньмао + red songmo: Красный суньмао + green songmo: Зеленый суньмао + blue songmo: Синий суньмао + pink songmo: Розовый суньмао + yellow songmo: Желтый суньмао + white songmo: Белый суньмао + purple songmo: Фиолетовый суньмао + green floral songmo: Зеленый цветочный суньмао + purple floral songmo: Фиолетовый цветочный суньмао + cyan floral songmo: Голубой цветочный суньмао + + - type: wrap + + - name: "стиль Минь:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: стиль Минь + + - name: Верхняя одежда + color: rgba(178, 33, 34, .4) + tags: + short coat: Короткий плащ + long coat: Длинный плащ + + - name: Юбка + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: Юбка "ма-миан" + + - name: Воротник + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Накладной воротник + round collar: Круглый воротник + standing collar: Воротник-стойка + square collar: Квадратный воротник + + - name: Украшения + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: Облака на плечах + embroidery: Вышивка + woven gold: Плетение золотом + makeup flower: Цветочный узор + bufu: Буфу diff --git a/group_tags/zh_CN.yaml b/group_tags/zh_CN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1eacd4712e9eb5d87859e266363fb2160bfa3d00 --- /dev/null +++ b/group_tags/zh_CN.yaml @@ -0,0 +1,4508 @@ +# 👍提示词整合来源 路过银河(知乎)、未知作者(Google Drive)、互联网等等,感谢这些作者的无私奉献! +# +# ⚠️建议不要修改本文件内容,因为本文件作者可能会不定期更新,如果修改了本文件,可能会导致更新时出现冲突。 +# ⚠️如需要自定义关键词组,请复制本文件,重命名为 custom.yaml,然后在 custom.yaml 中修改。 +# ⚠️插件将优先读取 custom.yaml 文件,如果 custom.yaml 文件不存在,则读取本文件。 +# +# ⚠️如果只想要再当前文件前面追加自己的内容,可以建立 prepend.yaml 文件。 +# ⚠️如果只想要再当前文件后面追加自己的内容,可以建立 append.yaml 文件。 +# ⚠️custom.yaml: 覆盖当前文件 +# ⚠️prepend.yaml: 追加到当前文件前面 +# ⚠️append.yaml: 追加到当前文件后面 +# +# ⚠️建议使用专业的文本编辑器(如 Visual Studio Code)编辑本文件,以避免编码和格式错误的问题。 +# ⚠️请勿使用 Windows 自带的记事本编辑本文件。 +# ⚠️修改后可以前往 https://www.yamllint.com/ 检查内容格式是否正确。 + +# 内容格式: +# - name: 一级分类名 +# groups: 二级分类列表 +# - name: 二级分类名 +# color: 关键词文本默认颜色(可以为空),CSS颜色代码,例如:#ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: 关键词列表 +# - 英文关键词: 本地化翻译 +# - 英文关键词: 本地化翻译 +# ... + +# 本内容的本地化翻译均来自机翻,可能存在不准确的情况,如有发现,欢迎前往 Github 提交 PR 进行修正。 +# 如有分类错误、关键词错误、关键词翻译错误等问题,欢迎前往 Github 提交 Issue 进行反馈。 + +- name: 人物 + groups: + - name: 对象 + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1女孩 + 1boy: 1男孩 + 2girls: 2女孩 + 2boys: 2男孩 + 3girls: 3女孩 + 3boys: 3男孩 + girl: 女孩 + boy: 男孩 + solo: 单人 + multiple_girls: 多个女孩 + little_girl: 小女孩 + little_boy: 小男孩 + shota: 正太 + loli: 萝莉 + kawaii: 可爱 + mesugaki: 雌小鬼 + adorable_girl: 可爱的女孩 + bishoujo: 美少女 + gyaru: 辣妹 + sisters: 姐妹 + ojousama: 大小姐 + female: 女性 + mature_female: 成熟女性 + mature: 成熟 + female_pervert: 痴女 + male: 男性 + milf: 熟女 + otoko_no_ko: 伪娘 + crossdressing: 伪娘 + + - name: 身份 + color: rgba(255, 123, 2, .4) + tags: + lifeguard: 救生员 + boxer: 拳击手 + scientist: 科学家 + athletes: 运动员 + office lady: 职场女性 + monk: 和尚 + crobat: 杂技演员 + nun: 修女 + nurse: 护士 + stewardess: 空姐 + student: 学生 + waitress: 女服务员 + teacher: 老师 + racer: 赛车手 + police: 警察 + soldier: 士兵 + cheerleader: 啦啦队 + actor: 男演员 + actress: 女演员 + spy: 间谍 + agent: 特工 + assassin: 刺客 + poet: 诗人 + samurai: 日本武士 + dancing girl: 舞女 + motorcyclist: 摩托车手 + hacker: 黑客 + magician: 魔术师 + detective: 侦探 + doll: 人偶 + maid: 女仆 + pilot: 飞行员 + diver: 潜水员 + bar censor: 酒吧审查员 + missionary: 传教士 + firefighter: 消防员 + goalkeeper: 守门员 + chef: 厨师 + astronaut: 宇航员 + cashier: 收银员 + mailman: 邮递员 + barista: 咖啡师 + the hermit: 隐士 + makihitsuji: 牧羊人 + office_lady: 办公室小姐 + race_queen: 赛车女郎 + queen: 女王 + doctor: 医生 + knight: 骑士 + housemaid: 女仆 + dancer: 舞者 + ballerina: 芭蕾舞演员 + gym_leader: 体操教练 + trap: 伪娘 + female: 女人 + harem: 后宫 + idol: 偶像 + male: 男人 + priest: 牧师 + cleric: 神职人员(基督教) + wa_maid: 和风女仆 + yaoi: 搞基 + yuri: 百合 + albino: 白化病患者 + amputee: 截肢者 + + - name: 二次元角色 + color: rgba(255, 123, 2, .4) + tags: + pokemon: 宝可梦 + teddy bear: 泰迪熊 + mario: 马里奥 + pikachu: 皮卡丘 + neon genesis evangelion: 新世纪福音战士 + hatsune miku: 初音未来 + harry potter: 哈利波特 + doraemon: 哆啦A梦 + saint seiya: 圣斗士星矢 + gojou satoru: 五条悟 + avengers: 复仇者联盟 + mazinger: 神奇女侠 + captain america: 美国队长 + crayon shin-chan: 蜡笔小新 + slam dunk: 灌篮高手 + sun wukong: 孙悟空 + witch: 女巫 + miko: 巫女 + ninja: 忍者 + vampire: 吸血鬼 + knight: 骑士 + magical_girl: 魔法少女 + orc: 半兽人 + druid: 德鲁伊 + elf: 妖精 + fairy: 小精灵 + furry: 兽人 + mermaid: 美人鱼 + kamen rider: 假面骑士 + magister: 魔导师 + spider-man: 蜘蛛侠 + santa alter: 圣诞老人 + monster_girl: 人外娘 + cat_girl: 猫娘 + dog_girl: 犬娘 + fox_girl: 狐娘 + kitsune: 狐妖 + kyuubi: 九尾|九尾狐 + raccoon_girl: 浣熊娘 + wolf_girl: 狼女孩 + bunny_girl: 兔娘 + horse_girl: 马娘 + cow_girl: 牛娘 + dragon_girl: 龙娘 + centaur: 半人马 + slime_musume: 史莱姆娘 + spider_girl: 蜘蛛娘 + dominatrix: 女王(SM中) + sailor_senshi: 美少女战士 + mecha: 机甲 + mecha_musume: 机甲娘 + humanoid_robot_: 类人机器人 + cyborg: 半机械人 + angel: 天使 + devil: 魔鬼 + dark_elf: 暗精灵 + imp: 小恶魔 + succubus: 魅魔 + giantess: 女巨人 + minigirl: 迷你女孩 + monster: 怪物 + multiple girls: 魔幻少女 + no humans: 非人 + + - name: 年龄 + color: rgba(255, 123, 2, .4) + tags: + toddler: 幼童 + kindergartener: 幼儿园 + child: 儿童 + underage: 未成年 + teenager: 青少年(13-19) + teen: 青少年(13-19) + early teen: 青少年早期(11-15) + adult: 大人 + elder: 老人 + old: 老年 + loli: 萝莉 + shota: 正太 + + - name: 皮肤 + color: rgba(255, 123, 2, .4) + tags: + white_skin: 白皮肤 + pale_skin: 苍白的皮肤 + fair_skin: 白皙的皮肤 + brown_skin: 棕色皮肤 + deep_skin: 深色皮肤 + dark_skin: 黑皮肤 + black_skin: 黑皮肤 + shiny_skin: 有光泽的皮肤 + white_marble_glowing_skin: 白色大理石发光皮肤 + tattoo: 纹身 + tan: 日晒 + tanlines: 日晒痕迹 + oil: 油性 + + - name: 身材 + color: rgba(255, 123, 2, .4) + tags: + skinny: 骨感 + plump: 丰满 + curvy: 魔鬼身材 + gyaru: 辣妹(日本太妹) + pregnant: 怀孕 + fat: 肥胖 + thin: 瘦 + slender: 苗条 + glamor: 魅力 + tall: 高大 + petite: 娇小 + chibi: 萌萌 + muscular: 肌肉 + + - name: 脸型 + color: rgba(255, 123, 2, .4) + tags: + slender face: 瘦脸 + round face: 圆脸 + oval face: 鹅蛋脸 + baby face: 娃娃脸 + inverted triangle face: 倒三角脸 + heart shaped face: 心形脸 + diamond face: 菱形脸 + square face: 方脸 + long face: 长脸 + triangular face: 三角脸 + + - name: 头发 + color: rgba(255, 123, 2, .4) + tags: + white hair: 白色头发 + blonde hair: 金色头发 + silver hair: 银色头发 + grey hair: 灰色头发 + purple hair: 紫色头发 + red hair: 红色头发 + yellow hair: 黄色头发 + green hair: 绿色头发 + blue hair: 蓝色头发 + black hair: 黑色头发 + brown hair: 棕色头发 + straight_hair: 直发 + short hair: 短发 + curly hair: 卷发 + long hair: 长发 + pony-tail: 马尾 + bunches: 双马尾 + streaked hair: 挑染 + grey gradient hair: 灰色渐变 + light brown hair: 亮棕 + two-tone hair: 双色 + multicolored hair: 五颜六色 + high ponytail: 高马尾 + twintails: 双马尾二 + braided ponytail: 马尾编发 + ponytail: 马尾辫 + short ponytail: 短马尾 + twin braids: 双辫子 + medium hair: 中发 + very long hair: 超长发 + braided bangs: 辫子刘海 + swept bangs: 侧扫刘海 + hair between eyes: 眼间头发 + bob cut: 妹妹切 + hime cut: 公主切 + crossed bangs: 交叉刘海 + bangs: 刘海 + blunt bangs: 齐刘海 + air bangs: 空气刘海 + hair wings: 翼状头发 + long bangs: 长刘海 + side_blunt_bangs: 侧面空气刘海 + centre parting bangs: 中分刘海 + asymmetric bangs: 不对称刘海 + disheveled hair: 蓬发 + wavy hair: 波浪形头发 + hair in takes: 收拢 + hair pink flowers: 粉色花 + ahoge: 呆毛 + antenna hair: 多根呆毛 + Side ponytail: 侧马尾 + forehead: 露额头 + drill hair: 钻头卷公主卷 + hair bun: 包子头 + double bun: 俩包子头 + messy hair: 凌乱发型 + hair_flaps: 发翼 + + - name: 面部 + color: rgba(255, 123, 2, .4) + tags: + makeup: 化妆 + fundoshi: 粉底 + eyeshadow: 眼影 + lipstick: 口红 + mascara: 睫毛膏 + long_eyelashes: 长睫毛 + red_lips_: 红唇 + facepaint: 面部涂装 + lipgloss: 唇彩 + colored_eyelashes: 彩色睫毛 + blush: 脸红 + light_blush: 淡淡的腮红 + anime_style_blush: 动画式脸红 + nose_blush: 鼻腮红 + nosebleed: 鼻血 + bruise_on_face: 脸上有瘀伤 + facial_mark: 面部标记 + forehead_mark: 额头标记 + anger_vein: 头部愤怒符号 + mole: 痣 + mole_under_eye: 眼睛下方的痣 + freckles: 雀斑 + food_on_face: 食物在脸上 + rice_on_face: 饭在脸上 + cream_on_face: 奶油在脸上 + mustache: 小胡子 + goatee: 山羊胡 + whisker_markings: 胡须斑纹 + scar: 疤痕 + scar_across_eye: 穿过眼睛的疤痕 + smoking_pipe: 烟斗 + tattoo: 纹身 + + - name: 耳朵 + color: rgba(255, 123, 2, .4) + tags: + elf ears: 精灵耳朵 + fake animal ears: 动物耳朵 + cat ears: 猫耳朵 + dog ears: 狗耳朵 + fox ears: 狐狸耳朵 + bunny ears: 兔子耳朵 + bear ears: 熊耳朵 + wolf ears: 狼耳朵 + horse ears: 马耳朵 + cow ears: 牛耳朵 + mouse ears: 老鼠耳朵 + pig ears: 猪耳朵 + sheep ears: 羊耳朵 + deer ears: 鹿耳朵 + goat ears: 山羊耳朵 + antelope ears: 羚羊耳朵 + rhino ears: 犀牛耳朵 + elephant ears: 大象耳朵 + bat ears: 蝙蝠耳朵 + dragon ears: 龙耳朵 + demon ears: 恶魔耳朵 + angel ears: 天使耳朵 + alien ears: 外星人耳朵 + ear_blush: 耳朵通红 + ear_ornament: 耳饰 + ear_piercing: 耳洞 + animal_ears: 兽耳 + ears_down: 垂耳 + fake_animal_ears: 假兽耳 + floppy_ears: 松软的耳朵 + animal_ear_fluff: 动物耳朵绒毛 + fox_ears: 狐狸耳朵 + cat_ears: 猫耳朵 + lion_ears: 狮子耳朵 + jaguar_ears: 美洲豹耳朵 + tiger_ears: 虎耳 + dog_ears: 狗耳朵 + coyote_ears: 郊狼耳朵 + bunny_ears: 兔耳 + horse_ears: 马耳 + pointy_ears: 尖耳朵 + long_pointy_ears: 长尖耳朵 + mouse_ears: 老鼠耳朵 + raccoon_ears: 浣熊耳朵 + squirrel_ears: 松鼠耳朵 + bear_ears: 熊耳朵 + panda_ears: 熊猫耳朵 + bat_ears: 蝙蝠耳朵 + robot_ears: 机器人耳朵 + extra_ears: 额外的耳朵 + ears_through_headwear: 耳朵穿过帽子或头饰 + alpaca_ears: 羊驼耳 + horns: 兽角 + fake_horns: 假角 + dragon_horns: 龙角 + oni_horns: 鬼角 + antlers: 鹿角 + curled_horns: 弯角 + goat_horns: 山羊角 + hair_on_horn: 角上的头发 + + - name: 眉毛 + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: 浓眉 + cocked eyebrow: 眉毛翘起 + short eyebrows: 短眉毛 + v-shaped eyebrows: V字眉 + + - name: 眼睛 + color: rgba(255, 123, 2, .4) + tags: + blue eyes: 蓝色眼睛 + red eyes: 红色眼睛 + brown eyes: 棕色眼睛 + green eyes: 绿色眼睛 + purple eyes: 紫色眼睛 + yellow eyes: 黄色眼睛 + pink eyes: 粉色眼睛 + black eyes: 黑色眼睛 + aqua eyes: 水蓝色眼睛 + orange eyes: 橙色眼睛 + grey eyes: 灰色眼睛 + multicolored eyes: 多彩眼睛 + white eyes: 白色眼睛 + gradient eyes: 渐变眼睛 + closed eyes: 闭上眼睛 + half-closed eyes: 半闭眼 + crying with eyes open: 睁着眼睛哭 + narrowed eyes: 眯起眼睛 + hidden eyes: 隐藏眼睛 + heart-shaped eyes: 心形眼睛 + button eyes: 纽扣眼睛 + cephalopod eyes: 头足类眼睛 + eyes visible through hair: 透过头发看见眼睛 + glowing eyes: 发光的眼睛 + empty eyes: 空洞的眼睛 + rolling eyes: 翻白眼 + cross eyed: 斗鸡眼 + blank eyes: 空白的眼睛 + no eyes: 没有眼睛 + sparkling eyes: 闪闪发光的眼睛 + extra eyes: 额外的眼睛 + crazy eyes: 疯狂的眼睛 + solid circle eyes: 实心圆眼 + solid oval eyes: 实心椭圆形眼睛 + uneven eyes: 不均匀的眼睛 + blood from eyes: 眼里流血 + eyeshadow: 眼影 + red eyeshadow: 红色眼影 + blue eyeshadow: 蓝色眼影 + purple eyeshadow: 紫色眼影 + pink eyeshadow: 粉色眼影 + green eyeshadow: 绿色眼影 + bags under eyes: 眼袋 + ringed eyes: 眼圈 + covered eyes: 蒙住眼睛 + covering eyes: 遮住眼睛 + shading eyes: 挡着眼睛 + devil eyes: 魔鬼眼 + slit pupils: 猫眼 + bloodshot eyes: 充血的眼睛 + tsurime: 眼尾上扬 + tareme: 眼尾下垂 + constricted pupils: 瞳孔收缩 + devil pupils: 魔瞳 + snake pupils: 蛇瞳 + pupils sparkling: 瞳孔闪烁 + flower-shaped pupils: 花状瞳孔 + heart-shaped pupils: 心形瞳孔 + heterochromia: 异色瞳 + color contact lenses: 美瞳 + longeyelashes: 长睫毛 + colored eyelashes: 彩色睫毛 + mole under eye: 眼下痣 + light_eyes: 明亮的眼睛 + glowing_eye: 发光的眼睛 + shiny_eyes: 闪亮的眼睛 + sparkling_eyes: 星星眼 + gradient_eyes: 渐变眼睛 + anime_style_eyes: 动画眼 + water_eyes: 水汪汪 + beautiful_detailed_eyes: 美丽的眼睛 + solid_oval_eyes_: Q版实心椭圆眼睛 + solid_circle_pupils: Q版实心圆瞳孔 + blush_stickers: Q版腮红贴纸 + heart_in_eye: 心形眼 + evil_eyes: 邪恶的眼睛 + crazy_eyes: 疯狂的眼睛 + empty_eyes: 失去高光的眼睛 + covered_eyes: 蒙住的眼睛 + hollow_eyes: star-shaped_pupils + multicolored_eyes: 多彩多姿的眼睛 + ringed_eyes: 眼圈 + sanpaku: 三白症(瞳孔偏移) + mismatched_sclera: 错配巩膜 + eye_relfection: 眼睛反射(没有效果 + mechanical_eye: 机械眼 + cephalopod_eyes: 头足类眼睛 + clock_eyes: 钟眼 + compound_eyes: 复眼 + fisheye: 鱼眼 + devil_eyes: 恶魔之眼 + bloodshot_eyes: 布满血丝的眼睛 + blood_from_eyes: 血从眼里流出 + aqua_eyes: 青色眼睛 + solid_eyes: 坚定的眼睛 + sparkling_anime_eyes: 闪光动画眼 + blue_eyes: 蓝眼睛 + brown_eyes: 棕色的眼睛 + closed_eyes: 闭上的眼睛 + crying_with_eyes_open: 睁着眼落泪 + extra_eyes: 多只眼睛 + eye_contact: 眼神交流 + eye_of_horus: 荷鲁斯之眼 + eyeball: 眼球 + eyeliner: 眼线 + eyes: 眼睛 + glint: 眼中闪现强烈的情感 + glowing_eyes: 发光的双眼 + half-closed_eye: 半闭的眼睛(单眼) + half-closed_eyes: 半闭的双眼 + horizontal_pupils: + jitome: 轻蔑的眼神 + light_brown_eyes: 浅棕色眼睛 + no_eyes: 没画出眼睛 + one-eyed: 反光的眼睛 + reflective_eyes: + silver_eyes: 银色的眼睛 + spiral_eyes: 漩涡眼 + third_eye: 第三只眼 + uneven_eyes: 大小眼 + flaming_eye: 焰目 + eyes_closed: 闭眼 + half_closed_eyes: 半闭双眼 + narrowed_eyes: 眯起眼睛 + squinting: 眯起眼睛看 + tears: 眼泪 + sharp_eyes: 锐利的眼 + slanted_eyes: 锐利的眼 + upturned_eyes: 上翘的眼睛 + cross-eyed: 斗鸡眼 + hair_over_eyes: 头发遮着双眼 + eyes_visible_through_hair: 透过头发可以看到的眼睛 + hair_over_one_eye: 头发遮住了一只眼睛 + one_eye_covered: 一只眼被遮住 + bags_under_eyes: 眼袋 + eyepatch: 眼罩 + medical_eyepatch: 医用眼罩 + scar_across_eye: 眼睛上的疤痕 + no_blindfold: 去掉了(原设有的)蒙眼要素 + no_eyepatch: 去掉了(原设有的)眼罩 + ahegao: 阿嘿颜 + + - name: 瞳孔 + color: rgba(255, 123, 2, .4) + tags: + pupils: 瞳孔 + bright_pupils: 明亮的瞳孔 + heterochromia: 异色瞳 + slit_pupils: 竖的瞳孔/猫眼 + snake_pupils: 瞳孔闪光 + symbol-shaped_pupils: 符号形瞳孔 + heart-shaped_pupils: 爱心形瞳孔 + diamond-shaped_pupils: 钻石形状瞳孔 + star-shaped_pupils: 五角星形状瞳孔 + dilated_pupils: 瞳孔散大 + no_pupils: 没有瞳孔 + ringed_eyes: 轮回眼 + constricted_pupils: 收缩的瞳孔(没有效果 + star_in_eye: 眼睛里的星星 + x-shaped_pupils: X形瞳孔 + horizontal_pupils: 水平瞳孔 + dashed_eyes: 虚线的眼睛 + butterfly-shaped_pupils: 蝴蝶形瞳孔 + rectangular_pupils: 长方形瞳孔 + square_pupils: 方形瞳孔 + dot_pupils: 点瞳孔 + extra_pupils: 额外的瞳孔 + mismatched_pupils: 不匹配的瞳孔 + "+_+": 十字星星眼 + cross-shaped_pupils: 符号形瞳孔(没有效果 + purple_pupils: 紫色瞳孔 + orange_pupils: 橙色瞳孔 + blue_pupils: 橙色瞳孔 + symbol_in_eye: 眼睛里有符号 + + - name: 鼻子 + color: rgba(255, 123, 2, .4) + tags: + pointed nose: 尖鼻子 + small nose: 小鼻子 + big nose: 大鼻子 + no_nose: 没鼻子的 + dot_nose: 点状鼻 + nose_bubble: 鼻泡 + smelling: 闻 + nose: 鼻子 + nosebleed: 流鼻血 + snot: 鼻涕 + snout: 动物口鼻部 + + - name: 嘴巴 + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: 栗子嘴 + thick lips: 厚嘴唇 + puffy lips: 肿嘴唇 + lipstick: 口红 + heart-shaped mouth: 心形嘴 + pout: 嘟嘴 + open mouth: 张嘴 + closed mouth: 闭嘴 + shark mouth: 鲨鱼嘴 + parted lips: 张开的嘴 + mole under mouth: 嘴下痣 + open_mouth: 张嘴 + gasping: 喘气(张大嘴) + Slightly_open_mouth: 嘴巴微微张开 + wavy_mouth: 波浪嘴 + close_mouth: 闭嘴 + dot_mouth: 点嘴 + no_mouth: 没有嘴 + gag: 堵嘴 + gnaw: 啃 + :3: 猫嘴 + :o: 张嘴 + :>: V嘴 + parted_lips: 嘴唇张开 + bit_gag: 勒住嘴 + chestnut_mouth: 栗子嘴 + cleave_gag: 被封住嘴 + closed_mouth: 闭着的嘴 + covered_mouth: 蒙住的嘴 + extra_mouth: 有多张嘴巴 + hair_in_mouth: 嘴里有头发 + hair_tie_in_mouth: 将系头发的东西叼在嘴里 + homu: 嘟嘴|抿嘴 + lips: 嘴唇 + mouth: 嘴 + mouth_hold: 用嘴叼着 + oral: 用嘴 + pacifier: 奶嘴 + Pouted lips: 撅起的嘴唇 + sideways_mouth: 把嘴画在侧脸 + spoon_in_mouth: 嘴里含着勺子 + triangle_mouth: 三角嘴 + saliva: 唾液 + drooling: 流口水 + mouth_drool: 嘴角画着口水滴形状的缺口 + + - name: 牙齿 + color: rgba(255, 123, 2, .4) + tags: + teeth: 牙齿 + upper_teeth: 上牙 + fang: 虎牙 + skin_fang: 肤色虎牙 + round_teeth: 圆齿 + sharp_teeth: 锋利的牙齿 + clenched_teeth: 咬紧牙关 + tongue: 舌头 + buck_teeth: 龅牙 + fang_out: 露出虎牙|露出尖牙 + fangs: 尖牙 + spiked_club: 狼牙棒 + tooth: 牙 + toothbrush: 牙刷 + tusks: 象牙 + shark_mouth: 鲨鱼牙 + + - name: 舌头 + color: rgba(255, 123, 2, .4) + tags: + :q: 舌头放在上唇 + :p: 舌头放在下唇 + ;p: 眨眼舌头上伸 + french_kiss: 舌吻|法式湿吻 + long_tongue: 长舌头 + oral_invitation: 迎接射精而伸出舌头 + tongue: 舌头 + tongue_out: 吐舌头 + uvula: 小舌头|口盖垂|悬雍垂 + + - name: 指甲 + color: rgba(255, 123, 2, .4) + tags: + fingernails: 手指甲 + toenails: 脚趾甲 + nail_polish: 指甲油 + toenail_polish: 脚趾甲油 + black_nails: 黑指甲 + red_nails: 红指甲 + pink_nails: 粉色指甲 + long_fingernails: 长指甲 + nail: 钉子|指甲 + multicolored_nails: 多彩指甲 + nail_art: 美甲 + brown_vest: 棕色马甲 + + - name: 肩部 + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: 赤肩 + collarbonea: 锁骨 + armpits: 腋下 + armpit_crease: 腋窝皱痕 + + - name: 胸部 + color: rgba(255, 123, 2, .4) + tags: + chest: 胸部 + flat chest: 贫乳(A_) + small_breasts: 小胸部(B) + medium breasts: 中等胸部(C) + big breasts: 大胸部(D) + huge breasts: 巨乳(E) + gigantic breasts: 超巨乳(F) + between breasts: 两胸之间 + breasts apart: 胸部分开 + hanging breasts: 下垂 + bouncing breasts: 晃动 + cleavage: 乳沟 + areola: 乳晕 + nipples: 乳头 + pectorals: 胸肌 + large_pectorals: 大胸肌 + unbuttoned clothes: 半露前胸 + + - name: 腰部 + color: rgba(255, 123, 2, .4) + tags: + narrow_waist: 细腰 + slender_waist: 纤细的腰 + + - name: 腹部 + color: rgba(255, 123, 2, .4) + tags: + midriff: 腹部 + belly: 肚子 + absolute_territory: 腹肌 + inflation: 隆起的腹部 + navel: 肚脐 + groin: 腹股沟 + pregnant: 怀孕 + + - name: 翅膀 + color: rgba(255, 123, 2, .4) + tags: + wings: 翅膀 + bat_wings: 蝙蝠翅膀 + butterfly_wings: 蝴蝶翅膀 + black_wings: 黑色之翼 + demon_wings: 恶魔之翼 + asymmetrical_wings: 不对称的翅膀 + detached_wings: 不与本体相连的翅膀 + fairy_wings: 妖精的翅膀 + fake_wings: 仿造的翅膀 + fiery_wings: 燃烧着的翅膀 + insect_wings: 昆虫翅膀 + large_wings: 大翅膀 + low_wings: 腰间的翅膀 + mini_wings: 迷你翅膀 + multicolored_wings: 有多种颜色的翅膀 + multiple_wings: 多对翅膀 + no_wings: 去掉了(原设有的)翅膀 + winged_helmet: 带翅膀的头盔 + +- name: 服饰 + groups: + - name: 正装 + color: rgba(230, 84, 128, .4) + tags: + suit: 西装 + tuxedo: 燕尾服 + formal_dress: 礼服 + evening_gown: 礼服 + canonicals: 晚会礼服 + cocktail_dress: 鸡尾酒连衣裙 + gown: 女长服 + japanese_clothes: 和服 + kimono: 和服 + sleeveless_kimono: 无袖和服 + short_kimono: 短和服 + print_kimono: 印花和服 + furisode: 振袖(和服的一部份) + obi: 衣带(和服用) + sash: 饰带 + cheongsam: 旗袍 + china_dress: 旗袍 + print_cheongsam: 印花旗袍 + pelvic_curtain: 旗袍类衣物的前摆 + wedding_dress: 婚纱 + uchikake: 白无垢(日式嫁衣) + school_uniform: 校服 + sailor: 水手服 + serafuku: 水手服 + summer_uniform: 夏季制服 + kindergarten_uniform: 幼儿园制服 + police_uniform: 警服 + naval_uniform: 海军制服 + military_uniform: 陆军制服 + ss_uniform/nazi_uniform: 纳粹制服 + maid: 女仆装 + stile_uniform: 女侍从的制服 + miko: 巫女服 + overalls: 工作服 + business_suit: 职场制服 + nurse: 护士 + chef_uniform: 厨师工装 + labcoat: 白大褂 + cheerleader: 啦啦队服 + band_uniform: 乐队制服 + space_suit: 宇航服 + leotard: 连衣裤 + domineering: 修女服 + + - name: 风格 + color: rgba(230, 84, 128, .4) + tags: + china_dress: 中国服饰 + chinese_style: 中国风 + traditional_clothes: 传统服装|民族服装 + japanese_clothes: 日式服装 + hanten_(clothes): 袢缠(日式 + hanbok: 韩服 + korean_clothes: 朝鲜服饰 + western: 西部风格 + german_clothes: 德国服装 + gothic: 哥特风格 + lolita: 洛丽塔风格 + gothic_lolita: 哥特洛丽塔风格 + byzantine_fashion: 拜占庭风格 + Tropical: 热带特征的 + indian_style: 印度风格 + Ao_Dai: 越南校服(奥黛) + ainu_clothes: 阿伊努人的服饰 + arabian_clothes: 阿拉伯服饰 + egyptian_clothes: 埃及风格服饰 + costume: 套装 + animal_costume: 动物系套装(皮套) + bunny_costume: 兔子服装 + adapted_costume: 原设服装改编 + cat_costume: 猫系服装 + dog_costume: 皮套狗 + bear_costume: 熊套装 + embellished_costume: 经润饰的服装 + santa_costume: 圣诞风格服装 + halloween_costume: 万圣节服装 + kourindou_tengu_costume: 香霖堂天狗装束 + alternate_costume: 与原设不同衣服 + costume_switch: 换衣play + meme_attire: 模因服装 + + - name: 休闲装 + color: rgba(230, 84, 128, .4) + tags: + casual: 休闲 + loungewear: 休闲服 + hoodie: 卫衣 + homewear: 居家服 + pajamas: 睡衣 + nightgown: 睡衣 + sleepwear: 睡衣 + babydoll: 情趣睡衣 + print_pajamas: 印花睡衣 + polka_dot_pajamas: 波点睡衣 + yukata: 浴衣 + chinese_clothes: 唐装 + hanfu: 汉服 + Taoist robe: 道袍 + robe: 长袍 + robe_of_blending: 混合长袍 + cloak: 斗篷 + hooded_cloak: 连帽斗篷 + winter_clothes: 冬装 + down jacket: 羽绒服 + santa: 圣诞装 + harem_outfit: 舞娘服 + shrug_(clothing): 耸肩(服装) + + - name: 运动服 + color: rgba(230, 84, 128, .4) + tags: + sportswear: 运动服 + gym_uniform: 运动服 + athletic_leotard: 体操服 + tennis_uniform: 网球衫 + baseball_uniform: 棒球服 + letterman_jacket: 棒球夹克 + volleyball_uniform: 排球服 + biker_clothes: 自行车运动服 + bikesuit: 骑行套装 + wrestling_outfit: 摔角服 + dougi: 武道服 + + - name: 泳装 + color: rgba(230, 84, 128, .4) + tags: + swimsuit: 泳装 + swimwear: 泳衣 + wet_swimsuit: 湿泳衣 + school_swimsuit: 学校泳装(死库水) + new_school_swimsuit: 新式死库水 + old_school_swimsuit: 旧式死库水 + competition_school_swimsuit: 竞泳死库水 + competition_swimsuit: 赛用泳衣 + casual_one-piece_swimsuit: 连体泳衣 + front_zipper_swimsuit: 拉链在正面的泳衣 + highleg_swimsuit: 高开衩的泳衣 + one-piece_swimsuit: 一体式泳衣 + swimsuit_of_perpetual_summer: 常夏的泳衣(fgo学妹灵衣) + bikini: 比基尼 + highleg_bikini: 高腰比基尼 + lowleg_bikini: 低腰比基尼 + slingshot_swimsuit: V字泳衣 + sailor_bikini: 水手服款比基尼 + shell_bikini: 贝壳比基尼 + sports_bikini: 运动比基尼 + string_bikini: 系绳比基尼 + strapless_bikini: 无肩带比基尼 + side-tie_bikini: 细带款比基尼 + front-tie_bikini_top: 前系带比基尼上衣 + multi-strapped_bikini: 多绑带比基尼 + thong_bikini: 丁字裤比基尼 + front-tie_bikini: 从正面打结的比基尼 + frilled_bikini: 花边比基尼 + o-ring_bikini: 带O型环的比基尼 + eyepatch_bikini: 眼罩比基尼 + layered_bikini: 分层比基尼 + bow_bikini: 带蝴蝶结的比基尼 + frilled_swimsuit: 花边泳衣 + polka_dot_swimsuit: 圆斑泳衣 + striped_swimsuit: 条纹泳衣 + striped_bikini: 条纹比基尼 + plaid_bikini: 格子比基尼 + polka_dot_bikini: 圆斑比基尼 + print_bikini: 印花比基尼 + american_flag_bikini: 美国国旗比基尼 + german_flag_bikini: 德国国旗比基尼 + impossible_swimsuit: 人体彩绘般的泳衣 + bikini_top: 只穿着比基尼上衣 + bikini_top_only: 仅比基尼上衣 + bikini_top_removed: 脱下了比基尼上衣 + bikini_bottom_only: 仅比基尼下装 + bikini_bottom: 比基尼泳裤 + untied_bikini: 解开的比基尼 + bikini_aside: 从三点剥开的比基尼 + swimsuit_aside: 把泳衣的裆部挪到一边 + swimsuit_under_clothes: 衣服里面穿着泳衣 + torn_swimsuit: 破损的泳衣 + bikini_skirt: 比基尼裙 + swim_briefs: 泳裤 + swim_cap: 泳帽 + swim_trunks: 泳裤 + male_swimwear: 男用泳裤 + + - name: 制服 + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: 改装制服 + anzio_military_uniform: 安齐奥军服 + anzio_school_uniform: 安齐奥校服 + aria_company_uniform: 亚利亚公司制服 + ashford_academy_uniform: 阿什福特学院制服 + bc_freedom_military_uniform: BC自由学园制服 + chaldea_uniform: 迦勒底制服 + chi-hatan_military_uniform: 知波单学院制服 + fleur_de_lapin_uniform: 点兔女仆装 + garreg_mach_monastery_uniform: 加尔格·马可大修道院制服 + gem_uniform_(houseki_no_kuni): 宝石之国的制服 + hanasakigawa_school_uniform: 花咲川女子学园 + hikarizaka_private_high_school_uniform: 私立光坂高等学校校服 + homurahara_academy_uniform: 穗群原学园制服 + kamiyama_high_school_uniform: 神山高中校服 + keizoku_military_uniform: 继续高中军服 + kita_high_school_uniform: 北高中制服 + kiyosumi_school_uniform: 清澄高中校服 + luna_nova_school_uniform: 鲁纳诺娃魔法学校校服 + meiji_schoolgirl_uniform: 明治女学生制服 + mitakihara_school_uniform: 见泷原中学校制服 + nami_junior_high_school_uniform: 波路中学校服 + nanairogaoka_middle_school_uniform: 七色丘中学校服 + nanamori_school_uniform: 七森中学校服 + naoetsu_high_school_uniform: 私立直江津高校制服 + national_shin_ooshima_school_uniform: 新大岛学园校服 + ooarai_military_uniform: 大洗联队军装 + ooarai_school_uniform: 大洗联队校服 + otonokizaka_school_uniform: 国立音乃木坂学院女子制服 + paradis_military_uniform: 帕拉迪岛军装 + polar_chaldea_uniform: 极地迦勒底制服 + pravda_military_uniform: 真理学院军装 + pravda_school_uniform: 真理学院校服 + rabbit_house_uniform: 点兔兔之家制服 + raimon_soccer_uniform: 雷门足球队服 + ryouou_school_uniform: 陵樱学园制服 + sailor_senshi_uniform: 美少女战士制服 + sakugawa_school_uniform: 栅川中学校服 + sakuragaoka_high_school_uniform: 樱丘女子高等学校校服 + saunders_military_uniform: 桑德斯军装 + saunders_school_uniform: 桑德斯附高校服 + seishou_elementary_school_uniform: 圣祥大附小学校校服 + shinda_sekai_sensen_uniform: 死后世界战线制服 + shuuchiin_academy_uniform: 秀知院学园制服 + shuujin_academy_uniform: 秀尽学院制服 + st._gloriana's_military_uniform: 圣葛罗莉安娜军装 + st._gloriana's_school_uniform: 圣葛罗莉安娜女学园校服 + starlight_academy_uniform: 星光学园制服 + tokisadame_school_uniform: 时定高校校服 + tokiwadai_school_uniform: 常盘台中学校服 + tomoeda_elementary_school_uniform: 友枝小学校服 + tsab_ground_military_uniform: 时空管理局军服 + u.a._school_uniform: 雄英高中校服 + uranohoshi_school_uniform: 浦之星女学院校服 + yasogami_school_uniform: 八十神高中校服 + mismatched_bikini: 双色比基尼 + multicolored_bikini: 多色款比基尼 + + - name: 上衣 + color: rgba(230, 84, 128, .4) + tags: + blouse: 女式衬衫 + white_shirt: 白衬衫 + collared_shirt: 有领衬衫 + dress_shirt: 西服衬衫 + sailor_shirt: 水手服衬衫 + cropped_shirt: 短衬衫 + t-shirt: T恤 + casual T-shirts: 日常T恤 + short sleeve T-shirts: 短袖T恤 + off-shoulder_shirt: 露肩衬衫(搭肩衫) + shrug_(clothing): 包肩上衣 + cardigan: 开襟毛衣衫 + criss-cross_halter: 交叉吊带衫 + frilled_shirt: 褶边衬衫 + sweatshirt: 长袖运动卫衣 + hawaiian_shirt: 夏威夷衫 + hoodie: 连帽衫 + Impossible shirt: 贴合程度不合逻辑的衬衫 + kappougi: (烹饪时穿的)罩衫 + plaid_shirt: 格子衬衫 + polo_shirt: 马球衫 + print_shirt: 印花衬衫 + shirt: 衬衫 + sleeveless_hoodie: 无袖连帽衫 + sleeveless_shirt: 无袖衬衫 + striped_shirt: 条纹衬衫 + tank_top: 背心(居家) + vest: 背心(正式) + waistcoat: 背心(正式) + camisole: 吊帶背心(小可愛) + tied_shirt: 系带衬衫(把衣角和下擺打结) + undershirt: 汗衫 + crop_top: 截短上衣 + highleg: 高开衩的衣物 + clothing_cutout: 衣服漏洞 + back_cutout: 露背上衣 + cleavage_cutout: 乳沟处开洞 + navel_cutout: 肚脐开洞 + midriff: 露腰上衣 + heart_cutout: 心形开口 + torn_clothes: 撕裂的衣服 + torn_shirt: 撕裂的衬衫 + undressing: 脱衣服中 + clothes_down: 褪下衣物 + shirt_lift: 掀起衬衫 + shirt_pull: 衬衫拉下来 + shirt_tucked_in: 衬衫塞进去 + clothes_tug: 拖拽衣服 + shirt_tug: 拖拽衬衫 + untucked_shirt: 解开的衬衫 + lifted_by_self: 掀自己衣服 + untied: 掀自己衣服 + open_clothes: 敞开的衣服 + unbuttoned shirt: 解开纽扣的衬衫 + button_gap: 纽扣之间的缝隙(没解开 + partially_unbuttoned: 解开部分纽扣 + partially_unzipped: 拉开上部分拉链 + clothes_removed: 脱下的衣服 + shirt_removed: 脱下衬衫 + wardrobe_error: 衣服滑落 + undersized_clothes: 穿衣方式错了 + tight: 衣物紧紧的 + wedgie: 嵌入(拉裆部衣物所致) + wardrobe_malfunction: 衣服出了意外(如崩开) + taut_shirt: 绷紧的衬衫 + taut_clothes: 绷紧的衣服 + underbust: 勒出下胸围 + oversized_clothes: 过大号的衣服 + oversized_shirt: 过大号衬衫 + borrowed_garments: 男友的衣服 + strap_slip: 衣物吊带滑落(导致走光) + wet_shirt: 湿衬衫 + clothes_theft: 偷衣服 + + - name: 外套 + color: rgba(230, 84, 128, .4) + tags: + blazer: 西装外套 + overcoat: 大衣 + double-breasted: 双排纽扣(双排扣 + long_coat: 长外套 + haori: 一种宽上衣 + winter_coat: 冬季大衣 + hooded_coat: 连帽大衣 + fur_coat: 皮草大衣 + fur-trimmed_coat: 镶边皮草大衣 + duffel_coat: 粗呢大衣 + fishnet_top: 渔网上衣 + parka: 派克大衣 + jacket: 夹克衫 + jacket_partially_removed: 夹克部分移除 + jacket_removed: 夹克被移除 + open_jacket: 开襟夹克(配合spread_legs) + cropped_jacket: 短款夹克 + track_jacket: 运动夹克 + hooded_track_jacket: 连帽运动夹克 + military_jacket: 军装夹克 + camouflage_jacket: 迷彩夹克 + leather_jacket: 皮夹克 + letterman_jacket: 莱特曼夹克 + bomber_jacket: 飞行员夹克 + denim_jacket: 牛仔夹克 + loating_jacket: 休闲夹克 + fur-trimmed_jacket: 毛皮边饰夹克 + two-tone_jacket: 两色夹克 + trench_coat: 风衣 + furisode: 振袖(和服的一部份) + windbreaker: 冲锋衣 + raincoat: 雨衣 + hagoromo: 羽衣 + tunic: 束腰外衣 + cape: 披肩 + capelet: 披肩 + winter_clothes: 冬装 + sweater: 毛衣 + pullover_sweaters: 套頭毛衣 + ribbed_sweater: 罗纹毛衣 + sweater_vest: 毛衣背心 + backless_sweater: 露背毛衣 + aran_sweater: 爱尔兰毛衣 + beige_sweater: 米色毛衣 + brown_sweater: 棕色毛衣 + hooded_sweater: 连帽毛衣 + off-shoulder_sweater: 露肩毛衣 + striped_sweater: 条纹毛衣 + virgin_killer_sweater: 处男杀手毛衣 + down_jacket: 羽绒服 + puffer_jacket: 羽绒服 + + - name: 其他 + color: rgba(230, 84, 128, .4) + tags: + transparent: 透明的 + burnt_clothes: 烧焦的衣服 + dissolving_clothes: 溶解掉的衣服 + dirty_clothes: 弄脏的衣服 + expressive_clothes: 富有表现力的衣服 + impossible_clothes: 有不现实的包裹程度的衣服 + living_clothes: 活体衣服 + leotard_under_clothes: 内层穿着连衣裤 + multicolored_clothes: 多色款衣服 + ofuda_on_clothes: 衣服上贴着符纸 + wringing_clothes: 拧干衣服 + clothesline: 晒衣服 + shiny_clothes: 有光泽的衣服 + kariginu: 狩衣 + front-tie_top: 从正面打结的衣物 + jacket_on_shoulders: 用夹克披肩 + short_jumpsuit: 短裤腿连体衣 + harness: 背带;挽具 + rigging: 舰装 + aiguillette: 肩带 + + - name: 腰部 + color: rgba(230, 84, 128, .4) + tags: + apron: 围裙 + waist_apron: 腰围裙 + maid_apron: 女仆围裙 + bow tied at the waist: 系在前腰的蝴蝶结 + waist_cape: 穿在腰部的小披风 + clothes_around_waist: 腰间衣服 + jacket_around_waist: 腰围夹克 + sweater_around_waist: 围腰毛衣 + loincloth: 缠腰布 + bustier: 胸衣 + corset: 束腰(马甲) + girdle: 紧身褡 + + - name: 盔甲 + color: rgba(230, 84, 128, .4) + tags: + armor: 盔甲 + bikini_armor: 比基尼盔甲 + full_armor: 穿着全套盔甲的 + plate_armor: 板甲 + japanese_armor: 日本铠甲 + kusazuri: 腹当|草摺(日式下半盔甲 + power_armor: 动力装甲 + mecha: 机甲 + helmet: 头盔 + kabuto: 头盔(日式) + off-shoulder_armor: 無肩甲盔甲 + shoulder_armor: 肩甲 + muneate: 日本弓道護胸甲 + breastplate: 胸甲 + faulds: 腹甲 + greaves: 胫甲 + shin_guards: 胫甲 + armored_boots: 装甲靴 + + - name: 裙子 + color: rgba(230, 84, 128, .4) + tags: + dress: 连衣裙 + microdress: 微型连衣裙 + long_dress: 长连衣裙 + off-shoulder_dress: 露肩连衣裙 + strapless_dress: 无肩带连衣裙 + backless_dress: 露背连衣裙 + halter_dress: 绕颈露背吊带裙 + sundress: 吊帶連衣裙(大熱天穿的無袖連衣裙) + sleeveless_dress: 无袖连衣裙 + sailor_dress: 水手服款裙子 + summer_dress: 夏日长裙 + china_dress: 中国服饰 + pinafore_dress: 围裙连衣裙 + sweater_dress: 围裙连衣裙 + wedding_dress: 婚纱 + armored_dress: 战甲裙 + frilled_dress: 花边连衣裙 + lace-trimmed_dress: 蕾丝边连衣裙 + collared_dress: 有领连衣裙 + fur-trimmed_dress: 毛皮镶边连衣裙 + layered_dress: 分层连衣裙 + pleated_dress: 百褶连衣裙 + taut_dress: 绷紧的连衣裙 + pencil_dress: 铅笔裙 + impossible_dress: 过分紧身的衣服 + multicolored_dress: 多色款连衣裙 + striped_dress: 条纹连衣裙 + checkered_skirt: 格子裙 + plaid_dress: 格子连衣裙 + ribbed_dress: 罗纹连衣裙 + polka_dot_dress: 波点连衣裙 + print_dress: 印花连衣裙 + vertical-striped_dress: 竖条纹连衣裙 + see-through_dress: 透视连衣裙 + skirt: 短裙 + microskirt: 超短裙 + miniskirt: 迷你裙 + skirt_suit: 正装短裙 + bikini_skirt: 比基尼裙 + pleated_skirt: 百褶裙 + pencil_skirt: 短铅笔裙 + bubble_skirt: 蓬蓬裙 + tutu: 芭蕾舞裙 + ballgown: 蓬蓬裙(禮服) + pettiskirt: 蓬蓬裙(兒童) + showgirl_skirt: 展会女郎装束 + Medium length skirt: 中等长裙子 + beltskirt: 皮带裙 + denim_skirt: 牛仔裙 + suspender_skirt: 吊带裙 + skirt_set: 与上衣搭配的短裙 + long_skirt: 长裙 + summer_long_skirt: 夏日长裙 + overskirt: 外裙 + hakama_skirt: 袴裙 + high-waist_skirt: 高腰裙 + kimono_skirt: 和服裙 + suspender_long_skirt: 背带裙;吊带裙 + chiffon_skirt: 雪紡裙 + frilled_skirt: 花边裙子 + fur-trimmed_skirt: 毛皮镶边短裙 + lace_skirt: 蕾絲短裙 + lace-trimmed_skirt: 蕾丝边短裙 + ribbon-trimmed_skirt: 缎带饰边短裙 + layered_skirt: 分层的半裙 + print_skirt: 印花短裙 + multicolored_skirt: 多色款裙子 + striped_skirt: 条纹裙 + vertical-striped_skirt: 竖条纹裙子 + plaid_skirt: 格子呢短裙 + flared_skirt: 伞裙 + floral_skirt: 碎花裙 + + - name: 与裙子互动 + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: 优雅地提着裙子 + skirt_tug: 扯住裙摆|按住裙摆 + dress_tug: 压住裙摆 + skirt_lift: 掀起裙子 + skirt_around_one_leg: 一条腿上挂着短裙 + skirt_removed: 脱下的短裙 + dress_removed: 脱下裙子 + open_skirt: 敞开的裙子 + + - name: 裤子 + color: rgba(230, 84, 128, .4) + tags: + dress_bow: 连衣裙上的蝴蝶结 + dressing_another: 着装 + shorts_under_skirt: 短裙里穿着短裤 + side_slit: 侧开衩 + shorts: 短裤 + micro_shorts: 小尺寸短裤 + short_shorts: 热裤 + hot_pants: 热裤 + cutoffs: 热裤 + striped_shorts: 条纹短裤 + suspender_shorts: 吊带短裤 + denim_shorts: 牛仔短裤 + puffy_shorts: 蓬蓬的短裤 + dolphin_shorts: 海豚短褲(真理褲) + dolfin_shorts: 海豚短褲(真理褲) + tight_pants: 紧身裤/运动裤 + crotchless_pants: 无裆裤(紧身) + track_pants: 运动裤 + yoga_pants: 瑜伽裤 + bike_shorts: 自行车短裤 + gym_shorts: 体操短裤 + pants: 长裤 + puffy_pants: 蓬松裤/宽松裤 + pumpkin_pants: 南瓜裤 + hakama_pants: 袴裤 + harem_pants: 哈伦裤 + bloomers: 灯笼裤 + buruma: 女式灯笼裤 + jeans: 牛仔裤 + cargo_pants: 工装裤 + camouflage_pants: 迷彩裤 + capri_pants: 七分裤 + chaps: 皮套裤(上宽下窄 + jumpsuit: (尤指女式)连衫裤 + lowleg_pants: 低腰裤子 + plaid_pants: 格子呢裤子 + single_pantsleg: 单边长裤 + striped_pants: 条纹裤 + + - name: 与裤子互动 + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: 不对称的裤子 + leotard_aside: 把连衣裤裆部剥到一边 + open_fly: 解开的裤子拉链 + pants_down: 褪下裤子 + pants_rolled_up: 裤子卷起来 + pants_tucked_in: 裤子塞进去 + torn_jeans: 破损的牛仔裤 + torn_pants: 破损的裤子 + torn_shorts: 破损的短裤 + + - name: 袜子 + color: rgba(230, 84, 128, .4) + tags: + bodystocking: 全身袜 + pantyhose: 连裤袜|裤袜 + leggings: 裤袜 + legwear: 裤袜(泛指裤袜或长筒袜) + thighhighs: 长筒袜(过膝高筒袜) + kneehighs: 中筒袜 + socks: 短袜 + bare_legs: 裸腿 + black_bodystocking: 连体黑丝 + white_bodystocking: 连体白丝 + stocking_under_clothes: 衣服下的袜子 + black_pantyhose: 黑丝裤袜 + white_pantyhose: 白丝裤袜 + thighband_pantyhose: 有腿环的裤袜 + pantylines: 紧致的裤袜(勾勒出线条 + single_leg_pantyhose: 单边穿着连裤袜 + panties_under_pantyhose: 裤袜里的内裤 + fishnets: 网袜(材质) + stirrup_legwear: 渔网袜 + toeless_legwear: 露趾袜 + mismatched_legwear: 双色裤袜 + two-tone_legwear: 双色裤袜 + asymmetrical_legwear: 不对称裤袜 + uneven_legwear: 长短袜 + white_thighhighs: 白色长筒袜 + black_thighhighs: 黑色长筒袜 + pink_thighhighs: 粉色长筒袜 + suspenders: 吊带袜 + garter_straps: 腰带(吊带袜的) + torn_legwear: 破损的裤袜 + torn_thighhighs: 损坏了的长筒袜 + see-through_legwear_: 透明的袜子 + frilled_legwear: 花边袜 + lace-trimmed_legwear: 蕾边袜丝 + seamed_legwear: 有接缝的袜 + back-seamed_legwear: 中间有一条黑线的袜子 + animal_ear_legwear: 动物耳朵过膝袜 + striped_legwear: 横条纹袜 + vertical-striped_legwear: 竖条纹袜 + polka_dot_legwear: 圆斑袜 + print_legwear: 印花袜 + legwear_under_shorts: 短裤穿在袜子外 + over-kneehighs: 过膝袜 + bobby_socks: 鲍比袜(白短袜) + tabi: 日式厚底短袜(足袋) + loose_socks: 泡泡袜 + ankle_socks: 踝袜 + leg_warmers: 腿套|暖腿袜 + single_sock: 单短袜 + striped_socks: 横条短袜 + + - name: 与袜子互动 + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: 袜子有开口 + thighhighs_under_boots: 靴子穿在袜子外面 + adjusting_legwear: 整理裤袜 + pantyhose_pull: 褪下的裤袜 + socks_removed: 脱袜子 + sock_pull: 拉着袜子(短袜 + thighhighs_pull: 拉着袜子(长袜 + + - name: 其他 + color: rgba(230, 84, 128, .4) + tags: + garters: 袜带 + leg_garter: 腿环|袜带 + garter_straps: 吊带袜的吊带 + thigh_strap: 大腿绑带 + thigh_ribbon: 大腿缎带 + leg_ribbon: 腿锻带 + bandaid_on_leg: 腿上的绷带 + bandaged_leg: 包扎过的腿 + ankle_lace-up: 脚踝系带 + thigh_holster: 大腿皮套 + bandaid_on_knee: 膝盖上的创可贴 + argyle_legwear: 含菱形花纹的裤袜 + bow_legwear: 带蝴蝶结的裤袜 + arm_garter: 手臂袜带 + + - name: 材质 + color: rgba(230, 84, 128, .4) + tags: + armored: 装甲的 + canvas: 帆布的 + denim: 牛仔布 + fluffy: 毛茸茸 + fur: 毛皮 + latex: 乳胶 + leather: 皮制 + see-through: 透明 + spandex: 弹性纤维 + tight: 紧身 + + - name: 装饰 + color: rgba(230, 84, 128, .4) + tags: + frilled: 褶边 + center_frills: 中心褶花边 + crease: 起皱的(有褶的) + layered: 分层的 + lace: 蕾丝 + fur_trim: 皮草饰边 + fur-trimmed: 毛边的 + fine_fabric_emphasis: 材质增强 + latex_thighhighs: 乳胶材质的长筒袜 + see-through_thighhighs: 透明的长筒袜 + ass_cutout: 露出屁股的服饰 + asymmetrical_clothes: 不对称的服饰 + back_bow: (服饰)打在背后的结 + costume_switch: 服饰互换 + cross-laced_clothes: 交叉花边服饰 + double_vertical_stripe: 服饰上有两条平行条纹 + halter_top: 吊带式的上身的服饰 + multicolored_legwear: 多色款腿部服饰 + navy_blue_legwear: 海军蓝腿部服饰 + nontraditional_miko: 改款过的日本服饰 + side_cutout: 侧边开口的服饰 + side_slit: 侧面有缝的服饰 + sideless_outfit: 侧面没有布料的服饰 + single_kneehigh: 单边穿着过膝服饰 + single_vertical_stripe: 露出单边服饰上的垂直条纹 + turtleneck: 高领服饰 + two-sided_fabric: 双层样式的服饰画法 + o-ring: 带O型环的衣物 + o-ring_top: 带O型环的上衣 + fringe_trim: 须边(围巾末端 + loose_belt: 松散的带子(衣物) + pom_pom_(clothes): 小绒球(衣物挂件) + drawstring: 衣服的抽绳 + full-length_zipper: 有整件衣物长的拉链 + gathers: 褶裥(衣物) + gusset: 缝在衣服上衬料 + breast_pocket: 胸口的袋子 + + - name: 花纹 + color: rgba(230, 84, 128, .4) + tags: + argyle: 阿盖尔菱形花纹 + checkered: 格子花纹 + colored_stripes: 多彩条纹 + diagonal_stripes: 斜条纹 + horizontal_stripes: 水平条纹 + multicolored_stripes: 多彩条纹 + polka_dot_: 点装纹 + ribbed: 棱纹 + striped: 横条纹 + unmoving_pattern: 连续重复花纹 + vertical_stripes: 竖条纹 + plaid: 格子呢图案 + animal_print: 动物印花 + cat_print: 猫咪印花 + bear_print: 熊印花 + bird_print: 鸟印花 + bunny_print: 兔子印花 + cow_print: 奶牛印花 + dragon_print: 龙印花 + fish_print: 鱼印花 + frog_print: 青蛙印花 + shark_print: 鲨鱼印花 + snake_print: 蛇纹 + zebra_print: 斑马印花 + tiger_print: 虎纹 + leopard_print: 豹纹 + jaguar_print: 美洲豹印花 + bat_print: 蝙蝠印花 + aardwolf_print: 土狼印花 + african_wild_dog_print: 非洲野狗印花 + cheetah_print: 猎豹印花 + dog_print: 狗印花 + fox_print: 狐狸印花 + giraffe_print: 长颈鹿印花 + panda_print: 熊猫印花 + sand_cat_print: 沙猫印花 + whale_print: 鲸鱼印花 + white_tiger_print: 白虎纹 + goldfish_print: 金鱼印花 + wing_print: 翼印 + spider_web_print: 蛛网纹 + butterfly_print: 蝴蝶印花 + floral_print: 碎花 + leaf_print: 叶印花 + clover_print: 三叶草印花 + maple_leaf_print: 枫叶印花 + rose_print: 玫瑰印花 + strawberry_print: 草莓印花 + cherry_print: 樱桃印花 + bamboo_print: 竹印花 + carrot_print: 胡萝卜印花 + hibiscus_print: 芙蓉印花 + jack-o'-lantern_print: 南瓜灯印花 + petal_print: 花瓣印花 + sunflower_print: 向日葵印花 + watermelon_print: 西瓜印花 + sky_print: 天空印花 + cloud_print: 云印花 + lightning_bolt_print: 闪电印花 + rainbow_print: 彩虹印花 + snowflake_print: 雪花印花 + starry_sky_print: 星空印花 + crescent_print: 新月印花 + star_print: 星形印花 + star_(symbol): 星形符号 + moon_print: 月亮印花 + sun_print: 太阳印花 + character_print: 字符印花 + clothes_writing_: 衣服上的字 + anchor_print: 锚印花 + cherry_blossom_print: 樱花印花 + musical_note_print: 音符印花 + triangle_print: 三角印花 + arrow_print: 箭头打印 + wave_print: 波浪纹 + peace_symbol: ☮(东方仗助衣服上有) + heart_print: 心形图案|心形印花 + flame_print: 火焰印花 + hitodama_print: 鬼火印花 + paw_print: 爪印花 + skeleton_print: 骨架印花 + skull_print: 骷髅头印花 + sparkle_print: 闪闪发光的印花 + yin_yang_print: 阴阳印花 + cross_print: 十字架元素图案 + camoflage: 迷彩 + flag_print: 旗帜印花 + bone_print: 骨印花 + ghost_print: 幽灵印画 + mushroom_print: 蘑菇印花 + onigiri_print: 饭团打印 + cat_ear: 猫耳造型 + cat_ear_cutout: 猫耳造型镂空 + + - name: 鞋子 + color: rgba(230, 84, 128, .4) + tags: + barefoot: 赤脚 + no_shoes: 没有鞋子 + shoes_removed: 脱下的鞋子 + single_shoe: 单鞋 + the_only_shoe: 单鞋 + black_loafers: 乐福鞋(小皮鞋) + shoes: 运动鞋 + uwabaki: 室内鞋 + platform_footwear: 厚底鞋 + high_heels: 高跟鞋 + stiletto_heels: 细跟高跟鞋 + strappy_heels: 带束带的高跟鞋 + platform_heels_: 厚底高跟鞋 + rudder_footwear: 舰C舰娘专用鞋 + sandals: 凉鞋 + barefoot_sandals: 裸足凉鞋 + clog_sandals: 木屐凉鞋 + geta: 木屐 + slippers: 拖鞋 + skates: 溜冰鞋 + roller_skates: 旱冰鞋 + animal_feet: 动物脚 + animal_slippers: 动物拖鞋 + anklet: 脚环 + shackles: 镣铐 + brown_footwear: 棕色鞋类 + cross-laced_footwear: 交叉系带鞋 + loafers: 乐福鞋 + mary_janes: 珍妮鞋 + mismatched_footwear: 双色鞋子 + pointy_footwear: 尖头鞋 + pumps: 低胸装高跟鞋打扮 + sandals_removed: 脱下凉鞋 + shoe_soles: 鞋底 + shoelaces: 鞋带 + sneakers: 运动鞋 + winged_footwear: 带翅膀的鞋子 + zouri: 日式草鞋 + + - name: 靴子 + color: rgba(230, 84, 128, .4) + tags: + boots: 靴子 + boots_removed: 脱下的靴子 + thigh_boots: 大腿靴 + knee_boots: 及膝靴(马靴) + cross-laced_footwear: 系带靴 + ankle_boots: 踝靴 + high_heel_boots: 高跟靴 + toeless_boots: 露趾靴 + lace-up_boots: 系带靴 + fur-trimmed_boots: 毛边靴子 + snow_boots: 雪地靴 + anklet: 脚链 + rubber_boots: 胶靴 + santa_boots: 圣诞靴 + leather_boots: 皮靴 + thighhighs_under_boots: 靴子下的长筒袜 + combat_boots: 作战靴 + doc_martens: 马丁靴 + rain_boots: 雨靴 + belt_boots: 皮带靴 + fur_boots: 矮跟休闲皮草靴 + single_boot: 一只脚没穿靴子 + + - name: 鞋底 + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: 鞋底 + arched_soles: 拱形鞋底 + paw_print_soles: 爪印鞋底 + horseshoe: 马蹄铁 + + - name: 领口 + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: 水手领 + fur_collar: 毛皮衣领 + frilled_collar: 花边衣领 + popped_collar: 竖起来的衣领 + choker: 颈部饰品 + black_choker: 黑色颈圈 + belt_collar: 皮带颈环 + frilled_choker: 褶边项链 + neckerchief: 领巾 + red_neckerchief: 红领巾 + necktie: 领带 + short_necktie: 短领带 + white_necktie: 白色领带 + bowtie: 蝴蝶结领带 + headphones_around_neck: 挂在脖子上的耳机 + goggles_around_neck: 脖子上护目镜 + neck_bell: 颈铃 + neck_ruff: 领口 + v-neck: V领 + towel_around_neck: 脖子上的毛巾 + loose_necktie: 宽松领带 + neck_tattoo: 颈部纹身 + ascot: 领巾状宽领带 + ribbon_choker: 颈丝带 + maebari/pasties: 阴贴/乳贴 + latex: 乳贴 + torn_clothes: 破烂衣服 + iron_cross: 铁十字勋章 + chinese_knot: 中国结 + cross_necklace: 十字架项链 + bead_necklace: 珠子项链 + pearl_necklace: 珍珠项链 + heart_necklace: 心形项链 + carrot_necklace: 胡萝卜项链 + chain_necklace: 锁链项链 + magatama_necklace: 珠玉项链 + tooth_necklace: 牙项链 + key_necklace: 钥匙项链 + anchor_necklace: 锚项链 + skull_necklace: 骷髅项链 + shell_necklace: 贝壳项链 + gold_necklace: 金项链 + crescent_necklace: 新月项链 + ring_necklace: 戒指项链 + feather_necklace: 羽毛项链 + bone_necklace: 骨项链 + ankh_necklace: 十字项链 + multiple_necklaces: 多条项链 + bullet_necklace: 子弹项链 + holding_necklace: 拿着项链 + necklace_removed: 项链被移除 + brown_neckwear: 棕色领饰 + checkered_neckwear: 格子领口 + diagonal-striped_neckwear: 斜纹领结 + halterneck: 绕颈系带 + mole_on_neck: 脖子上有痣 + neck: 脖子 + neck_ribbon: 颈部系着缎带 + neck_ring: 颈环 + necklace: 项链 + plaid_neckwear: 格子呢领子 + plunging_neckline: 深领 + print_neckwear: 印花领带 + sleeveless_turtleneck: 无袖高领毛衣 + star_necklace: 星形项链 + striped_neckwear: 条纹领子 + turtleneck_sweater: 高领毛衣 + undone_necktie: 解开领带 + whistle_around_neck: 脖子上挂着口哨 + + - name: 围巾 + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: 格子围巾 + striped_scarf: 条纹围巾 + print_scarf: 印花围巾 + vertical-striped_scarf: 竖条纹围巾 + polka_dot_scarf: 波点围巾 + argyle_scarf: 菱形围巾 + beige_scarf: 米色围巾 + scarf_bow: 围巾蝴蝶结 + fur_scarf: 皮草围巾 + naked_scarf: 裸围巾 + multicolored_scarf: 五彩围巾 + floating_scarf: 漂浮围巾 + long_scarf: 长围巾 + arm_scarf: 手臂围巾 + scarf_on_head: 头上的围巾 + scarf_over_mouth: 围巾在嘴上 + scarf_removed: 围巾被取下 + adjusting_scarf: 调整围巾 + holding_scarf: 拿着围巾 + scarf_pull: 扯围巾 + brown_scarf: 棕色围巾 + scarf: 围巾 + + - name: 眼镜 + color: rgba(230, 84, 128, .4) + tags: + glasses: 眼镜 + eyewear: 眼睛 + monocle: 单片眼镜 + under-rim_eyewear: 带框眼镜 + rimless_eyewear: 无框眼镜 + semi-rimless_eyewear: 半无框眼镜 + red-framed_eyewear: 红框眼镜 + round_eyewear: 圆框眼镜 + black-framed_eyewear: 黑框眼镜 + tinted_eyewear: 有色眼镜 + medical_eyepatch: 医用眼罩 + bandage_over_one_eye: 用绷带包扎一只眼睛 + crooked_eyewear: 歪斜的眼镜 + eyewear_removed: 取下眼镜 + sunglasses: 太阳镜 + goggles: 风镜 + Blindfold: 眼罩 + eyepatch: 眼罩(独眼) + visor: 面罩|遮阳帽舌|遮阳板 + bespectacled: 戴眼镜的 + blue-framed_eyewear: 蓝框眼镜 + brown-framed_eyewear: 棕色镜框眼镜 + coke-bottle_glasses: 厚如玻璃瓶底的圆眼镜 + no_eyewear: 去掉了(原设有的)眼镜 + opaque_glasses: 没透出眼睛的眼镜 + over-rim_eyewear: 下半无框眼镜 + + - name: 面具 + color: rgba(230, 84, 128, .4) + tags: + mask: 面具 + half_mask: 半面罩 + masked: 蒙面 + mask_lift: 抬起面罩 + mask_on_head: 掀到头上的面具 + mask_removed: 摘下的面具 + mouth_mask: 口罩 + surgical_mask: 医用口罩 + plague_doctor_mask: 瘟疫医生口罩 + gas_mask: 防毒面具 + visor: 面甲 + helmet: 头盔 + fox_mask: 狐狸面具 + diving_mask: 潜水面罩 + diving_mask_on_head: 头戴式潜水面罩 + oni_mask: 鬼面具 + tengu_mask: 天狗面具 + ninja_mask: 忍者面具 + skull_mask: 骷髅面具 + hockey_mask: 曲棍球面具 + bird_mask: 鸟面具 + stone_mask: 石鬼面 + horse_mask: 马面具 + masquerade_mask: 化妆舞会面具 + domino_mask: SM面具 + + - name: 手臂 + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: 长袖 + short_sleeves: 短袖 + wide_sleeves: 宽袖 + furisode: 振袖 + detached_sleeves: 分离式袖子 + single_sleeve: 单袖 + sleeveless: 无袖 + asymmetrical_sleeves: 不对称袖子 + puffy_sleeves: 蓬松的袖子 + puffy_long_sleeves: 蓬蓬长袖 + puffy_short_sleeves: 蓬蓬短袖 + frilled_sleeves: 褶袖边 + juliet_sleeves: 朱丽叶袖 + bandaged_arm: 绷带手臂 + raglan_sleeves: 插肩袖 + vambraces: 下臂护甲 + layered_sleeves: 分层袖子 + fur-trimmed_sleeves: 毛边袖子 + see-through_sleeves: 透明袖子 + torn_sleeves: 撕裂的袖子 + sleeves_past_fingers: 袖子过指 + sleeves_past_wrists: 袖子过腕 + sleeves_past_elbows: 袖子过肘 + sleeves_pushed_up: 袖子上推 + arm_out_of_sleeve: 袖子里的手臂 + uneven_sleeves: 不均匀的袖子 + mismatched_sleeves: 不匹配的袖子 + sleeve_rolled_up: 袖子卷起 + sleeves_rolled_up: 单只袖子卷起 + feather-trimmed_sleeves: 羽毛装饰的袖子 + hands_in_opposite_sleeves: 双手交叉伸进袖子里 + lace-trimmed_sleeves: 蕾丝边袖子 + pinching_sleeves: 掐袖子 + puffy_detached_sleeves: 蓬蓬的袖子 + ribbed_sleeves: 棱纹袖子 + single_detached_sleeve: 单边没脱掉的袖子 + sleeves_folded_up: 叠起来的袖子 + striped_sleeves: 条纹袖子 + wrist_cuffs: 和袖子分开的手腕的袖口 + armband: 袖章(臂带) + armlet: 臂镯 + + - name: 手 + color: rgba(230, 84, 128, .4) + tags: + bandage: 绷带 + leash: 皮带 + arm_tattoo: 手臂纹身 + number_tattoo: 数字文身 + bead_bracelet: 珠子手链 + bracelet: 手镯 + flower_bracelet: 花手镯 + spiked_bracelet: 带钉手镯 + wrist_cuffs: 腕饰 + wristband: 腕带 + bracer: 护腕 + cuffs: 袖口 + bound_wrists: 绑定手腕 + wrist_scrunchie: 手腕发圈 + handcuffs: 手铐 + shackles: 手铐 + chains: 锁链 + chain_leash: 锁链带牵绳 + + - name: 手套 + color: rgba(230, 84, 128, .4) + tags: + gloves: 手套 + gloves_removed: 脱下手套 + no_gloves: 去掉了(原设有的)手套 + single_glove: 单只手套 + single_elbow_glove: 单手戴着过肘的手套 + long_gloves: 长手套 + elbow_gloves: 长袖手套(肘部手套) + bridal_gauntlets: 新娘手套 + half_gloves: 很短的手套|半截手套 + fingerless_gloves: 露指手套 + partially_fingerless_gloves: 部分露指手套 + paw_gloves: 爪子手套(分指手套) + mittens: 连指手套(两指手套) + baseball_mitt: 棒球手套 + fur-trimmed_gloves: 毛边手套 + latex_gloves: 乳胶手套 + lace-trimmed_gloves: 蕾丝边手套 + leather_gloves: 皮手套 + frilled_gloves: 花边手套 + mismatched_gloves: 双色手套 + multicolored_gloves: 多色款手套 + asymmetrical_gloves: 不对称的手套 + brown_gloves: 棕色手套 + oven_mitts: 隔热手套 + print_gloves: 印花手套 + striped_gloves: 条纹手套 + torn_gloves: 破损的手套 + + - name: 耳饰 + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: 十字耳环 + crystal_earrings: 水晶耳环 + earrings: 耳环 + flower_earrings: 花耳环 + heart_earrings: 心形耳环 + hoop_earrings: 环状耳环 + multiple_earrings: 多个耳环 + pill_earrings: 药丸样式的耳环 + single_earring: 只一边戴着耳环 + skull_earrings: 骷髅耳环 + star_earrings: 星形耳环 + + - name: 头饰 + color: rgba(230, 84, 128, .4) + tags: + halo: 光环 + mechanical_halo: 机械光环 + headwear: 头饰 + headpiece: 头饰 + headwear_removed: 头饰已移除 + head_wreath: 头花环 + crown: 皇冠 + mini_crown: 迷你皇冠 + tiara: 头冠 + diadem: 同上 + tilted_headwear: 倾斜的头饰 + head_fins: 头鳍 + maid_headdress: 女仆头饰 + bridal_veil: 新娘头纱 + headband: 头带 + helmet: 头盔 + alternate_headwear: 与原设不同的头饰 + fur-trimmed_headwear: 毛边头饰 + goggles_on_headwear: 帽子上的护目镜 + earphones: 耳机 + earmuffs: 耳罩 + ears_through_headwear: 耳朵穿过头饰 + xx_on_head: xx在头上 + leaf_on_head: 头上的叶子 + topknot: 纂 + suigintou: 水银头 + triangular_headpiece: 三角头饰 + forehead_protector: 护额 + radio_antenna: 天线 + animal_hood: 兽耳头罩 + arrow_(symbol): 箭头 + axe: 斧头 + bald: 秃头 + bandana: 头巾 + bob_cut: 波波头 + bone: 骨头 + bowl_cut: 锅盖头 + circlet: 头冠 + double_bun: 团子头 + double_dildo: 双头假阴茎 + drill: 钻头 + faucet: 水龙头 + hachimaki: 扎头巾(名词) + hair_behind_ear: 耳后有头发 + hair_bell: 头发上系着铃铛 + hair_bun: 发髻|团子头 + hair_down: 披下来的头发 + hair_flaps: 在摆动的头发 + hair_flip: 拨头发 + hair_flower: 头发上别着花 + hair_spread_out: 散开的头发 + hair_up: 盘起来的头发 + helm: 戴着头盔的 + helmet_removed: 摘下头盔|被摘下的头盔 + horned_helmet: 带角头盔 + japari_bun: 加帕里馒头 + kerchief: 方头巾 + mami_mogu_mogu: 麻美断头梗 + mob_cap: 头巾式室内女帽 + one_side_up: 只扎了一边的头发 + owl: 猫头鹰 + pier: 突码头 + pillow: 枕头 + raised_fist: 举起的拳头 + skull_and_crossbones: 头骨和交叉的骨头 + stone: 石头 + turban: 穆斯林头巾 + twin_drills: 双钻头发型 + updo: 头发往上蜷的发型 + wet_hair: 湿头发 + headdress: 头部穿戴物(偏笼统) + adjusting_headwear: 整理头饰 + bear_hair_ornament: 熊印花头饰 + brown_headwear: 棕色头饰 + horned_headwear: 角状头饰 + horns_through_headwear: 为角留了洞的头饰 + no_headwear: 去掉了(原设有的)头饰 + object_on_head: 头上有非头饰类的物体 + print_headwear: 印花头饰 + bone_hair_ornament: 骨头状饰品 + bunny_hair_ornament: 兔子饰品 + horn_ornament: 角上有饰物 + animal_on_head: 头上有动物 + behind-the-head_headphones: 从后脑戴上的耳机 + bird_on_head: 头上的鸟 + cat_ear_headphones: 猫耳式耳机 + cat_on_head: 头上趴着猫 + eyewear_on_head: 眼镜别在头上 + forehead: 额头 + forehead_jewel: 额前有宝石 + forehead_kiss: 亲吻额头 + forehead_mark: 额前有图案 + forehead-to-forehead: 额头贴额头 + goggles_on_head: 头上别着护目镜 + head: 头 + head_bump: 头上起包 + head_down: 低着头 + head_mounted_display: 戴着头戴显示设备 + head_out_of_frame: 一部分头部没画进框里 + head_rest: 枕着头|托着头 + head_tilt: 歪着头 + head_wings: 头上有翅膀 + headgear: 头部饰品(含一定科幻元素) + headphones: 耳机 + heads-up_display: 状态条(游戏和科幻风格) + headset: 头戴式耳机 + inter_headset: EVA神经连接器 + on_head: 在头上 + person_on_head: 小人儿在头上 + single_head_wing: 单侧头上有翅膀 + + - name: 帽子 + color: rgba(230, 84, 128, .4) + tags: + hat: 帽子 + no_hat: 没有帽子 + large_hat: 大帽子 + mini_hat: 迷你帽 + witch_hat: 魔女帽 + mini_witch_hat: 迷你魔女帽 + wizard_hat: 巫师帽子 + party_hat: 派对帽 + jester_cap: 小丑帽 + tokin_hat: 大礼帽 + top_hat: 高顶礼帽 + mini_top_hat: 迷你礼帽 + bowler_hat: 圆顶礼帽 + pillbox_hat: 药盒帽 + cloche_hat: 钟形女帽 + side_cap: 侧边帽 + military_hat: 军帽 + beret: 贝雷帽 + garrison_cap: 驻军帽 + police_hat: 警察帽 + nurse_cap: 护士帽 + chef_hat: 厨师帽 + school_hat: 校帽 + pirate_hat: 海盗帽 + cabbie_hat: 出租车司机帽 + bucket_hat: 渔夫帽 + hardhat: 安全帽 + straw_hat: 草帽 + sun_hat: 太阳帽 + rice_hat: 斗笠 + animal_hat: 动物帽 + fur_hat: 皮帽 + hat_with_ears: 带耳朵的帽子 + bobblehat: 泡泡帽 + pillow_hat: 枕帽 + pumpkin_hat: 南瓜帽 + baseball_cap: 棒球帽 + flat_cap: 鸭舌帽 + torn_hat: 撕裂的帽子 + mob_cap: 暴民帽 + newsboy_cap: 报童帽 + bowknot_over_white_beret: 白色贝雷帽上的蝴蝶结 + backwards_hat: 反扣的帽子 + bowl_hat: 碗状帽子 + cat_hat: 猫耳帽子 + chat_log: 聊天框风格 + cowboy_hat: 牛仔帽 + dixie_cup_hat: 狗盆帽 + hat_bow: 带有蝴蝶结的帽子 + hat_feather: 带有羽毛的帽子 + hat_flower: 带着花的帽子 + hat_ornament: 带有饰物的帽子 + hat_over_one_eye: 帽子遮住了一只眼 + hat_removed: 帽子被摘下|摘下帽子 + hat_ribbon: 带有缎带的帽子 + hat_tip: 捏着帽檐 + hatching_(texture): 线影法(纹理) + hatsune_miku_(cosplay): cos成初音未来 + is_that_so: so-nanoka(是这样啊的口癖) + porkpie_hat: 道士帽 + sailor_hat: 水手帽 + santa_hat: 圣诞帽 + sideways_hat: 帽舌划到侧面 + what: 作者犯病 + what_if: 另一条世界线 + + - name: 发饰 + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: 发_带 + hairband: 发_带 + hair_tie: 发_带 + lolita_hairband: 洛丽塔发带 + frilled_hairband: 褶边发带 + lace-trimmed_hairband: 蕾丝边饰发带 + hair_bobbles: 头绳 + hair_ornament: 发饰 + hair_flower: 发_花 + x_hair_ornament: x_发饰 + hair_bow: 蝴蝶结发饰 + frog_hair_ornament: 青蛙发饰 + heart_hair_ornament: 心形发饰 + butterfly_hair_ornament: 蝴蝶发饰 + star_hair_ornament: 星星发饰 + food-themed_hair_ornament: 食物主题发饰 + anchor_hair_ornament: 锚形发饰 + bat_hair_ornament: 蝙蝠发饰 + carrot_hair_ornament: 胡萝卜发饰 + cat_hair_ornament: 猫系发饰 + clover_hair_ornament: 三叶草发饰 + crescent_hair_ornament: 月牙发饰 + cross_hair_ornament: 十字发饰 + d-pad_hair_ornament: 方向键发饰 + fish_hair_ornament: 鱼形发饰 + hairpods: 头发上成对的像无线蓝牙的发饰 + leaf_hair_ornament: 叶子发饰 + musical_note_hair_ornament: 音符发饰 + pumpkin_hair_ornament: 南瓜发饰 + skull_hair_ornament: 骷髅发饰 + snake_hair_ornament: 蛇形发饰|蛙头发饰 + snowflake_hair_ornament: 雪花发饰 + strawberry_hair_ornament: 草莓发饰 + sunflower_hair_ornament: 向日葵发饰 + hairpin: 发夹 + hairclip: 发_夹 + hair_tubes: 发管 + hair_stick: 发棒 + hair_bun: 发髻 + single_hair_bun: 发髻(单) + hair_bell: 发_铃 + hair_rings: 发_圈 + + - name: 小装饰 + color: rgba(230, 84, 128, .4) + tags: + ring: 戒指 + wedding_band: 婚戒 + earrings: 耳环 + single_earring: 单耳环 + stud_earrings: 耳钉 + necklace: 项链 + jewelry: 首饰 + crystal: 水晶 + brooch: 胸针 + gem: 宝石 + chest_jewel: 胸前宝石 + forehead_jewel: 额头宝石 + tassel: 流苏 + belly_chain_: 肚链 + lace: 花边 + ribbon: 丝带 + stitches: 缝饰 + scarf: 围巾 + bandaid: 创可贴 + collar: 项圈 + belt: 皮带 + steam: 蒸汽 + bell: 铃铛 + amulet: 护身符 + emblem: 徽章 + flag_print: 旗印 + anchor_symbol: 锚符号 + cross: 十字 + diffraction_spikes: 衍射十字星 + iron_cross: 铁十字架 + latin_cross: 拉丁式十字架 + lace-trimmed_hairband: 蕾丝边发带 + ankle_lace-up: 脚踝系带 + st._gloriana's_(emblem): 圣葛罗莉安娜女学园校徽 + heart_lock_(kantai_collection): 舰娘锁(舰C) + garters: 袜带 + thigh_strap: 大腿绑带 + thigh_ribbon: 大腿缎带 + leg_garter: 腿环|袜带 + garter_straps: 吊带袜的吊带 + leg_ribbon: 腿锻带 + bandaid_on_leg: 腿上的绷带 + bandaged_leg: 包扎过的腿 + arm_garter: 臂环 + joints: 关节 + kneepits: 膝盖 + knee_pads: 护膝 + thigh_holster: 大腿皮套 + bandaid_on_knee: 膝盖上的创可贴 + + - name: 首饰 + color: rgba(230, 84, 128, .4) + tags: + bracelet: 手链 + choker: 项圈 + metal collar: 金属项圈 + ring: 戒指 + wristband: 腕带 + pendant: 吊坠 + brooch: 胸针 + hoop earrings: 圈形耳环 + bangle: 手镯 + stud earrings: 耳钉 + sunburst: 旭日形首饰 + pearl bracelet: 珍珠手链 + drop earrings: 耳坠 + puppet rings: 木偶戒指 + corsage: 胸花 + sapphire brooch: 蓝宝石胸针 + jewelry: 珠宝首饰 + necklace: 项链 + +- name: 表情动作 + groups: + - name: 笑 + color: rgba(241, 229, 140, .4) + tags: + smile: 微笑 + laughing: 大笑 + kind_smile: 开心 + :d: 开心的笑_:D😀 + ;d: 眨眼笑_:D + grin: 露齿咧嘴笑 + teasing_smile: 被逗笑,咧嘴傻笑 + seductive_smile: 魅惑的微笑 + smirk: 傻笑,自鸣得意的笑 + giggling: 咯咯傻笑 + smug: 洋洋得意 + naughty_face: 调皮的脸 + evil smile: 邪恶笑 + crazy_smile: 疯狂的笑 + happy: 快乐|幸福 + happy_birthday: 生日快乐 + happy_halloween: 万圣节快乐 + happy_new_year: 新年快乐 + happy_tears: 开心的眼泪 + happy_valentine: 情人节快乐 + + - name: 哭 + color: rgba(241, 229, 140, .4) + tags: + sad: 伤心 + tear: 啜泣 + crying: 大哭 + crying_with_eyes_open: 睁着眼睛哭 + streaming_tears: 流泪 + teardrop: 泪珠 + tearing_clothes: 撕破衣服 + tearing_up: 要哭的表情 + tears: 眼泪 + wiping_tears: 擦眼泪 + badmood: 心情不好 + + - name: 不开心 + color: rgba(241, 229, 140, .4) + tags: + frustrated: 沮丧 + frustrated_brow: 沮丧的眉头 + annoyed: 苦恼的 + anguish: 苦闷 + sigh: 叹气 + gloom: 忧郁的 + disappointed: 失望的 + despair: 绝望 + + - name: 蔑视 + color: rgba(241, 229, 140, .4) + tags: + disgust: 厌恶(看垃圾一样的眼神) + disdain: 轻蔑 + contempt: 蔑视 + shaded_face: 脸上有阴影,配合蔑视 + jitome: 鄙夷的眼神 + frown: 皱眉/蹙额 + wince: 皱眉蹙额(性交前) + furrowed_brow: 眉头紧锁 + fear_kubrick: 害怕侧目 + laughing: 在笑的 + + - name: 生气 + color: rgba(241, 229, 140, .4) + tags: + angry: 生气的 + glaring: 怒目而视 + serious: 严肃的(和angry有点像) + kubrick_stare: 侧头瞪着你 + evil: 邪恶的 + sulking: 生_闷气 + screaming: 尖叫|大声喊 + shouting: 喊叫 + + - name: 其他表情 + color: rgba(241, 229, 140, .4) + tags: + expressionless: 面无表情 + sleepy: 困乏的 + drunk: 喝醉的 + bored: 无聊的 + confused: 使困惑 + thinking: 思考 + lonely: 孤独 + light_blush: 轻微脸红 + blush: 脸红 + shy: 害羞的 + embarrass: 害羞的(尴尬的) + facepalm: 捂脸 + flustered: 慌张的 + sweat: 流汗 + scared: 害怕的 + ahegao: 阿黑颜 + endured_face: 忍耐的表情 + restrained: 忍耐 + dark_persona: 黑化的 + crazy: 疯狂的 + exhausted: 筋疲力尽的 + Tsundere: 傲娇 + yandere: 病娇 + multiple_persona: 多重人格 + Jekyll_and_Hyde: 多重人格 + twitching: 抽搐 + spasm: 痉挛 + trembling: 颤抖 + rape_face: 强奸脸 + rolling_eyes: 翻白眼(高潮眼) + envy: 嫉妒 + female_orgasm: 绝顶 + heavy_breathing: 重呼吸,可能没用 + naughty: 淘气 + expressions: 表情差分(大概) + moaning: 呻吟 + scowl: 嫌弃的眼神 + + - name: 基础动作 + color: rgba(241, 229, 140, .4) + tags: + standing: 站立 + on back: 躺 + on stomach: 趴 + kneeling: 跪 + on_side: 侧卧 + on_stomach: 趴着 + top-down_bottom-up: 趴着翘臀 + the_pose: 趴在地上并翘起脚 + bent_over: 翘臀姿势 + upside-down: 倒立 + reversal: 反转 + fighting_stance: 战斗姿态 + leaning_to_the_side: 靠在一边 + leaning: 倚靠|身体倾斜 + leaning_back: 身体往后靠 + leaning_on_object: 靠在物体上 + arched_back: 弓身体 + leaning_forward: 身体前倾 + afloat: 浮(在水上 + lying: 躺着的 + fetal_position: 胎儿姿势(躺) + lying_on_person: 躺在人身上 + lying_on_the_lake: 躺在湖面上 + lying_on_water: 躺在水中 + on_back: 仰躺 + prone_bone: 俯卧后入 + reclining: 斜倒斜躺姿势 + sleeping_upright: (不躺着)睡觉|直立睡觉 + presenting: 展示(后接部位) + spinning: 旋转 + posing: 摆姿势 + stylish_pose: 时尚姿势 + public_indecency: 公然猥亵 + parody: 模仿 + in_container: 在容器中 + against_glass: 挤压玻璃(无效) + aiming: 瞄准 + aiming_at_viewer: 瞄准了读者(的视角) + applying_makeup: 化妆 + bathing: 洗澡 + biting: 咬 + bleeding: 出血 + blowing: 吹 + bowing: 鞠躬 + breathing_fire: 喷火 + broom_riding: 骑扫帚 + brushing_teeth: 刷牙 + bubble_blowing: 吹泡泡 + bullying: 欺负 + burning: 燃烧 + cast: 投掷 + chasing: 追逐 + cleaning: 打扫 + climbing: 攀爬 + comforting: 安慰 + cooking: 烹饪 + crying: 哭 + cuddling: 拥抱 + dancing: 跳舞 + diving: 潜水 + dragging: 拖某物 + drawing: 绘画 + drawing_bow: 拉弓 + dreaming: 做梦 + drinking: 喝 + driving: 驾驶 + dropping: (意外)掉落 + drying: 弄干(浴后) + dual_wielding: 双持 + exercise: 做运动 + fighting: 战斗中的 + firing: 射击 + fishing: 钓鱼 + flapping: 拍打动作 + flashing: 露出 + fleeing: 在逃跑的 + flexing: 秀肌肉 + flying: 飞行 + flying_kick: 飞踢 + hair_brushing: 梳头 + hair_tucking: 撩头发 + hanging: 吊起来的 + hitting: 击打 + imagining: 在想象的 + jumping: 跳跃 + kicking: 踢 + licking: 舔 + licking_lips: 舔嘴唇 + lip_biting: 咬嘴唇 + meditation: 冥想 + painting: 绘画 + Painting_(Action): 画画 + playing_card: 扑克牌 + playing_games: 打游戏 + playing_instrument: 演奏乐器 + pole_dancing: 钢管舞 + praying: 祈祷 + punching: 挥拳 + pushing: 推搡 + railing: 用手扶着 + reading: 阅读 + riding: 骑 + running: 奔跑 + sewing: 缝纫 + shopping: 购物 + showering: 淋浴 + sing: 唱歌 + singing: 唱歌 + slashing: 砍 + sleeping: 睡觉 + smelling: 闻 + smoking: 抽烟 + sneezing: 打喷嚏 + snowing: 下雪 + soaking_feet: 泡脚 + soccer: 足球运动 + spilling: 从容器中倒出液体的动作 + spitting: 从嘴里吐出液体的动作 + splashing: 飞溅 + standing_on_liquid: 站在水上或液体上 + standing_on_one_leg: 单腿站立 + standing_split: 站立劈叉|站立高抬腿 + steepled_fingers: 指尖抵着指间 + strangling: 绞首 + sweeping: 打扫 + swimming: 游泳 + swing: 摆动 + tail_wagging: 摇尾巴 + taking_picture: 拍照|自拍 + talking: 有台词的 + talking_on_phone: 打电话 + teasing: 戏弄 + thinking: 思考 + tickling: 挠痒痒 + toilet_use: 上厕所 + tossing_: 投掷 + tripping: 被绊倒 + trolling: 恶搞行为 + twitching: 抽搐 + tying: 打结(动作) + unsheathing: 拔出鞘的 + untying: 解开的 + unzipping: 拉开拉链(动作) + wading: 涉水 + waking_up: 醒来 + walking: 走路 + walking_on_liquid: 在液体上行走 + washing: 洗涤 + whispering: 讲悄悄话 + wrestling: 摔角(运动) + writing: 写作 + yawning: 打哈欠 + hiding: 躲藏 + + - name: 手部动作 + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: 手放在身后 + arm_above_head: 手在头上 + arm_behind_head: 手放头后 + arms_crossed: 手交叉于胸前 + arm_support: 用手支撑住 + armpits: 露腋 + arms_up: 抬手 + hands_on_hips: 双手叉腰 + arm_around_waist: 单手搂腰 + caramelldansen: 某著名伸手扭腰动作 + hands_in_opposite_sleeves: 双手反袖 + waving: 招手 + crossed_arms: 交叉双臂 + outstretched_arms: 伸出双臂 + v_arms: 双臂摆出V + w_arms: 双臂摆出W + salute: 敬礼 + reaching: (有目的地)伸手 + reaching_out: 朝画外伸手 + stretch: 伸懒腰 + hugging_own_legs: 拥抱自己的腿 + arm_blade: 手臂刀刃 + arm_grab: 抓住手臂 + arm_held_back: 手臂往后拉 + arm_ribbon: 手臂丝带 + bandaged_arm: 缠着绷带的手臂 + bandaid_on_arm: 手臂上贴着创可贴 + bound_arms: 手臂被束缚 + convenient_arm: 遮住关键部位的手臂 + extra_arms: 多只手臂 + locked_arms: 互挽手臂 + outstretched_arm: 伸出手臂 + waving_arms: 挥舞着手臂 + arm_at_side: 单手垂放 + arm_behind_back: 单手背到身后 + shou: 单手托在脑后 + arm_cannon: 手炮 + arm_hug: 挽手 + arm_up: 举着手 + arms_at_sides: 双手垂放 + arms_behind_head: 双手抱头 + hand_to_mouth: 手放在嘴边 + shushing: 嘘手势 + cat_pose: 猫爪手势 + claw_pose: 爪手势 + paw_pose: 招财猫手势(下弯手腕) + fox_shadow_puppet: 狐狸手势 + double_fox_shadow_puppet: b + finger_gun: 手指枪手势 + v: 胜利手势 + double_v: 双_v + thumbs_up: 翘大拇指 + index_finger_raised: 食指抬起 + middle_finger: 国际友好手势 + grimace: 做鬼脸 + eyelid_pull: 做鬼脸 + fingersmile: 用手指做出笑脸 + wiping_tears: 擦眼泪 + finger_on_trigger: 准备扣扳机的手势 + pointing_at_self: 指着自己 + pointing_at_viewer: 指向看图的人 + pointing_up: 向上指 + poking: 戳 + hand_gesture: 做手势 + ok_sign: OK手势 + shading_eyes: 遮阳手势 + finger_biting: 咬手指 + finger_in_mouth: 吮吸手指 + fingering_through_clothes: 手指 + fingers_together: 手指并拢 + hair_twirling: 手指卷着头发 + hands_clasped: 双手手指交叉|双手紧握 + holding_hair: 握着头发|手指绕着头发 + pointing: 用手指着 + sharp_fingernails: 锐利的手指甲 + sleeves_past_fingers: 袖子长过手指 + spread_fingers: 张开手指 + trigger_discipline: 手指没放在扳机上 + w: 手指比W + balancing: (保持)平衡的姿势 + curvy: 展现魅力的姿势 + multiple_views: 多角度|多姿势 + pose: 姿势 + ready_to_draw: 准备拔刀的姿势 + trefoil: 一种女性展示臀部的姿势 + zombie_pose: 僵尸姿势 + beckoning: 招手 + bunching_hair: 手持辫子 + carrying: 抱起 + carrying_over_shoulder: 肩扛 + carrying_under_arm: 夹在腋下 + cheering: 助威 + finger_to_mouth: 手抵在嘴唇边 + cheek_pinching: 捏脸颊 + cheek_poking: 戳脸颊 + chin_stroking: 摸下巴 + hair_pull: 拉头发 + covering_mouth: 遮盖嘴 + covering_xx: 遮盖xx + self_fondle: 自我抚摸 + adjusting_thighhigh: 调整过膝袜 + chin_rest: 托脸颊 + head_rest: 托头 + take: 拿着 + _sheet_grab: 抓床单 + groping: 摸索 + skirt_lift: 掀裙子 + crotch_grab: 手抓裆部 + covering_chest_by_hand: 用手遮住胸部 + bangs_pinned_back: 掀起的刘海 + clothes_lift: 掀起衣物 + dress_lift: 掀起裙子 + kimono_lift: 掀起和服 + lifted_by_another: 被对方掀起衣物 + lifted_by_self: 掀起自己的衣物 + shirt_lift: 拉起掀起卷起衬衫 + skirt_basket: 指掀起裙子时形成的篮子形状 + skirt_flip: 被掀起裙子(含突发情况意义) + bikini_lift: 往上剥开的比基尼 + leg_lift: 单腿抬高 + lifting_person: 将人抱起 + strap_lift: 往上掰衣物的吊带 + wind_lift: 起风效果|上升气流 + bikini_pull: 扯着比基尼 + cheek_pull: 扯脸颊 + clothes_pull: 拉开衣物 + dress_pull: 剥下裙子胸口的部分 + hair_pulled_back: 头发往后扎 + kimono_pull: 剥开和服 + leotard_pull: 剥开连衣裤 + mask_pull: 拉着口罩 + pants_pull: 拉着裤子 + pulled_by_another: 被另一个人拉(或拉衣物) + pulled_by_self: 拉下自己的衣物 + pulling: 拉 + shirt_pull: 拉开衬衫 + shorts_pull: 褪下短裤 + skirt_pull: 拉开裙子 + swimsuit_pull: 扯下泳衣 + zipper_pull_tab: 拉链的拉片 + adjusting_clothes: 拨弄衣服 + adjusting_eyewear: 扶眼镜 + adjusting_gloves: 拨弄手套 + adjusting_hair: 理头发 + adjusting_hat: 整理帽子 + adjusting_swimsuit: 拨弄泳衣 + + - name: 手部动作(拿着某物) + color: rgba(241, 229, 140, .4) + tags: + holding: 拿着某物 + holding_animal: 抱着动物 + holding_arrow: 拉着弓 + holding_axe: 握着斧头 + holding_bag: 提着包 + holding_ball: 抱着球 + holding_basket: 提着篮子 + holding_book: 捧着书 + holding_bottle: 拿着瓶子 + holding_bouquet: 手捧花束 + holding_bow_(weapon): 拿着弓(武器) + holding_bowl: 端着碗 + holding_box: 端着箱子 + holding_breath: 憋气 + holding_broom: 手持扫帚 + holding_camera: 手持摄像机 + holding_can: 拿着易拉罐 + holding_candy: 手持糖果 + holding_card: 手持卡片 + holding_cat: 抱着猫 + holding_chopsticks: 拿着筷子 + holding_cigarette: 手叼香烟 + holding_clothes: 拿着衣服 + holding_condom: 拿着避孕套 + holding_cup: 手持杯子 + holding_dagger: 手持匕首 + holding_doll: 抱着玩偶 + holding_eyewear: 拿着眼镜|正在摘眼镜 + holding_fan: 拿着扇子 + holding_flag: 手持旗帜 + holding_flower: 拿着花 + holding_food: 拿着食物 + holding_fork: 拿着餐叉 + holding_fruit: 拿着水果 + holding_gift: 拿着礼物 + holding_gun: 拿着枪 + holding_hands: 牵手 + holding_hat: 拿着帽子 + holding_head: 手里捧着头 + holding_helmet: 拿着头盔 + holding_innertube: 拿着泳圈 + holding_instrument: 拿着乐器 + holding_knife: 拿着刀 + holding_leaf: 拿着叶子 + holding_lollipop: 拿着棒棒糖 + holding_mask: 拿着面具 + holding_microphone: 拿着麦克风 + holding_needle: 拿着缝衣针 + holding_own_foot: 握着自己的脚 + holding_paintbrush: 手握画笔 + holding_paper: 拿着纸 + holding_pen: 握笔 + holding_pencil: 手持铅笔 + holding_phone: 拿着手机 + holding_pillow: 抱着枕头 + holding_pipe: 拿着烟斗 + holding_pizza: 拿着披萨 + holding_plate: 端着碟子 + holding_poke_ball: 拿着精灵球 + holding_pokemon: 抱着宝可梦 + holding_polearm: 手持长柄武器 + holding_sack: 拎着包袱 + holding_scythe: 手持镰刀 + holding_sheath: 握着刀鞘 + holding_shield: 手持盾牌 + holding_shoes: 拿着鞋子 + holding_sign: 手持招牌 + holding_spear: 手持长矛 + holding_spoon: 拿着汤勺 + holding_staff: 手持法杖 + holding_strap: 手拉着吊带 + holding_stuffed_animal: 抱着毛绒玩具 + holding_stylus: 手持手写笔 + holding_sword: 手持剑 + holding_syringe: 手持注射器 + holding_towel: 拿着毛巾 + holding_tray: 托着盘子 + holding_umbrella: 撑伞 + holding_wand: 握着棒子 + holding_whip: 握着鞭子 + arm_around_neck: 单手搂着脖子 + arms_around_neck: 双手搂着脖子 + + - name: 手部动作(放在某地) + color: rgba(241, 229, 140, .4) + tags: + covering: 遮盖的动作 + covering_face: 挡住脸 + covering_ass: 遮着臀部 + covering_crotch: 遮着裆部 + covering_eyes: 遮住眼睛 + covering_mouth: 挡住嘴巴 + covering_nipples: 挡住乳头 + hands_on_another's_: 双手放在别人的脸上 + hands_on_another's_cheeks: 双手放在对方的脸颊上 + hands_on_ass: 双手放在屁股上 + hands_on_feet: 双手放在脚上 + hands_on_headwear: 双手碰到头上的饰物 + hands_on_hilt: 双手搭在刀柄上 + hands_on_lap: 双手放在两腿之间 + hands_on_own_face: 双手放在自己的脸上 + hands_on_own_cheeks: 双手放在自己的脸颊上 + hands_on_own_chest: 双手放在自己的胸口 + hands_on_own_head: 双手放在自己的头上 + hands_on_own_knees: 双手放在自己的膝盖上 + hands_on_own_stomach: 双手放在自己的肚子上 + hands_on_own_thighs: 双手放在自己的大腿上 + hands_on_another's_shoulders: 双手放在别人的肩膀上 + hands_on_hips: 双手叉腰|双手搁在腰上 + hand_on_another's_: 手接触到对方的脸 + hand_on_another's_cheek: 手摸着对方的脸颊 + hand_on_another's_chest: 手放在对方的胸前 + hand_on_another's_chin: 手托着对方的下巴 + hand_on_another's_head: 手放在对方的头上 + hand_on_another's_shoulder: 手放在对方的肩上 + hand_on_another's_stomach: 手放在对方的肚子上 + hand_on_ass: 手放在屁股上 + hand_on_head: 手放在头上 + hand_on_headwear: 手触碰帽子 + hand_on_hilt: 手搁在刀柄上 + hand_on_hip: 手叉着腰|手搁在腰上 + hand_on_own_: 把手放在自己脸上 + hand_on_own_cheek: 把手放在自己的脸颊上 + hand_on_own_chest: 把手放在自己的胸口 + hand_on_own_chin: 手碰着自己的下巴 + hand_on_own_stomach: 把手放在自己的肚子上 + hand_on_shoulder: 手放在肩上 + hand_in_another's_hair: 手放在对方的头发上 + hand_in_hair: 手埋在头发里 + hand_in_pocket: 手插在口袋里 + + - name: 手部动作(抓着某物) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: 抓着屁股 + flat_chest_grab: 抓着贫乳 + grabbing: 抓住|抓着 + grabbing_another's_ass: 抓着对方屁股 + grabbing_another's_hair: 抓着对方的头发 + grabbing_from_behind: 从背后揉胸|从背后抓住胸部 + grabbing_own_ass: 抓着自己的屁股 + guided_penetration: 抓住男性器插入自己 + hair_grab: 抓着头发 + leg_grab: 抓着腿 + necktie_grab: 抓着领带 + neckwear_grab: 抓着颈部的衣服 + penis_grab: 抓着阴茎 + pillow_grab: 抓着枕头 + sheet_grab: 抓着床单 + tail_grab: 抓着尾巴 + thigh_grab: 抓着大腿 + torso_grab: 抓着躯干 + wrist_grab: 抓着手腕 + + - name: 腿部动作 + color: rgba(241, 229, 140, .4) + tags: + legs_up: 抬一只腿 + spread legs: 张腿 + legs_together: 两腿并拢 + crossed_legs: 二郎腿 + m_legs: M字摆腿 + standing_split,_leg_up: M字摆腿 + curtsy: 屈膝礼(女仆行礼) + hand_between_legs: 双腿之间的手 + open_stance: 稍息 + convenient_leg: 挡住关键部位的腿 + leg_lock: 用双腿夹住 + legs: 双腿 + legs_over_head: 双腿抬过头 + squatting,_open_legs: 蹲下分开双腿 + knees_together_feet_apart: 膝盖合并,两脚分开 + animal_on_lap: 膝盖上有动物 + hand_on_own_knee: 手放在自己的膝盖上 + knee_up: 顶起膝盖 + knees: 膝盖 + knees_to_chest: 膝盖顶到胸部 + on_lap: 在膝盖上 + sitting: 坐 + wariza: 鸭子坐 + straddling: 跨坐 + yokozuwari: 侧身坐 + sitting_backwards: 向后坐 + sitting_in_tree: 坐在树上 + sitting_on_xx: 坐在物体上 + butterfly_sitting: 蝴蝶坐 + lotus_position: 坐在桌子上 + sitting_on_railing: 坐在栏杆上 + sitting_on_rock: 坐在石头 + sitting_on_stairs: 坐在楼梯上 + sitting_on_table: 坐在桌子上 + sitting_on_water: 坐在水上 + cushion: 坐垫 + indian_style: 盘腿坐 + sitting_on_chair: 坐在椅子上 + sidesaddle: 侧坐在鞍上 + sitting_on_bed: 坐在床上 + sitting_on_desk: 坐在课桌上 + sitting_on_lap: 坐在大腿上 + sitting_on_person: 坐在人身上 + upright_straddle: 对坐体位 + squatting: 蹲下 + one_knee: 一只膝盖 + kneeling: 下跪 + all_fours: 四肢着地 + gravure_pose: 凹版姿势 + kicking: 踢 + high_kick: 高踢 + soaking_feet: 泡脚 + reclining: 斜倚 + hugging_own_legs: 抱自己的双腿 + bare_legs: 裸腿 + between_legs: (强调)两腿之间 + cropped_legs: 只画了一部分腿 + k/da_(league_of_legends): KDA组合(英雄联盟) + leg_belt: 腿部系着带子 + leg_hair: 腿毛 + leg_up: 抬起腿 + legs_apart: 两腿分开 + lowleg: M字摆腿 + mechanical_legs: 机械义足 + multiple_legs: 多足角色 + no_legs: 没画出腿 + no_legwear: 裆胯以下裸着 + tail_between_legs: 尾巴蜷到两腿之间 + barefoot: 裸足 + foot_out_of_frame: 单脚不在图内 + footprints: 脚印 + dirty_feet: 脚的画法错误 + feet: 脚 + feet_out_of_frame: 双脚不在图内 + feet_up: 翘起脚 + wrong_feet: 脚部作画错误 + cameltoe: 骆驼趾 + pigeon-toed: 萌向的内八腿 + tiptoes: 踮起脚尖 + toe-point: 趾尖|脚尖 + amputee: 欠损|独脚|肢体残缺|欠损少女 + ankle_strap: 脚踝丝环 + ankle_wrap: 脚踝套 + crossed_ankles: 交叉脚踝 + pince-nez: 夹鼻眼镜|无脚眼镜 + folded: 抬腿露阴 + thick_thighs: 肉腿 + thigh_holster: 腿上系着带子或工具包或枪套 + + - name: 其他动作 + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: 胸部互碰|胸顶着胸 + back-to-back: 背对背 + cunnilingus: 舔阴 + eye_contact: 眼对眼(对视) + facing_another: 面对另一个 + facing_away: 二人面对面(脸贴得很近) + feeding: 喂食 + finger_in_another's_mouth: 口内指交 + fingering: 指交 + french_kiss: 法国之吻 + giving: 递|赠送 + grinding: 素股|臀推 + groping: 猥亵 + holding_hands: 牵手 + hug: 拥抱 + imminent_kiss: 即将接吻 + incoming_food: 递食物 + incoming_gift: 递礼物 + interlocked_fingers: 紧扣的双手 + Kabedon: 壁咚 + lap_pillow: 膝枕 + licking_penis: 舔阴茎 + long_tongue: 长舌头 + mimikaki: 掏耳勺 + oral_invitation: 迎接射精而伸出舌头 + princess_carry: 公主抱 + shared_bathing: 共浴|鸳鸯浴 + shared_food: 共享食物|用嘴递食物 + sitting_on_head: 坐在头上 + sitting_on_shoulder: 坐在肩膀上 + slapping: 掌掴 + spanking: 打屁股 + special_feeling_(meme): 雪中打伞的恋人梗 + symmetrical_docking: 胸挤胸 + tongue: 舌头 + tongue_out: 吐舌头 + uvula: 小舌头|口盖垂|悬雍垂 + ear_biting: 咬耳朵 + mixed_bathing: 混浴 + +- name: 画面 + groups: + - name: 画质 + color: rgba(0, 255, 255, .4) + tags: + checkered: 格子的 + lowres: 低分辨率 + highres: 高分辨率 + absurdres: 超高分辨率 + incredibly absurdres: 极高分辨率 + huge filesize: 超级高分辨率/大文件 + wallpaper: 壁纸 + pixel art: 点阵图 + monochrome: 单色图片 + colorful: 色彩斑斓的 + + - name: 艺术风格 + color: rgba(0, 255, 255, .4) + tags: + artbook: 原画 + game cg: 游戏CG + comic: 漫画 + 4koma: 四格 + animated gif: GIF格式图片 + dakimakura: 抱枕 + cosplay: 角色扮演 + crossover: 穿越 + dark: 暗的 + light: 亮的 + guro: 猎奇 + realistic: 写实 + photo: 照片 + real: 真实 + landscape/scenery: 风景 + cityscape: 城市风景 + science fiction: 科技幻想 + original: 原创 + parody: 拙劣的模仿 + personification: 拟人 + optical illusion: 视觉错误 + fine art parody: 名画模仿 + sketch: 素描 + traditional media: 传统媒体(手绘稿) + watercolor (medium): 透明水彩绘 + silhouette: 剪影 + cover: 封面 + album: 专辑 + sample: 图上有字样 + back: 背影像 + bust: 半身像 + profile: 侧面绘 + expressions: 表情绘(各种表情) + everyone: 一部作品中的主要人物集齐 + column lineup: 一列列小图组成大图 + transparent background: 透明的背景 + simple background: 简单的背景 + gradient background: 渐变的背景 + zoom layer: 背景是前景的放大版 + 8 Bit Game: 8bit游戏 + 1980s anime: 80动画 + disney movie: 迪士尼电影 + goth: 哥特摇滚 + 80s movie: 80电影 + bubble bobble: 泡泡龙 + style of Pixar: 皮克斯动画 + Polaroid art: 宝丽来艺术 + Kaleidoscope Photography: 万花筒摄影 + opal render: 欧泊渲染 + chemigram: 色谱图 + Studio Ghibli: 吉卜力风格 + dreamlike: 梦幻 + (faux traditional media): 签绘风格 + genshin impact: 原神冲击 + azur lane: 碧蓝航线 + kantai collection: 舰队收藏 + rebecca (cyberpunk): 边缘行者 + chainsaw man: 电锯人 + Magic Vortex: 魔法旋涡 + ((dieselpunk)): 柴油朋克 + magazine scan: 杂志扫描 + album cover: 专辑封面 + (lineart): 线条变粗 + synthwave: 蒸汽波 + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): 洛可可 + + - name: 艺术类型 + color: rgba(0, 255, 255, .4) + tags: + monochrome: 单色图片 + Collage: 拼贴艺术 + Dalle de verre: 彩色玻璃 + pixel art: 像素画 + Encaustic painting: 瓷画 + Ink wash painting: 水墨画 + Mezzotint: 铜版雕刻 + silhouette: 剪影 + illustration: 插画 + (((ink))), ((watercolor)): 水彩画 + illustration,(((ukiyoe))),((sketch)),((japanese_art)): 浮世绘 + ((wash painting)),((ink s...)): 中国风 + ((dyeing)),((oil painting)),((impasto)): 油画 + (posing sketch), (monochrome): 黑白草图 + sketch: 手画草稿 + (monochrome), (gray scale), (pencil sketch lines: 铅笔速写 + (watercolor pencil): 彩铅画 + + - name: 艺术派系 + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): 新艺术主义 + ((classicism)): 古典主义 + ((futurism)): 未来主义 + ((Dadaism)): 达达主义 + ((abstract art)): 抽象艺术 + ((ASCII art)): ASCII艺术 + + - name: 艺术家风格 + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): 穆夏风格 + ((Monet style)): 莫奈风格 + + - name: 光照 + color: rgba(0, 255, 255, .4) + tags: + rim light: 轮廓光 + Volumetric Lighting: 体积光 + glowing neon lights: 霓虹灯 + Cinematic Lighting: 电影级光照 + lens flare: 透镜光晕 + metallic luster: 金属光泽 + moody lighting: 氛围光照 + Tyndall effect: 丁达尔效应 + light leaks: 漏光光效 + background light: 背景光 + available light: 自然光 + + - name: 写实 + color: rgba(0, 255, 255, .4) + tags: + realistic: 写实 + highres: 厚涂(风格) + photo_(medium): 照片(风格) + oil_painting: 油画 + reality: 真实 + polaroid: 照片(拍立得) + + - name: 素描 + color: rgba(0, 255, 255, .4) + tags: + sketch: 素描 + flat_color: 色块 + monochrome: 单色 + spot_color: 纯色 + halftone: 半色调 + greyscale: 灰度 + high_contrast: 高对比度 + partially_colored: 部分着色 + chromatic_aberration: 色差、色失焦 + contour_deepening: 轮廓加深 + outline: 轮廓线 + silhouette: 剪影 + + - name: 画笔 + color: rgba(0, 255, 255, .4) + tags: + traditional_media: 传统画布(如纸等) + faux_traditional_media: 签绘风格 + marker_(medium): 马克笔 + copics: 马克笔(中性灰色) + pencil_sketch_lines: 铅笔速写 + graphite_(medium): 石墨铅笔 + colored_pencil_(medium): 彩色铅笔 + millipen_(medium): 绘图笔 + nib_pen_(medium): 绘图笔 + ballpoint_pen_(medium)_: 圆珠笔 + pastel_color: 柔和的色彩 + watercolor_(medium): 水彩 + acrylic_paint_(medium): 丙烯漆料画 + contour_deepening: 线条变粗 + + - name: 颜色 + color: rgba(0, 255, 255, .4) + tags: + orange: 橙色 + blue: 蓝色 + red: 红色 + light_brown: 浅棕色 + dark_pink: 深粉色 + khaki: 卡其色 + blonde: 金黄色的 + brown: 棕色 + black: 黑色 + gray: 灰色 + darkgray: 深灰色 + silver: 银色 + lightgray: 浅灰色 + gainsboro: 庚氏灰色 + whitesmoke: 白烟色 + snow: 雪白色 + ghostwhite: 幽灵白 + floralwhite: 花白色 + linen: 亚麻色 + antiquewhite: 古董白 + papayawhip: 番木瓜色 + blanchedalmond: 漂白杏仁色 + bisque: 饼干色 + moccasin: 鹿皮鞋色 + navajowhite: 纳瓦霍白 + peachpuff: 桃肉色 + mistyrose: 薄雾玫瑰 + lavenderblush: 淡紫红色 + seashell: 贝壳白 + oldlace: 老花色 + ivory: 象牙色 + honeydew: 蜜色 + mintcream: 薄荷奶油色 + azure: 蔚蓝色 + aliceblue: 艾莉丝蓝 + lavender: 薰衣草色 + lightsteelblue: 淡钢蓝色 + lightslategray: 亮石板灰 + slategray: 灰石色 + steelblue: 钢蓝色 + royalblue: 皇家蓝 + midnightblue: 午夜蓝 + navy: 海军蓝 + darkblue: 深蓝色 + mediumblue: 中蓝色 + dodgerblue: 道奇蓝 + cornflowerblue: 矢车菊蓝 + skyblue: 深天蓝 + lightblue: 淡蓝色 + powderblue: 粉蓝色 + paleturquoise: 淡青色 + lightcyan: 青色 + cyan: 碧绿色 + aquamarine: 绿松石色 + turquoise: 中绿松石色 + mediumturquoise: 深绿松石色 + darkturquoise: 浅海绿色 + lightseagreen: 军服蓝色 + cadetblue: 深青色 + darkcyan: 水鸭色 + teal: 暗灰蓝色 + darkslategray: 深绿色 + darkgreen: 绿色 + green: 森林绿色 + forestgreen: 海绿色 + seagreen: 中海绿色 + mediumseagreen: 中绿宝石色 + mediumaquamarine: 暗海绿色 + darkseagreen: 绿松石色 + palegreen: 淡绿色 + lightgreen: 草绿色 + springgreen: 中春绿色 + mediumspringgreen: 草坪绿 + lawngreen: 查特酒绿色 + chartreuse: 黄绿色 + greenyellow: 酸橙色 + lime: 酸橙绿 + limegreen: 橄榄褐色 + yellowgreen: 橄榄绿色 + darkolivegreen: 橄榄色 + olivedrab: 橄榄褐色 + olive: 橄榄色 + darkkhaki: 暗卡其色 + palegoldenrod: 淡金菊色 + cornsilk: 玉米色 + beige: 米色 + lightyellow: 浅黄色 + lightgoldenrodyellow: 亮金黄色 + lemonchiffon: 柠檬绸色 + wheat: 小麦色 + burlywood: 琥珀色 + tan: 棕褐色 + yellow: 黄色 + gold: 金色 + sandybrown: 橙褐色 + darkorange: 暗橙色 + goldenrod: 金菊色 + peru: 秘鲁色 + darkgoldenrod: 暗金菊色 + chocolate: 巧克力色 + sienna: 黄土赭色 + saddlebrown: 马鞍棕色 + maroon: 栗色 + darkred: 暗红色 + firebrick: 耐火砖色 + indianred: 印第安红色 + rosybrown: 玫瑰棕色 + darksalmon: 深鲑鱼肉色 + lightcoral: 浅珊瑚色 + salmon: 鲑鱼肉色 + lightsalmon: 亮鲑鱼肉色 + coral: 珊瑚色 + tomato: 番茄红 + orangered: 橙红色 + crimson: 深粉红色 + mediumvioletred: 中紫罗兰红色 + deeppink: 深粉色 + hotpink: 热粉红色 + palevioletred: 淡紫罗兰红色 + pink: 粉色 + lightpink: 浅粉色 + thistle: 蓟色 + magenta: 洋红色 + fuchsia: 紫红色 + violet: 紫色 + plum: 洋李色 + orchid: 兰花紫 + mediumorchid: 中兰花紫色 + darkorchid: 暗兰花紫色 + darkviolet: 暗紫罗兰色 + darkmagenta: 暗洋红色 + purple: 紫色 + indigo: 靛蓝色 + darkslateblue: 暗灰蓝色 + blueviolet: 蓝紫色 + mediumpurple: 中紫色 + slateblue: 石蓝色 + mediumslateblue: 中石板蓝色 + + - name: 背景 + color: rgba(0, 255, 255, .4) + tags: + fantasy: 幻想风格 + ban: 科技幻想 + cyberpunk: 赛博朋克 + depth_of_field: 景深(画法) + blurry: 背景模糊 + blurry_foreground: 前景模糊 + simple_background: 简单的背景 + black_background: 黑色背景 + white_background: 白色背景 + transparent_background: 透明背景 + beige_background: 米色背景 + brown_background: 棕色背景 + tan_background: 棕褐色背景 + grey_background: 灰色背景 + two-tone_background: 双色调背景 + gradient_background: 渐变的背景 + multicolored_background: 多彩的背景 + rainbow_background: 彩虹背景 + abstract_background: 抽象背景 + argyle_background: 菱形背景 + checkered_background: 方格背景 + floral_background: 花朵点缀的背景 + halftone_background: 网点图背景 + heart_background: 桃色背景 + honeycomb_background: 蜂窝风格背景 + plaid_background: 格子呢背景 + polka_dot: 圆斑背景 + striped_background: 圆斑背景 + scenery: 风景 + landscape: 景观 + foral_background: 花卉图案装饰的背景 + crop_top_overhang: 作物顶部悬垂 + starry_background: 星空背景 + sparkle_background: 闪着星光的背景 + cityscape: 城市背景 + city_lights: 城市灯光背景 + clock_background: 时钟背景 + bubble_background: 气泡背景 + border: 边框 + pillarboxed: 柱状画布背景 + rounded_corners: 背景或画框是圆角 + viewfinder: 相机取景框 + windowboxed: 套着画框(背景) + outside_border: 一部分画到了背景框外 + flashback: 回忆场景 + wall_of_text: 文字背景 + background_text: 背景文字 + +- name: 环境 + groups: + - name: 季节 + color: rgba(31, 144, 255, .4) + tags: + in spring: 春天 + in summer: 夏天 + in autumn: 秋天 + in winter: 冬天 + (autumn maple forest:1.3),(very few fallen leaves),(path): 秋景 + + - name: 天气 + color: rgba(31, 144, 255, .4) + tags: + day: 白天 + dusk: 黄昏 + night: 夜晚 + rain: 下雨 + in the rain: 雨中 + rainy days: 雨天 + sunset: 日落 + cloudy: 多云 + full moon: 满月 + sun: 太阳 + moon: 月亮 + full_moon: 满月 + stars: 星星 + sky: 天空 + universe: 宇宙 + snow,ice: 冰雪 + snowflakes: 雪花 + lighting: 闪电 + rainbow: 彩虹 + meteor shower: 流星雨 + cumulonimbus: 积雨云 + + - name: 大自然 + color: rgba(31, 144, 255, .4) + tags: + nature: 大自然 + sea: 大海 + ocean: 海洋 + beach: 海边 + hills: 山丘 + in a meadow: 草地 + on the beach: 海滩 + underwater: 水中 + over the sea: 海边 + grove: 树林 + on a desert: 沙漠 + plateau: 高原 + cliff: 悬崖 + canyon: 峡谷 + oasis: 绿洲 + bamboo forest: 竹林 + glacier: 冰川 + floating island: 浮岛 + volcano: 火山 + savanna: 大草原 + waterfall: 瀑布 + stream: 溪流 + wasteland: 荒地 + field: 田园 + rice paddy: 稻田 + wheat field: 麦田 + flower field: 花田 + flower sea: 花海 + space: 太空 + starry sky: 星空 + lake: 湖泊 + river: 河流 + onsen: 温泉 + flowers meadows: 繁花草甸 + Alps: 阿尔卑斯山脉 + Dreamy forest: 梦幻之森(虚幻感.光粒子幽静) + mountain: 山脉 + on a hill: 山上 + the top of the hill: 山顶 + outdoors: 室外 + + - name: 水 + color: rgba(31, 144, 255, .4) + tags: + ocean: 大海 + dripping: 滴水 + beach: 海滩 + lake: 湖泊 + waterfall: 瀑布 + ripples: 涟漪 + swirl: 漩涡 + waves: 波浪 + seashell: 海贝 + seaweed: 海藻 + + - name: 天空 + color: rgba(31, 144, 255, .4) + tags: + sky: 天空 + gradient_sky: 倾斜的天空 + night_sky: 夜空 + starry_sky: 星空 + hyper_galaxy: 超级银河 + star_(sky): 星星(天空中的) + star_trail: 星星轨迹 + sunset: 落日 + moon: 月亮 + lunar: 月的,_月球的; + crescent: 月牙 + crescent_moon: 新月 + full_moon: 满月 + moonlight: 月光 + scarlet_moon: 猩红月亮 + universe: 宇宙 + space: 太空 + planet: 星球 + from_space_station: 空间站 + satellite: 卫星 + + - name: 云 + color: rgba(31, 144, 255, .4) + tags: + cirrus: 卷云 + Cirrocumulus: 卷积云 + Cirrostratus: 卷层云 + Altocumulus: 高积云 + Altostratus: 高层云 + stratus: 层云 + Stratocumulus: 层积云 + cumulus: 积云 + Cumulonimbus: 积雨云 + Nimbostratus: 雨层云 + cirrus_fibratus: 毛卷云 + cirrus_uncinus: 钩卷云 + cirrus_spissatus: 密卷云 + cirrus_floccus: 絮卷云 + cirrus_castellanus: 堡卷云 + cirrus_intortus: 乱卷云 + cirrocumulus: 卷积云类 + cirrocumulus_stratiformis: 层状卷积云 + cirrocumulus_floccus: 絮状卷积云 + cirrocumulus_castellanus: 堡状卷积云 + cirrocumulus_lacunosus: 网状卷积云 + cirrostratus: 卷层云类 + cirrostratus_fibratus: 毛卷层云 + cirrostratus_nebulosus: 雾卷层云 + altocumulus: 高积云类 + altocumulus_strataformis: 层状高积云 + altocumulus_lenticularis: 荚状高积云 + altocumulus_castellanus: 堡状高积云 + altocumulus_floccus: 絮状高积云 + altocumulus_lacunosus: 网状高积云 + altostratus: 高层云类 + altostratus_undulatus: 波状高层云 + altostratus_duplicates: 复合高层云 + altostratus_pannus: 破片高层云 + altostratus_translucidus: 透光高层云 + altostratus_opacus: 蔽光高层云 + altostratus_radiatus: 辐状高层云 + altostratus_mammatus: 乳状高层云 + stratus_fractus: 碎层云 + stratus_nebulosus: 雾层云 + stratus_undulatus: 波层云 + stratocumulus: 层积云类 + stratocumulus_stratiformis: 层状层积云 + stratocumulus_cumulogentis: 积雨性层积云 + stratocumulus_castellanus: 堡状层积云 + stratocumulus_lenticularis: 荚状层积云 + stratocumulus_lacunosus: 絮状层积云 + cumulus_humilis: 淡积云 + cumulus_mediocris: 中积云 + cumulus_congestus: 浓积云 + cumulus_fractus: 碎积云 + cumulonimbus: 积雨云类 + cumulonimbus_calvus: 秃积雨云 + cumulonimbus_capillatus: 鬃积雨云 + cumulonimbus_incus: 砧积雨云 + + - name: 氛围 + color: rgba(31, 144, 255, .4) + tags: + new year: 新年 + year of the rabbit: 兔年 + valentine: 情人节 + lantern festival: 元宵节 + summer festival: 夏日祭 + tanabata: 七夕节 + mid-autumn festival: 中秋节 + halloween: 万圣节 + christmas: 圣诞节 + explosion: 爆炸 + water vapor: 蒸汽 + fireworks: 焰火 + ceiling window: 落地窗 + colourful glass: 彩色玻璃 + stain glass: 染色玻璃 + Graffiti wall: 涂鸦墙 + mosaic background: 马赛克背景 + liquid background, Sputtered water: 液体背景 + magic circles: 魔法环 + fluorescent mushroom forests background: 荧光蘑菇森林 + (((colorful bubble))): 彩色泡泡 + in the ocean: 海边日落 + against backlight at dusk: 傍晚背对阳光 + golden hour lighting: 黄金时段照明 + strong rim light: 强边缘光 + intense shadows: 强阴影 + +- name: 场景 + groups: + - name: 室外 + color: rgba(159, 32, 240, .4) + tags: + castle: 城堡 + city: 城市 + waterpark: 水上乐园 + carousel: 旋转木马 + ferris wheel: 摩天轮 + aquarium: 水族馆 + zoo: 动物园 + bowling alley: 保龄球馆 + art gallery: 美术馆 + museum: 博物馆 + planetarium: 天文馆 + swimming pool: 游泳池 + stadium: 体育场 + temple: 寺庙 + bus stop: 巴士车站 + train station: 火车站 + fountain: 喷泉 + playground: 游乐场 + market stall: 市场摊位 + phone booth: 电话亭 + railroad tracks: 铁轨 + airport: 机场 + tunnel: 隧道 + skyscraper: 摩天楼 + cityscape: 城市风景 + ruins: 废墟 + greco-roman architectur: 西罗马建筑 + east asian architecture: 东亚建物 + torii: 鸟居 + church: 教堂 + shop: 商店 + street: 街道 + cyberpunk city: 赛博朋克城市 + in the cyberpunk city: 在赛博朋克城市 + chinese style architecture: 古风建筑 + gohei: 神社 + Bustling city: 繁华都市 + laboratory: 实验室 + coffee house: 咖啡馆 + gym: 健身房 + library: 图书馆 + prison: 监狱 + engine room: 轮机舱 + handrail: 栏杆 + neon lights: 霓虹灯 + street lamp: 路灯 + road: 道路 + shanty town/slum: 贫民窟 + warehouse: 仓库 + gothic architecture: 哥特式建筑 + restaurant: 饭店 + treehouse: 树屋 + modern,Europe: 法兰西 + Industrial wind, Chinese architecture: 工业化古建筑 + building_ruins: 建筑废墟 + bar: 酒吧 + izakaya: 居酒屋 + cafe: 咖啡馆 + bakery: 面包店 + convenience store: 便利店 + supermarket: 超市 + pharmacy: 药店 + theater: 剧院 + movie theater: 电影院 + workshop: 工作坊 + courtroom: 法庭 + park: 公园 + Trapeze: 吊架;秋千 + classroom: 教室 + botanical garden: 植物园 + amusement_park: 游乐园 + Disney_land: 迪士尼乐园 + arena: 竞技场 + wrestling_ring: 摔角场 + Auditorium: 礼堂 + concert: 音乐会 + Japanese_hotel: 日本旅馆 + jail_bars: 监狱酒吧 + in_the_movie_theatre: 在电影院里 + stage: 舞台 + harbor: 港口 + casino: 赌场 + billiard: 台球桌 + dungeon: 地牢 + grave: 坟墓 + graveyard: 墓地 + tombstone: 墓碑 + monolith: 巨大的石头物体 + rappelling: 拉平(悬挂) + building: 建筑 + architecture: 建筑 + magnificent_architecture: 建筑 + Skyscraper: 摩天楼 + east_asian_architecture: 东亚建筑 + cathedral: 大教堂 + chinese_style_loft: 中式阁楼 + traditional_chinese_room: 传统中式客房 + turret: 塔楼 + tower: 塔 + mosque: 清真寺 + reservoir: 水库 + railroad: 铁路 + railway: 铁路 + bridge: 桥 + under_bridge: 桥下 + remains: 废墟 + rubble_ruins: 废墟 + + - name: 城市 + color: rgba(159, 32, 240, .4) + tags: + city: 城市 + cityscape: 城市风景 + street: 街道 + downtown: 市中心 + crowd: 人群 + alley: 小巷 + in_main_street: 大道 + Intersection: 路口 + avenue: 大街 + lawn: 草坪 + road: 路 + path: 路径 + pavement: 路面 + road_sign: 路标 + traffic_cone: 路障 + lamppost: 路灯 + power_lines: 电线杆和电线 + fence: 栅栏 + railing: 栏杆 + bench: 长凳 + vending_machine: 自动贩卖机 + + - name: 室内 + color: rgba(159, 32, 240, .4) + tags: + indoor: 室内 + bathroom: 浴室 + toilet stall: 厕所隔间 + otaku room: 宅男房间 + cafeteria: 自助餐厅 + classroom: 教室 + clubroom: 俱乐部 + bedroom: 卧室 + kitchen: 厨房 + dormitory: 宿舍 + dungeon: 地库 + infirmary: 医务室 + stage: 舞台 + electrical room: 配电房 + server room: 服务器机房 + basement: 地下室 + art room: 美术室 + bathing: 浴室 + stairs: 楼梯 + greenhouse: 温室 + + - name: 地板 + color: rgba(159, 32, 240, .4) + tags: + floor: 地板 + tile_floor: 木质地板 + + - name: 家具 + color: rgba(159, 32, 240, .4) + tags: + bedroom: 家具 + tatami: 榻榻米 + bed: 床 + couch: 沙发 + kotatsu: 被炉 + fireplace: 壁炉 + window_: 窗 + sash: 窗扇 + curtains: 窗帘 + door: 门 + sliding_doors: 推拉门 + clothes_rack: 衣架 + air_conditioner: 空调 + table: 桌子 + school_desk: 课桌 + chair: 椅子 + armchair: 扶手椅 + lounge_chair: 躺椅 + beach_chair: 沙滩椅 + folding_chair: 折叠椅 + invisible_chair: 隐形椅子 + office_chair: 办公椅 + wheelchair: 轮椅 + + - name: 床上用品 + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: 床单 + mattress: 床垫;褥子 + futon: 日本床垫 + cushion: 坐垫 + carpet: 地毯 + pillow: 枕头 + dumpling_Hug_Pillow: 团子抱枕 + pillow_hug: 抱枕 + yes-no_pillow: Yes/No枕头 + stuffed_animal: 毛绒玩偶 + stuffed_bunny: 毛绒兔子 + koakuma: 小熊 + + - name: 浴室 + color: rgba(159, 32, 240, .4) + tags: + bathroom: 浴室 + bathtub,: 浴缸 + rubber_duck: 橡皮鸭 + shower_head: 淋浴喷头 + toilet: 马桶 + squat_toilet: 蹲便器 + soap: 肥皂 + tiles: 瓷砖 + +- name: 物品 + groups: + - name: 学习用品 + color: rgba(189, 182, 107, .4) + tags: + notebook: 笔记本 + paintbrush: 画笔 + pencil: 铅笔 + book: 书 + open_book: 翻开的书 + book_stack: 书摞 + bookshelf: 书架 + school_bag: 上学包(手提包 + backpack: 背包 + + - name: 数码设备 + color: rgba(189, 182, 107, .4) + tags: + computer: 电脑 + mouse: 鼠标 + cellphone: 手机 + Smartphones: 智能手机 + handheld_game_console_: 掌上游戏机 + nintendo_3ds: 任天堂3ds + nintendo_ds: 任天堂ds + nintendo_switch: 任天堂switch + buttons: 按钮 + power_lines: 电源线 + cable: 电缆 + + - name: 餐具 + color: rgba(189, 182, 107, .4) + tags: + pot: 锅 + teapot: 茶壶 + ladle: 长柄勺 + can: 罐子 + soda_can: 罐装饮料 + cup: 杯子 + plate: 盘子 + tray: 托盘 + bowl: 碗 + fork: 叉子 + chopsticks: 筷子 + spoon: 勺子 + drinking_glass: 水杯 + tumbler: 普通玻璃杯 + beer_mug: 啤酒杯 + gift_box: 礼物盒 + heart-shaped_box: 心形状的礼盒 + candle: 蜡烛 + + - name: 乐器 + color: rgba(189, 182, 107, .4) + tags: + music: 音乐 + guitar: 吉他 + piano: 钢琴 + cello: 大提琴 + playing_instrument: 演奏乐器 + wind_chime: 风铃 + + - name: 其它物品 + color: rgba(189, 182, 107, .4) + tags: + wristwatch: 手表 + folding_fan: 折扇 + paper_fan: 纸扇 + uchiwa: 团扇 + umbrella: 雨伞 + transparent_umbrella: 透明雨伞 + closed_umbrella: 封闭伞 + oil-paper_umbrella: 油纸伞 + Parasol: 遮阳伞 + basket: 篮子 + bouquet: 花束 + bucket: 桶 + pail: 桶 + camera: 相机 + gohei: 御币(驱邪布条) + lantern/lamp: 灯笼 + whip: 鞭 + riding_crop: 马鞭 + ofuda: 札符 + cane: 手杖 + wand: 魔杖 + magic: 魔术 + trading_card: 交易卡 + playing_card: 扑克牌 + Cassette: 磁带盒 + chess_piece: 棋子 + coin: 硬币 + copper: n.铜币 + hammer: 锤子 + microphone: 麦克风 + mimikaki: 掏耳勺 + sack: 麻袋 + scales: 秤 + chibi_inset: 赤壁插图 + damaged: 损坏 + diamond_(shape): 钻石(形状) + gourd: 葫芦 + holding_gift: 拿着礼物 + inlet: 入口 + key: 钥匙 + leash: 皮带 + Lever: 杠杆,操作杆 + molecule: 分子 + money: 钱 + Painting_(Object): 画作(物品 + photo_(object): 照片(物体) + sand: 沙子 + stubble: 茬 + trophy: 奖杯 + tube_top: 管顶 + water_bottle: 水瓶 + lotion: 防晒霜|身体乳 + lotion_bottle: 乳液瓶子 + + - name: 武器 + color: rgba(189, 182, 107, .4) + tags: + weapon: 武器 + weapon_on_back: 背上的武器 + weapon_over_shoulder: 肩上的武器 + huge_weapon: 大尺寸武器 + planted_weapon: 往地上插的武器 + broken_weapon: 破碎的武器 + planted_sword: 立剑(planted立 + sword: 刀 + scabbard: 刀鞘 + unsheathing: 出鞘 + katana: 武士刀 + saber_(weapon): 军刀(武器) + scythe: 镰刀 + nose_hatchet: 柴刀 + dagger: 匕首 + scissors: 剪刀 + axe: 斧头 + hatchet: 短斧 + stake: 棍子 + lance: 长矛 + trident: 三叉戟 + bow_(weapon): 弓 + arrow: 箭 + claw_(weapon): 爪(武器) + rifle,: 步枪 + gun: 枪 + handgun: 手枪 + thompson_submachine_gun: 汤普森冲锋枪 + magazine_(weapon): 弹匣(武器) + dynamite: 甘油炸药 + bomb: 炸弹 + track missiles: 跟踪导弹 + complex Trajectory: 轨迹拖尾 + tank: 坦克 + cannon: 大炮 + military_vehicle: 军用载具 + motorcycle: 摩托车 + ship: 船舶 + watercraft: 船舶 + car: 汽车 + machine: 机械 + machinery: 机械武装 + mechanical_arms: 机械臂 + mechanization: 机械化 + robot_ears: 机械耳 + robot_joints: 机械关节 + variable_fighter: 超时空要塞机体 + sorcerer's_sutra_scroll: 魔人经卷 + + - name: 食物 + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: 寿司卷 + apple: 苹果 + aubergine: 茄子 + burger: 汉堡 + cake: 蛋糕 + candy: 糖果 + candy_apple: 苹果糖 + candy_cane: 棒棒糖 + carrot: 胡萝卜 + cigarette: 香烟 + coffee: 咖啡 + cookie: 饼干 + cotton_candy_: 棉花糖 + cream: 奶油 + dango: 团子 + doughnut: 甜甜圈 + drink: 饮料 + egg: 鸡蛋 + fruit: 水果 + Gelatin: 明胶、布丁 + ice_cream: 冰激凌 + kafuu_chino: 卡夫奇诺 + makizushi: 海苔卷寿司 + meat: 肉 + noodles: 面条 + obento: 便当 + onigiri: 饭团 + pancake: 鬆餅 + pasties: 馅饼 + peach: 桃子 + ramen: 拉面 + sake: 日本清酒 + taiyaki: 鲷鱼烧 + tea: 茶 + teacup: 茶杯 + wagashi: 和果子 + wine: 葡萄酒 + jam: 果酱 + pocky: 百奇 + bottled_water: 瓶裝水 + sweet_potato: 甘薯 + sweets: 糖果 + food: 食物 + food_in_mouth: 嘴里有食物 + food_on_: 脸上有食物 + food_on_body: 身体上有食物 + food_print: 食物印花 + food_stand: 食品摊 + in_food: (角色)在食物里 + chips: 薯片 + potato_chips: 薯片 + telstar: 泰事达牌足球 + sundae: 圣代 + tempura: 天妇罗 + + - name: 动物 + color: rgba(189, 182, 107, .4) + tags: + reptile: 爬行动物 + crow: 乌鸦 + bird: 鸟 + penguin: 企鹅 + chick: 小鸡 + manjuu_(azur_lane): 蛮啾 + shell: 贝壳 + wriggle_nightbug: 蠕动夜虫 + dragonfly: 蜻蜓 + mammal: 哺乳动物 + wolf: 狼 + 扶桑花: 马 + whale: 鲸 + cat: 猫 + cat_teaser: 逗猫 + dog: 狗 + dog_tags: 狗牌 + fox: 狐狸 + bunny: 兔子 + snow_bunny: 雪兔 + stuffed_bunny: 兔子玩偶 + horse: 马 + cow: 牛 + dragon: 龙 + loong: 中国龙 + eastern_dragon: 东方龙 + snake: 蛇 + slime: 史莱姆 + bear: 熊 + panda: 熊猫 + teddy_bear: 泰迪熊 + tiger: 老虎 + bat: 蝙蝠 + hamster: 仓鼠 + mouse: 老鼠 + squirrel: 松鼠 + + - name: 植物 + color: rgba(189, 182, 107, .4) + tags: + plant: 植物 + flower: 花 + vase: 花瓶 + bouquet: 花束 + flower_bloom: 花盛开 + plum_blossom: 梅花 + cherry_blossoms: 樱花 + wisteria: 紫藤 + hibiscus: 芙蓉花 + hydrangea: 绣球花 + rose: 玫瑰 + spider_lily: 彼岸花 + lily: 百合花 + lotus: 莲花 + bamboo: 竹 + entangled_plants: 缠结型植物 + orchid: 兰花 + chrysanthemum: 菊花 + narcissu: 水仙 + tree: 树 + branch: 树枝 + forest: 森林 + pine_tree: 松树 + palm_tree: 棕榈树 + maple_tree: 枫树 + bush/shrub,: 灌木 + christmas_tree: 圣诞树 + maple_leaf: 枫叶 + pumpkin: 南瓜 + jack-o'-lantern: 南瓜灯 + spring_onion: 大葱 + +- name: 镜头 + groups: + - name: 镜头 + color: rgba(99, 201, 2, .4) + tags: + panorama: 全景 + landscape: 风景镜头(远景) + wide_shot: 全景镜头(广角镜头) + medium_shot: 中景镜头 + mid_shot: 中景镜头 + full_shot: 全身像 + bust: 半身像 + upper_body: 上半身 + lower_body: 下半身 + cowboy_shot: 上半身+上半大腿(牛仔镜头) + portrait: 肖像画(脸+肩+偶尔再加胸) + profile: 侧面肖像画(portrait的侧脸版) + + - name: 特写镜头 + color: rgba(99, 201, 2, .4) + tags: + close-up: 特写镜头 + macro_shot: 微距镜头 + inset: 插入其他镜头或图片 + cross-section: 剖面图 + x-ray: X射线 + solo_focus: 聚焦在单个人物(适合复杂场景) + xx_focus: 聚焦在xx上 + face_focus: 聚焦在面部 + eyes_focus: 聚焦在眼睛 + foot_focus: 聚焦在脚上 + hip_focus: 聚焦在臀部 + ass_focus: 聚焦在屁股上 + vehicle_focus: 聚焦在载具上 + between_legs: (强调)两腿之间 + between_breasts: (突出)胸部 + between_fingers: (突出)指间 + peeking: 偷窥 + peeking_out: 偷窥(的姿态) + peeping: 偷窥(强调视角) + midriff_peek: 肚脐偷看 + armpit_peek: 腋窝偷看 + pussy_peek: 浦西偷看 + panty_peek: 内裤偷看 + pantyshot: 内裤走光 + caught: 被抓现行 + + - name: 其他构图 + color: rgba(99, 201, 2, .4) + tags: + aerial: 空中 + turn_one's_back: 转身 + upskirt: 裙底视角 + phone_screen: 手机屏幕 + multiple_views: 多视角分解 + mirror selfie: 对镜自拍 + three-quarter view: 3/4视角 + + - name: 镜头角度 + color: rgba(99, 201, 2, .4) + tags: + front view: 正面视角 + from_side: 侧面视角 + from_above: 从上方↘ + from_below: 从下方↗ + from_outside: 由室外向室内 + from_back: 后背视角 + from behind: 后背视角 + dynamic_angle: 动态角度 + cinematic_angle: 电影角度 + dutch angle: 倾斜角度 + foreshortening: 透视法 + fisheye: 远景透视画法 + + - name: 效果 + color: rgba(99, 201, 2, .4) + tags: + depth of field: 景深(协调人景) + lens_flare: 镜头光晕 + motion_blur: 运动导致的模糊 + motion_lines: 体现运动的线 + speed_lines: 速度线 + bokeh: 焦散 + chromatic_aberration: 色差 + overexposure: 过曝 + contour_deepening: 等高线强化 + + - name: 主角动作 + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: 看向观众 + eye-contact: 眼神接触 + eyeball: 盯着看 + stare: 凝视 + looking_back: 回眸 + gradient: 人物倾斜 + looking_down: 人物视角向下看↘ + looking_up: 人物视角抬头看↗ + facing_away: 面向别处 + looking_to_the_side: 看向侧面 + looking_away: 看着别处 + looking_ahead: 展望未来 + looking_afar: 遥望 + looking_outside: 向外看 + head_tilt: 歪头 + head_down: 低头 + sideways_glance: 轻轻向侧面瞥 + upshirt: 从衬衫下方瞥 + upshorts: 从裙底瞥 + looking_at_another: 看着另一个 + looking_at_phone: 看手机 + looking_at_animal: 看着动物 + looking_at_mirror: 照镜子 + looking_at_hand: 看着手 + looking_at_hands: 看着双手 + looking_at_food: 看食物 + looking_at_screen: 看着屏幕 + +- name: 汉服 + groups: + - name: "唐风:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: 唐风 + + - name: 上杉 + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: 橙色上杉 + red upper shan: 红色上杉 + green upper shan: 绿色上杉 + blue upper shan: 蓝色上杉 + pink upper shan: 粉色上杉 + yellow upper shan: 黄色上杉 + white upper shan: 白色上杉 + light blue upper shan: 淡蓝上杉 + light green upper shan: 浅绿上杉 + light red upper shan: 浅红上杉 + cyan blue upper shan: 青蓝上杉 + light purple upper shan: 浅紫上杉 + black with blue upper shan: 黑蓝上杉 + white with orange upper shan: 橙白上杉 + pink with black upper shan: 粉黑上杉 + + - name: 长上杉 + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: 橙色 + red long upper shan: 红色 + green long upper shan: 绿色 + blue long upper shan: 蓝色 + pink long upper shan: 粉色 + yellow long upper shan: 黄色 + white long upper shan: 白色 + light blue long upper shan: 淡蓝 + light green long upper shan: 浅绿 + light red long upper shan: 浅红 + cyan blue long upper shan: 青蓝 + light purple long upper shan: 浅紫 + black with blue long upper shan: 黑蓝 + white with orange long upper shan: 橙白 + pink with black long upper shan: 粉黑 + + - name: 齐胸破裙 + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: 白色破裙 + red chest po skirt: 红色破裙 + green chest po skirt: 绿色破裙 + blue chest po skirt: 蓝色破裙 + pink chest po skirt: 粉色破裙 + purple chest po skirt: 紫色破裙 + multicolour chest po skirt: 彩色破裙 + purple with white chest po skirt: 紫白破裙 + white with yellow chest po skirt: 黄白破裙 + blue with white chest po skirt: 天蓝破裙 + orange with white chest po skirt: 橙白破裙 + green with white chest po skirt: 灰豆绿破裙 + light orange with white chest po skirt: 淡黄白破裙 + pink with white chest po skirt: 粉白破裙 + white with pink chest po skirt: 白偏粉破裙 + + - name: 齐胸褶裙 + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: 白色褶裙 + red chest pleated skirt: 红色褶裙 + green chest pleated skirt: 绿色褶裙 + blue chest pleated skirt: 蓝色褶裙 + pink chest pleated skirt: 粉色褶裙 + purple chest pleated skirt: 紫色褶裙 + multicolour chest pleated skirt: 彩色褶裙 + purple with white chest pleated skirt: 紫白褶裙 + white with yellow chest pleated skirt: 黄白褶裙 + blue with white chest pleated skirt: 天蓝褶裙 + orange with white chest pleated skirt: 橙白褶裙 + green with white chest pleated skirt: 灰豆绿褶裙 + light orange with white chest pleated skirt: 淡黄白褶裙 + pink with white chest pleated skirt: 粉白褶裙 + white with pink chest pleated skirt: 白偏粉褶裙 + + - name: 系带 + color: rgba(178, 33, 34, .4) + tags: + green waistband: 绿色系带 + yellow waistband: 黄色系带 + red waistband: 红色系带 + pink waistband: 粉色系带 + orange waistband: 橙色系带 + light blue waistband: 淡蓝系带 + light green waistband: 绿白系带 + green with yellow waistband: 黄绿系带 + purple with white waistband: 紫白系带 + red with white waistband: 红白系带 + red with black waistband: 红黑系带 + yellow with white waistband: 黄白系带 + + - name: 披帛 + color: rgba(178, 33, 34, .4) + tags: + white pibo: 白色披帛 + orange pibo: 橙色披帛 + black pibo: 黑色披帛 + pink pibo: 粉色披帛 + red pibo: 红色披帛 + purple pibo: 紫色披帛 + light green pibo: 浅绿披帛 + white with yellow pibo: 黄白披帛 + + - type: wrap + + - name: "宋风:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: 宋风 + + - name: 短衫 + color: rgba(178, 33, 34, .4) + tags: + purple short shan: 紫色短杉 + red short shan: 红色短杉 + green short shan: 绿色短杉 + blue short shan: 蓝色短杉 + pink short shan: 粉色短杉 + yellow short shan: 黄色短杉 + white short shan: 白色短杉 + light blue short shan: 淡蓝短杉 + light green short shan: 浅绿短杉 + light red short shan: 浅红短杉 + cyan blue short shan: 青蓝短杉 + light purple short shan: 浅紫短杉 + black with blue short shan: 黑蓝短杉 + white with yellow short shan: 黄白短杉 + light yellow with green with white short shan: 浅黄白绿短 + + - name: 长衫 + color: rgba(178, 33, 34, .4) + tags: + purple long shan: 紫色长杉 + red long shan: 红色长杉 + green long shan: 绿色长杉 + blue long shan: 蓝色长杉 + pink long shan: 粉色长杉 + yellow long shan: 黄色长杉 + white long shan: 白色长杉 + light blue long shan: 淡蓝长杉 + light green long shan: 浅绿长杉 + light red long shan: 浅红长杉 + cyan blue long shan: 青蓝长杉 + light purple long shan: 浅紫长杉 + black with blue long shan: 黑蓝长杉 + white with yellow long shan: 黄白长杉 + light yellow with green with white long shan: 浅黄白绿长 + + - name: 百褶裙 + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: 白裙 + red pleated skirt: 红裙 + green pleated skirt: 绿裙 + blue pleated skirt: 蓝裙 + pink pleated skirt: 粉裙 + light blue pleated skirt: 浅蓝裙 + white golden pleated skirt: 白金裙 + gradient green pleated skirt: 渐变绿裙 + translucent white pleated skirt: 半透白裙 + red cyan gradient pleated skirt: 红青渐变 + red green gradient pleated skirt: 红绿渐变 + green with white pleated skirt: 白绿相间 + light yellow with green with white pleated skirt: 浅黄绿相间 + + - name: 宋抹 + color: rgba(178, 33, 34, .4) + tags: + orange songmo: 橙色宋抹 + red songmo: 红色宋抹 + green songmo: 绿色宋抹 + blue songmo: 蓝色宋抹 + pink songmo: 粉色宋抹 + yellow songmo: 黄色宋抹 + white songmo: 白色宋抹 + purple songmo: 紫色宋抹 + green floral songmo: 绿碎花宋抹 + purple floral songmo: 紫碎花宋抹 + cyan floral songmo: 青碎花宋抹 + + - type: wrap + + - name: "明风:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: 明风 + + - name: 上衣 + color: rgba(178, 33, 34, .4) + tags: + short coat: 短袄 + long coat: 长袄 + + - name: 裙子 + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: 马面裙 + + - name: 领子 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 交领 + round collar: 圆领 + standing collar: 立领 + square collar: 方领 + + - name: 装饰 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 云肩 + embroidery: 刺绣 + woven gold: 织金 + makeup flower: 妆花 + bufu: 补服 + +- name: 魔法系 + groups: + - name: 魔法1.0 + color: + tags: + ((water drops)),wet clothes,((beautiful detailed water)),((floating)),dynamic angle: 水魔法 + beautiful detailed glow, (detailed ice), beautiful detailed water: 冰魔法 + beautiful detailed glow,detailed ice,beautiful detailed water,(floating palaces:1.2),(ice crystal texture wings),(Iridescence and rainbow hair:2.5): 冰系改 + beautiful detailed glow,detailed ice,beautiful detailed water, (floating palaces:1.3),(((ice crystal texture wings))): 星冰乐 + ((detailed beautiful snow forest with trees)), ((snowflakes)), floating: 森林冰 + (((crystals texture Hair))),((beautiful detailed glass hair)),((glass shaped texture hand)),((crystallize texture body)),gem body,hands as clear as jewels,crystallization of clothes,((crystals texture skin)),sparkle, lens flare, light leaks,broken glass,detailed glass shaped clothes,beautiful detailed gemstone sky, gemstone sea, crystals texture flowers,((detailed crystallized clothing)): 结晶法 + beautiful detailed glow,((flames of war)),(((nuclear explosion behide))): 核爆法 + ((breeze)), flying splashes, flying petals, wind: 风魔法 + ((surrounded by heavy floating sand flow and floating sharp stones)),((((ink)))),((illustration)),((watercolor)): 流沙法 + (detailed light), ((lightning in hand)),lightning surrounds,(((lightning chain))): 雷电法 + (sunlight),(angel),dynamic angle, floating, wing, halo, floating white silk,(Holy Light),silver stars: 圣光法 + beautiful detailed pampas grass field, open hakama, surrounded by floating sakura, yellow full moon, beautiful detailed dark midnight sky, messy white long hair: 苇名法 + beautiful and delicate water, the finest grass, very delicate light, nature, painting, water spray, breeze, flowers and grass meadow, near the water edge, (sunset, starry sky in a circle), randomly distributed clouds, river, splashing water, falling petals: 自然法 + (detailed light) , feather, leaves, nature, (sunlight), river, (forest),(bloom): 森林法 + floating and rainbow long hair,Iridescence and rainbow, beautiful detailed starry sky: 虹彩法 + chain ring, chain storm, dark chain,((wholeblack bloomer)), darkside, night, deep dark, darkness, ((dark clouds)),((ruins)),shadow, death garden: 暗锁法 + beautiful detailed glow, floating ashes, beautiful and detailed explosion, red moon, fire, fire cloud, wings on fire, a cloudy sky, smoke of gunpowder, burning, black dress, dove of peace, (floating cloud:1.2): 火烧云 + beautiful detailed glow, detailed ice, beautiful detailed water, (magic circle:1.2), (floating palaces:1.3): 城堡法 + (water bloom), (delicate glow), (breeze), long Flowers meadow,(((sunset)), (less stars form a circle), randomly distributed clouds, (rivers), (willows with branches falling into the water): 黄昏法 + ((colorful bubble)),(floating),detailed light: 泡泡法 + ((rose)), (vine), cage, bandage, red rope, (detail light), falling rose petals: 蔷薇法 + (starry tornado:1.4), starry Nebula, beautiful detailed sky: 星空法 + ((moon)), starry sky, (lighting particle), fog, snow,(bloom): 月亮法 + beautiful detailed glow, detailed ice, beautiful detailed water, (cold full moon), snowflake, (floating cloud:1.2): 雪月法 + ((burning forest)), spark, light leaks, burning sky, flame, flames burning around, (flying sparks): 森火法 + ((destroyed)),explosion, buildings in disarray, The residual eaves DuanBi, cumulus, mouldy, floating, wind, Dead end machine,(broken robot),(Mechanical robot girl), in the rubble of a devastated city: 废土法 + mecha clothes, robot girl, sliver bodysuit,((sliver)) and (broken) body: 战甲法 + Extremely gorgeous metal style, Metal crown with ornate stripes, Various metals background, Sputtered molten iron, floating hair, Hair like melted metal, Clothes made of silver, Clothes with gold lace, flowing gold and silver, everything flowing and melt, flowing iron, flowing silver, lace flowing and melt: 黄金法 + mecha clothes, robot girl: 机娘法 + ink,(((bone))), (((ribs))), rose, black hair, blue eyes, greyscale, no shadow, simple background, bright skin: 死灵法 + (((gorgeous crystal armor))),(((crystal wings))),((altocumulus)),(clear_sky),(snow mountain),((flowery flowers)),(flowery bubbles),cloud map plane, crystal, crystal poppies,Brilliant light, thick_coating, glass tint,(watercolor): 水晶法 + ((an extremely delicate and beautiful)),floating, (detailed wet clothes), (detailed light),feather, nature, (sunlight), river, floating palace, beautiful and delicate water,(bloom),(shine): 水森法 + (blue spark),(red and blue hair),blue eyes, burning sky,flame,Rainbow in the sky,((Flames burning ice)),(((fire butterflies))),(((ice crystal texture wings))),(Flying sparks),(detailed ice),((a lot of luminous ice crystals)),((burning feathers)),(feathers made of ice),(frozen feathers),(((ice and fire together))): 冰火法 + (anger), dragon horns, (silver armor), metal, complex pattern, cape, indifference: 龙骑士 + ((full body)),(helpless),tear, crying,(((((falling from the sky))))),((Weathering With You)),((falling)),((face towards the sky)),(hair flows upwards),((disheveled hair)),(1 girl), floating, beautiful detailed sky: 坠落法 + ((underwater)),(beautiful detailed water),((coral)),dynamic angle, floating,(detailed light),floating hair,(splash),((fishes)),leaves dress, feather, nature,(sunlight),(underwater forest),(bloom),(detailed glow),drenched, seaweed, fish,(((Tyndall effect))): 水下法 + (extremely detailed CG unity 8k wallpaper),(((masterpiece))), (((best quality))), ((ultra-detailed)), (best illustration),(best shadow), ((an extremely delicate and beautiful)),dynamic angle,floating, fairyland,dynamic angle,sea of flowers,beautiful detailed garden,wind,classic,spring, (detailed light),feather, nature, (sunlight), river, forest,(((floating palace))),((the best building)),beautiful and delicate water,(painting),(sketch),(bloom),(shine): 秘境法 + (((masterpiece))), ((the best quality, super fine illustrations, beautiful and delicate water)), ((very delicate light)), ((nature, painting)), ((fine lighting, more transparent stars, high-quality snowflakes, high-quality mountains, very fine 8KCG wallpapers)), (plateau), (((snow mountain))), sunrise, randomly distributed clouds, (snow field), cliff, ((rotating star sky)), ((lake in mountain stream)), luminous particles: 摄影法 + 1980s (style),simple background, retro artstyle: 摩登法 + (white hair), red long hair, red eyes, (full body), (((with sword))), angry face, (beautiful detailed eyes), Blood drop,Blood fog, floating hair, disheveled hair, Splashing blood,(Bloodstain): 血魔法 + ((dragon)), ((dragon background)): 唤龙术 + hair fluttering in the wind,((mechanical arm armor)),((mechanical body armor)),riding motor, bodysuit,((ruins of city in war, fire, burning cars, burning buildings)),air force fleet in the sky: 战姬法 + mecha clothes, robot girl, sliver bodysuit, dragon wings, ((a dragon stands behind the girl)), beautiful detailed sliver dragon armor: 龙机法 + ((Beautiful butterflies in detail)),((Beautiful stars in detail)),(((halter dress ))),particle,(Starry sky in beautiful detail),(Hazy fog),(Ruins of beautiful details),(((Standing on the surface of the sea))): 星蝶术 + blonde wavy hair, (shiny long hair), ((Gothic Lolita)), blue white skirt, ((short skirt)), black Headdress, bowknot, (((hair ornament))), (hair flower), Lace, cross-laced footwear, ribbon-trimmed sleeves, building architecture, ((gothic architecture)), starry sky, outdoors, church, (castle): 学院法 + walking, waves, wind,(((glistening light of waves))),(detailed sunset glow),(floating flow),((coral)),(Luminous),coast,(floating colorful bubbles),beautiful detailed sky,(fluorescence),detailed shadow,(conch),beautiful detailed water, starfish, meteor, rainbow,(seabirds),(glinting stars), (glowworm),(splash),detailed cloud, shell,(fireworks): 星霞海 + beautiful detailed sky, night, stars, (red plum blossom),((winter)),(((snowflakes))), ((red and white flowers)),(starry sky),(sitting),((colorful)),scenery, lantern,(starfall): 冬雪法 + + - name: 魔法1.5 + color: + tags: + ((((melt)))),(((((black and white melt))))),(((wear Black and white Taoist robes))),((((gold and silver lace)))),(((gold and silver lace lace))),(((flowing ((black)) and white background))),extremely detailed gorgeous tiara: 万物熔炉 + Floating black ashes, Beautiful and detailed black, red moon, ((The black clouds)), (black Wings) , a black cloudy sky, burning, black dress, ((Black fog)), Red eyes, (black smoke), ((Black feathers floating in the air)),bat, (floating black cloud:1.5),: 暗鸦法 + dynamic angle, finely detail, (bloom), (shine), glinting stars, ((((best detailed fireworks)))), ((((depth of field)))), (((hanabi))),(((backlight))),: 花火基础 + stars in the eyes, messy floating hair, colored inner hair, Starry sky adorns hair, (lots of big colorful Bubble), (pearl), (Galaxy), depth of field: 星之彩 + stars in the eyes, messy floating hair, colored inner hair, Starry sky adorns hair, depth of field: 沉入星海 + dynamic angle, detailed wet clothes, blank stare, overexplosure, floating, black long straight, red eyes, aqua eyes, gradient eyes, ((blood)), white dress, frills, ((expressionless)), extremely beautiful detailed water, ((lying on the lake)), (bloodred water:1.5), (red background:1.3): 百溺法 + ((messy hair)),(grassland),(yellow eyes),incredibly absurdres,(gold hair),floating hair,Large number of environments,the medieval ,grace,prospect,water eyes,wind,breeze,god ray,lawn,Mountains and lakes in the distance,The sun shines through the trees,A vast expanse of grassland: 辉煌阳光法 + Starry sky adorns hair, sparkling anime eyes,beautiful detailed stars,blighting stars,emerging dark purple across with white hair,multicolored hair,beautiful detailed sky, beautiful detailed water, cinematic lighting, dramatic angle,: 星鬓法 + There are many scattered luminous petals,Hidden in the light yellow flowers,Depth of field,Many flying drops of water,Many scattered leaves,branch ,angle ,contour deepening,cinematic angle: 森罗法 + sunlight, extremely light, extremely clothes, Holy Light, dynamic angle, Light particle, very long hair, white hair, yellow eyes, glowing eyes, expressionless, ((light smile)), ((((white Tulle skirt)))), white silk, looking at viewer, angel wings, large wings, multiple wings, angel halo, (((starry sky))), dusk sky, Floating light spot, Lots of feathers: 星天使 + blonde hair, yellow eyes, white skin, mature female, sunrise, golden sky, magnificent architecture, beautiful detailed sky, overexposure, delicate gold metal decorations: 黄金律 + mechanical prosthesis,mecha coverage,emerging dark purple across with white hair,fluorescent purple,cool movement,rose red eyes,beatiful detailed cyberpunk city, hd semirealistic anime cg concept art digital painting: 机械姬 + (incredibly absurdres), (highly detailed beautiful fishtail:1.6), (((human hands))), (the lower body is a fish:1.9)AND(no human thigh:1.2), seaweed, (full body), (white seashell), (curved and slender fish tail), (the lower body is bare:1.1), {beautiful tailfin}, ((underwater)), (illustration), detailed water, ((fishes)), (floating), watercolor (medium), (small whirlpool), ((The sensation of water flowing)), (detailed scales on a mermaid): 人鱼法 + Blood Mist, background Urban rooftop,despair,Blood Cherry Blossom,torn clothes,crying with eyes open,solo,Blood Rain,bandages,Gunpowder smoke,beautiful deatailed shadow, Splashing blood,dust,tyndall effect: 末日 + Space opera,Space port,robot arm,elbow gloves,night,glisten,stare,cyberpunk,((((citylight)))),science fiction,bodysuit,Mechanical armor headdress,(bare shoulders): 碎梦 + dynamic angle,rainbow hair,detailed cute anime face,((loli)),flower,cry,water,corrugated,flowers tire,broken glass,(broken screen),atlantis,transparent glass: 幻碎梦 + (white hair),(((red streaked hair))), red eyes, (((full body))),(red hair), (((((Hold a red sword))))), (angry face),((Blood drop)),((Blood fog)),light shafts, soft focus, ((Splashing blood))),Long hair,((Bloodstain)),Fighting stance,{{{{{watercolor (medium)}}}},(((masterpiece))),((white clock)),((ultradetailed)),((Covered in blood)),flowing hair,Exquisite Flame,dynamic angle, floating, (shine), extremely delicate and beautiful girls, bright skin, lying red petals,Holy lighting: 血改法 + dramatic shadows,black and white,monochrome,{{comic}},cross necklace,Cassock: 留影术 + ((ink)),(water color),bloom effect,detailed beautiful grassland with petal,flower,butterfly,necklace,smile,petal,(((surrounded by heavy floating petal flow))): 飘花法 diff --git a/group_tags/zh_HK.yaml b/group_tags/zh_HK.yaml new file mode 100644 index 0000000000000000000000000000000000000000..97cc630661096ce8e1b93a9900145f19e3c13a10 --- /dev/null +++ b/group_tags/zh_HK.yaml @@ -0,0 +1,4508 @@ +# 👍提示詞整合來源 路过银河(知乎)、未知作者(Google Drive)、互聯網等等,感謝這些作者的無私奉獻! +# +# ⚠️建議不要修改本檔案內容,因為本檔案作者可能會不定期更新,如果修改了本檔案,可能會導致更新時出現衝突。 +# ⚠️如需要自定義關鍵詞組,請複製本檔案,重命名為 custom.yaml,然後在 custom.yaml 中修改。 +# ⚠️插件將優先讀取 custom.yaml 檔案,如果 custom.yaml 檔案不存在,則讀取本檔案。 +# +# ⚠️如果只想要再當前檔案前面追加自己的內容,可以建立 prepend.yaml 檔案。 +# ⚠️如果只想要再當前檔案後面追加自己的內容,可以建立 append.yaml 檔案。 +# ⚠️custom.yaml: 覆蓋當前檔案 +# ⚠️prepend.yaml: 追加到當前檔案前面 +# ⚠️append.yaml: 追加到當前檔案後面 +# +# ⚠️建議使用專業的文本編輯器(如 Visual Studio Code)編輯本檔案,以避免編碼和格式錯誤的問題。 +# ⚠️請勿使用 Windows 自帶的記事本編輯本檔案。 +# ⚠️修改後可以前往 https://www.yamllint.com/ 檢查內容格式是否正確。 + +# 內容格式: +# - name: 一級分類名 +# groups: 二級分類列表 +# - name: 二級分類名 +# color: 關鍵詞文本預設顏色(可以為空),CSS顏色代碼,例如:#ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: 關鍵詞列表 +# - 英文關鍵詞: 本地化翻譯 +# - 英文關鍵詞: 本地化翻譯 +# ... + +# 本內容的本地化翻譯均來自機翻,可能存在不準確的情況,如有發現,歡迎前往 Github 提交 PR 進行修正。 +# 如有分類錯誤、關鍵詞錯誤、關鍵詞翻譯錯誤等問題,歡迎前往 Github 提交 Issue 進行反饋。 + +- name: 人物 + groups: + - name: 對象 + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1女孩 + 1boy: 1男孩 + 2girls: 2女孩 + 2boys: 2男孩 + 3girls: 3女孩 + 3boys: 3男孩 + girl: 女孩 + boy: 男孩 + solo: 單人 + multiple_girls: 多個女孩 + little_girl: 小女孩 + little_boy: 小男孩 + shota: 正太 + loli: 蘿莉 + kawaii: 可愛 + mesugaki: 雌小鬼 + adorable_girl: 可愛的女孩 + bishoujo: 美少女 + gyaru: 辣妹 + sisters: 姐妹 + ojousama: 大小姐 + female: 女性 + mature_female: 成熟女性 + mature: 成熟 + female_pervert: 痴女 + male: 男性 + milf: 熟女 + otoko_no_ko: 偽娘 + crossdressing: 男扮女裝 + + - name: 身分 + color: rgba(255, 123, 2, .4) + tags: + lifeguard: 救生員 + boxer: 拳擊手 + scientist: 科學家 + athletes: 運動員 + office lady: 職場女性 + monk: 和尚 + crobat: 雜技演員 + nun: 修女 + nurse: 護士 + stewardess: 空姐 + student: 學生 + waitress: 女服務員 + teacher: 老師 + racer: 賽車手 + police: 警察 + soldier: 士兵 + cheerleader: 啦啦隊 + actor: 男演員 + actress: 女演員 + spy: 間諜 + agent: 特工 + assassin: 刺客 + poet: 詩人 + samurai: 日本武士 + dancing girl: 舞女 + motorcyclist: 摩托車手 + hacker: 駭客 + magician: 魔術師 + detective: 偵探 + doll: 人偶 + maid: 女僕 + pilot: 飛行員 + diver: 潛水員 + bar censor: 酒吧審查員 + missionary: 傳教士 + firefighter: 消防員 + goalkeeper: 守門員 + chef: 廚師 + astronaut: 太空人 + cashier: 收銀員 + mailman: 郵差 + barista: 咖啡師 + the hermit: 隱士 + makihitsuji: 牧羊人 + office_lady: 辦公室小姐 + race_queen: 賽車女郎 + queen: 女王 + doctor: 醫生 + knight: 騎士 + housemaid: 女僕 + dancer: 舞者 + ballerina: 芭蕾舞演員 + gym_leader: 體操教練 + trap: 偽娘 + female: 女人 + harem: 後宮 + idol: 偶像 + male: 男人 + priest: 牧師 + cleric: 神職人員(基督教) + wa_maid: 和風女僕 + yaoi: 搞基 + yuri: 百合 + albino: 白化病患者 + amputee: 截肢者 + + - name: 二次元角色 + color: rgba(255, 123, 2, .4) + tags: + pokemon: 寶可夢 + teddy bear: 泰迪熊 + mario: 瑪利歐 + pikachu: 皮卡丘 + neon genesis evangelion: 新世紀福音戰士 + hatsune miku: 初音未來 + harry potter: 哈利波特 + doraemon: 多啦A夢 + saint seiya: 聖鬥士星矢 + gojou satoru: 五條悟 + avengers: 復仇者聯盟 + mazinger: 神奇女俠 + captain america: 美國隊長 + crayon shin-chan: 蠟筆小新 + slam dunk: 灌籃高手 + sun wukong: 孫悟空 + witch: 女巫 + miko: 巫女 + ninja: 忍者 + vampire: 吸血鬼 + knight: 騎士 + magical_girl: 魔法少女 + orc: 半獸人 + druid: 德魯伊 + elf: 妖精 + fairy: 小精靈 + furry: 獸人 + mermaid: 美人魚 + kamen rider: 假面騎士 + magister: 魔導師 + spider-man: 蜘蛛俠 + santa alter: 聖誕老人 + monster_girl: 人外娘 + cat_girl: 貓娘 + dog_girl: 犬娘 + fox_girl: 狐娘 + kitsune: 狐妖 + kyuubi: 九尾|九尾狐 + raccoon_girl: 浣熊娘 + wolf_girl: 狼女孩 + bunny_girl: 兔娘 + horse_girl: 馬娘 + cow_girl: 牛娘 + dragon_girl: 龍娘 + centaur: 半人馬 + slime_musume: 史萊姆娘 + spider_girl: 蜘蛛娘 + dominatrix: 女王(SM中) + sailor_senshi: 美少女戰士 + mecha: 機甲 + mecha_musume: 機甲娘 + humanoid_robot_: 類人機器人 + cyborg: 半機械人 + angel: 天使 + devil: 魔鬼 + dark_elf: 暗精靈 + imp: 小惡魔 + succubus: 魅魔 + giantess: 女巨人 + minigirl: 迷你女孩 + monster: 怪物 + multiple girls: 魔幻少女 + no humans: 非人 + + - name: 年齡 + color: rgba(255, 123, 2, .4) + tags: + toddler: 幼童 + kindergartener: 幼稚園生 + child: 兒童 + underage: 未成年 + teenager: 青少年(13-19) + teen: 青少年(13-19) + early teen: 青少年早期(11-15) + adult: 成年人 + elder: 老人 + old: 老年 + loli: 蘿莉 + shota: 正太 + + - name: 皮膚 + color: rgba(255, 123, 2, .4) + tags: + white_skin: 白皮膚 + pale_skin: 蒼白的皮膚 + fair_skin: 白皙的皮膚 + brown_skin: 棕色皮膚 + deep_skin: 深色皮膚 + dark_skin: 黑皮膚 + black_skin: 黑皮膚 + shiny_skin: 有光澤的皮膚 + white_marble_glowing_skin: 白色大理石發光皮膚 + tattoo: 紋身 + tan: 曬黑 + tanlines: 曬痕 + oil: 油性 + + - name: 身材 + color: rgba(255, 123, 2, .4) + tags: + skinny: 骨感 + plump: 豐滿 + curvy: 曲線玲瓏 + gyaru: 辣妹(日本太妹) + pregnant: 懷孕 + fat: 肥胖 + thin: 瘦 + slender: 苗條 + glamor: 魅力 + tall: 高大 + petite: 嬌小 + chibi: 萌萌 + muscular: 肌肉 + + - name: 臉型 + color: rgba(255, 123, 2, .4) + tags: + slender face: 瘦臉 + round face: 圓臉 + oval face: 鵝蛋臉 + baby face: 娃娃臉 + inverted triangle face: 倒三角臉 + heart shaped face: 心形臉 + diamond face: 菱形臉 + square face: 方臉 + long face: 長臉 + triangular face: 三角臉 + + - name: 頭髮 + color: rgba(255, 123, 2, .4) + tags: + white hair: 白色頭髮 + blonde hair: 金色頭髮 + silver hair: 銀色頭髮 + grey hair: 灰色頭髮 + purple hair: 紫色頭髮 + red hair: 紅色頭髮 + yellow hair: 黃色頭髮 + green hair: 綠色頭髮 + blue hair: 藍色頭髮 + black hair: 黑色頭髮 + brown hair: 棕色頭髮 + straight_hair: 直髮 + short hair: 短髮 + curly hair: 捲髮 + long hair: 長髮 + pony-tail: 馬尾 + bunches: 雙馬尾 + streaked hair: 挑染 + grey gradient hair: 灰色漸層 + light brown hair: 亮棕 + two-tone hair: 雙色 + multicolored hair: 多色 + high ponytail: 高馬尾 + twintails: 雙馬尾 + braided ponytail: 編馬尾 + ponytail: 馬尾辮 + short ponytail: 短馬尾 + twin braids: 雙辮子 + medium hair: 中髮 + very long hair: 超長髮 + braided bangs: 辮子劉海 + swept bangs: 側掃劉海 + hair between eyes: 眼間頭髮 + bob cut: 妹妹頭 + hime cut: 公主頭 + crossed bangs: 交叉劉海 + bangs: 劉海 + blunt bangs: 齊劉海 + air bangs: 空氣劉海 + hair wings: 翼狀頭髮 + long bangs: 長劉海 + side_blunt_bangs: 側面空氣劉海 + centre parting bangs: 中分劉海 + asymmetric bangs: 不對稱劉海 + disheveled hair: 蓬鬆 + wavy hair: 波浪形頭髮 + hair in takes: 收攏 + hair pink flowers: 粉色花 + ahoge: 呆毛 + antenna hair: 多根呆毛 + Side ponytail: 側馬尾 + forehead: 額頭 + drill hair: 鑽頭捲公主捲 + hair bun: 包子頭 + double bun: 兩個包子頭 + messy hair: 凌亂髮型 + hair_flaps: 發翼 + + - name: 面部 + color: rgba(255, 123, 2, .4) + tags: + makeup: 化妝 + fundoshi: 粉底 + eyeshadow: 眼影 + lipstick: 口紅 + mascara: 睫毛膏 + long_eyelashes: 長睫毛 + red_lips_: 紅唇 + facepaint: 面部塗裝 + lipgloss: 唇彩 + colored_eyelashes: 彩色睫毛 + blush: 臉紅 + light_blush: 淡淡的腮紅 + anime_style_blush: 動畫式臉紅 + nose_blush: 鼻腮紅 + nosebleed: 鼻血 + bruise_on_face: 臉上有瘀傷 + facial_mark: 面部標記 + forehead_mark: 額頭標記 + anger_vein: 頭部憤怒符號 + mole: 痣 + mole_under_eye: 眼睛下方的痣 + freckles: 雀斑 + food_on_face: 食物在臉上 + rice_on_face: 飯在臉上 + cream_on_face: 奶油在臉上 + mustache: 小鬍子 + goatee: 山羊鬍 + whisker_markings: 鬍鬚斑紋 + scar: 疤痕 + scar_across_eye: 穿過眼睛的疤痕 + smoking_pipe: 煙斗 + tattoo: 紋身 + + - name: 耳朵 + color: rgba(255, 123, 2, .4) + tags: + elf ears: 精靈耳朵 + fake animal ears: 動物耳朵 + cat ears: 貓耳朵 + dog ears: 狗耳朵 + fox ears: 狐狸耳朵 + bunny ears: 兔子耳朵 + bear ears: 熊耳朵 + wolf ears: 狼耳朵 + horse ears: 馬耳朵 + cow ears: 牛耳朵 + mouse ears: 老鼠耳朵 + pig ears: 豬耳朵 + sheep ears: 羊耳朵 + deer ears: 鹿耳朵 + goat ears: 山羊耳朵 + antelope ears: 羚羊耳朵 + rhino ears: 犀牛耳朵 + elephant ears: 大象耳朵 + bat ears: 蝙蝠耳朵 + dragon ears: 龍耳朵 + demon ears: 惡魔耳朵 + angel ears: 天使耳朵 + alien ears: 外星人耳朵 + ear_blush: 耳朵通紅 + ear_ornament: 耳飾 + ear_piercing: 耳洞 + animal_ears: 獸耳 + ears_down: 垂耳 + fake_animal_ears: 假獸耳 + floppy_ears: 鬆軟的耳朵 + animal_ear_fluff: 動物耳朵絨毛 + fox_ears: 狐狸耳朵 + cat_ears: 貓耳朵 + lion_ears: 獅子耳朵 + jaguar_ears: 美洲豹耳朵 + tiger_ears: 虎耳 + dog_ears: 狗耳朵 + coyote_ears: 郊狼耳朵 + bunny_ears: 兔耳 + horse_ears: 馬耳 + pointy_ears: 尖耳朵 + long_pointy_ears: 長尖耳朵 + mouse_ears: 老鼠耳朵 + raccoon_ears: 浣熊耳朵 + squirrel_ears: 松鼠耳朵 + bear_ears: 熊耳朵 + panda_ears: 熊貓耳朵 + bat_ears: 蝙蝠耳朵 + robot_ears: 機器人耳朵 + extra_ears: 額外的耳朵 + ears_through_headwear: 耳朵穿過帽子或頭飾 + alpaca_ears: 羊駝耳 + horns: 獸角 + fake_horns: 假角 + dragon_horns: 龍角 + oni_horns: 鬼角 + antlers: 鹿角 + curled_horns: 彎角 + goat_horns: 山羊角 + hair_on_horn: 角上的頭髮 + + - name: 眉毛 + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: 濃眉 + cocked eyebrow: 眉毛翹起 + short eyebrows: 短眉毛 + v-shaped eyebrows: V字眉 + + - name: 眼睛 + color: rgba(255, 123, 2, .4) + tags: + blue eyes: 藍色眼睛 + red eyes: 紅色眼睛 + brown eyes: 棕色眼睛 + green eyes: 綠色眼睛 + purple eyes: 紫色眼睛 + yellow eyes: 黃色眼睛 + pink eyes: 粉色眼睛 + black eyes: 黑色眼睛 + aqua eyes: 水藍色眼睛 + orange eyes: 橙色眼睛 + grey eyes: 灰色眼睛 + multicolored eyes: 多彩眼睛 + white eyes: 白色眼睛 + gradient eyes: 漸層眼睛 + closed eyes: 閉上眼睛 + half-closed eyes: 半閉眼 + crying with eyes open: 睜著眼睛哭 + narrowed eyes: 眯起眼睛 + hidden eyes: 隱藏眼睛 + heart-shaped eyes: 心形眼睛 + button eyes: 紐扣眼睛 + cephalopod eyes: 頭足類眼睛 + eyes visible through hair: 透過頭髮看見眼睛 + glowing eyes: 發光的眼睛 + empty eyes: 空洞的眼睛 + rolling eyes: 翻白眼 + cross eyed: 斗雞眼 + blank eyes: 空白的眼睛 + no eyes: 沒有眼睛 + sparkling eyes: 閃閃發光的眼睛 + extra eyes: 額外的眼睛 + crazy eyes: 瘋狂的眼睛 + solid circle eyes: 實心圓眼 + solid oval eyes: 實心橢圓形眼睛 + uneven eyes: 不均勻的眼睛 + blood from eyes: 眼裡流血 + eyeshadow: 眼影 + red eyeshadow: 紅色眼影 + blue eyeshadow: 藍色眼影 + purple eyeshadow: 紫色眼影 + pink eyeshadow: 粉色眼影 + green eyeshadow: 綠色眼影 + bags under eyes: 眼袋 + ringed eyes: 眼圈 + covered eyes: 蒙住眼睛 + covering eyes: 遮住眼睛 + shading eyes: 擋著眼睛 + devil eyes: 魔鬼眼 + slit pupils: 猫眼 + bloodshot eyes: 充血的眼睛 + tsurime: 眼尾上揚 + tareme: 眼尾下垂 + constricted pupils: 瞳孔收縮 + devil pupils: 魔瞳 + snake pupils: 蛇瞳 + pupils sparkling: 瞳孔閃爍 + flower-shaped pupils: 花狀瞳孔 + heart-shaped pupils: 心形瞳孔 + heterochromia: 異色瞳 + color contact lenses: 美瞳 + longeyelashes: 長睫毛 + colored eyelashes: 彩色睫毛 + mole under eye: 眼下痣 + light_eyes: 明亮的眼睛 + glowing_eye: 發光的眼睛 + shiny_eyes: 閃亮的眼睛 + sparkling_eyes: 星星眼 + gradient_eyes: 漸變眼睛 + anime_style_eyes: 動畫眼 + water_eyes: 水汪汪 + beautiful_detailed_eyes: 美麗的眼睛 + solid_oval_eyes_: Q版實心橢圓眼睛 + solid_circle_pupils: Q版實心圓瞳孔 + blush_stickers: Q版腮紅貼紙 + heart_in_eye: 心形眼 + evil_eyes: 邪惡的眼睛 + crazy_eyes: 瘋狂的眼睛 + empty_eyes: 失去高光的眼睛 + covered_eyes: 蒙住的眼睛 + hollow_eyes: 星星狀瞳孔 + multicolored_eyes: 多彩多姿的眼睛 + ringed_eyes: 眼圈 + sanpaku: 三白症(瞳孔偏移) + mismatched_sclera: 錯配巩膜 + eye_relfection: 眼睛反射(沒有效果) + mechanical_eye: 機械眼 + cephalopod_eyes: 頭足類眼睛 + clock_eyes: 鐘眼 + compound_eyes: 複眼 + fisheye: 魚眼 + devil_eyes: 惡魔之眼 + bloodshot_eyes: 布滿血絲的眼睛 + blood_from_eyes: 血從眼裡流出 + aqua_eyes: 青色眼睛 + solid_eyes: 堅定的眼睛 + sparkling_anime_eyes: 閃光動畫眼 + blue_eyes: 藍眼睛 + brown_eyes: 棕色的眼睛 + closed_eyes: 閉上的眼睛 + crying_with_eyes_open: 睜著眼落淚 + extra_eyes: 多只眼睛 + eye_contact: 眼神交流 + eye_of_horus: 荷魯斯之眼 + eyeball: 眼球 + eyeliner: 眼線 + eyes: 眼睛 + glint: 眼中閃現強烈的情感 + glowing_eyes: 發光的雙眼 + half-closed_eye: 半閉的眼睛(單眼) + half-closed_eyes: 半閉的雙眼 + horizontal_pupils: + jitome: 輕蔑的眼神 + light_brown_eyes: 淺棕色眼睛 + no_eyes: 沒畫出眼睛 + one-eyed: 反光的眼睛 + reflective_eyes: + silver_eyes: 銀色的眼睛 + spiral_eyes: 漩渦眼 + third_eye: 第三只眼 + uneven_eyes: 大小眼 + flaming_eye: 焰目 + eyes_closed: 閉眼 + half_closed_eyes: 半閉雙眼 + narrowed_eyes: 眯起眼睛 + squinting: 眯起眼睛看 + tears: 眼淚 + sharp_eyes: 銳利的眼 + slanted_eyes: 銳利的眼 + upturned_eyes: 上翹的眼睛 + cross-eyed: 斗雞眼 + hair_over_eyes: 頭髮遮著雙眼 + eyes_visible_through_hair: 透過頭髮可以看到的眼睛 + hair_over_one_eye: 頭髮遮住了一只眼睛 + one_eye_covered: 一只眼被遮住 + bags_under_eyes: 眼袋 + eyepatch: 眼罩 + medical_eyepatch: 醫用眼罩 + scar_across_eye: 眼睛上的疤痕 + no_blindfold: 去掉了(原本有的)蒙眼要素 + no_eyepatch: 去掉了(原本有的)眼罩 + ahegao: 阿嘿顏 + + - name: 瞳孔 + color: rgba(255, 123, 2, .4) + tags: + pupils: 瞳孔 + bright_pupils: 明亮的瞳孔 + heterochromia: 異色瞳 + slit_pupils: 竪的瞳孔/貓眼 + snake_pupils: 瞳孔閃光 + symbol-shaped_pupils: 符號形瞳孔 + heart-shaped_pupils: 愛心形瞳孔 + diamond-shaped_pupils: 鑽石形狀瞳孔 + star-shaped_pupils: 五角星形狀瞳孔 + dilated_pupils: 瞳孔散大 + no_pupils: 沒有瞳孔 + ringed_eyes: 輪迴眼 + constricted_pupils: 收縮的瞳孔(沒有效果) + star_in_eye: 眼睛裡的星星 + x-shaped_pupils: X形瞳孔 + horizontal_pupils: 水平瞳孔 + dashed_eyes: 虛線的眼睛 + butterfly-shaped_pupils: 蝴蝶形瞳孔 + rectangular_pupils: 長方形瞳孔 + square_pupils: 方形瞳孔 + dot_pupils: 點瞳孔 + extra_pupils: 額外的瞳孔 + mismatched_pupils: 不匹配的瞳孔 + "+_+": 十字星星眼 + cross-shaped_pupils: 符號形瞳孔(沒有效果) + purple_pupils: 紫色瞳孔 + orange_pupils: 橙色瞳孔 + blue_pupils: 藍色瞳孔 + symbol_in_eye: 眼睛裡有符號 + + - name: 鼻子 + color: rgba(255, 123, 2, .4) + tags: + pointed nose: 尖鼻子 + small nose: 小鼻子 + big nose: 大鼻子 + no_nose: 沒鼻子的 + dot_nose: 點狀鼻 + nose_bubble: 鼻泡 + smelling: 聞 + nose: 鼻子 + nosebleed: 流鼻血 + snot: 鼻涕 + snout: 動物口鼻部 + + - name: 嘴巴 + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: 栗子嘴 + thick lips: 厚嘴唇 + puffy lips: 腫嘴唇 + lipstick: 口紅 + heart-shaped mouth: 心形嘴 + pout: 嘟嘴 + open mouth: 張嘴 + closed mouth: 閉嘴 + shark mouth: 鯊魚嘴 + parted lips: 張開的嘴 + mole under mouth: 嘴下痣 + open_mouth: 張嘴 + gasping: 喘氣(張大嘴) + Slightly_open_mouth: 嘴巴微微張開 + wavy_mouth: 波浪嘴 + close_mouth: 閉嘴 + dot_mouth: 點嘴 + no_mouth: 沒有嘴 + gag: 堵嘴 + gnaw: 啃 + :3: 貓嘴 + :o: 張嘴 + :>: V嘴 + parted_lips: 嘴唇張開 + bit_gag: 勒住嘴 + chestnut_mouth: 栗子嘴 + cleave_gag: 被封住嘴 + closed_mouth: 閉著的嘴 + covered_mouth: 蒙住的嘴 + extra_mouth: 有多張嘴巴 + hair_in_mouth: 嘴裡有頭髮 + hair_tie_in_mouth: 將繫頭髮的東西叼在嘴裡 + homu: 嘟嘴|抿嘴 + lips: 嘴唇 + mouth: 嘴 + mouth_hold: 用嘴叼著 + oral: 用嘴 + pacifier: 奶嘴 + Pouted lips: 撅起的嘴唇 + sideways_mouth: 把嘴畫在側臉 + spoon_in_mouth: 嘴裡含著湯匙 + triangle_mouth: 三角嘴 + saliva: 唾液 + drooling: 流口水 + mouth_drool: 嘴角畫著口水滴形狀的缺口 + + - name: 牙齒 + color: rgba(255, 123, 2, .4) + tags: + teeth: 牙齒 + upper_teeth: 上牙 + fang: 虎牙 + skin_fang: 膚色虎牙 + round_teeth: 圓齒 + sharp_teeth: 鋒利的牙齒 + clenched_teeth: 咬緊牙關 + tongue: 舌頭 + buck_teeth: 龐牙 + fang_out: 露出虎牙|露出尖牙 + fangs: 尖牙 + spiked_club: 狼牙棒 + tooth: 牙 + toothbrush: 牙刷 + tusks: 象牙 + shark_mouth: 鯊魚牙 + + - name: 舌頭 + color: rgba(255, 123, 2, .4) + tags: + :q: 舌頭放在上唇 + :p: 舌頭放在下唇 + ;p: 眨眼舌頭上伸 + french_kiss: 舌吻|法式濕吻 + long_tongue: 長舌頭 + oral_invitation: 迎接射精而伸出舌頭 + tongue: 舌頭 + tongue_out: 吐舌頭 + uvula: 小舌頭|口蓋垂|懸雍垂 + + - name: 指甲 + color: rgba(255, 123, 2, .4) + tags: + fingernails: 手指甲 + toenails: 腳趾甲 + nail_polish: 指甲油 + toenail_polish: 腳趾甲油 + black_nails: 黑指甲 + red_nails: 紅指甲 + pink_nails: 粉色指甲 + long_fingernails: 長指甲 + nail: 釘子|指甲 + multicolored_nails: 多彩指甲 + nail_art: 美甲 + brown_vest: 棕色馬甲 + + - name: 肩部 + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: 赤肩 + collarbone: 鎖骨 + armpits: 腋下 + armpit crease: 腋窩皺痕 + + - name: 胸部 + color: rgba(255, 123, 2, .4) + tags: + chest: 胸部 + flat chest: 貧乳(A_) + small breasts: 小胸部(B) + medium breasts: 中等胸部(C) + big breasts: 大胸部(D) + huge breasts: 巨乳(E) + gigantic breasts: 超巨乳(F) + between breasts: 兩胸之間 + breasts apart: 胸部分開 + hanging breasts: 下垂 + bouncing breasts: 晃動 + cleavage: 乳溝 + areola: 乳暈 + nipples: 乳頭 + pectorals: 胸肌 + large pectorals: 大胸肌 + unbuttoned clothes: 半露前胸 + + - name: 腰部 + color: rgba(255, 123, 2, .4) + tags: + narrow waist: 細腰 + slender waist: 纖細的腰 + + - name: 腹部 + color: rgba(255, 123, 2, .4) + tags: + midriff: 腹部 + belly: 肚子 + abs: 腹肌 + inflation: 隆起的腹部 + navel: 肚臍 + groin: 腹股溝 + pregnant: 懷孕 + + - name: 翅膀 + color: rgba(255, 123, 2, .4) + tags: + wings: 翅膀 + bat wings: 蝙蝠翅膀 + butterfly wings: 蝴蝶翅膀 + black wings: 黑色之翼 + demon wings: 惡魔之翼 + asymmetrical wings: 不對稱的翅膀 + detached wings: 不與本體相連的翅膀 + fairy wings: 妖精的翅膀 + fake wings: 仿造的翅膀 + fiery wings: 燃燒著的翅膀 + insect wings: 昆蟲翅膀 + large wings: 大翅膀 + low wings: 腰間的翅膀 + mini wings: 迷你翅膀 + multicolored wings: 有多種顏色的翅膀 + multiple wings: 多對翅膀 + no wings: 去掉了翅膀 + winged helmet: 帶翅膀的頭盔 + +- name: 服飾 + groups: + - name: 正裝 + color: rgba(230, 84, 128, .4) + tags: + suit: 西裝 + tuxedo: 燕尾服 + formal_dress: 禮服 + evening_gown: 晚禮服 + canonicals: 晚宴禮服 + cocktail_dress: 雞尾酒裙 + gown: 女長禮服 + japanese_clothes: 和服 + kimono: 和服 + sleeveless_kimono: 無袖和服 + short_kimono: 短和服 + print_kimono: 印花和服 + furisode: 振袖(和服的一部分) + obi: 衣帶(和服用) + sash: 飾帶 + cheongsam: 旗袍 + china_dress: 旗袍 + print_cheongsam: 印花旗袍 + pelvic_curtain: 旗袍類衣物的前擺 + wedding_dress: 婚紗 + uchikake: 白無垢(日式嫁衣) + school_uniform: 校服 + sailor: 水手服 + serafuku: 水手服 + summer_uniform: 夏季制服 + kindergarten_uniform: 幼兒園制服 + police_uniform: 警服 + naval_uniform: 海軍制服 + military_uniform: 陸軍制服 + ss_uniform/nazi_uniform: 納粹制服 + maid: 女僕裝 + stile_uniform: 女侍從的制服 + miko: 巫女服 + overalls: 工作服 + business_suit: 職場制服 + nurse: 護士 + chef_uniform: 廚師工裝 + labcoat: 白大褂 + cheerleader: 啦啦隊服 + band_uniform: 樂隊制服 + space_suit: 太空服 + leotard: 連褲褲 + domineering: 修女服 + + - name: 風格 + color: rgba(230, 84, 128, .4) + tags: + china_dress: 中國服飾 + chinese_style: 中國風 + traditional_clothes: 傳統服裝|民族服裝 + japanese_clothes: 日式服裝 + hanten_(clothes): 袢纏(日式) + hanbok: 韓服 + korean_clothes: 朝鮮服飾 + western: 西部風格 + german_clothes: 德國服裝 + gothic: 哥特風格 + lolita: 洛麗塔風格 + gothic_lolita: 哥特洛麗塔風格 + byzantine_fashion: 拜占庭風格 + Tropical: 熱帶特徵的 + indian_style: 印度風格 + Ao_Dai: 越南校服(奧黛) + ainu_clothes: 阿伊努人的服飾 + arabian_clothes: 阿拉伯服飾 + egyptian_clothes: 埃及風格服飾 + costume: 套裝 + animal_costume: 動物系套裝(皮套) + bunny_costume: 兔子服裝 + adapted_costume: 原設服裝改編 + cat_costume: 貓系服裝 + dog_costume: 皮套狗 + bear_costume: 熊套裝 + embellished_costume: 經潤飾的服裝 + santa_costume: 聖誕風格服裝 + halloween_costume: 萬聖節服裝 + kourindou_tengu_costume: 香霖堂天狗裝束 + alternate_costume: 與原設不同衣服 + costume_switch: 換衣play + meme_attire: 模因服裝 + + - name: 休閒裝 + color: rgba(230, 84, 128, .4) + tags: + casual: 休閒 + loungewear: 休閒服 + hoodie: 衛衣 + homewear: 居家服 + pajamas: 睡衣 + nightgown: 睡衣 + sleepwear: 睡衣 + babydoll: 情趣睡衣 + print_pajamas: 印花睡衣 + polka_dot_pajamas: 波點睡衣 + yukata: 浴衣 + chinese_clothes: 唐裝 + hanfu: 漢服 + Taoist robe: 道袍 + robe: 長袍 + robe_of_blending: 混合長袍 + cloak: 斗篷 + hooded_cloak: 連帽斗篷 + winter_clothes: 冬裝 + down jacket: 羽絨服 + santa: 聖誕裝 + harem_outfit: 舞娘服 + shrug_(clothing): 聳肩(服裝) + + - name: 運動服 + color: rgba(230, 84, 128, .4) + tags: + sportswear: 運動服 + gym_uniform: 運動服 + athletic_leotard: 體操服 + tennis_uniform: 網球衫 + baseball_uniform: 棒球服 + letterman_jacket: 棒球夾克 + volleyball_uniform: 排球服 + biker_clothes: 自行車運動服 + bikesuit: 騎行套裝 + wrestling_outfit: 摔角服 + dougi: 武道服 + + - name: 泳裝 + color: rgba(230, 84, 128, .4) + tags: + swimsuit: 泳裝 + swimwear: 泳衣 + wet_swimsuit: 濕泳衣 + school_swimsuit: 學校泳裝(死庫水) + new_school_swimsuit: 新式死庫水 + old_school_swimsuit: 舊式死庫水 + competition_school_swimsuit: 競泳死庫水 + competition_swimsuit: 賽用泳衣 + casual_one-piece_swimsuit: 連體泳衣 + front_zipper_swimsuit: 拉鍊在正面的泳衣 + highleg_swimsuit: 高開衩的泳衣 + one-piece_swimsuit: 一體式泳衣 + swimsuit_of_perpetual_summer: 常夏的泳衣(FGO學妹靈衣) + bikini: 比基尼 + highleg_bikini: 高腰比基尼 + lowleg_bikini: 低腰比基尼 + slingshot_swimsuit: V字泳衣 + sailor_bikini: 水手服款比基尼 + shell_bikini: 貝殼比基尼 + sports_bikini: 運動比基尼 + string_bikini: 系繩比基尼 + strapless_bikini: 無肩帶比基尼 + side-tie_bikini: 細帶款比基尼 + front-tie_bikini_top: 前系帶比基尼上衣 + multi-strapped_bikini: 多綁帶比基尼 + thong_bikini: 丁字褲比基尼 + front-tie_bikini: 從正面打結的比基尼 + frilled_bikini: 花邊比基尼 + o-ring_bikini: 帶O型環的比基尼 + eyepatch_bikini: 眼罩比基尼 + layered_bikini: 分層比基尼 + bow_bikini: 帶蝴蝶結的比基尼 + frilled_swimsuit: 花邊泳衣 + polka_dot_swimsuit: 圓斑泳衣 + striped_swimsuit: 條紋泳衣 + striped_bikini: 條紋比基尼 + plaid_bikini: 格子比基尼 + polka_dot_bikini: 圓斑比基尼 + print_bikini: 印花比基尼 + american_flag_bikini: 美國國旗比基尼 + german_flag_bikini: 德國國旗比基尼 + impossible_swimsuit: 人體彩繪般的泳衣 + bikini_top: 只穿著比基尼上衣 + bikini_top_only: 僅比基尼上衣 + bikini_top_removed: 脫下了比基尼上衣 + bikini_bottom_only: 僅比基尼下裝 + bikini_bottom: 比基尼泳褲 + untied_bikini: 解開的比基尼 + bikini_aside: 從三點剝開的比基尼 + swimsuit_aside: 把泳衣的襠部挪到一邊 + swimsuit_under_clothes: 衣服裡面穿著泳衣 + torn_swimsuit: 破損的泳衣 + bikini_skirt: 比基尼裙 + swim_briefs: 泳褲 + swim_cap: 泳帽 + swim_trunks: 泳褲 + male_swimwear: 男用泳褲 + + - name: 制服 + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: 改裝制服 + anzio_military_uniform: 安齊奧軍服 + anzio_school_uniform: 安齊奧校服 + aria_company_uniform: 亞利亞公司制服 + ashford_academy_uniform: 阿什福特學院制服 + bc_freedom_military_uniform: BC自由學園制服 + chaldea_uniform: 迦勒底制服 + chi-hatan_military_uniform: 知波單學院制服 + fleur_de_lapin_uniform: 點兔女僕裝 + garreg_mach_monastery_uniform: 加爾格·馬可大修道院制服 + gem_uniform_(houseki_no_kuni): 寶石之國的制服 + hanasakigawa_school_uniform: 花咲川女子學園 + hikarizaka_private_high_school_uniform: 私立光坂高等學校校服 + homurahara_academy_uniform: 穗群原學園制服 + kamiyama_high_school_uniform: 神山高中校服 + keizoku_military_uniform: 繼續高中軍服 + kita_high_school_uniform: 北高中制服 + kiyosumi_school_uniform: 清澄高中校服 + luna_nova_school_uniform: 魯納諾娃魔法學校校服 + meiji_schoolgirl_uniform: 明治女學生制服 + mitakihara_school_uniform: 見濤原中學校制服 + nami_junior_high_school_uniform: 波路中學校服 + nanairogaoka_middle_school_uniform: 七色丘中學校服 + nanamori_school_uniform: 七森中學校服 + naoetsu_high_school_uniform: 私立直江津高校制服 + national_shin_ooshima_school_uniform: 新大島學園校服 + ooarai_military_uniform: 大洗聯隊軍裝 + ooarai_school_uniform: 大洗聯隊校服 + otonokizaka_school_uniform: 國立音乃木坂學院女子制服 + paradis_military_uniform: 帕拉迪島軍裝 + polar_chaldea_uniform: 極地迦勒底制服 + pravda_military_uniform: 真理學院軍裝 + pravda_school_uniform: 真理學院校服 + rabbit_house_uniform: 點兔兔之家制服 + raimon_soccer_uniform: 雷門足球隊服 + ryouou_school_uniform: 陵櫻學園制服 + sailor_senshi_uniform: 美少女戰士制服 + sakugawa_school_uniform: 栅川中學校服 + sakuragaoka_high_school_uniform: 櫻丘女子高等學校校服 + saunders_military_uniform: 桑德斯軍裝 + saunders_school_uniform: 桑德斯附高校服 + seishou_elementary_school_uniform: 聖祥大附小學校校服 + shinda_sekai_sensen_uniform: 死後世界戰線制服 + shuuchiin_academy_uniform: 秀知院學園制服 + shuujin_academy_uniform: 秀盡學院制服 + st._gloriana's_military_uniform: 聖葛羅莉安娜軍裝 + st._gloriana's_school_uniform: 聖葛羅莉安娜女學園校服 + starlight_academy_uniform: 星光學園制服 + tokisadame_school_uniform: 時定高校校服 + tokiwadai_school_uniform: 常盤台中學校服 + tomoeda_elementary_school_uniform: 友枝小學校服 + tsab_ground_military_uniform: 時空管理局軍服 + u.a._school_uniform: 雄英高中校服 + uranohoshi_school_uniform: 浦之星女學院校服 + yasogami_school_uniform: 八十神高中校服 + mismatched_bikini: 雙色比基尼 + multicolored_bikini: 多色款比基尼 + + - name: 上衣 + color: rgba(230, 84, 128, .4) + tags: + blouse: 女式襯衫 + white_shirt: 白襯衫 + collared_shirt: 有領襯衫 + dress_shirt: 西裝襯衫 + sailor_shirt: 水手服襯衫 + cropped_shirt: 短襯衫 + t-shirt: T恤 + casual T-shirts: 日常T恤 + short sleeve T-shirts: 短袖T恤 + off-shoulder_shirt: 露肩襯衫(搭肩衫) + shrug_(clothing): 包肩上衣 + cardigan: 開襟毛衣衫 + criss-cross_halter: 交叉吊帶衫 + frilled_shirt: 褶邊襯衫 + sweatshirt: 長袖運動卫衣 + hawaiian_shirt: 夏威夷襯衫 + hoodie: 連帽衫 + Impossible shirt: 貼合程度不合邏輯的襯衫 + kappougi: (烹飪時穿的)罩衫 + plaid_shirt: 格子襯衫 + polo_shirt: 馬球衫 + print_shirt: 印花襯衫 + shirt: 襯衫 + sleeveless_hoodie: 無袖連帽衫 + sleeveless_shirt: 無袖襯衫 + striped_shirt: 條紋襯衫 + tank_top: 背心(居家) + vest: 背心(正式) + waistcoat: 背心(正式) + camisole: 吊帶背心(小可愛) + tied_shirt: 系帶襯衫(把衣角和下擺打結) + undershirt: 汗衫 + crop_top: 截短上衣 + highleg: 高開衩的衣物 + clothing_cutout: 衣服漏洞 + back_cutout: 露背上衣 + cleavage_cutout: 乳溝處開洞 + navel_cutout: 肚臍開洞 + midriff: 露腰上衣 + heart_cutout: 心形開口 + torn_clothes: 撕裂的衣服 + torn_shirt: 撕裂的襯衫 + undressing: 脫衣服中 + clothes_down: 褪下衣物 + shirt_lift: 掀起襯衫 + shirt_pull: 襯衫拉下來 + shirt_tucked_in: 襯衫塞進去 + clothes_tug: 拖拽衣服 + shirt_tug: 拖拽襯衫 + untucked_shirt: 解開的襯衫 + lifted_by_self: 掀自己衣服 + untied: 掀自己衣服 + open_clothes: 敞開的衣服 + unbuttoned shirt: 解開紐扣的襯衫 + button_gap: 紐扣之間的縫隙(沒解開) + partially_unbuttoned: 解開部分紐扣 + partially_unzipped: 拉開上部分拉鍊 + clothes_removed: 脫下的衣服 + shirt_removed: 脫下襯衫 + wardrobe_error: 衣服滑落 + undersized_clothes: 穿衣方式錯了 + tight: 衣物緊緊的 + wedgie: 嵌入(拉襠部衣物所致) + wardrobe_malfunction: 衣服出了意外(如崩開) + taut_shirt: 繃緊的襯衫 + taut_clothes: 繃緊的衣服 + underbust: 勒出下胸圍 + oversized_clothes: 過大號的衣服 + oversized_shirt: 過大號襯衫 + borrowed_garments: 男友的衣服 + strap_slip: 衣物吊帶滑落(導致走光) + wet_shirt: 濕襯衫 + clothes_theft: 偷衣服 + + - name: 外套 + color: rgba(230, 84, 128, .4) + tags: + blazer: 西裝外套 + overcoat: 大衣 + double-breasted: 雙排紐扣(雙排扣) + long_coat: 長外套 + haori: 一種寬上衣 + winter_coat: 冬季大衣 + hooded_coat: 連帽大衣 + fur_coat: 皮草大衣 + fur-trimmed_coat: 鑲邊皮草大衣 + duffel_coat: 粗呢大衣 + fishnet_top: 漁網上衣 + parka: 派克大衣 + jacket: 夾克衫 + jacket_partially_removed: 夾克部分移除 + jacket_removed: 夾克被移除 + open_jacket: 開襟夾克(配合spread_legs) + cropped_jacket: 短款夾克 + track_jacket: 運動夾克 + hooded_track_jacket: 連帽運動夾克 + military_jacket: 軍裝夾克 + camouflage_jacket: 迷彩夾克 + leather_jacket: 皮夾克 + letterman_jacket: 萊特曼夾克 + bomber_jacket: 飛行員夾克 + denim_jacket: 牛仔夾克 + loating_jacket: 休閒夾克 + fur-trimmed_jacket: 毛皮邊飾夾克 + two-tone_jacket: 兩色夾克 + trench_coat: 風衣 + furisode: 振袖(和服的一部份) + windbreaker: 衝鋒衣 + raincoat: 雨衣 + hagoromo: 羽衣 + tunic: 束腰外衣 + cape: 披肩 + capelet: 披肩 + winter_clothes: 冬裝 + sweater: 毛衣 + pullover_sweaters: 套頭毛衣 + ribbed_sweater: 羅紋毛衣 + sweater_vest: 毛衣背心 + backless_sweater: 露背毛衣 + aran_sweater: 愛爾蘭毛衣 + beige_sweater: 米色毛衣 + brown_sweater: 棕色毛衣 + hooded_sweater: 連帽毛衣 + off-shoulder_sweater: 露肩毛衣 + striped_sweater: 條紋毛衣 + virgin_killer_sweater: 處男殺手毛衣 + down_jacket: 羽絨服 + puffer_jacket: 羽絨服 + + - name: 其他 + color: rgba(230, 84, 128, .4) + tags: + transparent: 透明的 + burnt_clothes: 燒焦的衣服 + dissolving_clothes: 溶解掉的衣服 + dirty_clothes: 弄髒的衣服 + expressive_clothes: 富有表現力的衣服 + impossible_clothes: 有不現實的包裹程度的衣服 + living_clothes: 活體衣服 + leotard_under_clothes: 內層穿著連衣褲 + multicolored_clothes: 多色款衣服 + ofuda_on_clothes: 衣服上貼著符紙 + wringing_clothes: 擰乾衣服 + clothesline: 曬衣服 + shiny_clothes: 有光澤的衣服 + kariginu: 狩衣 + front-tie_top: 從正面打結的衣物 + jacket_on_shoulders: 用夾克披肩 + short_jumpsuit: 短褲腿連體衣 + harness: 背帶;挽具 + rigging: 艦裝 + aiguillette: 肩帶 + + - name: 腰部 + color: rgba(230, 84, 128, .4) + tags: + apron: 圍裙 + waist_apron: 腰圍裙 + maid_apron: 女僕圍裙 + bow tied at the waist: 繫在前腰的蝴蝶結 + waist_cape: 穿在腰部的小披風 + clothes_around_waist: 腰間衣服 + jacket_around_waist: 腰圍夾克 + sweater_around_waist: 圍腰毛衣 + loincloth: 纏腰布 + bustier: 胸衣 + corset: 束腰(馬甲) + girdle: 緊身褡 + + - name: 盔甲 + color: rgba(230, 84, 128, .4) + tags: + armor: 盔甲 + bikini_armor: 比基尼盔甲 + full_armor: 穿著全套盔甲的 + plate_armor: 板甲 + japanese_armor: 日本鎧甲 + kusazuri: 腹當|草摺(日式下半盔甲 + power_armor: 動力裝甲 + mecha: 機甲 + helmet: 頭盔 + kabuto: 頭盔(日式) + off-shoulder_armor: 無肩甲盔甲 + shoulder_armor: 肩甲 + muneate: 日本弓道護胸甲 + breastplate: 胸甲 + faulds: 腹甲 + greaves: 脛甲 + shin_guards: 脛甲 + armored_boots: 裝甲靴 + + - name: 裙子 + color: rgba(230, 84, 128, .4) + tags: + dress: 連衣裙 + microdress: 微型連衣裙 + long_dress: 長連衣裙 + off-shoulder_dress: 裸肩連衣裙 + strapless_dress: 無肩帶連衣裙 + backless_dress: 裸背連衣裙 + halter_dress: 繞頸裸背吊帶裙 + sundress: 吊帶連衣裙(大熱天穿的無袖連衣裙) + sleeveless_dress: 無袖連衣裙 + sailor_dress: 水手服款裙子 + summer_dress: 夏日長裙 + china_dress: 中國服飾 + pinafore_dress: 圍裙連衣裙 + sweater_dress: 圍裙連衣裙 + wedding_dress: 婚紗 + armored_dress: 戰甲裙 + frilled_dress: 花邊連衣裙 + lace-trimmed_dress: 蕾絲邊連衣裙 + collared_dress: 有領連衣裙 + fur-trimmed_dress: 毛皮鑲邊連衣裙 + layered_dress: 分層連衣裙 + pleated_dress: 百褶連衣裙 + taut_dress: 繃緊的連衣裙 + pencil_dress: 鉛筆裙 + impossible_dress: 過分緊身的衣服 + multicolored_dress: 多色款連衣裙 + striped_dress: 條紋連衣裙 + checkered_skirt: 格子裙 + plaid_dress: 格子連衣裙 + ribbed_dress: 羅紋連衣裙 + polka_dot_dress: 波點連衣裙 + print_dress: 印花連衣裙 + vertical-striped_dress: 竖条纹连衣裙 + see-through_dress: 透視連衣裙 + skirt: 短裙 + microskirt: 超短裙 + miniskirt: 迷你裙 + skirt_suit: 正裝短裙 + bikini_skirt: 比基尼裙 + pleated_skirt: 百褶裙 + pencil_skirt: 短鉛筆裙 + bubble_skirt: 蓬蓬裙 + tutu: 芭蕾舞裙 + ballgown: 蓬蓬裙(禮服) + pettiskirt: 蓬蓬裙(兒童) + showgirl_skirt: 展會女郎裝束 + Medium length skirt: 中等長裙子 + beltskirt: 皮帶裙 + denim_skirt: 牛仔裙 + suspender_skirt: 吊帶裙 + skirt_set: 與上衣搭配的短裙 + long_skirt: 長裙 + summer_long_skirt: 夏日長裙 + overskirt: 外裙 + hakama_skirt: 袴裙 + high-waist_skirt: 高腰裙 + kimono_skirt: 和服裙 + suspender_long_skirt: 背帶裙;吊帶裙 + chiffon_skirt: 雪紡裙 + frilled_skirt: 花邊裙子 + fur-trimmed_skirt: 毛皮鑲邊短裙 + lace_skirt: 蕾絲短裙 + lace-trimmed_skirt: 蕾絲邊短裙 + ribbon-trimmed_skirt: 緞帶飾邊短裙 + layered_skirt: 分層的半裙 + print_skirt: 印花短裙 + multicolored_skirt: 多色款裙子 + striped_skirt: 條紋裙 + vertical-striped_skirt: 縱條紋裙子 + plaid_skirt: 格子呢短裙 + flared_skirt: 傘裙 + floral_skirt: 花卉裙 + + - name: 与裙子互動 + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: 優雅地提著裙子 + skirt_tug: 扯住裙擺|按住裙擺 + dress_tug: 壓住裙擺 + skirt_lift: 掀起裙子 + skirt_around_one_leg: 一條腿上掛著短裙 + skirt_removed: 脫下的短裙 + dress_removed: 脫下裙子 + open_skirt: 敞開的裙子 + + - name: 褲子 + color: rgba(230, 84, 128, .4) + tags: + dress_bow: 連衣裙上的蝴蝶結 + dressing_another: 著裝 + shorts_under_skirt: 短裙裡穿著短褲 + side_slit: 側開叉 + shorts: 短褲 + micro_shorts: 小尺寸短褲 + short_shorts: 熱褲 + hot_pants: 熱褲 + cutoffs: 熱褲 + striped_shorts: 條紋短褲 + suspender_shorts: 吊帶短褲 + denim_shorts: 牛仔短褲 + puffy_shorts: 蓬蓬的短褲 + dolphin_shorts: 海豚短褲(真理褲) + dolfin_shorts: 海豚短褲(真理褲) + tight_pants: 緊身褲/運動褲 + crotchless_pants: 無襠褲(緊身) + track_pants: 運動褲 + yoga_pants: 瑜伽褲 + bike_shorts: 自行車短褲 + gym_shorts: 體操短褲 + pants: 長褲 + puffy_pants: 蓬鬆褲/寬鬆褲 + pumpkin_pants: 南瓜褲 + hakama_pants: 袴褲 + harem_pants: 哈倫褲 + bloomers: 燈籠褲 + buruma: 女式燈籠褲 + jeans: 牛仔褲 + cargo_pants: 工裝褲 + camouflage_pants: 迷彩褲 + capri_pants: 七分褲 + chaps: 皮套褲(上寬下窄 + jumpsuit: (尤指女式)連衫褲 + lowleg_pants: 低腰褲子 + plaid_pants: 格子呢褲子 + single_pantsleg: 單邊長褲 + striped_pants: 條紋褲 + + - name: 與褲子互動 + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: 不對稱的褲子 + leotard_aside: 把連衣褲襠部剝到一邊 + open_fly: 解開的褲子拉鍊 + pants_down: 褪下褲子 + pants_rolled_up: 褲子卷起來 + pants_tucked_in: 褲子塞進去 + torn_jeans: 破損的牛仔褲 + torn_pants: 破損的褲子 + torn_shorts: 破損的短褲 + + - name: 襪子 + color: rgba(230, 84, 128, .4) + tags: + bodystocking: 全身襪 + pantyhose: 連褲襪|褲襪 + leggings: 褲襪 + legwear: 褲襪(泛指褲襪或長筒襪) + thighhighs: 長筒襪(過膝高筒襪) + kneehighs: 中筒襪 + socks: 短襪 + bare_legs: 裸腿 + black_bodystocking: 連體黑絲 + white_bodystocking: 連體白絲 + stocking_under_clothes: 衣服下的襪子 + black_pantyhose: 黑絲褲襪 + white_pantyhose: 白絲褲襪 + thighband_pantyhose: 有腿環的褲襪 + pantylines: 緊緻的褲襪(勾勒出線條 + single_leg_pantyhose: 單邊穿著連褲襪 + panties_under_pantyhose: 褲襪裡的內褲 + fishnets: 網襪(材質) + stirrup_legwear: 漁網襪 + toeless_legwear: 露趾襪 + mismatched_legwear: 雙色褲襪 + two-tone_legwear: 雙色褲襪 + asymmetrical_legwear: 不對稱褲襪 + uneven_legwear: 長短襪 + white_thighhighs: 白色長筒襪 + black_thighhighs: 黑色長筒襪 + pink_thighhighs: 粉色長筒襪 + suspenders: 吊帶襪 + garter_straps: 腰帶(吊帶襪的) + torn_legwear: 破損的褲襪 + torn_thighhighs: 損壞了的長筒襪 + see-through_legwear_: 透明的襪子 + frilled_legwear: 花邊襪 + lace-trimmed_legwear: 蕾邊襪絲 + seamed_legwear: 有接縫的襪 + back-seamed_legwear: 中間有一條黑線的襪子 + animal_ear_legwear: 動物耳朵過膝襪 + striped_legwear: 橫條紋襪 + vertical-striped_legwear: 竖條紋襪 + polka_dot_legwear: 圓斑襪 + print_legwear: 印花襪 + legwear_under_shorts: 短褲穿在襪子外 + over-kneehighs: 過膝襪 + bobby_socks: 鮑比襪(白短襪) + tabi: 日式厚底短襪(足袋) + loose_socks: 泡泡襪 + ankle_socks: 踝襪 + leg_warmers: 腿套|暖腿襪 + single_sock: 單短襪 + striped_socks: 橫條短襪 + + - name: 與襪子互動 + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: 襪子有開口 + thighhighs_under_boots: 靴子穿在襪子外面 + adjusting_legwear: 整理褲襪 + pantyhose_pull: 脫下的褲襪 + socks_removed: 脫襪子 + sock_pull: 拉著襪子(短襪) + thighhighs_pull: 拉著襪子(長襪) + + - name: 其他 + color: rgba(230, 84, 128, .4) + tags: + garters: 襪帶 + leg_garter: 腿環|襪帶 + garter_straps: 吊帶襪的吊帶 + thigh_strap: 大腿綁帶 + thigh_ribbon: 大腿緞帶 + leg_ribbon: 腿鍛帶 + bandaid_on_leg: 腿上的繃帶 + bandaged_leg: 包紮過的腿 + ankle_lace-up: 腳踝繫帶 + thigh_holster: 大腿皮套 + bandaid_on_knee: 膝蓋上的OK繃 + argyle_legwear: 含菱形花紋的褲襪 + bow_legwear: 帶蝴蝶結的褲襪 + arm_garter: 手臂襪帶 + + - name: 材質 + color: rgba(230, 84, 128, .4) + tags: + armored: 裝甲的 + canvas: 帆布的 + denim: 牛仔布 + fluffy: 毛茸茸 + fur: 毛皮 + latex: 乳膠 + leather: 皮製 + see-through: 透明 + spandex: 彈性纖維 + tight: 緊身 + + - name: 裝飾 + color: rgba(230, 84, 128, .4) + tags: + frilled: 褶邊 + center_frills: 中心褶花邊 + crease: 起皺的(有褶的) + layered: 分層的 + lace: 蕾絲 + fur_trim: 皮草飾邊 + fur-trimmed: 毛邊的 + fine_fabric_emphasis: 材質增強 + latex_thighhighs: 乳膠材質的長筒襪 + see-through_thighhighs: 透明的長筒襪 + ass_cutout: 露出屁股的服飾 + asymmetrical_clothes: 不對稱的服飾 + back_bow: (服飾)打在背後的結 + costume_switch: 服飾互換 + cross-laced_clothes: 交叉花邊服飾 + double_vertical_stripe: 服飾上有兩條平行條紋 + halter_top: 吊帶式的上身的服飾 + multicolored_legwear: 多色款腿部服飾 + navy_blue_legwear: 海軍藍腿部服飾 + nontraditional_miko: 改款過的日本服飾 + side_cutout: 側邊開口的服飾 + side_slit: 側面有縫的服飾 + sideless_outfit: 側面沒有布料的服飾 + single_kneehigh: 單邊穿著過膝服飾 + single_vertical_stripe: 露出單邊服飾上的垂直條紋 + turtleneck: 高領服飾 + two-sided_fabric: 雙層樣式的服飾畫法 + o-ring: 帶O型環的衣物 + o-ring_top: 帶O型環的上衣 + fringe_trim: 須邊(圍巾末端) + loose_belt: 鬆散的帶子(衣物) + pom_pom_(clothes): 小絨球(衣物掛件) + drawstring: 衣服的抽繩 + full-length_zipper: 有整件衣物長的拉鍊 + gathers: 褶裥(衣物) + gusset: 縫在衣服上襯料 + breast_pocket: 胸口的袋子 + + - name: 花紋 + color: rgba(230, 84, 128, .4) + tags: + argyle: 阿蓋爾菱形花紋 + checkered: 格子花紋 + colored_stripes: 多彩條紋 + diagonal_stripes: 斜條紋 + horizontal_stripes: 水平條紋 + multicolored_stripes: 多彩條紋 + polka_dot_: 點裝紋 + ribbed: 棱紋 + striped: 橫條紋 + unmoving_pattern: 連續重複花紋 + vertical_stripes: 竖條紋 + plaid: 格子呢圖案 + animal_print: 動物印花 + cat_print: 貓咪印花 + bear_print: 熊印花 + bird_print: 鳥印花 + bunny_print: 兔子印花 + cow_print: 奶牛印花 + dragon_print: 龍印花 + fish_print: 魚印花 + frog_print: 青蛙印花 + shark_print: 鯊魚印花 + snake_print: 蛇紋 + zebra_print: 斑馬印花 + tiger_print: 虎紋 + leopard_print: 豹紋 + jaguar_print: 美洲豹印花 + bat_print: 蝙蝠印花 + aardwolf_print: 土狼印花 + african_wild_dog_print: 非洲野狗印花 + cheetah_print: 獵豹印花 + dog_print: 狗印花 + fox_print: 狐狸印花 + giraffe_print: 長頸鹿印花 + panda_print: 熊貓印花 + sand_cat_print: 沙貓印花 + whale_print: 鯨魚印花 + white_tiger_print: 白虎紋 + goldfish_print: 金魚印花 + wing_print: 翼印 + spider_web_print: 蜘蛛網紋 + butterfly_print: 蝴蝶印花 + floral_print: 碎花 + leaf_print: 葉印花 + clover_print: 三葉草印花 + maple_leaf_print: 楓葉印花 + rose_print: 玫瑰印花 + strawberry_print: 草莓印花 + cherry_print: 櫻桃印花 + bamboo_print: 竹印花 + carrot_print: 胡蘿蔔印花 + hibiscus_print: 芙蓉印花 + jack-o'-lantern_print: 南瓜燈印花 + petal_print: 花瓣印花 + sunflower_print: 向日葵印花 + watermelon_print: 西瓜印花 + sky_print: 天空印花 + cloud_print: 雲印花 + lightning_bolt_print: 閃電印花 + rainbow_print: 彩虹印花 + snowflake_print: 雪花印花 + starry_sky_print: 星空印花 + crescent_print: 新月印花 + star_print: 星形印花 + star_(symbol): 星形符號 + moon_print: 月亮印花 + sun_print: 太陽印花 + character_print: 字符印花 + clothes_writing_: 衣服上的字 + anchor_print: 錨印花 + cherry_blossom_print: 櫻花印花 + musical_note_print: 音符印花 + triangle_print: 三角印花 + arrow_print: 箭頭打印 + wave_print: 波浪紋 + peace_symbol: ☮(東方仗助衣服上有) + heart_print: 心形圖案|心形印花 + flame_print: 火焰印花 + hitodama_print: 鬼火印花 + paw_print: 爪印花 + skeleton_print: 骨架印花 + skull_print: 骷髏頭印花 + sparkle_print: 閃閃發光的印花 + yin_yang_print: 陰陽印花 + cross_print: 十字架元素圖案 + camoflage: 迷彩 + flag_print: 旗幟印花 + bone_print: 骨印花 + ghost_print: 幽靈印畫 + mushroom_print: 蘑菇印花 + onigiri_print: 飯糰打印 + cat_ear: 貓耳造型 + cat_ear_cutout: 貓耳造型鏤空 + + - name: 鞋子 + color: rgba(230, 84, 128, .4) + tags: + barefoot: 赤腳 + no_shoes: 沒有鞋子 + shoes_removed: 脫下的鞋子 + single_shoe: 單鞋 + the_only_shoe: 單鞋 + black_loafers: 樂福鞋(小皮鞋) + shoes: 運動鞋 + uwabaki: 室內鞋 + platform_footwear: 厚底鞋 + high_heels: 高跟鞋 + stiletto_heels: 細跟高跟鞋 + strappy_heels: 帶束帶的高跟鞋 + platform_heels_: 厚底高跟鞋 + rudder_footwear: 艦C艦娘專用鞋 + sandals: 涼鞋 + barefoot_sandals: 裸足涼鞋 + clog_sandals: 木屐涼鞋 + geta: 木屐 + slippers: 拖鞋 + skates: 溜冰鞋 + roller_skates: 旱冰鞋 + animal_feet: 動物腳 + animal_slippers: 動物拖鞋 + anklet: 腳環 + shackles: 鐐銬 + brown_footwear: 棕色鞋類 + cross-laced_footwear: 交叉系帶鞋 + loafers: 樂福鞋 + mary_janes: 珍妮鞋 + mismatched_footwear: 雙色鞋子 + pointy_footwear: 尖頭鞋 + pumps: 低胸裝高跟鞋打扮 + sandals_removed: 脫下涼鞋 + shoe_soles: 鞋底 + shoelaces: 鞋帶 + sneakers: 運動鞋 + winged_footwear: 帶翅膀的鞋子 + zouri: 日式草鞋 + + - name: 靴子 + color: rgba(230, 84, 128, .4) + tags: + boots: 靴子 + boots_removed: 脫下的靴子 + thigh_boots: 大腿靴 + knee_boots: 及膝靴(馬靴) + cross-laced_footwear: 系帶靴 + ankle_boots: 踝靴 + high_heel_boots: 高跟靴 + toeless_boots: 露趾靴 + lace-up_boots: 系帶靴 + fur-trimmed_boots: 毛邊靴子 + snow_boots: 雪地靴 + anklet: 腳鏈 + rubber_boots: 膠靴 + santa_boots: 聖誕靴 + leather_boots: 皮靴 + thighhighs_under_boots: 靴子下的長筒襪 + combat_boots: 作戰靴 + doc_martens: 馬丁靴 + rain_boots: 雨靴 + belt_boots: 皮帶靴 + fur_boots: 矮跟休閒皮草靴 + single_boot: 一隻腳沒穿靴子 + + - name: 鞋底 + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: 鞋底 + arched_soles: 拱形鞋底 + paw_print_soles: 爪印鞋底 + horseshoe: 馬蹄鐵 + + - name: 領口 + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: 水手領 + fur_collar: 毛皮衣領 + frilled_collar: 花邊衣領 + popped_collar: 竪起來的衣領 + choker: 頸部飾品 + black_choker: 黑色頸圈 + belt_collar: 皮帶頸環 + frilled_choker: 褶邊項鍊 + neckerchief: 領巾 + red_neckerchief: 紅領巾 + necktie: 領帶 + short_necktie: 短領帶 + white_necktie: 白色領帶 + bowtie: 蝴蝶結領帶 + headphones_around_neck: 掛在脖子上的耳機 + goggles_around_neck: 脖子上護目鏡 + neck_bell: 頸鈴 + neck_ruff: 領口 + v-neck: V領 + towel_around_neck: 脖子上的毛巾 + loose_necktie: 寬鬆領帶 + neck_tattoo: 頸部紋身 + ascot: 領巾狀寬領帶 + ribbon_choker: 頸絲帶 + maebari/pasties: 陰貼/乳貼 + latex: 乳貼 + torn_clothes: 破爛衣服 + iron_cross: 鐵十字勳章 + chinese_knot: 中國結 + cross_necklace: 十字架項鍊 + bead_necklace: 珠子項鍊 + pearl_necklace: 珍珠項鍊 + heart_necklace: 心形項鍊 + carrot_necklace: 胡蘿蔔項鍊 + chain_necklace: 鎖鏈項鍊 + magatama_necklace: 珠玉項鍊 + tooth_necklace: 牙項鍊 + key_necklace: 鑰匙項鍊 + anchor_necklace: 錨項鍊 + skull_necklace: 骷髏項鍊 + shell_necklace: 貝殼項鍊 + gold_necklace: 金項鍊 + crescent_necklace: 新月項鍊 + ring_necklace: 戒指項鍊 + feather_necklace: 羽毛項鍊 + bone_necklace: 骨項鍊 + ankh_necklace: 十字項鍊 + multiple_necklaces: 多條項鍊 + bullet_necklace: 子彈項鍊 + holding_necklace: 拿著項鍊 + necklace_removed: 項鍊被移除 + brown_neckwear: 棕色領飾 + checkered_neckwear: 格子領口 + diagonal-striped_neckwear: 斜紋領結 + halterneck: 繞頸系帶 + mole_on_neck: 脖子上有痣 + neck: 脖子 + neck_ribbon: 頸部系著緞帶 + neck_ring: 頸環 + necklace: 項鍊 + plaid_neckwear: 格子呢領子 + plunging_neckline: 深領 + print_neckwear: 印花領帶 + sleeveless_turtleneck: 無袖高領毛衣 + star_necklace: 星形項鍊 + striped_neckwear: 條紋領子 + turtleneck_sweater: 高領毛衣 + undone_necktie: 解開領帶 + whistle_around_neck: 脖子上掛著口哨 + + - name: 圍巾 + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: 格子圍巾 + striped_scarf: 條紋圍巾 + print_scarf: 印花圍巾 + vertical-striped_scarf: 竖條紋圍巾 + polka_dot_scarf: 波點圍巾 + argyle_scarf: 菱形圍巾 + beige_scarf: 米色圍巾 + scarf_bow: 圍巾蝴蝶結 + fur_scarf: 皮草圍巾 + naked_scarf: 裸圍巾 + multicolored_scarf: 五彩圍巾 + floating_scarf: 漂浮圍巾 + long_scarf: 長圍巾 + arm_scarf: 手臂圍巾 + scarf_on_head: 頭上的圍巾 + scarf_over_mouth: 圍巾在嘴上 + scarf_removed: 圍巾被取下 + adjusting_scarf: 調整圍巾 + holding_scarf: 拿著圍巾 + scarf_pull: 扯圍巾 + brown_scarf: 棕色圍巾 + scarf: 圍巾 + + - name: 眼鏡 + color: rgba(230, 84, 128, .4) + tags: + glasses: 眼鏡 + eyewear: 眼睛 + monocle: 單片眼鏡 + under-rim_eyewear: 帶框眼鏡 + rimless_eyewear: 無框眼鏡 + semi-rimless_eyewear: 半無框眼鏡 + red-framed_eyewear: 紅框眼鏡 + round_eyewear: 圓框眼鏡 + black-framed_eyewear: 黑框眼鏡 + tinted_eyewear: 有色眼鏡 + medical_eyepatch: 醫用眼罩 + bandage_over_one_eye: 用繃帶包紮一只眼睛 + crooked_eyewear: 歪斜的眼鏡 + eyewear_removed: 取下眼鏡 + sunglasses: 太陽鏡 + goggles: 風鏡 + Blindfold: 眼罩 + eyepatch: 眼罩(獨眼) + visor: 面罩|遮陽帽舌|遮陽板 + bespectacled: 戴眼鏡的 + blue-framed_eyewear: 藍框眼鏡 + brown-framed_eyewear: 棕色鏡框眼鏡 + coke-bottle_glasses: 厚如玻璃瓶底的圓眼鏡 + no_eyewear: 去掉了(原設有的)眼鏡 + opaque_glasses: 沒透出眼睛的眼鏡 + over-rim_eyewear: 下半無框眼鏡 + + - name: 面具 + color: rgba(230, 84, 128, .4) + tags: + mask: 面具 + half_mask: 半面罩 + masked: 蒙面 + mask_lift: 抬起面罩 + mask_on_head: 掀到頭上的面具 + mask_removed: 摘下的面具 + mouth_mask: 口罩 + surgical_mask: 醫用口罩 + plague_doctor_mask: 瘟疫醫生口罩 + gas_mask: 防毒面具 + visor: 面甲 + helmet: 頭盔 + fox_mask: 狐狸面具 + diving_mask: 潛水面罩 + diving_mask_on_head: 頭戴式潛水面罩 + oni_mask: 鬼面具 + tengu_mask: 天狗面具 + ninja_mask: 忍者面具 + skull_mask: 骷髏面具 + hockey_mask: 曲棍球面具 + bird_mask: 鳥面具 + stone_mask: 石鬼面 + horse_mask: 馬面具 + masquerade_mask: 化妝舞會面具 + domino_mask: SM面具 + + - name: 手臂 + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: 長袖 + short_sleeves: 短袖 + wide_sleeves: 寬袖 + furisode: 振袖 + detached_sleeves: 分離式袖子 + single_sleeve: 單袖 + sleeveless: 無袖 + asymmetrical_sleeves: 不對稱袖子 + puffy_sleeves: 蓬蓬的袖子 + puffy_long_sleeves: 蓬蓬長袖 + puffy_short_sleeves: 蓬蓬短袖 + frilled_sleeves: 褶袖邊 + juliet_sleeves: 朱麗葉袖 + bandaged_arm: 繃帶手臂 + raglan_sleeves: 插肩袖 + vambraces: 下臂護甲 + layered_sleeves: 分層袖子 + fur-trimmed_sleeves: 毛邊袖子 + see-through_sleeves: 透明袖子 + torn_sleeves: 撕裂的袖子 + sleeves_past_fingers: 袖子過指 + sleeves_past_wrists: 袖子過腕 + sleeves_past_elbows: 袖子過肘 + sleeves_pushed_up: 袖子上推 + arm_out_of_sleeve: 袖子裡的手臂 + uneven_sleeves: 不均勻的袖子 + mismatched_sleeves: 不匹配的袖子 + sleeve_rolled_up: 袖子卷起 + sleeves_rolled_up: 單只袖子卷起 + feather-trimmed_sleeves: 羽毛裝飾的袖子 + hands_in_opposite_sleeves: 雙手交叉伸進袖子裡 + lace-trimmed_sleeves: 蕾絲邊袖子 + pinching_sleeves: 掐袖子 + puffy_detached_sleeves: 蓬蓬的袖子 + ribbed_sleeves: 稜紋袖子 + single_detached_sleeve: 單邊沒脫掉的袖子 + sleeves_folded_up: 疊起來的袖子 + striped_sleeves: 條紋袖子 + wrist_cuffs: 和袖子分開的手腕的袖口 + armband: 袖章(臂帶) + armlet: 臂鐲 + + - name: 手 + color: rgba(230, 84, 128, .4) + tags: + bandage: 繃帶 + leash: 皮帶 + arm_tattoo: 手臂紋身 + number_tattoo: 數字紋身 + bead_bracelet: 珠子手鏈 + bracelet: 手鐲 + flower_bracelet: 花手鐲 + spiked_bracelet: 帶釘手鐲 + wrist_cuffs: 腕飾 + wristband: 腕帶 + bracer: 護腕 + cuffs: 袖口 + bound_wrists: 綁定手腕 + wrist_scrunchie: 手腕髮圈 + handcuffs: 手銬 + shackles: 手銬 + chains: 鎖鏈 + chain_leash: 鎖鏈帶牽繩 + + - name: 手套 + color: rgba(230, 84, 128, .4) + tags: + gloves: 手套 + gloves_removed: 脫下手套 + no_gloves: 去掉了(原設有的)手套 + single_glove: 單只手套 + single_elbow_glove: 單手戴著過肘的手套 + long_gloves: 長手套 + elbow_gloves: 長袖手套(肘部手套) + bridal_gauntlets: 新娘手套 + half_gloves: 很短的手套|半截手套 + fingerless_gloves: 露指手套 + partially_fingerless_gloves: 部分露指手套 + paw_gloves: 爪子手套(分指手套) + mittens: 連指手套(兩指手套) + baseball_mitt: 棒球手套 + fur-trimmed_gloves: 毛邊手套 + latex_gloves: 乳膠手套 + lace-trimmed_gloves: 蕾絲邊手套 + leather_gloves: 皮手套 + frilled_gloves: 花邊手套 + mismatched_gloves: 雙色手套 + multicolored_gloves: 多色款手套 + asymmetrical_gloves: 不對稱的手套 + brown_gloves: 棕色手套 + oven_mitts: 隔熱手套 + print_gloves: 印花手套 + striped_gloves: 條紋手套 + torn_gloves: 破損的手套 + + - name: 耳飾 + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: 十字耳環 + crystal_earrings: 水晶耳環 + earrings: 耳環 + flower_earrings: 花耳環 + heart_earrings: 心形耳環 + hoop_earrings: 環狀耳環 + multiple_earrings: 多個耳環 + pill_earrings: 藥丸樣式的耳環 + single_earring: 只一邊戴著耳環 + skull_earrings: 骷髏耳環 + star_earrings: 星形耳環 + + - name: 頭飾 + color: rgba(230, 84, 128, .4) + tags: + halo: 光環 + mechanical_halo: 機械光環 + headwear: 頭飾 + headpiece: 頭飾 + headwear_removed: 頭飾已移除 + head_wreath: 頭花環 + crown: 皇冠 + mini_crown: 迷你皇冠 + tiara: 頭冠 + diadem: 同上 + tilted_headwear: 傾斜的頭飾 + head_fins: 頭鰭 + maid_headdress: 女僕頭飾 + bridal_veil: 新娘頭紗 + headband: 頭帶 + helmet: 頭盔 + alternate_headwear: 與原設不同的頭飾 + fur-trimmed_headwear: 毛邊頭飾 + goggles_on_headwear: 帽子上的護目鏡 + earphones: 耳機 + earmuffs: 耳罩 + ears_through_headwear: 耳朵穿過頭飾 + xx_on_head: xx在頭上 + leaf_on_head: 頭上的葉子 + topknot: 纂 + suigintou: 水銀頭 + triangular_headpiece: 三角頭飾 + forehead_protector: 護額 + radio_antenna: 天線 + animal_hood: 獸耳頭罩 + arrow_(symbol): 箭頭 + axe: 斧頭 + bald: 禿頭 + bandana: 頭巾 + bob_cut: 波波頭 + bone: 骨頭 + bowl_cut: 鍋蓋頭 + circlet: 頭冠 + double_bun: 團子頭 + double_dildo: 雙頭假陰莖 + drill: 鑽頭 + faucet: 水龍頭 + hachimaki: 扎頭巾(名詞) + hair_behind_ear: 耳後有頭髮 + hair_bell: 頭髮上系著鈴鐺 + hair_bun: 髮髻|團子頭 + hair_down: 披下來的頭髮 + hair_flaps: 在擺動的頭髮 + hair_flip: 撥頭髮 + hair_flower: 頭髮上別著花 + hair_spread_out: 散開的頭髮 + hair_up: 盤起來的頭髮 + helm: 戴著頭盔的 + helmet_removed: 摘下頭盔|被摘下的頭盔 + horned_helmet: 帶角頭盔 + japari_bun: 加帕里饅頭 + kerchief: 方頭巾 + mami_mogu_mogu: 麻美斷頭梗 + mob_cap: 頭巾式室內女帽 + one_side_up: 只扎了一邊的頭髮 + owl: 貓頭鷹 + pier: 突碼頭 + pillow: 枕頭 + raised_fist: 舉起的拳頭 + skull_and_crossbones: 頭骨和交叉的骨頭 + stone: 石頭 + turban: 穆斯林頭巾 + twin_drills: 雙鑽頭髮型 + updo: 頭髮往上蜷的髮型 + wet_hair: 濕頭髮 + headdress: 頭部穿戴物(偏籠統) + adjusting_headwear: 整理頭飾 + bear_hair_ornament: 熊印花頭飾 + brown_headwear: 棕色頭飾 + horned_headwear: 角狀頭飾 + horns_through_headwear: 為角留了洞的頭飾 + no_headwear: 去掉了(原設有的)頭飾 + object_on_head: 頭上有非頭飾類的物體 + print_headwear: 印花頭飾 + bone_hair_ornament: 骨頭狀飾品 + bunny_hair_ornament: 兔子飾品 + horn_ornament: 角上有飾物 + animal_on_head: 頭上有動物 + behind-the-head_headphones: 從後腦戴上的耳機 + bird_on_head: 頭上的鳥 + cat_ear_headphones: 貓耳式耳機 + cat_on_head: 頭上趴著貓 + eyewear_on_head: 眼鏡別在頭上 + forehead: 額頭 + forehead_jewel: 額前有寶石 + forehead_kiss: 親吻額頭 + forehead_mark: 額前有圖案 + forehead-to-forehead: 額頭貼額頭 + goggles_on_head: 頭上別著護目鏡 + head: 頭 + head_bump: 頭上起包 + head_down: 低著頭 + head_mounted_display: 戴著頭戴顯示設備 + head_out_of_frame: 一部分頭部沒畫進框裡 + head_rest: 枕著頭|托著頭 + head_tilt: 歪著頭 + head_wings: 頭上有翅膀 + headgear: 頭部飾品(含一定科幻元素) + headphones: 耳機 + heads-up_display: 狀態條(遊戲和科幻風格) + headset: 頭戴式耳機 + inter_headset: EVA神經連接器 + on_head: 在頭上 + person_on_head: 小人兒在頭上 + single_head_wing: 單側頭上有翅膀 + + - name: 帽子 + color: rgba(230, 84, 128, .4) + tags: + hat: 帽子 + no_hat: 沒有帽子 + large_hat: 大帽子 + mini_hat: 迷你帽 + witch_hat: 魔女帽 + mini_witch_hat: 迷你魔女帽 + wizard_hat: 巫師帽子 + party_hat: 派對帽 + jester_cap: 小丑帽 + tokin_hat: 大禮帽 + top_hat: 高頂禮帽 + mini_top_hat: 迷你禮帽 + bowler_hat: 圓頂禮帽 + pillbox_hat: 藥盒帽 + cloche_hat: 鐘形女帽 + side_cap: 側邊帽 + military_hat: 軍帽 + beret: 貝雷帽 + garrison_cap: 駐軍帽 + police_hat: 警察帽 + nurse_cap: 護士帽 + chef_hat: 廚師帽 + school_hat: 校帽 + pirate_hat: 海盜帽 + cabbie_hat: 出租車司機帽 + bucket_hat: 漁夫帽 + hardhat: 安全帽 + straw_hat: 草帽 + sun_hat: 太陽帽 + rice_hat: 斗笠 + animal_hat: 動物帽 + fur_hat: 皮帽 + hat_with_ears: 帶耳朵的帽子 + bobblehat: 泡泡帽 + pillow_hat: 枕帽 + pumpkin_hat: 南瓜帽 + baseball_cap: 棒球帽 + flat_cap: 鴨舌帽 + torn_hat: 撕裂的帽子 + mob_cap: 暴民帽 + newsboy_cap: 報童帽 + bowknot_over_white_beret: 白色貝雷帽上的蝴蝶結 + backwards_hat: 反扣的帽子 + bowl_hat: 碗狀帽子 + cat_hat: 貓耳帽子 + chat_log: 聊天框風格 + cowboy_hat: 牛仔帽 + dixie_cup_hat: 狗盆帽 + hat_bow: 帶有蝴蝶結的帽子 + hat_feather: 帶有羽毛的帽子 + hat_flower: 帶著花的帽子 + hat_ornament: 帶有飾物的帽子 + hat_over_one_eye: 帽子遮住了一只眼 + hat_removed: 帽子被摘下|摘下帽子 + hat_ribbon: 帶有緞帶的帽子 + hat_tip: 捏著帽檐 + hatching_(texture): 線影法(紋理) + hatsune_miku_(cosplay): cos成初音未來 + is_that_so: so-nanoka(是這樣啊的口癖) + porkpie_hat: 道士帽 + sailor_hat: 水手帽 + santa_hat: 聖誕帽 + sideways_hat: 帽舌劃到側面 + what: 作者犯病 + what_if: 另一條世界線 + + - name: 髮飾 + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: 髮帶 + hairband: 髮帶 + hair_tie: 髮帶 + lolita_hairband: 洛麗塔髮帶 + frilled_hairband: 褶邊髮帶 + lace-trimmed_hairband: 蕾絲邊飾髮帶 + hair_bobbles: 頭繩 + hair_ornament: 髮飾 + hair_flower: 髮花 + x_hair_ornament: x_髮飾 + hair_bow: 蝴蝶結髮飾 + frog_hair_ornament: 青蛙髮飾 + heart_hair_ornament: 心形髮飾 + butterfly_hair_ornament: 蝴蝶髮飾 + star_hair_ornament: 星星髮飾 + food-themed_hair_ornament: 食物主題髮飾 + anchor_hair_ornament: 錨形髮飾 + bat_hair_ornament: 蝙蝠髮飾 + carrot_hair_ornament: 胡蘿蔔髮飾 + cat_hair_ornament: 貓系髮飾 + clover_hair_ornament: 三葉草髮飾 + crescent_hair_ornament: 月牙髮飾 + cross_hair_ornament: 十字髮飾 + d-pad_hair_ornament: 方向鍵髮飾 + fish_hair_ornament: 魚形髮飾 + hairpods: 頭髮上成對的像無線藍牙的髮飾 + leaf_hair_ornament: 葉子髮飾 + musical_note_hair_ornament: 音符髮飾 + pumpkin_hair_ornament: 南瓜髮飾 + skull_hair_ornament: 骷髏髮飾 + snake_hair_ornament: 蛇形髮飾|蛙頭髮飾 + snowflake_hair_ornament: 雪花髮飾 + strawberry_hair_ornament: 草莓髮飾 + sunflower_hair_ornament: 向日葵髮飾 + hairpin: 髮夾 + hairclip: 髮夾 + hair_tubes: 髮管 + hair_stick: 髮棒 + hair_bun: 髮髻 + single_hair_bun: 髮髻(單) + hair_bell: 髮鈴 + hair_rings: 髮圈 + + - name: 小裝飾 + color: rgba(230, 84, 128, .4) + tags: + ring: 戒指 + wedding_band: 婚戒 + earrings: 耳環 + single_earring: 單耳環 + stud_earrings: 耳釘 + necklace: 項鍊 + jewelry: 首飾 + crystal: 水晶 + brooch: 胸針 + gem: 寶石 + chest_jewel: 胸前寶石 + forehead_jewel: 額頭寶石 + tassel: 流蘇 + belly_chain_: 肚鏈 + lace: 花邊 + ribbon: 絲帶 + stitches: 縫飾 + scarf: 圍巾 + bandaid: 創可貼 + collar: 項圈 + belt: 皮帶 + steam: 蒸汽 + bell: 鈴鐺 + amulet: 護身符 + emblem: 徽章 + flag_print: 旗印 + anchor_symbol: 錨符號 + cross: 十字 + diffraction_spikes: 衍射十字星 + iron_cross: 鐵十字架 + latin_cross: 拉丁式十字架 + lace-trimmed_hairband: 蕾絲邊髮帶 + ankle_lace-up: 腳踝系帶 + st._gloriana's_(emblem): 聖葛羅莉安娜女學園校徽 + heart_lock_(kantai_collection): 艦娘鎖(艦C) + garters: 襪帶 + thigh_strap: 大腿綁帶 + thigh_ribbon: 大腿緞帶 + leg_garter: 腿環|襪帶 + garter_straps: 吊帶襪的吊帶 + leg_ribbon: 腿鍛帶 + bandaid_on_leg: 腿上的繃帶 + bandaged_leg: 包紮過的腿 + arm_garter: 臂環 + joints: 關節 + kneepits: 膝蓋 + knee_pads: 護膝 + thigh_holster: 大腿皮套 + bandaid_on_knee: 膝蓋上的創可貼 + + - name: 首飾 + color: rgba(230, 84, 128, .4) + tags: + bracelet: 手鏈 + choker: 項圈 + metal collar: 金屬項圈 + ring: 戒指 + wristband: 腕帶 + pendant: 吊墜 + brooch: 胸針 + hoop earrings: 圈形耳環 + bangle: 手鐲 + stud earrings: 耳釘 + sunburst: 旭日形首飾 + pearl bracelet: 珍珠手鏈 + drop earrings: 耳墜 + puppet rings: 木偶戒指 + corsage: 胸花 + sapphire brooch: 藍寶石胸針 + jewelry: 珠寶首飾 + necklace: 項鏈 + +- name: 表情動作 + groups: + - name: 笑 + color: rgba(241, 229, 140, .4) + tags: + smile: 微笑 + laughing: 大笑 + kind_smile: 開心 + :d: 開心的笑_:D😀 + ;d: 眨眼笑_:D + grin: 露齒咧嘴笑 + teasing_smile: 被逗笑,咧嘴傻笑 + seductive_smile: 魅惑的微笑 + smirk: 傻笑,自鳴得意的笑 + giggling: 咯咯傻笑 + smug: 洋洋得意 + naughty_face: 調皮的臉 + evil smile: 邪惡笑 + crazy_smile: 瘋狂的笑 + happy: 快樂|幸福 + happy_birthday: 生日快樂 + happy_halloween: 萬聖節快樂 + happy_new_year: 新年快樂 + happy_tears: 開心的眼淚 + happy_valentine: 情人節快樂 + + - name: 哭 + color: rgba(241, 229, 140, .4) + tags: + sad: 傷心 + tear: 啜泣 + crying: 大哭 + crying_with_eyes_open: 睜著眼睛哭 + streaming_tears: 流淚 + teardrop: 淚珠 + tearing_clothes: 撕破衣服 + tearing_up: 要哭的表情 + tears: 眼淚 + wiping_tears: 擦眼淚 + badmood: 心情不好 + + - name: 不開心 + color: rgba(241, 229, 140, .4) + tags: + frustrated: 沮喪 + frustrated_brow: 沮喪的眉頭 + annoyed: 苦惱的 + anguish: 苦悶 + sigh: 嘆氣 + gloom: 憂鬱的 + disappointed: 失望的 + despair: 絕望 + + - name: 蔑視 + color: rgba(241, 229, 140, .4) + tags: + disgust: 厭惡(看垃圾一樣的眼神) + disdain: 輕蔑 + contempt: 蔑視 + shaded_face: 臉上有陰影,配合蔑視 + jitome: 鄙夷的眼神 + frown: 皺眉/蹙額 + wince: 皺眉蹙額(性交前) + furrowed_brow: 眉頭緊鎖 + fear_kubrick: 害怕側目 + laughing: 在笑的 + + - name: 生氣 + color: rgba(241, 229, 140, .4) + tags: + angry: 生氣的 + glaring: 怒目而視 + serious: 嚴肅的(和angry有點像) + kubrick_stare: 側頭瞪著你 + evil: 邪惡的 + sulking: 生_悶氣 + screaming: 尖叫|大聲喊 + shouting: 喊叫 + + - name: 其他表情 + color: rgba(241, 229, 140, .4) + tags: + expressionless: 面無表情 + sleepy: 困乏的 + drunk: 喝醉的 + bored: 無聊的 + confused: 使困惑 + thinking: 思考 + lonely: 孤獨 + light_blush: 輕微臉紅 + blush: 臉紅 + shy: 害羞的 + embarrass: 害羞的(尷尬的) + facepalm: 捂臉 + flustered: 慌張的 + sweat: 流汗 + scared: 害怕的 + ahegao: 阿黑顏 + endured_face: 忍耐的表情 + restrained: 忍耐 + dark_persona: 黑化的 + crazy: 瘋狂的 + exhausted: 筋疲力盡的 + Tsundere: 傲嬌 + yandere: 病嬌 + multiple_persona: 多重人格 + Jekyll_and_Hyde: 多重人格 + twitching: 抽搐 + spasm: 痙攣 + trembling: 顫抖 + rape_face: 強姦臉 + rolling_eyes: 翻白眼(高潮眼) + envy: 嫉妒 + female_orgasm: 絕頂 + heavy_breathing: 重呼吸,可能沒用 + naughty: 淘氣 + expressions: 表情差分(大概) + moaning: 呻吟 + scowl: 嫌棄的眼神 + + - name: 基礎動作 + color: rgba(241, 229, 140, .4) + tags: + standing: 站立 + on back: 躺 + on stomach: 趴 + kneeling: 跪 + on_side: 側臥 + on_stomach: 趴著 + top-down_bottom-up: 趴著翹臀 + the_pose: 趴在地上並翹起腳 + bent_over: 翹臀姿勢 + upside-down: 倒立 + reversal: 反轉 + fighting_stance: 戰鬥姿態 + leaning_to_the_side: 靠在一邊 + leaning: 倚靠|身體傾斜 + leaning_back: 身體往後靠 + leaning_on_object: 靠在物體上 + arched_back: 弓身體 + leaning_forward: 身體前傾 + afloat: 浮(在水上 + lying: 躺著的 + fetal_position: 胎兒姿勢(躺) + lying_on_person: 躺在人身上 + lying_on_the_lake: 躺在湖面上 + lying_on_water: 躺在水中 + on_back: 仰躺 + prone_bone: 俯臥後入 + reclining: 斜倒斜躺姿勢 + sleeping_upright: (不躺著)睡覺|直立睡覺 + presenting: 展示(後接部位) + spinning: 旋轉 + posing: 擺姿勢 + stylish_pose: 時尚姿勢 + public_indecency: 公然猥褻 + parody: 模仿 + in_container: 在容器中 + against_glass: 擠壓玻璃(無效) + aiming: 瞄準 + aiming_at_viewer: 瞄準了讀者(的視角) + applying_makeup: 化妝 + bathing: 洗澡 + biting: 咬 + bleeding: 出血 + blowing: 吹 + bowing: 鞠躬 + breathing_fire: 噴火 + broom_riding: 騎掃帚 + brushing_teeth: 刷牙 + bubble_blowing: 吹泡泡 + bullying: 欺負 + burning: 燃燒 + cast: 投擲 + chasing: 追逐 + cleaning: 打掃 + climbing: 攀爬 + comforting: 安慰 + cooking: 烹飪 + crying: 哭 + cuddling: 擁抱 + dancing: 跳舞 + diving: 潛水 + dragging: 拖某物 + drawing: 繪畫 + drawing_bow: 拉弓 + dreaming: 夢 + drinking: 喝 + driving: 駕駛 + dropping: (意外)掉落 + drying: 弄乾(浴後) + dual_wielding: 雙持 + exercise: 運動 + fighting: 戰鬥中的 + firing: 射擊 + fishing: 釣魚 + flapping: 拍打動作 + flashing: 露出 + fleeing: 在逃跑的 + flexing: 秀肌肉 + flying: 飛行 + flying_kick: 飛踢 + hair_brushing: 梳頭 + hair_tucking: 撩頭髮 + hanging: 吊起來的 + hitting: 击打 + imagining: 在想像的 + jumping: 跳躍 + kicking: 踢 + licking: 舔 + licking_lips: 舔嘴唇 + lip_biting: 咬嘴唇 + meditation: 冥想 + painting: 繪畫 + Painting_(Action): 畫畫 + playing_card: 撲克牌 + playing_games: 打遊戲 + playing_instrument: 演奏樂器 + pole_dancing: 鋼管舞 + praying: 祈禱 + punching: 揮拳 + pushing: 推搡 + railing: 用手扶著 + reading: 閱讀 + riding: 騎 + running: 奔跑 + sewing: 縫紉 + shopping: 購物 + showering: 淋浴 + sing: 唱歌 + singing: 唱歌 + slashing: 砍 + sleeping: 睡覺 + smelling: 嗅 + smoking: 抽煙 + sneezing: 打噴嚏 + snowing: 下雪 + soaking_feet: 泡腳 + soccer: 足球運動 + spilling: 從容器中倒出液體的動作 + spitting: 從嘴裡吐出液體的動作 + splashing: 飛濺 + standing_on_liquid: 站在水上或液體上 + standing_on_one_leg: 單腿站立 + standing_split: 站立劈叉|站立高抬腿 + steepled_fingers: 指尖抵著指間 + strangling: 絞首 + sweeping: 打掃 + swimming: 游泳 + swing: 擺動 + tail_wagging: 搖尾巴 + taking_picture: 拍照|自拍 + talking: 有台詞的 + talking_on_phone: 打電話 + teasing: 戲弄 + thinking: 思考 + tickling: 挠癢癢 + toilet_use: 上廁所 + tossing_: 投擲 + tripping: 被絆倒 + trolling: 惡搞行為 + twitching: 抽搐 + tying: 打結(動作) + unsheathing: 拔出鞘的 + untying: 解開的 + unzipping: 拉開拉鍊(動作) + wading: 涉水 + waking_up: 醒來 + walking: 走路 + walking_on_liquid: 在液體上行走 + washing: 洗滌 + whispering: 講悄悄話 + wrestling: 摔角(運動) + writing: 寫作 + yawning: 打哈欠 + hiding: 躲藏 + + - name: 手部動作 + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: 手放在身後 + arm_above_head: 手在頭上 + arm_behind_head: 手放頭後 + arms_crossed: 手交叉於胸前 + arm_support: 用手支撐住 + armpits: 露腋 + arms_up: 舉手 + hands_on_hips: 雙手叉腰 + arm_around_waist: 單手摟腰 + caramelldansen: 某著名伸手扭腰動作 + hands_in_opposite_sleeves: 雙手反袖 + waving: 招手 + crossed_arms: 交叉雙臂 + outstretched_arms: 伸出雙臂 + v_arms: 雙臂擺出V + w_arms: 雙臂擺出W + salute: 敬禮 + reaching: (有目的地)伸手 + reaching_out: 朝畫外伸手 + stretch: 伸懶腰 + hugging_own_legs: 擁抱自己的腿 + arm_blade: 手臂刀刃 + arm_grab: 抓住手臂 + arm_held_back: 手臂往後拉 + arm_ribbon: 手臂絲帶 + bandaged_arm: 纏著繃帶的手臂 + bandaid_on_arm: 手臂上貼著創可貼 + bound_arms: 手臂被束縛 + convenient_arm: 遮住關鍵部位的手臂 + extra_arms: 多隻手臂 + locked_arms: 互挽手臂 + outstretched_arm: 伸出手臂 + waving_arms: 揮舞著手臂 + arm_at_side: 單手垂放 + arm_behind_back: 單手背到身後 + shou: 單手托在腦後 + arm_cannon: 手炮 + arm_hug: 挽手 + arm_up: 舉著手 + arms_at_sides: 雙手垂放 + arms_behind_head: 雙手抱頭 + hand_to_mouth: 手放在嘴邊 + shushing: 噓手勢 + cat_pose: 貓爪手勢 + claw_pose: 爪手勢 + paw_pose: 招財貓手勢(下彎手腕) + fox_shadow_puppet: 狐狸手勢 + double_fox_shadow_puppet: b + finger_gun: 手指槍手勢 + v: 勝利手勢 + double_v: 雙_v + thumbs_up: 翹大拇指 + index_finger_raised: 食指抬起 + middle_finger: 國際友好手勢 + grimace: 做鬼臉 + eyelid_pull: 做鬼臉 + fingersmile: 用手指做出笑臉 + wiping_tears: 擦眼淚 + finger_on_trigger: 準備扣扳機的手勢 + pointing_at_self: 指著自己 + pointing_at_viewer: 指向看圖的人 + pointing_up: 向上指 + poking: 戳 + hand_gesture: 做手勢 + ok_sign: OK手勢 + shading_eyes: 遮陽手勢 + finger_biting: 咬手指 + finger_in_mouth: 吮吸手指 + fingering_through_clothes: 手指 + fingers_together: 手指並攏 + hair_twirling: 手指捲著頭髮 + hands_clasped: 雙手手指交叉|雙手緊握 + holding_hair: 握著頭髮|手指繞著頭髮 + pointing: 用手指著 + sharp_fingernails: 銳利的手指甲 + sleeves_past_fingers: 袖子長過手指 + spread_fingers: 張開手指 + trigger_discipline: 手指沒放在扳機上 + w: 手指比W + balancing: (保持)平衡的姿勢 + curvy: 展現魅力的姿勢 + multiple_views: 多角度|多姿勢 + pose: 姿勢 + ready_to_draw: 準備拔刀的姿勢 + trefoil: 一種女性展示臀部的姿勢 + zombie_pose: 僵屍姿勢 + beckoning: 招手 + bunching_hair: 手持辮子 + carrying: 抱起 + carrying_over_shoulder: 肩扛 + carrying_under_arm: 夾在腋下 + cheering: 助威 + finger_to_mouth: 手抵在嘴唇邊 + cheek_pinching: 捏臉頰 + cheek_poking: 戳臉頰 + chin_stroking: 摸下巴 + hair_pull: 拉頭髮 + covering_mouth: 遮蓋嘴 + covering_xx: 遮蓋xx + self_fondle: 自我撫摸 + adjusting_thighhigh: 調整過膝襪 + chin_rest: 托臉頰 + head_rest: 托頭 + take: 拿著 + _sheet_grab: 抓床單 + groping: 摸索 + skirt_lift: 掀裙子 + crotch_grab: 手抓襠部 + covering_chest_by_hand: 用手遮住胸部 + bangs_pinned_back: 掀起的劉海 + clothes_lift: 掀起衣物 + dress_lift: 掀起裙子 + kimono_lift: 掀起和服 + lifted_by_another: 被對方掀起衣物 + lifted_by_self: 掀起自己的衣物 + shirt_lift: 拉起掀起卷起襯衫 + skirt_basket: 指掀起裙子時形成的籃子形狀 + skirt_flip: 被掀起裙子(含突發情況意義) + bikini_lift: 往上剝開的比基尼 + leg_lift: 單腿抬高 + lifting_person: 將人抱起 + strap_lift: 往上掰衣物的吊帶 + wind_lift: 起風效果|上升氣流 + bikini_pull: 扯著比基尼 + cheek_pull: 扯臉頰 + clothes_pull: 拉開衣物 + dress_pull: 剝下裙子胸口的部分 + hair_pulled_back: 頭髮往後扎 + kimono_pull: 剝開和服 + leotard_pull: 剝開連衣褲 + mask_pull: 拉著口罩 + pants_pull: 拉著褲子 + pulled_by_another: 被另一個人拉(或拉衣物) + pulled_by_self: 拉下自己的衣物 + pulling: 拉 + shirt_pull: 拉開襯衫 + shorts_pull: 褪下短褲 + skirt_pull: 拉開裙子 + swimsuit_pull: 扯下泳衣 + zipper_pull_tab: 拉鍊的拉片 + adjusting_clothes: 撥弄衣服 + adjusting_eyewear: 扶眼鏡 + adjusting_gloves: 撥弄手套 + adjusting_hair: 理頭髮 + adjusting_hat: 整理帽子 + adjusting_swimsuit: 撥弄泳衣 + + - name: 手部動作(拿著某物) + color: rgba(241, 229, 140, .4) + tags: + holding: 拿著某物 + holding_animal: 抱著動物 + holding_arrow: 拉著弓 + holding_axe: 握著斧頭 + holding_bag: 提著包 + holding_ball: 抱著球 + holding_basket: 提著籃子 + holding_book: 捧著書 + holding_bottle: 拿著瓶子 + holding_bouquet: 手捧花束 + holding_bow_(weapon): 拿著弓(武器) + holding_bowl: 端著碗 + holding_box: 端著箱子 + holding_breath: 憋氣 + holding_broom: 手持掃帚 + holding_camera: 手持攝像機 + holding_can: 拿著易拉罐 + holding_candy: 手持糖果 + holding_card: 手持卡片 + holding_cat: 抱著貓 + holding_chopsticks: 拿著筷子 + holding_cigarette: 手叼香煙 + holding_clothes: 拿著衣服 + holding_condom: 拿著避孕套 + holding_cup: 手持杯子 + holding_dagger: 手持匕首 + holding_doll: 抱著玩偶 + holding_eyewear: 拿著眼鏡|正在摘眼鏡 + holding_fan: 拿著扇子 + holding_flag: 手持旗幟 + holding_flower: 拿著花 + holding_food: 拿著食物 + holding_fork: 拿著餐叉 + holding_fruit: 拿著水果 + holding_gift: 拿著禮物 + holding_gun: 拿著槍 + holding_hands: 牽手 + holding_hat: 拿著帽子 + holding_head: 手裡捧著頭 + holding_helmet: 拿著頭盔 + holding_innertube: 拿著泳圈 + holding_instrument: 拿著樂器 + holding_knife: 拿著刀 + holding_leaf: 拿著葉子 + holding_lollipop: 拿著棒棒糖 + holding_mask: 拿著面具 + holding_microphone: 拿著麥克風 + holding_needle: 拿著縫衣針 + holding_own_foot: 握著自己的腳 + holding_paintbrush: 手握畫筆 + holding_paper: 拿著紙 + holding_pen: 握筆 + holding_pencil: 手持鉛筆 + holding_phone: 拿著手機 + holding_pillow: 抱著枕頭 + holding_pipe: 拿著煙斗 + holding_pizza: 拿著披薩 + holding_plate: 端著碟子 + holding_poke_ball: 拿著精靈球 + holding_pokemon: 抱著寶可夢 + holding_polearm: 手持長柄武器 + holding_sack: 拎著包袱 + holding_scythe: 手持鐮刀 + holding_sheath: 握著刀鞘 + holding_shield: 手持盾牌 + holding_shoes: 拿著鞋子 + holding_sign: 手持招牌 + holding_spear: 手持長矛 + holding_spoon: 拿著湯匙 + holding_staff: 手持法杖 + holding_strap: 手拉著吊帶 + holding_stuffed_animal: 抱著毛絨玩具 + holding_stylus: 手持手寫筆 + holding_sword: 手持劍 + holding_syringe: 手持注射器 + holding_towel: 拿著毛巾 + holding_tray: 托著盤子 + holding_umbrella: 撐傘 + holding_wand: 握著棒子 + holding_whip: 握著鞭子 + arm_around_neck: 單手摟著脖子 + arms_around_neck: 雙手摟著脖子 + + - name: 手部動作(放在某地) + color: rgba(241, 229, 140, .4) + tags: + covering: 遮蓋的動作 + covering_face: 擋住臉 + covering_ass: 遮著臀部 + covering_crotch: 遮著襠部 + covering_eyes: 遮住眼睛 + covering_mouth: 擋住嘴巴 + covering_nipples: 擋住乳頭 + hands_on_another's_: 雙手放在別人的臉上 + hands_on_another's_cheeks: 雙手放在對方的臉頰上 + hands_on_ass: 雙手放在屁股上 + hands_on_feet: 雙手放在腳上 + hands_on_headwear: 雙手碰到頭上的飾物 + hands_on_hilt: 雙手搭在刀柄上 + hands_on_lap: 雙手放在兩腿之間 + hands_on_own_face: 雙手放在自己的臉上 + hands_on_own_cheeks: 雙手放在自己的臉頰上 + hands_on_own_chest: 雙手放在自己的胸口 + hands_on_own_head: 雙手放在自己的頭上 + hands_on_own_knees: 雙手放在自己的膝蓋上 + hands_on_own_stomach: 雙手放在自己的肚子上 + hands_on_own_thighs: 雙手放在自己的大腿上 + hands_on_another's_shoulders: 雙手放在別人的肩膀上 + hands_on_hips: 雙手叉腰|雙手擱在腰上 + hand_on_another's_: 手接觸到對方的臉 + hand_on_another's_cheek: 手摸著對方的臉頰 + hand_on_another's_chest: 手放在對方的胸前 + hand_on_another's_chin: 手托著對方的下巴 + hand_on_another's_head: 手放在對方的頭上 + hand_on_another's_shoulder: 手放在對方的肩上 + hand_on_another's_stomach: 手放在對方的肚子上 + hand_on_ass: 手放在屁股上 + hand_on_head: 手放在頭上 + hand_on_headwear: 手觸碰帽子 + hand_on_hilt: 手搁在刀柄上 + hand_on_hip: 手叉著腰|手搁在腰上 + hand_on_own_: 把手放在自己臉上 + hand_on_own_cheek: 把手放在自己的臉頰上 + hand_on_own_chest: 把手放在自己的胸口 + hand_on_own_chin: 手碰著自己的下巴 + hand_on_own_stomach: 把手放在自己的肚子上 + hand_on_shoulder: 手放在肩上 + hand_in_another's_hair: 手放在對方的頭髮上 + hand_in_hair: 手埋在頭髮裡 + hand_in_pocket: 手插在口袋裡 + + - name: 手部動作(抓著某物) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: 抓著屁股 + flat_chest_grab: 抓著貧乳 + grabbing: 抓住|抓著 + grabbing_another's_ass: 抓著對方屁股 + grabbing_another's_hair: 抓著對方的頭髮 + grabbing_from_behind: 從背後揉胸|從背後抓住胸部 + grabbing_own_ass: 抓著自己的屁股 + guided_penetration: 抓住男性器插入自己 + hair_grab: 抓著頭髮 + leg_grab: 抓著腿 + necktie_grab: 抓著領帶 + neckwear_grab: 抓著頸部的衣服 + penis_grab: 抓著陰莖 + pillow_grab: 抓著枕頭 + sheet_grab: 抓著床單 + tail_grab: 抓著尾巴 + thigh_grab: 抓著大腿 + torso_grab: 抓著軀幹 + wrist_grab: 抓著手腕 + + - name: 腿部動作 + color: rgba(241, 229, 140, .4) + tags: + legs_up: 抬一隻腿 + spread legs: 張腿 + legs_together: 兩腿並攏 + crossed_legs: 二郎腿 + m_legs: M字擺腿 + standing_split,_leg_up: M字擺腿 + curtsy: 屈膝禮(女僕行禮) + hand_between_legs: 雙腿之間的手 + open_stance: 稍息 + convenient_leg: 擋住關鍵部位的腿 + leg_lock: 用雙腿夾住 + legs: 雙腿 + legs_over_head: 雙腿抬過頭 + squatting,_open_legs: 蹲下分開雙腿 + knees_together_feet_apart: 膝蓋合併,兩腳分開 + animal_on_lap: 膝蓋上有動物 + hand_on_own_knee: 手放在自己的膝蓋上 + knee_up: 頂起膝蓋 + knees: 膝蓋 + knees_to_chest: 膝蓋頂到胸部 + on_lap: 在膝蓋上 + sitting: 坐 + wariza: 鴨子坐 + straddling: 跨坐 + yokozuwari: 側身坐 + sitting_backwards: 向後坐 + sitting_in_tree: 坐在樹上 + sitting_on_xx: 坐在物體上 + butterfly_sitting: 蝴蝶坐 + lotus_position: 坐在桌子上 + sitting_on_railing: 坐在欄杆上 + sitting_on_rock: 坐在石頭 + sitting_on_stairs: 坐在樓梯上 + sitting_on_table: 坐在桌子上 + sitting_on_water: 坐在水上 + cushion: 坐墊 + indian_style: 盤腿坐 + sitting_on_chair: 坐在椅子上 + sidesaddle: 側坐在鞍上 + sitting_on_bed: 坐在床上 + sitting_on_desk: 坐在課桌上 + sitting_on_lap: 坐在大腿上 + sitting_on_person: 坐在人身上 + upright_straddle: 對坐體位 + squatting: 蹲下 + one_knee: 一隻膝蓋 + kneeling: 下跪 + all_fours: 四肢著地 + gravure_pose: 凹版姿勢 + kicking: 踢 + high_kick: 高踢 + soaking_feet: 泡腳 + reclining: 斜倚 + hugging_own_legs: 抱自己的雙腿 + bare_legs: 裸腿 + between_legs: (強調)兩腿之間 + cropped_legs: 只畫了一部分腿 + k/da_(league_of_legends): KDA組合(英雄聯盟) + leg_belt: 腿部繫著帶子 + leg_hair: 腿毛 + leg_up: 抬起腿 + legs_apart: 兩腿分開 + lowleg: M字擺腿 + mechanical_legs: 機械義足 + multiple_legs: 多足角色 + no_legs: 沒畫出腿 + no_legwear: 襠胯以下裸著 + tail_between_legs: 尾巴蜷到兩腿之間 + barefoot: 裸足 + foot_out_of_frame: 單腳不在圖內 + footprints: 腳印 + dirty_feet: 腳的畫法錯誤 + feet: 腳 + feet_out_of_frame: 雙腳不在圖內 + feet_up: 翹起腳 + wrong_feet: 腳部作畫錯誤 + cameltoe: 駱駝趾 + pigeon-toed: 萌向的內八腿 + tiptoes: 踮起腳尖 + toe-point: 趾尖|腳尖 + amputee: 欠損|獨腳|肢體殘缺|欠損少女 + ankle_strap: 腳踝絲環 + ankle_wrap: 腳踝套 + crossed_ankles: 交叉腳踝 + pince-nez: 夾鼻眼鏡|無腳眼鏡 + folded: 舉腿露陰 + thick_thighs: 肉腿 + thigh_holster: 腿上繫著帶子或工具包或槍套 + + - name: 其他動作 + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: 胸部互碰|胸頂著胸 + back-to-back: 背對背 + cunnilingus: 舔陰 + eye_contact: 眼對眼(對視) + facing_another: 面對另一個 + facing_away: 二人面對面(臉貼得很近) + feeding: 餵食 + finger_in_another's_mouth: 口內指交 + fingering: 指交 + french_kiss: 法國之吻 + giving: 遞|贈送 + grinding: 素股|臀推 + groping: 猥褻 + holding_hands: 牽手 + hug: 擁抱 + imminent_kiss: 即將接吻 + incoming_food: 遞食物 + incoming_gift: 遞禮物 + interlocked_fingers: 緊扣的雙手 + Kabedon: 壁咚 + lap_pillow: 膝枕 + licking_penis: 舔陰莖 + long_tongue: 長舌頭 + mimikaki: 掏耳勺 + oral_invitation: 迎接射精而伸出舌頭 + princess_carry: 公主抱 + shared_bathing: 共浴|鴛鴦浴 + shared_food: 共享食物|用嘴遞食物 + sitting_on_head: 坐在頭上 + sitting_on_shoulder: 坐在肩膀上 + slapping: 掌掴 + spanking: 打屁股 + special_feeling_(meme): 雪中打傘的戀人梗 + symmetrical_docking: 胸擠胸 + tongue: 舌頭 + tongue_out: 吐舌頭 + uvula: 小舌頭|口蓋垂|懸雍垂 + ear_biting: 咬耳朵 + mixed_bathing: 混浴 + +- name: 畫面 + groups: + - name: 畫質 + color: rgba(0, 255, 255, .4) + tags: + checkered: 格子的 + lowres: 低解析度 + highres: 高解析度 + absurdres: 超高解析度 + incredibly absurdres: 極高解析度 + huge filesize: 超大檔案大小 + wallpaper: 壁紙 + pixel art: 點陣圖 + monochrome: 單色圖片 + colorful: 色彩斑斕的 + + - name: 藝術風格 + color: rgba(0, 255, 255, .4) + tags: + artbook: 原畫 + game cg: 遊戲CG + comic: 漫畫 + 4koma: 四格漫畫 + animated gif: 動態圖片 + dakimakura: 抱枕 + cosplay: 角色扮演 + crossover: 跨界 + dark: 暗的 + light: 亮的 + guro: 獵奇 + realistic: 寫實 + photo: 照片 + real: 真實 + landscape/scenery: 風景 + cityscape: 城市風景 + science fiction: 科幻 + original: 原創 + parody: 拙劣的模仿 + personification: 擬人化 + optical illusion: 視覺錯覺 + fine art parody: 名畫模仿 + sketch: 素描 + traditional media: 傳統媒體(手繪稿) + watercolor (medium): 透明水彩繪畫 + silhouette: 剪影 + cover: 封面 + album: 專輯 + sample: 圖上有文字 + back: 背影像 + bust: 半身像 + profile: 側面繪畫 + expressions: 表情繪畫(各種表情) + everyone: 一部作品中的主要人物集齊 + column lineup: 一列列小圖組成大圖 + transparent background: 透明的背景 + simple background: 簡單的背景 + gradient background: 漸層的背景 + zoom layer: 背景是前景的放大版 + 8 Bit Game: 8位元遊戲 + 1980s anime: 80年代動畫 + disney movie: 迪士尼電影 + goth: 哥德搖滾 + 80s movie: 80年代電影 + bubble bobble: 泡泡龍 + style of Pixar: 皮克斯動畫風格 + Polaroid art: 寶麗來藝術 + Kaleidoscope Photography: 萬花筒攝影 + opal render: 歐泊渲染 + chemigram: 色譜圖 + Studio Ghibli: 吉卜力風格 + dreamlike: 夢幻 + (faux traditional media): 簽繪風格 + genshin impact: 原神衝擊 + azur lane: 碧藍航線 + kantai collection: 艦隊收藏 + rebecca (cyberpunk): 邊緣行者 + chainsaw man: 電鋸人 + Magic Vortex: 魔法旋渦 + ((dieselpunk)): 柴油朋克 + magazine scan: 雜誌掃描 + album cover: 專輯封面 + (lineart): 線條變粗 + synthwave: 蒸汽波 + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): 洛可可 + + - name: 藝術類型 + color: rgba(0, 255, 255, .4) + tags: + monochrome: 單色圖片 + Collage: 拼貼藝術 + Dalle de verre: 彩色玻璃 + pixel art: 像素畫 + Encaustic painting: 瓷畫 + Ink wash painting: 水墨畫 + Mezzotint: 銅版雕刻 + silhouette: 剪影 + illustration: 插畫 + (((ink))), ((watercolor)): 水彩畫 + illustration,(((ukiyoe))),((sketch)),((japanese_art)): 浮世繪 + ((wash painting)),((ink s...)): 中國風 + ((dyeing)),((oil painting)),((impasto)): 油畫 + (posing sketch), (monochrome): 黑白草圖 + sketch: 手繪草稿 + (monochrome), (gray scale), (pencil sketch lines: 鉛筆速寫 + (watercolor pencil): 彩鉛畫 + + - name: 藝術派系 + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): 新藝術主義 + ((classicism)): 古典主義 + ((futurism)): 未來主義 + ((Dadaism)): 達達主義 + ((abstract art)): 抽象藝術 + ((ASCII art)): ASCII藝術 + + - name: 藝術家風格 + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): 穆夏風格 + ((Monet style)): 莫奈風格 + + - name: 光照 + color: rgba(0, 255, 255, .4) + tags: + rim light: 輪廓光 + Volumetric Lighting: 体積光 + glowing neon lights: 霓虹燈 + Cinematic Lighting: 電影級燈光 + lens flare: 透鏡光暈 + metallic luster: 金屬光澤 + moody lighting: 氛圍燈光 + Tyndall effect: 丁達爾效應 + light leaks: 漏光效果 + background light: 背景光 + available light: 自然光 + + - name: 寫實 + color: rgba(0, 255, 255, .4) + tags: + realistic: 寫實 + highres: 厚塗(風格) + photo_(medium): 照片(風格) + oil_painting: 油畫 + reality: 真實 + polaroid: 照片(拍立得) + + - name: 素描 + color: rgba(0, 255, 255, .4) + tags: + sketch: 素描 + flat_color: 色塊 + monochrome: 單色 + spot_color: 純色 + halftone: 半色調 + greyscale: 灰度 + high_contrast: 高對比度 + partially_colored: 部分著色 + chromatic_aberration: 色差、色失焦 + contour_deepening: 輪廓加深 + outline: 輪廓線 + silhouette: 剪影 + + - name: 畫筆 + color: rgba(0, 255, 255, .4) + tags: + traditional_media: 傳統畫布(如紙等) + faux_traditional_media: 簽繪風格 + marker_(medium): 馬克筆 + copics: 馬克筆(中性灰色) + pencil_sketch_lines: 鉛筆速寫 + graphite_(medium): 石墨鉛筆 + colored_pencil_(medium): 彩色鉛筆 + millipen_(medium): 繪圖筆 + nib_pen_(medium): 繪圖筆 + ballpoint_pen_(medium)_: 圓珠筆 + pastel_color: 柔和的色彩 + watercolor_(medium): 水彩 + acrylic_paint_(medium): 丙烯顏料畫 + contour_deepening: 線條變粗 + + - name: 顏色 + color: rgba(0, 255, 255, .4) + tags: + orange: 橙色 + blue: 藍色 + red: 紅色 + light_brown: 淺棕色 + dark_pink: 深粉色 + khaki: 卡其色 + blonde: 金黃色的 + brown: 棕色 + black: 黑色 + gray: 灰色 + darkgray: 深灰色 + silver: 銀色 + lightgray: 淺灰色 + gainsboro: 庚氏灰色 + whitesmoke: 白煙色 + snow: 雪白色 + ghostwhite: 幽靈白 + floralwhite: 花白色 + linen: 亞麻色 + antiquewhite: 古董白 + papayawhip: 番木瓜色 + blanchedalmond: 漂白杏仁色 + bisque: 餅乾色 + moccasin: 鹿皮鞋色 + navajowhite: 納瓦霍白 + peachpuff: 桃肉色 + mistyrose: 薄霧玫瑰 + lavenderblush: 淡紫紅色 + seashell: 貝殼白 + oldlace: 老花色 + ivory: 象牙色 + honeydew: 蜜色 + mintcream: 薄荷奶油色 + azure: 蔚藍色 + aliceblue: 艾莉絲藍 + lavender: 薰衣草色 + lightsteelblue: 淡鋼藍色 + lightslategray: 亮石板灰 + slategray: 灰石色 + steelblue: 鋼藍色 + royalblue: 皇家藍 + midnightblue: 午夜藍 + navy: 海軍藍 + darkblue: 深藍色 + mediumblue: 中藍色 + dodgerblue: 道奇藍 + cornflowerblue: 矢車菊藍 + skyblue: 深天藍 + lightblue: 淡藍色 + powderblue: 粉藍色 + paleturquoise: 淡青色 + lightcyan: 青色 + cyan: 碧綠色 + aquamarine: 綠松石色 + turquoise: 中綠松石色 + mediumturquoise: 深綠松石色 + darkturquoise: 淺海綠色 + lightseagreen: 軍服藍色 + cadetblue: 深青色 + darkcyan: 水鴨色 + teal: 暗灰藍色 + darkslategray: 深綠色 + darkgreen: 綠色 + green: 森林綠色 + forestgreen: 海綠色 + seagreen: 中海綠色 + mediumseagreen: 中綠寶石色 + mediumaquamarine: 暗海綠色 + darkseagreen: 綠松石色 + palegreen: 淡綠色 + lightgreen: 草綠色 + springgreen: 中春綠色 + mediumspringgreen: 草坪綠 + lawngreen: 查特酒綠色 + chartreuse: 黃綠色 + greenyellow: 酸橙色 + lime: 酸橙綠 + limegreen: 橄欖褐色 + yellowgreen: 橄欖綠色 + darkolivegreen: 橄欖色 + olivedrab: 橄欖褐色 + olive: 橄欖色 + darkkhaki: 暗卡其色 + palegoldenrod: 淡金菊色 + cornsilk: 玉米色 + beige: 米色 + lightyellow: 淺黃色 + lightgoldenrodyellow: 亮金黃色 + lemonchiffon: 檸檬綢色 + wheat: 小麥色 + burlywood: 琥珀色 + tan: 棕褐色 + yellow: 黃色 + gold: 金色 + sandybrown: 橙褐色 + darkorange: 暗橙色 + goldenrod: 金菊色 + peru: 秘魯色 + darkgoldenrod: 暗金菊色 + chocolate: 巧克力色 + sienna: 黃土赭色 + saddlebrown: 馬鞍棕色 + maroon: 栗色 + darkred: 暗紅色 + firebrick: 耐火磚色 + indianred: 印第安紅色 + rosybrown: 玫瑰棕色 + darksalmon: 深鮭魚肉色 + lightcoral: 淺珊瑚色 + salmon: 鮭魚肉色 + lightsalmon: 亮鮭魚肉色 + coral: 珊瑚色 + tomato: 番茄紅 + orangered: 橙紅色 + crimson: 深粉紅色 + mediumvioletred: 中紫羅蘭紅色 + deeppink: 深粉色 + hotpink: 熱粉紅色 + palevioletred: 淡紫羅蘭紅色 + pink: 粉色 + lightpink: 淺粉色 + thistle: 薊色 + magenta: 洋紅色 + fuchsia: 紫紅色 + violet: 紫色 + plum: 洋李色 + orchid: 蘭花紫 + mediumorchid: 中蘭花紫色 + darkorchid: 暗蘭花紫色 + darkviolet: 暗紫羅蘭色 + darkmagenta: 暗洋紅色 + purple: 紫色 + indigo: 靛藍色 + darkslateblue: 暗灰藍色 + blueviolet: 藍紫色 + mediumpurple: 中紫色 + slateblue: 石藍色 + mediumslateblue: 中石板藍色 + + - name: 背景 + color: rgba(0, 255, 255, .4) + tags: + fantasy: 幻想風格 + ban: 科技幻想 + cyberpunk: 赛博朋克 + depth_of_field: 景深(畫法) + blurry: 背景模糊 + blurry_foreground: 前景模糊 + simple_background: 簡單的背景 + black_background: 黑色背景 + white_background: 白色背景 + transparent_background: 透明背景 + beige_background: 米色背景 + brown_background: 棕色背景 + tan_background: 棕褐色背景 + grey_background: 灰色背景 + two-tone_background: 雙色調背景 + gradient_background: 漸層的背景 + multicolored_background: 多彩的背景 + rainbow_background: 彩虹背景 + abstract_background: 抽象背景 + argyle_background: 菱形背景 + checkered_background: 方格背景 + floral_background: 花朵點綴的背景 + halftone_background: 點陣圖背景 + heart_background: 桃色背景 + honeycomb_background: 蜂窩風格背景 + plaid_background: 格子呢背景 + polka_dot: 圓斑背景 + striped_background: 圓斑背景 + scenery: 風景 + landscape: 景觀 + foral_background: 花卉圖案裝飾的背景 + crop_top_overhang: 作物頂部懸垂 + starry_background: 星空背景 + sparkle_background: 閃著星光的背景 + cityscape: 城市背景 + city_lights: 城市燈光背景 + clock_background: 時鐘背景 + bubble_background: 氣泡背景 + border: 邊框 + pillarboxed: 柱狀畫布背景 + rounded_corners: 背景或畫框是圓角 + viewfinder: 相機取景框 + windowboxed: 套著畫框(背景) + outside_border: 一部分畫到了背景框外 + flashback: 回憶場景 + wall_of_text: 文字背景 + background_text: 背景文字 + +- name: 環境 + groups: + - name: 季節 + color: rgba(31, 144, 255, .4) + tags: + in spring: 春天 + in summer: 夏天 + in autumn: 秋天 + in winter: 冬天 + (autumn maple forest:1.3),(very few fallen leaves),(path): 秋景 + + - name: 天氣 + color: rgba(31, 144, 255, .4) + tags: + day: 白天 + dusk: 黃昏 + night: 夜晚 + rain: 下雨 + in the rain: 雨中 + rainy days: 雨天 + sunset: 日落 + cloudy: 多雲 + full moon: 滿月 + sun: 太陽 + moon: 月亮 + full_moon: 滿月 + stars: 星星 + sky: 天空 + universe: 宇宙 + snow,ice: 冰雪 + snowflakes: 雪花 + lighting: 閃電 + rainbow: 彩虹 + meteor shower: 流星雨 + cumulonimbus: 積雨雲 + + - name: 大自然 + color: rgba(31, 144, 255, .4) + tags: + nature: 大自然 + sea: 大海 + ocean: 海洋 + beach: 海邊 + hills: 山丘 + in a meadow: 草地 + on the beach: 海灘 + underwater: 水中 + over the sea: 海邊 + grove: 樹林 + on a desert: 沙漠 + plateau: 高原 + cliff: 懸崖 + canyon: 峽谷 + oasis: 綠洲 + bamboo forest: 竹林 + glacier: 冰川 + floating island: 浮島 + volcano: 火山 + savanna: 大草原 + waterfall: 瀑布 + stream: 溪流 + wasteland: 荒地 + field: 田園 + rice paddy: 稻田 + wheat field: 麥田 + flower field: 花田 + flower sea: 花海 + space: 太空 + starry sky: 星空 + lake: 湖泊 + river: 河流 + onsen: 溫泉 + flowers meadows: 繁花草甸 + Alps: 阿爾卑斯山脈 + Dreamy forest: 夢幻之森(虛幻感.光粒子幽靜) + mountain: 山脈 + on a hill: 山上 + the top of the hill: 山頂 + outdoors: 戶外 + + - name: 水 + color: rgba(31, 144, 255, .4) + tags: + ocean: 大海 + dripping: 滴水 + beach: 海灘 + lake: 湖泊 + waterfall: 瀑布 + ripples: 漣漪 + swirl: 漩渦 + waves: 波浪 + seashell: 海貝 + seaweed: 海藻 + + - name: 天空 + color: rgba(31, 144, 255, .4) + tags: + sky: 天空 + gradient_sky: 傾斜的天空 + night_sky: 夜空 + starry_sky: 星空 + hyper_galaxy: 超級銀河 + star_(sky): 星星(天空中的) + star_trail: 星星軌跡 + sunset: 落日 + moon: 月亮 + lunar: 月的,_月球的; + crescent: 月牙 + crescent_moon: 新月 + full_moon: 滿月 + moonlight: 月光 + scarlet_moon: 猩紅月亮 + universe: 宇宙 + space: 太空 + planet: 星球 + from_space_station: 空間站 + satellite: 衛星 + + - name: 雲 + color: rgba(31, 144, 255, .4) + tags: + cirrus: 捲雲 + Cirrocumulus: 捲積雲 + Cirrostratus: 捲層雲 + Altocumulus: 高積雲 + Altostratus: 高層雲 + stratus: 層雲 + Stratocumulus: 層積雲 + cumulus: 積雲 + Cumulonimbus: 積雨雲 + Nimbostratus: 雨層雲 + cirrus_fibratus: 毛捲雲 + cirrus_uncinus: 鉤捲雲 + cirrus_spissatus: 密捲雲 + cirrus_floccus: 絮捲雲 + cirrus_castellanus: 堡捲雲 + cirrus_intortus: 亂捲雲 + cirrocumulus: 捲積雲類 + cirrocumulus_stratiformis: 層狀捲積雲 + cirrocumulus_floccus: 絮狀捲積雲 + cirrocumulus_castellanus: 堡狀捲積雲 + cirrocumulus_lacunosus: 網狀捲積雲 + cirrostratus: 捲層雲類 + cirrostratus_fibratus: 毛捲層雲 + cirrostratus_nebulosus: 霧捲層雲 + altocumulus: 高積雲類 + altocumulus_strataformis: 層狀高積雲 + altocumulus_lenticularis: 莢狀高積雲 + altocumulus_castellanus: 堡狀高積雲 + altocumulus_floccus: 絮狀高積雲 + altocumulus_lacunosus: 網狀高積雲 + altostratus: 高層雲類 + altostratus_undulatus: 波狀高層雲 + altostratus_duplicates: 複合高層雲 + altostratus_pannus: 破片高層雲 + altostratus_translucidus: 透光高層雲 + altostratus_opacus: 蔽光高層雲 + altostratus_radiatus: 輻狀高層雲 + altostratus_mammatus: 乳狀高層雲 + stratus_fractus: 碎層雲 + stratus_nebulosus: 霧層雲 + stratus_undulatus: 波層雲 + stratocumulus: 層積雲類 + stratocumulus_stratiformis: 層狀層積雲 + stratocumulus_cumulogentis: 積雨性層積雲 + stratocumulus_castellanus: 堡狀層積雲 + stratocumulus_lenticularis: 莢狀層積雲 + stratocumulus_lacunosus: 絮狀層積雲 + cumulus_humilis: 淡積雲 + cumulus_mediocris: 中積雲 + cumulus_congestus: 濃積雲 + cumulus_fractus: 碎積雲 + cumulonimbus: 積雨雲類 + cumulonimbus_calvus: 禿積雨雲 + cumulonimbus_capillatus: 鬃積雨雲 + cumulonimbus_incus: 砧積雨雲 + + - name: 氛圍 + color: rgba(31, 144, 255, .4) + tags: + new year: 新年 + year of the rabbit: 兔年 + valentine: 情人節 + lantern festival: 元宵節 + summer festival: 夏日祭 + tanabata: 七夕節 + mid-autumn festival: 中秋節 + halloween: 萬聖節 + christmas: 聖誕節 + explosion: 爆炸 + water vapor: 蒸汽 + fireworks: 焰火 + ceiling window: 落地窗 + colourful glass: 彩色玻璃 + stain glass: 染色玻璃 + Graffiti wall: 塗鴉牆 + mosaic background: 馬賽克背景 + liquid background, Sputtered water: 液體背景 + magic circles: 魔法環 + fluorescent mushroom forests background: 螢光蘑菇森林 + (((colorful bubble))): 彩色泡泡 + in the ocean: 海邊日落 + against backlight at dusk: 傍晚背對陽光 + golden hour lighting: 黃金時段照明 + strong rim light: 強邊緣光 + intense shadows: 強陰影 + +- name: 場景 + groups: + - name: 戶外 + color: rgba(159, 32, 240, .4) + tags: + castle: 城堡 + city: 城市 + waterpark: 水上樂園 + carousel: 旋轉木馬 + ferris wheel: 摩天輪 + aquarium: 水族館 + zoo: 動物園 + bowling alley: 保齡球館 + art gallery: 美術館 + museum: 博物館 + planetarium: 天文館 + swimming pool: 游泳池 + stadium: 體育場 + temple: 寺廟 + bus stop: 公車站 + train station: 火車站 + fountain: 噴泉 + playground: 遊樂場 + market stall: 市場攤位 + phone booth: 電話亭 + railroad tracks: 鐵軌 + airport: 機場 + tunnel: 隧道 + skyscraper: 摩天樓 + cityscape: 城市風景 + ruins: 廢墟 + greco-roman architectur: 希臘羅馬建築 + east asian architecture: 東亞建築 + torii: 鳥居 + church: 教堂 + shop: 商店 + street: 街道 + cyberpunk city: 赛博朋克城市 + in the cyberpunk city: 在赛博朋克城市 + chinese style architecture: 古風建築 + gohei: 神社 + Bustling city: 繁華都市 + laboratory: 實驗室 + coffee house: 咖啡館 + gym: 健身房 + library: 圖書館 + prison: 監獄 + engine room: 輪機艙 + handrail: 欄杆 + neon lights: 霓虹燈 + street lamp: 路燈 + road: 道路 + shanty town/slum: 貧民窟 + warehouse: 倉庫 + gothic architecture: 哥特式建築 + restaurant: 餐廳 + treehouse: 樹屋 + modern,Europe: 法蘭西 + Industrial wind, Chinese architecture: 工業化古建築 + building_ruins: 建築廢墟 + bar: 酒吧 + izakaya: 居酒屋 + cafe: 咖啡館 + bakery: 麵包店 + convenience store: 便利店 + supermarket: 超市 + pharmacy: 藥店 + theater: 劇院 + movie theater: 電影院 + workshop: 工作坊 + courtroom: 法庭 + park: 公園 + Trapeze: 吊架;秋千 + classroom: 教室 + botanical garden: 植物園 + amusement_park: 遊樂園 + Disney_land: 迪士尼樂園 + arena: 競技場 + wrestling_ring: 摔角場 + Auditorium: 禮堂 + concert: 音樂會 + Japanese_hotel: 日本旅館 + jail_bars: 監獄酒吧 + in_the_movie_theatre: 在電影院裡 + stage: 舞台 + harbor: 港口 + casino: 賭場 + billiard: 台球桌 + dungeon: 地牢 + grave: 墳墓 + graveyard: 墓地 + tombstone: 墓碑 + monolith: 巨大的石頭物體 + rappelling: 拉平(懸掛) + building: 建築 + architecture: 建築 + magnificent_architecture: 建築 + Skyscraper: 摩天樓 + east_asian_architecture: 東亞建築 + cathedral: 大教堂 + chinese_style_loft: 中式閣樓 + traditional_chinese_room: 傳統中式客房 + turret: 塔樓 + tower: 塔 + mosque: 清真寺 + reservoir: 水庫 + railroad: 鐵路 + railway: 鐵路 + bridge: 橋 + under_bridge: 橋下 + remains: 廢墟 + rubble_ruins: 廢墟 + + - name: 城市 + color: rgba(159, 32, 240, .4) + tags: + city: 城市 + cityscape: 城市風景 + street: 街道 + downtown: 市中心 + crowd: 人群 + alley: 小巷 + in_main_street: 大道 + Intersection: 路口 + avenue: 大街 + lawn: 草坪 + road: 路 + path: 路徑 + pavement: 路面 + road_sign: 路標 + traffic_cone: 路障 + lamppost: 路燈 + power_lines: 電線杆和電線 + fence: 柵欄 + railing: 欄杆 + bench: 長凳 + vending_machine: 自動販賣機 + + - name: 室內 + color: rgba(159, 32, 240, .4) + tags: + indoor: 室內 + bathroom: 浴室 + toilet stall: 廁所隔間 + otaku room: 宅男房間 + cafeteria: 自助餐廳 + classroom: 教室 + clubroom: 俱樂部 + bedroom: 臥室 + kitchen: 廚房 + dormitory: 宿舍 + dungeon: 地庫 + infirmary: 醫務室 + stage: 舞台 + electrical room: 配電房 + server room: 伺服器機房 + basement: 地下室 + art room: 美術室 + bathing: 浴室 + stairs: 樓梯 + greenhouse: 溫室 + + - name: 地板 + color: rgba(159, 32, 240, .4) + tags: + floor: 地板 + tile_floor: 木質地板 + + - name: 家具 + color: rgba(159, 32, 240, .4) + tags: + bedroom: 家具 + tatami: 榻榻米 + bed: 床 + couch: 沙發 + kotatsu: 被爐 + fireplace: 壁爐 + window_: 窗 + sash: 窗扇 + curtains: 窗簾 + door: 門 + sliding_doors: 推拉門 + clothes_rack: 衣架 + air_conditioner: 空調 + table: 桌子 + school_desk: 課桌 + chair: 椅子 + armchair: 扶手椅 + lounge_chair: 躺椅 + beach_chair: 沙灘椅 + folding_chair: 折疊椅 + invisible_chair: 隱形椅子 + office_chair: 辦公椅 + wheelchair: 輪椅 + + - name: 床上用品 + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: 床單 + mattress: 床墊;褥子 + futon: 日本床墊 + cushion: 坐墊 + carpet: 地毯 + pillow: 枕頭 + dumpling_Hug_Pillow: 團子抱枕 + pillow_hug: 抱枕 + yes-no_pillow: Yes/No枕頭 + stuffed_animal: 毛絨玩偶 + stuffed_bunny: 毛絨兔子 + koakuma: 小熊 + + - name: 浴室 + color: rgba(159, 32, 240, .4) + tags: + bathroom: 浴室 + bathtub,: 浴缸 + rubber_duck: 橡皮鴨 + shower_head: 淋浴噴頭 + toilet: 馬桶 + squat_toilet: 蹲便器 + soap: 肥皂 + tiles: 瓷磚 + +- name: 物品 + groups: + - name: 學習用品 + color: rgba(189, 182, 107, .4) + tags: + notebook: 筆記本 + paintbrush: 畫筆 + pencil: 鉛筆 + book: 書 + open_book: 翻開的書 + book_stack: 書摞 + bookshelf: 書架 + school_bag: 上學包(手提包) + backpack: 背包 + + - name: 數位設備 + color: rgba(189, 182, 107, .4) + tags: + computer: 電腦 + mouse: 滑鼠 + cellphone: 手機 + Smartphones: 智慧型手機 + handheld_game_console_: 掌上遊戲機 + nintendo_3ds: 任天堂3DS + nintendo_ds: 任天堂DS + nintendo_switch: 任天堂Switch + buttons: 按鈕 + power_lines: 電源線 + cable: 電纜 + + - name: 餐具 + color: rgba(189, 182, 107, .4) + tags: + pot: 鍋子 + teapot: 茶壺 + ladle: 長柄湯匙 + can: 罐子 + soda_can: 罐裝飲料 + cup: 杯子 + plate: 盤子 + tray: 托盤 + bowl: 碗 + fork: 叉子 + chopsticks: 筷子 + spoon: 湯匙 + drinking_glass: 水杯 + tumbler: 普通玻璃杯 + beer_mug: 啤酒杯 + gift_box: 禮物盒 + heart-shaped_box: 心形禮盒 + candle: 蠟燭 + + - name: 樂器 + color: rgba(189, 182, 107, .4) + tags: + music: 音樂 + guitar: 吉他 + piano: 鋼琴 + cello: 大提琴 + playing_instrument: 演奏樂器 + wind_chime: 風鈴 + + - name: 其他物品 + color: rgba(189, 182, 107, .4) + tags: + wristwatch: 手錶 + folding_fan: 折扇 + paper_fan: 紙扇 + uchiwa: 團扇 + umbrella: 雨傘 + transparent_umbrella: 透明雨傘 + closed_umbrella: 封閉傘 + oil-paper_umbrella: 油紙傘 + Parasol: 遮陽傘 + basket: 籃子 + bouquet: 花束 + bucket: 桶 + pail: 桶 + camera: 相機 + gohei: 御幣(驅邪布條) + lantern/lamp: 燈籠 + whip: 鞭 + riding_crop: 馬鞭 + ofuda: 札符 + cane: 手杖 + wand: 魔杖 + magic: 魔術 + trading_card: 交易卡 + playing_card: 撲克牌 + Cassette: 磁帶盒 + chess_piece: 棋子 + coin: 硬幣 + copper: n.銅幣 + hammer: 鎚子 + microphone: 麥克風 + mimikaki: 掏耳勺 + sack: 麻袋 + scales: 秤 + chibi_inset: 赤壁插圖 + damaged: 損壞 + diamond_(shape): 鑽石(形狀) + gourd: 葫蘆 + holding_gift: 拿著禮物 + inlet: 入口 + key: 鑰匙 + leash: 皮帶 + Lever: 槓桿,操作桿 + molecule: 分子 + money: 錢 + Painting_(Object): 畫作(物品) + photo_(object): 照片(物體) + sand: 沙子 + stubble: 茬 + trophy: 獎盃 + tube_top: 管頂 + water_bottle: 水瓶 + lotion: 防曬霜|身體乳 + lotion_bottle: 乳液瓶子 + + - name: 武器 + color: rgba(189, 182, 107, .4) + tags: + weapon: 武器 + weapon_on_back: 背上的武器 + weapon_over_shoulder: 肩上的武器 + huge_weapon: 大尺寸武器 + planted_weapon: 往地上插的武器 + broken_weapon: 破碎的武器 + planted_sword: 立劍(planted立) + sword: 刀 + scabbard: 刀鞘 + unsheathing: 出鞘 + katana: 武士刀 + saber_(weapon): 軍刀(武器) + scythe: 鐮刀 + nose_hatchet: 柴刀 + dagger: 匕首 + scissors: 剪刀 + axe: 斧頭 + hatchet: 短斧 + stake: 棍子 + lance: 長矛 + trident: 三叉戟 + bow_(weapon): 弓 + arrow: 箭 + claw_(weapon): 爪(武器) + rifle,: 步槍 + gun: 槍 + handgun: 手槍 + thompson_submachine_gun: 湯普森衝鋒槍 + magazine_(weapon): 彈匣(武器) + dynamite: 甘油炸藥 + bomb: 炸彈 + track missiles: 跟蹤導彈 + complex Trajectory: 軌跡拖尾 + tank: 坦克 + cannon: 大砲 + military_vehicle: 軍用載具 + motorcycle: 摩托車 + ship: 船舶 + watercraft: 船舶 + car: 汽車 + machine: 機械 + machinery: 機械武裝 + mechanical_arms: 機械臂 + mechanization: 機械化 + robot_ears: 機械耳 + robot_joints: 機械關節 + variable_fighter: 超時空要塞機體 + sorcerer's_sutra_scroll: 魔人經卷 + + - name: 食物 + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: 壽司卷 + apple: 蘋果 + aubergine: 茄子 + burger: 漢堡 + cake: 蛋糕 + candy: 糖果 + candy_apple: 蘋果糖 + candy_cane: 棒棒糖 + carrot: 胡蘿蔔 + cigarette: 香煙 + coffee: 咖啡 + cookie: 餅乾 + cotton_candy_: 棉花糖 + cream: 奶油 + dango: 團子 + doughnut: 甜甜圈 + drink: 飲料 + egg: 雞蛋 + fruit: 水果 + Gelatin: 明膠、布丁 + ice_cream: 冰淇淋 + kafuu_chino: 卡夫奇諾 + makizushi: 海苔卷壽司 + meat: 肉 + noodles: 麵條 + obento: 便當 + onigiri: 飯糰 + pancake: 鬆餅 + pasties: 餡餅 + peach: 桃子 + ramen: 拉麵 + sake: 日本清酒 + taiyaki: 鯛魚燒 + tea: 茶 + teacup: 茶杯 + wagashi: 和果子 + wine: 葡萄酒 + jam: 果醬 + pocky: 百奇 + bottled_water: 瓶裝水 + sweet_potato: 甘藷 + sweets: 糖果 + food: 食物 + food_in_mouth: 嘴裡有食物 + food_on_: 臉上有食物 + food_on_body: 身體上有食物 + food_print: 食物印花 + food_stand: 食品攤 + in_food: (角色)在食物裡 + chips: 薯片 + potato_chips: 薯片 + telstar: 泰事達牌足球 + sundae: 聖代 + tempura: 天婦羅 + + - name: 動物 + color: rgba(189, 182, 107, .4) + tags: + reptile: 爬行動物 + crow: 烏鴉 + bird: 鳥 + penguin: 企鵝 + chick: 小雞 + manjuu_(azur_lane): 蠻啾 + shell: 貝殼 + wriggle_nightbug: 蠕動夜蟲 + dragonfly: 蜻蜓 + mammal: 哺乳動物 + wolf: 狼 + 扶桑花: 馬 + whale: 鯨 + cat: 貓 + cat_teaser: 逗貓 + dog: 狗 + dog_tags: 狗牌 + fox: 狐狸 + bunny: 兔子 + snow_bunny: 雪兔 + stuffed_bunny: 兔子玩偶 + horse: 馬 + cow: 牛 + dragon: 龍 + loong: 中國龍 + eastern_dragon: 東方龍 + snake: 蛇 + slime: 史萊姆 + bear: 熊 + panda: 熊貓 + teddy_bear: 泰迪熊 + tiger: 老虎 + bat: 蝙蝠 + hamster: 倉鼠 + mouse: 老鼠 + squirrel: 松鼠 + + - name: 植物 + color: rgba(189, 182, 107, .4) + tags: + plant: 植物 + flower: 花 + vase: 花瓶 + bouquet: 花束 + flower_bloom: 花盛開 + plum_blossom: 梅花 + cherry_blossoms: 櫻花 + wisteria: 紫藤 + hibiscus: 芙蓉花 + hydrangea: 繡球花 + rose: 玫瑰 + spider_lily: 彼岸花 + lily: 百合花 + lotus: 蓮花 + bamboo: 竹 + entangled_plants: 纏結型植物 + orchid: 蘭花 + chrysanthemum: 菊花 + narcissu: 水仙 + tree: 樹 + branch: 樹枝 + forest: 森林 + pine_tree: 松樹 + palm_tree: 棕櫚樹 + maple_tree: 楓樹 + bush/shrub,: 灌木 + christmas_tree: 聖誕樹 + maple_leaf: 楓葉 + pumpkin: 南瓜 + jack-o'-lantern: 南瓜燈 + spring_onion: 大蔥 + +- name: 鏡頭 + groups: + - name: 鏡頭 + color: rgba(99, 201, 2, .4) + tags: + panorama: 全景 + landscape: 風景鏡頭(遠景) + wide_shot: 全景鏡頭(廣角鏡頭) + medium_shot: 中景鏡頭 + mid_shot: 中景鏡頭 + full_shot: 全身像 + bust: 半身像 + upper_body: 上半身 + lower_body: 下半身 + cowboy_shot: 上半身+上半大腿(牛仔鏡頭) + portrait: 肖像畫(臉+肩+偶爾再加胸) + profile: 側面肖像畫(portrait的側臉版) + + - name: 特寫鏡頭 + color: rgba(99, 201, 2, .4) + tags: + close-up: 特寫鏡頭 + macro_shot: 微距鏡頭 + inset: 插入其他鏡頭或圖片 + cross-section: 剖面圖 + x-ray: X射線 + solo_focus: 聚焦在單個人物(適合複雜場景) + xx_focus: 聚焦在xx上 + face_focus: 聚焦在面部 + eyes_focus: 聚焦在眼睛 + foot_focus: 聚焦在腳上 + hip_focus: 聚焦在臀部 + ass_focus: 聚焦在屁股上 + vehicle_focus: 聚焦在載具上 + between_legs: (強調)兩腿之間 + between_breasts: (突出)胸部 + between_fingers: (突出)指間 + peeking: 偷窺 + peeking_out: 偷窺(的姿態) + peeping: 偷窺(強調視角) + midriff_peek: 肚臍偷看 + armpit_peek: 腋窩偷看 + pussy_peek: 浦西偷看 + panty_peek: 內褲偷看 + pantyshot: 內褲走光 + caught: 被抓現行 + + - name: 其他構圖 + color: rgba(99, 201, 2, .4) + tags: + aerial: 空中 + turn_one's_back: 轉身 + upskirt: 裙底視角 + phone_screen: 手機螢幕 + multiple_views: 多視角分解 + mirror selfie: 對鏡自拍 + three-quarter view: 3/4視角 + + - name: 鏡頭角度 + color: rgba(99, 201, 2, .4) + tags: + front view: 正面視角 + from_side: 側面視角 + from_above: 從上方↘ + from_below: 從下方↗ + from_outside: 由室外向室內 + from_back: 後背視角 + from behind: 後背視角 + dynamic_angle: 動態角度 + cinematic_angle: 電影角度 + dutch angle: 傾斜角度 + foreshortening: 透視法 + fisheye: 遠景透視畫法 + + - name: 效果 + color: rgba(99, 201, 2, .4) + tags: + depth of field: 景深(協調人景) + lens_flare: 鏡頭光暈 + motion_blur: 運動導致的模糊 + motion_lines: 體現運動的線 + speed_lines: 速度線 + bokeh: 焦散 + chromatic_aberration: 色差 + overexposure: 過曝 + contour_deepening: 等高線強化 + + - name: 主角動作 + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: 看向觀眾 + eye-contact: 眼神接觸 + eyeball: 盯著看 + stare: 凝視 + looking_back: 回眸 + gradient: 人物傾斜 + looking_down: 人物視角向下看↘ + looking_up: 人物視角抬頭看↗ + facing_away: 面向別處 + looking_to_the_side: 看向側面 + looking_away: 看著別處 + looking_ahead: 展望未來 + looking_afar: 遙望 + looking_outside: 向外看 + head_tilt: 歪頭 + head_down: 低頭 + sideways_glance: 輕輕向側面瞥 + upshirt: 從襯衫下方瞥 + upshorts: 從裙底瞥 + looking_at_another: 看著另一個 + looking_at_phone: 看手機 + looking_at_animal: 看著動物 + looking_at_mirror: 照鏡子 + looking_at_hand: 看著手 + looking_at_hands: 看著雙手 + looking_at_food: 看食物 + looking_at_screen: 看著螢幕 + +- name: 漢服 + groups: + - name: "唐風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: 唐風 + + - name: 上杉 + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: 橙色上杉 + red upper shan: 紅色上杉 + green upper shan: 綠色上杉 + blue upper shan: 藍色上杉 + pink upper shan: 粉色上杉 + yellow upper shan: 黃色上杉 + white upper shan: 白色上杉 + light blue upper shan: 淡藍上杉 + light green upper shan: 淺綠上杉 + light red upper shan: 淺紅上杉 + cyan blue upper shan: 青藍上杉 + light purple upper shan: 淺紫上杉 + black with blue upper shan: 黑藍上杉 + white with orange upper shan: 橙白上杉 + pink with black upper shan: 粉黑上杉 + + - name: 長上杉 + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: 橙色 + red long upper shan: 紅色 + green long upper shan: 綠色 + blue long upper shan: 藍色 + pink long upper shan: 粉色 + yellow long upper shan: 黃色 + white long upper shan: 白色 + light blue long upper shan: 淡藍 + light green long upper shan: 淺綠 + light red long upper shan: 淺紅 + cyan blue long upper shan: 青藍 + light purple long upper shan: 淺紫 + black with blue long upper shan: 黑藍 + white with orange long upper shan: 橙白 + pink with black long upper shan: 粉黑 + + - name: 齊胸破裙 + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: 白色破裙 + red chest po skirt: 紅色破裙 + green chest po skirt: 綠色破裙 + blue chest po skirt: 藍色破裙 + pink chest po skirt: 粉色破裙 + purple chest po skirt: 紫色破裙 + multicolour chest po skirt: 彩色破裙 + purple with white chest po skirt: 紫白破裙 + white with yellow chest po skirt: 黃白破裙 + blue with white chest po skirt: 天藍破裙 + orange with white chest po skirt: 橙白破裙 + green with white chest po skirt: 灰豆綠破裙 + light orange with white chest po skirt: 淡黃白破裙 + pink with white chest po skirt: 粉白破裙 + white with pink chest po skirt: 白偏粉破裙 + + - name: 齊胸褶裙 + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: 白色褶裙 + red chest pleated skirt: 紅色褶裙 + green chest pleated skirt: 綠色褶裙 + blue chest pleated skirt: 藍色褶裙 + pink chest pleated skirt: 粉色褶裙 + purple chest pleated skirt: 紫色褶裙 + multicolour chest pleated skirt: 彩色褶裙 + purple with white chest pleated skirt: 紫白褶裙 + white with yellow chest pleated skirt: 黃白褶裙 + blue with white chest pleated skirt: 天藍褶裙 + orange with white chest pleated skirt: 橙白褶裙 + green with white chest pleated skirt: 灰豆綠褶裙 + light orange with white chest pleated skirt: 淡黃白褶裙 + pink with white chest pleated skirt: 粉白褶裙 + white with pink chest pleated skirt: 白偏粉褶裙 + + - name: 系帶 + color: rgba(178, 33, 34, .4) + tags: + green waistband: 綠色系帶 + yellow waistband: 黃色系帶 + red waistband: 紅色系帶 + pink waistband: 粉色系帶 + orange waistband: 橙色系帶 + light blue waistband: 淡藍系帶 + light green waistband: 綠白系帶 + green with yellow waistband: 黃綠系帶 + purple with white waistband: 紫白系帶 + red with white waistband: 紅白系帶 + red with black waistband: 紅黑系帶 + yellow with white waistband: 黃白系帶 + + - name: 披帛 + color: rgba(178, 33, 34, .4) + tags: + white pibo: 白色披帛 + orange pibo: 橙色披帛 + black pibo: 黑色披帛 + pink pibo: 粉色披帛 + red pibo: 紅色披帛 + purple pibo: 紫色披帛 + light green pibo: 淺綠披帛 + white with yellow pibo: 黃白披帛 + + - type: wrap + + - name: "宋風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: 宋風 + + - name: 短衫 + color: rgba(178, 33, 34, .4) + tags: + purple short shan: 紫色短杉 + red short shan: 紅色短杉 + green short shan: 綠色短杉 + blue short shan: 藍色短杉 + pink short shan: 粉色短杉 + yellow short shan: 黃色短杉 + white short shan: 白色短杉 + light blue short shan: 淡藍短杉 + light green short shan: 淺綠短杉 + light red short shan: 淺紅短杉 + cyan blue short shan: 青藍短杉 + light purple short shan: 淺紫短杉 + black with blue short shan: 黑藍短杉 + white with yellow short shan: 黃白短杉 + light yellow with green with white short shan: 淺黃白綠短 + + - name: 長衫 + color: rgba(178, 33, 34, .4) + tags: + purple long shan: 紫色長杉 + red long shan: 紅色長杉 + green long shan: 綠色長杉 + blue long shan: 藍色長杉 + pink long shan: 粉色長杉 + yellow long shan: 黃色長杉 + white long shan: 白色長杉 + light blue long shan: 淡藍長杉 + light green long shan: 淺綠長杉 + light red long shan: 淺紅長杉 + cyan blue long shan: 青藍長杉 + light purple long shan: 淺紫長杉 + black with blue long shan: 黑藍長杉 + white with yellow long shan: 黃白長杉 + light yellow with green with white long shan: 淺黃白綠長 + + - name: 百褶裙 + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: 白裙 + red pleated skirt: 紅裙 + green pleated skirt: 綠裙 + blue pleated skirt: 藍裙 + pink pleated skirt: 粉裙 + light blue pleated skirt: 淺藍裙 + white golden pleated skirt: 白金裙 + gradient green pleated skirt: 漸變綠裙 + translucent white pleated skirt: 半透白裙 + red cyan gradient pleated skirt: 紅青漸變 + red green gradient pleated skirt: 紅綠漸變 + green with white pleated skirt: 白綠相間 + light yellow with green with white pleated skirt: 淺黃綠相間 + + - name: 宋抹 + color: rgba(178, 33, 34, .4) + tags: + orange songmo: 橙色宋抹 + red songmo: 紅色宋抹 + green songmo: 綠色宋抹 + blue songmo: 藍色宋抹 + pink songmo: 粉色宋抹 + yellow songmo: 黃色宋抹 + white songmo: 白色宋抹 + purple songmo: 紫色宋抹 + green floral songmo: 綠碎花宋抹 + purple floral songmo: 紫碎花宋抹 + cyan floral songmo: 青碎花宋抹 + + - type: wrap + + - name: "明風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: 明風 + + - name: 上衣 + color: rgba(178, 33, 34, .4) + tags: + short coat: 短袄 + long coat: 長袄 + + - name: 裙子 + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: 馬面裙 + + - name: 領子 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 交領 + round collar: 圓領 + standing collar: 立領 + square collar: 方領 + + - name: 裝飾 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 雲肩 + embroidery: 刺繡 + woven gold: 織金 + makeup flower: 妝花 + bufu: 補服 + +- name: 魔法系 + groups: + - name: 魔法1.0 + color: + tags: + ((water drops)),wet clothes,((beautiful detailed water)),((floating)),dynamic angle: 水魔法 + beautiful detailed glow, (detailed ice), beautiful detailed water: 冰魔法 + beautiful detailed glow,detailed ice,beautiful detailed water,(floating palaces:1.2),(ice crystal texture wings),(Iridescence and rainbow hair:2.5): 冰系改 + beautiful detailed glow,detailed ice,beautiful detailed water, (floating palaces:1.3),(((ice crystal texture wings))): 星冰樂 + ((detailed beautiful snow forest with trees)), ((snowflakes)), floating: 森林冰 + (((crystals texture Hair))),((beautiful detailed glass hair)),((glass shaped texture hand)),((crystallize texture body)),gem body,hands as clear as jewels,crystallization of clothes,((crystals texture skin)),sparkle, lens flare, light leaks,broken glass,detailed glass shaped clothes,beautiful detailed gemstone sky, gemstone sea, crystals texture flowers,((detailed crystallized clothing)): 結晶法 + beautiful detailed glow,((flames of war)),(((nuclear explosion behide))): 核爆法 + ((breeze)), flying splashes, flying petals, wind: 風魔法 + ((surrounded by heavy floating sand flow and floating sharp stones)),((((ink)))),((illustration)),((watercolor)): 流沙法 + (detailed light), ((lightning in hand)),lightning surrounds,(((lightning chain))): 雷電法 + (sunlight),(angel),dynamic angle, floating, wing, halo, floating white silk,(Holy Light),silver stars: 聖光法 + beautiful detailed pampas grass field, open hakama, surrounded by floating sakura, yellow full moon, beautiful detailed dark midnight sky, messy white long hair: 蘆名法 + beautiful and delicate water, the finest grass, very delicate light, nature, painting, water spray, breeze, flowers and grass meadow, near the water edge, (sunset, starry sky in a circle), randomly distributed clouds, river, splashing water, falling petals: 自然法 + (detailed light) , feather, leaves, nature, (sunlight), river, (forest),(bloom): 森林法 + floating and rainbow long hair,Iridescence and rainbow, beautiful detailed starry sky: 虹彩法 + chain ring, chain storm, dark chain,((wholeblack bloomer)), darkside, night, deep dark, darkness, ((dark clouds)),((ruins)),shadow, death garden: 暗鎖法 + beautiful detailed glow, floating ashes, beautiful and detailed explosion, red moon, fire, fire cloud, wings on fire, a cloudy sky, smoke of gunpowder, burning, black dress, dove of peace, (floating cloud:1.2): 火燒雲 + beautiful detailed glow, detailed ice, beautiful detailed water, (magic circle:1.2), (floating palaces:1.3): 城堡法 + (water bloom), (delicate glow), (breeze), long Flowers meadow,(((sunset)), (less stars form a circle), randomly distributed clouds, (rivers), (willows with branches falling into the water): 黃昏法 + ((colorful bubble)),(floating),detailed light: 泡泡法 + ((rose)), (vine), cage, bandage, red rope, (detail light), falling rose petals: 薔薇法 + (starry tornado:1.4), starry Nebula, beautiful detailed sky: 星空法 + ((moon)), starry sky, (lighting particle), fog, snow,(bloom): 月亮法 + beautiful detailed glow, detailed ice, beautiful detailed water, (cold full moon), snowflake, (floating cloud:1.2): 雪月法 + ((burning forest)), spark, light leaks, burning sky, flame, flames burning around, (flying sparks): 森火法 + ((destroyed)),explosion, buildings in disarray, The residual eaves DuanBi, cumulus, mouldy, floating, wind, Dead end machine,(broken robot),(Mechanical robot girl), in the rubble of a devastated city: 廢土法 + mecha clothes, robot girl, sliver bodysuit,((sliver)) and (broken) body: 戰甲法 + Extremely gorgeous metal style, Metal crown with ornate stripes, Various metals background, Sputtered molten iron, floating hair, Hair like melted metal, Clothes made of silver, Clothes with gold lace, flowing gold and silver, everything flowing and melt, flowing iron, flowing silver, lace flowing and melt: 黃金法 + mecha clothes, robot girl: 機娘法 + ink,(((bone))), (((ribs))), rose, black hair, blue eyes, greyscale, no shadow, simple background, bright skin: 死靈法 + (((gorgeous crystal armor))),(((crystal wings))),((altocumulus)),(clear_sky),(snow mountain),((flowery flowers)),(flowery bubbles),cloud map plane, crystal, crystal poppies,Brilliant light, thick_coating, glass tint,(watercolor): 水晶法 + ((an extremely delicate and beautiful)),floating, (detailed wet clothes), (detailed light),feather, nature, (sunlight), river, floating palace, beautiful and delicate water,(bloom),(shine): 水森法 + (blue spark),(red and blue hair),blue eyes, burning sky,flame,Rainbow in the sky,((Flames burning ice)),(((fire butterflies))),(((ice crystal texture wings))),(Flying sparks),(detailed ice),((a lot of luminous ice crystals)),((burning feathers)),(feathers made of ice),(frozen feathers),(((ice and fire together))): 冰火法 + (anger), dragon horns, (silver armor), metal, complex pattern, cape, indifference: 龍騎士 + ((full body)),(helpless),tear, crying,(((((falling from the sky))))),((Weathering With You)),((falling)),((face towards the sky)),(hair flows upwards),((disheveled hair)),(1 girl), floating, beautiful detailed sky: 墜落法 + ((underwater)),(beautiful detailed water),((coral)),dynamic angle, floating,(detailed light),floating hair,(splash),((fishes)),leaves dress, feather, nature,(sunlight),(underwater forest),(bloom),(detailed glow),drenched, seaweed, fish,(((Tyndall effect))): 水下法 + (extremely detailed CG unity 8k wallpaper),(((masterpiece))), (((best quality))), ((ultra-detailed)), (best illustration),(best shadow), ((an extremely delicate and beautiful)),dynamic angle,floating, fairyland,dynamic angle,sea of flowers,beautiful detailed garden,wind,classic,spring, (detailed light),feather, nature, (sunlight), river, forest,(((floating palace))),((the best building)),beautiful and delicate water,(painting),(sketch),(bloom),(shine): 秘境法 + (((masterpiece))), ((the best quality, super fine illustrations, beautiful and delicate water)), ((very delicate light)), ((nature, painting)), ((fine lighting, more transparent stars, high-quality snowflakes, high-quality mountains, very fine 8KCG wallpapers)), (plateau), (((snow mountain))), sunrise, randomly distributed clouds, (snow field), cliff, ((rotating star sky)), ((lake in mountain stream)), luminous particles: 攝影法 + 1980s (style),simple background, retro artstyle: 摩登法 + (white hair), red long hair, red eyes, (full body), (((with sword))), angry face, (beautiful detailed eyes), Blood drop,Blood fog, floating hair, disheveled hair, Splashing blood,(Bloodstain): 血魔法 + ((dragon)), ((dragon background)): 喚龍術 + hair fluttering in the wind,((mechanical arm armor)),((mechanical body armor)),riding motor, bodysuit,((ruins of city in war, fire, burning cars, burning buildings)),air force fleet in the sky: 戰姬法 + mecha clothes, robot girl, sliver bodysuit, dragon wings, ((a dragon stands behind the girl)), beautiful detailed sliver dragon armor: 龍機法 + ((Beautiful butterflies in detail)),((Beautiful stars in detail)),(((halter dress ))),particle,(Starry sky in beautiful detail),(Hazy fog),(Ruins of beautiful details),(((Standing on the surface of the sea))): 星蝶術 + blonde wavy hair, (shiny long hair), ((Gothic Lolita)), blue white skirt, ((short skirt)), black Headdress, bowknot, (((hair ornament))), (hair flower), Lace, cross-laced footwear, ribbon-trimmed sleeves, building architecture, ((gothic architecture)), starry sky, outdoors, church, (castle): 學院法 + walking, waves, wind,(((glistening light of waves))),(detailed sunset glow),(floating flow),((coral)),(Luminous),coast,(floating colorful bubbles),beautiful detailed sky,(fluorescence),detailed shadow,(conch),beautiful detailed water, starfish, meteor, rainbow,(seabirds),(glinting stars), (glowworm),(splash),detailed cloud, shell,(fireworks): 星霞海 + beautiful detailed sky, night, stars, (red plum blossom),((winter)),(((snowflakes))), ((red and white flowers)),(starry sky),(sitting),((colorful)),scenery, lantern,(starfall): 冬雪法 + + - name: 魔法1.5 + color: + tags: + ((((melt)))),(((((black and white melt))))),(((wear Black and white Taoist robes))),((((gold and silver lace)))),(((gold and silver lace lace))),(((flowing ((black)) and white background))),extremely detailed gorgeous tiara: 萬物熔爐 + Floating black ashes, Beautiful and detailed black, red moon, ((The black clouds)), (black Wings) , a black cloudy sky, burning, black dress, ((Black fog)), Red eyes, (black smoke), ((Black feathers floating in the air)),bat, (floating black cloud:1.5): 暗鴉法 + dynamic angle, finely detail, (bloom), (shine), glinting stars, ((((best detailed fireworks)))), ((((depth of field)))), (((hanabi))),(((backlight))),: 花火基礎 + stars in the eyes, messy floating hair, colored inner hair, Starry sky adorns hair, (lots of big colorful Bubble), (pearl), (Galaxy), depth of field: 星之彩 + stars in the eyes, messy floating hair, colored inner hair, Starry sky adorns hair, depth of field: 沉入星海 + dynamic angle, detailed wet clothes, blank stare, overexplosure, floating, black long straight, red eyes, aqua eyes, gradient eyes, ((blood)), white dress, frills, ((expressionless)), extremely beautiful detailed water, ((lying on the lake)), (bloodred water:1.5), (red background:1.3): 百溺法 + ((messy hair)),(grassland),(yellow eyes),incredibly absurdres,(gold hair),floating hair,Large number of environments,the medieval ,grace,prospect,water eyes,wind,breeze,god ray,lawn,Mountains and lakes in the distance,The sun shines through the trees,A vast expanse of grassland: 輝煌陽光法 + Starry sky adorns hair, sparkling anime eyes,beautiful detailed stars,blighting stars,emerging dark purple across with white hair,multicolored hair,beautiful detailed sky, beautiful detailed water, cinematic lighting, dramatic angle,: 星鬢法 + There are many scattered luminous petals,Hidden in the light yellow flowers,Depth of field,Many flying drops of water,Many scattered leaves,branch ,angle ,contour deepening,cinematic angle: 森羅法 + sunlight, extremely light, extremely clothes, Holy Light, dynamic angle, Light particle, very long hair, white hair, yellow eyes, glowing eyes, expressionless, ((light smile)), ((((white Tulle skirt)))), white silk, looking at viewer, angel wings, large wings, multiple wings, angel halo, (((starry sky))), dusk sky, Floating light spot, Lots of feathers: 星天使 + blonde hair, yellow eyes, white skin, mature female, sunrise, golden sky, magnificent architecture, beautiful detailed sky, overexposure, delicate gold metal decorations: 黃金律 + mechanical prosthesis,mecha coverage,emerging dark purple across with white hair,fluorescent purple,cool movement,rose red eyes,beatiful detailed cyberpunk city, hd semirealistic anime cg concept art digital painting: 機械姬 + (incredibly absurdres), (highly detailed beautiful fishtail:1.6), (((human hands))), (the lower body is a fish:1.9)AND(no human thigh:1.2), seaweed, (full body), (white seashell), (curved and slender fish tail), (the lower body is bare:1.1), {beautiful tailfin}, ((underwater)), (illustration), detailed water, ((fishes)), (floating), watercolor (medium), (small whirlpool), ((The sensation of water flowing)), (detailed scales on a mermaid): 人魚法 + Blood Mist, background Urban rooftop,despair,Blood Cherry Blossom,torn clothes,crying with eyes open,solo,Blood Rain,bandages,Gunpowder smoke,beautiful deatailed shadow, Splashing blood,dust,tyndall effect: 末日 + Space opera,Space port,robot arm,elbow gloves,night,glisten,stare,cyberpunk,((((citylight)))),science fiction,bodysuit,Mechanical armor headdress,(bare shoulders): 碎夢 + dynamic angle,rainbow hair,detailed cute anime face,((loli)),flower,cry,water,corrugated,flowers tire,broken glass,(broken screen),atlantis,transparent glass: 幻碎夢 + (white hair),(((red streaked hair))), red eyes, (((full body))),(red hair), (((((Hold a red sword))))), (angry face),((Blood drop)),((Blood fog)),light shafts, soft focus, ((Splashing blood))),Long hair,((Bloodstain)),Fighting stance,{{{{{watercolor (medium)}}}},(((masterpiece))),((white clock)),((ultradetailed)),((Covered in blood)),flowing hair,Exquisite Flame,dynamic angle, floating, (shine), extremely delicate and beautiful girls, bright skin, lying red petals,Holy lighting: 血改法 + dramatic shadows,black and white,monochrome,{{comic}},cross necklace,Cassock: 留影術 + ((ink)),(water color),bloom effect,detailed beautiful grassland with petal,flower,butterfly,necklace,smile,petal,(((surrounded by heavy floating petal flow))): 飄花法 diff --git a/group_tags/zh_TW.yaml b/group_tags/zh_TW.yaml new file mode 100644 index 0000000000000000000000000000000000000000..97cc630661096ce8e1b93a9900145f19e3c13a10 --- /dev/null +++ b/group_tags/zh_TW.yaml @@ -0,0 +1,4508 @@ +# 👍提示詞整合來源 路过银河(知乎)、未知作者(Google Drive)、互聯網等等,感謝這些作者的無私奉獻! +# +# ⚠️建議不要修改本檔案內容,因為本檔案作者可能會不定期更新,如果修改了本檔案,可能會導致更新時出現衝突。 +# ⚠️如需要自定義關鍵詞組,請複製本檔案,重命名為 custom.yaml,然後在 custom.yaml 中修改。 +# ⚠️插件將優先讀取 custom.yaml 檔案,如果 custom.yaml 檔案不存在,則讀取本檔案。 +# +# ⚠️如果只想要再當前檔案前面追加自己的內容,可以建立 prepend.yaml 檔案。 +# ⚠️如果只想要再當前檔案後面追加自己的內容,可以建立 append.yaml 檔案。 +# ⚠️custom.yaml: 覆蓋當前檔案 +# ⚠️prepend.yaml: 追加到當前檔案前面 +# ⚠️append.yaml: 追加到當前檔案後面 +# +# ⚠️建議使用專業的文本編輯器(如 Visual Studio Code)編輯本檔案,以避免編碼和格式錯誤的問題。 +# ⚠️請勿使用 Windows 自帶的記事本編輯本檔案。 +# ⚠️修改後可以前往 https://www.yamllint.com/ 檢查內容格式是否正確。 + +# 內容格式: +# - name: 一級分類名 +# groups: 二級分類列表 +# - name: 二級分類名 +# color: 關鍵詞文本預設顏色(可以為空),CSS顏色代碼,例如:#ff0000, red, rgb(255,0,0), rgba(255,0,0,1), hsl(0,100%,50%), hsla(0,100%,50%,1) +# tags: 關鍵詞列表 +# - 英文關鍵詞: 本地化翻譯 +# - 英文關鍵詞: 本地化翻譯 +# ... + +# 本內容的本地化翻譯均來自機翻,可能存在不準確的情況,如有發現,歡迎前往 Github 提交 PR 進行修正。 +# 如有分類錯誤、關鍵詞錯誤、關鍵詞翻譯錯誤等問題,歡迎前往 Github 提交 Issue 進行反饋。 + +- name: 人物 + groups: + - name: 對象 + color: rgba(255, 123, 2, .4) + tags: + 1girl: 1女孩 + 1boy: 1男孩 + 2girls: 2女孩 + 2boys: 2男孩 + 3girls: 3女孩 + 3boys: 3男孩 + girl: 女孩 + boy: 男孩 + solo: 單人 + multiple_girls: 多個女孩 + little_girl: 小女孩 + little_boy: 小男孩 + shota: 正太 + loli: 蘿莉 + kawaii: 可愛 + mesugaki: 雌小鬼 + adorable_girl: 可愛的女孩 + bishoujo: 美少女 + gyaru: 辣妹 + sisters: 姐妹 + ojousama: 大小姐 + female: 女性 + mature_female: 成熟女性 + mature: 成熟 + female_pervert: 痴女 + male: 男性 + milf: 熟女 + otoko_no_ko: 偽娘 + crossdressing: 男扮女裝 + + - name: 身分 + color: rgba(255, 123, 2, .4) + tags: + lifeguard: 救生員 + boxer: 拳擊手 + scientist: 科學家 + athletes: 運動員 + office lady: 職場女性 + monk: 和尚 + crobat: 雜技演員 + nun: 修女 + nurse: 護士 + stewardess: 空姐 + student: 學生 + waitress: 女服務員 + teacher: 老師 + racer: 賽車手 + police: 警察 + soldier: 士兵 + cheerleader: 啦啦隊 + actor: 男演員 + actress: 女演員 + spy: 間諜 + agent: 特工 + assassin: 刺客 + poet: 詩人 + samurai: 日本武士 + dancing girl: 舞女 + motorcyclist: 摩托車手 + hacker: 駭客 + magician: 魔術師 + detective: 偵探 + doll: 人偶 + maid: 女僕 + pilot: 飛行員 + diver: 潛水員 + bar censor: 酒吧審查員 + missionary: 傳教士 + firefighter: 消防員 + goalkeeper: 守門員 + chef: 廚師 + astronaut: 太空人 + cashier: 收銀員 + mailman: 郵差 + barista: 咖啡師 + the hermit: 隱士 + makihitsuji: 牧羊人 + office_lady: 辦公室小姐 + race_queen: 賽車女郎 + queen: 女王 + doctor: 醫生 + knight: 騎士 + housemaid: 女僕 + dancer: 舞者 + ballerina: 芭蕾舞演員 + gym_leader: 體操教練 + trap: 偽娘 + female: 女人 + harem: 後宮 + idol: 偶像 + male: 男人 + priest: 牧師 + cleric: 神職人員(基督教) + wa_maid: 和風女僕 + yaoi: 搞基 + yuri: 百合 + albino: 白化病患者 + amputee: 截肢者 + + - name: 二次元角色 + color: rgba(255, 123, 2, .4) + tags: + pokemon: 寶可夢 + teddy bear: 泰迪熊 + mario: 瑪利歐 + pikachu: 皮卡丘 + neon genesis evangelion: 新世紀福音戰士 + hatsune miku: 初音未來 + harry potter: 哈利波特 + doraemon: 多啦A夢 + saint seiya: 聖鬥士星矢 + gojou satoru: 五條悟 + avengers: 復仇者聯盟 + mazinger: 神奇女俠 + captain america: 美國隊長 + crayon shin-chan: 蠟筆小新 + slam dunk: 灌籃高手 + sun wukong: 孫悟空 + witch: 女巫 + miko: 巫女 + ninja: 忍者 + vampire: 吸血鬼 + knight: 騎士 + magical_girl: 魔法少女 + orc: 半獸人 + druid: 德魯伊 + elf: 妖精 + fairy: 小精靈 + furry: 獸人 + mermaid: 美人魚 + kamen rider: 假面騎士 + magister: 魔導師 + spider-man: 蜘蛛俠 + santa alter: 聖誕老人 + monster_girl: 人外娘 + cat_girl: 貓娘 + dog_girl: 犬娘 + fox_girl: 狐娘 + kitsune: 狐妖 + kyuubi: 九尾|九尾狐 + raccoon_girl: 浣熊娘 + wolf_girl: 狼女孩 + bunny_girl: 兔娘 + horse_girl: 馬娘 + cow_girl: 牛娘 + dragon_girl: 龍娘 + centaur: 半人馬 + slime_musume: 史萊姆娘 + spider_girl: 蜘蛛娘 + dominatrix: 女王(SM中) + sailor_senshi: 美少女戰士 + mecha: 機甲 + mecha_musume: 機甲娘 + humanoid_robot_: 類人機器人 + cyborg: 半機械人 + angel: 天使 + devil: 魔鬼 + dark_elf: 暗精靈 + imp: 小惡魔 + succubus: 魅魔 + giantess: 女巨人 + minigirl: 迷你女孩 + monster: 怪物 + multiple girls: 魔幻少女 + no humans: 非人 + + - name: 年齡 + color: rgba(255, 123, 2, .4) + tags: + toddler: 幼童 + kindergartener: 幼稚園生 + child: 兒童 + underage: 未成年 + teenager: 青少年(13-19) + teen: 青少年(13-19) + early teen: 青少年早期(11-15) + adult: 成年人 + elder: 老人 + old: 老年 + loli: 蘿莉 + shota: 正太 + + - name: 皮膚 + color: rgba(255, 123, 2, .4) + tags: + white_skin: 白皮膚 + pale_skin: 蒼白的皮膚 + fair_skin: 白皙的皮膚 + brown_skin: 棕色皮膚 + deep_skin: 深色皮膚 + dark_skin: 黑皮膚 + black_skin: 黑皮膚 + shiny_skin: 有光澤的皮膚 + white_marble_glowing_skin: 白色大理石發光皮膚 + tattoo: 紋身 + tan: 曬黑 + tanlines: 曬痕 + oil: 油性 + + - name: 身材 + color: rgba(255, 123, 2, .4) + tags: + skinny: 骨感 + plump: 豐滿 + curvy: 曲線玲瓏 + gyaru: 辣妹(日本太妹) + pregnant: 懷孕 + fat: 肥胖 + thin: 瘦 + slender: 苗條 + glamor: 魅力 + tall: 高大 + petite: 嬌小 + chibi: 萌萌 + muscular: 肌肉 + + - name: 臉型 + color: rgba(255, 123, 2, .4) + tags: + slender face: 瘦臉 + round face: 圓臉 + oval face: 鵝蛋臉 + baby face: 娃娃臉 + inverted triangle face: 倒三角臉 + heart shaped face: 心形臉 + diamond face: 菱形臉 + square face: 方臉 + long face: 長臉 + triangular face: 三角臉 + + - name: 頭髮 + color: rgba(255, 123, 2, .4) + tags: + white hair: 白色頭髮 + blonde hair: 金色頭髮 + silver hair: 銀色頭髮 + grey hair: 灰色頭髮 + purple hair: 紫色頭髮 + red hair: 紅色頭髮 + yellow hair: 黃色頭髮 + green hair: 綠色頭髮 + blue hair: 藍色頭髮 + black hair: 黑色頭髮 + brown hair: 棕色頭髮 + straight_hair: 直髮 + short hair: 短髮 + curly hair: 捲髮 + long hair: 長髮 + pony-tail: 馬尾 + bunches: 雙馬尾 + streaked hair: 挑染 + grey gradient hair: 灰色漸層 + light brown hair: 亮棕 + two-tone hair: 雙色 + multicolored hair: 多色 + high ponytail: 高馬尾 + twintails: 雙馬尾 + braided ponytail: 編馬尾 + ponytail: 馬尾辮 + short ponytail: 短馬尾 + twin braids: 雙辮子 + medium hair: 中髮 + very long hair: 超長髮 + braided bangs: 辮子劉海 + swept bangs: 側掃劉海 + hair between eyes: 眼間頭髮 + bob cut: 妹妹頭 + hime cut: 公主頭 + crossed bangs: 交叉劉海 + bangs: 劉海 + blunt bangs: 齊劉海 + air bangs: 空氣劉海 + hair wings: 翼狀頭髮 + long bangs: 長劉海 + side_blunt_bangs: 側面空氣劉海 + centre parting bangs: 中分劉海 + asymmetric bangs: 不對稱劉海 + disheveled hair: 蓬鬆 + wavy hair: 波浪形頭髮 + hair in takes: 收攏 + hair pink flowers: 粉色花 + ahoge: 呆毛 + antenna hair: 多根呆毛 + Side ponytail: 側馬尾 + forehead: 額頭 + drill hair: 鑽頭捲公主捲 + hair bun: 包子頭 + double bun: 兩個包子頭 + messy hair: 凌亂髮型 + hair_flaps: 發翼 + + - name: 面部 + color: rgba(255, 123, 2, .4) + tags: + makeup: 化妝 + fundoshi: 粉底 + eyeshadow: 眼影 + lipstick: 口紅 + mascara: 睫毛膏 + long_eyelashes: 長睫毛 + red_lips_: 紅唇 + facepaint: 面部塗裝 + lipgloss: 唇彩 + colored_eyelashes: 彩色睫毛 + blush: 臉紅 + light_blush: 淡淡的腮紅 + anime_style_blush: 動畫式臉紅 + nose_blush: 鼻腮紅 + nosebleed: 鼻血 + bruise_on_face: 臉上有瘀傷 + facial_mark: 面部標記 + forehead_mark: 額頭標記 + anger_vein: 頭部憤怒符號 + mole: 痣 + mole_under_eye: 眼睛下方的痣 + freckles: 雀斑 + food_on_face: 食物在臉上 + rice_on_face: 飯在臉上 + cream_on_face: 奶油在臉上 + mustache: 小鬍子 + goatee: 山羊鬍 + whisker_markings: 鬍鬚斑紋 + scar: 疤痕 + scar_across_eye: 穿過眼睛的疤痕 + smoking_pipe: 煙斗 + tattoo: 紋身 + + - name: 耳朵 + color: rgba(255, 123, 2, .4) + tags: + elf ears: 精靈耳朵 + fake animal ears: 動物耳朵 + cat ears: 貓耳朵 + dog ears: 狗耳朵 + fox ears: 狐狸耳朵 + bunny ears: 兔子耳朵 + bear ears: 熊耳朵 + wolf ears: 狼耳朵 + horse ears: 馬耳朵 + cow ears: 牛耳朵 + mouse ears: 老鼠耳朵 + pig ears: 豬耳朵 + sheep ears: 羊耳朵 + deer ears: 鹿耳朵 + goat ears: 山羊耳朵 + antelope ears: 羚羊耳朵 + rhino ears: 犀牛耳朵 + elephant ears: 大象耳朵 + bat ears: 蝙蝠耳朵 + dragon ears: 龍耳朵 + demon ears: 惡魔耳朵 + angel ears: 天使耳朵 + alien ears: 外星人耳朵 + ear_blush: 耳朵通紅 + ear_ornament: 耳飾 + ear_piercing: 耳洞 + animal_ears: 獸耳 + ears_down: 垂耳 + fake_animal_ears: 假獸耳 + floppy_ears: 鬆軟的耳朵 + animal_ear_fluff: 動物耳朵絨毛 + fox_ears: 狐狸耳朵 + cat_ears: 貓耳朵 + lion_ears: 獅子耳朵 + jaguar_ears: 美洲豹耳朵 + tiger_ears: 虎耳 + dog_ears: 狗耳朵 + coyote_ears: 郊狼耳朵 + bunny_ears: 兔耳 + horse_ears: 馬耳 + pointy_ears: 尖耳朵 + long_pointy_ears: 長尖耳朵 + mouse_ears: 老鼠耳朵 + raccoon_ears: 浣熊耳朵 + squirrel_ears: 松鼠耳朵 + bear_ears: 熊耳朵 + panda_ears: 熊貓耳朵 + bat_ears: 蝙蝠耳朵 + robot_ears: 機器人耳朵 + extra_ears: 額外的耳朵 + ears_through_headwear: 耳朵穿過帽子或頭飾 + alpaca_ears: 羊駝耳 + horns: 獸角 + fake_horns: 假角 + dragon_horns: 龍角 + oni_horns: 鬼角 + antlers: 鹿角 + curled_horns: 彎角 + goat_horns: 山羊角 + hair_on_horn: 角上的頭髮 + + - name: 眉毛 + color: rgba(255, 123, 2, .4) + tags: + thick eyebrows: 濃眉 + cocked eyebrow: 眉毛翹起 + short eyebrows: 短眉毛 + v-shaped eyebrows: V字眉 + + - name: 眼睛 + color: rgba(255, 123, 2, .4) + tags: + blue eyes: 藍色眼睛 + red eyes: 紅色眼睛 + brown eyes: 棕色眼睛 + green eyes: 綠色眼睛 + purple eyes: 紫色眼睛 + yellow eyes: 黃色眼睛 + pink eyes: 粉色眼睛 + black eyes: 黑色眼睛 + aqua eyes: 水藍色眼睛 + orange eyes: 橙色眼睛 + grey eyes: 灰色眼睛 + multicolored eyes: 多彩眼睛 + white eyes: 白色眼睛 + gradient eyes: 漸層眼睛 + closed eyes: 閉上眼睛 + half-closed eyes: 半閉眼 + crying with eyes open: 睜著眼睛哭 + narrowed eyes: 眯起眼睛 + hidden eyes: 隱藏眼睛 + heart-shaped eyes: 心形眼睛 + button eyes: 紐扣眼睛 + cephalopod eyes: 頭足類眼睛 + eyes visible through hair: 透過頭髮看見眼睛 + glowing eyes: 發光的眼睛 + empty eyes: 空洞的眼睛 + rolling eyes: 翻白眼 + cross eyed: 斗雞眼 + blank eyes: 空白的眼睛 + no eyes: 沒有眼睛 + sparkling eyes: 閃閃發光的眼睛 + extra eyes: 額外的眼睛 + crazy eyes: 瘋狂的眼睛 + solid circle eyes: 實心圓眼 + solid oval eyes: 實心橢圓形眼睛 + uneven eyes: 不均勻的眼睛 + blood from eyes: 眼裡流血 + eyeshadow: 眼影 + red eyeshadow: 紅色眼影 + blue eyeshadow: 藍色眼影 + purple eyeshadow: 紫色眼影 + pink eyeshadow: 粉色眼影 + green eyeshadow: 綠色眼影 + bags under eyes: 眼袋 + ringed eyes: 眼圈 + covered eyes: 蒙住眼睛 + covering eyes: 遮住眼睛 + shading eyes: 擋著眼睛 + devil eyes: 魔鬼眼 + slit pupils: 猫眼 + bloodshot eyes: 充血的眼睛 + tsurime: 眼尾上揚 + tareme: 眼尾下垂 + constricted pupils: 瞳孔收縮 + devil pupils: 魔瞳 + snake pupils: 蛇瞳 + pupils sparkling: 瞳孔閃爍 + flower-shaped pupils: 花狀瞳孔 + heart-shaped pupils: 心形瞳孔 + heterochromia: 異色瞳 + color contact lenses: 美瞳 + longeyelashes: 長睫毛 + colored eyelashes: 彩色睫毛 + mole under eye: 眼下痣 + light_eyes: 明亮的眼睛 + glowing_eye: 發光的眼睛 + shiny_eyes: 閃亮的眼睛 + sparkling_eyes: 星星眼 + gradient_eyes: 漸變眼睛 + anime_style_eyes: 動畫眼 + water_eyes: 水汪汪 + beautiful_detailed_eyes: 美麗的眼睛 + solid_oval_eyes_: Q版實心橢圓眼睛 + solid_circle_pupils: Q版實心圓瞳孔 + blush_stickers: Q版腮紅貼紙 + heart_in_eye: 心形眼 + evil_eyes: 邪惡的眼睛 + crazy_eyes: 瘋狂的眼睛 + empty_eyes: 失去高光的眼睛 + covered_eyes: 蒙住的眼睛 + hollow_eyes: 星星狀瞳孔 + multicolored_eyes: 多彩多姿的眼睛 + ringed_eyes: 眼圈 + sanpaku: 三白症(瞳孔偏移) + mismatched_sclera: 錯配巩膜 + eye_relfection: 眼睛反射(沒有效果) + mechanical_eye: 機械眼 + cephalopod_eyes: 頭足類眼睛 + clock_eyes: 鐘眼 + compound_eyes: 複眼 + fisheye: 魚眼 + devil_eyes: 惡魔之眼 + bloodshot_eyes: 布滿血絲的眼睛 + blood_from_eyes: 血從眼裡流出 + aqua_eyes: 青色眼睛 + solid_eyes: 堅定的眼睛 + sparkling_anime_eyes: 閃光動畫眼 + blue_eyes: 藍眼睛 + brown_eyes: 棕色的眼睛 + closed_eyes: 閉上的眼睛 + crying_with_eyes_open: 睜著眼落淚 + extra_eyes: 多只眼睛 + eye_contact: 眼神交流 + eye_of_horus: 荷魯斯之眼 + eyeball: 眼球 + eyeliner: 眼線 + eyes: 眼睛 + glint: 眼中閃現強烈的情感 + glowing_eyes: 發光的雙眼 + half-closed_eye: 半閉的眼睛(單眼) + half-closed_eyes: 半閉的雙眼 + horizontal_pupils: + jitome: 輕蔑的眼神 + light_brown_eyes: 淺棕色眼睛 + no_eyes: 沒畫出眼睛 + one-eyed: 反光的眼睛 + reflective_eyes: + silver_eyes: 銀色的眼睛 + spiral_eyes: 漩渦眼 + third_eye: 第三只眼 + uneven_eyes: 大小眼 + flaming_eye: 焰目 + eyes_closed: 閉眼 + half_closed_eyes: 半閉雙眼 + narrowed_eyes: 眯起眼睛 + squinting: 眯起眼睛看 + tears: 眼淚 + sharp_eyes: 銳利的眼 + slanted_eyes: 銳利的眼 + upturned_eyes: 上翹的眼睛 + cross-eyed: 斗雞眼 + hair_over_eyes: 頭髮遮著雙眼 + eyes_visible_through_hair: 透過頭髮可以看到的眼睛 + hair_over_one_eye: 頭髮遮住了一只眼睛 + one_eye_covered: 一只眼被遮住 + bags_under_eyes: 眼袋 + eyepatch: 眼罩 + medical_eyepatch: 醫用眼罩 + scar_across_eye: 眼睛上的疤痕 + no_blindfold: 去掉了(原本有的)蒙眼要素 + no_eyepatch: 去掉了(原本有的)眼罩 + ahegao: 阿嘿顏 + + - name: 瞳孔 + color: rgba(255, 123, 2, .4) + tags: + pupils: 瞳孔 + bright_pupils: 明亮的瞳孔 + heterochromia: 異色瞳 + slit_pupils: 竪的瞳孔/貓眼 + snake_pupils: 瞳孔閃光 + symbol-shaped_pupils: 符號形瞳孔 + heart-shaped_pupils: 愛心形瞳孔 + diamond-shaped_pupils: 鑽石形狀瞳孔 + star-shaped_pupils: 五角星形狀瞳孔 + dilated_pupils: 瞳孔散大 + no_pupils: 沒有瞳孔 + ringed_eyes: 輪迴眼 + constricted_pupils: 收縮的瞳孔(沒有效果) + star_in_eye: 眼睛裡的星星 + x-shaped_pupils: X形瞳孔 + horizontal_pupils: 水平瞳孔 + dashed_eyes: 虛線的眼睛 + butterfly-shaped_pupils: 蝴蝶形瞳孔 + rectangular_pupils: 長方形瞳孔 + square_pupils: 方形瞳孔 + dot_pupils: 點瞳孔 + extra_pupils: 額外的瞳孔 + mismatched_pupils: 不匹配的瞳孔 + "+_+": 十字星星眼 + cross-shaped_pupils: 符號形瞳孔(沒有效果) + purple_pupils: 紫色瞳孔 + orange_pupils: 橙色瞳孔 + blue_pupils: 藍色瞳孔 + symbol_in_eye: 眼睛裡有符號 + + - name: 鼻子 + color: rgba(255, 123, 2, .4) + tags: + pointed nose: 尖鼻子 + small nose: 小鼻子 + big nose: 大鼻子 + no_nose: 沒鼻子的 + dot_nose: 點狀鼻 + nose_bubble: 鼻泡 + smelling: 聞 + nose: 鼻子 + nosebleed: 流鼻血 + snot: 鼻涕 + snout: 動物口鼻部 + + - name: 嘴巴 + color: rgba(255, 123, 2, .4) + tags: + chestnut mouth: 栗子嘴 + thick lips: 厚嘴唇 + puffy lips: 腫嘴唇 + lipstick: 口紅 + heart-shaped mouth: 心形嘴 + pout: 嘟嘴 + open mouth: 張嘴 + closed mouth: 閉嘴 + shark mouth: 鯊魚嘴 + parted lips: 張開的嘴 + mole under mouth: 嘴下痣 + open_mouth: 張嘴 + gasping: 喘氣(張大嘴) + Slightly_open_mouth: 嘴巴微微張開 + wavy_mouth: 波浪嘴 + close_mouth: 閉嘴 + dot_mouth: 點嘴 + no_mouth: 沒有嘴 + gag: 堵嘴 + gnaw: 啃 + :3: 貓嘴 + :o: 張嘴 + :>: V嘴 + parted_lips: 嘴唇張開 + bit_gag: 勒住嘴 + chestnut_mouth: 栗子嘴 + cleave_gag: 被封住嘴 + closed_mouth: 閉著的嘴 + covered_mouth: 蒙住的嘴 + extra_mouth: 有多張嘴巴 + hair_in_mouth: 嘴裡有頭髮 + hair_tie_in_mouth: 將繫頭髮的東西叼在嘴裡 + homu: 嘟嘴|抿嘴 + lips: 嘴唇 + mouth: 嘴 + mouth_hold: 用嘴叼著 + oral: 用嘴 + pacifier: 奶嘴 + Pouted lips: 撅起的嘴唇 + sideways_mouth: 把嘴畫在側臉 + spoon_in_mouth: 嘴裡含著湯匙 + triangle_mouth: 三角嘴 + saliva: 唾液 + drooling: 流口水 + mouth_drool: 嘴角畫著口水滴形狀的缺口 + + - name: 牙齒 + color: rgba(255, 123, 2, .4) + tags: + teeth: 牙齒 + upper_teeth: 上牙 + fang: 虎牙 + skin_fang: 膚色虎牙 + round_teeth: 圓齒 + sharp_teeth: 鋒利的牙齒 + clenched_teeth: 咬緊牙關 + tongue: 舌頭 + buck_teeth: 龐牙 + fang_out: 露出虎牙|露出尖牙 + fangs: 尖牙 + spiked_club: 狼牙棒 + tooth: 牙 + toothbrush: 牙刷 + tusks: 象牙 + shark_mouth: 鯊魚牙 + + - name: 舌頭 + color: rgba(255, 123, 2, .4) + tags: + :q: 舌頭放在上唇 + :p: 舌頭放在下唇 + ;p: 眨眼舌頭上伸 + french_kiss: 舌吻|法式濕吻 + long_tongue: 長舌頭 + oral_invitation: 迎接射精而伸出舌頭 + tongue: 舌頭 + tongue_out: 吐舌頭 + uvula: 小舌頭|口蓋垂|懸雍垂 + + - name: 指甲 + color: rgba(255, 123, 2, .4) + tags: + fingernails: 手指甲 + toenails: 腳趾甲 + nail_polish: 指甲油 + toenail_polish: 腳趾甲油 + black_nails: 黑指甲 + red_nails: 紅指甲 + pink_nails: 粉色指甲 + long_fingernails: 長指甲 + nail: 釘子|指甲 + multicolored_nails: 多彩指甲 + nail_art: 美甲 + brown_vest: 棕色馬甲 + + - name: 肩部 + color: rgba(255, 123, 2, .4) + tags: + bare shoulders: 赤肩 + collarbone: 鎖骨 + armpits: 腋下 + armpit crease: 腋窩皺痕 + + - name: 胸部 + color: rgba(255, 123, 2, .4) + tags: + chest: 胸部 + flat chest: 貧乳(A_) + small breasts: 小胸部(B) + medium breasts: 中等胸部(C) + big breasts: 大胸部(D) + huge breasts: 巨乳(E) + gigantic breasts: 超巨乳(F) + between breasts: 兩胸之間 + breasts apart: 胸部分開 + hanging breasts: 下垂 + bouncing breasts: 晃動 + cleavage: 乳溝 + areola: 乳暈 + nipples: 乳頭 + pectorals: 胸肌 + large pectorals: 大胸肌 + unbuttoned clothes: 半露前胸 + + - name: 腰部 + color: rgba(255, 123, 2, .4) + tags: + narrow waist: 細腰 + slender waist: 纖細的腰 + + - name: 腹部 + color: rgba(255, 123, 2, .4) + tags: + midriff: 腹部 + belly: 肚子 + abs: 腹肌 + inflation: 隆起的腹部 + navel: 肚臍 + groin: 腹股溝 + pregnant: 懷孕 + + - name: 翅膀 + color: rgba(255, 123, 2, .4) + tags: + wings: 翅膀 + bat wings: 蝙蝠翅膀 + butterfly wings: 蝴蝶翅膀 + black wings: 黑色之翼 + demon wings: 惡魔之翼 + asymmetrical wings: 不對稱的翅膀 + detached wings: 不與本體相連的翅膀 + fairy wings: 妖精的翅膀 + fake wings: 仿造的翅膀 + fiery wings: 燃燒著的翅膀 + insect wings: 昆蟲翅膀 + large wings: 大翅膀 + low wings: 腰間的翅膀 + mini wings: 迷你翅膀 + multicolored wings: 有多種顏色的翅膀 + multiple wings: 多對翅膀 + no wings: 去掉了翅膀 + winged helmet: 帶翅膀的頭盔 + +- name: 服飾 + groups: + - name: 正裝 + color: rgba(230, 84, 128, .4) + tags: + suit: 西裝 + tuxedo: 燕尾服 + formal_dress: 禮服 + evening_gown: 晚禮服 + canonicals: 晚宴禮服 + cocktail_dress: 雞尾酒裙 + gown: 女長禮服 + japanese_clothes: 和服 + kimono: 和服 + sleeveless_kimono: 無袖和服 + short_kimono: 短和服 + print_kimono: 印花和服 + furisode: 振袖(和服的一部分) + obi: 衣帶(和服用) + sash: 飾帶 + cheongsam: 旗袍 + china_dress: 旗袍 + print_cheongsam: 印花旗袍 + pelvic_curtain: 旗袍類衣物的前擺 + wedding_dress: 婚紗 + uchikake: 白無垢(日式嫁衣) + school_uniform: 校服 + sailor: 水手服 + serafuku: 水手服 + summer_uniform: 夏季制服 + kindergarten_uniform: 幼兒園制服 + police_uniform: 警服 + naval_uniform: 海軍制服 + military_uniform: 陸軍制服 + ss_uniform/nazi_uniform: 納粹制服 + maid: 女僕裝 + stile_uniform: 女侍從的制服 + miko: 巫女服 + overalls: 工作服 + business_suit: 職場制服 + nurse: 護士 + chef_uniform: 廚師工裝 + labcoat: 白大褂 + cheerleader: 啦啦隊服 + band_uniform: 樂隊制服 + space_suit: 太空服 + leotard: 連褲褲 + domineering: 修女服 + + - name: 風格 + color: rgba(230, 84, 128, .4) + tags: + china_dress: 中國服飾 + chinese_style: 中國風 + traditional_clothes: 傳統服裝|民族服裝 + japanese_clothes: 日式服裝 + hanten_(clothes): 袢纏(日式) + hanbok: 韓服 + korean_clothes: 朝鮮服飾 + western: 西部風格 + german_clothes: 德國服裝 + gothic: 哥特風格 + lolita: 洛麗塔風格 + gothic_lolita: 哥特洛麗塔風格 + byzantine_fashion: 拜占庭風格 + Tropical: 熱帶特徵的 + indian_style: 印度風格 + Ao_Dai: 越南校服(奧黛) + ainu_clothes: 阿伊努人的服飾 + arabian_clothes: 阿拉伯服飾 + egyptian_clothes: 埃及風格服飾 + costume: 套裝 + animal_costume: 動物系套裝(皮套) + bunny_costume: 兔子服裝 + adapted_costume: 原設服裝改編 + cat_costume: 貓系服裝 + dog_costume: 皮套狗 + bear_costume: 熊套裝 + embellished_costume: 經潤飾的服裝 + santa_costume: 聖誕風格服裝 + halloween_costume: 萬聖節服裝 + kourindou_tengu_costume: 香霖堂天狗裝束 + alternate_costume: 與原設不同衣服 + costume_switch: 換衣play + meme_attire: 模因服裝 + + - name: 休閒裝 + color: rgba(230, 84, 128, .4) + tags: + casual: 休閒 + loungewear: 休閒服 + hoodie: 衛衣 + homewear: 居家服 + pajamas: 睡衣 + nightgown: 睡衣 + sleepwear: 睡衣 + babydoll: 情趣睡衣 + print_pajamas: 印花睡衣 + polka_dot_pajamas: 波點睡衣 + yukata: 浴衣 + chinese_clothes: 唐裝 + hanfu: 漢服 + Taoist robe: 道袍 + robe: 長袍 + robe_of_blending: 混合長袍 + cloak: 斗篷 + hooded_cloak: 連帽斗篷 + winter_clothes: 冬裝 + down jacket: 羽絨服 + santa: 聖誕裝 + harem_outfit: 舞娘服 + shrug_(clothing): 聳肩(服裝) + + - name: 運動服 + color: rgba(230, 84, 128, .4) + tags: + sportswear: 運動服 + gym_uniform: 運動服 + athletic_leotard: 體操服 + tennis_uniform: 網球衫 + baseball_uniform: 棒球服 + letterman_jacket: 棒球夾克 + volleyball_uniform: 排球服 + biker_clothes: 自行車運動服 + bikesuit: 騎行套裝 + wrestling_outfit: 摔角服 + dougi: 武道服 + + - name: 泳裝 + color: rgba(230, 84, 128, .4) + tags: + swimsuit: 泳裝 + swimwear: 泳衣 + wet_swimsuit: 濕泳衣 + school_swimsuit: 學校泳裝(死庫水) + new_school_swimsuit: 新式死庫水 + old_school_swimsuit: 舊式死庫水 + competition_school_swimsuit: 競泳死庫水 + competition_swimsuit: 賽用泳衣 + casual_one-piece_swimsuit: 連體泳衣 + front_zipper_swimsuit: 拉鍊在正面的泳衣 + highleg_swimsuit: 高開衩的泳衣 + one-piece_swimsuit: 一體式泳衣 + swimsuit_of_perpetual_summer: 常夏的泳衣(FGO學妹靈衣) + bikini: 比基尼 + highleg_bikini: 高腰比基尼 + lowleg_bikini: 低腰比基尼 + slingshot_swimsuit: V字泳衣 + sailor_bikini: 水手服款比基尼 + shell_bikini: 貝殼比基尼 + sports_bikini: 運動比基尼 + string_bikini: 系繩比基尼 + strapless_bikini: 無肩帶比基尼 + side-tie_bikini: 細帶款比基尼 + front-tie_bikini_top: 前系帶比基尼上衣 + multi-strapped_bikini: 多綁帶比基尼 + thong_bikini: 丁字褲比基尼 + front-tie_bikini: 從正面打結的比基尼 + frilled_bikini: 花邊比基尼 + o-ring_bikini: 帶O型環的比基尼 + eyepatch_bikini: 眼罩比基尼 + layered_bikini: 分層比基尼 + bow_bikini: 帶蝴蝶結的比基尼 + frilled_swimsuit: 花邊泳衣 + polka_dot_swimsuit: 圓斑泳衣 + striped_swimsuit: 條紋泳衣 + striped_bikini: 條紋比基尼 + plaid_bikini: 格子比基尼 + polka_dot_bikini: 圓斑比基尼 + print_bikini: 印花比基尼 + american_flag_bikini: 美國國旗比基尼 + german_flag_bikini: 德國國旗比基尼 + impossible_swimsuit: 人體彩繪般的泳衣 + bikini_top: 只穿著比基尼上衣 + bikini_top_only: 僅比基尼上衣 + bikini_top_removed: 脫下了比基尼上衣 + bikini_bottom_only: 僅比基尼下裝 + bikini_bottom: 比基尼泳褲 + untied_bikini: 解開的比基尼 + bikini_aside: 從三點剝開的比基尼 + swimsuit_aside: 把泳衣的襠部挪到一邊 + swimsuit_under_clothes: 衣服裡面穿著泳衣 + torn_swimsuit: 破損的泳衣 + bikini_skirt: 比基尼裙 + swim_briefs: 泳褲 + swim_cap: 泳帽 + swim_trunks: 泳褲 + male_swimwear: 男用泳褲 + + - name: 制服 + color: rgba(230, 84, 128, .4) + tags: + adapted_uniform: 改裝制服 + anzio_military_uniform: 安齊奧軍服 + anzio_school_uniform: 安齊奧校服 + aria_company_uniform: 亞利亞公司制服 + ashford_academy_uniform: 阿什福特學院制服 + bc_freedom_military_uniform: BC自由學園制服 + chaldea_uniform: 迦勒底制服 + chi-hatan_military_uniform: 知波單學院制服 + fleur_de_lapin_uniform: 點兔女僕裝 + garreg_mach_monastery_uniform: 加爾格·馬可大修道院制服 + gem_uniform_(houseki_no_kuni): 寶石之國的制服 + hanasakigawa_school_uniform: 花咲川女子學園 + hikarizaka_private_high_school_uniform: 私立光坂高等學校校服 + homurahara_academy_uniform: 穗群原學園制服 + kamiyama_high_school_uniform: 神山高中校服 + keizoku_military_uniform: 繼續高中軍服 + kita_high_school_uniform: 北高中制服 + kiyosumi_school_uniform: 清澄高中校服 + luna_nova_school_uniform: 魯納諾娃魔法學校校服 + meiji_schoolgirl_uniform: 明治女學生制服 + mitakihara_school_uniform: 見濤原中學校制服 + nami_junior_high_school_uniform: 波路中學校服 + nanairogaoka_middle_school_uniform: 七色丘中學校服 + nanamori_school_uniform: 七森中學校服 + naoetsu_high_school_uniform: 私立直江津高校制服 + national_shin_ooshima_school_uniform: 新大島學園校服 + ooarai_military_uniform: 大洗聯隊軍裝 + ooarai_school_uniform: 大洗聯隊校服 + otonokizaka_school_uniform: 國立音乃木坂學院女子制服 + paradis_military_uniform: 帕拉迪島軍裝 + polar_chaldea_uniform: 極地迦勒底制服 + pravda_military_uniform: 真理學院軍裝 + pravda_school_uniform: 真理學院校服 + rabbit_house_uniform: 點兔兔之家制服 + raimon_soccer_uniform: 雷門足球隊服 + ryouou_school_uniform: 陵櫻學園制服 + sailor_senshi_uniform: 美少女戰士制服 + sakugawa_school_uniform: 栅川中學校服 + sakuragaoka_high_school_uniform: 櫻丘女子高等學校校服 + saunders_military_uniform: 桑德斯軍裝 + saunders_school_uniform: 桑德斯附高校服 + seishou_elementary_school_uniform: 聖祥大附小學校校服 + shinda_sekai_sensen_uniform: 死後世界戰線制服 + shuuchiin_academy_uniform: 秀知院學園制服 + shuujin_academy_uniform: 秀盡學院制服 + st._gloriana's_military_uniform: 聖葛羅莉安娜軍裝 + st._gloriana's_school_uniform: 聖葛羅莉安娜女學園校服 + starlight_academy_uniform: 星光學園制服 + tokisadame_school_uniform: 時定高校校服 + tokiwadai_school_uniform: 常盤台中學校服 + tomoeda_elementary_school_uniform: 友枝小學校服 + tsab_ground_military_uniform: 時空管理局軍服 + u.a._school_uniform: 雄英高中校服 + uranohoshi_school_uniform: 浦之星女學院校服 + yasogami_school_uniform: 八十神高中校服 + mismatched_bikini: 雙色比基尼 + multicolored_bikini: 多色款比基尼 + + - name: 上衣 + color: rgba(230, 84, 128, .4) + tags: + blouse: 女式襯衫 + white_shirt: 白襯衫 + collared_shirt: 有領襯衫 + dress_shirt: 西裝襯衫 + sailor_shirt: 水手服襯衫 + cropped_shirt: 短襯衫 + t-shirt: T恤 + casual T-shirts: 日常T恤 + short sleeve T-shirts: 短袖T恤 + off-shoulder_shirt: 露肩襯衫(搭肩衫) + shrug_(clothing): 包肩上衣 + cardigan: 開襟毛衣衫 + criss-cross_halter: 交叉吊帶衫 + frilled_shirt: 褶邊襯衫 + sweatshirt: 長袖運動卫衣 + hawaiian_shirt: 夏威夷襯衫 + hoodie: 連帽衫 + Impossible shirt: 貼合程度不合邏輯的襯衫 + kappougi: (烹飪時穿的)罩衫 + plaid_shirt: 格子襯衫 + polo_shirt: 馬球衫 + print_shirt: 印花襯衫 + shirt: 襯衫 + sleeveless_hoodie: 無袖連帽衫 + sleeveless_shirt: 無袖襯衫 + striped_shirt: 條紋襯衫 + tank_top: 背心(居家) + vest: 背心(正式) + waistcoat: 背心(正式) + camisole: 吊帶背心(小可愛) + tied_shirt: 系帶襯衫(把衣角和下擺打結) + undershirt: 汗衫 + crop_top: 截短上衣 + highleg: 高開衩的衣物 + clothing_cutout: 衣服漏洞 + back_cutout: 露背上衣 + cleavage_cutout: 乳溝處開洞 + navel_cutout: 肚臍開洞 + midriff: 露腰上衣 + heart_cutout: 心形開口 + torn_clothes: 撕裂的衣服 + torn_shirt: 撕裂的襯衫 + undressing: 脫衣服中 + clothes_down: 褪下衣物 + shirt_lift: 掀起襯衫 + shirt_pull: 襯衫拉下來 + shirt_tucked_in: 襯衫塞進去 + clothes_tug: 拖拽衣服 + shirt_tug: 拖拽襯衫 + untucked_shirt: 解開的襯衫 + lifted_by_self: 掀自己衣服 + untied: 掀自己衣服 + open_clothes: 敞開的衣服 + unbuttoned shirt: 解開紐扣的襯衫 + button_gap: 紐扣之間的縫隙(沒解開) + partially_unbuttoned: 解開部分紐扣 + partially_unzipped: 拉開上部分拉鍊 + clothes_removed: 脫下的衣服 + shirt_removed: 脫下襯衫 + wardrobe_error: 衣服滑落 + undersized_clothes: 穿衣方式錯了 + tight: 衣物緊緊的 + wedgie: 嵌入(拉襠部衣物所致) + wardrobe_malfunction: 衣服出了意外(如崩開) + taut_shirt: 繃緊的襯衫 + taut_clothes: 繃緊的衣服 + underbust: 勒出下胸圍 + oversized_clothes: 過大號的衣服 + oversized_shirt: 過大號襯衫 + borrowed_garments: 男友的衣服 + strap_slip: 衣物吊帶滑落(導致走光) + wet_shirt: 濕襯衫 + clothes_theft: 偷衣服 + + - name: 外套 + color: rgba(230, 84, 128, .4) + tags: + blazer: 西裝外套 + overcoat: 大衣 + double-breasted: 雙排紐扣(雙排扣) + long_coat: 長外套 + haori: 一種寬上衣 + winter_coat: 冬季大衣 + hooded_coat: 連帽大衣 + fur_coat: 皮草大衣 + fur-trimmed_coat: 鑲邊皮草大衣 + duffel_coat: 粗呢大衣 + fishnet_top: 漁網上衣 + parka: 派克大衣 + jacket: 夾克衫 + jacket_partially_removed: 夾克部分移除 + jacket_removed: 夾克被移除 + open_jacket: 開襟夾克(配合spread_legs) + cropped_jacket: 短款夾克 + track_jacket: 運動夾克 + hooded_track_jacket: 連帽運動夾克 + military_jacket: 軍裝夾克 + camouflage_jacket: 迷彩夾克 + leather_jacket: 皮夾克 + letterman_jacket: 萊特曼夾克 + bomber_jacket: 飛行員夾克 + denim_jacket: 牛仔夾克 + loating_jacket: 休閒夾克 + fur-trimmed_jacket: 毛皮邊飾夾克 + two-tone_jacket: 兩色夾克 + trench_coat: 風衣 + furisode: 振袖(和服的一部份) + windbreaker: 衝鋒衣 + raincoat: 雨衣 + hagoromo: 羽衣 + tunic: 束腰外衣 + cape: 披肩 + capelet: 披肩 + winter_clothes: 冬裝 + sweater: 毛衣 + pullover_sweaters: 套頭毛衣 + ribbed_sweater: 羅紋毛衣 + sweater_vest: 毛衣背心 + backless_sweater: 露背毛衣 + aran_sweater: 愛爾蘭毛衣 + beige_sweater: 米色毛衣 + brown_sweater: 棕色毛衣 + hooded_sweater: 連帽毛衣 + off-shoulder_sweater: 露肩毛衣 + striped_sweater: 條紋毛衣 + virgin_killer_sweater: 處男殺手毛衣 + down_jacket: 羽絨服 + puffer_jacket: 羽絨服 + + - name: 其他 + color: rgba(230, 84, 128, .4) + tags: + transparent: 透明的 + burnt_clothes: 燒焦的衣服 + dissolving_clothes: 溶解掉的衣服 + dirty_clothes: 弄髒的衣服 + expressive_clothes: 富有表現力的衣服 + impossible_clothes: 有不現實的包裹程度的衣服 + living_clothes: 活體衣服 + leotard_under_clothes: 內層穿著連衣褲 + multicolored_clothes: 多色款衣服 + ofuda_on_clothes: 衣服上貼著符紙 + wringing_clothes: 擰乾衣服 + clothesline: 曬衣服 + shiny_clothes: 有光澤的衣服 + kariginu: 狩衣 + front-tie_top: 從正面打結的衣物 + jacket_on_shoulders: 用夾克披肩 + short_jumpsuit: 短褲腿連體衣 + harness: 背帶;挽具 + rigging: 艦裝 + aiguillette: 肩帶 + + - name: 腰部 + color: rgba(230, 84, 128, .4) + tags: + apron: 圍裙 + waist_apron: 腰圍裙 + maid_apron: 女僕圍裙 + bow tied at the waist: 繫在前腰的蝴蝶結 + waist_cape: 穿在腰部的小披風 + clothes_around_waist: 腰間衣服 + jacket_around_waist: 腰圍夾克 + sweater_around_waist: 圍腰毛衣 + loincloth: 纏腰布 + bustier: 胸衣 + corset: 束腰(馬甲) + girdle: 緊身褡 + + - name: 盔甲 + color: rgba(230, 84, 128, .4) + tags: + armor: 盔甲 + bikini_armor: 比基尼盔甲 + full_armor: 穿著全套盔甲的 + plate_armor: 板甲 + japanese_armor: 日本鎧甲 + kusazuri: 腹當|草摺(日式下半盔甲 + power_armor: 動力裝甲 + mecha: 機甲 + helmet: 頭盔 + kabuto: 頭盔(日式) + off-shoulder_armor: 無肩甲盔甲 + shoulder_armor: 肩甲 + muneate: 日本弓道護胸甲 + breastplate: 胸甲 + faulds: 腹甲 + greaves: 脛甲 + shin_guards: 脛甲 + armored_boots: 裝甲靴 + + - name: 裙子 + color: rgba(230, 84, 128, .4) + tags: + dress: 連衣裙 + microdress: 微型連衣裙 + long_dress: 長連衣裙 + off-shoulder_dress: 裸肩連衣裙 + strapless_dress: 無肩帶連衣裙 + backless_dress: 裸背連衣裙 + halter_dress: 繞頸裸背吊帶裙 + sundress: 吊帶連衣裙(大熱天穿的無袖連衣裙) + sleeveless_dress: 無袖連衣裙 + sailor_dress: 水手服款裙子 + summer_dress: 夏日長裙 + china_dress: 中國服飾 + pinafore_dress: 圍裙連衣裙 + sweater_dress: 圍裙連衣裙 + wedding_dress: 婚紗 + armored_dress: 戰甲裙 + frilled_dress: 花邊連衣裙 + lace-trimmed_dress: 蕾絲邊連衣裙 + collared_dress: 有領連衣裙 + fur-trimmed_dress: 毛皮鑲邊連衣裙 + layered_dress: 分層連衣裙 + pleated_dress: 百褶連衣裙 + taut_dress: 繃緊的連衣裙 + pencil_dress: 鉛筆裙 + impossible_dress: 過分緊身的衣服 + multicolored_dress: 多色款連衣裙 + striped_dress: 條紋連衣裙 + checkered_skirt: 格子裙 + plaid_dress: 格子連衣裙 + ribbed_dress: 羅紋連衣裙 + polka_dot_dress: 波點連衣裙 + print_dress: 印花連衣裙 + vertical-striped_dress: 竖条纹连衣裙 + see-through_dress: 透視連衣裙 + skirt: 短裙 + microskirt: 超短裙 + miniskirt: 迷你裙 + skirt_suit: 正裝短裙 + bikini_skirt: 比基尼裙 + pleated_skirt: 百褶裙 + pencil_skirt: 短鉛筆裙 + bubble_skirt: 蓬蓬裙 + tutu: 芭蕾舞裙 + ballgown: 蓬蓬裙(禮服) + pettiskirt: 蓬蓬裙(兒童) + showgirl_skirt: 展會女郎裝束 + Medium length skirt: 中等長裙子 + beltskirt: 皮帶裙 + denim_skirt: 牛仔裙 + suspender_skirt: 吊帶裙 + skirt_set: 與上衣搭配的短裙 + long_skirt: 長裙 + summer_long_skirt: 夏日長裙 + overskirt: 外裙 + hakama_skirt: 袴裙 + high-waist_skirt: 高腰裙 + kimono_skirt: 和服裙 + suspender_long_skirt: 背帶裙;吊帶裙 + chiffon_skirt: 雪紡裙 + frilled_skirt: 花邊裙子 + fur-trimmed_skirt: 毛皮鑲邊短裙 + lace_skirt: 蕾絲短裙 + lace-trimmed_skirt: 蕾絲邊短裙 + ribbon-trimmed_skirt: 緞帶飾邊短裙 + layered_skirt: 分層的半裙 + print_skirt: 印花短裙 + multicolored_skirt: 多色款裙子 + striped_skirt: 條紋裙 + vertical-striped_skirt: 縱條紋裙子 + plaid_skirt: 格子呢短裙 + flared_skirt: 傘裙 + floral_skirt: 花卉裙 + + - name: 与裙子互動 + color: rgba(230, 84, 128, .4) + tags: + skirt_hold: 優雅地提著裙子 + skirt_tug: 扯住裙擺|按住裙擺 + dress_tug: 壓住裙擺 + skirt_lift: 掀起裙子 + skirt_around_one_leg: 一條腿上掛著短裙 + skirt_removed: 脫下的短裙 + dress_removed: 脫下裙子 + open_skirt: 敞開的裙子 + + - name: 褲子 + color: rgba(230, 84, 128, .4) + tags: + dress_bow: 連衣裙上的蝴蝶結 + dressing_another: 著裝 + shorts_under_skirt: 短裙裡穿著短褲 + side_slit: 側開叉 + shorts: 短褲 + micro_shorts: 小尺寸短褲 + short_shorts: 熱褲 + hot_pants: 熱褲 + cutoffs: 熱褲 + striped_shorts: 條紋短褲 + suspender_shorts: 吊帶短褲 + denim_shorts: 牛仔短褲 + puffy_shorts: 蓬蓬的短褲 + dolphin_shorts: 海豚短褲(真理褲) + dolfin_shorts: 海豚短褲(真理褲) + tight_pants: 緊身褲/運動褲 + crotchless_pants: 無襠褲(緊身) + track_pants: 運動褲 + yoga_pants: 瑜伽褲 + bike_shorts: 自行車短褲 + gym_shorts: 體操短褲 + pants: 長褲 + puffy_pants: 蓬鬆褲/寬鬆褲 + pumpkin_pants: 南瓜褲 + hakama_pants: 袴褲 + harem_pants: 哈倫褲 + bloomers: 燈籠褲 + buruma: 女式燈籠褲 + jeans: 牛仔褲 + cargo_pants: 工裝褲 + camouflage_pants: 迷彩褲 + capri_pants: 七分褲 + chaps: 皮套褲(上寬下窄 + jumpsuit: (尤指女式)連衫褲 + lowleg_pants: 低腰褲子 + plaid_pants: 格子呢褲子 + single_pantsleg: 單邊長褲 + striped_pants: 條紋褲 + + - name: 與褲子互動 + color: rgba(230, 84, 128, .4) + tags: + asymmetrical_legwear: 不對稱的褲子 + leotard_aside: 把連衣褲襠部剝到一邊 + open_fly: 解開的褲子拉鍊 + pants_down: 褪下褲子 + pants_rolled_up: 褲子卷起來 + pants_tucked_in: 褲子塞進去 + torn_jeans: 破損的牛仔褲 + torn_pants: 破損的褲子 + torn_shorts: 破損的短褲 + + - name: 襪子 + color: rgba(230, 84, 128, .4) + tags: + bodystocking: 全身襪 + pantyhose: 連褲襪|褲襪 + leggings: 褲襪 + legwear: 褲襪(泛指褲襪或長筒襪) + thighhighs: 長筒襪(過膝高筒襪) + kneehighs: 中筒襪 + socks: 短襪 + bare_legs: 裸腿 + black_bodystocking: 連體黑絲 + white_bodystocking: 連體白絲 + stocking_under_clothes: 衣服下的襪子 + black_pantyhose: 黑絲褲襪 + white_pantyhose: 白絲褲襪 + thighband_pantyhose: 有腿環的褲襪 + pantylines: 緊緻的褲襪(勾勒出線條 + single_leg_pantyhose: 單邊穿著連褲襪 + panties_under_pantyhose: 褲襪裡的內褲 + fishnets: 網襪(材質) + stirrup_legwear: 漁網襪 + toeless_legwear: 露趾襪 + mismatched_legwear: 雙色褲襪 + two-tone_legwear: 雙色褲襪 + asymmetrical_legwear: 不對稱褲襪 + uneven_legwear: 長短襪 + white_thighhighs: 白色長筒襪 + black_thighhighs: 黑色長筒襪 + pink_thighhighs: 粉色長筒襪 + suspenders: 吊帶襪 + garter_straps: 腰帶(吊帶襪的) + torn_legwear: 破損的褲襪 + torn_thighhighs: 損壞了的長筒襪 + see-through_legwear_: 透明的襪子 + frilled_legwear: 花邊襪 + lace-trimmed_legwear: 蕾邊襪絲 + seamed_legwear: 有接縫的襪 + back-seamed_legwear: 中間有一條黑線的襪子 + animal_ear_legwear: 動物耳朵過膝襪 + striped_legwear: 橫條紋襪 + vertical-striped_legwear: 竖條紋襪 + polka_dot_legwear: 圓斑襪 + print_legwear: 印花襪 + legwear_under_shorts: 短褲穿在襪子外 + over-kneehighs: 過膝襪 + bobby_socks: 鮑比襪(白短襪) + tabi: 日式厚底短襪(足袋) + loose_socks: 泡泡襪 + ankle_socks: 踝襪 + leg_warmers: 腿套|暖腿襪 + single_sock: 單短襪 + striped_socks: 橫條短襪 + + - name: 與襪子互動 + color: rgba(230, 84, 128, .4) + tags: + leg_cutout: 襪子有開口 + thighhighs_under_boots: 靴子穿在襪子外面 + adjusting_legwear: 整理褲襪 + pantyhose_pull: 脫下的褲襪 + socks_removed: 脫襪子 + sock_pull: 拉著襪子(短襪) + thighhighs_pull: 拉著襪子(長襪) + + - name: 其他 + color: rgba(230, 84, 128, .4) + tags: + garters: 襪帶 + leg_garter: 腿環|襪帶 + garter_straps: 吊帶襪的吊帶 + thigh_strap: 大腿綁帶 + thigh_ribbon: 大腿緞帶 + leg_ribbon: 腿鍛帶 + bandaid_on_leg: 腿上的繃帶 + bandaged_leg: 包紮過的腿 + ankle_lace-up: 腳踝繫帶 + thigh_holster: 大腿皮套 + bandaid_on_knee: 膝蓋上的OK繃 + argyle_legwear: 含菱形花紋的褲襪 + bow_legwear: 帶蝴蝶結的褲襪 + arm_garter: 手臂襪帶 + + - name: 材質 + color: rgba(230, 84, 128, .4) + tags: + armored: 裝甲的 + canvas: 帆布的 + denim: 牛仔布 + fluffy: 毛茸茸 + fur: 毛皮 + latex: 乳膠 + leather: 皮製 + see-through: 透明 + spandex: 彈性纖維 + tight: 緊身 + + - name: 裝飾 + color: rgba(230, 84, 128, .4) + tags: + frilled: 褶邊 + center_frills: 中心褶花邊 + crease: 起皺的(有褶的) + layered: 分層的 + lace: 蕾絲 + fur_trim: 皮草飾邊 + fur-trimmed: 毛邊的 + fine_fabric_emphasis: 材質增強 + latex_thighhighs: 乳膠材質的長筒襪 + see-through_thighhighs: 透明的長筒襪 + ass_cutout: 露出屁股的服飾 + asymmetrical_clothes: 不對稱的服飾 + back_bow: (服飾)打在背後的結 + costume_switch: 服飾互換 + cross-laced_clothes: 交叉花邊服飾 + double_vertical_stripe: 服飾上有兩條平行條紋 + halter_top: 吊帶式的上身的服飾 + multicolored_legwear: 多色款腿部服飾 + navy_blue_legwear: 海軍藍腿部服飾 + nontraditional_miko: 改款過的日本服飾 + side_cutout: 側邊開口的服飾 + side_slit: 側面有縫的服飾 + sideless_outfit: 側面沒有布料的服飾 + single_kneehigh: 單邊穿著過膝服飾 + single_vertical_stripe: 露出單邊服飾上的垂直條紋 + turtleneck: 高領服飾 + two-sided_fabric: 雙層樣式的服飾畫法 + o-ring: 帶O型環的衣物 + o-ring_top: 帶O型環的上衣 + fringe_trim: 須邊(圍巾末端) + loose_belt: 鬆散的帶子(衣物) + pom_pom_(clothes): 小絨球(衣物掛件) + drawstring: 衣服的抽繩 + full-length_zipper: 有整件衣物長的拉鍊 + gathers: 褶裥(衣物) + gusset: 縫在衣服上襯料 + breast_pocket: 胸口的袋子 + + - name: 花紋 + color: rgba(230, 84, 128, .4) + tags: + argyle: 阿蓋爾菱形花紋 + checkered: 格子花紋 + colored_stripes: 多彩條紋 + diagonal_stripes: 斜條紋 + horizontal_stripes: 水平條紋 + multicolored_stripes: 多彩條紋 + polka_dot_: 點裝紋 + ribbed: 棱紋 + striped: 橫條紋 + unmoving_pattern: 連續重複花紋 + vertical_stripes: 竖條紋 + plaid: 格子呢圖案 + animal_print: 動物印花 + cat_print: 貓咪印花 + bear_print: 熊印花 + bird_print: 鳥印花 + bunny_print: 兔子印花 + cow_print: 奶牛印花 + dragon_print: 龍印花 + fish_print: 魚印花 + frog_print: 青蛙印花 + shark_print: 鯊魚印花 + snake_print: 蛇紋 + zebra_print: 斑馬印花 + tiger_print: 虎紋 + leopard_print: 豹紋 + jaguar_print: 美洲豹印花 + bat_print: 蝙蝠印花 + aardwolf_print: 土狼印花 + african_wild_dog_print: 非洲野狗印花 + cheetah_print: 獵豹印花 + dog_print: 狗印花 + fox_print: 狐狸印花 + giraffe_print: 長頸鹿印花 + panda_print: 熊貓印花 + sand_cat_print: 沙貓印花 + whale_print: 鯨魚印花 + white_tiger_print: 白虎紋 + goldfish_print: 金魚印花 + wing_print: 翼印 + spider_web_print: 蜘蛛網紋 + butterfly_print: 蝴蝶印花 + floral_print: 碎花 + leaf_print: 葉印花 + clover_print: 三葉草印花 + maple_leaf_print: 楓葉印花 + rose_print: 玫瑰印花 + strawberry_print: 草莓印花 + cherry_print: 櫻桃印花 + bamboo_print: 竹印花 + carrot_print: 胡蘿蔔印花 + hibiscus_print: 芙蓉印花 + jack-o'-lantern_print: 南瓜燈印花 + petal_print: 花瓣印花 + sunflower_print: 向日葵印花 + watermelon_print: 西瓜印花 + sky_print: 天空印花 + cloud_print: 雲印花 + lightning_bolt_print: 閃電印花 + rainbow_print: 彩虹印花 + snowflake_print: 雪花印花 + starry_sky_print: 星空印花 + crescent_print: 新月印花 + star_print: 星形印花 + star_(symbol): 星形符號 + moon_print: 月亮印花 + sun_print: 太陽印花 + character_print: 字符印花 + clothes_writing_: 衣服上的字 + anchor_print: 錨印花 + cherry_blossom_print: 櫻花印花 + musical_note_print: 音符印花 + triangle_print: 三角印花 + arrow_print: 箭頭打印 + wave_print: 波浪紋 + peace_symbol: ☮(東方仗助衣服上有) + heart_print: 心形圖案|心形印花 + flame_print: 火焰印花 + hitodama_print: 鬼火印花 + paw_print: 爪印花 + skeleton_print: 骨架印花 + skull_print: 骷髏頭印花 + sparkle_print: 閃閃發光的印花 + yin_yang_print: 陰陽印花 + cross_print: 十字架元素圖案 + camoflage: 迷彩 + flag_print: 旗幟印花 + bone_print: 骨印花 + ghost_print: 幽靈印畫 + mushroom_print: 蘑菇印花 + onigiri_print: 飯糰打印 + cat_ear: 貓耳造型 + cat_ear_cutout: 貓耳造型鏤空 + + - name: 鞋子 + color: rgba(230, 84, 128, .4) + tags: + barefoot: 赤腳 + no_shoes: 沒有鞋子 + shoes_removed: 脫下的鞋子 + single_shoe: 單鞋 + the_only_shoe: 單鞋 + black_loafers: 樂福鞋(小皮鞋) + shoes: 運動鞋 + uwabaki: 室內鞋 + platform_footwear: 厚底鞋 + high_heels: 高跟鞋 + stiletto_heels: 細跟高跟鞋 + strappy_heels: 帶束帶的高跟鞋 + platform_heels_: 厚底高跟鞋 + rudder_footwear: 艦C艦娘專用鞋 + sandals: 涼鞋 + barefoot_sandals: 裸足涼鞋 + clog_sandals: 木屐涼鞋 + geta: 木屐 + slippers: 拖鞋 + skates: 溜冰鞋 + roller_skates: 旱冰鞋 + animal_feet: 動物腳 + animal_slippers: 動物拖鞋 + anklet: 腳環 + shackles: 鐐銬 + brown_footwear: 棕色鞋類 + cross-laced_footwear: 交叉系帶鞋 + loafers: 樂福鞋 + mary_janes: 珍妮鞋 + mismatched_footwear: 雙色鞋子 + pointy_footwear: 尖頭鞋 + pumps: 低胸裝高跟鞋打扮 + sandals_removed: 脫下涼鞋 + shoe_soles: 鞋底 + shoelaces: 鞋帶 + sneakers: 運動鞋 + winged_footwear: 帶翅膀的鞋子 + zouri: 日式草鞋 + + - name: 靴子 + color: rgba(230, 84, 128, .4) + tags: + boots: 靴子 + boots_removed: 脫下的靴子 + thigh_boots: 大腿靴 + knee_boots: 及膝靴(馬靴) + cross-laced_footwear: 系帶靴 + ankle_boots: 踝靴 + high_heel_boots: 高跟靴 + toeless_boots: 露趾靴 + lace-up_boots: 系帶靴 + fur-trimmed_boots: 毛邊靴子 + snow_boots: 雪地靴 + anklet: 腳鏈 + rubber_boots: 膠靴 + santa_boots: 聖誕靴 + leather_boots: 皮靴 + thighhighs_under_boots: 靴子下的長筒襪 + combat_boots: 作戰靴 + doc_martens: 馬丁靴 + rain_boots: 雨靴 + belt_boots: 皮帶靴 + fur_boots: 矮跟休閒皮草靴 + single_boot: 一隻腳沒穿靴子 + + - name: 鞋底 + color: rgba(230, 84, 128, .4) + tags: + shoe_soles: 鞋底 + arched_soles: 拱形鞋底 + paw_print_soles: 爪印鞋底 + horseshoe: 馬蹄鐵 + + - name: 領口 + color: rgba(230, 84, 128, .4) + tags: + sailor_collar: 水手領 + fur_collar: 毛皮衣領 + frilled_collar: 花邊衣領 + popped_collar: 竪起來的衣領 + choker: 頸部飾品 + black_choker: 黑色頸圈 + belt_collar: 皮帶頸環 + frilled_choker: 褶邊項鍊 + neckerchief: 領巾 + red_neckerchief: 紅領巾 + necktie: 領帶 + short_necktie: 短領帶 + white_necktie: 白色領帶 + bowtie: 蝴蝶結領帶 + headphones_around_neck: 掛在脖子上的耳機 + goggles_around_neck: 脖子上護目鏡 + neck_bell: 頸鈴 + neck_ruff: 領口 + v-neck: V領 + towel_around_neck: 脖子上的毛巾 + loose_necktie: 寬鬆領帶 + neck_tattoo: 頸部紋身 + ascot: 領巾狀寬領帶 + ribbon_choker: 頸絲帶 + maebari/pasties: 陰貼/乳貼 + latex: 乳貼 + torn_clothes: 破爛衣服 + iron_cross: 鐵十字勳章 + chinese_knot: 中國結 + cross_necklace: 十字架項鍊 + bead_necklace: 珠子項鍊 + pearl_necklace: 珍珠項鍊 + heart_necklace: 心形項鍊 + carrot_necklace: 胡蘿蔔項鍊 + chain_necklace: 鎖鏈項鍊 + magatama_necklace: 珠玉項鍊 + tooth_necklace: 牙項鍊 + key_necklace: 鑰匙項鍊 + anchor_necklace: 錨項鍊 + skull_necklace: 骷髏項鍊 + shell_necklace: 貝殼項鍊 + gold_necklace: 金項鍊 + crescent_necklace: 新月項鍊 + ring_necklace: 戒指項鍊 + feather_necklace: 羽毛項鍊 + bone_necklace: 骨項鍊 + ankh_necklace: 十字項鍊 + multiple_necklaces: 多條項鍊 + bullet_necklace: 子彈項鍊 + holding_necklace: 拿著項鍊 + necklace_removed: 項鍊被移除 + brown_neckwear: 棕色領飾 + checkered_neckwear: 格子領口 + diagonal-striped_neckwear: 斜紋領結 + halterneck: 繞頸系帶 + mole_on_neck: 脖子上有痣 + neck: 脖子 + neck_ribbon: 頸部系著緞帶 + neck_ring: 頸環 + necklace: 項鍊 + plaid_neckwear: 格子呢領子 + plunging_neckline: 深領 + print_neckwear: 印花領帶 + sleeveless_turtleneck: 無袖高領毛衣 + star_necklace: 星形項鍊 + striped_neckwear: 條紋領子 + turtleneck_sweater: 高領毛衣 + undone_necktie: 解開領帶 + whistle_around_neck: 脖子上掛著口哨 + + - name: 圍巾 + color: rgba(230, 84, 128, .4) + tags: + plaid_scarf: 格子圍巾 + striped_scarf: 條紋圍巾 + print_scarf: 印花圍巾 + vertical-striped_scarf: 竖條紋圍巾 + polka_dot_scarf: 波點圍巾 + argyle_scarf: 菱形圍巾 + beige_scarf: 米色圍巾 + scarf_bow: 圍巾蝴蝶結 + fur_scarf: 皮草圍巾 + naked_scarf: 裸圍巾 + multicolored_scarf: 五彩圍巾 + floating_scarf: 漂浮圍巾 + long_scarf: 長圍巾 + arm_scarf: 手臂圍巾 + scarf_on_head: 頭上的圍巾 + scarf_over_mouth: 圍巾在嘴上 + scarf_removed: 圍巾被取下 + adjusting_scarf: 調整圍巾 + holding_scarf: 拿著圍巾 + scarf_pull: 扯圍巾 + brown_scarf: 棕色圍巾 + scarf: 圍巾 + + - name: 眼鏡 + color: rgba(230, 84, 128, .4) + tags: + glasses: 眼鏡 + eyewear: 眼睛 + monocle: 單片眼鏡 + under-rim_eyewear: 帶框眼鏡 + rimless_eyewear: 無框眼鏡 + semi-rimless_eyewear: 半無框眼鏡 + red-framed_eyewear: 紅框眼鏡 + round_eyewear: 圓框眼鏡 + black-framed_eyewear: 黑框眼鏡 + tinted_eyewear: 有色眼鏡 + medical_eyepatch: 醫用眼罩 + bandage_over_one_eye: 用繃帶包紮一只眼睛 + crooked_eyewear: 歪斜的眼鏡 + eyewear_removed: 取下眼鏡 + sunglasses: 太陽鏡 + goggles: 風鏡 + Blindfold: 眼罩 + eyepatch: 眼罩(獨眼) + visor: 面罩|遮陽帽舌|遮陽板 + bespectacled: 戴眼鏡的 + blue-framed_eyewear: 藍框眼鏡 + brown-framed_eyewear: 棕色鏡框眼鏡 + coke-bottle_glasses: 厚如玻璃瓶底的圓眼鏡 + no_eyewear: 去掉了(原設有的)眼鏡 + opaque_glasses: 沒透出眼睛的眼鏡 + over-rim_eyewear: 下半無框眼鏡 + + - name: 面具 + color: rgba(230, 84, 128, .4) + tags: + mask: 面具 + half_mask: 半面罩 + masked: 蒙面 + mask_lift: 抬起面罩 + mask_on_head: 掀到頭上的面具 + mask_removed: 摘下的面具 + mouth_mask: 口罩 + surgical_mask: 醫用口罩 + plague_doctor_mask: 瘟疫醫生口罩 + gas_mask: 防毒面具 + visor: 面甲 + helmet: 頭盔 + fox_mask: 狐狸面具 + diving_mask: 潛水面罩 + diving_mask_on_head: 頭戴式潛水面罩 + oni_mask: 鬼面具 + tengu_mask: 天狗面具 + ninja_mask: 忍者面具 + skull_mask: 骷髏面具 + hockey_mask: 曲棍球面具 + bird_mask: 鳥面具 + stone_mask: 石鬼面 + horse_mask: 馬面具 + masquerade_mask: 化妝舞會面具 + domino_mask: SM面具 + + - name: 手臂 + color: rgba(230, 84, 128, .4) + tags: + long_sleeves: 長袖 + short_sleeves: 短袖 + wide_sleeves: 寬袖 + furisode: 振袖 + detached_sleeves: 分離式袖子 + single_sleeve: 單袖 + sleeveless: 無袖 + asymmetrical_sleeves: 不對稱袖子 + puffy_sleeves: 蓬蓬的袖子 + puffy_long_sleeves: 蓬蓬長袖 + puffy_short_sleeves: 蓬蓬短袖 + frilled_sleeves: 褶袖邊 + juliet_sleeves: 朱麗葉袖 + bandaged_arm: 繃帶手臂 + raglan_sleeves: 插肩袖 + vambraces: 下臂護甲 + layered_sleeves: 分層袖子 + fur-trimmed_sleeves: 毛邊袖子 + see-through_sleeves: 透明袖子 + torn_sleeves: 撕裂的袖子 + sleeves_past_fingers: 袖子過指 + sleeves_past_wrists: 袖子過腕 + sleeves_past_elbows: 袖子過肘 + sleeves_pushed_up: 袖子上推 + arm_out_of_sleeve: 袖子裡的手臂 + uneven_sleeves: 不均勻的袖子 + mismatched_sleeves: 不匹配的袖子 + sleeve_rolled_up: 袖子卷起 + sleeves_rolled_up: 單只袖子卷起 + feather-trimmed_sleeves: 羽毛裝飾的袖子 + hands_in_opposite_sleeves: 雙手交叉伸進袖子裡 + lace-trimmed_sleeves: 蕾絲邊袖子 + pinching_sleeves: 掐袖子 + puffy_detached_sleeves: 蓬蓬的袖子 + ribbed_sleeves: 稜紋袖子 + single_detached_sleeve: 單邊沒脫掉的袖子 + sleeves_folded_up: 疊起來的袖子 + striped_sleeves: 條紋袖子 + wrist_cuffs: 和袖子分開的手腕的袖口 + armband: 袖章(臂帶) + armlet: 臂鐲 + + - name: 手 + color: rgba(230, 84, 128, .4) + tags: + bandage: 繃帶 + leash: 皮帶 + arm_tattoo: 手臂紋身 + number_tattoo: 數字紋身 + bead_bracelet: 珠子手鏈 + bracelet: 手鐲 + flower_bracelet: 花手鐲 + spiked_bracelet: 帶釘手鐲 + wrist_cuffs: 腕飾 + wristband: 腕帶 + bracer: 護腕 + cuffs: 袖口 + bound_wrists: 綁定手腕 + wrist_scrunchie: 手腕髮圈 + handcuffs: 手銬 + shackles: 手銬 + chains: 鎖鏈 + chain_leash: 鎖鏈帶牽繩 + + - name: 手套 + color: rgba(230, 84, 128, .4) + tags: + gloves: 手套 + gloves_removed: 脫下手套 + no_gloves: 去掉了(原設有的)手套 + single_glove: 單只手套 + single_elbow_glove: 單手戴著過肘的手套 + long_gloves: 長手套 + elbow_gloves: 長袖手套(肘部手套) + bridal_gauntlets: 新娘手套 + half_gloves: 很短的手套|半截手套 + fingerless_gloves: 露指手套 + partially_fingerless_gloves: 部分露指手套 + paw_gloves: 爪子手套(分指手套) + mittens: 連指手套(兩指手套) + baseball_mitt: 棒球手套 + fur-trimmed_gloves: 毛邊手套 + latex_gloves: 乳膠手套 + lace-trimmed_gloves: 蕾絲邊手套 + leather_gloves: 皮手套 + frilled_gloves: 花邊手套 + mismatched_gloves: 雙色手套 + multicolored_gloves: 多色款手套 + asymmetrical_gloves: 不對稱的手套 + brown_gloves: 棕色手套 + oven_mitts: 隔熱手套 + print_gloves: 印花手套 + striped_gloves: 條紋手套 + torn_gloves: 破損的手套 + + - name: 耳飾 + color: rgba(230, 84, 128, .4) + tags: + cross_earrings: 十字耳環 + crystal_earrings: 水晶耳環 + earrings: 耳環 + flower_earrings: 花耳環 + heart_earrings: 心形耳環 + hoop_earrings: 環狀耳環 + multiple_earrings: 多個耳環 + pill_earrings: 藥丸樣式的耳環 + single_earring: 只一邊戴著耳環 + skull_earrings: 骷髏耳環 + star_earrings: 星形耳環 + + - name: 頭飾 + color: rgba(230, 84, 128, .4) + tags: + halo: 光環 + mechanical_halo: 機械光環 + headwear: 頭飾 + headpiece: 頭飾 + headwear_removed: 頭飾已移除 + head_wreath: 頭花環 + crown: 皇冠 + mini_crown: 迷你皇冠 + tiara: 頭冠 + diadem: 同上 + tilted_headwear: 傾斜的頭飾 + head_fins: 頭鰭 + maid_headdress: 女僕頭飾 + bridal_veil: 新娘頭紗 + headband: 頭帶 + helmet: 頭盔 + alternate_headwear: 與原設不同的頭飾 + fur-trimmed_headwear: 毛邊頭飾 + goggles_on_headwear: 帽子上的護目鏡 + earphones: 耳機 + earmuffs: 耳罩 + ears_through_headwear: 耳朵穿過頭飾 + xx_on_head: xx在頭上 + leaf_on_head: 頭上的葉子 + topknot: 纂 + suigintou: 水銀頭 + triangular_headpiece: 三角頭飾 + forehead_protector: 護額 + radio_antenna: 天線 + animal_hood: 獸耳頭罩 + arrow_(symbol): 箭頭 + axe: 斧頭 + bald: 禿頭 + bandana: 頭巾 + bob_cut: 波波頭 + bone: 骨頭 + bowl_cut: 鍋蓋頭 + circlet: 頭冠 + double_bun: 團子頭 + double_dildo: 雙頭假陰莖 + drill: 鑽頭 + faucet: 水龍頭 + hachimaki: 扎頭巾(名詞) + hair_behind_ear: 耳後有頭髮 + hair_bell: 頭髮上系著鈴鐺 + hair_bun: 髮髻|團子頭 + hair_down: 披下來的頭髮 + hair_flaps: 在擺動的頭髮 + hair_flip: 撥頭髮 + hair_flower: 頭髮上別著花 + hair_spread_out: 散開的頭髮 + hair_up: 盤起來的頭髮 + helm: 戴著頭盔的 + helmet_removed: 摘下頭盔|被摘下的頭盔 + horned_helmet: 帶角頭盔 + japari_bun: 加帕里饅頭 + kerchief: 方頭巾 + mami_mogu_mogu: 麻美斷頭梗 + mob_cap: 頭巾式室內女帽 + one_side_up: 只扎了一邊的頭髮 + owl: 貓頭鷹 + pier: 突碼頭 + pillow: 枕頭 + raised_fist: 舉起的拳頭 + skull_and_crossbones: 頭骨和交叉的骨頭 + stone: 石頭 + turban: 穆斯林頭巾 + twin_drills: 雙鑽頭髮型 + updo: 頭髮往上蜷的髮型 + wet_hair: 濕頭髮 + headdress: 頭部穿戴物(偏籠統) + adjusting_headwear: 整理頭飾 + bear_hair_ornament: 熊印花頭飾 + brown_headwear: 棕色頭飾 + horned_headwear: 角狀頭飾 + horns_through_headwear: 為角留了洞的頭飾 + no_headwear: 去掉了(原設有的)頭飾 + object_on_head: 頭上有非頭飾類的物體 + print_headwear: 印花頭飾 + bone_hair_ornament: 骨頭狀飾品 + bunny_hair_ornament: 兔子飾品 + horn_ornament: 角上有飾物 + animal_on_head: 頭上有動物 + behind-the-head_headphones: 從後腦戴上的耳機 + bird_on_head: 頭上的鳥 + cat_ear_headphones: 貓耳式耳機 + cat_on_head: 頭上趴著貓 + eyewear_on_head: 眼鏡別在頭上 + forehead: 額頭 + forehead_jewel: 額前有寶石 + forehead_kiss: 親吻額頭 + forehead_mark: 額前有圖案 + forehead-to-forehead: 額頭貼額頭 + goggles_on_head: 頭上別著護目鏡 + head: 頭 + head_bump: 頭上起包 + head_down: 低著頭 + head_mounted_display: 戴著頭戴顯示設備 + head_out_of_frame: 一部分頭部沒畫進框裡 + head_rest: 枕著頭|托著頭 + head_tilt: 歪著頭 + head_wings: 頭上有翅膀 + headgear: 頭部飾品(含一定科幻元素) + headphones: 耳機 + heads-up_display: 狀態條(遊戲和科幻風格) + headset: 頭戴式耳機 + inter_headset: EVA神經連接器 + on_head: 在頭上 + person_on_head: 小人兒在頭上 + single_head_wing: 單側頭上有翅膀 + + - name: 帽子 + color: rgba(230, 84, 128, .4) + tags: + hat: 帽子 + no_hat: 沒有帽子 + large_hat: 大帽子 + mini_hat: 迷你帽 + witch_hat: 魔女帽 + mini_witch_hat: 迷你魔女帽 + wizard_hat: 巫師帽子 + party_hat: 派對帽 + jester_cap: 小丑帽 + tokin_hat: 大禮帽 + top_hat: 高頂禮帽 + mini_top_hat: 迷你禮帽 + bowler_hat: 圓頂禮帽 + pillbox_hat: 藥盒帽 + cloche_hat: 鐘形女帽 + side_cap: 側邊帽 + military_hat: 軍帽 + beret: 貝雷帽 + garrison_cap: 駐軍帽 + police_hat: 警察帽 + nurse_cap: 護士帽 + chef_hat: 廚師帽 + school_hat: 校帽 + pirate_hat: 海盜帽 + cabbie_hat: 出租車司機帽 + bucket_hat: 漁夫帽 + hardhat: 安全帽 + straw_hat: 草帽 + sun_hat: 太陽帽 + rice_hat: 斗笠 + animal_hat: 動物帽 + fur_hat: 皮帽 + hat_with_ears: 帶耳朵的帽子 + bobblehat: 泡泡帽 + pillow_hat: 枕帽 + pumpkin_hat: 南瓜帽 + baseball_cap: 棒球帽 + flat_cap: 鴨舌帽 + torn_hat: 撕裂的帽子 + mob_cap: 暴民帽 + newsboy_cap: 報童帽 + bowknot_over_white_beret: 白色貝雷帽上的蝴蝶結 + backwards_hat: 反扣的帽子 + bowl_hat: 碗狀帽子 + cat_hat: 貓耳帽子 + chat_log: 聊天框風格 + cowboy_hat: 牛仔帽 + dixie_cup_hat: 狗盆帽 + hat_bow: 帶有蝴蝶結的帽子 + hat_feather: 帶有羽毛的帽子 + hat_flower: 帶著花的帽子 + hat_ornament: 帶有飾物的帽子 + hat_over_one_eye: 帽子遮住了一只眼 + hat_removed: 帽子被摘下|摘下帽子 + hat_ribbon: 帶有緞帶的帽子 + hat_tip: 捏著帽檐 + hatching_(texture): 線影法(紋理) + hatsune_miku_(cosplay): cos成初音未來 + is_that_so: so-nanoka(是這樣啊的口癖) + porkpie_hat: 道士帽 + sailor_hat: 水手帽 + santa_hat: 聖誕帽 + sideways_hat: 帽舌劃到側面 + what: 作者犯病 + what_if: 另一條世界線 + + - name: 髮飾 + color: rgba(230, 84, 128, .4) + tags: + hair_ribbon: 髮帶 + hairband: 髮帶 + hair_tie: 髮帶 + lolita_hairband: 洛麗塔髮帶 + frilled_hairband: 褶邊髮帶 + lace-trimmed_hairband: 蕾絲邊飾髮帶 + hair_bobbles: 頭繩 + hair_ornament: 髮飾 + hair_flower: 髮花 + x_hair_ornament: x_髮飾 + hair_bow: 蝴蝶結髮飾 + frog_hair_ornament: 青蛙髮飾 + heart_hair_ornament: 心形髮飾 + butterfly_hair_ornament: 蝴蝶髮飾 + star_hair_ornament: 星星髮飾 + food-themed_hair_ornament: 食物主題髮飾 + anchor_hair_ornament: 錨形髮飾 + bat_hair_ornament: 蝙蝠髮飾 + carrot_hair_ornament: 胡蘿蔔髮飾 + cat_hair_ornament: 貓系髮飾 + clover_hair_ornament: 三葉草髮飾 + crescent_hair_ornament: 月牙髮飾 + cross_hair_ornament: 十字髮飾 + d-pad_hair_ornament: 方向鍵髮飾 + fish_hair_ornament: 魚形髮飾 + hairpods: 頭髮上成對的像無線藍牙的髮飾 + leaf_hair_ornament: 葉子髮飾 + musical_note_hair_ornament: 音符髮飾 + pumpkin_hair_ornament: 南瓜髮飾 + skull_hair_ornament: 骷髏髮飾 + snake_hair_ornament: 蛇形髮飾|蛙頭髮飾 + snowflake_hair_ornament: 雪花髮飾 + strawberry_hair_ornament: 草莓髮飾 + sunflower_hair_ornament: 向日葵髮飾 + hairpin: 髮夾 + hairclip: 髮夾 + hair_tubes: 髮管 + hair_stick: 髮棒 + hair_bun: 髮髻 + single_hair_bun: 髮髻(單) + hair_bell: 髮鈴 + hair_rings: 髮圈 + + - name: 小裝飾 + color: rgba(230, 84, 128, .4) + tags: + ring: 戒指 + wedding_band: 婚戒 + earrings: 耳環 + single_earring: 單耳環 + stud_earrings: 耳釘 + necklace: 項鍊 + jewelry: 首飾 + crystal: 水晶 + brooch: 胸針 + gem: 寶石 + chest_jewel: 胸前寶石 + forehead_jewel: 額頭寶石 + tassel: 流蘇 + belly_chain_: 肚鏈 + lace: 花邊 + ribbon: 絲帶 + stitches: 縫飾 + scarf: 圍巾 + bandaid: 創可貼 + collar: 項圈 + belt: 皮帶 + steam: 蒸汽 + bell: 鈴鐺 + amulet: 護身符 + emblem: 徽章 + flag_print: 旗印 + anchor_symbol: 錨符號 + cross: 十字 + diffraction_spikes: 衍射十字星 + iron_cross: 鐵十字架 + latin_cross: 拉丁式十字架 + lace-trimmed_hairband: 蕾絲邊髮帶 + ankle_lace-up: 腳踝系帶 + st._gloriana's_(emblem): 聖葛羅莉安娜女學園校徽 + heart_lock_(kantai_collection): 艦娘鎖(艦C) + garters: 襪帶 + thigh_strap: 大腿綁帶 + thigh_ribbon: 大腿緞帶 + leg_garter: 腿環|襪帶 + garter_straps: 吊帶襪的吊帶 + leg_ribbon: 腿鍛帶 + bandaid_on_leg: 腿上的繃帶 + bandaged_leg: 包紮過的腿 + arm_garter: 臂環 + joints: 關節 + kneepits: 膝蓋 + knee_pads: 護膝 + thigh_holster: 大腿皮套 + bandaid_on_knee: 膝蓋上的創可貼 + + - name: 首飾 + color: rgba(230, 84, 128, .4) + tags: + bracelet: 手鏈 + choker: 項圈 + metal collar: 金屬項圈 + ring: 戒指 + wristband: 腕帶 + pendant: 吊墜 + brooch: 胸針 + hoop earrings: 圈形耳環 + bangle: 手鐲 + stud earrings: 耳釘 + sunburst: 旭日形首飾 + pearl bracelet: 珍珠手鏈 + drop earrings: 耳墜 + puppet rings: 木偶戒指 + corsage: 胸花 + sapphire brooch: 藍寶石胸針 + jewelry: 珠寶首飾 + necklace: 項鏈 + +- name: 表情動作 + groups: + - name: 笑 + color: rgba(241, 229, 140, .4) + tags: + smile: 微笑 + laughing: 大笑 + kind_smile: 開心 + :d: 開心的笑_:D😀 + ;d: 眨眼笑_:D + grin: 露齒咧嘴笑 + teasing_smile: 被逗笑,咧嘴傻笑 + seductive_smile: 魅惑的微笑 + smirk: 傻笑,自鳴得意的笑 + giggling: 咯咯傻笑 + smug: 洋洋得意 + naughty_face: 調皮的臉 + evil smile: 邪惡笑 + crazy_smile: 瘋狂的笑 + happy: 快樂|幸福 + happy_birthday: 生日快樂 + happy_halloween: 萬聖節快樂 + happy_new_year: 新年快樂 + happy_tears: 開心的眼淚 + happy_valentine: 情人節快樂 + + - name: 哭 + color: rgba(241, 229, 140, .4) + tags: + sad: 傷心 + tear: 啜泣 + crying: 大哭 + crying_with_eyes_open: 睜著眼睛哭 + streaming_tears: 流淚 + teardrop: 淚珠 + tearing_clothes: 撕破衣服 + tearing_up: 要哭的表情 + tears: 眼淚 + wiping_tears: 擦眼淚 + badmood: 心情不好 + + - name: 不開心 + color: rgba(241, 229, 140, .4) + tags: + frustrated: 沮喪 + frustrated_brow: 沮喪的眉頭 + annoyed: 苦惱的 + anguish: 苦悶 + sigh: 嘆氣 + gloom: 憂鬱的 + disappointed: 失望的 + despair: 絕望 + + - name: 蔑視 + color: rgba(241, 229, 140, .4) + tags: + disgust: 厭惡(看垃圾一樣的眼神) + disdain: 輕蔑 + contempt: 蔑視 + shaded_face: 臉上有陰影,配合蔑視 + jitome: 鄙夷的眼神 + frown: 皺眉/蹙額 + wince: 皺眉蹙額(性交前) + furrowed_brow: 眉頭緊鎖 + fear_kubrick: 害怕側目 + laughing: 在笑的 + + - name: 生氣 + color: rgba(241, 229, 140, .4) + tags: + angry: 生氣的 + glaring: 怒目而視 + serious: 嚴肅的(和angry有點像) + kubrick_stare: 側頭瞪著你 + evil: 邪惡的 + sulking: 生_悶氣 + screaming: 尖叫|大聲喊 + shouting: 喊叫 + + - name: 其他表情 + color: rgba(241, 229, 140, .4) + tags: + expressionless: 面無表情 + sleepy: 困乏的 + drunk: 喝醉的 + bored: 無聊的 + confused: 使困惑 + thinking: 思考 + lonely: 孤獨 + light_blush: 輕微臉紅 + blush: 臉紅 + shy: 害羞的 + embarrass: 害羞的(尷尬的) + facepalm: 捂臉 + flustered: 慌張的 + sweat: 流汗 + scared: 害怕的 + ahegao: 阿黑顏 + endured_face: 忍耐的表情 + restrained: 忍耐 + dark_persona: 黑化的 + crazy: 瘋狂的 + exhausted: 筋疲力盡的 + Tsundere: 傲嬌 + yandere: 病嬌 + multiple_persona: 多重人格 + Jekyll_and_Hyde: 多重人格 + twitching: 抽搐 + spasm: 痙攣 + trembling: 顫抖 + rape_face: 強姦臉 + rolling_eyes: 翻白眼(高潮眼) + envy: 嫉妒 + female_orgasm: 絕頂 + heavy_breathing: 重呼吸,可能沒用 + naughty: 淘氣 + expressions: 表情差分(大概) + moaning: 呻吟 + scowl: 嫌棄的眼神 + + - name: 基礎動作 + color: rgba(241, 229, 140, .4) + tags: + standing: 站立 + on back: 躺 + on stomach: 趴 + kneeling: 跪 + on_side: 側臥 + on_stomach: 趴著 + top-down_bottom-up: 趴著翹臀 + the_pose: 趴在地上並翹起腳 + bent_over: 翹臀姿勢 + upside-down: 倒立 + reversal: 反轉 + fighting_stance: 戰鬥姿態 + leaning_to_the_side: 靠在一邊 + leaning: 倚靠|身體傾斜 + leaning_back: 身體往後靠 + leaning_on_object: 靠在物體上 + arched_back: 弓身體 + leaning_forward: 身體前傾 + afloat: 浮(在水上 + lying: 躺著的 + fetal_position: 胎兒姿勢(躺) + lying_on_person: 躺在人身上 + lying_on_the_lake: 躺在湖面上 + lying_on_water: 躺在水中 + on_back: 仰躺 + prone_bone: 俯臥後入 + reclining: 斜倒斜躺姿勢 + sleeping_upright: (不躺著)睡覺|直立睡覺 + presenting: 展示(後接部位) + spinning: 旋轉 + posing: 擺姿勢 + stylish_pose: 時尚姿勢 + public_indecency: 公然猥褻 + parody: 模仿 + in_container: 在容器中 + against_glass: 擠壓玻璃(無效) + aiming: 瞄準 + aiming_at_viewer: 瞄準了讀者(的視角) + applying_makeup: 化妝 + bathing: 洗澡 + biting: 咬 + bleeding: 出血 + blowing: 吹 + bowing: 鞠躬 + breathing_fire: 噴火 + broom_riding: 騎掃帚 + brushing_teeth: 刷牙 + bubble_blowing: 吹泡泡 + bullying: 欺負 + burning: 燃燒 + cast: 投擲 + chasing: 追逐 + cleaning: 打掃 + climbing: 攀爬 + comforting: 安慰 + cooking: 烹飪 + crying: 哭 + cuddling: 擁抱 + dancing: 跳舞 + diving: 潛水 + dragging: 拖某物 + drawing: 繪畫 + drawing_bow: 拉弓 + dreaming: 夢 + drinking: 喝 + driving: 駕駛 + dropping: (意外)掉落 + drying: 弄乾(浴後) + dual_wielding: 雙持 + exercise: 運動 + fighting: 戰鬥中的 + firing: 射擊 + fishing: 釣魚 + flapping: 拍打動作 + flashing: 露出 + fleeing: 在逃跑的 + flexing: 秀肌肉 + flying: 飛行 + flying_kick: 飛踢 + hair_brushing: 梳頭 + hair_tucking: 撩頭髮 + hanging: 吊起來的 + hitting: 击打 + imagining: 在想像的 + jumping: 跳躍 + kicking: 踢 + licking: 舔 + licking_lips: 舔嘴唇 + lip_biting: 咬嘴唇 + meditation: 冥想 + painting: 繪畫 + Painting_(Action): 畫畫 + playing_card: 撲克牌 + playing_games: 打遊戲 + playing_instrument: 演奏樂器 + pole_dancing: 鋼管舞 + praying: 祈禱 + punching: 揮拳 + pushing: 推搡 + railing: 用手扶著 + reading: 閱讀 + riding: 騎 + running: 奔跑 + sewing: 縫紉 + shopping: 購物 + showering: 淋浴 + sing: 唱歌 + singing: 唱歌 + slashing: 砍 + sleeping: 睡覺 + smelling: 嗅 + smoking: 抽煙 + sneezing: 打噴嚏 + snowing: 下雪 + soaking_feet: 泡腳 + soccer: 足球運動 + spilling: 從容器中倒出液體的動作 + spitting: 從嘴裡吐出液體的動作 + splashing: 飛濺 + standing_on_liquid: 站在水上或液體上 + standing_on_one_leg: 單腿站立 + standing_split: 站立劈叉|站立高抬腿 + steepled_fingers: 指尖抵著指間 + strangling: 絞首 + sweeping: 打掃 + swimming: 游泳 + swing: 擺動 + tail_wagging: 搖尾巴 + taking_picture: 拍照|自拍 + talking: 有台詞的 + talking_on_phone: 打電話 + teasing: 戲弄 + thinking: 思考 + tickling: 挠癢癢 + toilet_use: 上廁所 + tossing_: 投擲 + tripping: 被絆倒 + trolling: 惡搞行為 + twitching: 抽搐 + tying: 打結(動作) + unsheathing: 拔出鞘的 + untying: 解開的 + unzipping: 拉開拉鍊(動作) + wading: 涉水 + waking_up: 醒來 + walking: 走路 + walking_on_liquid: 在液體上行走 + washing: 洗滌 + whispering: 講悄悄話 + wrestling: 摔角(運動) + writing: 寫作 + yawning: 打哈欠 + hiding: 躲藏 + + - name: 手部動作 + color: rgba(241, 229, 140, .4) + tags: + arms_behind_back: 手放在身後 + arm_above_head: 手在頭上 + arm_behind_head: 手放頭後 + arms_crossed: 手交叉於胸前 + arm_support: 用手支撐住 + armpits: 露腋 + arms_up: 舉手 + hands_on_hips: 雙手叉腰 + arm_around_waist: 單手摟腰 + caramelldansen: 某著名伸手扭腰動作 + hands_in_opposite_sleeves: 雙手反袖 + waving: 招手 + crossed_arms: 交叉雙臂 + outstretched_arms: 伸出雙臂 + v_arms: 雙臂擺出V + w_arms: 雙臂擺出W + salute: 敬禮 + reaching: (有目的地)伸手 + reaching_out: 朝畫外伸手 + stretch: 伸懶腰 + hugging_own_legs: 擁抱自己的腿 + arm_blade: 手臂刀刃 + arm_grab: 抓住手臂 + arm_held_back: 手臂往後拉 + arm_ribbon: 手臂絲帶 + bandaged_arm: 纏著繃帶的手臂 + bandaid_on_arm: 手臂上貼著創可貼 + bound_arms: 手臂被束縛 + convenient_arm: 遮住關鍵部位的手臂 + extra_arms: 多隻手臂 + locked_arms: 互挽手臂 + outstretched_arm: 伸出手臂 + waving_arms: 揮舞著手臂 + arm_at_side: 單手垂放 + arm_behind_back: 單手背到身後 + shou: 單手托在腦後 + arm_cannon: 手炮 + arm_hug: 挽手 + arm_up: 舉著手 + arms_at_sides: 雙手垂放 + arms_behind_head: 雙手抱頭 + hand_to_mouth: 手放在嘴邊 + shushing: 噓手勢 + cat_pose: 貓爪手勢 + claw_pose: 爪手勢 + paw_pose: 招財貓手勢(下彎手腕) + fox_shadow_puppet: 狐狸手勢 + double_fox_shadow_puppet: b + finger_gun: 手指槍手勢 + v: 勝利手勢 + double_v: 雙_v + thumbs_up: 翹大拇指 + index_finger_raised: 食指抬起 + middle_finger: 國際友好手勢 + grimace: 做鬼臉 + eyelid_pull: 做鬼臉 + fingersmile: 用手指做出笑臉 + wiping_tears: 擦眼淚 + finger_on_trigger: 準備扣扳機的手勢 + pointing_at_self: 指著自己 + pointing_at_viewer: 指向看圖的人 + pointing_up: 向上指 + poking: 戳 + hand_gesture: 做手勢 + ok_sign: OK手勢 + shading_eyes: 遮陽手勢 + finger_biting: 咬手指 + finger_in_mouth: 吮吸手指 + fingering_through_clothes: 手指 + fingers_together: 手指並攏 + hair_twirling: 手指捲著頭髮 + hands_clasped: 雙手手指交叉|雙手緊握 + holding_hair: 握著頭髮|手指繞著頭髮 + pointing: 用手指著 + sharp_fingernails: 銳利的手指甲 + sleeves_past_fingers: 袖子長過手指 + spread_fingers: 張開手指 + trigger_discipline: 手指沒放在扳機上 + w: 手指比W + balancing: (保持)平衡的姿勢 + curvy: 展現魅力的姿勢 + multiple_views: 多角度|多姿勢 + pose: 姿勢 + ready_to_draw: 準備拔刀的姿勢 + trefoil: 一種女性展示臀部的姿勢 + zombie_pose: 僵屍姿勢 + beckoning: 招手 + bunching_hair: 手持辮子 + carrying: 抱起 + carrying_over_shoulder: 肩扛 + carrying_under_arm: 夾在腋下 + cheering: 助威 + finger_to_mouth: 手抵在嘴唇邊 + cheek_pinching: 捏臉頰 + cheek_poking: 戳臉頰 + chin_stroking: 摸下巴 + hair_pull: 拉頭髮 + covering_mouth: 遮蓋嘴 + covering_xx: 遮蓋xx + self_fondle: 自我撫摸 + adjusting_thighhigh: 調整過膝襪 + chin_rest: 托臉頰 + head_rest: 托頭 + take: 拿著 + _sheet_grab: 抓床單 + groping: 摸索 + skirt_lift: 掀裙子 + crotch_grab: 手抓襠部 + covering_chest_by_hand: 用手遮住胸部 + bangs_pinned_back: 掀起的劉海 + clothes_lift: 掀起衣物 + dress_lift: 掀起裙子 + kimono_lift: 掀起和服 + lifted_by_another: 被對方掀起衣物 + lifted_by_self: 掀起自己的衣物 + shirt_lift: 拉起掀起卷起襯衫 + skirt_basket: 指掀起裙子時形成的籃子形狀 + skirt_flip: 被掀起裙子(含突發情況意義) + bikini_lift: 往上剝開的比基尼 + leg_lift: 單腿抬高 + lifting_person: 將人抱起 + strap_lift: 往上掰衣物的吊帶 + wind_lift: 起風效果|上升氣流 + bikini_pull: 扯著比基尼 + cheek_pull: 扯臉頰 + clothes_pull: 拉開衣物 + dress_pull: 剝下裙子胸口的部分 + hair_pulled_back: 頭髮往後扎 + kimono_pull: 剝開和服 + leotard_pull: 剝開連衣褲 + mask_pull: 拉著口罩 + pants_pull: 拉著褲子 + pulled_by_another: 被另一個人拉(或拉衣物) + pulled_by_self: 拉下自己的衣物 + pulling: 拉 + shirt_pull: 拉開襯衫 + shorts_pull: 褪下短褲 + skirt_pull: 拉開裙子 + swimsuit_pull: 扯下泳衣 + zipper_pull_tab: 拉鍊的拉片 + adjusting_clothes: 撥弄衣服 + adjusting_eyewear: 扶眼鏡 + adjusting_gloves: 撥弄手套 + adjusting_hair: 理頭髮 + adjusting_hat: 整理帽子 + adjusting_swimsuit: 撥弄泳衣 + + - name: 手部動作(拿著某物) + color: rgba(241, 229, 140, .4) + tags: + holding: 拿著某物 + holding_animal: 抱著動物 + holding_arrow: 拉著弓 + holding_axe: 握著斧頭 + holding_bag: 提著包 + holding_ball: 抱著球 + holding_basket: 提著籃子 + holding_book: 捧著書 + holding_bottle: 拿著瓶子 + holding_bouquet: 手捧花束 + holding_bow_(weapon): 拿著弓(武器) + holding_bowl: 端著碗 + holding_box: 端著箱子 + holding_breath: 憋氣 + holding_broom: 手持掃帚 + holding_camera: 手持攝像機 + holding_can: 拿著易拉罐 + holding_candy: 手持糖果 + holding_card: 手持卡片 + holding_cat: 抱著貓 + holding_chopsticks: 拿著筷子 + holding_cigarette: 手叼香煙 + holding_clothes: 拿著衣服 + holding_condom: 拿著避孕套 + holding_cup: 手持杯子 + holding_dagger: 手持匕首 + holding_doll: 抱著玩偶 + holding_eyewear: 拿著眼鏡|正在摘眼鏡 + holding_fan: 拿著扇子 + holding_flag: 手持旗幟 + holding_flower: 拿著花 + holding_food: 拿著食物 + holding_fork: 拿著餐叉 + holding_fruit: 拿著水果 + holding_gift: 拿著禮物 + holding_gun: 拿著槍 + holding_hands: 牽手 + holding_hat: 拿著帽子 + holding_head: 手裡捧著頭 + holding_helmet: 拿著頭盔 + holding_innertube: 拿著泳圈 + holding_instrument: 拿著樂器 + holding_knife: 拿著刀 + holding_leaf: 拿著葉子 + holding_lollipop: 拿著棒棒糖 + holding_mask: 拿著面具 + holding_microphone: 拿著麥克風 + holding_needle: 拿著縫衣針 + holding_own_foot: 握著自己的腳 + holding_paintbrush: 手握畫筆 + holding_paper: 拿著紙 + holding_pen: 握筆 + holding_pencil: 手持鉛筆 + holding_phone: 拿著手機 + holding_pillow: 抱著枕頭 + holding_pipe: 拿著煙斗 + holding_pizza: 拿著披薩 + holding_plate: 端著碟子 + holding_poke_ball: 拿著精靈球 + holding_pokemon: 抱著寶可夢 + holding_polearm: 手持長柄武器 + holding_sack: 拎著包袱 + holding_scythe: 手持鐮刀 + holding_sheath: 握著刀鞘 + holding_shield: 手持盾牌 + holding_shoes: 拿著鞋子 + holding_sign: 手持招牌 + holding_spear: 手持長矛 + holding_spoon: 拿著湯匙 + holding_staff: 手持法杖 + holding_strap: 手拉著吊帶 + holding_stuffed_animal: 抱著毛絨玩具 + holding_stylus: 手持手寫筆 + holding_sword: 手持劍 + holding_syringe: 手持注射器 + holding_towel: 拿著毛巾 + holding_tray: 托著盤子 + holding_umbrella: 撐傘 + holding_wand: 握著棒子 + holding_whip: 握著鞭子 + arm_around_neck: 單手摟著脖子 + arms_around_neck: 雙手摟著脖子 + + - name: 手部動作(放在某地) + color: rgba(241, 229, 140, .4) + tags: + covering: 遮蓋的動作 + covering_face: 擋住臉 + covering_ass: 遮著臀部 + covering_crotch: 遮著襠部 + covering_eyes: 遮住眼睛 + covering_mouth: 擋住嘴巴 + covering_nipples: 擋住乳頭 + hands_on_another's_: 雙手放在別人的臉上 + hands_on_another's_cheeks: 雙手放在對方的臉頰上 + hands_on_ass: 雙手放在屁股上 + hands_on_feet: 雙手放在腳上 + hands_on_headwear: 雙手碰到頭上的飾物 + hands_on_hilt: 雙手搭在刀柄上 + hands_on_lap: 雙手放在兩腿之間 + hands_on_own_face: 雙手放在自己的臉上 + hands_on_own_cheeks: 雙手放在自己的臉頰上 + hands_on_own_chest: 雙手放在自己的胸口 + hands_on_own_head: 雙手放在自己的頭上 + hands_on_own_knees: 雙手放在自己的膝蓋上 + hands_on_own_stomach: 雙手放在自己的肚子上 + hands_on_own_thighs: 雙手放在自己的大腿上 + hands_on_another's_shoulders: 雙手放在別人的肩膀上 + hands_on_hips: 雙手叉腰|雙手擱在腰上 + hand_on_another's_: 手接觸到對方的臉 + hand_on_another's_cheek: 手摸著對方的臉頰 + hand_on_another's_chest: 手放在對方的胸前 + hand_on_another's_chin: 手托著對方的下巴 + hand_on_another's_head: 手放在對方的頭上 + hand_on_another's_shoulder: 手放在對方的肩上 + hand_on_another's_stomach: 手放在對方的肚子上 + hand_on_ass: 手放在屁股上 + hand_on_head: 手放在頭上 + hand_on_headwear: 手觸碰帽子 + hand_on_hilt: 手搁在刀柄上 + hand_on_hip: 手叉著腰|手搁在腰上 + hand_on_own_: 把手放在自己臉上 + hand_on_own_cheek: 把手放在自己的臉頰上 + hand_on_own_chest: 把手放在自己的胸口 + hand_on_own_chin: 手碰著自己的下巴 + hand_on_own_stomach: 把手放在自己的肚子上 + hand_on_shoulder: 手放在肩上 + hand_in_another's_hair: 手放在對方的頭髮上 + hand_in_hair: 手埋在頭髮裡 + hand_in_pocket: 手插在口袋裡 + + - name: 手部動作(抓著某物) + color: rgba(241, 229, 140, .4) + tags: + ass_grab: 抓著屁股 + flat_chest_grab: 抓著貧乳 + grabbing: 抓住|抓著 + grabbing_another's_ass: 抓著對方屁股 + grabbing_another's_hair: 抓著對方的頭髮 + grabbing_from_behind: 從背後揉胸|從背後抓住胸部 + grabbing_own_ass: 抓著自己的屁股 + guided_penetration: 抓住男性器插入自己 + hair_grab: 抓著頭髮 + leg_grab: 抓著腿 + necktie_grab: 抓著領帶 + neckwear_grab: 抓著頸部的衣服 + penis_grab: 抓著陰莖 + pillow_grab: 抓著枕頭 + sheet_grab: 抓著床單 + tail_grab: 抓著尾巴 + thigh_grab: 抓著大腿 + torso_grab: 抓著軀幹 + wrist_grab: 抓著手腕 + + - name: 腿部動作 + color: rgba(241, 229, 140, .4) + tags: + legs_up: 抬一隻腿 + spread legs: 張腿 + legs_together: 兩腿並攏 + crossed_legs: 二郎腿 + m_legs: M字擺腿 + standing_split,_leg_up: M字擺腿 + curtsy: 屈膝禮(女僕行禮) + hand_between_legs: 雙腿之間的手 + open_stance: 稍息 + convenient_leg: 擋住關鍵部位的腿 + leg_lock: 用雙腿夾住 + legs: 雙腿 + legs_over_head: 雙腿抬過頭 + squatting,_open_legs: 蹲下分開雙腿 + knees_together_feet_apart: 膝蓋合併,兩腳分開 + animal_on_lap: 膝蓋上有動物 + hand_on_own_knee: 手放在自己的膝蓋上 + knee_up: 頂起膝蓋 + knees: 膝蓋 + knees_to_chest: 膝蓋頂到胸部 + on_lap: 在膝蓋上 + sitting: 坐 + wariza: 鴨子坐 + straddling: 跨坐 + yokozuwari: 側身坐 + sitting_backwards: 向後坐 + sitting_in_tree: 坐在樹上 + sitting_on_xx: 坐在物體上 + butterfly_sitting: 蝴蝶坐 + lotus_position: 坐在桌子上 + sitting_on_railing: 坐在欄杆上 + sitting_on_rock: 坐在石頭 + sitting_on_stairs: 坐在樓梯上 + sitting_on_table: 坐在桌子上 + sitting_on_water: 坐在水上 + cushion: 坐墊 + indian_style: 盤腿坐 + sitting_on_chair: 坐在椅子上 + sidesaddle: 側坐在鞍上 + sitting_on_bed: 坐在床上 + sitting_on_desk: 坐在課桌上 + sitting_on_lap: 坐在大腿上 + sitting_on_person: 坐在人身上 + upright_straddle: 對坐體位 + squatting: 蹲下 + one_knee: 一隻膝蓋 + kneeling: 下跪 + all_fours: 四肢著地 + gravure_pose: 凹版姿勢 + kicking: 踢 + high_kick: 高踢 + soaking_feet: 泡腳 + reclining: 斜倚 + hugging_own_legs: 抱自己的雙腿 + bare_legs: 裸腿 + between_legs: (強調)兩腿之間 + cropped_legs: 只畫了一部分腿 + k/da_(league_of_legends): KDA組合(英雄聯盟) + leg_belt: 腿部繫著帶子 + leg_hair: 腿毛 + leg_up: 抬起腿 + legs_apart: 兩腿分開 + lowleg: M字擺腿 + mechanical_legs: 機械義足 + multiple_legs: 多足角色 + no_legs: 沒畫出腿 + no_legwear: 襠胯以下裸著 + tail_between_legs: 尾巴蜷到兩腿之間 + barefoot: 裸足 + foot_out_of_frame: 單腳不在圖內 + footprints: 腳印 + dirty_feet: 腳的畫法錯誤 + feet: 腳 + feet_out_of_frame: 雙腳不在圖內 + feet_up: 翹起腳 + wrong_feet: 腳部作畫錯誤 + cameltoe: 駱駝趾 + pigeon-toed: 萌向的內八腿 + tiptoes: 踮起腳尖 + toe-point: 趾尖|腳尖 + amputee: 欠損|獨腳|肢體殘缺|欠損少女 + ankle_strap: 腳踝絲環 + ankle_wrap: 腳踝套 + crossed_ankles: 交叉腳踝 + pince-nez: 夾鼻眼鏡|無腳眼鏡 + folded: 舉腿露陰 + thick_thighs: 肉腿 + thigh_holster: 腿上繫著帶子或工具包或槍套 + + - name: 其他動作 + color: rgba(241, 229, 140, .4) + tags: + asymmetrical_docking: 胸部互碰|胸頂著胸 + back-to-back: 背對背 + cunnilingus: 舔陰 + eye_contact: 眼對眼(對視) + facing_another: 面對另一個 + facing_away: 二人面對面(臉貼得很近) + feeding: 餵食 + finger_in_another's_mouth: 口內指交 + fingering: 指交 + french_kiss: 法國之吻 + giving: 遞|贈送 + grinding: 素股|臀推 + groping: 猥褻 + holding_hands: 牽手 + hug: 擁抱 + imminent_kiss: 即將接吻 + incoming_food: 遞食物 + incoming_gift: 遞禮物 + interlocked_fingers: 緊扣的雙手 + Kabedon: 壁咚 + lap_pillow: 膝枕 + licking_penis: 舔陰莖 + long_tongue: 長舌頭 + mimikaki: 掏耳勺 + oral_invitation: 迎接射精而伸出舌頭 + princess_carry: 公主抱 + shared_bathing: 共浴|鴛鴦浴 + shared_food: 共享食物|用嘴遞食物 + sitting_on_head: 坐在頭上 + sitting_on_shoulder: 坐在肩膀上 + slapping: 掌掴 + spanking: 打屁股 + special_feeling_(meme): 雪中打傘的戀人梗 + symmetrical_docking: 胸擠胸 + tongue: 舌頭 + tongue_out: 吐舌頭 + uvula: 小舌頭|口蓋垂|懸雍垂 + ear_biting: 咬耳朵 + mixed_bathing: 混浴 + +- name: 畫面 + groups: + - name: 畫質 + color: rgba(0, 255, 255, .4) + tags: + checkered: 格子的 + lowres: 低解析度 + highres: 高解析度 + absurdres: 超高解析度 + incredibly absurdres: 極高解析度 + huge filesize: 超大檔案大小 + wallpaper: 壁紙 + pixel art: 點陣圖 + monochrome: 單色圖片 + colorful: 色彩斑斕的 + + - name: 藝術風格 + color: rgba(0, 255, 255, .4) + tags: + artbook: 原畫 + game cg: 遊戲CG + comic: 漫畫 + 4koma: 四格漫畫 + animated gif: 動態圖片 + dakimakura: 抱枕 + cosplay: 角色扮演 + crossover: 跨界 + dark: 暗的 + light: 亮的 + guro: 獵奇 + realistic: 寫實 + photo: 照片 + real: 真實 + landscape/scenery: 風景 + cityscape: 城市風景 + science fiction: 科幻 + original: 原創 + parody: 拙劣的模仿 + personification: 擬人化 + optical illusion: 視覺錯覺 + fine art parody: 名畫模仿 + sketch: 素描 + traditional media: 傳統媒體(手繪稿) + watercolor (medium): 透明水彩繪畫 + silhouette: 剪影 + cover: 封面 + album: 專輯 + sample: 圖上有文字 + back: 背影像 + bust: 半身像 + profile: 側面繪畫 + expressions: 表情繪畫(各種表情) + everyone: 一部作品中的主要人物集齊 + column lineup: 一列列小圖組成大圖 + transparent background: 透明的背景 + simple background: 簡單的背景 + gradient background: 漸層的背景 + zoom layer: 背景是前景的放大版 + 8 Bit Game: 8位元遊戲 + 1980s anime: 80年代動畫 + disney movie: 迪士尼電影 + goth: 哥德搖滾 + 80s movie: 80年代電影 + bubble bobble: 泡泡龍 + style of Pixar: 皮克斯動畫風格 + Polaroid art: 寶麗來藝術 + Kaleidoscope Photography: 萬花筒攝影 + opal render: 歐泊渲染 + chemigram: 色譜圖 + Studio Ghibli: 吉卜力風格 + dreamlike: 夢幻 + (faux traditional media): 簽繪風格 + genshin impact: 原神衝擊 + azur lane: 碧藍航線 + kantai collection: 艦隊收藏 + rebecca (cyberpunk): 邊緣行者 + chainsaw man: 電鋸人 + Magic Vortex: 魔法旋渦 + ((dieselpunk)): 柴油朋克 + magazine scan: 雜誌掃描 + album cover: 專輯封面 + (lineart): 線條變粗 + synthwave: 蒸汽波 + (illustration),(paper figure),(lococo),((impasto)),(shiny skin): 洛可可 + + - name: 藝術類型 + color: rgba(0, 255, 255, .4) + tags: + monochrome: 單色圖片 + Collage: 拼貼藝術 + Dalle de verre: 彩色玻璃 + pixel art: 像素畫 + Encaustic painting: 瓷畫 + Ink wash painting: 水墨畫 + Mezzotint: 銅版雕刻 + silhouette: 剪影 + illustration: 插畫 + (((ink))), ((watercolor)): 水彩畫 + illustration,(((ukiyoe))),((sketch)),((japanese_art)): 浮世繪 + ((wash painting)),((ink s...)): 中國風 + ((dyeing)),((oil painting)),((impasto)): 油畫 + (posing sketch), (monochrome): 黑白草圖 + sketch: 手繪草稿 + (monochrome), (gray scale), (pencil sketch lines: 鉛筆速寫 + (watercolor pencil): 彩鉛畫 + + - name: 藝術派系 + color: rgba(0, 255, 255, .4) + tags: + ((art nouveau)): 新藝術主義 + ((classicism)): 古典主義 + ((futurism)): 未來主義 + ((Dadaism)): 達達主義 + ((abstract art)): 抽象藝術 + ((ASCII art)): ASCII藝術 + + - name: 藝術家風格 + color: rgba(0, 255, 255, .4) + tags: + ((alphonse mucha)): 穆夏風格 + ((Monet style)): 莫奈風格 + + - name: 光照 + color: rgba(0, 255, 255, .4) + tags: + rim light: 輪廓光 + Volumetric Lighting: 体積光 + glowing neon lights: 霓虹燈 + Cinematic Lighting: 電影級燈光 + lens flare: 透鏡光暈 + metallic luster: 金屬光澤 + moody lighting: 氛圍燈光 + Tyndall effect: 丁達爾效應 + light leaks: 漏光效果 + background light: 背景光 + available light: 自然光 + + - name: 寫實 + color: rgba(0, 255, 255, .4) + tags: + realistic: 寫實 + highres: 厚塗(風格) + photo_(medium): 照片(風格) + oil_painting: 油畫 + reality: 真實 + polaroid: 照片(拍立得) + + - name: 素描 + color: rgba(0, 255, 255, .4) + tags: + sketch: 素描 + flat_color: 色塊 + monochrome: 單色 + spot_color: 純色 + halftone: 半色調 + greyscale: 灰度 + high_contrast: 高對比度 + partially_colored: 部分著色 + chromatic_aberration: 色差、色失焦 + contour_deepening: 輪廓加深 + outline: 輪廓線 + silhouette: 剪影 + + - name: 畫筆 + color: rgba(0, 255, 255, .4) + tags: + traditional_media: 傳統畫布(如紙等) + faux_traditional_media: 簽繪風格 + marker_(medium): 馬克筆 + copics: 馬克筆(中性灰色) + pencil_sketch_lines: 鉛筆速寫 + graphite_(medium): 石墨鉛筆 + colored_pencil_(medium): 彩色鉛筆 + millipen_(medium): 繪圖筆 + nib_pen_(medium): 繪圖筆 + ballpoint_pen_(medium)_: 圓珠筆 + pastel_color: 柔和的色彩 + watercolor_(medium): 水彩 + acrylic_paint_(medium): 丙烯顏料畫 + contour_deepening: 線條變粗 + + - name: 顏色 + color: rgba(0, 255, 255, .4) + tags: + orange: 橙色 + blue: 藍色 + red: 紅色 + light_brown: 淺棕色 + dark_pink: 深粉色 + khaki: 卡其色 + blonde: 金黃色的 + brown: 棕色 + black: 黑色 + gray: 灰色 + darkgray: 深灰色 + silver: 銀色 + lightgray: 淺灰色 + gainsboro: 庚氏灰色 + whitesmoke: 白煙色 + snow: 雪白色 + ghostwhite: 幽靈白 + floralwhite: 花白色 + linen: 亞麻色 + antiquewhite: 古董白 + papayawhip: 番木瓜色 + blanchedalmond: 漂白杏仁色 + bisque: 餅乾色 + moccasin: 鹿皮鞋色 + navajowhite: 納瓦霍白 + peachpuff: 桃肉色 + mistyrose: 薄霧玫瑰 + lavenderblush: 淡紫紅色 + seashell: 貝殼白 + oldlace: 老花色 + ivory: 象牙色 + honeydew: 蜜色 + mintcream: 薄荷奶油色 + azure: 蔚藍色 + aliceblue: 艾莉絲藍 + lavender: 薰衣草色 + lightsteelblue: 淡鋼藍色 + lightslategray: 亮石板灰 + slategray: 灰石色 + steelblue: 鋼藍色 + royalblue: 皇家藍 + midnightblue: 午夜藍 + navy: 海軍藍 + darkblue: 深藍色 + mediumblue: 中藍色 + dodgerblue: 道奇藍 + cornflowerblue: 矢車菊藍 + skyblue: 深天藍 + lightblue: 淡藍色 + powderblue: 粉藍色 + paleturquoise: 淡青色 + lightcyan: 青色 + cyan: 碧綠色 + aquamarine: 綠松石色 + turquoise: 中綠松石色 + mediumturquoise: 深綠松石色 + darkturquoise: 淺海綠色 + lightseagreen: 軍服藍色 + cadetblue: 深青色 + darkcyan: 水鴨色 + teal: 暗灰藍色 + darkslategray: 深綠色 + darkgreen: 綠色 + green: 森林綠色 + forestgreen: 海綠色 + seagreen: 中海綠色 + mediumseagreen: 中綠寶石色 + mediumaquamarine: 暗海綠色 + darkseagreen: 綠松石色 + palegreen: 淡綠色 + lightgreen: 草綠色 + springgreen: 中春綠色 + mediumspringgreen: 草坪綠 + lawngreen: 查特酒綠色 + chartreuse: 黃綠色 + greenyellow: 酸橙色 + lime: 酸橙綠 + limegreen: 橄欖褐色 + yellowgreen: 橄欖綠色 + darkolivegreen: 橄欖色 + olivedrab: 橄欖褐色 + olive: 橄欖色 + darkkhaki: 暗卡其色 + palegoldenrod: 淡金菊色 + cornsilk: 玉米色 + beige: 米色 + lightyellow: 淺黃色 + lightgoldenrodyellow: 亮金黃色 + lemonchiffon: 檸檬綢色 + wheat: 小麥色 + burlywood: 琥珀色 + tan: 棕褐色 + yellow: 黃色 + gold: 金色 + sandybrown: 橙褐色 + darkorange: 暗橙色 + goldenrod: 金菊色 + peru: 秘魯色 + darkgoldenrod: 暗金菊色 + chocolate: 巧克力色 + sienna: 黃土赭色 + saddlebrown: 馬鞍棕色 + maroon: 栗色 + darkred: 暗紅色 + firebrick: 耐火磚色 + indianred: 印第安紅色 + rosybrown: 玫瑰棕色 + darksalmon: 深鮭魚肉色 + lightcoral: 淺珊瑚色 + salmon: 鮭魚肉色 + lightsalmon: 亮鮭魚肉色 + coral: 珊瑚色 + tomato: 番茄紅 + orangered: 橙紅色 + crimson: 深粉紅色 + mediumvioletred: 中紫羅蘭紅色 + deeppink: 深粉色 + hotpink: 熱粉紅色 + palevioletred: 淡紫羅蘭紅色 + pink: 粉色 + lightpink: 淺粉色 + thistle: 薊色 + magenta: 洋紅色 + fuchsia: 紫紅色 + violet: 紫色 + plum: 洋李色 + orchid: 蘭花紫 + mediumorchid: 中蘭花紫色 + darkorchid: 暗蘭花紫色 + darkviolet: 暗紫羅蘭色 + darkmagenta: 暗洋紅色 + purple: 紫色 + indigo: 靛藍色 + darkslateblue: 暗灰藍色 + blueviolet: 藍紫色 + mediumpurple: 中紫色 + slateblue: 石藍色 + mediumslateblue: 中石板藍色 + + - name: 背景 + color: rgba(0, 255, 255, .4) + tags: + fantasy: 幻想風格 + ban: 科技幻想 + cyberpunk: 赛博朋克 + depth_of_field: 景深(畫法) + blurry: 背景模糊 + blurry_foreground: 前景模糊 + simple_background: 簡單的背景 + black_background: 黑色背景 + white_background: 白色背景 + transparent_background: 透明背景 + beige_background: 米色背景 + brown_background: 棕色背景 + tan_background: 棕褐色背景 + grey_background: 灰色背景 + two-tone_background: 雙色調背景 + gradient_background: 漸層的背景 + multicolored_background: 多彩的背景 + rainbow_background: 彩虹背景 + abstract_background: 抽象背景 + argyle_background: 菱形背景 + checkered_background: 方格背景 + floral_background: 花朵點綴的背景 + halftone_background: 點陣圖背景 + heart_background: 桃色背景 + honeycomb_background: 蜂窩風格背景 + plaid_background: 格子呢背景 + polka_dot: 圓斑背景 + striped_background: 圓斑背景 + scenery: 風景 + landscape: 景觀 + foral_background: 花卉圖案裝飾的背景 + crop_top_overhang: 作物頂部懸垂 + starry_background: 星空背景 + sparkle_background: 閃著星光的背景 + cityscape: 城市背景 + city_lights: 城市燈光背景 + clock_background: 時鐘背景 + bubble_background: 氣泡背景 + border: 邊框 + pillarboxed: 柱狀畫布背景 + rounded_corners: 背景或畫框是圓角 + viewfinder: 相機取景框 + windowboxed: 套著畫框(背景) + outside_border: 一部分畫到了背景框外 + flashback: 回憶場景 + wall_of_text: 文字背景 + background_text: 背景文字 + +- name: 環境 + groups: + - name: 季節 + color: rgba(31, 144, 255, .4) + tags: + in spring: 春天 + in summer: 夏天 + in autumn: 秋天 + in winter: 冬天 + (autumn maple forest:1.3),(very few fallen leaves),(path): 秋景 + + - name: 天氣 + color: rgba(31, 144, 255, .4) + tags: + day: 白天 + dusk: 黃昏 + night: 夜晚 + rain: 下雨 + in the rain: 雨中 + rainy days: 雨天 + sunset: 日落 + cloudy: 多雲 + full moon: 滿月 + sun: 太陽 + moon: 月亮 + full_moon: 滿月 + stars: 星星 + sky: 天空 + universe: 宇宙 + snow,ice: 冰雪 + snowflakes: 雪花 + lighting: 閃電 + rainbow: 彩虹 + meteor shower: 流星雨 + cumulonimbus: 積雨雲 + + - name: 大自然 + color: rgba(31, 144, 255, .4) + tags: + nature: 大自然 + sea: 大海 + ocean: 海洋 + beach: 海邊 + hills: 山丘 + in a meadow: 草地 + on the beach: 海灘 + underwater: 水中 + over the sea: 海邊 + grove: 樹林 + on a desert: 沙漠 + plateau: 高原 + cliff: 懸崖 + canyon: 峽谷 + oasis: 綠洲 + bamboo forest: 竹林 + glacier: 冰川 + floating island: 浮島 + volcano: 火山 + savanna: 大草原 + waterfall: 瀑布 + stream: 溪流 + wasteland: 荒地 + field: 田園 + rice paddy: 稻田 + wheat field: 麥田 + flower field: 花田 + flower sea: 花海 + space: 太空 + starry sky: 星空 + lake: 湖泊 + river: 河流 + onsen: 溫泉 + flowers meadows: 繁花草甸 + Alps: 阿爾卑斯山脈 + Dreamy forest: 夢幻之森(虛幻感.光粒子幽靜) + mountain: 山脈 + on a hill: 山上 + the top of the hill: 山頂 + outdoors: 戶外 + + - name: 水 + color: rgba(31, 144, 255, .4) + tags: + ocean: 大海 + dripping: 滴水 + beach: 海灘 + lake: 湖泊 + waterfall: 瀑布 + ripples: 漣漪 + swirl: 漩渦 + waves: 波浪 + seashell: 海貝 + seaweed: 海藻 + + - name: 天空 + color: rgba(31, 144, 255, .4) + tags: + sky: 天空 + gradient_sky: 傾斜的天空 + night_sky: 夜空 + starry_sky: 星空 + hyper_galaxy: 超級銀河 + star_(sky): 星星(天空中的) + star_trail: 星星軌跡 + sunset: 落日 + moon: 月亮 + lunar: 月的,_月球的; + crescent: 月牙 + crescent_moon: 新月 + full_moon: 滿月 + moonlight: 月光 + scarlet_moon: 猩紅月亮 + universe: 宇宙 + space: 太空 + planet: 星球 + from_space_station: 空間站 + satellite: 衛星 + + - name: 雲 + color: rgba(31, 144, 255, .4) + tags: + cirrus: 捲雲 + Cirrocumulus: 捲積雲 + Cirrostratus: 捲層雲 + Altocumulus: 高積雲 + Altostratus: 高層雲 + stratus: 層雲 + Stratocumulus: 層積雲 + cumulus: 積雲 + Cumulonimbus: 積雨雲 + Nimbostratus: 雨層雲 + cirrus_fibratus: 毛捲雲 + cirrus_uncinus: 鉤捲雲 + cirrus_spissatus: 密捲雲 + cirrus_floccus: 絮捲雲 + cirrus_castellanus: 堡捲雲 + cirrus_intortus: 亂捲雲 + cirrocumulus: 捲積雲類 + cirrocumulus_stratiformis: 層狀捲積雲 + cirrocumulus_floccus: 絮狀捲積雲 + cirrocumulus_castellanus: 堡狀捲積雲 + cirrocumulus_lacunosus: 網狀捲積雲 + cirrostratus: 捲層雲類 + cirrostratus_fibratus: 毛捲層雲 + cirrostratus_nebulosus: 霧捲層雲 + altocumulus: 高積雲類 + altocumulus_strataformis: 層狀高積雲 + altocumulus_lenticularis: 莢狀高積雲 + altocumulus_castellanus: 堡狀高積雲 + altocumulus_floccus: 絮狀高積雲 + altocumulus_lacunosus: 網狀高積雲 + altostratus: 高層雲類 + altostratus_undulatus: 波狀高層雲 + altostratus_duplicates: 複合高層雲 + altostratus_pannus: 破片高層雲 + altostratus_translucidus: 透光高層雲 + altostratus_opacus: 蔽光高層雲 + altostratus_radiatus: 輻狀高層雲 + altostratus_mammatus: 乳狀高層雲 + stratus_fractus: 碎層雲 + stratus_nebulosus: 霧層雲 + stratus_undulatus: 波層雲 + stratocumulus: 層積雲類 + stratocumulus_stratiformis: 層狀層積雲 + stratocumulus_cumulogentis: 積雨性層積雲 + stratocumulus_castellanus: 堡狀層積雲 + stratocumulus_lenticularis: 莢狀層積雲 + stratocumulus_lacunosus: 絮狀層積雲 + cumulus_humilis: 淡積雲 + cumulus_mediocris: 中積雲 + cumulus_congestus: 濃積雲 + cumulus_fractus: 碎積雲 + cumulonimbus: 積雨雲類 + cumulonimbus_calvus: 禿積雨雲 + cumulonimbus_capillatus: 鬃積雨雲 + cumulonimbus_incus: 砧積雨雲 + + - name: 氛圍 + color: rgba(31, 144, 255, .4) + tags: + new year: 新年 + year of the rabbit: 兔年 + valentine: 情人節 + lantern festival: 元宵節 + summer festival: 夏日祭 + tanabata: 七夕節 + mid-autumn festival: 中秋節 + halloween: 萬聖節 + christmas: 聖誕節 + explosion: 爆炸 + water vapor: 蒸汽 + fireworks: 焰火 + ceiling window: 落地窗 + colourful glass: 彩色玻璃 + stain glass: 染色玻璃 + Graffiti wall: 塗鴉牆 + mosaic background: 馬賽克背景 + liquid background, Sputtered water: 液體背景 + magic circles: 魔法環 + fluorescent mushroom forests background: 螢光蘑菇森林 + (((colorful bubble))): 彩色泡泡 + in the ocean: 海邊日落 + against backlight at dusk: 傍晚背對陽光 + golden hour lighting: 黃金時段照明 + strong rim light: 強邊緣光 + intense shadows: 強陰影 + +- name: 場景 + groups: + - name: 戶外 + color: rgba(159, 32, 240, .4) + tags: + castle: 城堡 + city: 城市 + waterpark: 水上樂園 + carousel: 旋轉木馬 + ferris wheel: 摩天輪 + aquarium: 水族館 + zoo: 動物園 + bowling alley: 保齡球館 + art gallery: 美術館 + museum: 博物館 + planetarium: 天文館 + swimming pool: 游泳池 + stadium: 體育場 + temple: 寺廟 + bus stop: 公車站 + train station: 火車站 + fountain: 噴泉 + playground: 遊樂場 + market stall: 市場攤位 + phone booth: 電話亭 + railroad tracks: 鐵軌 + airport: 機場 + tunnel: 隧道 + skyscraper: 摩天樓 + cityscape: 城市風景 + ruins: 廢墟 + greco-roman architectur: 希臘羅馬建築 + east asian architecture: 東亞建築 + torii: 鳥居 + church: 教堂 + shop: 商店 + street: 街道 + cyberpunk city: 赛博朋克城市 + in the cyberpunk city: 在赛博朋克城市 + chinese style architecture: 古風建築 + gohei: 神社 + Bustling city: 繁華都市 + laboratory: 實驗室 + coffee house: 咖啡館 + gym: 健身房 + library: 圖書館 + prison: 監獄 + engine room: 輪機艙 + handrail: 欄杆 + neon lights: 霓虹燈 + street lamp: 路燈 + road: 道路 + shanty town/slum: 貧民窟 + warehouse: 倉庫 + gothic architecture: 哥特式建築 + restaurant: 餐廳 + treehouse: 樹屋 + modern,Europe: 法蘭西 + Industrial wind, Chinese architecture: 工業化古建築 + building_ruins: 建築廢墟 + bar: 酒吧 + izakaya: 居酒屋 + cafe: 咖啡館 + bakery: 麵包店 + convenience store: 便利店 + supermarket: 超市 + pharmacy: 藥店 + theater: 劇院 + movie theater: 電影院 + workshop: 工作坊 + courtroom: 法庭 + park: 公園 + Trapeze: 吊架;秋千 + classroom: 教室 + botanical garden: 植物園 + amusement_park: 遊樂園 + Disney_land: 迪士尼樂園 + arena: 競技場 + wrestling_ring: 摔角場 + Auditorium: 禮堂 + concert: 音樂會 + Japanese_hotel: 日本旅館 + jail_bars: 監獄酒吧 + in_the_movie_theatre: 在電影院裡 + stage: 舞台 + harbor: 港口 + casino: 賭場 + billiard: 台球桌 + dungeon: 地牢 + grave: 墳墓 + graveyard: 墓地 + tombstone: 墓碑 + monolith: 巨大的石頭物體 + rappelling: 拉平(懸掛) + building: 建築 + architecture: 建築 + magnificent_architecture: 建築 + Skyscraper: 摩天樓 + east_asian_architecture: 東亞建築 + cathedral: 大教堂 + chinese_style_loft: 中式閣樓 + traditional_chinese_room: 傳統中式客房 + turret: 塔樓 + tower: 塔 + mosque: 清真寺 + reservoir: 水庫 + railroad: 鐵路 + railway: 鐵路 + bridge: 橋 + under_bridge: 橋下 + remains: 廢墟 + rubble_ruins: 廢墟 + + - name: 城市 + color: rgba(159, 32, 240, .4) + tags: + city: 城市 + cityscape: 城市風景 + street: 街道 + downtown: 市中心 + crowd: 人群 + alley: 小巷 + in_main_street: 大道 + Intersection: 路口 + avenue: 大街 + lawn: 草坪 + road: 路 + path: 路徑 + pavement: 路面 + road_sign: 路標 + traffic_cone: 路障 + lamppost: 路燈 + power_lines: 電線杆和電線 + fence: 柵欄 + railing: 欄杆 + bench: 長凳 + vending_machine: 自動販賣機 + + - name: 室內 + color: rgba(159, 32, 240, .4) + tags: + indoor: 室內 + bathroom: 浴室 + toilet stall: 廁所隔間 + otaku room: 宅男房間 + cafeteria: 自助餐廳 + classroom: 教室 + clubroom: 俱樂部 + bedroom: 臥室 + kitchen: 廚房 + dormitory: 宿舍 + dungeon: 地庫 + infirmary: 醫務室 + stage: 舞台 + electrical room: 配電房 + server room: 伺服器機房 + basement: 地下室 + art room: 美術室 + bathing: 浴室 + stairs: 樓梯 + greenhouse: 溫室 + + - name: 地板 + color: rgba(159, 32, 240, .4) + tags: + floor: 地板 + tile_floor: 木質地板 + + - name: 家具 + color: rgba(159, 32, 240, .4) + tags: + bedroom: 家具 + tatami: 榻榻米 + bed: 床 + couch: 沙發 + kotatsu: 被爐 + fireplace: 壁爐 + window_: 窗 + sash: 窗扇 + curtains: 窗簾 + door: 門 + sliding_doors: 推拉門 + clothes_rack: 衣架 + air_conditioner: 空調 + table: 桌子 + school_desk: 課桌 + chair: 椅子 + armchair: 扶手椅 + lounge_chair: 躺椅 + beach_chair: 沙灘椅 + folding_chair: 折疊椅 + invisible_chair: 隱形椅子 + office_chair: 辦公椅 + wheelchair: 輪椅 + + - name: 床上用品 + color: rgba(159, 32, 240, .4) + tags: + bed_sheet: 床單 + mattress: 床墊;褥子 + futon: 日本床墊 + cushion: 坐墊 + carpet: 地毯 + pillow: 枕頭 + dumpling_Hug_Pillow: 團子抱枕 + pillow_hug: 抱枕 + yes-no_pillow: Yes/No枕頭 + stuffed_animal: 毛絨玩偶 + stuffed_bunny: 毛絨兔子 + koakuma: 小熊 + + - name: 浴室 + color: rgba(159, 32, 240, .4) + tags: + bathroom: 浴室 + bathtub,: 浴缸 + rubber_duck: 橡皮鴨 + shower_head: 淋浴噴頭 + toilet: 馬桶 + squat_toilet: 蹲便器 + soap: 肥皂 + tiles: 瓷磚 + +- name: 物品 + groups: + - name: 學習用品 + color: rgba(189, 182, 107, .4) + tags: + notebook: 筆記本 + paintbrush: 畫筆 + pencil: 鉛筆 + book: 書 + open_book: 翻開的書 + book_stack: 書摞 + bookshelf: 書架 + school_bag: 上學包(手提包) + backpack: 背包 + + - name: 數位設備 + color: rgba(189, 182, 107, .4) + tags: + computer: 電腦 + mouse: 滑鼠 + cellphone: 手機 + Smartphones: 智慧型手機 + handheld_game_console_: 掌上遊戲機 + nintendo_3ds: 任天堂3DS + nintendo_ds: 任天堂DS + nintendo_switch: 任天堂Switch + buttons: 按鈕 + power_lines: 電源線 + cable: 電纜 + + - name: 餐具 + color: rgba(189, 182, 107, .4) + tags: + pot: 鍋子 + teapot: 茶壺 + ladle: 長柄湯匙 + can: 罐子 + soda_can: 罐裝飲料 + cup: 杯子 + plate: 盤子 + tray: 托盤 + bowl: 碗 + fork: 叉子 + chopsticks: 筷子 + spoon: 湯匙 + drinking_glass: 水杯 + tumbler: 普通玻璃杯 + beer_mug: 啤酒杯 + gift_box: 禮物盒 + heart-shaped_box: 心形禮盒 + candle: 蠟燭 + + - name: 樂器 + color: rgba(189, 182, 107, .4) + tags: + music: 音樂 + guitar: 吉他 + piano: 鋼琴 + cello: 大提琴 + playing_instrument: 演奏樂器 + wind_chime: 風鈴 + + - name: 其他物品 + color: rgba(189, 182, 107, .4) + tags: + wristwatch: 手錶 + folding_fan: 折扇 + paper_fan: 紙扇 + uchiwa: 團扇 + umbrella: 雨傘 + transparent_umbrella: 透明雨傘 + closed_umbrella: 封閉傘 + oil-paper_umbrella: 油紙傘 + Parasol: 遮陽傘 + basket: 籃子 + bouquet: 花束 + bucket: 桶 + pail: 桶 + camera: 相機 + gohei: 御幣(驅邪布條) + lantern/lamp: 燈籠 + whip: 鞭 + riding_crop: 馬鞭 + ofuda: 札符 + cane: 手杖 + wand: 魔杖 + magic: 魔術 + trading_card: 交易卡 + playing_card: 撲克牌 + Cassette: 磁帶盒 + chess_piece: 棋子 + coin: 硬幣 + copper: n.銅幣 + hammer: 鎚子 + microphone: 麥克風 + mimikaki: 掏耳勺 + sack: 麻袋 + scales: 秤 + chibi_inset: 赤壁插圖 + damaged: 損壞 + diamond_(shape): 鑽石(形狀) + gourd: 葫蘆 + holding_gift: 拿著禮物 + inlet: 入口 + key: 鑰匙 + leash: 皮帶 + Lever: 槓桿,操作桿 + molecule: 分子 + money: 錢 + Painting_(Object): 畫作(物品) + photo_(object): 照片(物體) + sand: 沙子 + stubble: 茬 + trophy: 獎盃 + tube_top: 管頂 + water_bottle: 水瓶 + lotion: 防曬霜|身體乳 + lotion_bottle: 乳液瓶子 + + - name: 武器 + color: rgba(189, 182, 107, .4) + tags: + weapon: 武器 + weapon_on_back: 背上的武器 + weapon_over_shoulder: 肩上的武器 + huge_weapon: 大尺寸武器 + planted_weapon: 往地上插的武器 + broken_weapon: 破碎的武器 + planted_sword: 立劍(planted立) + sword: 刀 + scabbard: 刀鞘 + unsheathing: 出鞘 + katana: 武士刀 + saber_(weapon): 軍刀(武器) + scythe: 鐮刀 + nose_hatchet: 柴刀 + dagger: 匕首 + scissors: 剪刀 + axe: 斧頭 + hatchet: 短斧 + stake: 棍子 + lance: 長矛 + trident: 三叉戟 + bow_(weapon): 弓 + arrow: 箭 + claw_(weapon): 爪(武器) + rifle,: 步槍 + gun: 槍 + handgun: 手槍 + thompson_submachine_gun: 湯普森衝鋒槍 + magazine_(weapon): 彈匣(武器) + dynamite: 甘油炸藥 + bomb: 炸彈 + track missiles: 跟蹤導彈 + complex Trajectory: 軌跡拖尾 + tank: 坦克 + cannon: 大砲 + military_vehicle: 軍用載具 + motorcycle: 摩托車 + ship: 船舶 + watercraft: 船舶 + car: 汽車 + machine: 機械 + machinery: 機械武裝 + mechanical_arms: 機械臂 + mechanization: 機械化 + robot_ears: 機械耳 + robot_joints: 機械關節 + variable_fighter: 超時空要塞機體 + sorcerer's_sutra_scroll: 魔人經卷 + + - name: 食物 + color: rgba(189, 182, 107, .4) + tags: + A_sushi_roll: 壽司卷 + apple: 蘋果 + aubergine: 茄子 + burger: 漢堡 + cake: 蛋糕 + candy: 糖果 + candy_apple: 蘋果糖 + candy_cane: 棒棒糖 + carrot: 胡蘿蔔 + cigarette: 香煙 + coffee: 咖啡 + cookie: 餅乾 + cotton_candy_: 棉花糖 + cream: 奶油 + dango: 團子 + doughnut: 甜甜圈 + drink: 飲料 + egg: 雞蛋 + fruit: 水果 + Gelatin: 明膠、布丁 + ice_cream: 冰淇淋 + kafuu_chino: 卡夫奇諾 + makizushi: 海苔卷壽司 + meat: 肉 + noodles: 麵條 + obento: 便當 + onigiri: 飯糰 + pancake: 鬆餅 + pasties: 餡餅 + peach: 桃子 + ramen: 拉麵 + sake: 日本清酒 + taiyaki: 鯛魚燒 + tea: 茶 + teacup: 茶杯 + wagashi: 和果子 + wine: 葡萄酒 + jam: 果醬 + pocky: 百奇 + bottled_water: 瓶裝水 + sweet_potato: 甘藷 + sweets: 糖果 + food: 食物 + food_in_mouth: 嘴裡有食物 + food_on_: 臉上有食物 + food_on_body: 身體上有食物 + food_print: 食物印花 + food_stand: 食品攤 + in_food: (角色)在食物裡 + chips: 薯片 + potato_chips: 薯片 + telstar: 泰事達牌足球 + sundae: 聖代 + tempura: 天婦羅 + + - name: 動物 + color: rgba(189, 182, 107, .4) + tags: + reptile: 爬行動物 + crow: 烏鴉 + bird: 鳥 + penguin: 企鵝 + chick: 小雞 + manjuu_(azur_lane): 蠻啾 + shell: 貝殼 + wriggle_nightbug: 蠕動夜蟲 + dragonfly: 蜻蜓 + mammal: 哺乳動物 + wolf: 狼 + 扶桑花: 馬 + whale: 鯨 + cat: 貓 + cat_teaser: 逗貓 + dog: 狗 + dog_tags: 狗牌 + fox: 狐狸 + bunny: 兔子 + snow_bunny: 雪兔 + stuffed_bunny: 兔子玩偶 + horse: 馬 + cow: 牛 + dragon: 龍 + loong: 中國龍 + eastern_dragon: 東方龍 + snake: 蛇 + slime: 史萊姆 + bear: 熊 + panda: 熊貓 + teddy_bear: 泰迪熊 + tiger: 老虎 + bat: 蝙蝠 + hamster: 倉鼠 + mouse: 老鼠 + squirrel: 松鼠 + + - name: 植物 + color: rgba(189, 182, 107, .4) + tags: + plant: 植物 + flower: 花 + vase: 花瓶 + bouquet: 花束 + flower_bloom: 花盛開 + plum_blossom: 梅花 + cherry_blossoms: 櫻花 + wisteria: 紫藤 + hibiscus: 芙蓉花 + hydrangea: 繡球花 + rose: 玫瑰 + spider_lily: 彼岸花 + lily: 百合花 + lotus: 蓮花 + bamboo: 竹 + entangled_plants: 纏結型植物 + orchid: 蘭花 + chrysanthemum: 菊花 + narcissu: 水仙 + tree: 樹 + branch: 樹枝 + forest: 森林 + pine_tree: 松樹 + palm_tree: 棕櫚樹 + maple_tree: 楓樹 + bush/shrub,: 灌木 + christmas_tree: 聖誕樹 + maple_leaf: 楓葉 + pumpkin: 南瓜 + jack-o'-lantern: 南瓜燈 + spring_onion: 大蔥 + +- name: 鏡頭 + groups: + - name: 鏡頭 + color: rgba(99, 201, 2, .4) + tags: + panorama: 全景 + landscape: 風景鏡頭(遠景) + wide_shot: 全景鏡頭(廣角鏡頭) + medium_shot: 中景鏡頭 + mid_shot: 中景鏡頭 + full_shot: 全身像 + bust: 半身像 + upper_body: 上半身 + lower_body: 下半身 + cowboy_shot: 上半身+上半大腿(牛仔鏡頭) + portrait: 肖像畫(臉+肩+偶爾再加胸) + profile: 側面肖像畫(portrait的側臉版) + + - name: 特寫鏡頭 + color: rgba(99, 201, 2, .4) + tags: + close-up: 特寫鏡頭 + macro_shot: 微距鏡頭 + inset: 插入其他鏡頭或圖片 + cross-section: 剖面圖 + x-ray: X射線 + solo_focus: 聚焦在單個人物(適合複雜場景) + xx_focus: 聚焦在xx上 + face_focus: 聚焦在面部 + eyes_focus: 聚焦在眼睛 + foot_focus: 聚焦在腳上 + hip_focus: 聚焦在臀部 + ass_focus: 聚焦在屁股上 + vehicle_focus: 聚焦在載具上 + between_legs: (強調)兩腿之間 + between_breasts: (突出)胸部 + between_fingers: (突出)指間 + peeking: 偷窺 + peeking_out: 偷窺(的姿態) + peeping: 偷窺(強調視角) + midriff_peek: 肚臍偷看 + armpit_peek: 腋窩偷看 + pussy_peek: 浦西偷看 + panty_peek: 內褲偷看 + pantyshot: 內褲走光 + caught: 被抓現行 + + - name: 其他構圖 + color: rgba(99, 201, 2, .4) + tags: + aerial: 空中 + turn_one's_back: 轉身 + upskirt: 裙底視角 + phone_screen: 手機螢幕 + multiple_views: 多視角分解 + mirror selfie: 對鏡自拍 + three-quarter view: 3/4視角 + + - name: 鏡頭角度 + color: rgba(99, 201, 2, .4) + tags: + front view: 正面視角 + from_side: 側面視角 + from_above: 從上方↘ + from_below: 從下方↗ + from_outside: 由室外向室內 + from_back: 後背視角 + from behind: 後背視角 + dynamic_angle: 動態角度 + cinematic_angle: 電影角度 + dutch angle: 傾斜角度 + foreshortening: 透視法 + fisheye: 遠景透視畫法 + + - name: 效果 + color: rgba(99, 201, 2, .4) + tags: + depth of field: 景深(協調人景) + lens_flare: 鏡頭光暈 + motion_blur: 運動導致的模糊 + motion_lines: 體現運動的線 + speed_lines: 速度線 + bokeh: 焦散 + chromatic_aberration: 色差 + overexposure: 過曝 + contour_deepening: 等高線強化 + + - name: 主角動作 + color: rgba(99, 201, 2, .4) + tags: + looking_at_viewer: 看向觀眾 + eye-contact: 眼神接觸 + eyeball: 盯著看 + stare: 凝視 + looking_back: 回眸 + gradient: 人物傾斜 + looking_down: 人物視角向下看↘ + looking_up: 人物視角抬頭看↗ + facing_away: 面向別處 + looking_to_the_side: 看向側面 + looking_away: 看著別處 + looking_ahead: 展望未來 + looking_afar: 遙望 + looking_outside: 向外看 + head_tilt: 歪頭 + head_down: 低頭 + sideways_glance: 輕輕向側面瞥 + upshirt: 從襯衫下方瞥 + upshorts: 從裙底瞥 + looking_at_another: 看著另一個 + looking_at_phone: 看手機 + looking_at_animal: 看著動物 + looking_at_mirror: 照鏡子 + looking_at_hand: 看著手 + looking_at_hands: 看著雙手 + looking_at_food: 看食物 + looking_at_screen: 看著螢幕 + +- name: 漢服 + groups: + - name: "唐風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, tang style outfits,: 唐風 + + - name: 上杉 + color: rgba(178, 33, 34, .4) + tags: + orange upper shan: 橙色上杉 + red upper shan: 紅色上杉 + green upper shan: 綠色上杉 + blue upper shan: 藍色上杉 + pink upper shan: 粉色上杉 + yellow upper shan: 黃色上杉 + white upper shan: 白色上杉 + light blue upper shan: 淡藍上杉 + light green upper shan: 淺綠上杉 + light red upper shan: 淺紅上杉 + cyan blue upper shan: 青藍上杉 + light purple upper shan: 淺紫上杉 + black with blue upper shan: 黑藍上杉 + white with orange upper shan: 橙白上杉 + pink with black upper shan: 粉黑上杉 + + - name: 長上杉 + color: rgba(178, 33, 34, .4) + tags: + orange long upper shan: 橙色 + red long upper shan: 紅色 + green long upper shan: 綠色 + blue long upper shan: 藍色 + pink long upper shan: 粉色 + yellow long upper shan: 黃色 + white long upper shan: 白色 + light blue long upper shan: 淡藍 + light green long upper shan: 淺綠 + light red long upper shan: 淺紅 + cyan blue long upper shan: 青藍 + light purple long upper shan: 淺紫 + black with blue long upper shan: 黑藍 + white with orange long upper shan: 橙白 + pink with black long upper shan: 粉黑 + + - name: 齊胸破裙 + color: rgba(178, 33, 34, .4) + tags: + white chest po skirt: 白色破裙 + red chest po skirt: 紅色破裙 + green chest po skirt: 綠色破裙 + blue chest po skirt: 藍色破裙 + pink chest po skirt: 粉色破裙 + purple chest po skirt: 紫色破裙 + multicolour chest po skirt: 彩色破裙 + purple with white chest po skirt: 紫白破裙 + white with yellow chest po skirt: 黃白破裙 + blue with white chest po skirt: 天藍破裙 + orange with white chest po skirt: 橙白破裙 + green with white chest po skirt: 灰豆綠破裙 + light orange with white chest po skirt: 淡黃白破裙 + pink with white chest po skirt: 粉白破裙 + white with pink chest po skirt: 白偏粉破裙 + + - name: 齊胸褶裙 + color: rgba(178, 33, 34, .4) + tags: + white chest pleated skirt: 白色褶裙 + red chest pleated skirt: 紅色褶裙 + green chest pleated skirt: 綠色褶裙 + blue chest pleated skirt: 藍色褶裙 + pink chest pleated skirt: 粉色褶裙 + purple chest pleated skirt: 紫色褶裙 + multicolour chest pleated skirt: 彩色褶裙 + purple with white chest pleated skirt: 紫白褶裙 + white with yellow chest pleated skirt: 黃白褶裙 + blue with white chest pleated skirt: 天藍褶裙 + orange with white chest pleated skirt: 橙白褶裙 + green with white chest pleated skirt: 灰豆綠褶裙 + light orange with white chest pleated skirt: 淡黃白褶裙 + pink with white chest pleated skirt: 粉白褶裙 + white with pink chest pleated skirt: 白偏粉褶裙 + + - name: 系帶 + color: rgba(178, 33, 34, .4) + tags: + green waistband: 綠色系帶 + yellow waistband: 黃色系帶 + red waistband: 紅色系帶 + pink waistband: 粉色系帶 + orange waistband: 橙色系帶 + light blue waistband: 淡藍系帶 + light green waistband: 綠白系帶 + green with yellow waistband: 黃綠系帶 + purple with white waistband: 紫白系帶 + red with white waistband: 紅白系帶 + red with black waistband: 紅黑系帶 + yellow with white waistband: 黃白系帶 + + - name: 披帛 + color: rgba(178, 33, 34, .4) + tags: + white pibo: 白色披帛 + orange pibo: 橙色披帛 + black pibo: 黑色披帛 + pink pibo: 粉色披帛 + red pibo: 紅色披帛 + purple pibo: 紫色披帛 + light green pibo: 淺綠披帛 + white with yellow pibo: 黃白披帛 + + - type: wrap + + - name: "宋風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, song style outfits,: 宋風 + + - name: 短衫 + color: rgba(178, 33, 34, .4) + tags: + purple short shan: 紫色短杉 + red short shan: 紅色短杉 + green short shan: 綠色短杉 + blue short shan: 藍色短杉 + pink short shan: 粉色短杉 + yellow short shan: 黃色短杉 + white short shan: 白色短杉 + light blue short shan: 淡藍短杉 + light green short shan: 淺綠短杉 + light red short shan: 淺紅短杉 + cyan blue short shan: 青藍短杉 + light purple short shan: 淺紫短杉 + black with blue short shan: 黑藍短杉 + white with yellow short shan: 黃白短杉 + light yellow with green with white short shan: 淺黃白綠短 + + - name: 長衫 + color: rgba(178, 33, 34, .4) + tags: + purple long shan: 紫色長杉 + red long shan: 紅色長杉 + green long shan: 綠色長杉 + blue long shan: 藍色長杉 + pink long shan: 粉色長杉 + yellow long shan: 黃色長杉 + white long shan: 白色長杉 + light blue long shan: 淡藍長杉 + light green long shan: 淺綠長杉 + light red long shan: 淺紅長杉 + cyan blue long shan: 青藍長杉 + light purple long shan: 淺紫長杉 + black with blue long shan: 黑藍長杉 + white with yellow long shan: 黃白長杉 + light yellow with green with white long shan: 淺黃白綠長 + + - name: 百褶裙 + color: rgba(178, 33, 34, .4) + tags: + white pleated skirt: 白裙 + red pleated skirt: 紅裙 + green pleated skirt: 綠裙 + blue pleated skirt: 藍裙 + pink pleated skirt: 粉裙 + light blue pleated skirt: 淺藍裙 + white golden pleated skirt: 白金裙 + gradient green pleated skirt: 漸變綠裙 + translucent white pleated skirt: 半透白裙 + red cyan gradient pleated skirt: 紅青漸變 + red green gradient pleated skirt: 紅綠漸變 + green with white pleated skirt: 白綠相間 + light yellow with green with white pleated skirt: 淺黃綠相間 + + - name: 宋抹 + color: rgba(178, 33, 34, .4) + tags: + orange songmo: 橙色宋抹 + red songmo: 紅色宋抹 + green songmo: 綠色宋抹 + blue songmo: 藍色宋抹 + pink songmo: 粉色宋抹 + yellow songmo: 黃色宋抹 + white songmo: 白色宋抹 + purple songmo: 紫色宋抹 + green floral songmo: 綠碎花宋抹 + purple floral songmo: 紫碎花宋抹 + cyan floral songmo: 青碎花宋抹 + + - type: wrap + + - name: "明風:" + color: rgba(178, 33, 34, .4) + tags: + hanfu, ming style outfits,: 明風 + + - name: 上衣 + color: rgba(178, 33, 34, .4) + tags: + short coat: 短袄 + long coat: 長袄 + + - name: 裙子 + color: rgba(178, 33, 34, .4) + tags: + mamian skirt: 馬面裙 + + - name: 領子 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 交領 + round collar: 圓領 + standing collar: 立領 + square collar: 方領 + + - name: 裝飾 + color: rgba(178, 33, 34, .4) + tags: + overlapping collar: 雲肩 + embroidery: 刺繡 + woven gold: 織金 + makeup flower: 妝花 + bufu: 補服 + +- name: 魔法系 + groups: + - name: 魔法1.0 + color: + tags: + ((water drops)),wet clothes,((beautiful detailed water)),((floating)),dynamic angle: 水魔法 + beautiful detailed glow, (detailed ice), beautiful detailed water: 冰魔法 + beautiful detailed glow,detailed ice,beautiful detailed water,(floating palaces:1.2),(ice crystal texture wings),(Iridescence and rainbow hair:2.5): 冰系改 + beautiful detailed glow,detailed ice,beautiful detailed water, (floating palaces:1.3),(((ice crystal texture wings))): 星冰樂 + ((detailed beautiful snow forest with trees)), ((snowflakes)), floating: 森林冰 + (((crystals texture Hair))),((beautiful detailed glass hair)),((glass shaped texture hand)),((crystallize texture body)),gem body,hands as clear as jewels,crystallization of clothes,((crystals texture skin)),sparkle, lens flare, light leaks,broken glass,detailed glass shaped clothes,beautiful detailed gemstone sky, gemstone sea, crystals texture flowers,((detailed crystallized clothing)): 結晶法 + beautiful detailed glow,((flames of war)),(((nuclear explosion behide))): 核爆法 + ((breeze)), flying splashes, flying petals, wind: 風魔法 + ((surrounded by heavy floating sand flow and floating sharp stones)),((((ink)))),((illustration)),((watercolor)): 流沙法 + (detailed light), ((lightning in hand)),lightning surrounds,(((lightning chain))): 雷電法 + (sunlight),(angel),dynamic angle, floating, wing, halo, floating white silk,(Holy Light),silver stars: 聖光法 + beautiful detailed pampas grass field, open hakama, surrounded by floating sakura, yellow full moon, beautiful detailed dark midnight sky, messy white long hair: 蘆名法 + beautiful and delicate water, the finest grass, very delicate light, nature, painting, water spray, breeze, flowers and grass meadow, near the water edge, (sunset, starry sky in a circle), randomly distributed clouds, river, splashing water, falling petals: 自然法 + (detailed light) , feather, leaves, nature, (sunlight), river, (forest),(bloom): 森林法 + floating and rainbow long hair,Iridescence and rainbow, beautiful detailed starry sky: 虹彩法 + chain ring, chain storm, dark chain,((wholeblack bloomer)), darkside, night, deep dark, darkness, ((dark clouds)),((ruins)),shadow, death garden: 暗鎖法 + beautiful detailed glow, floating ashes, beautiful and detailed explosion, red moon, fire, fire cloud, wings on fire, a cloudy sky, smoke of gunpowder, burning, black dress, dove of peace, (floating cloud:1.2): 火燒雲 + beautiful detailed glow, detailed ice, beautiful detailed water, (magic circle:1.2), (floating palaces:1.3): 城堡法 + (water bloom), (delicate glow), (breeze), long Flowers meadow,(((sunset)), (less stars form a circle), randomly distributed clouds, (rivers), (willows with branches falling into the water): 黃昏法 + ((colorful bubble)),(floating),detailed light: 泡泡法 + ((rose)), (vine), cage, bandage, red rope, (detail light), falling rose petals: 薔薇法 + (starry tornado:1.4), starry Nebula, beautiful detailed sky: 星空法 + ((moon)), starry sky, (lighting particle), fog, snow,(bloom): 月亮法 + beautiful detailed glow, detailed ice, beautiful detailed water, (cold full moon), snowflake, (floating cloud:1.2): 雪月法 + ((burning forest)), spark, light leaks, burning sky, flame, flames burning around, (flying sparks): 森火法 + ((destroyed)),explosion, buildings in disarray, The residual eaves DuanBi, cumulus, mouldy, floating, wind, Dead end machine,(broken robot),(Mechanical robot girl), in the rubble of a devastated city: 廢土法 + mecha clothes, robot girl, sliver bodysuit,((sliver)) and (broken) body: 戰甲法 + Extremely gorgeous metal style, Metal crown with ornate stripes, Various metals background, Sputtered molten iron, floating hair, Hair like melted metal, Clothes made of silver, Clothes with gold lace, flowing gold and silver, everything flowing and melt, flowing iron, flowing silver, lace flowing and melt: 黃金法 + mecha clothes, robot girl: 機娘法 + ink,(((bone))), (((ribs))), rose, black hair, blue eyes, greyscale, no shadow, simple background, bright skin: 死靈法 + (((gorgeous crystal armor))),(((crystal wings))),((altocumulus)),(clear_sky),(snow mountain),((flowery flowers)),(flowery bubbles),cloud map plane, crystal, crystal poppies,Brilliant light, thick_coating, glass tint,(watercolor): 水晶法 + ((an extremely delicate and beautiful)),floating, (detailed wet clothes), (detailed light),feather, nature, (sunlight), river, floating palace, beautiful and delicate water,(bloom),(shine): 水森法 + (blue spark),(red and blue hair),blue eyes, burning sky,flame,Rainbow in the sky,((Flames burning ice)),(((fire butterflies))),(((ice crystal texture wings))),(Flying sparks),(detailed ice),((a lot of luminous ice crystals)),((burning feathers)),(feathers made of ice),(frozen feathers),(((ice and fire together))): 冰火法 + (anger), dragon horns, (silver armor), metal, complex pattern, cape, indifference: 龍騎士 + ((full body)),(helpless),tear, crying,(((((falling from the sky))))),((Weathering With You)),((falling)),((face towards the sky)),(hair flows upwards),((disheveled hair)),(1 girl), floating, beautiful detailed sky: 墜落法 + ((underwater)),(beautiful detailed water),((coral)),dynamic angle, floating,(detailed light),floating hair,(splash),((fishes)),leaves dress, feather, nature,(sunlight),(underwater forest),(bloom),(detailed glow),drenched, seaweed, fish,(((Tyndall effect))): 水下法 + (extremely detailed CG unity 8k wallpaper),(((masterpiece))), (((best quality))), ((ultra-detailed)), (best illustration),(best shadow), ((an extremely delicate and beautiful)),dynamic angle,floating, fairyland,dynamic angle,sea of flowers,beautiful detailed garden,wind,classic,spring, (detailed light),feather, nature, (sunlight), river, forest,(((floating palace))),((the best building)),beautiful and delicate water,(painting),(sketch),(bloom),(shine): 秘境法 + (((masterpiece))), ((the best quality, super fine illustrations, beautiful and delicate water)), ((very delicate light)), ((nature, painting)), ((fine lighting, more transparent stars, high-quality snowflakes, high-quality mountains, very fine 8KCG wallpapers)), (plateau), (((snow mountain))), sunrise, randomly distributed clouds, (snow field), cliff, ((rotating star sky)), ((lake in mountain stream)), luminous particles: 攝影法 + 1980s (style),simple background, retro artstyle: 摩登法 + (white hair), red long hair, red eyes, (full body), (((with sword))), angry face, (beautiful detailed eyes), Blood drop,Blood fog, floating hair, disheveled hair, Splashing blood,(Bloodstain): 血魔法 + ((dragon)), ((dragon background)): 喚龍術 + hair fluttering in the wind,((mechanical arm armor)),((mechanical body armor)),riding motor, bodysuit,((ruins of city in war, fire, burning cars, burning buildings)),air force fleet in the sky: 戰姬法 + mecha clothes, robot girl, sliver bodysuit, dragon wings, ((a dragon stands behind the girl)), beautiful detailed sliver dragon armor: 龍機法 + ((Beautiful butterflies in detail)),((Beautiful stars in detail)),(((halter dress ))),particle,(Starry sky in beautiful detail),(Hazy fog),(Ruins of beautiful details),(((Standing on the surface of the sea))): 星蝶術 + blonde wavy hair, (shiny long hair), ((Gothic Lolita)), blue white skirt, ((short skirt)), black Headdress, bowknot, (((hair ornament))), (hair flower), Lace, cross-laced footwear, ribbon-trimmed sleeves, building architecture, ((gothic architecture)), starry sky, outdoors, church, (castle): 學院法 + walking, waves, wind,(((glistening light of waves))),(detailed sunset glow),(floating flow),((coral)),(Luminous),coast,(floating colorful bubbles),beautiful detailed sky,(fluorescence),detailed shadow,(conch),beautiful detailed water, starfish, meteor, rainbow,(seabirds),(glinting stars), (glowworm),(splash),detailed cloud, shell,(fireworks): 星霞海 + beautiful detailed sky, night, stars, (red plum blossom),((winter)),(((snowflakes))), ((red and white flowers)),(starry sky),(sitting),((colorful)),scenery, lantern,(starfall): 冬雪法 + + - name: 魔法1.5 + color: + tags: + ((((melt)))),(((((black and white melt))))),(((wear Black and white Taoist robes))),((((gold and silver lace)))),(((gold and silver lace lace))),(((flowing ((black)) and white background))),extremely detailed gorgeous tiara: 萬物熔爐 + Floating black ashes, Beautiful and detailed black, red moon, ((The black clouds)), (black Wings) , a black cloudy sky, burning, black dress, ((Black fog)), Red eyes, (black smoke), ((Black feathers floating in the air)),bat, (floating black cloud:1.5): 暗鴉法 + dynamic angle, finely detail, (bloom), (shine), glinting stars, ((((best detailed fireworks)))), ((((depth of field)))), (((hanabi))),(((backlight))),: 花火基礎 + stars in the eyes, messy floating hair, colored inner hair, Starry sky adorns hair, (lots of big colorful Bubble), (pearl), (Galaxy), depth of field: 星之彩 + stars in the eyes, messy floating hair, colored inner hair, Starry sky adorns hair, depth of field: 沉入星海 + dynamic angle, detailed wet clothes, blank stare, overexplosure, floating, black long straight, red eyes, aqua eyes, gradient eyes, ((blood)), white dress, frills, ((expressionless)), extremely beautiful detailed water, ((lying on the lake)), (bloodred water:1.5), (red background:1.3): 百溺法 + ((messy hair)),(grassland),(yellow eyes),incredibly absurdres,(gold hair),floating hair,Large number of environments,the medieval ,grace,prospect,water eyes,wind,breeze,god ray,lawn,Mountains and lakes in the distance,The sun shines through the trees,A vast expanse of grassland: 輝煌陽光法 + Starry sky adorns hair, sparkling anime eyes,beautiful detailed stars,blighting stars,emerging dark purple across with white hair,multicolored hair,beautiful detailed sky, beautiful detailed water, cinematic lighting, dramatic angle,: 星鬢法 + There are many scattered luminous petals,Hidden in the light yellow flowers,Depth of field,Many flying drops of water,Many scattered leaves,branch ,angle ,contour deepening,cinematic angle: 森羅法 + sunlight, extremely light, extremely clothes, Holy Light, dynamic angle, Light particle, very long hair, white hair, yellow eyes, glowing eyes, expressionless, ((light smile)), ((((white Tulle skirt)))), white silk, looking at viewer, angel wings, large wings, multiple wings, angel halo, (((starry sky))), dusk sky, Floating light spot, Lots of feathers: 星天使 + blonde hair, yellow eyes, white skin, mature female, sunrise, golden sky, magnificent architecture, beautiful detailed sky, overexposure, delicate gold metal decorations: 黃金律 + mechanical prosthesis,mecha coverage,emerging dark purple across with white hair,fluorescent purple,cool movement,rose red eyes,beatiful detailed cyberpunk city, hd semirealistic anime cg concept art digital painting: 機械姬 + (incredibly absurdres), (highly detailed beautiful fishtail:1.6), (((human hands))), (the lower body is a fish:1.9)AND(no human thigh:1.2), seaweed, (full body), (white seashell), (curved and slender fish tail), (the lower body is bare:1.1), {beautiful tailfin}, ((underwater)), (illustration), detailed water, ((fishes)), (floating), watercolor (medium), (small whirlpool), ((The sensation of water flowing)), (detailed scales on a mermaid): 人魚法 + Blood Mist, background Urban rooftop,despair,Blood Cherry Blossom,torn clothes,crying with eyes open,solo,Blood Rain,bandages,Gunpowder smoke,beautiful deatailed shadow, Splashing blood,dust,tyndall effect: 末日 + Space opera,Space port,robot arm,elbow gloves,night,glisten,stare,cyberpunk,((((citylight)))),science fiction,bodysuit,Mechanical armor headdress,(bare shoulders): 碎夢 + dynamic angle,rainbow hair,detailed cute anime face,((loli)),flower,cry,water,corrugated,flowers tire,broken glass,(broken screen),atlantis,transparent glass: 幻碎夢 + (white hair),(((red streaked hair))), red eyes, (((full body))),(red hair), (((((Hold a red sword))))), (angry face),((Blood drop)),((Blood fog)),light shafts, soft focus, ((Splashing blood))),Long hair,((Bloodstain)),Fighting stance,{{{{{watercolor (medium)}}}},(((masterpiece))),((white clock)),((ultradetailed)),((Covered in blood)),flowing hair,Exquisite Flame,dynamic angle, floating, (shine), extremely delicate and beautiful girls, bright skin, lying red petals,Holy lighting: 血改法 + dramatic shadows,black and white,monochrome,{{comic}},cross necklace,Cassock: 留影術 + ((ink)),(water color),bloom effect,detailed beautiful grassland with petal,flower,butterfly,necklace,smile,petal,(((surrounded by heavy floating petal flow))): 飄花法 diff --git a/i18n.json b/i18n.json new file mode 100644 index 0000000000000000000000000000000000000000..2c2371bd3c8025831ddcb32e2cb0edb7b0021e42 --- /dev/null +++ b/i18n.json @@ -0,0 +1,2418 @@ +{ + "default": "zh_CN", + "languages": [ + { + "code": "zh_CN", + "name": "简体中文 (中国)", + "lang": { + "need_api_key": "需要API Key", + "dont_need_api_key": "不需要API Key(不稳定)", + "prompt": "提示词", + "negative_prompt": "反向词", + "txt2img": "文生图", + "img2img": "图生图", + "please_enter_new_keyword": "请输入新关键词", + "local_language": "本地语言", + "increase_weight_add_parentheses": "增加关键词权重:叠加()", + "increase_weight_subtract_parentheses": "增加关键词权重:减少()", + "decrease_weight_add_brackets": "减弱关键词权重:叠加[]", + "decrease_weight_subtract_brackets": "减弱关键词权重:减少[]", + "translate_keyword_to_local_language": "翻译关键词到本地语言", + "copy_to_clipboard": "复制到剪贴板", + "disable_keyword": "禁用关键词", + "enable_keyword": "启用关键词", + "copy_keywords_to_clipboard": "复制所有关键词到剪贴板", + "translate_keywords_to_local_language": "翻译所有关键词到本地语言", + "translate_keyword_to_english": "翻译为英文", + "translate_all_keywords_to_english": "翻译所有非英文的关键词到英文", + "auto_translate_to_english": "输入新关键词后自动翻译到英文", + "auto_translate_to_local_language": "输入新关键词后自动翻译到本地语言", + "translate_api": "翻译接口", + "history": "历史记录", + "clear_history": "清除历史记录", + "clear_history_confirm": "确定要清除历史记录吗?", + "clear_history_success": "历史记录已清除", + "max_history_count": "最大历史记录数", + "favorite": "收藏列表", + "add_to_favorite": "添加到收藏", + "remove_from_favorite": "从收藏中移除", + "use": "使用", + "click_to_edit": "鼠标左键点击进行编辑", + "drop_to_order": "鼠标左键按住拖动进行排序", + "enter_to_save": "按回车键保存关键词", + "enter_to_add": "按回车键添加关键词", + "translate_api_not_found": "翻译API未找到", + "translate_language_not_support": "翻译语言不支持", + "translate_api_not_support": "翻译API不支持", + "unset_name": "未设置名称", + "no_history": "暂无历史记录", + "get_history_error": "获取历史记录失败", + "no_favorite": "暂无收藏", + "get_favorite_error": "获取收藏失败", + "hide_default_input_box": "隐藏默认输入框", + "show_default_input_box": "显示默认输入框", + "translate_test": "翻译测试", + "close": "关闭", + "save": "保存", + "delete_all_keywords": "删除所有关键词", + "delete_all_keywords_confirm": "确定要删除所有关键词吗?", + "whether_to_enable_tooltip": "是否启用每个功能的提示框,如果你已经熟练掌握本扩展的所有功能,可以取消勾选", + "delete_all_history": "删除所有历史记录", + "delete_all_history_confirm": "确定要删除所有历史记录吗?", + "please_enter_the_content_here": "请输入内容", + "not_api_key_desc": "免费的翻译接口不稳定,并不是每个接口都能在你的电脑中使用,请尽量申请api key使用稳定的官方接口", + "setting_desc": "设置:翻译API、自动翻译、显示/隐藏...", + "line_break_character": "换行符号", + "tagcomplete_translate_desc": "

使用 {{nameTagComplete}} 扩展中的 danbooru.csv 增强翻译功能,以达到节省网络请求、精准翻译的目的。

点击刷新按钮后,将扫描以下路径的csv文件:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

你可以前往git仓库 {{nameAssets}}/tags 下载csv文件。

", + "test": "测试", + "refresh": "刷新", + "not_enable": "不启用", + "translate_result": "{0} 的翻译结果是:{1}", + "not_found_csv_file": "没有找到csv文件", + "theme_extension": "主题:扩展插件样式", + "is_remove_space": "是否去除每个关键词逗号后的空格。
勾选后将自动去除空格(不便阅读)。
取消勾选则保留1个空格(影响TOKEN计数)。", + "theme": "主题", + "enhance": "增强", + "only_csv_on_auto": "自动翻译只使用CSV翻译(不使用网络翻译),手动点击翻译按钮才使用CSV加网络翻译。", + "one_translate_all_keywords": "一键翻译所有关键词", + "auto_translate": "输入新关键词后自动翻译", + "is_remove_last_comma": "是否去除Prompt最后的一个逗号。
勾选后Prompt输出为“aaa,bbb,ccc”。
取消勾选Prompt输出为“aaa,bbb,ccc,”。", + "is_keep_weight_zero": "是否保留关键词权重为0的格式。
勾选后关键词保留格式为“(text:0)”。
取消勾选将不保留格式为“test”。", + "is_keep_weight_one": "是否保留关键词权重为1的格式。
勾选后关键词保留格式为“(text:1)”。
取消勾选将不保留格式为“test”。", + "prompt_format": "Prompt格式", + "tagcomplete_translate_desc2": "选择了错误的CSV文件,将导致翻译结果为空,或者为“0”。更换文件后,请点击下方的测试按钮,然后检查翻译的结果是否正确的显示了你的本地语言。", + "dblclick_to_disable": "鼠标双击禁用/启用关键词", + "batch_operation": "批量操作", + "success": "成功!", + "failed": "失败!", + "packages_desc": "检测到部分python包没有安装或者未安装成功,你需要点击尝试重新安装。所有包安装成功后,所有功能才能够正常使用。
如果点击安装按钮后,还是无法成功安装。你需要手动复制命令并在终端执行。", + "installed": "已安装", + "not_install": "未安装", + "install": "安装", + "packages_installing": "开始安装......如需查询详细安装日志,请前往WebUI控制台查看。安装完成后,本窗口将自动关闭!", + "today_not_show": "今日不再显示本窗口", + "free": "免费", + "apply_for_free": "申请后免费使用", + "chatgpt_prompts_preset": "StableDiffusion是一款利用深度学习的文生图模型,支持通过使用提示词来产生新的图像,描述要包含或省略的元素。\n我在这里引入StableDiffusion算法中的Prompt概念,又被称为提示符。\n下面的prompt是用来指导AI绘画模型创作图像的。它们包含了图像的各种细节,如人物的外观、背景、颜色和光线效果,以及图像的主题和风格。这些prompt的格式经常包含括号内的加权数字,用于指定某些细节的重要性或强调。例如,\"(masterpiece:1.5)\"表示作品质量是非常重要的,多个括号也有类似作用。此外,如果使用中括号,如\"{blue hair:white hair:0.3}\",这代表将蓝发和白发加以融合,蓝发占比为0.3。\n以下是用prompt帮助AI模型生成图像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n\n仿照例子,给出一套详细描述以下内容的prompt。直接开始给出prompt不需要用自然语言描述:", + "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt", + "input_image_desc": "请输入图片描述,例如:一只猫坐在建筑物顶部,非常高清、非常真实的照片。", + "api_config": "API配置", + "image_desc": "图片描述", + "preset": "预设", + "ai_one": "发给AI的第一句话", + "ai_two": "发给AI的第二句话", + "restore_to_default": "恢复到系统默认", + "generate": "生成", + "generate_result": "生成结果", + "is_required": "{0} 必须输入!", + "is_not_dict": "{0} 必须是字典!", + "no_response_from": "没有从 {0} 收到返回内容!", + "request_error": "{0} 请求错误!", + "response_is_empty": "{0} 返回内容为空!", + "response_error": "{0} 返回内容错误!", + "install_success": "{0} 安装成功!", + "install_failed": "Error: {0} 安装失败!", + "translate_text_is_empty": "翻译文本为空!", + "about_desc": "关于、更新、帮助、文档", + "version": "版本", + "unknown_version": "未知版本", + "has_new_version": "有新的版本,请及时更新", + "wiki_desc": "安装教程、功能详解、使用方法、常见问题等等,详见:", + "switch_to_light_theme": "切换到浅色主题", + "switch_to_dark_theme": "切换到深色主题", + "offline_api": "离线翻译", + "initialize": "初始化", + "initialize_finished": "初始化完成!", + "initialize_failed": "初始化失败!", + "model_not_initialized": "模型未初始化", + "model_is_loading": "模型正在加载中...", + "download_model_desc": "

如果以前未下载过模型,程序将从 Hugging Face 自动下载模型。

模型有几G大小,对网络环境要求较高。

下载时间较长,请耐心等待,如果下载失败,请重新初始化。

你可以前往控制台查看详细日志和进度。

模型文件将下载到目录:extensions\\{{shortName}}\\models

", + "download_model_desc2": "

如果你没有较好的网络环境,或者需要离线下载,请查看:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "当网页加载后自动填充提示词", + "disabled": "禁止", + "last_input_prompt": "最后输入的提示词", + "is_break_before_wrap": "是否在 “BREAK” 关键词前面加换行符。
勾选后自动添加换行符。
取消勾选将不做任何处理。", + "is_break_after_wrap": "是否在 “BREAK” 关键词后面加换行符。
勾选后自动添加换行符。
取消勾选将不做任何处理。", + "show_panel": "显示面板", + "hide_panel": "隐藏面板", + "show_group_tags": "显示分组标签", + "hide_group_tags": "隐藏分组标签", + "tags-copyright": "提示词整合来源 路过银河(知乎)、未知作者(Google Drive)、互联网等等,感谢这些作者的无私奉献!", + "reset_default_color": "重置为默认颜色", + "clear_color": "清除颜色", + "tags_color": "标签颜色", + "keywords_blacklist": "关键词黑名单", + "blacklist_desc": "设置为黑名单的关键词,将被插件自动过滤!", + "prompt_blacklist_list": "提示词 黑名单列表", + "negative_prompt_blacklist_list": "反向提示词 黑名单列表", + "lora_blacklist_list": "Lora 黑名单列表", + "lycoris_blacklist_list": "Lycoris 黑名单列表", + "embedding_blacklist_list": "Embedding 黑名单列表", + "one_keyword_per_line": "每行一个关键词" + } + }, + { + "code": "zh_HK", + "name": "繁體中文 (中國香港)", + "lang": { + "need_api_key": "需要API Key", + "dont_need_api_key": "唔使API Key(唔太可靠)", + "prompt": "提示詞", + "negative_prompt": "反向詞", + "txt2img": "文生圖", + "img2img": "圖生圖", + "please_enter_new_keyword": "請輸入新關鍵詞", + "local_language": "本地語言", + "increase_weight_add_parentheses": "增加關鍵詞權重:疊加()", + "increase_weight_subtract_parentheses": "增加關鍵詞權重:減少()", + "decrease_weight_add_brackets": "減弱關鍵詞權重:疊加[]", + "decrease_weight_subtract_brackets": "減弱關鍵詞權重:減少[]", + "translate_keyword_to_local_language": "翻譯關鍵詞到本地語言", + "copy_to_clipboard": "複製到剪貼板", + "disable_keyword": "禁用關鍵詞", + "enable_keyword": "啟用關鍵詞", + "copy_keywords_to_clipboard": "複製所有關鍵詞到剪貼板", + "translate_keywords_to_local_language": "翻譯所有關鍵詞到本地語言", + "translate_keyword_to_english": "翻譯為英文", + "translate_all_keywords_to_english": "翻譯所有非英文的關鍵詞到英文", + "auto_translate_to_english": "輸入新關鍵詞後自動翻譯到英文", + "auto_translate_to_local_language": "輸入新關鍵詞後自動翻譯到本地語言", + "translate_api": "翻譯接口", + "history": "歷史記錄", + "clear_history": "清除歷史記錄", + "clear_history_confirm": "確定要清除歷史記錄嗎?", + "clear_history_success": "歷史記錄已清除", + "max_history_count": "最大歷史記錄數", + "favorite": "收藏列表", + "add_to_favorite": "添加到收藏", + "remove_from_favorite": "從收藏中移除", + "use": "使用", + "click_to_edit": "滑鼠左鍵點擊進行編輯", + "drop_to_order": "滑鼠左鍵按住拖動進行排序", + "enter_to_save": "按回車鍵保存關鍵詞", + "enter_to_add": "按回車鍵添加關鍵詞", + "translate_api_not_found": "翻譯API未找到", + "translate_language_not_support": "翻譯語言唔支援", + "translate_api_not_support": "翻譯API唔支援", + "unset_name": "未設置名稱", + "no_history": "暫無歷史記錄", + "get_history_error": "獲取歷史記錄失敗", + "no_favorite": "暫無收藏", + "get_favorite_error": "獲取收藏失敗", + "hide_default_input_box": "隱藏預設輸入框", + "show_default_input_box": "顯示預設輸入框", + "translate_test": "翻譯測試", + "close": "關閉", + "save": "保存", + "delete_all_keywords": "刪除所有關鍵詞", + "delete_all_keywords_confirm": "確定要刪除所有關鍵詞嗎?", + "whether_to_enable_tooltip": "是否啟用每個功能的提示框,如果你已經熟悉使用本擴展的所有功能,可以取消勾選", + "delete_all_history": "刪除所有歷史記錄", + "delete_all_history_confirm": "確定要刪除所有歷史記錄嗎?", + "please_enter_the_content_here": "請輸入內容", + "not_api_key_desc": "免費嘅翻譯接口唔太可靠,唔係每個接口都可以喺你嘅電腦中使用,請盡量申請api key使用穩定嘅官方接口", + "setting_desc": "設置:翻譯API、自動翻譯、顯示/隱藏...", + "line_break_character": "換行符號", + "tagcomplete_translate_desc": "

使用 {{nameTagComplete}} 擴展中的 danbooru.csv 增強翻譯功能,以達到節省網絡請求、精確翻譯的目的。

點擊刷新按鈕後,將掃描以下路徑的csv文件:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

你可以前往git倉庫 {{nameAssets}}/tags 下載csv文件。

", + "test": "測試", + "refresh": "刷新", + "not_enable": "不啟用", + "translate_result": "{0} 的翻譯結果是:{1}", + "not_found_csv_file": "沒有找到csv文件", + "theme_extension": "主題:擴展插件樣式", + "is_remove_space": "是否去除每個關鍵詞逗號後的空格。
勾選後將自動去除空格(不便閱讀)。
取消勾選則保留1個空格(影響TOKEN計數)。", + "theme": "主題", + "enhance": "增強", + "only_csv_on_auto": "自動翻譯僅使用CSV翻譯(不使用網路翻譯),需手動點擊翻譯按鈕才會使用CSV加網路翻譯。", + "one_translate_all_keywords": "一鍵翻譯所有關鍵詞", + "auto_translate": "輸入新關鍵詞後自動翻譯", + "is_remove_last_comma": "是否去除Prompt最後的一個逗號。
勾選後Prompt輸出為“aaa,bbb,ccc”。
取消勾選Prompt輸出為“aaa,bbb,ccc,”。", + "is_keep_weight_zero": "是否保留關鍵詞權重為0的格式。
勾選後關鍵詞保留格式為“(text:0)”。
取消勾選將不保留格式為“test”。", + "is_keep_weight_one": "是否保留關鍵詞權重為1的格式。
勾選後關鍵詞保留格式為“(text:1)”。
取消勾選將不保留格式為“test”。", + "prompt_format": "Prompt格式", + "tagcomplete_translate_desc2": "選擇了錯誤的CSV文件,將導致翻譯結果為空或為“0”。更換文件後,請點擊下方的測試按鈕,然後檢查翻譯的結果是否正確地顯示了您的本地語言。", + "dblclick_to_disable": "滑鼠雙擊禁用/啟用關鍵字", + "batch_operation": "批量操作", + "success": "成功!", + "failed": "失敗!", + "packages_desc": "檢測到部分python包沒有安裝或者未安裝成功,你需要點擊嘗試重新安裝。所有包安裝成功後,所有功能才能夠正常使用。
如果點擊安裝按鈕後,還是無法成功安裝。你需要手動複製命令並在終端執行。", + "installed": "已安裝", + "not_install": "未安裝", + "install": "安裝", + "packages_installing": "開始安裝......如需查詢詳細安裝日誌,請前往WebUI控制台查看。安裝完成後,本窗口將自動關閉!", + "today_not_show": "今日不再顯示本窗口", + "free": "免費", + "apply_for_free": "申請後免費使用", + "chatgpt_prompts_preset": "StableDiffusion是一款利用深度學習的文生圖模型,支持通過使用提示詞來產生新的圖像,描述要包含或省略的元素。\n我在這裡引入StableDiffusion算法中的Prompt概念,又被稱為提示符。\n下面的prompt是用來指導AI繪畫模型創作圖像的。它們包含了圖像的各種細節,如人物的外觀、背景、顏色和光線效果,以及圖像的主題和風格。這些prompt的格式經常包含括號內的加權數字,用於指定某些細節的重要性或強調。例如,\"(masterpiece:1.5)\"表示作品質量是非常重要的,多個括號也有類似作用。此外,如果使用中括號,如\"{blue hair:white hair:0.3}\",這代表將藍髮和白髮加以融合,藍髮佔比為0.3。\n以下是用prompt幫助AI模型生成圖像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n仿照例子,給出一套詳細描述以下內容的prompt。直接開始給出prompt不需要用自然語言描述:", + "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt", + "input_image_desc": "請輸入圖片描述,例如:一隻貓坐在建築物頂部,非常高清、非常真實的照片。", + "api_config": "API配置", + "image_desc": "圖片描述", + "preset": "預設", + "ai_one": "發給AI的第一句話", + "ai_two": "發給AI的第二句話", + "restore_to_default": "恢復到系統默認", + "generate": "生成", + "generate_result": "生成結果", + "is_required": "{0} 必須輸入!", + "is_not_dict": "{0} 必須是字典!", + "no_response_from": "沒有從 {0} 收到返回內容!", + "request_error": "{0} 請求錯誤!", + "response_is_empty": "{0} 返回內容為空!", + "response_error": "{0} 返回內容錯誤!", + "install_success": "{0} 安裝成功!", + "install_failed": "Error: {0} 安裝失敗!", + "translate_text_is_empty": "翻譯文本為空!", + "about_desc": "關於、更新、幫助、文件", + "version": "版本", + "unknown_version": "未知版本", + "has_new_version": "有新的版本,請及時更新", + "wiki_desc": "安裝教程、功能詳解、使用方法、常見問題等等,詳見:", + "switch_to_light_theme": "切換到淺色主題", + "switch_to_dark_theme": "切換到深色主題", + "offline_api": "離線翻譯", + "initialize": "初始化", + "initialize_finished": "初始化完成!", + "initialize_failed": "初始化失敗!", + "model_not_initialized": "模型未初始化", + "model_is_loading": "模型正在載入中...", + "download_model_desc": "

如果以前未下載過模型,程式將從 Hugging Face 自動下載模型。

模型有幾G大小,對網絡環境要求較高。

下載時間較長,請耐心等待,如果下載失敗,請重新初始化。

你可以前往控制台查看詳細日誌和進度。

模型文件將下載到目錄:extensions\\{{shortName}}\\models

", + "download_model_desc2": "

如果你沒有較好的網絡環境,或者需要離線下載,請查看:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "當網頁載入後自動填充提示詞", + "disabled": "禁止", + "last_input_prompt": "最後輸入的提示詞", + "is_break_before_wrap": "是否在“BREAK”關鍵詞前面加換行符。
勾選後自動添加換行符。
取消勾選將不做任何處理。", + "is_break_after_wrap": "是否在“BREAK”關鍵詞後面加換行符。
勾選後自動添加換行符。
取消勾選將不做任何處理。", + "show_panel": "顯示面板", + "hide_panel": "隱藏面板", + "show_group_tags": "顯示分組標籤", + "hide_group_tags": "隱藏分組標籤", + "tags-copyright": "提示詞整合來源 路过银河(知乎)、未知作者(Google Drive)、互聯網等等,感謝這些作者的無私奉獻!", + "reset_default_color": "重置為預設顏色", + "clear_color": "清除顏色", + "tags_color": "標籤顏色", + "keywords_blacklist": "關鍵詞黑名單", + "blacklist_desc": "設置為黑名單的關鍵詞,將被插件自動過濾!", + "prompt_blacklist_list": "提示詞 黑名單列表", + "negative_prompt_blacklist_list": "反向提示詞 黑名單列表", + "lora_blacklist_list": "Lora 黑名單列表", + "lycoris_blacklist_list": "Lycoris 黑名單列表", + "embedding_blacklist_list": "Embedding 黑名單列表", + "one_keyword_per_line": "每行一個關鍵詞" + } + }, + { + "code": "zh_TW", + "name": "繁体中文 (中國台灣)", + "lang": { + "need_api_key": "需要API Key", + "dont_need_api_key": "不需要API Key(不穩定)", + "prompt": "提示詞", + "negative_prompt": "反向詞", + "txt2img": "文生圖", + "img2img": "圖生圖", + "please_enter_new_keyword": "請輸入新關鍵詞", + "local_language": "本地語言", + "increase_weight_add_parentheses": "增加關鍵詞權重:疊加()", + "increase_weight_subtract_parentheses": "增加關鍵詞權重:減少()", + "decrease_weight_add_brackets": "減弱關鍵詞權重:疊加[]", + "decrease_weight_subtract_brackets": "減弱關鍵詞權重:減少[]", + "translate_keyword_to_local_language": "翻譯關鍵詞到本地語言", + "copy_to_clipboard": "複製到剪貼板", + "disable_keyword": "禁用關鍵詞", + "enable_keyword": "啟用關鍵詞", + "copy_keywords_to_clipboard": "複製所有關鍵詞到剪貼板", + "translate_keywords_to_local_language": "翻譯所有關鍵詞到本地語言", + "translate_keyword_to_english": "翻譯為英文", + "translate_all_keywords_to_english": "翻譯所有非英文的關鍵詞到英文", + "auto_translate_to_english": "輸入新關鍵詞後自動翻譯到英文", + "auto_translate_to_local_language": "輸入新關鍵詞後自動翻譯到本地語言", + "translate_api": "翻譯接口", + "history": "歷史記錄", + "clear_history": "清除歷史記錄", + "clear_history_confirm": "確定要清除歷史記錄嗎?", + "clear_history_success": "歷史記錄已清除", + "max_history_count": "最大歷史記錄數", + "favorite": "收藏列表", + "add_to_favorite": "添加到收藏", + "remove_from_favorite": "從收藏中移除", + "use": "使用", + "click_to_edit": "滑鼠左鍵點擊進行編輯", + "drop_to_order": "滑鼠左鍵按住拖動進行排序", + "enter_to_save": "按回車鍵保存關鍵詞", + "enter_to_add": "按回車鍵添加關鍵詞", + "translate_api_not_found": "翻譯API未找到", + "translate_language_not_support": "翻譯語言不支持", + "translate_api_not_support": "翻譯API不支持", + "unset_name": "未設置名稱", + "no_history": "暫無歷史記錄", + "get_history_error": "獲取歷史記錄失敗", + "no_favorite": "暫無收藏", + "get_favorite_error": "獲取收藏失敗", + "hide_default_input_box": "隱藏默認輸入框", + "show_default_input_box": "顯示默認輸入框", + "translate_test": "翻譯測試", + "close": "關閉", + "save": "保存", + "delete_all_keywords": "刪除所有關鍵詞", + "delete_all_keywords_confirm": "確定要刪除所有關鍵詞嗎?", + "whether_to_enable_tooltip": "是否啟用每個功能的提示框,如果你已經熟練掌握本擴展的所有功能,可以取消勾選", + "delete_all_history": "删除所有歷史記錄", + "delete_all_history_confirm": "確定要删除所有歷史記錄嗎?", + "please_enter_the_content_here": "請輸入內容", + "not_api_key_desc": "免費的翻譯介面不穩定,不是每一個介面都能在你的電腦上使用,建議申請API Key以使用穩定的官方介面。", + "setting_desc": "設置:翻譯API、自動翻譯、顯示/隱藏...", + "line_break_character": "換行字元", + "tagcomplete_translate_desc": "

使用 {{nameTagComplete}} 擴展中的 danbooru.csv 增強翻譯功能,以達到節省網路請求、精確翻譯的目的。

點擊重新整理按鈕後,將掃描以下路徑的csv檔案:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

你可以前往git儲存庫 {{nameAssets}}/tags 下載csv檔案。

", + "test": "測試", + "refresh": "重新整理", + "not_enable": "不啟用", + "translate_result": "{0} 的翻譯結果是:{1}", + "not_found_csv_file": "找不到csv檔案", + "theme_extension": "主題:擴充套件樣式", + "is_remove_space": "是否移除每個關鍵字逗號後的空格。
勾選後會自動移除空格(不易閱讀)。
取消勾選則保留 1 個空格(會影響 TOKEN 計數)。", + "theme": "主題", + "enhance": "增強", + "only_csv_on_auto": "自動翻譯僅使用CSV翻譯(不使用網路翻譯),需手動點擊翻譯按鈕才會使用CSV加網路翻譯。", + "one_translate_all_keywords": "一鍵翻譯所有關鍵詞", + "auto_translate": "輸入新關鍵詞後自動翻譯", + "is_remove_last_comma": "是否移除Prompt結尾的逗號。
勾選後Prompt輸出為“aaa,bbb,ccc”。
取消勾選Prompt輸出為“aaa,bbb,ccc,”。", + "is_keep_weight_zero": "是否保留關鍵詞權重為0的格式。
勾選後關鍵詞保留格式為“(text:0)”。
取消勾選將不保留格式為“test”。", + "is_keep_weight_one": "是否保留關鍵詞權重為1的格式。
勾選後關鍵詞保留格式為“(text:1)”。
取消勾選將不保留格式為“test”。", + "prompt_format": "Prompt格式", + "tagcomplete_translate_desc2": "選擇了錯誤的CSV檔案,會導致翻譯結果為空或“0”。更改檔案後,請點擊下方的測試按鈕,檢查是否正確顯示本地語言的翻譯結果。", + "dblclick_to_disable": "滑鼠雙擊禁用/啟用關鍵字", + "batch_operation": "批次操作", + "success": "成功!", + "failed": "失敗!", + "packages_desc": "偵測到部分python包沒有安裝或者未安裝成功,你需要點擊嘗試重新安裝。所有包安裝成功後,所有功能才能夠正常使用。
如果點擊安裝按鈕後,還是無法成功安裝。你需要手動複製命令並在終端執行。", + "installed": "已安裝", + "not_install": "未安裝", + "install": "安裝", + "packages_installing": "開始安裝......如需查詢詳細安裝日誌,請前往WebUI控制台查看。安裝完成後,本視窗將自動關閉!", + "today_not_show": "今日不再顯示本視窗", + "free": "免費", + "apply_for_free": "申請後免費使用", + "chatgpt_prompts_preset": "StableDiffusion是一款利用深度學習的文生圖模型,支持通過使用提示詞來產生新的圖像,描述要包含或省略的元素。\n我在這裡引入StableDiffusion算法中的Prompt概念,又被稱為提示符。\n下面的prompt是用來指導AI繪畫模型創作圖像的。它們包含了圖像的各種細節,如人物的外觀、背景、顏色和光線效果,以及圖像的主題和風格。這些prompt的格式經常包含括號內的加權數字,用於指定某些細節的重要性或強調。例如,\"(masterpiece:1.5)\"表示作品質量是非常重要的,多個括號也有類似作用。此外,如果使用中括號,如\"{blue hair:white hair:0.3}\",這代表將藍髮和白髮加以融合,藍髮佔比為0.3。\n以下是用prompt幫助AI模型生成圖像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n仿照例子,給出一套詳細描述以下內容的prompt。直接開始給出prompt不需要用自然語言描述:", + "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt", + "input_image_desc": "請輸入圖片描述,例如:一隻貓坐在建築物頂部,非常高清、非常真實的照片。", + "api_config": "API配置", + "image_desc": "圖片描述", + "preset": "預設", + "ai_one": "發給AI的第一句話", + "ai_two": "發給AI的第二句話", + "restore_to_default": "恢復到系統預設", + "generate": "生成", + "generate_result": "生成結果", + "is_required": "{0} 必須輸入!", + "is_not_dict": "{0} 必須是字典!", + "no_response_from": "沒有從 {0} 收到返回內容!", + "request_error": "{0} 請求錯誤!", + "response_is_empty": "{0} 返回內容為空!", + "response_error": "{0} 返回內容錯誤!", + "install_success": "{0} 安裝成功!", + "install_failed": "Error: {0} 安裝失敗!", + "translate_text_is_empty": "翻譯文本為空!", + "about_desc": "關於、更新、幫助、文件", + "version": "版本", + "unknown_version": "未知版本", + "has_new_version": "有新的版本,請及時更新", + "wiki_desc": "安裝教程、功能詳解、使用方法、常見問題等等,詳見:", + "switch_to_light_theme": "切換到淺色主題", + "switch_to_dark_theme": "切換到深色主題", + "offline_api": "離線翻譯", + "initialize": "初始化", + "initialize_finished": "初始化完成!", + "initialize_failed": "初始化失敗!", + "model_not_initialized": "模型未初始化", + "model_is_loading": "模型正在載入中...", + "download_model_desc": "

如果以前未下載過模型,程式將從 Hugging Face 自動下載模型。

模型有幾G大小,對網絡環境要求較高。

下載時間較長,請耐心等待,如果下載失敗,請重新初始化。

你可以前往控制台查看詳細日誌和進度。

模型檔案將下載到目錄:extensions\\{{shortName}}\\models

", + "download_model_desc2": "

如果你沒有較好的網絡環境,或者需要離線下載,請查看:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "當網頁載入後自動填充提示詞", + "disabled": "禁止", + "last_input_prompt": "最後輸入的提示詞", + "is_break_before_wrap": "是否在「BREAK」關鍵詞前面加換行符。
勾選後自動添加換行符。
取消勾選將不做任何處理。", + "is_break_after_wrap": "是否在「BREAK」關鍵詞後面加換行符。
勾選後自動添加換行符。
取消勾選將不做任何處理。", + "show_panel": "顯示面板", + "hide_panel": "隱藏面板", + "show_group_tags": "顯示分組標籤", + "hide_group_tags": "隱藏分組標籤", + "tags-copyright": "提示詞整合來源 路过银河(知乎)、未知作者(Google Drive)、互聯網等等,感謝這些作者的無私奉獻!", + "reset_default_color": "重置為預設顏色", + "clear_color": "清除顏色", + "tags_color": "標籤顏色", + "keywords_blacklist": "關鍵字黑名單", + "blacklist_desc": "設定為黑名單的關鍵字將被插件自動過濾!", + "prompt_blacklist_list": "提示詞 黑名單清單", + "negative_prompt_blacklist_list": "反向提示詞 黑名單清單", + "lora_blacklist_list": "Lora 黑名單清單", + "lycoris_blacklist_list": "Lycoris 黑名單清單", + "embedding_blacklist_list": "Embedding 黑名單清單", + "one_keyword_per_line": "每行一個關鍵字" + } + }, + { + "code": "en_US", + "name": "English (US)", + "lang": { + "need_api_key": "API Key Required", + "dont_need_api_key": "API Key Not Required (Unstable)", + "prompt": "Prompt", + "negative_prompt": "Negative Prompt", + "txt2img": "Text to Image", + "img2img": "Image to Image", + "please_enter_new_keyword": "Please Enter New Keyword", + "local_language": "Local Language", + "increase_weight_add_parentheses": "Increase Keyword Weight: Add ()", + "increase_weight_subtract_parentheses": "Increase Keyword Weight: Subtract ()", + "decrease_weight_add_brackets": "Decrease Keyword Weight: Add []", + "decrease_weight_subtract_brackets": "Decrease Keyword Weight: Subtract []", + "translate_keyword_to_local_language": "Translate Keyword to Local Language", + "copy_to_clipboard": "Copy to Clipboard", + "disable_keyword": "Disable Keyword", + "enable_keyword": "Enable Keyword", + "copy_keywords_to_clipboard": "Copy All Keywords to Clipboard", + "translate_keywords_to_local_language": "Translate All Keywords to Local Language", + "translate_keyword_to_english": "Translate to English", + "translate_all_keywords_to_english": "Translate All Non-English Keywords to English", + "auto_translate_to_english": "Automatically Translate to English After Entering New Keyword", + "auto_translate_to_local_language": "Automatically Translate to Local Language After Entering New Keyword", + "translate_api": "Translation API", + "history": "History", + "clear_history": "Clear History", + "clear_history_confirm": "Are you sure you want to clear the history?", + "clear_history_success": "History cleared", + "max_history_count": "Maximum History Count", + "favorite": "Favorites", + "add_to_favorite": "Add to Favorites", + "remove_from_favorite": "Remove from Favorites", + "use": "Use", + "click_to_edit": "Click Left Mouse Button to Edit", + "drop_to_order": "Hold Down Left Mouse Button to Drag and Sort", + "enter_to_save": "Press Enter to Save Keyword", + "enter_to_add": "Press Enter to Add Keyword", + "translate_api_not_found": "Translation API Not Found", + "translate_language_not_support": "Translation Language Not Supported", + "translate_api_not_support": "Translation API Not Supported", + "unset_name": "Name Not Set", + "no_history": "No History", + "get_history_error": "Failed to Get History", + "no_favorite": "No Favorites", + "get_favorite_error": "Failed to Get Favorites", + "hide_default_input_box": "Hide Default Input Box", + "show_default_input_box": "Show Default Input Box", + "translate_test": "Translate Test", + "close": "Close", + "save": "Save", + "delete_all_keywords": "Delete All Keywords", + "delete_all_keywords_confirm": "Are you sure you want to delete all keywords?", + "whether_to_enable_tooltip": "Enable Tooltips for Each Function. If You Are Familiar with All the Functions of This Extension, You Can Uncheck This Option.", + "delete_all_history": "Delete All History", + "delete_all_history_confirm": "Are you sure you want to delete all history?", + "please_enter_the_content_here": "Please enter content", + "not_api_key_desc": "Free translation interfaces are unstable, and not every interface can be used on your computer. Please apply for an API Key to use the stable official interface.", + "setting_desc": "Settings: Translation API, automatic translation, show/hide...", + "line_break_character": "Line break character", + "tagcomplete_translate_desc": "

Enhance translation function using danbooru.csv in {{nameTagComplete}} extension to achieve the purpose of saving network requests and accurate translation.

After clicking the refresh button, csv files from the following paths will be scanned:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

You can download csv files from git repository {{nameAssets}}/tags.

", + "test": "Test", + "refresh": "Refresh", + "not_enable": "Not enable", + "translate_result": "The translation result of {0} is: {1}", + "not_found_csv_file": "Csv file not found", + "theme_extension": "Theme: Extension Plugin Style", + "is_remove_space": "Whether to remove the spaces after each comma in the keyword.
Checking will automatically remove the spaces (difficult to read).
Unchecking will keep one space (affecting TOKEN count).", + "theme": "Theme", + "enhance": "Enhance", + "only_csv_on_auto": "Automatic translation uses only CSV translation (not network translation). To use both CSV and network translation, click the translate button manually.", + "one_translate_all_keywords": "Translate all keywords in one click", + "auto_translate": "Automatically translate after entering new keywords", + "is_remove_last_comma": "Remove the last comma in Prompt or not.
When selected, Prompt output is \"aaa,bbb,ccc\".
When unselected, Prompt output is \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Keep the format of keywords with a weight of 0 or not.
When selected, the keyword format is kept as \"(text:0)\".
When unselected, the format is not kept as \"test\".", + "is_keep_weight_one": "Keep the format of keywords with a weight of 1 or not.
When selected, the keyword format is kept as \"(text:1)\".
When unselected, the format is not kept as \"test\".", + "prompt_format": "Prompt Format", + "tagcomplete_translate_desc2": "Selecting the wrong CSV file will result in an empty or '0' translation. After changing the file, please click the test button below and check if the translated result is correctly displayed in your local language.", + "dblclick_to_disable": "Double-click to disable/enable keyword", + "batch_operation": "Batch operation", + "success": "Success!", + "failed": "Failed!", + "packages_desc": "Some packages of python are detected to have not been installed or installed unsuccessfully. You need to click to try reinstalling them. After all the packages are successfully installed, all the functions can work normally.
If you still cannot install them successfully after clicking the install button, you need to manually copy the command and execute it in the terminal.", + "installed": "Installed", + "not_install": "Not installed", + "install": "Install", + "packages_installing": "Starting to install......If you need to check the detailed installation log, please go to the WebUI console to view it. After the installation is completed, this window will close automatically!", + "today_not_show": "Do not show this window today", + "free": "Free", + "apply_for_free": "Apply for free use", + "chatgpt_prompts_preset": "StableDiffusion is a deep learning text-to-image model that generates images based on prompts. These prompts can specify the desired elements of the image, such as the appearance of characters, background, color and lighting effects, as well as the theme and style of the image. The prompts often contain weighted numbers in parentheses to indicate the importance or emphasis of certain details. For example, \"(masterpiece:1.5)\" indicates that the quality of the work is very important. Multiple parentheses also have similar effects. In addition, if square brackets are used, such as \"{blue hair:white hair:0.3}\", this represents the fusion of blue and white hair, with blue hair accounting for 0.3.\nHere is an example of using prompts to help an AI model generate an image: masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n\nFollowing the example, provide a set of prompts that detail the following content. Start the prompts directly without using natural language to describe them: ", + "use_chatgpt_gen_prompts": "Use ChatGPT to Generate Prompts", + "input_image_desc": "Please enter the image description, for example: a cat sitting on top of a building, a very high-definition, very authentic photo.", + "api_config": "API Configuration", + "image_desc": "Image Description", + "preset": "Preset", + "ai_one": "First Sentence Sent to AI", + "ai_two": "Second Sentence Sent to AI", + "restore_to_default": "Restore to System Default", + "generate": "Generate", + "generate_result": "Generate Result", + "is_required": "{0} is required!", + "is_not_dict": "{0} must be a dictionary!", + "no_response_from": "No response from {0}!", + "request_error": "{0} request error!", + "response_is_empty": "{0} response is empty!", + "response_error": "{0} response error!", + "install_success": "{0} installed successfully!", + "install_failed": "Error: {0} installation failed!", + "translate_text_is_empty": "Translation text is empty!", + "about_desc": "About, Updates, Help, Documentation", + "version": "Version", + "unknown_version": "Unknown Version", + "has_new_version": "There is a new version available, please update", + "wiki_desc": "Installation tutorial, detailed features, usage instructions, frequently asked questions, etc. See:", + "switch_to_light_theme": "Switch to Light Theme", + "switch_to_dark_theme": "Switch to Dark Theme", + "offline_api": "Offline Translation", + "initialize": "Initialize", + "initialize_finished": "Initialization Finished!", + "initialize_failed": "Initialization Failed!", + "model_not_initialized": "Model Not Initialized", + "model_is_loading": "Model is Loading...", + "download_model_desc": "

If the model has not been downloaded before, the program will automatically download the model from Hugging Face.

The model is several gigabytes in size and requires a high-speed internet connection.

The download may take a while, please be patient. If the download fails, please reinitialize.

You can check detailed logs and progress in the console.

The model files will be downloaded to the directory: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

If you do not have a good network environment or need to download offline, please view:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Auto-fill prompt when the webpage loads", + "disabled": "Disabled", + "last_input_prompt": "Last input prompt", + "is_break_before_wrap": "Whether to add a line break before the \"BREAK\" keyword.
When selected, a line break will be automatically added.
Deselecting will not perform any action.", + "is_break_after_wrap": "Whether to add a line break after the \"BREAK\" keyword.
When selected, a line break will be automatically added.
Deselecting will not perform any action.", + "show_panel": "Show Panel", + "hide_panel": "Hide Panel", + "show_group_tags": "Show Group Tags", + "hide_group_tags": "Hide Group Tags", + "tags-copyright": "Prompt words integration source from 路过银河(Zhihu)、unknown author(Google Drive)、internet, etc. Thanks to these selfless contributors!", + "reset_default_color": "Reset to Default Color", + "clear_color": "Clear Color", + "tags_color": "Tags Color", + "keywords_blacklist": "Keywords Blacklist", + "blacklist_desc": "Keywords set as blacklist will be automatically filtered by the plugin!", + "prompt_blacklist_list": "Prompt Blacklist List", + "negative_prompt_blacklist_list": "Negative Prompt Blacklist List", + "lora_blacklist_list": "Lora Blacklist", + "lycoris_blacklist_list": "Lycoris Blacklist", + "embedding_blacklist_list": "Embedding Blacklist", + "one_keyword_per_line": "One keyword per line" + } + }, + { + "code": "af_ZA", + "name": "Afrikaans (South Africa)", + "lang": {} + }, + { + "code": "sq_AL", + "name": "Shqip (Shqipëria)", + "lang": {} + }, + { + "code": "am_ET", + "name": "አማርኛ (ኢትዮጵያ)", + "lang": {} + }, + { + "code": "ar_SA", + "name": "العربية (السعودية)", + "lang": { + "need_api_key": "يتطلب مفتاح API", + "dont_need_api_key": "لا يتطلب مفتاح API (غير مستقر)", + "prompt": "كلمات تذكيرية", + "negative_prompt": "كلمات تذكيرية عكسية", + "txt2img": "النص إلى الصورة", + "img2img": "الصورة إلى صورة", + "please_enter_new_keyword": "يرجى إدخال كلمة مفتاحية جديدة", + "local_language": "اللغة المحلية", + "increase_weight_add_parentheses": "زيادة وزن الكلمات الرئيسية: تراكب ()", + "increase_weight_subtract_parentheses": "زيادة وزن الكلمات الرئيسية: انقاص ()", + "decrease_weight_add_brackets": "تقليل وزن الكلمات الرئيسية: تراكب []", + "decrease_weight_subtract_brackets": "تقليل وزن الكلمات الرئيسية: انقاص []", + "translate_keyword_to_local_language": "ترجمة الكلمة المفتاحية إلى اللغة المحلية", + "copy_to_clipboard": "نسخ إلى الحافظة", + "disable_keyword": "تعطيل الكلمة المفتاحية", + "enable_keyword": "تمكين الكلمة المفتاحية", + "copy_keywords_to_clipboard": "نسخ جميع الكلمات المفتاحية إلى الحافظة", + "translate_keywords_to_local_language": "ترجمة جميع الكلمات المفتاحية إلى اللغة المحلية", + "translate_keyword_to_english": "ترجمة إلى الإنجليزية", + "translate_all_keywords_to_english": "ترجمة جميع الكلمات المفتاحية غير الإنجليزية إلى الإنجليزية", + "auto_translate_to_english": "الترجمة التلقائية إلى الإنجليزية بعد إدخال كلمة مفتاحية جديدة", + "auto_translate_to_local_language": "الترجمة التلقائية إلى اللغة المحلية بعد إدخال كلمة مفتاحية جديدة", + "translate_api": "واجهة برمجة الترجمة", + "history": "سجل الأحداث", + "clear_history": "مسح سجل الأحداث", + "clear_history_confirm": "هل أنت متأكد من رغبتك في مسح سجل الأحداث؟", + "clear_history_success": "تم مسح سجل الأحداث بنجاح", + "max_history_count": "أقصى عدد لسجل الأحداث", + "favorite": "القائمة المفضلة", + "add_to_favorite": "إضافة إلى قائمة المفضلة", + "remove_from_favorite": "إزالة من قائمة المفضلة", + "use": "استخدام", + "click_to_edit": "انقر بزر الماوس الأيسر للتحرير", + "drop_to_order": "استمر في النقر والسحب اليساري للترتيب", + "enter_to_save": "اضغط على مفتاح Enter لحفظ الكلمة المفتاحية", + "enter_to_add": "اضغط على مفتاح Enter لإضافة كلمة مفتاحية", + "translate_api_not_found": "لم يتم العثور على واجهة برمجة الترجمة", + "translate_language_not_support": "اللغة المراد ترجمتها غير مدعومة", + "translate_api_not_support": "واجهة برمجة الترجمة غير مدعومة", + "unset_name": "لم يتم تعيين الاسم", + "no_history": "لا يوجد سجل أحداث", + "get_history_error": "فشل في الحصول على سجل الأحداث", + "no_favorite": "لا يوجد قائمة مفضلة", + "get_favorite_error": "فشل في الحصول على قائمة المفضلة", + "hide_default_input_box": "إخفاء مربع الإدخال الافتراضي", + "show_default_input_box": "إظهار مربع الإدخال الافتراضي", + "translate_test": "اختبار الترجمة", + "close": "إغلاق", + "save": "حفظ", + "delete_all_keywords": "حذف جميع الكلمات المفتاحية", + "delete_all_keywords_confirm": "هل أنت متأكد من رغبتك في حذف جميع الكلمات المفتاحية؟", + "whether_to_enable_tooltip": "هل تريد تمكين نافذة تلميح لكل وظيفة؟ إذا كنت قد اكتسبت الخبرة المطلوبة في استخدام هذه الإضافة، يمكنك إلغاء التحديد", + "delete_all_history": "حذف جميع السجلات", + "delete_all_history_confirm": "هل أنت متأكد من رغبتك في حذف جميع السجلات؟", + "please_enter_the_content_here": "يرجى إدخال المحتوى", + "not_api_key_desc": "الواجهات البرمجية المجانية للترجمة غير مستقرة، ولا يمكن استخدام كل الواجهات على جهاز الكمبيوتر الخاص بك. يرجى طلب مفتاح واجهة برمجة التطبيقات لاستخدام الواجهة الرسمية والمستقرة.", + "setting_desc": "الإعدادات: واجهة برمجة تطبيقات الترجمة، الترجمة التلقائية، إظهار/إخفاء...", + "line_break_character": "حرف فاصل السطر", + "tagcomplete_translate_desc": "

تحسين وظيفة الترجمة باستخدام ملف danbooru.csv في امتداد {{nameTagComplete}} لتحقيق الهدف من توفير طلبات الشبكة والترجمة الدقيقة.

بعد النقر على زر التحديث ، سيتم فحص ملفات csv من المسارات التالية:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

يمكنك تنزيل ملفات csv من مستودع git {{nameAssets}}/tags.

", + "test": "اختبار", + "refresh": "تحديث", + "not_enable": "غير مفعّل", + "translate_result": "نتيجة ترجمة {0} هي: {1}", + "not_found_csv_file": "لم يتم العثور على ملف csv", + "theme_extension": "السمة: نمط الوظيفة التكميلية للامتداد", + "is_remove_space": "هل ترغب في إزالة المسافات بعد كل فاصلة في الكلمات الرئيسية؟
إذا حددت هذا الخيار، سيتم إزالة المسافات تلقائياً (مما يجعل النص أقل وضوحاً).
إذا لم تحدد هذا الخيار سيتم الاحتفاظ بمسافة واحدة (مما يؤثر على عداد رموز الرموز).", + "theme": "الموضوع", + "enhance": "تحسين", + "only_csv_on_auto": "الترجمة الآلية تستخدم فقط ترجمة CSV (لا تستخدم الترجمة عبر الشبكة) ، والنقر على زر الترجمة يدويًا لاستخدام الترجمة CSV والترجمة عبر الشبكة.", + "one_translate_all_keywords": "ترجم جميع الكلمات الرئيسية بنقرة واحدة", + "auto_translate": "ترجم تلقائيًا بعد إدخال كلمات رئيسية جديدة", + "prompt_format": "تنسيق Prompt", + "tagcomplete_translate_desc2": "اختيار ملف CSV الخاطئ سيؤدي إلى ترجمة فارغة أو '0'. بعد تغيير الملف، يرجى النقر على زر الاختبار أدناه والتحقق مما إذا كانت النتيجة المترجمة تعرض بشكل صحيح بلغتك المحلية.", + "dblclick_to_disable": "انقر مرتين لتعطيل / تمكين الكلمة الرئيسية", + "batch_operation": "العمليات الجماعية", + "success": "نجاح!", + "failed": "فشل!", + "packages_desc": "تم اكتشاف بعض حزم Python بأنها لم تتم تثبيتها أو لم تتم التثبيت بنجاح. تحتاج إلى النقر لمحاولة إعادة التثبيت. بعد تثبيت جميع الحزم بنجاح ، يمكن لجميع الوظائف العمل بشكل طبيعي.
إذا لم تتمكن من تثبيتها بنجاح بعد النقر على زر التثبيت ، فيجب عليك نسخ الأمر يدويًا وتنفيذه في وحدة المعالجة المركزية.", + "installed": "مثبت", + "not_install": "غير مثبت", + "install": "تثبيت", + "packages_installing": "بدء التثبيت ...... إذا كنت بحاجة إلى التحقق من سجل التثبيت التفصيلي ، فيرجى الانتقال إلى وحدة التحكم WebUI لعرضه. بعد الانتهاء من التثبيت ، سيتم إغلاق هذه النافذة تلقائيًا!", + "today_not_show": "لا تظهر هذه النافذة اليوم", + "free": "مجاني", + "apply_for_free": "التقديم للاستخدام المجاني", + "use_chatgpt_gen_prompts": "استخدم ChatGPT لتوليد Prompts", + "input_image_desc": "يرجى إدخال وصف الصورة ، على سبيل المثال: قطة جالسة على سطح مبنى ، صورة عالية الدقة ومفصلة جدًا.", + "api_config": "تكوين API", + "image_desc": "وصف الصورة", + "preset": "مسبق التعيين", + "ai_one": "الجملة الأولى المرسلة إلى AI", + "ai_two": "الجملة الثانية المرسلة إلى AI", + "restore_to_default": "استعادة لافتراضيات النظام", + "generate": "توليد", + "generate_result": "نتيجة التوليد", + "is_required": "يجب إدخال {0}!", + "is_not_dict": "{0} يجب أن يكون قاموسًا!", + "no_response_from": "لم يتم الرد من {0}!", + "request_error": "خطأ في طلب {0}!", + "response_is_empty": "الرد من {0} فارغ!", + "response_error": "خطأ في الرد من {0}!", + "install_success": "تم تثبيت {0} بنجاح!", + "install_failed": "خطأ: فشل تثبيت {0}!", + "translate_text_is_empty": "نص الترجمة فارغ!", + "about_desc": "حول، تحديثات، مساعدة، وثائق", + "version": "الإصدار", + "unknown_version": "إصدار غير معروف", + "has_new_version": "هناك إصدار جديد متاح، يرجى التحديث في الوقت المناسب", + "wiki_desc": "دليل التثبيت، التفاصيل الكاملة للميزات، تعليمات الاستخدام، الأسئلة الشائعة، وما إلى ذلك. انظر:", + "switch_to_light_theme": "التبديل إلى النمط الفاتح", + "switch_to_dark_theme": "التبديل إلى النمط الداكن", + "offline_api": "الترجمة بدون اتصال", + "initialize": "بدء التشغيل", + "initialize_finished": "انتهاء التهيئة", + "initialize_failed": "فشل في التهيئة", + "model_not_initialized": "النموذج غير مهيأ", + "model_is_loading": "جاري تحميل النموذج...", + "download_model_desc": "

إذا لم يتم تنزيل النموذج من قبل، سيقوم البرنامج بتنزيل النموذج تلقائيًا من Hugging Face.

النموذج بحجم عدة جيجابايت ويتطلب اتصال إنترنت عالي السرعة.

قد يستغرق التنزيل وقتًا طويلاً، يرجى الانتظار بصبر. إذا فشل التنزيل، يُرجى إعادة التهيئة.

يمكنك التحقق من السجلات والتقدم التفصيلي في وحدة التحكم.

سيتم تنزيل ملفات النموذج إلى الدليل: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

إذا لم يكن لديك بيئة شبكة جيدة أو إذا كنت بحاجة إلى التنزيل دون اتصال، يرجى التحقق:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "تعبئة تلقائية للتلميح عند تحميل الصفحة", + "disabled": "معطل", + "last_input_prompt": "آخر تلميح مدخل", + "is_break_before_wrap": "هل ترغب في إضافة فاصلة قبل كلمة \"BREAK\".
عند تحديدها، سيتم إضافة فاصلة تلقائيًا.
عند إلغاء التحديد، لن يتم أي تغيير.", + "is_break_after_wrap": "هل ترغب في إضافة فاصلة بعد كلمة \"BREAK\".
عند تحديدها، سيتم إضافة فاصلة تلقائيًا.
عند إلغاء التحديد، لن يتم أي تغيير.", + "show_panel": "عرض اللوحة", + "hide_panel": "إخفاء اللوحة", + "show_group_tags": "عرض علامات المجموعة", + "hide_group_tags": "إخفاء علامات المجموعة", + "tags-copyright": "مصدر دمج كلمات التلميح من 路过银河(Zhihu)، مؤلف غير معروف (جوجل درايف)، الإنترنت، وما إلى ذلك. شكرًا لهؤلاء المساهمين الذين يعملون بلا مقابل!", + "reset_default_color": "إعادة تعيين اللون الافتراضي", + "clear_color": "مسح اللون", + "tags_color": "لون العلامات", + "keywords_blacklist": "قائمة الكلمات الرئيسية المحظورة", + "blacklist_desc": "تُعد الكلمات المحظورة المُعينة كقائمة سوداء ستتم تصفيتها تلقائيًا بواسطة المكوِّن الإضافي!", + "prompt_blacklist_list": "قائمة الكلمات المحظورة للتلميح", + "negative_prompt_blacklist_list": "قائمة الكلمات المحظورة للتلميح السلبي", + "lora_blacklist_list": "قائمة Lora السوداء", + "lycoris_blacklist_list": "قائمة Lycoris السوداء", + "embedding_blacklist_list": "قائمة Embedding السوداء", + "one_keyword_per_line": "كلمة رئيسية واحدة في كل سطر" + } + }, + { + "code": "hy_AM", + "name": "Հայերեն (Հայաստան)", + "lang": {} + }, + { + "code": "as_IN", + "name": "অসমীয়া (ভাৰত)", + "lang": {} + }, + { + "code": "az_Latn_AZ", + "name": "Azərbaycan dili (Latın, Azərbaycan)", + "lang": {} + }, + { + "code": "bn_BD", + "name": "বাংলা (বাংলাদেশ)", + "lang": {} + }, + { + "code": "ba_RU", + "name": "Башҡорт (Россия)", + "lang": {} + }, + { + "code": "eu_ES", + "name": "Euskara (Espainia)", + "lang": {} + }, + { + "code": "bs_Latn_BA", + "name": "Bosanski (Latinski, Bosna i Hercegovina)", + "lang": {} + }, + { + "code": "bg_BG", + "name": "Български (България)", + "lang": {} + }, + { + "code": "ca_ES", + "name": "Català (Espanya)", + "lang": {} + }, + { + "code": "hr_HR", + "name": "Hrvatski (Hrvatska)", + "lang": {} + }, + { + "code": "cs_CZ", + "name": "Čeština (Česká republika)", + "lang": {} + }, + { + "code": "da_DK", + "name": "Dansk (Danmark)", + "lang": {} + }, + { + "code": "prs_AF", + "name": "درى (افغانستان)", + "lang": {} + }, + { + "code": "dv_MV", + "name": "ދިވެހިބަސް (ދިވެހިރާއްޖެ)", + "lang": {} + }, + { + "code": "nl_NL", + "name": "Nederlands (Nederland)", + "lang": {} + }, + { + "code": "et_EE", + "name": "Eesti (Eesti)", + "lang": {} + }, + { + "code": "fo_FO", + "name": "Føroyskt (Føroyar)", + "lang": {} + }, + { + "code": "fj_FJ", + "name": "vosa Vakaviti (Viti)", + "lang": {} + }, + { + "code": "fil_PH", + "name": "Filipino (Pilipinas)", + "lang": {} + }, + { + "code": "fi_FI", + "name": "Suomi (Suomi)", + "lang": {} + }, + { + "code": "fr_FR", + "name": "Français (France)", + "lang": { + "need_api_key": "Clé API requise", + "dont_need_api_key": "Pas besoin de clé API (instable)", + "prompt": "Mot d'indice", + "negative_prompt": "Mot d'indice négatif", + "txt2img": "Texte vers image", + "img2img": "Image vers image", + "please_enter_new_keyword": "Veuillez entrer un nouveau mot-clé", + "local_language": "Langue locale", + "increase_weight_add_parentheses": "Augmenter le poids des mots clés : ajouter ()", + "increase_weight_subtract_parentheses": "Augmenter le poids des mots clés : soustraire ()", + "decrease_weight_add_brackets": "Diminuer le poids des mots clés : ajouter []", + "decrease_weight_subtract_brackets": "Diminuer le poids des mots clés : soustraire []", + "translate_keyword_to_local_language": "Traduire le mot-clé dans la langue locale", + "copy_to_clipboard": "Copier dans le presse-papiers", + "disable_keyword": "Désactiver le mot-clé", + "enable_keyword": "Activer le mot-clé", + "copy_keywords_to_clipboard": "Copier tous les mots clés dans le presse-papiers", + "translate_keywords_to_local_language": "Traduire tous les mots clés dans la langue locale", + "translate_keyword_to_english": "Traduire en anglais", + "translate_all_keywords_to_english": "Traduire tous les mots clés non-anglais en anglais", + "auto_translate_to_english": "Traduire automatiquement en anglais après avoir entré un nouveau mot-clé", + "auto_translate_to_local_language": "Traduire automatiquement dans la langue locale après avoir entré un nouveau mot-clé", + "translate_api": "API de traduction", + "history": "Historique", + "clear_history": "Effacer l'historique", + "clear_history_confirm": "Êtes-vous sûr de vouloir effacer l'historique ?", + "clear_history_success": "L'historique a bien été effacé", + "max_history_count": "Nombre maximum d'éléments dans l'historique", + "favorite": "Favoris", + "add_to_favorite": "Ajouter aux favoris", + "remove_from_favorite": "Retirer des favoris", + "use": "Utiliser", + "click_to_edit": "Cliquez avec le bouton gauche de la souris pour éditer", + "drop_to_order": "Maintenez le bouton gauche de la souris enfoncé et faites glisser pour réorganiser", + "enter_to_save": "Appuyez sur Entrée pour enregistrer le mot-clé", + "enter_to_add": "Appuyez sur Entrée pour ajouter un mot-clé", + "translate_api_not_found": "API de traduction introuvable", + "translate_language_not_support": "Langue de traduction non prise en charge", + "translate_api_not_support": "API de traduction non prise en charge", + "unset_name": "Nom non défini", + "no_history": "Aucun historique", + "get_history_error": "Erreur lors de la récupération de l'historique", + "no_favorite": "Aucun favori", + "get_favorite_error": "Erreur lors de la récupération des favoris", + "hide_default_input_box": "Masquer la boîte de saisie par défaut", + "show_default_input_box": "Afficher la boîte de saisie par défaut", + "translate_test": "Test de traduction", + "close": "Fermer", + "save": "Enregistrer", + "delete_all_keywords": "Supprimer tous les mots clés", + "delete_all_keywords_confirm": "Êtes-vous sûr de vouloir supprimer tous les mots clés ?", + "whether_to_enable_tooltip": "Voulez-vous activer les info-bulles de chaque fonction ? Si vous maîtrisez déjà toutes les fonctions de cette extension, vous pouvez décocher cette option", + "delete_all_history": "Supprimer tout l'historique", + "delete_all_history_confirm": "Êtes-vous sûr de vouloir supprimer tout l'historique ?", + "please_enter_the_content_here": "Veuillez entrer le contenu", + "not_api_key_desc": "Les interfaces de traduction gratuites sont instables et toutes les interfaces ne peuvent pas être utilisées sur votre ordinateur. Veuillez demander une clé d'API pour utiliser l'interface officielle stable.", + "setting_desc": "Paramètres : API de traduction, traduction automatique, afficher/masquer...", + "line_break_character": "Caractère de saut de ligne", + "tagcomplete_translate_desc": "

Améliorer la fonction de traduction en utilisant le fichier danbooru.csv dans l'extension {{nameTagComplete}} pour atteindre l'objectif d'économiser les demandes réseau et la traduction précise.

Après avoir cliqué sur le bouton Actualiser, les fichiers csv des chemins suivants seront analysés :

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

Vous pouvez télécharger des fichiers csv à partir du dépôt git {{nameAssets}}/tags.

", + "test": "Test", + "refresh": "Actualiser", + "not_enable": "Non activé", + "translate_result": "Le résultat de la traduction de {0} est : {1}", + "not_found_csv_file": "Fichier csv non trouvé", + "theme_extension": "Thème : Style de plugin d'extension", + "is_remove_space": "Indique si les espaces après chaque virgule dans le mot-clé doivent être supprimés.
La sélection automatique supprime les espaces (difficiles à lire).
La désélection conserve un espace (affectant la comptabilisation des TOKEN).", + "theme": "Thème", + "enhance": "Améliorer", + "only_csv_on_auto": "La traduction automatique utilise uniquement la traduction CSV (pas de traduction réseau). Pour utiliser à la fois la traduction CSV et la traduction réseau, cliquez sur le bouton de traduction manuellement.", + "one_translate_all_keywords": "Traduire tous les mots clés en un clic", + "auto_translate": "Traduire automatiquement après avoir saisi de nouveaux mots clés", + "is_remove_last_comma": "Supprimer ou non la dernière virgule dans Prompt.
Lorsqu'elle est sélectionnée, la sortie Prompt est \"aaa,bbb, ccc\".
Lorsqu'elle n'est pas sélectionnée, la sortie Prompt est \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Conserver ou non le format des mots clés ayant un poids de 0.
Lorsqu'elle est sélectionnée, le format du mot clé est conservé sous la forme de \"(text:0)\".
Lorsqu'elle n'est pas sélectionnée, le format n'est pas conservé sous la forme de \"test\".", + "is_keep_weight_one": "Conserver ou non le format des mots clés ayant un poids de 1.
Lorsqu'elle est sélectionnée, le format du mot clé est conservé sous la forme de \"(text:1)\".
Lorsqu'elle n'est pas sélectionnée, le format n'est pas conservé sous la forme de \"test\".", + "prompt_format": "Format du prompt", + "tagcomplete_translate_desc2": "Sélectionner le mauvais fichier CSV entraînera une traduction vide ou '0'. Après avoir changé le fichier, veuillez cliquer sur le bouton de test ci-dessous et vérifier si le résultat traduit est correctement affiché dans votre langue locale.", + "dblclick_to_disable": "Double-cliquez pour désactiver/activer le mot-clé", + "batch_operation": "Opération en lot", + "success": "Réussite!", + "failed": "Échec!", + "packages_desc": "Certains packages de python sont détectés comme non installés ou installés de manière infructueuse. Vous devez cliquer pour essayer de les réinstaller. Après que tous les packages sont installés avec succès, toutes les fonctions peuvent fonctionner normalement.
Si vous ne pouvez toujours pas les installer avec succès après avoir cliqué sur le bouton d'installation, vous devez copier la commande manuellement et l'exécuter dans le terminal.", + "installed": "Installé", + "not_install": "Non installé", + "install": "Installer", + "packages_installing": "Démarrage de l'installation ...... Si vous avez besoin de vérifier le journal d'installation détaillé, veuillez aller sur la console WebUI pour le consulter. Après l'installation, cette fenêtre se fermera automatiquement !", + "today_not_show": "Ne pas afficher cette fenêtre aujourd'hui", + "free": "Gratuit", + "apply_for_free": "Demande d'utilisation gratuite", + "use_chatgpt_gen_prompts": "Utiliser ChatGPT pour générer des prompts", + "input_image_desc": "Veuillez entrer la description de l'image, par exemple : un chat assis sur le toit d'un bâtiment, une photo très haute définition, très authentique.", + "api_config": "Configuration de l'API", + "image_desc": "Description de l'image", + "preset": "Préréglage", + "ai_one": "Première phrase envoyée à l'IA", + "ai_two": "Deuxième phrase envoyée à l'IA", + "restore_to_default": "Restaurer les paramètres par défaut du système", + "generate": "Générer", + "generate_result": "Résultat de la génération", + "is_required": "{0} est requis !", + "is_not_dict": "{0} doit être un dictionnaire !", + "no_response_from": "Aucune réponse de {0} !", + "request_error": "Erreur de requête {0} !", + "response_is_empty": "La réponse de {0} est vide !", + "response_error": "Erreur de réponse de {0} !", + "install_success": "{0} installé avec succès !", + "install_failed": "Erreur : échec de l'installation de {0} !", + "translate_text_is_empty": "Le texte de traduction est vide !", + "about_desc": "À propos, Mises à jour, Aide, Documentation", + "version": "Version", + "unknown_version": "Version inconnue", + "has_new_version": "Une nouvelle version est disponible, veuillez mettre à jour", + "wiki_desc": "Tutoriel d'installation, fonctionnalités détaillées, instructions d'utilisation, questions fréquentes, etc. Voir :", + "switch_to_light_theme": "Passer au thème clair", + "switch_to_dark_theme": "Passer au thème sombre", + "offline_api": "Traduction hors ligne", + "initialize": "Initialiser", + "initialize_finished": "Initialisation terminée!", + "initialize_failed": "Échec de l'initialisation!", + "model_not_initialized": "Modèle non initialisé", + "model_is_loading": "Chargement du modèle en cours...", + "download_model_desc": "

Si le modèle n'a pas été téléchargé auparavant, le programme le téléchargera automatiquement depuis Hugging Face.

Le modèle est de plusieurs gigaoctets et nécessite une connexion Internet haut débit.

Le téléchargement peut prendre un certain temps, veuillez patienter. Si le téléchargement échoue, veuillez réinitialiser.

Vous pouvez consulter les journaux détaillés et l'avancement dans la console.

Les fichiers du modèle seront téléchargés dans le répertoire : extensions\\{{shortName}}\\models

", + "download_model_desc2": "

Si vous n'avez pas un bon environnement réseau ou si vous avez besoin de télécharger hors ligne, veuillez vérifier :

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Prompt de remplissage automatique lorsque la page se charge", + "disabled": "Désactivé", + "last_input_prompt": "Dernier prompt d'entrée", + "is_break_before_wrap": "Ajouter un saut de ligne avant le mot clé \"BREAK\".
Lorsqu'il est sélectionné, un saut de ligne sera automatiquement ajouté.
La désélection n'effectuera aucune action.", + "is_break_after_wrap": "Ajouter un saut de ligne après le mot clé \"BREAK\".
Lorsqu'il est sélectionné, un saut de ligne sera automatiquement ajouté.
La désélection n'effectuera aucune action.", + "show_panel": "Afficher le panneau", + "hide_panel": "Masquer le panneau", + "show_group_tags": "Afficher les balises de groupe", + "hide_group_tags": "Masquer les balises de groupe", + "tags-copyright": "Source d'intégration des mots d'invite provenant de 路过银河(Zhihu)、auteur inconnu(Google Drive)、internet, etc. Merci à ces contributeurs altruistes !", + "reset_default_color": "Réinitialiser la couleur par défaut", + "clear_color": "Effacer la couleur", + "tags_color": "Couleur des étiquettes", + "keywords_blacklist": "Liste noire des mots-clés", + "blacklist_desc": "Les mots-clés définis dans la liste noire seront automatiquement filtrés par le plugin !", + "prompt_blacklist_list": "Liste de mots d'invite interdits", + "negative_prompt_blacklist_list": "Liste négative de mots d'invite interdits", + "lora_blacklist_list": "Liste noire Lora", + "lycoris_blacklist_list": "Liste noire Lycoris", + "embedding_blacklist_list": "Liste noire d'embedding", + "one_keyword_per_line": "Un mot-clé par ligne" + } + }, + { + "code": "fr_CA", + "name": "Français (Canada)", + "lang": {} + }, + { + "code": "gl_ES", + "name": "Galego (España)", + "lang": {} + }, + { + "code": "ka_GE", + "name": "ქართული (საქართველო)", + "lang": {} + }, + { + "code": "de_DE", + "name": "Deutsch (Deutschland)", + "lang": { + "need_api_key": "API-Schlüssel erforderlich", + "dont_need_api_key": "Kein API-Schlüssel erforderlich (instabil)", + "prompt": "Eingabeaufforderung", + "negative_prompt": "Negativ Eingabeaufforderung", + "txt2img": "Text zu Bild", + "img2img": "Bild zu Bild", + "please_enter_new_keyword": "Bitte geben Sie ein neues Schlüsselwort ein", + "local_language": "Lokale Sprache", + "increase_weight_add_parentheses": "Schlüsselwortgewicht erhöhen: () hinzufügen", + "increase_weight_subtract_parentheses": "Schlüsselwortgewicht erhöhen: () entfernen", + "decrease_weight_add_brackets": "Schlüsselwortgewicht verringern: [] hinzufügen", + "decrease_weight_subtract_brackets": "Schlüsselwortgewicht verringern: [] entfernen", + "translate_keyword_to_local_language": "Schlüsselwort in die lokale Sprache übersetzen", + "copy_to_clipboard": "In die Zwischenablage kopieren", + "disable_keyword": "Schlüsselwort deaktivieren", + "enable_keyword": "Schlüsselwort aktivieren", + "copy_keywords_to_clipboard": "Alle Schlüsselwörter in die Zwischenablage kopieren", + "translate_keywords_to_local_language": "Alle Schlüsselwörter in die lokale Sprache übersetzen", + "translate_keyword_to_english": "In Englisch übersetzen", + "translate_all_keywords_to_english": "Alle nicht englischen Schlüsselwörter ins Englische übersetzen", + "auto_translate_to_english": "Nach Eingabe eines neuen Schlüsselworts automatisch ins Englische übersetzen", + "auto_translate_to_local_language": "Nach Eingabe eines neuen Schlüsselworts automatisch in die lokale Sprache übersetzen", + "translate_api": "Übersetzungs-API", + "history": "Verlauf", + "clear_history": "Verlauf löschen", + "clear_history_confirm": "Möchten Sie den Verlauf wirklich löschen?", + "clear_history_success": "Verlauf erfolgreich gelöscht", + "max_history_count": "Maximale Anzahl von Einträgen im Verlauf", + "favorite": "Favoriten", + "add_to_favorite": "Zu Favoriten hinzufügen", + "remove_from_favorite": "Aus Favoriten entfernen", + "use": "Anwenden", + "click_to_edit": "Linksklick zur Bearbeitung", + "drop_to_order": "Linksklick halten und ziehen, um zu sortieren", + "enter_to_save": "Drücken Sie die Eingabetaste, um das Schlüsselwort zu speichern", + "enter_to_add": "Drücken Sie die Eingabetaste, um ein Schlüsselwort hinzuzufügen", + "translate_api_not_found": "Übersetzungs-API nicht gefunden", + "translate_language_not_support": "Übersetzungssprache wird nicht unterstützt", + "translate_api_not_support": "Übersetzungs-API wird nicht unterstützt", + "unset_name": "Name nicht festgelegt", + "no_history": "Kein Verlauf vorhanden", + "get_history_error": "Fehler beim Abrufen des Verlaufs", + "no_favorite": "Keine Favoriten vorhanden", + "get_favorite_error": "Fehler beim Abrufen der Favoriten", + "hide_default_input_box": "Standard-Eingabefeld ausblenden", + "show_default_input_box": "Standard-Eingabefeld anzeigen", + "translate_test": "Übersetzungstest", + "close": "Schließen", + "save": "Speichern", + "delete_all_keywords": "Alle Schlüsselwörter löschen", + "delete_all_keywords_confirm": "Möchten Sie wirklich alle Schlüsselwörter löschen?", + "whether_to_enable_tooltip": "Soll jeder Funktionshinweis aktiviert werden? Wenn Sie mit allen Funktionen dieser Erweiterung vertraut sind, können Sie das Kontrollkästchen deaktivieren.", + "delete_all_history": "Alle Verlaufseinträge löschen", + "delete_all_history_confirm": "Möchten Sie wirklich alle Verlaufseinträge löschen?", + "please_enter_the_content_here": "Bitte Inhalt eingeben", + "not_api_key_desc": "Kostenlose Übersetzungs-Schnittstellen sind instabil, und nicht jede Schnittstelle kann auf Ihrem Computer verwendet werden. Bitte beantragen Sie einen API-Schlüssel, um die stabile offizielle Schnittstelle zu verwenden.", + "setting_desc": "Einstellungen: Übersetzungs-API, automatische Übersetzung, Anzeigen/Ausblenden...", + "line_break_character": "Zeilenumbruch-Zeichen", + "tagcomplete_translate_desc": "

Verbessern Sie die Übersetzungsfunktion mit der danbooru.csv in der Erweiterung {{nameTagComplete}}, um das Ziel zu erreichen, Netzwerkanforderungen zu sparen und präzise Übersetzungen durchzuführen.

Nach dem Klicken auf die Aktualisierungsschaltfläche werden csv-Dateien aus den folgenden Pfaden gescannt:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

Sie können csv-Dateien aus dem Git-Repository {{nameAssets}}/tags herunterladen.

", + "test": "Testen", + "refresh": "Aktualisieren", + "not_enable": "Nicht aktiviert", + "translate_result": "Das Übersetzungsergebnis von {0} lautet: {1}", + "not_found_csv_file": "Csv-Datei nicht gefunden", + "theme_extension": "Thema: Erweiterungs-Plugin-Stil", + "is_remove_space": "Gibt an, ob die Leerzeichen nach jedem Komma im Schlüsselwort entfernt werden sollen.
Durch das Aktivieren wird die Leerzeichen automatisch entfernt (schwer zu lesen).
Wenn diese Option deaktiviert ist, wird ein Leerzeichen beibehalten (was sich auf die TOKEN-Zählung auswirkt).", + "theme": "Thema", + "enhance": "Verbessern", + "only_csv_on_auto": "Die automatische Übersetzung verwendet nur die CSV-Übersetzung (keine Netzwerkübersetzung). Um sowohl die CSV- als auch die Netzwerkübersetzung zu verwenden, klicken Sie manuell auf die Übersetzungsschaltfläche.", + "one_translate_all_keywords": "Alle Schlüsselwörter mit einem Klick übersetzen", + "auto_translate": "Automatisch übersetzen, nachdem neue Schlüsselwörter eingegeben wurden", + "is_remove_last_comma": "Das letzte Komma in Prompt entfernen oder nicht.
Wenn ausgewählt, wird der Prompt-Ausgang als \"aaa,bbb,ccc\" ausgegeben.
Wenn nicht ausgewählt, wird der Prompt-Ausgang als \"aaa,bbb,ccc,\" ausgegeben.", + "is_keep_weight_zero": "Das Format von Schlüsselwörtern mit einem Gewicht von 0 beibehalten oder nicht.
Wenn ausgewählt, wird das Schlüsselwortformat als \"(text:0)\" beibehalten.
Wenn nicht ausgewählt, wird das Format nicht als \"test\" beibehalten.", + "is_keep_weight_one": "Das Format von Schlüsselwörtern mit einem Gewicht von 1 beibehalten oder nicht.
Wenn ausgewählt, wird das Schlüsselwortformat als \"(text:1)\" beibehalten.
Wenn nicht ausgewählt, wird das Format nicht als \"test\" beibehalten.", + "prompt_format": "Prompt-Format", + "tagcomplete_translate_desc2": "Die Auswahl der falschen CSV-Datei führt zu einer leeren oder '0' Übersetzung. Nachdem Sie die Datei geändert haben, klicken Sie bitte auf die Test-Schaltfläche unten und prüfen Sie, ob das übersetzte Ergebnis korrekt in Ihrer lokalen Sprache angezeigt wird.", + "dblclick_to_disable": "Doppelklicken zum Deaktivieren/Aktivieren des Schlüsselworts", + "batch_operation": "Massenoperation", + "success": "Erfolg!", + "failed": "Fehlgeschlagen!", + "packages_desc": "Einige Pakete von Python werden erkannt, dass sie nicht installiert oder erfolglos installiert wurden. Sie müssen klicken, um sie erneut zu installieren. Nachdem alle Pakete erfolgreich installiert wurden, können alle Funktionen normal funktionieren.
Wenn Sie sie nach dem Klicken auf die Install-Schaltfläche immer noch nicht erfolgreich installieren können, müssen Sie den Befehl manuell kopieren und ihn im Terminal ausführen.", + "installed": "Installiert", + "not_install": "Nicht installiert", + "install": "Installieren", + "packages_installing": "Starte die Installation......Wenn Sie das detaillierte Installationsprotokoll überprüfen müssen, gehen Sie bitte zur WebUI-Konsole, um es anzuzeigen. Nachdem die Installation abgeschlossen ist, wird dieses Fenster automatisch geschlossen!", + "today_not_show": "Diese Fenster heute nicht anzeigen", + "free": "Kostenlos", + "apply_for_free": "Für kostenlose Nutzung bewerben", + "use_chatgpt_gen_prompts": "Verwenden von ChatGPT zur Generierung von Prompts", + "input_image_desc": "Bitte geben Sie die Bildbeschreibung ein, zum Beispiel: Eine Katze sitzt auf dem Dach eines Gebäudes, ein sehr hochauflösendes, sehr authentisches Foto.", + "api_config": "API-Konfiguration", + "image_desc": "Bildbeschreibung", + "preset": "Voreinstellung", + "ai_one": "Erster Satz, der an die AI gesendet wird", + "ai_two": "Zweiter Satz, der an die AI gesendet wird", + "restore_to_default": "Auf werkseitige Voreinstellungen zurücksetzen", + "generate": "Generieren", + "generate_result": "Generiertes Ergebnis", + "is_required": "{0} ist erforderlich!", + "is_not_dict": "{0} muss ein Wörterbuch sein!", + "no_response_from": "Keine Antwort von {0} erhalten!", + "request_error": "{0} Anfragefehler!", + "response_is_empty": "{0} Antwort ist leer!", + "response_error": "{0} Antwortfehler!", + "install_success": "{0} erfolgreich installiert!", + "install_failed": "Fehler: {0} Installation fehlgeschlagen!", + "translate_text_is_empty": "Übersetzungstext ist leer!", + "about_desc": "Über, Updates, Hilfe, Dokumentation", + "version": "Version", + "unknown_version": "Unbekannte Version", + "has_new_version": "Es ist eine neue Version verfügbar, bitte aktualisieren", + "wiki_desc": "Installationsanleitung, detaillierte Funktionen, Verwendungshinweise, häufig gestellte Fragen usw. Siehe:", + "switch_to_light_theme": "Zum hellen Thema wechseln", + "switch_to_dark_theme": "Zum dunklen Thema wechseln", + "offline_api": "Offline-Übersetzung", + "initialize": "Initialisieren", + "initialize_finished": "Initialisierung abgeschlossen!", + "initialize_failed": "Initialisierung fehlgeschlagen!", + "model_not_initialized": "Modell nicht initialisiert", + "model_is_loading": "Modell wird geladen...", + "download_model_desc": "

Wenn das Modell zuvor nicht heruntergeladen wurde, lädt das Programm das Modell automatisch von Hugging Face herunter.

Das Modell ist mehrere Gigabyte groß und erfordert eine schnelle Internetverbindung.

Der Download kann eine Weile dauern, bitte haben Sie Geduld. Wenn der Download fehlschlägt, initialisieren Sie bitte erneut.

Sie können detaillierte Protokolle und den Fortschritt in der Konsole überprüfen.

Die Modelldateien werden in das Verzeichnis heruntergeladen: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

Wenn Sie keine gute Netzwerkumgebung haben oder offline herunterladen müssen, überprüfen Sie bitte:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Automatischer Eingabeaufforderung beim Laden der Webseite", + "disabled": "Deaktiviert", + "last_input_prompt": "Letzte Eingabeaufforderung", + "is_break_before_wrap": "Ob vor dem Schlüsselwort \"BREAK\" ein Zeilenumbruch hinzugefügt werden soll.
Wenn ausgewählt, wird automatisch ein Zeilenumbruch hinzugefügt.
Durch Abwählen wird keine Aktion durchgeführt.", + "is_break_after_wrap": "Ob nach dem Schlüsselwort \"BREAK\" ein Zeilenumbruch hinzugefügt werden soll.
Wenn ausgewählt, wird automatisch ein Zeilenumbruch hinzugefügt.
Durch Abwählen wird keine Aktion durchgeführt.", + "show_panel": "Panel anzeigen", + "hide_panel": "Panel ausblenden", + "show_group_tags": "Gruppentags anzeigen", + "hide_group_tags": "Gruppentags ausblenden", + "tags-copyright": "Quelle für die Integration von Hinweiswörtern von 路过银河(Zhihu)、unbekannter Autor(Google Drive)、Internet usw. Vielen Dank an diese selbstlosen Beitragenden!", + "reset_default_color": "Auf Standardfarbe zurücksetzen", + "clear_color": "Farbe löschen", + "tags_color": "Tag-Farbe", + "keywords_blacklist": "Schwarze Liste der Schlüsselwörter", + "blacklist_desc": "Schlüsselwörter, die als schwarze Liste festgelegt sind, werden automatisch vom Plugin gefiltert!", + "prompt_blacklist_list": "Liste der gesperrten Eingabeaufforderungen", + "negative_prompt_blacklist_list": "Liste der negativen gesperrten Eingabeaufforderungen", + "lora_blacklist_list": "Schwarze Liste Lora", + "lycoris_blacklist_list": "Schwarze Liste Lycoris", + "embedding_blacklist_list": "Schwarze Liste der Einbettung", + "one_keyword_per_line": "Ein Schlüsselwort pro Zeile" + } + }, + { + "code": "el_GR", + "name": "Ελληνικά (Ελλάδα)", + "lang": {} + }, + { + "code": "gu_IN", + "name": "ગુજરાતી (ભારત)", + "lang": {} + }, + { + "code": "ht_HT", + "name": "Kreyòl ayisyen (Ayiti)", + "lang": {} + }, + { + "code": "he_IL", + "name": "עברית (ישראל)", + "lang": {} + }, + { + "code": "hi_IN", + "name": "हिन्दी (भारत)", + "lang": {} + }, + { + "code": "mww_Latn_US", + "name": "Hmong Daw (Latn, United States)", + "lang": {} + }, + { + "code": "hu_HU", + "name": "Magyar (Magyarország)", + "lang": {} + }, + { + "code": "is_IS", + "name": "Íslenska (Ísland)", + "lang": {} + }, + { + "code": "id_ID", + "name": "Bahasa Indonesia (Indonesia)", + "lang": {} + }, + { + "code": "ikt_CA", + "name": "Inuktitut (Kanatami)", + "lang": {} + }, + { + "code": "iu_Latn_CA", + "name": "Inuktitut (Latin, Canada)", + "lang": {} + }, + { + "code": "iu_CA", + "name": "ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕᒥ)", + "lang": {} + }, + { + "code": "ga_IE", + "name": "Gaeilge (Éire)", + "lang": {} + }, + { + "code": "it_IT", + "name": "Italiano (Italia)", + "lang": { + "need_api_key": "API Key necessaria", + "dont_need_api_key": "Non è necessario l'API Key (instabile)", + "prompt": "Suggerimento", + "negative_prompt": "Suggerimento inverso", + "txt2img": "Testo in immagine", + "img2img": "Immagine in immagine", + "please_enter_new_keyword": "Inserisci una nuova parola chiave", + "local_language": "Lingua locale", + "increase_weight_add_parentheses": "Aumento del peso della parola chiave: somma ()", + "increase_weight_subtract_parentheses": "Aumento del peso della parola chiave: sottrazione ()", + "decrease_weight_add_brackets": "Diminuzione del peso della parola chiave: somma []", + "decrease_weight_subtract_brackets": "Diminuzione del peso della parola chiave: sottrazione []", + "translate_keyword_to_local_language": "Traduci parola chiave nella lingua locale", + "copy_to_clipboard": "Copia negli appunti", + "disable_keyword": "Disattiva parola chiave", + "enable_keyword": "Abilita parola chiave", + "copy_keywords_to_clipboard": "Copia tutte le parole chiave negli appunti", + "translate_keywords_to_local_language": "Traduci tutte le parole chiave nella lingua locale", + "translate_keyword_to_english": "Traduci in inglese", + "translate_all_keywords_to_english": "Traduci tutte le parole chiave non in inglese in inglese", + "auto_translate_to_english": "Traduci automaticamente in inglese dopo aver inserito una nuova parola chiave", + "auto_translate_to_local_language": "Traduci automaticamente nella lingua locale dopo aver inserito una nuova parola chiave", + "translate_api": "API di traduzione", + "history": "Storico", + "clear_history": "Elimina storico", + "clear_history_confirm": "Sei sicuro di voler eliminare lo storico?", + "clear_history_success": "Storico eliminato con successo", + "max_history_count": "Numero massimo di voci nello storico", + "favorite": "Preferiti", + "add_to_favorite": "Aggiungi ai preferiti", + "remove_from_favorite": "Rimuovi dai preferiti", + "use": "Usa", + "click_to_edit": "Clicca con il pulsante sinistro per modificare", + "drop_to_order": "Trascina con il pulsante sinistro per ordinare", + "enter_to_save": "Premi il tasto Invio per salvare la parola chiave", + "enter_to_add": "Premi il tasto Invio per aggiungere la parola chiave", + "translate_api_not_found": "API di traduzione non trovata", + "translate_language_not_support": "La lingua di traduzione non è supportata", + "translate_api_not_support": "L'API di traduzione non è supportata", + "unset_name": "Nome non impostato", + "no_history": "Nessuno storico presente", + "get_history_error": "Errore nel recupero dello storico", + "no_favorite": "Nessun preferito presente", + "get_favorite_error": "Errore nel recupero dei preferiti", + "hide_default_input_box": "Nascondi la casella di input predefinita", + "show_default_input_box": "Mostra la casella di input predefinita", + "translate_test": "Test di traduzione", + "close": "Chiudi", + "save": "Salva", + "delete_all_keywords": "Elimina tutte le parole chiave", + "delete_all_keywords_confirm": "Sei sicuro di voler eliminare tutte le parole chiave?", + "whether_to_enable_tooltip": "Abilitare o meno i suggerimenti per ogni funzione. Se sei già esperto di tutte le funzionalità dell'estensione, puoi deselezionare questa opzione", + "delete_all_history": "Elimina tutto lo storico", + "delete_all_history_confirm": "Sei sicuro di voler eliminare tutto lo storico?", + "please_enter_the_content_here": "Si prega di inserire il contenuto", + "not_api_key_desc": "Le interfacce di traduzione gratuite sono instabili e non tutte le interfacce possono essere utilizzate sul vostro computer. Si prega di richiedere una chiave API per utilizzare l'interfaccia ufficiale stabile.", + "setting_desc": "Impostazioni: API di traduzione, traduzione automatica, Mostra/Nascondi...", + "line_break_character": "Carattere di ritorno a capo", + "tagcomplete_translate_desc": "

Migliora la funzione di traduzione utilizzando il file danbooru.csv nell'estensione {{nameTagComplete}} per raggiungere l'obiettivo di risparmiare richieste di rete e una traduzione precisa.

Dopo aver cliccato sul pulsante Aggiorna, verranno analizzati i file csv dai seguenti percorsi:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

Puoi scaricare i file csv dal repository git {{nameAssets}}/tags.

", + "test": "Test", + "refresh": "Aggiorna", + "not_enable": "Non abilitato", + "translate_result": "Il risultato della traduzione di {0} è : {1}", + "not_found_csv_file": "File csv non trovato", + "theme_extension": "Tema: Stile del plug-in di estensione", + "is_remove_space": "Indica se gli spazi dopo ogni virgola nelle parole chiave devono essere rimossi.
La selezione automatica rimuove gli spazi (difficili da leggere).
La deselezione mantiene uno spazio (influenzando il conteggio dei TOKEN).", + "theme": "Tema", + "enhance": "Migliorare", + "only_csv_on_auto": "La traduzione automatica utilizza solo la traduzione CSV (non la traduzione di rete). Per utilizzare sia la traduzione CSV che la traduzione di rete, fare clic manualmente sul pulsante di traduzione.", + "one_translate_all_keywords": "Traduci tutte le parole chiave in un solo clic", + "auto_translate": "Traduzione automatica dopo aver inserito nuove parole chiave", + "is_remove_last_comma": "Rimuovere o meno l'ultima virgola in Prompt.
Quando selezionato, l'output di Prompt è \"aaa,bbb,ccc\".
Quando non selezionato, l'output di Prompt è \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Mantenere o meno il formato delle parole chiave con un peso pari a 0.
Quando selezionato, il formato della parola chiave viene mantenuto come \"(text:0)\".
Quando non selezionato, il formato non viene mantenuto come \"test\".", + "is_keep_weight_one": "Mantenere o meno il formato delle parole chiave con un peso pari a 1.
Quando selezionato, il formato della parola chiave viene mantenuto come \"(text:1)\".
Quando non selezionato, il formato non viene mantenuto come \"test\".", + "prompt_format": "Formato del prompt", + "tagcomplete_translate_desc2": "La selezione del file CSV sbagliato comporterà una traduzione vuota o '0'. Dopo aver modificato il file, fare clic sul pulsante di test di seguito e verificare se il risultato tradotto viene visualizzato correttamente nella propria lingua locale.", + "dblclick_to_disable": "Doppio clic per disabilitare/abilitare la parola chiave", + "batch_operation": "Operazione batch", + "success": "Successo!", + "failed": "Fallito!", + "packages_desc": "Alcuni pacchetti di Python vengono rilevati come non installati o installati senza successo. Devi fare clic per tentare di reinstallarli. Dopo che tutti i pacchetti sono stati installati con successo, tutte le funzioni possono funzionare normalmente.
Se non riesci ancora a installarli correttamente dopo aver cliccato sul pulsante di installazione, devi copiare il comando manualmente ed eseguirlo nel terminale.", + "installed": "Installato", + "not_install": "Non installato", + "install": "Installa", + "packages_installing": "Avvio dell'installazione ...... Se hai bisogno di controllare il registro di installazione dettagliato, vai alla console WebUI per visualizzarlo. Dopo l'installazione, questa finestra verrà chiusa automaticamente!", + "today_not_show": "Non mostrare questa finestra oggi", + "free": "Gratuito", + "apply_for_free": "Richiedi l'uso gratuito", + "use_chatgpt_gen_prompts": "Utilizza ChatGPT per generare prompt", + "input_image_desc": "Inserisci la descrizione dell'immagine, ad esempio: un gatto seduto in cima a un edificio, una foto molto ad alta definizione e molto autentica.", + "api_config": "Configurazione API", + "image_desc": "Descrizione dell'immagine", + "preset": "Preimpostazioni", + "ai_one": "Prima frase inviata all'AI", + "ai_two": "Seconda frase inviata all'AI", + "restore_to_default": "Ripristina impostazioni predefinite di sistema", + "generate": "Genera", + "generate_result": "Risultato della generazione", + "is_required": "{0} è richiesto!", + "is_not_dict": "{0} deve essere un dizionario!", + "no_response_from": "Nessuna risposta da {0}!", + "request_error": "Errore di richiesta {0}!", + "response_is_empty": "La risposta da {0} è vuota!", + "response_error": "Errore di risposta da {0}!", + "install_success": "{0} installato con successo!", + "install_failed": "Errore: installazione di {0} non riuscita!", + "translate_text_is_empty": "Il testo della traduzione è vuoto!", + "about_desc": "Informazioni, Aggiornamenti, Aiuto, Documentazione", + "version": "Versione", + "unknown_version": "Versione sconosciuta", + "has_new_version": "È disponibile una nuova versione, si prega di aggiornare", + "wiki_desc": "Tutorial di installazione, funzionalità dettagliate, istruzioni per l'uso, domande frequenti, ecc. Vedi:", + "switch_to_light_theme": "Passa al tema chiaro", + "switch_to_dark_theme": "Passa al tema scuro", + "offline_api": "Traduzione offline", + "initialize": "Inizializza", + "initialize_finished": "Inizializzazione completata!", + "initialize_failed": "Inizializzazione non riuscita!", + "model_not_initialized": "Modello non inizializzato", + "model_is_loading": "Caricamento del modello in corso...", + "download_model_desc": "

Se il modello non è stato scaricato in precedenza, il programma lo scaricherà automaticamente da Hugging Face.

Il modello ha una dimensione di diverse gigabyte e richiede una connessione Internet ad alta velocità.

Il download potrebbe richiedere del tempo, si prega di attendere. Se il download non riesce, ripetere l'inizializzazione.

È possibile controllare i log dettagliati e il progresso nella console.

I file del modello verranno scaricati nella directory: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

Se non hai una buona connessione di rete o hai bisogno di scaricare offline, controlla:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Prompt di riempimento automatico quando la pagina si carica", + "disabled": "Disabilitato", + "last_input_prompt": "Ultimo prompt di input", + "is_break_before_wrap": "Se aggiungere un'interruzione di riga prima della parola chiave \"BREAK\".
Quando selezionato, verrà aggiunta automaticamente un'interruzione di riga.
La deselezione non eseguirà alcuna azione.", + "is_break_after_wrap": "Se aggiungere un'interruzione di riga dopo la parola chiave \"BREAK\".
Quando selezionato, verrà aggiunta automaticamente un'interruzione di riga.
La deselezione non eseguirà alcuna azione.", + "show_panel": "Mostra pannello", + "hide_panel": "Nascondi pannello", + "show_group_tags": "Mostra tag di gruppo", + "hide_group_tags": "Nascondi tag di gruppo", + "tags-copyright": "Fonte di integrazione delle parole di suggerimento da 路过银河(Zhihu)、autore sconosciuto(Google Drive)、internet, ecc. Grazie a questi generosi contributori!", + "reset_default_color": "Ripristina colore predefinito", + "clear_color": "Cancella colore", + "tags_color": "Colore dei tag", + "keywords_blacklist": "Elenco nero delle parole chiave", + "blacklist_desc": "Le parole chiave impostate come elenco nero saranno automaticamente filtrate dal plugin!", + "prompt_blacklist_list": "Elenco delle parole chiave non consentite", + "negative_prompt_blacklist_list": "Elenco delle parole chiave negative non consentite", + "lora_blacklist_list": "Elenco nero di Lora", + "lycoris_blacklist_list": "Elenco nero di Lycoris", + "embedding_blacklist_list": "Elenco nero dell'embedding", + "one_keyword_per_line": "Una parola chiave per riga" + } + }, + { + "code": "ja_JP", + "name": "日本語 (日本)", + "lang": { + "need_api_key": "APIキーが必要です", + "dont_need_api_key": "APIキーが不要です(不安定)", + "prompt": "プロンプト", + "negative_prompt": "ネガティブなプロンプト", + "txt2img": "テキストから画像", + "img2img": "画像から画像", + "please_enter_new_keyword": "新しいキーワードを入力してください", + "local_language": "現地言語", + "increase_weight_add_parentheses": "キーワードの重みを増やす:()を追加する", + "increase_weight_subtract_parentheses": "キーワードの重みを増やす:()を減らす", + "decrease_weight_add_brackets": "キーワードの重みを減らす:[]を追加する", + "decrease_weight_subtract_brackets": "キーワードの重みを減らす:[]を減らす", + "translate_keyword_to_local_language": "キーワードを現地言語に翻訳する", + "copy_to_clipboard": "クリップボードにコピー", + "disable_keyword": "キーワードを無効にする", + "enable_keyword": "キーワードを有効にする", + "copy_keywords_to_clipboard": "すべてのキーワードをクリップボードにコピー", + "translate_keywords_to_local_language": "すべてのキーワードを現地言語に翻訳する", + "translate_keyword_to_english": "英語に翻訳", + "translate_all_keywords_to_english": "英語以外のすべてのキーワードを英語に翻訳する", + "auto_translate_to_english": "新しいキーワードを入力したら自動的に英語に翻訳する", + "auto_translate_to_local_language": "新しいキーワードを入力したら自動的に現地言語に翻訳する", + "translate_api": "翻訳API", + "history": "履歴", + "clear_history": "履歴をクリア", + "clear_history_confirm": "本当に履歴をクリアしますか?", + "clear_history_success": "履歴がクリアされました", + "max_history_count": "最大履歴数", + "favorite": "お気に入りリスト", + "add_to_favorite": "お気に入りに追加", + "remove_from_favorite": "お気に入りから削除", + "use": "使用する", + "click_to_edit": "左クリックで編集", + "drop_to_order": "左クリックでドラッグ&ドロップして並べ替える", + "enter_to_save": "Enterキーを押してキーワードを保存する", + "enter_to_add": "Enterキーを押してキーワードを追加する", + "translate_api_not_found": "翻訳APIが見つかりません", + "translate_language_not_support": "翻訳言語がサポートされていません", + "translate_api_not_support": "翻訳APIはサポートされていません", + "unset_name": "名前が設定されていません", + "no_history": "履歴がありません", + "get_history_error": "履歴の取得に失敗しました", + "no_favorite": "お気に入りがありません", + "get_favorite_error": "お気に入りの取得に失敗しました", + "hide_default_input_box": "デフォルトの入力ボックスを非表示にする", + "show_default_input_box": "デフォルトの入力ボックスを表示する", + "translate_test": "翻訳テスト", + "close": "閉じる", + "save": "保存", + "delete_all_keywords": "すべてのキーワードを削除する", + "delete_all_keywords_confirm": "本当にすべてのキーワードを削除しますか?", + "whether_to_enable_tooltip": "各機能のツールチップを有効にするかどうか(この拡張機能のすべての機能を熟知している場合はチェックを外してください)", + "delete_all_history": "すべての履歴を削除する", + "delete_all_history_confirm": "本当にすべての履歴を削除しますか?", + "please_enter_the_content_here": "コンテンツを入力してください", + "not_api_key_desc": "無料の翻訳インターフェースは不安定であり、すべてのインターフェースをあなたのコンピュータで使用できるわけではありません。安定した公式インターフェイスを使用するにはAPI Keyを申請してください。", + "setting_desc": "設定:翻訳API、自動翻訳、表示/非表示...", + "line_break_character": "改行文字", + "tagcomplete_translate_desc": "

{{nameTagComplete}} 拡張機能の danbooru.csv を使用して翻訳機能を強化し、ネットワーク要求を節約し、正確な翻訳を実現します。

更新ボタンをクリックすると、以下のパスのcsvファイルがスキャンされます:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

gitリポジトリ {{nameAssets}}/tags からcsvファイルをダウンロードできます

", + "test": "テスト", + "refresh": "更新", + "not_enable": "無効にする", + "translate_result": "{0}の翻訳結果は:{1}", + "not_found_csv_file": "csvファイルが見つかりません", + "theme_extension": "テーマ:拡張プラグインスタイル", + "is_remove_space": "キーワードのコンマ後のスペースを削除するかどうか。
チェックすると、自動的にスペースが削除されます(読みづらい)。
チェックを外すと、空白が1つ残ります(TOKEN数に影響します)。", + "theme": "テーマ", + "enhance": "強化", + "only_csv_on_auto": "自動翻訳はCSV翻訳のみを使用します(ネットワーク翻訳ではありません)。CSVおよびネットワーク翻訳を両方使用するには、手動で翻訳ボタンをクリックしてください。", + "one_translate_all_keywords": "すべてのキーワードをワンクリックで翻訳する", + "auto_translate": "新しいキーワードを入力した後、自動的に翻訳する", + "is_remove_last_comma": "Promptの最後のカンマを削除するかどうか。
選択した場合、Promptの出力は「aaa,bbb,ccc」になります。
選択されていない場合、Promptの出力は「aaa,bbb,ccc,」になります。", + "is_keep_weight_zero": "重みが0のキーワードのフォーマットを保持するかどうか。
選択した場合、キーワードのフォーマットは「(text:0)」として保持されます。
選択されていない場合、フォーマットは「test」として保持されません。", + "is_keep_weight_one": "重みが1のキーワードのフォーマットを保持するかどうか。
選択した場合、キーワードのフォーマットは「(text:1)」として保持されます。
選択されていない場合、フォーマットは「test」として保持されません。", + "prompt_format": "プロンプトの形式", + "tagcomplete_translate_desc2": "間違ったCSVファイルを選択すると、空の翻訳または「0」になります。ファイルを変更した後、下のテストボタンをクリックして、翻訳結果が正しくローカル言語で表示されるかどうかを確認してください。", + "dblclick_to_disable": "キーワードの無効化/有効化にはダブルクリックしてください", + "batch_operation": "バッチ操作", + "success": "成功しました!", + "failed": "失敗しました!", + "packages_desc": "一部のPythonパッケージがインストールされていないか、または正常にインストールされていません。再インストールするためにクリックする必要があります。すべてのパッケージが正常にインストールされると、すべての機能が正常に動作します。
インストールボタンをクリックしてもうまくインストールできない場合は、コマンドを手動でコピーしてターミナルで実行する必要があります。", + "installed": "インストール済み", + "not_install": "未インストール", + "install": "インストール", + "packages_installing": "インストールを開始します......詳細なインストールログを確認する必要がある場合は、WebUIコンソールに移動して表示してください。インストールが完了すると、このウィンドウは自動的に閉じられます!", + "today_not_show": "今日このウィンドウを表示しない", + "free": "無料", + "apply_for_free": "無料使用を申請する", + "use_chatgpt_gen_prompts": "ChatGPTを使用してプロンプトを生成する", + "input_image_desc": "画像の説明を入力してください。たとえば、建物の屋上に座っている猫、非常に高精細で非常にリアルな写真など。", + "api_config": "API構成", + "image_desc": "画像の説明", + "preset": "プリセット", + "ai_one": "AIに送信される最初の文", + "ai_two": "AIに送信される2番目の文", + "restore_to_default": "システムデフォルトに復元", + "generate": "生成", + "generate_result": "生成結果", + "is_required": "{0} が必要です!", + "is_not_dict": "{0} は辞書である必要があります!", + "no_response_from": "{0} からの応答がありません!", + "request_error": "{0} のリクエストエラーです!", + "response_is_empty": "{0} の応答が空です!", + "response_error": "{0} の応答エラーです!", + "install_success": "{0} のインストールに成功しました!", + "install_failed": "エラー:{0} のインストールに失敗しました!", + "translate_text_is_empty": "翻訳テキストが空です!", + "about_desc": "バージョン、更新、ヘルプ、ドキュメント", + "version": "バージョン", + "unknown_version": "不明のバージョン", + "has_new_version": "新しいバージョンがあります。更新してください", + "wiki_desc": "インストールチュートリアル、詳細な機能、使用方法、よくある質問などはこちらを参照してください:", + "switch_to_light_theme": "ライトテーマに切り替える", + "switch_to_dark_theme": "ダークテーマに切り替える", + "offline_api": "オフライン翻訳", + "initialize": "初期化", + "initialize_finished": "初期化完了!", + "initialize_failed": "初期化失敗!", + "model_not_initialized": "モデルが初期化されていません", + "model_is_loading": "モデルを読み込んでいます...", + "download_model_desc": "

以前にモデルがダウンロードされていない場合、プログラムはHugging Faceからモデルを自動的にダウンロードします。

モデルのサイズは数ギガバイトあり、高速なインターネット接続が必要です。

ダウンロードには時間がかかる場合がありますので、お待ちください。ダウンロードに失敗した場合は、再初期化してください。

詳細なログと進捗状況はコンソールで確認できます。

モデルファイルは次のディレクトリにダウンロードされます:extensions\\{{shortName}}\\models

", + "download_model_desc2": "

良好なネットワーク環境がない場合やオフラインでダウンロードする必要がある場合は、次を確認してください:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "ウェブページの読み込み時に自動入力プロンプト", + "disabled": "無効", + "last_input_prompt": "最後の入力プロンプト", + "is_break_before_wrap": "「BREAK」キーワードの前に改行を追加するかどうか。
選択すると自動的に改行が追加されます。
選択を解除すると何も行われません。", + "is_break_after_wrap": "「BREAK」キーワードの後に改行を追加するかどうか。
選択すると自動的に改行が追加されます。
選択を解除すると何も行われません。", + "show_panel": "パネルを表示", + "hide_panel": "パネルを非表示", + "show_group_tags": "グループタグを表示", + "hide_group_tags": "グループタグを非表示", + "tags-copyright": "プロンプトの単語統合元 路过银河(Zhihu)、不明な作者(Google Drive)、インターネットなど、これらの無私の貢献者に感謝します!", + "reset_default_color": "デフォルトの色にリセット", + "clear_color": "色をクリア", + "tags_color": "タグの色", + "keywords_blacklist": "キーワードのブラックリスト", + "blacklist_desc": "ブラックリストに設定されたキーワードは、プラグインによって自動的にフィルタリングされます!", + "prompt_blacklist_list": "プロンプトのブラックリストリスト", + "negative_prompt_blacklist_list": "ネガティブプロンプトのブラックリストリスト", + "lora_blacklist_list": "Loraのブラックリスト", + "lycoris_blacklist_list": "Lycorisのブラックリスト", + "embedding_blacklist_list": "Embeddingのブラックリスト", + "one_keyword_per_line": "1行に1つのキーワード" + } + }, + { + "code": "kn_IN", + "name": "ಕನ್ನಡ (ಭಾರತ)", + "lang": {} + }, + { + "code": "kk_KZ", + "name": "Қазақ (Қазақстан)", + "lang": {} + }, + { + "code": "km_KH", + "name": "ភាសាខ្មែរ (កម្ពុជា)", + "lang": {} + }, + { + "code": "tlh_Latn", + "name": "Klingon (Latn)", + "lang": {} + }, + { + "code": "tlh_Piqd", + "name": "Klingon (plqaD)", + "lang": {} + }, + { + "code": "ko_KR", + "name": "한국어 (대한민국)", + "lang": { + "need_api_key": "API 키 필요", + "dont_need_api_key": "API 키 필요 없음 (불안정)", + "prompt": "프롬프트", + "negative_prompt": "부정적인 프롬프트", + "txt2img": "텍스트에서 이미지로", + "img2img": "이미지에서 이미지로", + "please_enter_new_keyword": "새로운 키워드를 입력하세요", + "local_language": "현지어", + "increase_weight_add_parentheses": "키워드 가중치 증가 : () 쌓임", + "increase_weight_subtract_parentheses": "키워드 가중치 증가 : () 감소", + "decrease_weight_add_brackets": "키워드 가중치 감소 : [] 쌓임", + "decrease_weight_subtract_brackets": "키워드 가중치 감소 : [] 감소", + "translate_keyword_to_local_language": "키워드를 현지어로 번역", + "copy_to_clipboard": "클립보드로 복사", + "disable_keyword": "키워드 비활성화", + "enable_keyword": "키워드 활성화", + "copy_keywords_to_clipboard": "모든 키워드를 클립보드로 복사", + "translate_keywords_to_local_language": "모든 키워드를 현지어로 번역", + "translate_keyword_to_english": "영어로 번역", + "translate_all_keywords_to_english": "모든 비영어권 키워드를 영어로 번역", + "auto_translate_to_english": "새 키워드 입력 후 자동으로 영어로 번역", + "auto_translate_to_local_language": "새 키워드 입력 후 자동으로 현지어로 번역", + "translate_api": "번역 API", + "history": "기록", + "clear_history": "기록 지우기", + "clear_history_confirm": "정말 기록을 지우시겠습니까?", + "clear_history_success": "기록이 지워졌습니다.", + "max_history_count": "최대 기록 수", + "favorite": "즐겨찾기 목록", + "add_to_favorite": "즐겨찾기에 추가", + "remove_from_favorite": "즐겨찾기에서 제거", + "use": "사용", + "click_to_edit": "편집하려면 마우스 왼쪽 버튼 클릭", + "drop_to_order": "정렬하려면 마우스 왼쪽 버튼을 누른 채 드래그하세요", + "enter_to_save": "엔터 키를 눌러 키워드 저장", + "enter_to_add": "엔터 키를 눌러 키워드 추가", + "translate_api_not_found": "번역 API를 찾을 수 없습니다.", + "translate_language_not_support": "번역 언어를 지원하지 않습니다.", + "translate_api_not_support": "번역 API를 지원하지 않습니다.", + "unset_name": "이름 설정 안됨", + "no_history": "기록 없음", + "get_history_error": "기록 가져오기 실패", + "no_favorite": "즐겨찾기 없음", + "get_favorite_error": "즐겨찾기 가져오기 실패", + "hide_default_input_box": "기본 입력 상자 숨기기", + "show_default_input_box": "기본 입력 상자 보이기", + "translate_test": "번역 테스트", + "close": "닫기", + "save": "저장", + "delete_all_keywords": "모든 키워드 삭제", + "delete_all_keywords_confirm": "정말 모든 키워드를 삭제하시겠습니까?", + "whether_to_enable_tooltip": "각 기능에 대한 도움말 설명을 사용할 지 여부, 확장 프로그램의 모든 기능을 이미 익히셨다면 체크 해제 가능", + "delete_all_history": "모든 기록 삭제", + "delete_all_history_confirm": "정말 모든 기록을 삭제하시겠습니까?", + "please_enter_the_content_here": "내용을 입력하세요", + "not_api_key_desc": "무료 번역 인터페이스는 불안정합니다. 모든 인터페이스를 컴퓨터에서 사용할 수 있는 것은 아닙니다. 안정적인 공식 인터페이스를 사용하려면 API 키를 신청하십시오.", + "setting_desc": "설정: 번역 API, 자동 번역, 표시/숨기기...", + "line_break_character": "개행 문자", + "tagcomplete_translate_desc": "

{{nameTagComplete}} 확장 프로그램의 danbooru.csv 를 사용하여 번역 기능을 향상시켜 네트워크 요청을 절약하고 정확한 번역을 달성하십시오.

새로 고침 버튼을 클릭하면 다음 경로의 csv 파일이 스캔됩니다 :

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

git 저장소 {{nameAssets}}/tags 에서 csv 파일을 다운로드 할 수 있습니다.

", + "test": "테스트", + "refresh": "새로 고침", + "not_enable": "비활성화", + "translate_result": "{0}의 번역 결과는 : {1}입니다.", + "not_found_csv_file": "csv 파일을 찾을 수 없습니다", + "theme_extension": "테마: 확장 플러그인 스타일", + "is_remove_space": "키워드의 쉼표 뒤 공백을 제거할지 여부입니다.
확인하면 자동으로 공백이 제거됩니다(읽기 어려움).
선택을 취소하면 공백 1개가 유지됩니다.(TOKEN 계산에 영향을 미칩니다).", + "theme": "테마", + "enhance": "강화", + "only_csv_on_auto": "자동 번역은 CSV 번역 만 사용합니다 (네트워크 번역은 사용하지 않음). CSV 및 네트워크 번역을 모두 사용하려면 수동으로 번역 버튼을 클릭하십시오.", + "one_translate_all_keywords": "모든 키워드를 한 번의 클릭으로 번역하세요", + "auto_translate": "새 키워드를 입력한 후 자동으로 번역하기", + "is_remove_last_comma": "Prompt의 마지막 쉼표를 제거할 것인가요?
선택한 경우, Prompt 출력은 \"aaa,bbb,ccc\"가 됩니다.
선택하지 않은 경우, Prompt 출력은 \"aaa,bbb,ccc,\"가 됩니다.", + "is_keep_weight_zero": "무게가 0인 키워드 형식을 유지할 것인가요?
선택한 경우, 키워드 형식은 \"(text:0)\"로 유지됩니다.
선택하지 않은 경우, 형식은 \"test\"로 유지되지 않습니다.", + "is_keep_weight_one": "무게가 1인 키워드 형식을 유지할 것인가요?
선택한 경우, 키워드 형식은 \"(text:1)\"로 유지됩니다.
선택하지 않은 경우, 형식은 \"test\"로 유지되지 않습니다.", + "prompt_format": "프롬프트 형식", + "tagcomplete_translate_desc2": "잘못된 CSV 파일을 선택하면 빈 번역이나 '0'이 됩니다. 파일을 변경한 후에는 아래의 테스트 버튼을 클릭하고 번역된 결과가 로컬 언어로 올바르게 표시되는지 확인하십시오.", + "dblclick_to_disable": "키워드를 사용 안 함/사용으로 바꾸려면 더블 클릭", + "batch_operation": "일괄 작업", + "success": "성공!", + "failed": "실패!", + "packages_desc": "일부 Python 패키지가 설치되지 않았거나 설치하지 못했습니다. 다시 설치하려면 클릭해야합니다. 모두 성공적으로 설치 된 후 모든 기능을 정상적으로 사용할 수 있습니다.
설치 버튼을 클릭 한 후에도 여전히 성공적으로 설치 할 수 없는 경우 명령을 수동으로 복사하고 터미널에서 실행해야합니다.", + "installed": "설치됨", + "not_install": "미설치", + "install": "설치", + "packages_installing": "설치 시작 중 ...... 자세한 설치 로그를 확인해야하는 경우 WebUI 콘솔로 이동하여 확인하십시오. 설치가 완료되면이 창이 자동으로 닫힙니다!", + "today_not_show": "오늘 이 창을 표시하지 않음", + "free": "무료", + "apply_for_free": "무료 사용 신청", + "use_chatgpt_gen_prompts": "ChatGPT를 사용하여 프롬프트를 생성합니다", + "input_image_desc": "이미지 설명을 입력하세요. 예 : 건물 꼭대기에 앉아있는 고양이, 매우 고화질이며 매우 현실적인 사진 등", + "api_config": "API 구성", + "image_desc": "이미지 설명", + "preset": "사전 설정", + "ai_one": "AI에게 전송 된 첫 번째 문장", + "ai_two": "AI에게 전송 된 두 번째 문장", + "restore_to_default": "시스템 기본값으로 복원", + "generate": "생성", + "generate_result": "생성 결과", + "is_required": "{0} 입력이 필요합니다!", + "is_not_dict": "{0}은(는) 사전이어야 합니다!", + "no_response_from": "{0}에서 응답이 없습니다!", + "request_error": "{0} 요청 오류입니다!", + "response_is_empty": "{0} 응답이 비어 있습니다!", + "response_error": "{0} 응답 오류입니다!", + "install_success": "{0} 설치에 성공했습니다!", + "install_failed": "오류: {0} 설치 실패!", + "translate_text_is_empty": "번역 텍스트가 비어 있습니다!", + "about_desc": "버전, 업데이트, 도움말, 문서", + "version": "버전", + "unknown_version": "알 수 없는 버전", + "has_new_version": "새로운 버전이 있습니다. 업데이트하세요", + "wiki_desc": "설치 안내서, 자세한 기능, 사용 방법, 자주 묻는 질문 등은 다음을 참조하세요:", + "switch_to_light_theme": "밝은 테마로 전환", + "switch_to_dark_theme": "어두운 테마로 전환", + "offline_api": "오프라인 번역", + "initialize": "초기화", + "initialize_finished": "초기화 완료!", + "initialize_failed": "초기화 실패!", + "model_not_initialized": "모델이 초기화되지 않음", + "model_is_loading": "모델을 불러오는 중...", + "download_model_desc": "

이전에 모델을 다운로드하지 않은 경우 프로그램이 Hugging Face에서 모델을 자동으로 다운로드합니다.

모델은 몇 기가바이트 크기이며 고속 인터넷 연결이 필요합니다.

다운로드에는 시간이 걸릴 수 있으므로 잠시 기다려주십시오. 다운로드에 실패한 경우 초기화를 다시 진행하십시오.

자세한 로그와 진행 상황은 콘솔에서 확인할 수 있습니다.

모델 파일은 다음 디렉터리에 다운로드됩니다: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

좋은 네트워크 환경이 없거나 오프라인으로 다운로드해야 하는 경우 다음을 확인하십시오:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "웹 페이지 로드시 자동 입력 프롬프트", + "disabled": "비활성화됨", + "last_input_prompt": "마지막 입력 프롬프트", + "is_break_before_wrap": "\"BREAK\" 키워드 앞에 줄 바꿈을 추가하시겠습니까?
선택하면 자동으로 줄 바꿈이 추가됩니다.
선택 취소 시 아무 작업도 수행되지 않습니다.", + "is_break_after_wrap": "\"BREAK\" 키워드 뒤에 줄 바꿈을 추가하시겠습니까?
선택하면 자동으로 줄 바꿈이 추가됩니다.
선택 취소 시 아무 작업도 수행되지 않습니다.", + "show_panel": "패널 표시", + "hide_panel": "패널 숨기기", + "show_group_tags": "그룹 태그 표시", + "hide_group_tags": "그룹 태그 숨기기", + "tags-copyright": "프롬프트 단어 통합 출처: 路过银河(Zhihu)、알 수 없는 작성자(Google Drive)、인터넷 등. 이러한 무비한 기여자들에게 감사드립니다!", + "reset_default_color": "기본 색상으로 재설정", + "clear_color": "색상 지우기", + "tags_color": "태그 색상", + "keywords_blacklist": "키워드 블랙리스트", + "blacklist_desc": "블랙리스트로 설정된 키워드는 플러그인에 의해 자동으로 필터링됩니다!", + "prompt_blacklist_list": "프롬프트 블랙리스트 목록", + "negative_prompt_blacklist_list": "부정적인 프롬프트 블랙리스트 목록", + "lora_blacklist_list": "Lora 블랙리스트", + "lycoris_blacklist_list": "Lycoris 블랙리스트", + "embedding_blacklist_list": "Embedding 블랙리스트", + "one_keyword_per_line": "한 줄에 하나의 키워드" + } + }, + { + "code": "ku_Arab_IQ", + "name": "کوردی (عێراق)", + "lang": {} + }, + { + "code": "ku_Latn_TR", + "name": "Kurmancî (Latînî, Tirkiye)", + "lang": {} + }, + { + "code": "ky_KG", + "name": "Кыргызча (Кыргызстан)", + "lang": {} + }, + { + "code": "lo_LA", + "name": "ລາວ (ລາວ)", + "lang": {} + }, + { + "code": "lv_LV", + "name": "Latviešu (Latvija)", + "lang": {} + }, + { + "code": "lt_LT", + "name": "Lietuvių (Lietuva)", + "lang": {} + }, + { + "code": "mk_MK", + "name": "Македонски (Северна Македонија)", + "lang": {} + }, + { + "code": "mg_MG", + "name": "Malagasy (Madagasikara)", + "lang": {} + }, + { + "code": "ms_Latn_MY", + "name": "Bahasa Melayu (Latin, Malaysia)", + "lang": {} + }, + { + "code": "ml_IN", + "name": "മലയാളം (ഇന്ത്യ)", + "lang": {} + }, + { + "code": "mt_MT", + "name": "Malti (Malta)", + "lang": {} + }, + { + "code": "mi_NZ", + "name": "Māori (Aotearoa)", + "lang": {} + }, + { + "code": "mr_IN", + "name": "मराठी (भारत)", + "lang": {} + }, + { + "code": "mn_Cyrl_MN", + "name": "Монгол (Кирилл, Монгол улс)", + "lang": {} + }, + { + "code": "mn_Mong_CN", + "name": "ᠮᠣᠩᠭᠣᠯ ᠤᠯᠤᠰ (ᠨᠢᠭᠡᠳᠦᠯ ᠤᠨᠤᠭ᠎ᠠ)", + "lang": {} + }, + { + "code": "my_MM", + "name": "မြန်မာ (မြန်မာ)", + "lang": {} + }, + { + "code": "ne_NP", + "name": "नेपाली (नेपाल)", + "lang": {} + }, + { + "code": "no_NO", + "name": "Norsk bokmål (Norge)", + "lang": {} + }, + { + "code": "or_IN", + "name": "ଓଡ଼ିଆ (ଭାରତ)", + "lang": {} + }, + { + "code": "ps_AF", + "name": "پښتو (افغانستان)", + "lang": {} + }, + { + "code": "fa_IR", + "name": "فارسی (ایران)", + "lang": {} + }, + { + "code": "pl_PL", + "name": "Polski (Polska)", + "lang": {} + }, + { + "code": "pt_BR", + "name": "Português (Brasil)", + "lang": {} + }, + { + "code": "pt_PT", + "name": "Português (Portugal)", + "lang": { + "need_api_key": "API Key necessário", + "dont_need_api_key": "Não é necessário API Key (instável)", + "prompt": "Palavra-chave", + "negative_prompt": "Palavra-chave negativa", + "txt2img": "Texto para imagem", + "img2img": "Imagem para imagem", + "please_enter_new_keyword": "Por favor, introduza uma nova palavra-chave", + "local_language": "Língua local", + "increase_weight_add_parentheses": "Aumentar o peso da palavra-chave: Adicionar ()", + "increase_weight_subtract_parentheses": "Aumentar o peso da palavra-chave: Subtrair ()", + "decrease_weight_add_brackets": "Diminuir o peso da palavra-chave: Adicionar []", + "decrease_weight_subtract_brackets": "Diminuir o peso da palavra-chave: Subtrair []", + "translate_keyword_to_local_language": "Traduzir palavra-chave para a língua local", + "copy_to_clipboard": "Copiar para a área de transferência", + "disable_keyword": "Desativar palavra-chave", + "enable_keyword": "Ativar palavra-chave", + "copy_keywords_to_clipboard": "Copiar todas as palavras-chave para a área de transferência", + "translate_keywords_to_local_language": "Traduzir todas as palavras-chave para a língua local", + "translate_keyword_to_english": "Traduzir para inglês", + "translate_all_keywords_to_english": "Traduzir todas as palavras-chave não inglesas para inglês", + "auto_translate_to_english": "Auto tradução para inglês após a introdução de uma nova palavra-chave", + "auto_translate_to_local_language": "Auto tradução para a língua local após a introdução de uma nova palavra-chave", + "translate_api": "API de tradução", + "history": "Histórico", + "clear_history": "Limpar histórico", + "clear_history_confirm": "Tem a certeza que pretende limpar o histórico?", + "clear_history_success": "O histórico foi limpo com sucesso", + "max_history_count": "Contagem máxima do histórico", + "favorite": "Lista de favoritos", + "add_to_favorite": "Adicionar aos favoritos", + "remove_from_favorite": "Remover dos favoritos", + "use": "Usar", + "click_to_edit": "Clique com o botão esquerdo do rato para editar", + "drop_to_order": "Mantenha pressionado o botão esquerdo do rato e arraste para reordenar", + "enter_to_save": "Pressione Enter para guardar a palavra-chave", + "enter_to_add": "Pressione Enter para adicionar a palavra-chave", + "translate_api_not_found": "API de tradução não encontrada", + "translate_language_not_support": "Língua de tradução não suportada", + "translate_api_not_support": "API de tradução não suportada", + "unset_name": "Nome não definido", + "no_history": "Sem histórico", + "get_history_error": "Erro ao obter histórico", + "no_favorite": "Sem favoritos", + "get_favorite_error": "Erro ao obter favoritos", + "hide_default_input_box": "Ocultar caixa de entrada padrão", + "show_default_input_box": "Mostrar caixa de entrada padrão", + "translate_test": "Teste de tradução", + "close": "Fechar", + "save": "Guardar", + "delete_all_keywords": "Eliminar todas as palavras-chave", + "delete_all_keywords_confirm": "Tem a certeza que pretende eliminar todas as palavras-chave?", + "whether_to_enable_tooltip": "Deseja ativar a caixa de ferramentas de sugestões para cada funcionalidade? Se já estiver familiarizado com todas as funcionalidades desta extensão, pode desmarcar esta opção.", + "delete_all_history": "Eliminar todo o histórico", + "delete_all_history_confirm": "Tem a certeza que pretende eliminar todo o histórico?", + "please_enter_the_content_here": "Por favor, digite o conteúdo", + "not_api_key_desc": "As interfaces de tradução gratuitas são instáveis e nem todas as interfaces podem ser usadas no seu computador. Por favor, solicite uma chave de API para usar a interface oficial estável.", + "setting_desc": "Configuração: API de tradução, tradução automática, mostrar/ocultar...", + "line_break_character": "Caractere de quebra de linha", + "tagcomplete_translate_desc": "

Aprimore a função de tradução usando danbooru.csv na extensão {{nameTagComplete}} para alcançar o objetivo de economizar solicitações de rede e tradução precisa.

Após clicar no botão Atualizar, os arquivos csv dos seguintes caminhos serão verificados:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

Você pode baixar arquivos csv do repositório git {{nameAssets}}/tags.

", + "test": "Testar", + "refresh": "Atualizar", + "not_enable": "Não habilitado", + "translate_result": "O resultado da tradução de {0} é: {1}", + "not_found_csv_file": "Arquivo csv não encontrado", + "theme_extension": "Tema: Estilo de plugin de extensão", + "is_remove_space": "Indique se os espaços após cada vírgula na palavra-chave devem ser removidos.
A seleção automática remove os espaços (difícil de ler).
A desseleção mantém um espaço (afetando a contagem de TOKEN).", + "theme": "Tema", + "enhance": "Melhorar", + "only_csv_on_auto": "A tradução automática utiliza apenas a tradução CSV (não a tradução de rede). Para usar tanto a tradução CSV como a tradução de rede, clique manualmente no botão de tradução.", + "one_translate_all_keywords": "Traduzir todas as palavras-chave com um clique", + "auto_translate": "Traduzir automaticamente após inserir novas palavras-chave", + "is_remove_last_comma": "Remover ou não a última vírgula em Prompt.
Quando selecionado, a saída do Prompt é \"aaa,bbb,ccc\".
Quando não selecionado, a saída do Prompt é \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Manter ou não o formato das palavras-chave com um peso de 0.
Quando selecionado, o formato da palavra-chave é mantido como \"(text:0)\".
Quando não selecionado, o formato não é mantido como \"test\".", + "is_keep_weight_one": "Manter ou não o formato das palavras-chave com um peso de 1.
Quando selecionado, o formato da palavra-chave é mantido como \"(text:1)\".
Quando não selecionado, o formato não é mantido como \"test\".", + "prompt_format": "Formato do prompt", + "tagcomplete_translate_desc2": "Selecionar o arquivo CSV errado resultará em uma tradução vazia ou '0'. Após alterar o arquivo, clique no botão de teste abaixo e verifique se o resultado traduzido é exibido corretamente em seu idioma local.", + "dblclick_to_disable": "Clique duas vezes para desativar/ativar palavra-chave", + "batch_operation": "Operação em lote", + "success": "Sucesso!", + "failed": "Falha!", + "packages_desc": "Alguns pacotes do Python são detectados como não instalados ou instalados sem sucesso. Você precisa clicar para tentar reinstalá-los. Depois que todos os pacotes forem instalados com sucesso, todas as funções podem funcionar normalmente.
Se você ainda não conseguir instalá-los com sucesso após clicar no botão de instalação, precisará copiar o comando manualmente e executá-lo no terminal.", + "installed": "Instalados", + "not_install": "Não instalado", + "install": "Instalar", + "packages_installing": "Iniciando a instalação ...... Se você precisar verificar o log de instalação detalhado, vá para o console WebUI para visualizá-lo. Depois que a instalação for concluída, esta janela será fechada automaticamente!", + "today_not_show": "Não mostrar esta janela hoje", + "free": "Grátis", + "apply_for_free": "Solicitar uso gratuito", + "use_chatgpt_gen_prompts": "Usar o ChatGPT para Gerar Prompt", + "input_image_desc": "Por favor, escreva a descrição da imagem, por exemplo: um gato sentado no topo de um edifício, uma foto muito realista e de alta definição.", + "api_config": "Configuração da API", + "image_desc": "Descrição da Imagem", + "preset": "Predefinição", + "ai_one": "Primeira frase enviada para o AI", + "ai_two": "Segunda frase enviada para o AI", + "restore_to_default": "Restaurar às predefinições do sistema", + "generate": "Gerar", + "generate_result": "Resultado da Geração", + "is_required": "{0} é obrigatório!", + "is_not_dict": "{0} deve ser um dicionário!", + "no_response_from": "Sem resposta de {0}!", + "request_error": "Erro de requisição {0}!", + "response_is_empty": "A resposta de {0} está vazia!", + "response_error": "Erro de resposta de {0}!", + "install_success": "{0} instalado com sucesso!", + "install_failed": "Erro: falha na instalação de {0}!", + "translate_text_is_empty": "O texto de tradução está vazio!", + "about_desc": "Sobre, Atualizações, Ajuda, Documentação", + "version": "Versão", + "unknown_version": "Versão desconhecida", + "has_new_version": "Há uma nova versão disponível, por favor atualize", + "wiki_desc": "Tutorial de instalação, recursos detalhados, instruções de uso, perguntas frequentes, etc. Veja:", + "switch_to_light_theme": "Mudar para o tema claro", + "switch_to_dark_theme": "Mudar para o tema escuro", + "offline_api": "Tradução Offline", + "initialize": "Inicializar", + "initialize_finished": "Inicialização Concluída!", + "initialize_failed": "Inicialização Falhou!", + "model_not_initialized": "Modelo Não Inicializado", + "model_is_loading": "A Carregar o Modelo...", + "download_model_desc": "

Se o modelo ainda não foi descarregado anteriormente, o programa irá descarregar automaticamente o modelo da Hugging Face.

O modelo tem vários gigabytes de tamanho e requer uma ligação à Internet de alta velocidade.

O descarregamento pode demorar algum tempo, por favor tenha paciência. Se o descarregamento falhar, por favor reinicialize.

Pode verificar os registos detalhados e o progresso na consola.

Os ficheiros do modelo serão descarregados para o diretório: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

Se você não tem um bom ambiente de rede ou precisa baixar offline, por favor verifique:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Prompt de preenchimento automático quando a página carrega", + "disabled": "Desativado", + "last_input_prompt": "Último prompt de entrada", + "is_break_before_wrap": "Se deseja adicionar uma quebra de linha antes da palavra-chave \"BREAK\".
Quando selecionado, uma quebra de linha será adicionada automaticamente.
Desmarcar não executará nenhuma ação.", + "is_break_after_wrap": "Se deseja adicionar uma quebra de linha após a palavra-chave \"BREAK\".
Quando selecionado, uma quebra de linha será adicionada automaticamente.
Desmarcar não executará nenhuma ação.", + "show_panel": "Mostrar painel", + "hide_panel": "Ocultar painel", + "show_group_tags": "Mostrar etiquetas de grupo", + "hide_group_tags": "Ocultar etiquetas de grupo", + "tags-copyright": "Fonte de integração de palavras-chave de 路过银河(Zhihu)、autor desconhecido(Google Drive)、internet, etc. Obrigado a esses contribuidores altruístas!", + "reset_default_color": "Redefinir para cor padrão", + "clear_color": "Limpar cor", + "tags_color": "Cor das tags", + "keywords_blacklist": "Lista negra de palavras-chave", + "blacklist_desc": "As palavras-chave definidas como lista negra serão automaticamente filtradas pelo plugin!", + "prompt_blacklist_list": "Lista de palavras-chave proibidas", + "negative_prompt_blacklist_list": "Lista negativa de palavras-chave proibidas", + "lora_blacklist_list": "Lista negra de Lora", + "lycoris_blacklist_list": "Lista negra de Lycoris", + "embedding_blacklist_list": "Lista negra de Embedding", + "one_keyword_per_line": "Uma palavra-chave por linha" + } + }, + { + "code": "pa_Guru_IN", + "name": "ਪੰਜਾਬੀ (ਗੁਰਮੁਖੀ, ਭਾਰਤ)", + "lang": {} + }, + { + "code": "otq_Latn_MX", + "name": "Querétaro Otomi (Latn, México)", + "lang": {} + }, + { + "code": "ro_RO", + "name": "Română (România)", + "lang": {} + }, + { + "code": "ru_RU", + "name": "Русский (Россия)", + "lang": { + "need_api_key": "API-ключ необходим", + "dont_need_api_key": "API-ключ не требуется (нестабильно)", + "prompt": "Подсказка", + "negative_prompt": "Обратная подсказка", + "txt2img": "Текст в картинку", + "img2img": "Картинка в картинку", + "please_enter_new_keyword": "Введите новое ключевое слово", + "local_language": "Локальный язык", + "increase_weight_add_parentheses": "Увеличить вес ключевого слова: добавить ()", + "increase_weight_subtract_parentheses": "Увеличить вес ключевого слова: убрать ()", + "decrease_weight_add_brackets": "Уменьшить вес ключевого слова: добавить []", + "decrease_weight_subtract_brackets": "Уменьшить вес ключевого слова: убрать []", + "translate_keyword_to_local_language": "Перевести ключевое слово на локальный язык", + "copy_to_clipboard": "Копировать в буфер обмена", + "disable_keyword": "Отключить ключевое слово", + "enable_keyword": "Включить ключевое слово", + "copy_keywords_to_clipboard": "Копировать все ключевые слова в буфер обмена", + "translate_keywords_to_local_language": "Перевести все ключевые слова на локальный язык", + "translate_keyword_to_english": "Перевести на английский", + "translate_all_keywords_to_english": "Перевести все ключевые слова, кроме английского, на английский", + "auto_translate_to_english": "Автоматически переводить на английский после ввода нового ключевого слова", + "auto_translate_to_local_language": "Автоматически переводить на локальный язык после ввода нового ключевого слова", + "translate_api": "API для перевода", + "history": "История", + "clear_history": "Очистить историю", + "clear_history_confirm": "Вы действительно хотите очистить историю?", + "clear_history_success": "История была успешно очищена", + "max_history_count": "Максимальное количество записей истории", + "favorite": "Избранное", + "add_to_favorite": "Добавить в избранное", + "remove_from_favorite": "Убрать из избранного", + "use": "Использование", + "click_to_edit": "Щелкните левой кнопкой мыши, чтобы редактировать", + "drop_to_order": "Удерживайте левую кнопку мыши и перетаскивайте для сортировки", + "enter_to_save": "Нажмите Enter, чтобы сохранить ключевое слово", + "enter_to_add": "Нажмите Enter, чтобы добавить ключевое слово", + "translate_api_not_found": "API для перевода не найден", + "translate_language_not_support": "Язык перевода не поддерживается", + "translate_api_not_support": "API для перевода не поддерживается", + "unset_name": "Не задано имя", + "no_history": "Нет записей в истории", + "get_history_error": "Ошибка при получении истории", + "no_favorite": "Нет избранных элементов", + "get_favorite_error": "Ошибка при получении избранного", + "hide_default_input_box": "Скрыть стандартное поле ввода", + "show_default_input_box": "Показать стандартное поле ввода", + "translate_test": "Тест перевода", + "close": "Закрыть", + "save": "Сохранить", + "delete_all_keywords": "Удалить все ключевые слова", + "delete_all_keywords_confirm": "Вы действительно хотите удалить все ключевые слова?", + "whether_to_enable_tooltip": "Включить всплывающие подсказки для каждой функции. Если вы уже владеете всеми функциями расширения, можете снимать галочку.", + "delete_all_history": "Удалить всю историю", + "delete_all_history_confirm": "Вы действительно хотите удалить всю историю?", + "please_enter_the_content_here": "Пожалуйста, введите содержимое", + "not_api_key_desc": "Бесплатные интерфейсы перевода нестабильны и не каждый интерфейс можно использовать на вашем компьютере. Пожалуйста, получите API Key для использования стабильного официального интерфейса", + "setting_desc": "Настройки: API перевода, автоматический перевод, показать/скрыть...", + "line_break_character": "Символ перевода строки", + "tagcomplete_translate_desc": "

Улучшение функции перевода с использованием danbooru.csv в расширении {{nameTagComplete}} для достижения цели экономии запросов к сети и точного перевода.

После нажатия кнопки Обновить будут просканированы CSV-файлы из следующих путей:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

Вы можете скачать CSV-файлы из репозитория Git {{nameAssets}}/tags.

", + "test": "Тест", + "refresh": "Обновить", + "not_enable": "Не активировано", + "translate_result": "Результат перевода {0}: {1}", + "not_found_csv_file": "CSV-файл не найден", + "theme_extension": "Тема: Стиль расширения плагина", + "is_remove_space": "Указывает, нужно ли удалять пробелы после каждой запятой в ключевом слове.
При выборе будет автоматически удалены пробелы (трудно читать).
Если этот параметр не выбран, то будет сохранен один пробел (влияет на подсчет TOKEN).", + "theme": "Тема", + "enhance": "Улучшить", + "only_csv_on_auto": "Автоматический перевод использует только CSV-перевод (не сетевой перевод). Чтобы использовать как CSV-, так и сетевой перевод, вручную нажмите кнопку перевода.", + "one_translate_all_keywords": "Перевести все ключевые слова одним нажатием кнопки", + "auto_translate": "Автоматический перевод новых ключевых слов", + "is_remove_last_comma": "Удалить последнюю запятую в Prompt или нет?
Если выбрано, то в Prompt будет выводиться \"aaa,bbb,ccc\".
Если не выбрано, то в Prompt будет выводиться \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Сохранять формат ключевых слов с нулевым весом или нет?
Если выбрано, то формат ключевых слов будет сохранен как \"(test:0)\".
Если не выбрано, то формат будет \"test\" без скобок.", + "is_keep_weight_one": "Сохранять формат ключевых слов с весом 1 или нет?
Если выбрано, то формат ключевых слов будет сохранен как \"(test:1)\".
Если не выбрано, то формат будет \"test\" без скобок.", + "prompt_format": "Формат Prompt", + "tagcomplete_translate_desc2": "Выбор неправильного файла CSV приведет к пустому или «0» переводу. После изменения файла нажмите кнопку тестирования ниже и проверьте, правильно ли отображен переведенный результат на вашем локальном языке.", + "dblclick_to_disable": "Двойной щелчок, чтобы отключить/включить ключевое слово", + "batch_operation": "Пакетная операция", + "success": "Успех!", + "failed": "Не удалось!", + "packages_desc": "Некоторые пакеты Python обнаружены как незапущенные или запущенные безуспешно. Вам нужно щелкнуть, чтобы попробовать повторно установить их. После того, как все пакеты будут успешно установлены, все функции могут работать нормально.
Если вы по-прежнему не можете успешно установить их после нажатия кнопки установки, вам нужно вручную скопировать команду и выполнить ее в терминале.", + "installed": "Установленный", + "not_install": "Не установлен", + "install": "Установить", + "packages_installing": "Запуск установки ...... Если вам нужно проверить подробный журнал установки, перейдите на консоль WebUI, чтобы просмотреть его. После завершения установки это окно будет автоматически закрыто!", + "today_not_show": "Не показывать это окно сегодня", + "free": "Бесплатно", + "apply_for_free": "Подать заявку на бесплатное использование", + "use_chatgpt_gen_prompts": "Использовать ChatGPT для генерации промптов", + "input_image_desc": "Введите описание изображения, например: кошка, сидящая на вершине здания, очень высокое разрешение, очень реалистичное фото.", + "api_config": "Конфигурация API", + "image_desc": "Описание изображения", + "preset": "Предустановка", + "ai_one": "Первое предложение, отправленное AI", + "ai_two": "Второе предложение, отправленное AI", + "restore_to_default": "Восстановить настройки по умолчанию системы", + "generate": "Генерировать", + "generate_result": "Результат генерации", + "is_required": "Необходимо указать {0}!", + "is_not_dict": "{0} должен быть словарем!", + "no_response_from": "Нет ответа от {0}!", + "request_error": "Ошибка запроса {0}!", + "response_is_empty": "Ответ от {0} пуст!", + "response_error": "Ошибка ответа от {0}!", + "install_success": "{0} успешно установлен!", + "install_failed": "Ошибка: не удалось установить {0}!", + "translate_text_is_empty": "Текст для перевода пуст!", + "about_desc": "О программе, Обновления, Помощь, Документация", + "version": "Версия", + "unknown_version": "Неизвестная версия", + "has_new_version": "Доступна новая версия, пожалуйста, обновитесь", + "wiki_desc": "Инструкция по установке, подробные функции, инструкции по использованию, часто задаваемые вопросы и т. д. Смотрите:", + "switch_to_light_theme": "Переключиться на светлую тему", + "switch_to_dark_theme": "Переключиться на темную тему", + "offline_api": "Офлайн-перевод", + "initialize": "Инициализация", + "initialize_finished": "Инициализация завершена!", + "initialize_failed": "Ошибка инициализации!", + "model_not_initialized": "Модель не инициализирована", + "model_is_loading": "Загрузка модели...", + "download_model_desc": "

Если модель ранее не была загружена, программа автоматически загрузит модель с Hugging Face.

Модель имеет размер несколько гигабайт и требует высокоскоростного интернет-соединения.

Загрузка может занять некоторое время, пожалуйста, подождите. Если загрузка не удалась, повторите инициализацию.

Вы можете проверить подробные журналы и прогресс в консоли.

Файлы модели будут загружены в каталог: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

Если у вас нет хорошей сетевой среды или вам нужно выполнить загрузку в автономном режиме, проверьте:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Автоматическое заполнение при загрузке веб-страницы", + "disabled": "Отключено", + "last_input_prompt": "Последний запрос на ввод", + "is_break_before_wrap": "Добавить перенос строки перед ключевым словом \"BREAK\".
При выборе автоматически будет добавлен перенос строки.
Снятие выбора не приведет к выполнению никаких действий.", + "is_break_after_wrap": "Добавить перенос строки после ключевого слова \"BREAK\".
При выборе автоматически будет добавлен перенос строки.
Снятие выбора не приведет к выполнению никаких действий.", + "show_panel": "Показать панель", + "hide_panel": "Скрыть панель", + "show_group_tags": "Показать групповые теги", + "hide_group_tags": "Скрыть групповые теги", + "tags-copyright": "Источник интеграции ключевых слов от 路过银河(Zhihu)、неизвестный автор(Google Drive)、интернет и т.д. Благодарим этих бескорыстных участников!", + "reset_default_color": "Сбросить настройки цвета", + "clear_color": "Очистить цвет", + "tags_color": "Цвет тегов", + "keywords_blacklist": "Черный список ключевых слов", + "blacklist_desc": "Ключевые слова, установленные в черный список, будут автоматически фильтроваться плагином!", + "prompt_blacklist_list": "Список запрещенных ключевых слов", + "negative_prompt_blacklist_list": "Список запрещенных отрицательных ключевых слов", + "lora_blacklist_list": "Черный список Lora", + "lycoris_blacklist_list": "Черный список Lycoris", + "embedding_blacklist_list": "Черный список Embedding", + "one_keyword_per_line": "Одно ключевое слово на строку" + } + }, + { + "code": "sm_Latn_WS", + "name": "Samoan (Latn, Samoa)", + "lang": {} + }, + { + "code": "sr_Cyrl_RS", + "name": "Српски (ћирилица, Србија)", + "lang": {} + }, + { + "code": "sr_Latn_RS", + "name": "Srpski (latinica, Srbija)", + "lang": {} + }, + { + "code": "sk_SK", + "name": "Slovenčina (Slovensko)", + "lang": {} + }, + { + "code": "sl_SI", + "name": "Slovenščina (Slovenija)", + "lang": {} + }, + { + "code": "so_SO", + "name": "Soomaali (Soomaaliya)", + "lang": {} + }, + { + "code": "es_ES", + "name": "Español (España)", + "lang": { + "need_api_key": "Se necesita una clave de API", + "dont_need_api_key": "No se necesita una clave de API (inestable)", + "prompt": "Palabra clave", + "negative_prompt": "Palabra clave negativa", + "txt2img": "Texto a imagen", + "img2img": "Imagen a imagen", + "please_enter_new_keyword": "Por favor, introduce una nueva palabra clave", + "local_language": "Idioma local", + "increase_weight_add_parentheses": "Aumentar el peso de la palabra clave: añadir ()", + "increase_weight_subtract_parentheses": "Aumentar el peso de la palabra clave: restar ()", + "decrease_weight_add_brackets": "Disminuir el peso de la palabra clave: añadir []", + "decrease_weight_subtract_brackets": "Disminuir el peso de la palabra clave: restar []", + "translate_keyword_to_local_language": "Traducir palabra clave al idioma local", + "copy_to_clipboard": "Copiar al portapapeles", + "disable_keyword": "Desactivar palabra clave", + "enable_keyword": "Activar palabra clave", + "copy_keywords_to_clipboard": "Copiar todas las palabras clave al portapapeles", + "translate_keywords_to_local_language": "Traducir todas las palabras clave al idioma local", + "translate_keyword_to_english": "Traducir al inglés", + "translate_all_keywords_to_english": "Traducir todas las palabras clave no inglesas al inglés", + "auto_translate_to_english": "Traducción automática al inglés después de ingresar una nueva palabra clave", + "auto_translate_to_local_language": "Traducción automática al idioma local después de ingresar una nueva palabra clave", + "translate_api": "API de traducción", + "history": "Historial", + "clear_history": "Borrar historial", + "clear_history_confirm": "¿Seguro que quieres borrar el historial?", + "clear_history_success": "Historial borrado correctamente", + "max_history_count": "Número máximo de entradas en el historial", + "favorite": "Favoritos", + "add_to_favorite": "Añadir a favoritos", + "remove_from_favorite": "Eliminar de favoritos", + "use": "Utilizar", + "click_to_edit": "Haz clic en la izquierda para editar", + "drop_to_order": "Mantén pulsado el botón izquierdo del ratón y arrastra para ordenar", + "enter_to_save": "Presiona Enter para guardar la palabra clave", + "enter_to_add": "Presiona Enter para añadir una palabra clave", + "translate_api_not_found": "API de traducción no encontrada", + "translate_language_not_support": "Idioma de traducción no soportado", + "translate_api_not_support": "API de traducción no soportada", + "unset_name": "Nombre no establecido", + "no_history": "No hay historial", + "get_history_error": "Error al obtener el historial", + "no_favorite": "No hay favoritos", + "get_favorite_error": "Error al obtener los favoritos", + "hide_default_input_box": "Ocultar cuadro de entrada predeterminado", + "show_default_input_box": "Mostrar cuadro de entrada predeterminado", + "translate_test": "Prueba de traducción", + "close": "Cerrar", + "save": "Guardar", + "delete_all_keywords": "Eliminar todas las palabras clave", + "delete_all_keywords_confirm": "¿Estás seguro de que quieres eliminar todas las palabras clave?", + "whether_to_enable_tooltip": "¿Activar información sobre herramientas para cada función? Si ya estás familiarizado con todas las funciones de esta extensión, puedes desactivar esta opción.", + "delete_all_history": "Eliminar todo el historial", + "delete_all_history_confirm": "¿Seguro que quieres eliminar todo el historial?", + "please_enter_the_content_here": "Por favor, ingrese el contenido", + "not_api_key_desc": "Las interfaces de traducción gratuitas son inestables y no todas las interfaces se pueden usar en su computadora. Por favor, solicite una clave de API para usar la interfaz oficial estable.", + "setting_desc": "Configuración: API de traducción, traducción automática, mostrar/ocultar...", + "line_break_character": "Carácter de salto de línea", + "tagcomplete_translate_desc": "

Mejore la función de traducción utilizando danbooru.csv en la extensión {{nameTagComplete}} para lograr el objetivo de ahorrar solicitudes de red y traducción precisa.

Después de hacer clic en el botón Actualizar, se escanearán los archivos csv de las siguientes rutas:

extensions\\{{shortNameTagComplete}}\\tags

extensions\\{{shortName}}\\tags

Puede descargar archivos CSV desde el repositorio Git {{nameAssets}}/tags.

", + "test": "Prueba", + "refresh": "Actualizar", + "not_enable": "No habilitado", + "translate_result": "El resultado de la traducción de {0} es: {1}", + "not_found_csv_file": "Archivo csv no encontrado", + "theme_extension": "Tema: Estilo de complemento de extensión", + "is_remove_space": "Indica si deben eliminarse los espacios después de cada coma en la palabra clave.
La selección automática elimina los espacios (difícil de leer).
La deselección conserva un espacio (afectando el recuento de TOKEN).", + "theme": "Tema", + "enhance": "Mejorar", + "only_csv_on_auto": "La traducción automática utiliza solo la traducción CSV (no la traducción de red). Para utilizar tanto la traducción CSV como la traducción de red, haga clic en el botón de traducción manualmente.", + "one_translate_all_keywords": "Traducir todas las palabras clave con un solo clic", + "auto_translate": "Traducción automática de nuevas palabras clave", + "is_remove_last_comma": "¿Eliminar la última coma en el Prompt?
Si está marcado, el Prompt mostrará \"aaa,bbb,ccc\".
Si no está marcado, el Prompt mostrará \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "¿Mantener el formato de palabras clave con peso 0?
Si está marcado, el formato será \"(test:0)\".
Si no está marcado, el formato será \"test\" sin paréntesis.", + "is_keep_weight_one": "¿Mantener el formato de palabras clave con peso 1?
Si está marcado, el formato será \"(test:1)\".
Si no está marcado, el formato será \"test\" sin paréntesis.", + "prompt_format": "Formato de Prompt", + "tagcomplete_translate_desc2": "Seleccionar el archivo CSV incorrecto dará como resultado una traducción vacía o '0'. Después de cambiar el archivo, por favor haga clic en el botón de prueba a continuación y compruebe si el resultado traducido se muestra correctamente en su idioma local.", + "dblclick_to_disable": "Doble clic para desactivar/activar la palabra clave", + "batch_operation": "Operación por lotes", + "success": "Éxito!", + "failed": "Fracaso!", + "packages_desc": "Algunos paquetes de Python se detectan como no instalados o instalados sin éxito. Debe hacer clic para intentar reinstalarlos. Después de que todos los paquetes estén instalados correctamente, todas las funciones pueden funcionar normalmente.
Si aún no puede instalarlos con éxito después de hacer clic en el botón de instalación, debe copiar el comando manualmente y ejecutarlo en la terminal.", + "installed": "Instalado", + "not_install": "No instalado", + "install": "Instalar", + "packages_installing": "Iniciando la instalación...... Si necesita verificar el registro de instalación detallado, vaya a la consola WebUI para verlo. ¡Después de que finalice la instalación, esta ventana se cerrará automáticamente!", + "today_not_show": "No mostrar esta ventana hoy", + "free": "Gratis", + "apply_for_free": "Solicitar uso gratuito", + "use_chatgpt_gen_prompts": "Usar ChatGPT para generar Prompts", + "input_image_desc": "Ingrese la descripción de la imagen, por ejemplo: un gato sentado en la parte superior de un edificio, una foto muy realista y de alta definición.", + "api_config": "Configuración del API", + "image_desc": "Descripción de la Imagen", + "preset": "Preajuste", + "ai_one": "Primera oración enviada a AI", + "ai_two": "Segunda oración enviada a AI", + "restore_to_default": "Restaurar a los valores predeterminados del sistema", + "generate": "Generar", + "generate_result": "Generar Resultado", + "is_required": "¡{0} es obligatorio!", + "is_not_dict": "¡{0} debe ser un diccionario!", + "no_response_from": "¡No se ha recibido respuesta de {0}!", + "request_error": "¡Error de solicitud {0}!", + "response_is_empty": "¡La respuesta de {0} está vacía!", + "response_error": "¡Error de respuesta de {0}!", + "install_success": "¡{0} instalado correctamente!", + "install_failed": "Error: ¡No se pudo instalar {0}!", + "translate_text_is_empty": "¡El texto de traducción está vacío!", + "about_desc": "Acerca de, Actualizaciones, Ayuda, Documentación", + "version": "Versión", + "unknown_version": "Versión desconocida", + "has_new_version": "Hay una nueva versión disponible, por favor actualiza", + "wiki_desc": "Tutorial de instalación, características detalladas, instrucciones de uso, preguntas frecuentes, etc. Ver:", + "switch_to_light_theme": "Cambiar a tema claro", + "switch_to_dark_theme": "Cambiar a tema oscuro", + "offline_api": "Traducción sin conexión", + "initialize": "Inicializar", + "initialize_finished": "Inicialización finalizada!", + "initialize_failed": "Error de inicialización!", + "model_not_initialized": "Modelo no inicializado", + "model_is_loading": "Cargando modelo...", + "download_model_desc": "

Si el modelo no se ha descargado anteriormente, el programa lo descargará automáticamente desde Hugging Face.

El modelo tiene varios gigabytes de tamaño y requiere una conexión a Internet de alta velocidad.

La descarga puede tardar un tiempo, por favor, ten paciencia. Si la descarga falla, por favor, reinicializa.

Puedes consultar los registros detallados y el progreso en la consola.

Los archivos del modelo se descargarán en el directorio: extensions\\{{shortName}}\\models

", + "download_model_desc2": "

Si no tienes un buen entorno de red o necesitas descargar sin conexión, por favor verifica:

{{docs}}/OfflineTranslation.html

", + "auto_input_prompt": "Indicación de relleno automático cuando se carga la página", + "disabled": "Deshabilitado", + "last_input_prompt": "Última indicación de entrada", + "is_break_before_wrap": "Si agregar un salto de línea antes de la palabra clave \"BREAK\".
Cuando está seleccionado, se agregará automáticamente un salto de línea.
Si no está seleccionado, no se realizará ninguna acción.", + "is_break_after_wrap": "Si agregar un salto de línea después de la palabra clave \"BREAK\".
Cuando está seleccionado, se agregará automáticamente un salto de línea.
Si no está seleccionado, no se realizará ninguna acción.", + "show_panel": "Mostrar panel", + "hide_panel": "Ocultar panel", + "show_group_tags": "Mostrar etiquetas de grupo", + "hide_group_tags": "Ocultar etiquetas de grupo", + "tags-copyright": "Fuente de integración de palabras clave de 路过银河(Zhihu)、autor desconocido(Google Drive)、internet, etc. ¡Gracias a estos generosos colaboradores!", + "reset_default_color": "Restablecer a color predeterminado", + "clear_color": "Borrar color", + "tags_color": "Color de las etiquetas", + "keywords_blacklist": "Lista negra de palabras clave", + "blacklist_desc": "¡Las palabras clave establecidas como lista negra serán filtradas automáticamente por el complemento!", + "prompt_blacklist_list": "Lista negra de palabras clave de la sugerencia", + "negative_prompt_blacklist_list": "Lista negra de palabras clave negativas de la sugerencia", + "lora_blacklist_list": "Lista negra de Lora", + "lycoris_blacklist_list": "Lista negra de Lycoris", + "embedding_blacklist_list": "Lista negra de Embedding", + "one_keyword_per_line": "Una palabra clave por línea" + } + }, + { + "code": "sw_KE", + "name": "Kiswahili (Kenya)", + "lang": {} + }, + { + "code": "sv_SE", + "name": "Svenska (Sverige)", + "lang": {} + }, + { + "code": "ty_PF", + "name": "Reo Tahiti (Polynésie française)", + "lang": {} + }, + { + "code": "ta_IN", + "name": "தமிழ் (இந்தியா)", + "lang": {} + }, + { + "code": "tt_Latn_RU", + "name": "Татарча (латин, Россия)", + "lang": {} + }, + { + "code": "te_IN", + "name": "తెలుగు (భారత)", + "lang": {} + }, + { + "code": "th_TH", + "name": "ไทย (ไทย)", + "lang": {} + }, + { + "code": "bo_CN", + "name": "བོད་ཡིག (རྒྱ་གར།)", + "lang": {} + }, + { + "code": "ti_ET", + "name": "ትግርኛ (ኢትዮጵያ)", + "lang": {} + }, + { + "code": "to_TO", + "name": "lea fakatonga (Tonga)", + "lang": {} + }, + { + "code": "tr_TR", + "name": "Türkçe (Türkiye)", + "lang": {} + }, + { + "code": "uk_UA", + "name": "Українська (Україна)", + "lang": {} + }, + { + "code": "ur_PK", + "name": "اردو (پاکستان)", + "lang": {} + }, + { + "code": "ug_Arab_CN", + "name": "ئۇيغۇرچە (ئۇيغۇرچە، جۇڭگو)", + "lang": {} + }, + { + "code": "uz_Latn_UZ", + "name": "O'zbekcha (Lotin, O'zbekiston)", + "lang": {} + }, + { + "code": "vi_VN", + "name": "Tiếng Việt (Việt Nam)", + "lang": {} + }, + { + "code": "cy_GB", + "name": "Cymraeg (Y Deyrnas Unedig)", + "lang": {} + }, + { + "code": "yua_MX", + "name": "Yucatec Maya (México)", + "lang": {} + }, + { + "code": "zu_ZA", + "name": "isiZulu (iNingizimu Afrika)", + "lang": {} + } + ] +} \ No newline at end of file diff --git a/install.py b/install.py new file mode 100644 index 0000000000000000000000000000000000000000..6db11671debfe0402fa00510d236bdbb16b725b3 --- /dev/null +++ b/install.py @@ -0,0 +1,28 @@ +import launch + +packages = { + "chardet": "chardet", + "fastapi": "fastapi", + "execjs": "PyExecJS", + "lxml": "lxml", + "tqdm": "tqdm", + "pathos": "pathos", + "cryptography": "cryptography", + + # The following packages are required for translation service. If you do not need translation service, you can remove them. + # 以下是翻译所需的包,如果不需要翻译服务,可以删除掉它们。 + "openai": "openai", + "boto3": "boto3", + "aliyunsdkcore": "aliyun-python-sdk-core", + "aliyunsdkalimt": "aliyun-python-sdk-alimt", +} + +if __name__ == "__main__": + for package_name in packages: + package = packages[package_name] + try: + if not launch.is_installed(package_name): + launch.run_pip(f"install {package}", f"sd-webui-prompt-all-in-one: {package_name}") + except Exception as e: + print(e) + print(f'Warning: Failed to install {package}, some preprocessors may not work.') \ No newline at end of file diff --git a/javascript/main.entry.js b/javascript/main.entry.js new file mode 100644 index 0000000000000000000000000000000000000000..c1f8a20efcb2b9a111c36ab1b072b4911a674e22 --- /dev/null +++ b/javascript/main.entry.js @@ -0,0 +1,137 @@ +(function(nr){typeof define=="function"&&define.amd?define(nr):nr()})(function(){"use strict";var zj=Object.defineProperty;var Gj=(nr,bt,Ei)=>bt in nr?zj(nr,bt,{enumerable:!0,configurable:!0,writable:!0,value:Ei}):nr[bt]=Ei;var $b=(nr,bt,Ei)=>(Gj(nr,typeof bt!="symbol"?bt+"":bt,Ei),Ei);function nr(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i!!n[i.toLowerCase()]:i=>!!n[i]}function bt(e){if(Qe(e)){const t={};for(let n=0;n{if(n){const r=n.split(Bb);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function lt(e){let t="";if(zt(e))t=e;else if(Qe(e))for(let n=0;nhs(n,t))}const ce=e=>zt(e)?e:e==null?"":Qe(e)||Rt(e)&&(e.toString===gp||!pt(e.toString))?JSON.stringify(e,dp,2):String(e),dp=(e,t)=>t&&t.__v_isRef?dp(e,t.value):uo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i])=>(n[`${r} =>`]=i,n),{})}:co(t)?{[`Set(${t.size})`]:[...t.values()]}:Rt(t)&&!Qe(t)&&!mp(t)?String(t):t,Dt={},lo=[],mr=()=>{},Kb=()=>!1,Vb=/^on[^a-z]/,Ma=e=>Vb.test(e),Uu=e=>e.startsWith("onUpdate:"),kn=Object.assign,Wu=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},qb=Object.prototype.hasOwnProperty,_t=(e,t)=>qb.call(e,t),Qe=Array.isArray,uo=e=>ms(e)==="[object Map]",co=e=>ms(e)==="[object Set]",pp=e=>ms(e)==="[object Date]",pt=e=>typeof e=="function",zt=e=>typeof e=="string",gs=e=>typeof e=="symbol",Rt=e=>e!==null&&typeof e=="object",hp=e=>Rt(e)&&pt(e.then)&&pt(e.catch),gp=Object.prototype.toString,ms=e=>gp.call(e),zb=e=>ms(e).slice(8,-1),mp=e=>ms(e)==="[object Object]",Ku=e=>zt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Fa=nr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),$a=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Gb=/-(\w)/g,Ar=$a(e=>e.replace(Gb,(t,n)=>n?n.toUpperCase():"")),Yb=/\B([A-Z])/g,fo=$a(e=>e.replace(Yb,"-$1").toLowerCase()),Ba=$a(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vu=$a(e=>e?`on${Ba(e)}`:""),vs=(e,t)=>!Object.is(e,t),Ha=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ua=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let vp;const Xb=()=>vp||(vp=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Kn;class Jb{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Kn,!t&&Kn&&(this.index=(Kn.scopes||(Kn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Kn;try{return Kn=this,t()}finally{Kn=n}}}on(){Kn=this}off(){Kn=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},bp=e=>(e.w&ai)>0,Cp=e=>(e.n&ai)>0,eC=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(h==="length"||h>=c)&&l.push(d)})}else switch(n!==void 0&&l.push(s.get(n)),t){case"add":Qe(e)?Ku(n)&&l.push(s.get("length")):(l.push(s.get(Oi)),uo(e)&&l.push(s.get(Yu)));break;case"delete":Qe(e)||(l.push(s.get(Oi)),uo(e)&&l.push(s.get(Yu)));break;case"set":uo(e)&&l.push(s.get(Oi));break}if(l.length===1)l[0]&&Ju(l[0]);else{const c=[];for(const d of l)d&&c.push(...d);Ju(qu(c))}}function Ju(e,t){const n=Qe(e)?e:[...e];for(const r of n)r.computed&&xp(r);for(const r of n)r.computed||xp(r)}function xp(e,t){(e!==vr||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const nC=nr("__proto__,__v_isRef,__isVue"),kp=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(gs)),rC=Zu(),iC=Zu(!1,!0),oC=Zu(!0),Sp=sC();function sC(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=kt(this);for(let o=0,s=this.length;o{e[t]=function(...n){po();const r=kt(this)[t].apply(this,n);return ho(),r}}),e}function aC(e){const t=kt(this);return Pn(t,"has",e),t.hasOwnProperty(e)}function Zu(e=!1,t=!1){return function(r,i,o){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&o===(e?t?TC:Np:t?Rp:Dp).get(r))return r;const s=Qe(r);if(!e){if(s&&_t(Sp,i))return Reflect.get(Sp,i,o);if(i==="hasOwnProperty")return aC}const l=Reflect.get(r,i,o);return(gs(i)?kp.has(i):nC(i))||(e||Pn(r,"get",i),t)?l:mn(l)?s&&Ku(i)?l:l.value:Rt(l)?e?tc(l):Dn(l):l}}const lC=Ap(),uC=Ap(!0);function Ap(e=!1){return function(n,r,i,o){let s=n[r];if(mo(s)&&mn(s)&&!mn(i))return!1;if(!e&&(!Ya(i)&&!mo(i)&&(s=kt(s),i=kt(i)),!Qe(n)&&mn(s)&&!mn(i)))return s.value=i,!0;const l=Qe(n)&&Ku(r)?Number(r)e,Wa=e=>Reflect.getPrototypeOf(e);function Ka(e,t,n=!1,r=!1){e=e.__v_raw;const i=kt(e),o=kt(t);n||(t!==o&&Pn(i,"get",t),Pn(i,"get",o));const{has:s}=Wa(i),l=r?Qu:n?rc:bs;if(s.call(i,t))return l(e.get(t));if(s.call(i,o))return l(e.get(o));e!==i&&e.get(t)}function Va(e,t=!1){const n=this.__v_raw,r=kt(n),i=kt(e);return t||(e!==i&&Pn(r,"has",e),Pn(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function qa(e,t=!1){return e=e.__v_raw,!t&&Pn(kt(e),"iterate",Oi),Reflect.get(e,"size",e)}function Op(e){e=kt(e);const t=kt(this);return Wa(t).has.call(t,e)||(t.add(e),Ur(t,"add",e,e)),this}function Lp(e,t){t=kt(t);const n=kt(this),{has:r,get:i}=Wa(n);let o=r.call(n,e);o||(e=kt(e),o=r.call(n,e));const s=i.call(n,e);return n.set(e,t),o?vs(t,s)&&Ur(n,"set",e,t):Ur(n,"add",e,t),this}function Ip(e){const t=kt(this),{has:n,get:r}=Wa(t);let i=n.call(t,e);i||(e=kt(e),i=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return i&&Ur(t,"delete",e,void 0),o}function Pp(){const e=kt(this),t=e.size!==0,n=e.clear();return t&&Ur(e,"clear",void 0,void 0),n}function za(e,t){return function(r,i){const o=this,s=o.__v_raw,l=kt(s),c=t?Qu:e?rc:bs;return!e&&Pn(l,"iterate",Oi),s.forEach((d,h)=>r.call(i,c(d),c(h),o))}}function Ga(e,t,n){return function(...r){const i=this.__v_raw,o=kt(i),s=uo(o),l=e==="entries"||e===Symbol.iterator&&s,c=e==="keys"&&s,d=i[e](...r),h=n?Qu:t?rc:bs;return!t&&Pn(o,"iterate",c?Yu:Oi),{next(){const{value:p,done:y}=d.next();return y?{value:p,done:y}:{value:l?[h(p[0]),h(p[1])]:h(p),done:y}},[Symbol.iterator](){return this}}}}function ui(e){return function(...t){return e==="delete"?!1:this}}function gC(){const e={get(o){return Ka(this,o)},get size(){return qa(this)},has:Va,add:Op,set:Lp,delete:Ip,clear:Pp,forEach:za(!1,!1)},t={get(o){return Ka(this,o,!1,!0)},get size(){return qa(this)},has:Va,add:Op,set:Lp,delete:Ip,clear:Pp,forEach:za(!1,!0)},n={get(o){return Ka(this,o,!0)},get size(){return qa(this,!0)},has(o){return Va.call(this,o,!0)},add:ui("add"),set:ui("set"),delete:ui("delete"),clear:ui("clear"),forEach:za(!0,!1)},r={get(o){return Ka(this,o,!0,!0)},get size(){return qa(this,!0)},has(o){return Va.call(this,o,!0)},add:ui("add"),set:ui("set"),delete:ui("delete"),clear:ui("clear"),forEach:za(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Ga(o,!1,!1),n[o]=Ga(o,!0,!1),t[o]=Ga(o,!1,!0),r[o]=Ga(o,!0,!0)}),[e,n,t,r]}const[mC,vC,yC,bC]=gC();function ec(e,t){const n=t?e?bC:yC:e?vC:mC;return(r,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(_t(n,i)&&i in r?n:r,i,o)}const CC={get:ec(!1,!1)},_C={get:ec(!1,!0)},wC={get:ec(!0,!1)},Dp=new WeakMap,Rp=new WeakMap,Np=new WeakMap,TC=new WeakMap;function xC(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function kC(e){return e.__v_skip||!Object.isExtensible(e)?0:xC(zb(e))}function Dn(e){return mo(e)?e:nc(e,!1,Ep,CC,Dp)}function SC(e){return nc(e,!1,hC,_C,Rp)}function tc(e){return nc(e,!0,pC,wC,Np)}function nc(e,t,n,r,i){if(!Rt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=i.get(e);if(o)return o;const s=kC(e);if(s===0)return e;const l=new Proxy(e,s===2?r:n);return i.set(e,l),l}function go(e){return mo(e)?go(e.__v_raw):!!(e&&e.__v_isReactive)}function mo(e){return!!(e&&e.__v_isReadonly)}function Ya(e){return!!(e&&e.__v_isShallow)}function Mp(e){return go(e)||mo(e)}function kt(e){const t=e&&e.__v_raw;return t?kt(t):e}function Fp(e){return ja(e,"__v_skip",!0),e}const bs=e=>Rt(e)?Dn(e):e,rc=e=>Rt(e)?tc(e):e;function $p(e){li&&vr&&(e=kt(e),Tp(e.dep||(e.dep=qu())))}function Bp(e,t){e=kt(e);const n=e.dep;n&&Ju(n)}function mn(e){return!!(e&&e.__v_isRef===!0)}function Et(e){return Hp(e,!1)}function AC(e){return Hp(e,!0)}function Hp(e,t){return mn(e)?e:new EC(e,t)}class EC{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:kt(t),this._value=n?t:bs(t)}get value(){return $p(this),this._value}set value(t){const n=this.__v_isShallow||Ya(t)||mo(t);t=n?t:kt(t),vs(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:bs(t),Bp(this))}}function jp(e){return mn(e)?e.value:e}const OC={get:(e,t,n)=>jp(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return mn(i)&&!mn(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Up(e){return go(e)?e:new Proxy(e,OC)}var Wp;class LC{constructor(t,n,r,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Wp]=!1,this._dirty=!0,this.effect=new Xu(t,()=>{this._dirty||(this._dirty=!0,Bp(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=kt(this);return $p(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Wp="__v_isReadonly";function IC(e,t,n=!1){let r,i;const o=pt(e);return o?(r=e,i=mr):(r=e.get,i=e.set),new LC(r,i,o||!i,n)}function Xj(e,...t){}function ci(e,t,n,r){let i;try{i=r?e(...r):e()}catch(o){Xa(o,t,n)}return i}function yr(e,t,n,r){if(pt(e)){const o=ci(e,t,n,r);return o&&hp(o)&&o.catch(s=>{Xa(s,t,n)}),o}const i=[];for(let o=0;o>>1;_s(vn[r])Er&&vn.splice(t,1)}function NC(e){Qe(e)?vo.push(...e):(!Wr||!Wr.includes(e,e.allowRecurse?Li+1:Li))&&vo.push(e),Vp()}function qp(e,t=Cs?Er+1:0){for(;t_s(n)-_s(r)),Li=0;Lie.id==null?1/0:e.id,MC=(e,t)=>{const n=_s(e)-_s(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Gp(e){ic=!1,Cs=!0,vn.sort(MC);const t=mr;try{for(Er=0;Erzt(C)?C.trim():C)),p&&(i=n.map(Ua))}let l,c=r[l=Vu(t)]||r[l=Vu(Ar(t))];!c&&o&&(c=r[l=Vu(fo(t))]),c&&yr(c,e,6,i);const d=r[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,yr(d,e,6,i)}}function Yp(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const o=e.emits;let s={},l=!1;if(!pt(e)){const c=d=>{const h=Yp(d,t,!0);h&&(l=!0,kn(s,h))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Rt(e)&&r.set(e,null),null):(Qe(o)?o.forEach(c=>s[c]=null):kn(s,o),Rt(e)&&r.set(e,s),s)}function Za(e,t){return!e||!Ma(t)?!1:(t=t.slice(2).replace(/Once$/,""),_t(e,t[0].toLowerCase()+t.slice(1))||_t(e,fo(t))||_t(e,t))}let dn=null,Qa=null;function el(e){const t=dn;return dn=e,Qa=e&&e.type.__scopeId||null,t}function yo(e){Qa=e}function bo(){Qa=null}function ac(e,t=dn,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&wh(-1);const o=el(t);let s;try{s=e(...i)}finally{el(o),r._d&&wh(1)}return s};return r._n=!0,r._c=!0,r._d=!0,r}function Jj(){}function lc(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:o,propsOptions:[s],slots:l,attrs:c,emit:d,render:h,renderCache:p,data:y,setupState:C,ctx:w,inheritAttrs:k}=e;let O,N;const L=el(e);try{if(n.shapeFlag&4){const D=i||r;O=Or(h.call(D,D,p,o,C,y,w)),N=c}else{const D=t;O=Or(D.length>1?D(o,{attrs:c,slots:l,emit:d}):D(o,null)),N=t.props?c:$C(c)}}catch(D){ks.length=0,Xa(D,e,1),O=xe(fi)}let K=O;if(N&&k!==!1){const D=Object.keys(N),{shapeFlag:Te}=K;D.length&&Te&7&&(s&&D.some(Uu)&&(N=BC(N,s)),K=_o(K,N))}return n.dirs&&(K=_o(K),K.dirs=K.dirs?K.dirs.concat(n.dirs):n.dirs),n.transition&&(K.transition=n.transition),O=K,el(L),O}const $C=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ma(n))&&((t||(t={}))[n]=e[n]);return t},BC=(e,t)=>{const n={};for(const r in e)(!Uu(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function HC(e,t,n){const{props:r,children:i,component:o}=e,{props:s,children:l,patchFlag:c}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Xp(r,s,d):!!s;if(c&8){const h=t.dynamicProps;for(let p=0;pe.__isSuspense;function WC(e,t){t&&t.pendingBranch?Qe(e)?t.effects.push(...e):t.effects.push(e):NC(e)}function Jp(e,t){if(Gt){let n=Gt.provides;const r=Gt.parent&&Gt.parent.provides;r===n&&(n=Gt.provides=Object.create(r)),n[e]=t}}function Co(e,t,n=!1){const r=Gt||dn;if(r){const i=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&pt(t)?t.call(r.proxy):t}}const tl={};function rr(e,t,n){return Zp(e,t,n)}function Zp(e,t,{immediate:n,deep:r,flush:i,onTrack:o,onTrigger:s}=Dt){const l=yp()===(Gt==null?void 0:Gt.scope)?Gt:null;let c,d=!1,h=!1;if(mn(e)?(c=()=>e.value,d=Ya(e)):go(e)?(c=()=>e,r=!0):Qe(e)?(h=!0,d=e.some(K=>go(K)||Ya(K)),c=()=>e.map(K=>{if(mn(K))return K.value;if(go(K))return Ii(K);if(pt(K))return ci(K,l,2)})):pt(e)?t?c=()=>ci(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return p&&p(),yr(e,l,3,[y])}:c=mr,t&&r){const K=c;c=()=>Ii(K())}let p,y=K=>{p=N.onStop=()=>{ci(K,l,4)}},C;if(Es)if(y=mr,t?n&&yr(t,l,3,[c(),h?[]:void 0,y]):c(),i==="sync"){const K=F_();C=K.__watcherHandles||(K.__watcherHandles=[])}else return mr;let w=h?new Array(e.length).fill(tl):tl;const k=()=>{if(N.active)if(t){const K=N.run();(r||d||(h?K.some((D,Te)=>vs(D,w[Te])):vs(K,w)))&&(p&&p(),yr(t,l,3,[K,w===tl?void 0:h&&w[0]===tl?[]:w,y]),w=K)}else N.run()};k.allowRecurse=!!t;let O;i==="sync"?O=k:i==="post"?O=()=>Nn(k,l&&l.suspense):(k.pre=!0,l&&(k.id=l.uid),O=()=>sc(k));const N=new Xu(c,O);t?n?k():w=N.run():i==="post"?Nn(N.run.bind(N),l&&l.suspense):N.run();const L=()=>{N.stop(),l&&l.scope&&Wu(l.scope.effects,N)};return C&&C.push(L),L}function KC(e,t,n){const r=this.proxy,i=zt(e)?e.includes(".")?Qp(r,e):()=>r[e]:e.bind(r,r);let o;pt(t)?o=t:(o=t.handler,n=t);const s=Gt;wo(this);const l=Zp(i,o.bind(r),n);return s?wo(s):Ni(),l}function Qp(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{Ii(n,t)});else if(mp(e))for(const n in e)Ii(e[n],t);return e}function Rn(e){return pt(e)?{setup:e,name:e.name}:e}const ws=e=>!!e.type.__asyncLoader,eh=e=>e.type.__isKeepAlive;function VC(e,t){th(e,"a",t)}function qC(e,t){th(e,"da",t)}function th(e,t,n=Gt){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(nl(t,r,n),n){let i=n.parent;for(;i&&i.parent;)eh(i.parent.vnode)&&zC(r,t,n,i),i=i.parent}}function zC(e,t,n,r){const i=nl(t,e,r,!0);nh(()=>{Wu(r[t],i)},n)}function nl(e,t,n=Gt,r=!1){if(n){const i=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...s)=>{if(n.isUnmounted)return;po(),wo(n);const l=yr(t,n,e,s);return Ni(),ho(),l});return r?i.unshift(o):i.push(o),o}}const Kr=e=>(t,n=Gt)=>(!Es||e==="sp")&&nl(e,(...r)=>t(...r),n),GC=Kr("bm"),uc=Kr("m"),YC=Kr("bu"),XC=Kr("u"),JC=Kr("bum"),nh=Kr("um"),ZC=Kr("sp"),QC=Kr("rtg"),e_=Kr("rtc");function t_(e,t=Gt){nl("ec",e,t)}function be(e,t){const n=dn;if(n===null)return e;const r=cl(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let o=0;ot(s,l,void 0,o&&o[l]));else{const s=Object.keys(e);i=new Array(s.length);for(let l=0,c=s.length;lxh(t)?!(t.type===fi||t.type===He&&!sh(t.children)):!0)?e:null}const dc=e=>e?Ah(e)?cl(e)||e.proxy:dc(e.parent):null,Ts=kn(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>dc(e.parent),$root:e=>dc(e.root),$emit:e=>e.emit,$options:e=>gc(e),$forceUpdate:e=>e.f||(e.f=()=>sc(e.update)),$nextTick:e=>e.n||(e.n=Ja.bind(e.proxy)),$watch:e=>KC.bind(e)}),pc=(e,t)=>e!==Dt&&!e.__isScriptSetup&&_t(e,t),i_={get({_:e},t){const{ctx:n,setupState:r,data:i,props:o,accessCache:s,type:l,appContext:c}=e;let d;if(t[0]!=="$"){const C=s[t];if(C!==void 0)switch(C){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return o[t]}else{if(pc(r,t))return s[t]=1,r[t];if(i!==Dt&&_t(i,t))return s[t]=2,i[t];if((d=e.propsOptions[0])&&_t(d,t))return s[t]=3,o[t];if(n!==Dt&&_t(n,t))return s[t]=4,n[t];hc&&(s[t]=0)}}const h=Ts[t];let p,y;if(h)return t==="$attrs"&&Pn(e,"get",t),h(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==Dt&&_t(n,t))return s[t]=4,n[t];if(y=c.config.globalProperties,_t(y,t))return y[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:o}=e;return pc(i,t)?(i[t]=n,!0):r!==Dt&&_t(r,t)?(r[t]=n,!0):_t(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:o}},s){let l;return!!n[s]||e!==Dt&&_t(e,s)||pc(t,s)||(l=o[0])&&_t(l,s)||_t(r,s)||_t(Ts,s)||_t(i.config.globalProperties,s)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:_t(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let hc=!0;function o_(e){const t=gc(e),n=e.proxy,r=e.ctx;hc=!1,t.beforeCreate&&ah(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:s,watch:l,provide:c,inject:d,created:h,beforeMount:p,mounted:y,beforeUpdate:C,updated:w,activated:k,deactivated:O,beforeDestroy:N,beforeUnmount:L,destroyed:K,unmounted:D,render:Te,renderTracked:m,renderTriggered:ue,errorCaptured:I,serverPrefetch:S,expose:P,inheritAttrs:j,components:ee,directives:J,filters:ye}=t;if(d&&s_(d,r,null,e.appContext.config.unwrapInjectedRef),s)for(const z in s){const ie=s[z];pt(ie)&&(r[z]=ie.bind(n))}if(i){const z=i.call(n,n);Rt(z)&&(e.data=Dn(z))}if(hc=!0,o)for(const z in o){const ie=o[z],fe=pt(ie)?ie.bind(n,n):pt(ie.get)?ie.get.bind(n,n):mr,nt=!pt(ie)&&pt(ie.set)?ie.set.bind(n):mr,Ve=tn({get:fe,set:nt});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>Ve.value,set:ne=>Ve.value=ne})}if(l)for(const z in l)lh(l[z],r,n,z);if(c){const z=pt(c)?c.call(n):c;Reflect.ownKeys(z).forEach(ie=>{Jp(ie,z[ie])})}h&&ah(h,e,"c");function Ne(z,ie){Qe(ie)?ie.forEach(fe=>z(fe.bind(n))):ie&&z(ie.bind(n))}if(Ne(GC,p),Ne(uc,y),Ne(YC,C),Ne(XC,w),Ne(VC,k),Ne(qC,O),Ne(t_,I),Ne(e_,m),Ne(QC,ue),Ne(JC,L),Ne(nh,D),Ne(ZC,S),Qe(P))if(P.length){const z=e.exposed||(e.exposed={});P.forEach(ie=>{Object.defineProperty(z,ie,{get:()=>n[ie],set:fe=>n[ie]=fe})})}else e.exposed||(e.exposed={});Te&&e.render===mr&&(e.render=Te),j!=null&&(e.inheritAttrs=j),ee&&(e.components=ee),J&&(e.directives=J)}function s_(e,t,n=mr,r=!1){Qe(e)&&(e=mc(e));for(const i in e){const o=e[i];let s;Rt(o)?"default"in o?s=Co(o.from||i,o.default,!0):s=Co(o.from||i):s=Co(o),mn(s)&&r?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:l=>s.value=l}):t[i]=s}}function ah(e,t,n){yr(Qe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function lh(e,t,n,r){const i=r.includes(".")?Qp(n,r):()=>n[r];if(zt(e)){const o=t[e];pt(o)&&rr(i,o)}else if(pt(e))rr(i,e.bind(n));else if(Rt(e))if(Qe(e))e.forEach(o=>lh(o,t,n,r));else{const o=pt(e.handler)?e.handler.bind(n):t[e.handler];pt(o)&&rr(i,o,e)}}function gc(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:s}}=e.appContext,l=o.get(t);let c;return l?c=l:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(d=>il(c,d,s,!0)),il(c,t,s)),Rt(t)&&o.set(t,c),c}function il(e,t,n,r=!1){const{mixins:i,extends:o}=t;o&&il(e,o,n,!0),i&&i.forEach(s=>il(e,s,n,!0));for(const s in t)if(!(r&&s==="expose")){const l=a_[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const a_={data:uh,props:Di,emits:Di,methods:Di,computed:Di,beforeCreate:Sn,created:Sn,beforeMount:Sn,mounted:Sn,beforeUpdate:Sn,updated:Sn,beforeDestroy:Sn,beforeUnmount:Sn,destroyed:Sn,unmounted:Sn,activated:Sn,deactivated:Sn,errorCaptured:Sn,serverPrefetch:Sn,components:Di,directives:Di,watch:u_,provide:uh,inject:l_};function uh(e,t){return t?e?function(){return kn(pt(e)?e.call(this,this):e,pt(t)?t.call(this,this):t)}:t:e}function l_(e,t){return Di(mc(e),mc(t))}function mc(e){if(Qe(e)){const t={};for(let n=0;n0)&&!(s&16)){if(s&8){const h=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[y,C]=fh(p,t,!0);kn(s,y),C&&l.push(...C)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!o&&!c)return Rt(e)&&r.set(e,lo),lo;if(Qe(o))for(let h=0;h-1,C[1]=k<0||w-1||_t(C,"default"))&&l.push(p)}}}const d=[s,l];return Rt(e)&&r.set(e,d),d}function dh(e){return e[0]!=="$"}function ph(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function hh(e,t){return ph(e)===ph(t)}function gh(e,t){return Qe(t)?t.findIndex(n=>hh(n,e)):pt(t)&&hh(t,e)?0:-1}const mh=e=>e[0]==="_"||e==="$stable",yc=e=>Qe(e)?e.map(Or):[Or(e)],d_=(e,t,n)=>{if(t._n)return t;const r=ac((...i)=>yc(t(...i)),n);return r._c=!1,r},vh=(e,t,n)=>{const r=e._ctx;for(const i in e){if(mh(i))continue;const o=e[i];if(pt(o))t[i]=d_(i,o,r);else if(o!=null){const s=yc(o);t[i]=()=>s}}},yh=(e,t)=>{const n=yc(t);e.slots.default=()=>n},p_=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=kt(t),ja(t,"_",n)):vh(t,e.slots={})}else e.slots={},t&&yh(e,t);ja(e.slots,al,1)},h_=(e,t,n)=>{const{vnode:r,slots:i}=e;let o=!0,s=Dt;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(kn(i,t),!n&&l===1&&delete i._):(o=!t.$stable,vh(t,i)),s=t}else t&&(yh(e,t),s={default:1});if(o)for(const l in i)!mh(l)&&!(l in s)&&delete i[l]};function bh(){return{app:null,config:{isNativeTag:Kb,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let g_=0;function m_(e,t){return function(r,i=null){pt(r)||(r=Object.assign({},r)),i!=null&&!Rt(i)&&(i=null);const o=bh(),s=new Set;let l=!1;const c=o.app={_uid:g_++,_component:r,_props:i,_container:null,_context:o,_instance:null,version:$_,get config(){return o.config},set config(d){},use(d,...h){return s.has(d)||(d&&pt(d.install)?(s.add(d),d.install(c,...h)):pt(d)&&(s.add(d),d(c,...h))),c},mixin(d){return o.mixins.includes(d)||o.mixins.push(d),c},component(d,h){return h?(o.components[d]=h,c):o.components[d]},directive(d,h){return h?(o.directives[d]=h,c):o.directives[d]},mount(d,h,p){if(!l){const y=xe(r,i);return y.appContext=o,h&&t?t(y,d):e(y,d,p),l=!0,c._container=d,d.__vue_app__=c,cl(y.component)||y.component.proxy}},unmount(){l&&(e(null,c._container),delete c._container.__vue_app__)},provide(d,h){return o.provides[d]=h,c}};return c}}function bc(e,t,n,r,i=!1){if(Qe(e)){e.forEach((y,C)=>bc(y,t&&(Qe(t)?t[C]:t),n,r,i));return}if(ws(r)&&!i)return;const o=r.shapeFlag&4?cl(r.component)||r.component.proxy:r.el,s=i?null:o,{i:l,r:c}=e,d=t&&t.r,h=l.refs===Dt?l.refs={}:l.refs,p=l.setupState;if(d!=null&&d!==c&&(zt(d)?(h[d]=null,_t(p,d)&&(p[d]=null)):mn(d)&&(d.value=null)),pt(c))ci(c,l,12,[s,h]);else{const y=zt(c),C=mn(c);if(y||C){const w=()=>{if(e.f){const k=y?_t(p,c)?p[c]:h[c]:c.value;i?Qe(k)&&Wu(k,o):Qe(k)?k.includes(o)||k.push(o):y?(h[c]=[o],_t(p,c)&&(p[c]=h[c])):(c.value=[o],e.k&&(h[e.k]=c.value))}else y?(h[c]=s,_t(p,c)&&(p[c]=s)):C&&(c.value=s,e.k&&(h[e.k]=s))};s?(w.id=-1,Nn(w,n)):w()}}}const Nn=WC;function v_(e){return y_(e)}function y_(e,t){const n=Xb();n.__VUE__=!0;const{insert:r,remove:i,patchProp:o,createElement:s,createText:l,createComment:c,setText:d,setElementText:h,parentNode:p,nextSibling:y,setScopeId:C=mr,insertStaticContent:w}=e,k=(R,$,G,te=null,W=null,X=null,Ce=!1,de=null,me=!!$.dynamicChildren)=>{if(R===$)return;R&&!As(R,$)&&(te=Be(R),ne(R,W,X,!0),R=null),$.patchFlag===-2&&(me=!1,$.dynamicChildren=null);const{type:se,ref:ke,shapeFlag:_e}=$;switch(se){case sl:O(R,$,G,te);break;case fi:N(R,$,G,te);break;case wc:R==null&&L($,G,te,Ce);break;case He:ee(R,$,G,te,W,X,Ce,de,me);break;default:_e&1?Te(R,$,G,te,W,X,Ce,de,me):_e&6?J(R,$,G,te,W,X,Ce,de,me):(_e&64||_e&128)&&se.process(R,$,G,te,W,X,Ce,de,me,Le)}ke!=null&&W&&bc(ke,R&&R.ref,X,$||R,!$)},O=(R,$,G,te)=>{if(R==null)r($.el=l($.children),G,te);else{const W=$.el=R.el;$.children!==R.children&&d(W,$.children)}},N=(R,$,G,te)=>{R==null?r($.el=c($.children||""),G,te):$.el=R.el},L=(R,$,G,te)=>{[R.el,R.anchor]=w(R.children,$,G,te,R.el,R.anchor)},K=({el:R,anchor:$},G,te)=>{let W;for(;R&&R!==$;)W=y(R),r(R,G,te),R=W;r($,G,te)},D=({el:R,anchor:$})=>{let G;for(;R&&R!==$;)G=y(R),i(R),R=G;i($)},Te=(R,$,G,te,W,X,Ce,de,me)=>{Ce=Ce||$.type==="svg",R==null?m($,G,te,W,X,Ce,de,me):S(R,$,W,X,Ce,de,me)},m=(R,$,G,te,W,X,Ce,de)=>{let me,se;const{type:ke,props:_e,shapeFlag:Me,transition:Se,dirs:qe}=R;if(me=R.el=s(R.type,X,_e&&_e.is,_e),Me&8?h(me,R.children):Me&16&&I(R.children,me,null,te,W,X&&ke!=="foreignObject",Ce,de),qe&&Pi(R,null,te,"created"),ue(me,R,R.scopeId,Ce,te),_e){for(const at in _e)at!=="value"&&!Fa(at)&&o(me,at,null,_e[at],X,R.children,te,W,Oe);"value"in _e&&o(me,"value",null,_e.value),(se=_e.onVnodeBeforeMount)&&Lr(se,te,R)}qe&&Pi(R,null,te,"beforeMount");const ft=(!W||W&&!W.pendingBranch)&&Se&&!Se.persisted;ft&&Se.beforeEnter(me),r(me,$,G),((se=_e&&_e.onVnodeMounted)||ft||qe)&&Nn(()=>{se&&Lr(se,te,R),ft&&Se.enter(me),qe&&Pi(R,null,te,"mounted")},W)},ue=(R,$,G,te,W)=>{if(G&&C(R,G),te)for(let X=0;X{for(let se=me;se{const de=$.el=R.el;let{patchFlag:me,dynamicChildren:se,dirs:ke}=$;me|=R.patchFlag&16;const _e=R.props||Dt,Me=$.props||Dt;let Se;G&&Ri(G,!1),(Se=Me.onVnodeBeforeUpdate)&&Lr(Se,G,$,R),ke&&Pi($,R,G,"beforeUpdate"),G&&Ri(G,!0);const qe=W&&$.type!=="foreignObject";if(se?P(R.dynamicChildren,se,de,G,te,qe,X):Ce||ie(R,$,de,null,G,te,qe,X,!1),me>0){if(me&16)j(de,$,_e,Me,G,te,W);else if(me&2&&_e.class!==Me.class&&o(de,"class",null,Me.class,W),me&4&&o(de,"style",_e.style,Me.style,W),me&8){const ft=$.dynamicProps;for(let at=0;at{Se&&Lr(Se,G,$,R),ke&&Pi($,R,G,"updated")},te)},P=(R,$,G,te,W,X,Ce)=>{for(let de=0;de<$.length;de++){const me=R[de],se=$[de],ke=me.el&&(me.type===He||!As(me,se)||me.shapeFlag&70)?p(me.el):G;k(me,se,ke,null,te,W,X,Ce,!0)}},j=(R,$,G,te,W,X,Ce)=>{if(G!==te){if(G!==Dt)for(const de in G)!Fa(de)&&!(de in te)&&o(R,de,G[de],null,Ce,$.children,W,X,Oe);for(const de in te){if(Fa(de))continue;const me=te[de],se=G[de];me!==se&&de!=="value"&&o(R,de,se,me,Ce,$.children,W,X,Oe)}"value"in te&&o(R,"value",G.value,te.value)}},ee=(R,$,G,te,W,X,Ce,de,me)=>{const se=$.el=R?R.el:l(""),ke=$.anchor=R?R.anchor:l("");let{patchFlag:_e,dynamicChildren:Me,slotScopeIds:Se}=$;Se&&(de=de?de.concat(Se):Se),R==null?(r(se,G,te),r(ke,G,te),I($.children,G,ke,W,X,Ce,de,me)):_e>0&&_e&64&&Me&&R.dynamicChildren?(P(R.dynamicChildren,Me,G,W,X,Ce,de),($.key!=null||W&&$===W.subTree)&&Cc(R,$,!0)):ie(R,$,G,ke,W,X,Ce,de,me)},J=(R,$,G,te,W,X,Ce,de,me)=>{$.slotScopeIds=de,R==null?$.shapeFlag&512?W.ctx.activate($,G,te,Ce,me):ye($,G,te,W,X,Ce,me):je(R,$,me)},ye=(R,$,G,te,W,X,Ce)=>{const de=R.component=O_(R,te,W);if(eh(R)&&(de.ctx.renderer=Le),L_(de),de.asyncDep){if(W&&W.registerDep(de,Ne),!R.el){const me=de.subTree=xe(fi);N(null,me,$,G)}return}Ne(de,R,$,G,W,X,Ce)},je=(R,$,G)=>{const te=$.component=R.component;if(HC(R,$,G))if(te.asyncDep&&!te.asyncResolved){z(te,$,G);return}else te.next=$,RC(te.update),te.update();else $.el=R.el,te.vnode=$},Ne=(R,$,G,te,W,X,Ce)=>{const de=()=>{if(R.isMounted){let{next:ke,bu:_e,u:Me,parent:Se,vnode:qe}=R,ft=ke,at;Ri(R,!1),ke?(ke.el=qe.el,z(R,ke,Ce)):ke=qe,_e&&Ha(_e),(at=ke.props&&ke.props.onVnodeBeforeUpdate)&&Lr(at,Se,ke,qe),Ri(R,!0);const Ct=lc(R),Ft=R.subTree;R.subTree=Ct,k(Ft,Ct,p(Ft.el),Be(Ft),R,W,X),ke.el=Ct.el,ft===null&&jC(R,Ct.el),Me&&Nn(Me,W),(at=ke.props&&ke.props.onVnodeUpdated)&&Nn(()=>Lr(at,Se,ke,qe),W)}else{let ke;const{el:_e,props:Me}=$,{bm:Se,m:qe,parent:ft}=R,at=ws($);if(Ri(R,!1),Se&&Ha(Se),!at&&(ke=Me&&Me.onVnodeBeforeMount)&&Lr(ke,ft,$),Ri(R,!0),_e&&mt){const Ct=()=>{R.subTree=lc(R),mt(_e,R.subTree,R,W,null)};at?$.type.__asyncLoader().then(()=>!R.isUnmounted&&Ct()):Ct()}else{const Ct=R.subTree=lc(R);k(null,Ct,G,te,R,W,X),$.el=Ct.el}if(qe&&Nn(qe,W),!at&&(ke=Me&&Me.onVnodeMounted)){const Ct=$;Nn(()=>Lr(ke,ft,Ct),W)}($.shapeFlag&256||ft&&ws(ft.vnode)&&ft.vnode.shapeFlag&256)&&R.a&&Nn(R.a,W),R.isMounted=!0,$=G=te=null}},me=R.effect=new Xu(de,()=>sc(se),R.scope),se=R.update=()=>me.run();se.id=R.uid,Ri(R,!0),se()},z=(R,$,G)=>{$.component=R;const te=R.vnode.props;R.vnode=$,R.next=null,f_(R,$.props,te,G),h_(R,$.children,G),po(),qp(),ho()},ie=(R,$,G,te,W,X,Ce,de,me=!1)=>{const se=R&&R.children,ke=R?R.shapeFlag:0,_e=$.children,{patchFlag:Me,shapeFlag:Se}=$;if(Me>0){if(Me&128){nt(se,_e,G,te,W,X,Ce,de,me);return}else if(Me&256){fe(se,_e,G,te,W,X,Ce,de,me);return}}Se&8?(ke&16&&Oe(se,W,X),_e!==se&&h(G,_e)):ke&16?Se&16?nt(se,_e,G,te,W,X,Ce,de,me):Oe(se,W,X,!0):(ke&8&&h(G,""),Se&16&&I(_e,G,te,W,X,Ce,de,me))},fe=(R,$,G,te,W,X,Ce,de,me)=>{R=R||lo,$=$||lo;const se=R.length,ke=$.length,_e=Math.min(se,ke);let Me;for(Me=0;Me<_e;Me++){const Se=$[Me]=me?di($[Me]):Or($[Me]);k(R[Me],Se,G,null,W,X,Ce,de,me)}se>ke?Oe(R,W,X,!0,!1,_e):I($,G,te,W,X,Ce,de,me,_e)},nt=(R,$,G,te,W,X,Ce,de,me)=>{let se=0;const ke=$.length;let _e=R.length-1,Me=ke-1;for(;se<=_e&&se<=Me;){const Se=R[se],qe=$[se]=me?di($[se]):Or($[se]);if(As(Se,qe))k(Se,qe,G,null,W,X,Ce,de,me);else break;se++}for(;se<=_e&&se<=Me;){const Se=R[_e],qe=$[Me]=me?di($[Me]):Or($[Me]);if(As(Se,qe))k(Se,qe,G,null,W,X,Ce,de,me);else break;_e--,Me--}if(se>_e){if(se<=Me){const Se=Me+1,qe=SeMe)for(;se<=_e;)ne(R[se],W,X,!0),se++;else{const Se=se,qe=se,ft=new Map;for(se=qe;se<=Me;se++){const De=$[se]=me?di($[se]):Or($[se]);De.key!=null&&ft.set(De.key,se)}let at,Ct=0;const Ft=Me-qe+1;let an=!1,Ht=0;const fn=new Array(Ft);for(se=0;se=Ft){ne(De,W,X,!0);continue}let Fe;if(De.key!=null)Fe=ft.get(De.key);else for(at=qe;at<=Me;at++)if(fn[at-qe]===0&&As(De,$[at])){Fe=at;break}Fe===void 0?ne(De,W,X,!0):(fn[Fe-qe]=se+1,Fe>=Ht?Ht=Fe:an=!0,k(De,$[Fe],G,null,W,X,Ce,de,me),Ct++)}const Q=an?b_(fn):lo;for(at=Q.length-1,se=Ft-1;se>=0;se--){const De=qe+se,Fe=$[De],it=De+1{const{el:X,type:Ce,transition:de,children:me,shapeFlag:se}=R;if(se&6){Ve(R.component.subTree,$,G,te);return}if(se&128){R.suspense.move($,G,te);return}if(se&64){Ce.move(R,$,G,Le);return}if(Ce===He){r(X,$,G);for(let _e=0;_ede.enter(X),W);else{const{leave:_e,delayLeave:Me,afterLeave:Se}=de,qe=()=>r(X,$,G),ft=()=>{_e(X,()=>{qe(),Se&&Se()})};Me?Me(X,qe,ft):ft()}else r(X,$,G)},ne=(R,$,G,te=!1,W=!1)=>{const{type:X,props:Ce,ref:de,children:me,dynamicChildren:se,shapeFlag:ke,patchFlag:_e,dirs:Me}=R;if(de!=null&&bc(de,null,G,R,!0),ke&256){$.ctx.deactivate(R);return}const Se=ke&1&&Me,qe=!ws(R);let ft;if(qe&&(ft=Ce&&Ce.onVnodeBeforeUnmount)&&Lr(ft,$,R),ke&6)Ae(R.component,G,te);else{if(ke&128){R.suspense.unmount(G,te);return}Se&&Pi(R,null,$,"beforeUnmount"),ke&64?R.type.remove(R,$,G,W,Le,te):se&&(X!==He||_e>0&&_e&64)?Oe(se,$,G,!1,!0):(X===He&&_e&384||!W&&ke&16)&&Oe(me,$,G),te&&ge(R)}(qe&&(ft=Ce&&Ce.onVnodeUnmounted)||Se)&&Nn(()=>{ft&&Lr(ft,$,R),Se&&Pi(R,null,$,"unmounted")},G)},ge=R=>{const{type:$,el:G,anchor:te,transition:W}=R;if($===He){we(G,te);return}if($===wc){D(R);return}const X=()=>{i(G),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(R.shapeFlag&1&&W&&!W.persisted){const{leave:Ce,delayLeave:de}=W,me=()=>Ce(G,X);de?de(R.el,X,me):me()}else X()},we=(R,$)=>{let G;for(;R!==$;)G=y(R),i(R),R=G;i($)},Ae=(R,$,G)=>{const{bum:te,scope:W,update:X,subTree:Ce,um:de}=R;te&&Ha(te),W.stop(),X&&(X.active=!1,ne(Ce,R,$,G)),de&&Nn(de,$),Nn(()=>{R.isUnmounted=!0},$),$&&$.pendingBranch&&!$.isUnmounted&&R.asyncDep&&!R.asyncResolved&&R.suspenseId===$.pendingId&&($.deps--,$.deps===0&&$.resolve())},Oe=(R,$,G,te=!1,W=!1,X=0)=>{for(let Ce=X;CeR.shapeFlag&6?Be(R.component.subTree):R.shapeFlag&128?R.suspense.next():y(R.anchor||R.el),Xe=(R,$,G)=>{R==null?$._vnode&&ne($._vnode,null,null,!0):k($._vnode||null,R,$,null,null,null,G),qp(),zp(),$._vnode=R},Le={p:k,um:ne,m:Ve,r:ge,mt:ye,mc:I,pc:ie,pbc:P,n:Be,o:e};let rt,mt;return t&&([rt,mt]=t(Le)),{render:Xe,hydrate:rt,createApp:m_(Xe,rt)}}function Ri({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Cc(e,t,n=!1){const r=e.children,i=t.children;if(Qe(r)&&Qe(i))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,s=n[o-1];o-- >0;)n[o]=s,s=t[s];return n}const C_=e=>e.__isTeleport,xs=e=>e&&(e.disabled||e.disabled===""),Ch=e=>typeof SVGElement<"u"&&e instanceof SVGElement,_c=(e,t)=>{const n=e&&e.to;return zt(n)?t?t(n):null:n},__={__isTeleport:!0,process(e,t,n,r,i,o,s,l,c,d){const{mc:h,pc:p,pbc:y,o:{insert:C,querySelector:w,createText:k,createComment:O}}=d,N=xs(t.props);let{shapeFlag:L,children:K,dynamicChildren:D}=t;if(e==null){const Te=t.el=k(""),m=t.anchor=k("");C(Te,n,r),C(m,n,r);const ue=t.target=_c(t.props,w),I=t.targetAnchor=k("");ue&&(C(I,ue),s=s||Ch(ue));const S=(P,j)=>{L&16&&h(K,P,j,i,o,s,l,c)};N?S(n,m):ue&&S(ue,I)}else{t.el=e.el;const Te=t.anchor=e.anchor,m=t.target=e.target,ue=t.targetAnchor=e.targetAnchor,I=xs(e.props),S=I?n:m,P=I?Te:ue;if(s=s||Ch(m),D?(y(e.dynamicChildren,D,S,i,o,s,l),Cc(e,t,!0)):c||p(e,t,S,P,i,o,s,l,!1),N)I||ol(t,n,Te,d,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const j=t.target=_c(t.props,w);j&&ol(t,j,null,d,0)}else I&&ol(t,m,ue,d,1)}_h(t)},remove(e,t,n,r,{um:i,o:{remove:o}},s){const{shapeFlag:l,children:c,anchor:d,targetAnchor:h,target:p,props:y}=e;if(p&&o(h),(s||!xs(y))&&(o(d),l&16))for(let C=0;C0?br||lo:null,x_(),Ss>0&&br&&br.push(e),e}function H(e,t,n,r,i,o){return Th(T(e,t,n,r,i,o,!0))}function Ze(e,t,n,r,i){return Th(xe(e,t,n,r,i,!0))}function xh(e){return e?e.__v_isVNode===!0:!1}function As(e,t){return e.type===t.type&&e.key===t.key}const al="__vInternal",kh=({key:e})=>e??null,ll=({ref:e,ref_key:t,ref_for:n})=>e!=null?zt(e)||mn(e)||pt(e)?{i:dn,r:e,k:t,f:!!n}:e:null;function T(e,t=null,n=null,r=0,i=null,o=e===He?0:1,s=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&kh(t),ref:t&&ll(t),scopeId:Qa,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:dn};return l?(Tc(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=zt(n)?8:16),Ss>0&&!s&&br&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&br.push(c),c}const xe=k_;function k_(e,t=null,n=null,r=0,i=null,o=!1){if((!e||e===rh)&&(e=fi),xh(e)){const l=_o(e,t,!0);return n&&Tc(l,n),Ss>0&&!o&&br&&(l.shapeFlag&6?br[br.indexOf(e)]=l:br.push(l)),l.patchFlag|=-2,l}if(N_(e)&&(e=e.__vccOpts),t){t=S_(t);let{class:l,style:c}=t;l&&!zt(l)&&(t.class=lt(l)),Rt(c)&&(Mp(c)&&!Qe(c)&&(c=kn({},c)),t.style=bt(c))}const s=zt(e)?1:UC(e)?128:C_(e)?64:Rt(e)?4:pt(e)?2:0;return T(e,t,n,r,i,s,o,!0)}function S_(e){return e?Mp(e)||al in e?kn({},e):e:null}function _o(e,t,n=!1){const{props:r,ref:i,patchFlag:o,children:s}=e,l=t?ul(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&kh(l),ref:t&&t.ref?n&&i?Qe(i)?i.concat(ll(t)):[i,ll(t)]:ll(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==He?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_o(e.ssContent),ssFallback:e.ssFallback&&_o(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Xt(e=" ",t=0){return xe(sl,null,e,t)}function Re(e="",t=!1){return t?(E(),Ze(fi,null,e)):xe(fi,null,e)}function Or(e){return e==null||typeof e=="boolean"?xe(fi):Qe(e)?xe(He,null,e.slice()):typeof e=="object"?di(e):xe(sl,null,String(e))}function di(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_o(e)}function Tc(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Qe(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),Tc(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(al in t)?t._ctx=dn:i===3&&dn&&(dn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else pt(t)?(t={default:t,_ctx:dn},n=32):(t=String(t),r&64?(n=16,t=[Xt(t)]):n=8);e.children=t,e.shapeFlag|=n}function ul(...e){const t={};for(let n=0;nGt||dn,wo=e=>{Gt=e,e.scope.on()},Ni=()=>{Gt&&Gt.scope.off(),Gt=null};function Ah(e){return e.vnode.shapeFlag&4}let Es=!1;function L_(e,t=!1){Es=t;const{props:n,children:r}=e.vnode,i=Ah(e);c_(e,n,i,t),p_(e,r);const o=i?I_(e,t):void 0;return Es=!1,o}function I_(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Fp(new Proxy(e.ctx,i_));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?D_(e):null;wo(e),po();const o=ci(r,e,0,[e.props,i]);if(ho(),Ni(),hp(o)){if(o.then(Ni,Ni),t)return o.then(s=>{Eh(e,s,t)}).catch(s=>{Xa(s,e,0)});e.asyncDep=o}else Eh(e,o,t)}else Lh(e,t)}function Eh(e,t,n){pt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Rt(t)&&(e.setupState=Up(t)),Lh(e,n)}let Oh;function Lh(e,t,n){const r=e.type;if(!e.render){if(!t&&Oh&&!r.render){const i=r.template||gc(e).template;if(i){const{isCustomElement:o,compilerOptions:s}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,d=kn(kn({isCustomElement:o,delimiters:l},s),c);r.render=Oh(i,d)}}e.render=r.render||mr}wo(e),po(),o_(e),ho(),Ni()}function P_(e){return new Proxy(e.attrs,{get(t,n){return Pn(e,"get","$attrs"),t[n]}})}function D_(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=P_(e))},slots:e.slots,emit:e.emit,expose:t}}function cl(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Up(Fp(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ts)return Ts[n](e)},has(t,n){return n in t||n in Ts}}))}function R_(e,t=!0){return pt(e)?e.displayName||e.name:e.name||t&&e.__name}function N_(e){return pt(e)&&"__vccOpts"in e}const tn=(e,t)=>IC(e,t,Es),M_=Symbol(""),F_=()=>Co(M_),$_="3.2.47",B_="http://www.w3.org/2000/svg",Mi=typeof document<"u"?document:null,Ih=Mi&&Mi.createElement("template"),H_={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?Mi.createElementNS(B_,e):Mi.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>Mi.createTextNode(e),createComment:e=>Mi.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Mi.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,o){const s=n?n.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===o||!(i=i.nextSibling)););else{Ih.innerHTML=r?`${e}`:e;const l=Ih.content;if(r){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function j_(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function U_(e,t,n){const r=e.style,i=zt(n);if(n&&!i){if(t&&!zt(t))for(const o in t)n[o]==null&&xc(r,o,"");for(const o in n)xc(r,o,n[o])}else{const o=r.display;i?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=o)}}const Ph=/\s*!important$/;function xc(e,t,n){if(Qe(n))n.forEach(r=>xc(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=W_(e,t);Ph.test(n)?e.setProperty(fo(r),n.replace(Ph,""),"important"):e[r]=n}}const Dh=["Webkit","Moz","ms"],kc={};function W_(e,t){const n=kc[t];if(n)return n;let r=Ar(t);if(r!=="filter"&&r in e)return kc[t]=r;r=Ba(r);for(let i=0;iSc||(Y_.then(()=>Sc=0),Sc=Date.now());function J_(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;yr(Z_(r,n.value),t,5,[r])};return n.value=e,n.attached=X_(),n}function Z_(e,t){if(Qe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const Mh=/^on[a-z]/,Q_=(e,t,n,r,i=!1,o,s,l,c)=>{t==="class"?j_(e,r,i):t==="style"?U_(e,n,r):Ma(t)?Uu(t)||z_(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):e1(e,t,r,i))?V_(e,t,r,o,s,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),K_(e,t,r,i))};function e1(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Mh.test(t)&&pt(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Mh.test(t)&&zt(n)?!1:t in e}const To=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Qe(t)?n=>Ha(t,n):t};function t1(e){e.target.composing=!0}function Fh(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ir={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e._assign=To(i);const o=r||i.props&&i.props.type==="number";pi(e,t?"change":"input",s=>{if(s.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=Ua(l)),e._assign(l)}),n&&pi(e,"change",()=>{e.value=e.value.trim()}),t||(pi(e,"compositionstart",t1),pi(e,"compositionend",Fh),pi(e,"change",Fh))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:i}},o){if(e._assign=To(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(i||e.type==="number")&&Ua(e.value)===t))return;const s=t??"";e.value!==s&&(e.value=s)}},n1={deep:!0,created(e,t,n){e._assign=To(n),pi(e,"change",()=>{const r=e._modelValue,i=Ls(e),o=e.checked,s=e._assign;if(Qe(r)){const l=ju(r,i),c=l!==-1;if(o&&!c)s(r.concat(i));else if(!o&&c){const d=[...r];d.splice(l,1),s(d)}}else if(co(r)){const l=new Set(r);o?l.add(i):l.delete(i),s(l)}else s(Hh(e,o))})},mounted:$h,beforeUpdate(e,t,n){e._assign=To(n),$h(e,t,n)}};function $h(e,{value:t,oldValue:n},r){e._modelValue=t,Qe(t)?e.checked=ju(t,r.props.value)>-1:co(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=hs(t,Hh(e,!0)))}const Os={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const i=co(t);pi(e,"change",()=>{const o=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>n?Ua(Ls(s)):Ls(s));e._assign(e.multiple?i?new Set(o):o:o[0])}),e._assign=To(r)},mounted(e,{value:t}){Bh(e,t)},beforeUpdate(e,t,n){e._assign=To(n)},updated(e,{value:t}){Bh(e,t)}};function Bh(e,t){const n=e.multiple;if(!(n&&!Qe(t)&&!co(t))){for(let r=0,i=e.options.length;r-1:o.selected=t.has(s);else if(hs(Ls(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ls(e){return"_value"in e?e._value:e.value}function Hh(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const r1=["ctrl","shift","alt","meta"],i1={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>r1.some(n=>e[`${n}Key`]&&!t.includes(n))},gt=(e,t)=>(n,...r)=>{for(let i=0;i{Is(e,!1)}):Is(e,t))},beforeUnmount(e,{value:t}){Is(e,t)}};function Is(e,t){e.style.display=t?e._vod:"none"}const o1=kn({patchProp:Q_},H_);let jh;function s1(){return jh||(jh=v_(o1))}const a1=(...e)=>{const t=s1().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=l1(r);if(!i)return;const o=t._component;!pt(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.innerHTML="";const s=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),s},t};function l1(e){return zt(e)?document.querySelector(e):e}/**! + * Sortable 1.15.0 + * @author RubaXa + * @author owenm + * @license MIT + */function Uh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ir(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function f1(e,t){if(e==null)return{};var n=c1(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var d1="1.15.0";function qr(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var zr=qr(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Ps=qr(/Edge/i),Wh=qr(/firefox/i),Ds=qr(/safari/i)&&!qr(/chrome/i)&&!qr(/android/i),Kh=qr(/iP(ad|od|hone)/i),Vh=qr(/chrome/i)&&qr(/android/i),qh={capture:!1,passive:!1};function St(e,t,n){e.addEventListener(t,n,!zr&&qh)}function wt(e,t,n){e.removeEventListener(t,n,!zr&&qh)}function dl(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function p1(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Pr(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&dl(e,t):dl(e,t))||r&&e===n)return e;if(e===n)break}while(e=p1(e))}return null}var zh=/\s+/g;function Vn(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(zh," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(zh," ")}}function et(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function xo(e,t){var n="";if(typeof e=="string")n=e;else do{var r=et(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function Gh(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,o=r.length;if(n)for(;i=o:s=i<=o,!s)return r;if(r===Dr())break;r=hi(r,!1)}return!1}function ko(e,t,n,r){for(var i=0,o=0,s=e.children;o2&&arguments[2]!==void 0?arguments[2]:{},i=r.evt,o=f1(r,_1);Ns.pluginEvent.bind(tt)(t,n,Ir({dragEl:Ee,parentEl:Kt,ghostEl:dt,rootEl:$t,nextEl:Fi,lastDownEl:pl,cloneEl:Ut,cloneHidden:gi,dragStarted:Fs,putSortable:pn,activeSortable:tt.active,originalEvent:i,oldIndex:Ao,oldDraggableIndex:Ms,newIndex:zn,newDraggableIndex:mi,hideGhostForTarget:sg,unhideGhostForTarget:ag,cloneNowHidden:function(){gi=!0},cloneNowShown:function(){gi=!1},dispatchSortableEvent:function(l){An({sortable:n,name:l,originalEvent:i})}},o))};function An(e){C1(Ir({putSortable:pn,cloneEl:Ut,targetEl:Ee,rootEl:$t,oldIndex:Ao,oldDraggableIndex:Ms,newIndex:zn,newDraggableIndex:mi},e))}var Ee,Kt,dt,$t,Fi,pl,Ut,gi,Ao,zn,Ms,mi,hl,pn,Eo=!1,gl=!1,ml=[],$i,Cr,Lc,Ic,eg,tg,Fs,Oo,$s,Bs=!1,vl=!1,yl,yn,Pc=[],Dc=!1,bl=[],Cl=typeof document<"u",_l=Kh,ng=Ps||zr?"cssFloat":"float",w1=Cl&&!Vh&&!Kh&&"draggable"in document.createElement("div"),rg=function(){if(Cl){if(zr)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),ig=function(t,n){var r=et(t),i=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),o=ko(t,0,n),s=ko(t,1,n),l=o&&et(o),c=s&&et(s),d=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+nn(o).width,h=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+nn(s).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&l.float&&l.float!=="none"){var p=l.float==="left"?"left":"right";return s&&(c.clear==="both"||c.clear===p)?"vertical":"horizontal"}return o&&(l.display==="block"||l.display==="flex"||l.display==="table"||l.display==="grid"||d>=i&&r[ng]==="none"||s&&r[ng]==="none"&&d+h>i)?"vertical":"horizontal"},T1=function(t,n,r){var i=r?t.left:t.top,o=r?t.right:t.bottom,s=r?t.width:t.height,l=r?n.left:n.top,c=r?n.right:n.bottom,d=r?n.width:n.height;return i===l||o===c||i+s/2===l+d/2},x1=function(t,n){var r;return ml.some(function(i){var o=i[qn].options.emptyInsertThreshold;if(!(!o||Ac(i))){var s=nn(i),l=t>=s.left-o&&t<=s.right+o,c=n>=s.top-o&&n<=s.bottom+o;if(l&&c)return r=i}}),r},og=function(t){function n(o,s){return function(l,c,d,h){var p=l.options.group.name&&c.options.group.name&&l.options.group.name===c.options.group.name;if(o==null&&(s||p))return!0;if(o==null||o===!1)return!1;if(s&&o==="clone")return o;if(typeof o=="function")return n(o(l,c,d,h),s)(l,c,d,h);var y=(s?l:c).options.group.name;return o===!0||typeof o=="string"&&o===y||o.join&&o.indexOf(y)>-1}}var r={},i=t.group;(!i||fl(i)!="object")&&(i={name:i}),r.name=i.name,r.checkPull=n(i.pull,!0),r.checkPut=n(i.put),r.revertClone=i.revertClone,t.group=r},sg=function(){!rg&&dt&&et(dt,"display","none")},ag=function(){!rg&&dt&&et(dt,"display","")};Cl&&!Vh&&document.addEventListener("click",function(e){if(gl)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),gl=!1,!1},!0);var Bi=function(t){if(Ee){t=t.touches?t.touches[0]:t;var n=x1(t.clientX,t.clientY);if(n){var r={};for(var i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);r.target=r.rootEl=n,r.preventDefault=void 0,r.stopPropagation=void 0,n[qn]._onDragOver(r)}}},k1=function(t){Ee&&Ee.parentNode[qn]._isOutsideThisEl(t.target)};function tt(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=Vr({},t),e[qn]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return ig(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,l){s.setData("Text",l.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:tt.supportPointer!==!1&&"PointerEvent"in window&&!Ds,emptyInsertThreshold:5};Ns.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);og(t);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:w1,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?St(e,"pointerdown",this._onTapStart):(St(e,"mousedown",this._onTapStart),St(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(St(e,"dragover",this),St(e,"dragenter",this)),ml.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Vr(this,v1())}tt.prototype={constructor:tt,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(Oo=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,Ee):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,r=this.el,i=this.options,o=i.preventOnFilter,s=t.type,l=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,c=(l||t).target,d=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||c,h=i.filter;if(D1(r),!Ee&&!(/mousedown|pointerdown/.test(s)&&t.button!==0||i.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&Ds&&c&&c.tagName.toUpperCase()==="SELECT")&&(c=Pr(c,i.draggable,r,!1),!(c&&c.animated)&&pl!==c)){if(Ao=or(c),Ms=or(c,i.draggable),typeof h=="function"){if(h.call(this,t,c,this)){An({sortable:n,rootEl:d,name:"filter",targetEl:c,toEl:r,fromEl:r}),Mn("filter",n,{evt:t}),o&&t.cancelable&&t.preventDefault();return}}else if(h&&(h=h.split(",").some(function(p){if(p=Pr(d,p.trim(),r,!1),p)return An({sortable:n,rootEl:p,name:"filter",targetEl:c,fromEl:r,toEl:r}),Mn("filter",n,{evt:t}),!0}),h)){o&&t.cancelable&&t.preventDefault();return}i.handle&&!Pr(d,i.handle,r,!1)||this._prepareDragStart(t,l,c)}}},_prepareDragStart:function(t,n,r){var i=this,o=i.el,s=i.options,l=o.ownerDocument,c;if(r&&!Ee&&r.parentNode===o){var d=nn(r);if($t=o,Ee=r,Kt=Ee.parentNode,Fi=Ee.nextSibling,pl=r,hl=s.group,tt.dragged=Ee,$i={target:Ee,clientX:(n||t).clientX,clientY:(n||t).clientY},eg=$i.clientX-d.left,tg=$i.clientY-d.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,Ee.style["will-change"]="all",c=function(){if(Mn("delayEnded",i,{evt:t}),tt.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!Wh&&i.nativeDraggable&&(Ee.draggable=!0),i._triggerDragStart(t,n),An({sortable:i,name:"choose",originalEvent:t}),Vn(Ee,s.chosenClass,!0)},s.ignore.split(",").forEach(function(h){Gh(Ee,h.trim(),Rc)}),St(l,"dragover",Bi),St(l,"mousemove",Bi),St(l,"touchmove",Bi),St(l,"mouseup",i._onDrop),St(l,"touchend",i._onDrop),St(l,"touchcancel",i._onDrop),Wh&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Ee.draggable=!0),Mn("delayStart",this,{evt:t}),s.delay&&(!s.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Ps||zr))){if(tt.eventCanceled){this._onDrop();return}St(l,"mouseup",i._disableDelayedDrag),St(l,"touchend",i._disableDelayedDrag),St(l,"touchcancel",i._disableDelayedDrag),St(l,"mousemove",i._delayedDragTouchMoveHandler),St(l,"touchmove",i._delayedDragTouchMoveHandler),s.supportPointer&&St(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(c,s.delay)}else c()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Ee&&Rc(Ee),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;wt(t,"mouseup",this._disableDelayedDrag),wt(t,"touchend",this._disableDelayedDrag),wt(t,"touchcancel",this._disableDelayedDrag),wt(t,"mousemove",this._delayedDragTouchMoveHandler),wt(t,"touchmove",this._delayedDragTouchMoveHandler),wt(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?St(document,"pointermove",this._onTouchMove):n?St(document,"touchmove",this._onTouchMove):St(document,"mousemove",this._onTouchMove):(St(Ee,"dragend",this),St($t,"dragstart",this._onDragStart));try{document.selection?Tl(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(Eo=!1,$t&&Ee){Mn("dragStarted",this,{evt:n}),this.nativeDraggable&&St(document,"dragover",k1);var r=this.options;!t&&Vn(Ee,r.dragClass,!1),Vn(Ee,r.ghostClass,!0),tt.active=this,t&&this._appendGhost(),An({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(Cr){this._lastX=Cr.clientX,this._lastY=Cr.clientY,sg();for(var t=document.elementFromPoint(Cr.clientX,Cr.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(Cr.clientX,Cr.clientY),t!==n);)n=t;if(Ee.parentNode[qn]._isOutsideThisEl(t),n)do{if(n[qn]){var r=void 0;if(r=n[qn]._onDragOver({clientX:Cr.clientX,clientY:Cr.clientY,target:t,rootEl:n}),r&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);ag()}},_onTouchMove:function(t){if($i){var n=this.options,r=n.fallbackTolerance,i=n.fallbackOffset,o=t.touches?t.touches[0]:t,s=dt&&xo(dt,!0),l=dt&&s&&s.a,c=dt&&s&&s.d,d=_l&&yn&&Xh(yn),h=(o.clientX-$i.clientX+i.x)/(l||1)+(d?d[0]-Pc[0]:0)/(l||1),p=(o.clientY-$i.clientY+i.y)/(c||1)+(d?d[1]-Pc[1]:0)/(c||1);if(!tt.active&&!Eo){if(r&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(An({rootEl:Kt,name:"add",toEl:Kt,fromEl:$t,originalEvent:t}),An({sortable:this,name:"remove",toEl:Kt,originalEvent:t}),An({rootEl:Kt,name:"sort",toEl:Kt,fromEl:$t,originalEvent:t}),An({sortable:this,name:"sort",toEl:Kt,originalEvent:t})),pn&&pn.save()):zn!==Ao&&zn>=0&&(An({sortable:this,name:"update",toEl:Kt,originalEvent:t}),An({sortable:this,name:"sort",toEl:Kt,originalEvent:t})),tt.active&&((zn==null||zn===-1)&&(zn=Ao,mi=Ms),An({sortable:this,name:"end",toEl:Kt,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){Mn("nulling",this),$t=Ee=Kt=dt=Fi=Ut=pl=gi=$i=Cr=Fs=zn=mi=Ao=Ms=Oo=$s=pn=hl=tt.dragged=tt.ghost=tt.clone=tt.active=null,bl.forEach(function(t){t.checked=!0}),bl.length=Lc=Ic=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":Ee&&(this._onDragOver(t),S1(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,r=this.el.children,i=0,o=r.length,s=this.options;ir.right+i||e.clientX<=r.right&&e.clientY>r.bottom&&e.clientX>=r.left:e.clientX>r.right&&e.clientY>r.top||e.clientX<=r.right&&e.clientY>r.bottom+i}function L1(e,t,n,r,i,o,s,l){var c=r?e.clientY:e.clientX,d=r?n.height:n.width,h=r?n.top:n.left,p=r?n.bottom:n.right,y=!1;if(!s){if(l&&ylh+d*o/2:cp-yl)return-$s}else if(c>h+d*(1-i)/2&&cp-d*o/2)?c>h+d/2?1:-1:0}function I1(e){return or(Ee){if(e==null||e===!1||e===""||e.trim()==="")return[];e=e.replace(/,/g,","),e=e.replace(/。/g,","),e=e.replace(/、/g,","),e=e.replace(/;/g,","),e=e.replace(/./g,","),e=e.replace(/\t/g,` +`),e=e.replace(/\r/g,` +`),e=e.replace(/\n+/g,` +`);const r={"(":")","[":"]","<":">","{":"}"},i=Object.keys(r);let o=e.length,s="",l="",c="",d=0,h=[];for(let p=0;p=0,o=!n&&i&&(t==="hex"||t==="hex6"||t==="hex3"||t==="hex4"||t==="hex8"||t==="name");return o?t==="name"&&this._a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},clone:function(){return Pe(this.toString())},_applyModification:function(t,n){var r=t.apply(null,[this].concat([].slice.call(n)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(q1,arguments)},brighten:function(){return this._applyModification(z1,arguments)},darken:function(){return this._applyModification(G1,arguments)},desaturate:function(){return this._applyModification(W1,arguments)},saturate:function(){return this._applyModification(K1,arguments)},greyscale:function(){return this._applyModification(V1,arguments)},spin:function(){return this._applyModification(Y1,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(Z1,arguments)},complement:function(){return this._applyCombination(X1,arguments)},monochromatic:function(){return this._applyCombination(Q1,arguments)},splitcomplement:function(){return this._applyCombination(J1,arguments)},triad:function(){return this._applyCombination(hg,[3])},tetrad:function(){return this._applyCombination(hg,[4])}},Pe.fromRatio=function(e,t){if(Al(e)=="object"){var n={};for(var r in e)e.hasOwnProperty(r)&&(r==="a"?n[r]=e[r]:n[r]=Us(e[r]));e=n}return Pe(e,t)};function $1(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,o=null,s=!1,l=!1;return typeof e=="string"&&(e=iw(e)),Al(e)=="object"&&(Gr(e.r)&&Gr(e.g)&&Gr(e.b)?(t=B1(e.r,e.g,e.b),s=!0,l=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Gr(e.h)&&Gr(e.s)&&Gr(e.v)?(r=Us(e.s),i=Us(e.v),t=j1(e.h,r,i),s=!0,l="hsv"):Gr(e.h)&&Gr(e.s)&&Gr(e.l)&&(r=Us(e.s),o=Us(e.l),t=H1(e.h,r,o),s=!0,l="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=gg(n),{ok:s,format:e.format||l,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function B1(e,t,n){return{r:Bt(e,255)*255,g:Bt(t,255)*255,b:Bt(n,255)*255}}function cg(e,t,n){e=Bt(e,255),t=Bt(t,255),n=Bt(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),o,s,l=(r+i)/2;if(r==i)o=s=0;else{var c=r-i;switch(s=l>.5?c/(2-r-i):c/(r+i),r){case e:o=(t-n)/c+(t1&&(p-=1),p<1/6?d+(h-d)*6*p:p<1/2?h:p<2/3?d+(h-d)*(2/3-p)*6:d}if(t===0)r=i=o=n;else{var l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;r=s(c,l,e+1/3),i=s(c,l,e),o=s(c,l,e-1/3)}return{r:r*255,g:i*255,b:o*255}}function fg(e,t,n){e=Bt(e,255),t=Bt(t,255),n=Bt(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),o,s,l=r,c=r-i;if(s=r===0?0:c/r,r==i)o=0;else{switch(r){case e:o=(t-n)/c+(t>1)+720)%360;--t;)r.h=(r.h+i)%360,o.push(Pe(r));return o}function Q1(e,t){t=t||6;for(var n=Pe(e).toHsv(),r=n.h,i=n.s,o=n.v,s=[],l=1/t;t--;)s.push(Pe({h:r,s:i,v:o})),o=(o+l)%1;return s}Pe.mix=function(e,t,n){n=n===0?0:n||50;var r=Pe(e).toRgb(),i=Pe(t).toRgb(),o=n/100,s={r:(i.r-r.r)*o+r.r,g:(i.g-r.g)*o+r.g,b:(i.b-r.b)*o+r.b,a:(i.a-r.a)*o+r.a};return Pe(s)},Pe.readability=function(e,t){var n=Pe(e),r=Pe(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},Pe.isReadable=function(e,t,n){var r=Pe.readability(e,t),i,o;switch(o=!1,i=ow(n),i.level+i.size){case"AAsmall":case"AAAlarge":o=r>=4.5;break;case"AAlarge":o=r>=3;break;case"AAAsmall":o=r>=7;break}return o},Pe.mostReadable=function(e,t,n){var r=null,i=0,o,s,l,c;n=n||{},s=n.includeFallbackColors,l=n.level,c=n.size;for(var d=0;di&&(i=o,r=Pe(t[d]));return Pe.isReadable(e,r,{level:l,size:c})||!s?r:(n.includeFallbackColors=!1,Pe.mostReadable(e,["#fff","#000"],n))};var Wc=Pe.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},ew=Pe.hexNames=tw(Wc);function tw(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function gg(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Bt(e,t){nw(e)&&(e="100%");var n=rw(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function El(e){return Math.min(1,Math.max(0,e))}function Gn(e){return parseInt(e,16)}function nw(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function rw(e){return typeof e=="string"&&e.indexOf("%")!=-1}function _r(e){return e.length==1?"0"+e:""+e}function Us(e){return e<=1&&(e=e*100+"%"),e}function mg(e){return Math.round(parseFloat(e)*255).toString(16)}function vg(e){return Gn(e)/255}var wr=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",i="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Gr(e){return!!wr.CSS_UNIT.exec(e)}function iw(e){e=e.replace(M1,"").replace(F1,"").toLowerCase();var t=!1;if(Wc[e])e=Wc[e],t=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=wr.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=wr.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=wr.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=wr.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=wr.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=wr.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=wr.hex8.exec(e))?{r:Gn(n[1]),g:Gn(n[2]),b:Gn(n[3]),a:vg(n[4]),format:t?"name":"hex8"}:(n=wr.hex6.exec(e))?{r:Gn(n[1]),g:Gn(n[2]),b:Gn(n[3]),format:t?"name":"hex"}:(n=wr.hex4.exec(e))?{r:Gn(n[1]+""+n[1]),g:Gn(n[2]+""+n[2]),b:Gn(n[3]+""+n[3]),a:vg(n[4]+""+n[4]),format:t?"name":"hex8"}:(n=wr.hex3.exec(e))?{r:Gn(n[1]+""+n[1]),g:Gn(n[2]+""+n[2]),b:Gn(n[3]+""+n[3]),format:t?"name":"hex"}:!1}function ow(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),t!=="AA"&&t!=="AAA"&&(t="AA"),n!=="small"&&n!=="large"&&(n="small"),{level:t,size:n}}const vi={},ve={loraRegex:/^\$/,lycoRegex:/^\$/,weightNumRegex:/(.*):([0-9\.]+)/,weightNumRegexEN:/(.*):\s*([0-9\.]+)/,weightNumRegexCN:/(.*):\s*([0-9\.]+)/,bracketsEN:[{"(":"(",")":")"},{"[":"[","]":"]"},{"{":"{","}":"}"},{"<":"<",">":">"}],bracketsCN:[{"(":"(",")":")"},{"【":"[","】":"]"},{"《":"<","》":">"},{"「":"{","」":"}"},{"『":"{","』":"}"},{"〈":"<","〉":">"},{"﹝":"(","﹞":")"},{"﹛":"{","﹜":"}"},{"﹙":"(","﹚":")"}],replaceTag(e){return typeof e!="string"||e===""||(e=this.replaceBrackets(e),this.weightNumRegexEN.test(e)&&(e=e.replace(this.weightNumRegexEN,"$1:$2")),this.weightNumRegexCN.test(e)&&(e=e.replace(this.weightNumRegexCN,"$1:$2"))),e},replaceBrackets(e){const t=e.length;if(t===0)return e;let n={};this.bracketsCN.forEach(o=>{for(const s in o)n[s]=o[s]});let r=e[0],i=e[t-1];return typeof n[r]<"u"&&(e=n[r]+e.substring(1)),typeof n[i]<"u"&&(e=e.substring(0,t-1)+n[i]),e},hasBrackets(e){const t=e.length;if(t===0)return!1;let n=[];this.bracketsEN.forEach(o=>{let s=[];for(const l in o)s.push(l);n.push(s)}),this.bracketsCN.forEach(o=>{let s=[];for(const l in o)s.push(l);n.push(s)});let r=e[0],i=e[t-1];for(const o of n)if(o[0]===r&&o[1]===i)return o;return!1},splitTag(e){let t={left:"",value:"",right:""},n=e.match(/^([\(\<\{\[]+)(.*)$/);return!n||(t.left=n[1],e=n[2],n=e.match(/((\:[0-9\.]+)?[\)\>\}\]]+)$/),!n)?(t.value=e,t):(t.right=n[1],e=e.substring(0,e.length-t.right.length),t.value=e,t)},splitTags(e,t=!1,n=!1){return N1(e,t,n)},canTranslate(e){return!(e.trim()===""||e[0]==="<"&&e[e.length-1]===">"||/^[0-9`~!@#$%^&*()_+\-=\[\]{}\\|;:'",.\/<>?]+$/.test(e)||/^[a-zA-Z]$/.test(e))},isEnglish(e){const t=e.length;if(e[0]==="<"&&e[t-1]===">")return!0;for(let n=0;n127)return!1;return!0},canOneTranslate(e){const t=["zh_CN","zh_HK","zh_TW","ar_SA","ja_JP","ko_KR","ru_RU"];return t.push("am_ET","hy_AM","as_IN","bn_BD","ba_RU","bg_BG","prs_AF","dv_MV","el_GR","gu_IN","he_IL","hi_IN","iu_CA","kn_IN","kk_KZ","km_KH","ku_Arab_IQ","ky_KG","lo_LA","mk_MK","ml_IN","mr_IN","mn_Cyrl_MN","mn_Mong_CN","my_MM","ne_NP","or_IN","ps_AF","fa_IR","pa_Guru_IN","sr_Cyrl_RS","ta_IN","tt_Latn_RU","te_IN","th_TH","bo_CN","ti_ET","uk_UA","ur_PK","ug_Arab_CN","vi_VN"),!!t.includes(e)},isEnglishByLangCode(e,t){if(!this.canOneTranslate(t))return-1;const n=e.length;for(let r=0;r127)return 0;return 1},isSameLang(e,t){if(e===t)return!0;let n=e.toLowerCase(),r=t.toLowerCase();return n===r||(e=e.replace("-","_"),t=t.replace("-","_"),e===t)||(e=e.split("_")[0],t=t.split("_")[0],e===t)},getLang(e,t,n){return n[t]&&n[t].lang&&n[t].lang[e]?this.replaceGlobals(n[t].lang[e],t):n.en_US&&n.en_US.lang&&n.en_US.lang[e]?this.replaceGlobals(n.en_US.lang[e],"en_US"):this.replaceGlobals(e,t)},replaceGlobals(e,t){for(let n in Sl){let r=Sl[n];if(n==="docs")switch(t){case"zh_CN":r+="/zh-CN";break;case"zh_HK":case"zh_TW":r+="/zh-TW";break;case"ru_RU":r+="/ru";break}e=e.replace(new RegExp(`{{${n}}}`,"g"),r)}return e},escapeHtml(e){return e.replace(/[&<>'"]/g,t=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[t]||t)},unescapeHtml(e){return e.replace(/&|<|>|'|"/g,t=>({"&":"&","<":"<",">":">","'":"'",""":'"'})[t]||t)},getTagWeightNum(e){const t=e.match(this.weightNumRegex);let n=t?parseFloat(t[2]):0;return n=n>=0?n:0,n},getTagIncWeight(e){return this.countLayers(e,"(",")")},getTagDecWeight(e){return this.countLayers(e,"[","]")},countLayers(e,t="(",n=")"){let r=0;if(e.length<2)return r;for(;;){let i=e[0],o=e[e.length-1];if(i===t&&o===n)r++,e=e.slice(1,e.length-1);else break}return r},setLayers(e,t=0,n="(",r=")",i=""){for(;;){let o=e[0],s=e[e.length-1];if(o===n&&s===r)e=e.slice(1,e.length-1);else break}return t===0?e:n.repeat(t)+e+i+r.repeat(t)},getTranslateApiInfo(e,t){let n=!1;for(const r in t)for(const i in r.children)if(i.key===e){n=i;break}return n},isEqualTags(e,t,n=[]){if(t.length!==e.length)return!1;for(let r=0;r{setTimeout(()=>{hideResults(e)},n)})},formatTime(e,t=!0){let n=new Date(e),r=n.getFullYear(),i=n.getMonth()+1;i<10&&(i="0"+i);let o=n.getDate();o<10&&(o="0"+o);let s=n.getHours();s<10&&(s="0"+s);let l=n.getMinutes();l<10&&(l="0"+l);let c=n.getSeconds();return c<10&&(c="0"+c),t?`${r}/${i}/${o} ${s}:${l}:${c}`:`${i}/${o} ${s}:${l}:${c}`},apiUrl(){let e;return e=window.location.origin+window.location.pathname,e+=e.endsWith("/")?"":"/",e+="physton_prompt/",e},removeCSS(e,t=!0){if(!e)return;let n=null;t?n=this.gradioApp().querySelector("#"+e):n=document.querySelector("#"+e),n&&n.remove()},loadCSS(e,t="",n=!0,r=!1,i=!0){n&&this.removeCSS(t,i);let o=this.apiUrl()+"styles?file="+encodeURIComponent(e);r||(o+="&t="+new Date().getTime());let s=document.createElement("link");s.id=t,s.rel="stylesheet",s.href=o,i?this.gradioApp().appendChild(s):document.body.appendChild(s)},swapElement(e,t){let n=e.parentNode,r=t.parentNode,i=e.nextSibling,o=t.nextSibling;n.insertBefore(t,i),r.insertBefore(e,o)},insertBefore(e,t){t.parentNode.insertBefore(e,t)},insertAfter(e,t){t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)},gradioContainer:null,gradioApp(){if(this.gradioContainer)return this.gradioContainer;const e=document.getElementsByTagName("gradio-app"),t=e.length==0?null:e[0].shadowRoot;if(t){const n=t.querySelectorAll(".gradio-container");for(let r=0;r=this._config.preview;if(o)r.postMessage({results:J,workerId:c.WORKER_ID,finished:je});else if(ue(this._config.chunk)&&!P){if(this._config.chunk(J,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);J=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(J.data),this._completeResults.errors=this._completeResults.errors.concat(J.errors),this._completeResults.meta=J.meta),this._completed||!je||!ue(this._config.complete)||J&&J.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),je||J&&J.meta.paused||this._nextChunk(),J}this._halted=!0},this._sendError=function(S){ue(this._config.error)?this._config.error(S):o&&this._config.error&&r.postMessage({workerId:c.WORKER_ID,error:S,finished:!1})}}function p(I){var S;(I=I||{}).chunkSize||(I.chunkSize=c.RemoteChunkSize),h.call(this,I),this._nextChunk=i?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(P){this._input=P,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(S=new XMLHttpRequest,this._config.withCredentials&&(S.withCredentials=this._config.withCredentials),i||(S.onload=m(this._chunkLoaded,this),S.onerror=m(this._chunkError,this)),S.open(this._config.downloadRequestBody?"POST":"GET",this._input,!i),this._config.downloadRequestHeaders){var P=this._config.downloadRequestHeaders;for(var j in P)S.setRequestHeader(j,P[j])}if(this._config.chunkSize){var ee=this._start+this._config.chunkSize-1;S.setRequestHeader("Range","bytes="+this._start+"-"+ee)}try{S.send(this._config.downloadRequestBody)}catch(J){this._chunkError(J.message)}i&&S.status===0&&this._chunkError()}},this._chunkLoaded=function(){S.readyState===4&&(S.status<200||400<=S.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:S.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(P){var j=P.getResponseHeader("Content-Range");return j===null?-1:parseInt(j.substring(j.lastIndexOf("/")+1))}(S),this.parseChunk(S.responseText)))},this._chunkError=function(P){var j=S.statusText||P;this._sendError(new Error(j))}}function y(I){var S,P;(I=I||{}).chunkSize||(I.chunkSize=c.LocalChunkSize),h.call(this,I);var j=typeof FileReader<"u";this.stream=function(ee){this._input=ee,P=ee.slice||ee.webkitSlice||ee.mozSlice,j?((S=new FileReader).onload=m(this._chunkLoaded,this),S.onerror=m(this._chunkError,this)):S=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(ee.target.result)},this._chunkError=function(){this._sendError(S.error)}}function C(I){var S;h.call(this,I=I||{}),this.stream=function(P){return S=P,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var P,j=this._config.chunkSize;return j?(P=S.substring(0,j),S=S.substring(j)):(P=S,S=""),this._finished=!S,this.parseChunk(P)}}}function w(I){h.call(this,I=I||{});var S=[],P=!0,j=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(ee){this._input=ee,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){j&&S.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),S.length?this.parseChunk(S.shift()):P=!0},this._streamData=m(function(ee){try{S.push(typeof ee=="string"?ee:ee.toString(this._config.encoding)),P&&(P=!1,this._checkIsFinished(),this.parseChunk(S.shift()))}catch(J){this._streamError(J)}},this),this._streamError=m(function(ee){this._streamCleanUp(),this._sendError(ee)},this),this._streamEnd=m(function(){this._streamCleanUp(),j=!0,this._streamData("")},this),this._streamCleanUp=m(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function k(I){var S,P,j,ee=Math.pow(2,53),J=-ee,ye=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,je=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,Ne=this,z=0,ie=0,fe=!1,nt=!1,Ve=[],ne={data:[],errors:[],meta:{}};if(ue(I.step)){var ge=I.step;I.step=function(Le){if(ne=Le,Oe())Ae();else{if(Ae(),ne.data.length===0)return;z+=Le.data.length,I.preview&&z>I.preview?P.abort():(ne.data=ne.data[0],ge(ne,Ne))}}}function we(Le){return I.skipEmptyLines==="greedy"?Le.join("").trim()==="":Le.length===1&&Le[0].length===0}function Ae(){return ne&&j&&(Xe("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+c.DefaultDelimiter+"'"),j=!1),I.skipEmptyLines&&(ne.data=ne.data.filter(function(Le){return!we(Le)})),Oe()&&function(){if(!ne)return;function Le(mt,R){ue(I.transformHeader)&&(mt=I.transformHeader(mt,R)),Ve.push(mt)}if(Array.isArray(ne.data[0])){for(var rt=0;Oe()&&rt=Ve.length?"__parsed_extra":Ve[$]),I.transform&&(W=I.transform(W,te)),W=Be(te,W),te==="__parsed_extra"?(G[te]=G[te]||[],G[te].push(W)):G[te]=W}return I.header&&($>Ve.length?Xe("FieldMismatch","TooManyFields","Too many fields: expected "+Ve.length+" fields but parsed "+$,ie+R):$=Ce.length/2?`\r +`:"\r"}(Le,R)),j=!1,I.delimiter)ue(I.delimiter)&&(I.delimiter=I.delimiter(Le),ne.meta.delimiter=I.delimiter);else{var $=function(te,W,X,Ce,de){var me,se,ke,_e;de=de||[","," ","|",";",c.RECORD_SEP,c.UNIT_SEP];for(var Me=0;Me=ye)return Ht(!0)}else for(Se=z,z++;;){if((Se=fe.indexOf(S,Se+1))===-1)return Ve||Xe.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:Be.length,index:z}),Ft();if(Se===ne-1)return Ft(fe.substring(z,Se).replace(Me,S));if(S!==Ne||fe[Se+1]!==Ne){if(S===Ne||Se===0||fe[Se-1]!==Ne){ke!==-1&&ke=ye)return Ht(!0);break}Xe.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:Be.length,index:z}),Se++}}else Se++}return Ft();function at(Q){Be.push(Q),rt=z}function Ct(Q){var De=0;if(Q!==-1){var Fe=fe.substring(Se+1,Q);Fe&&Fe.trim()===""&&(De=Fe.length)}return De}function Ft(Q){return Ve||(Q===void 0&&(Q=fe.substring(z)),Le.push(Q),z=ne,at(Le),Oe&&fn()),Ht()}function an(Q){z=Q,at(Le),Le=[],_e=fe.indexOf(j,z)}function Ht(Q){return{data:Be,errors:Xe,meta:{delimiter:P,linebreak:j,aborted:ie,truncated:!!Q,cursor:rt+(nt||0)}}}function fn(){J(Ht()),Be=[],Xe=[]}},this.abort=function(){ie=!0},this.getCharIndex=function(){return z}}function L(I){var S=I.data,P=s[S.workerId],j=!1;if(S.error)P.userError(S.error,S.file);else if(S.results&&S.results.data){var ee={abort:function(){j=!0,K(S.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:D,resume:D};if(ue(P.userStep)){for(var J=0;J{}},translateApis:{type:Array,default:()=>[]},translateApi:{type:String,default:""},translateApiConfig:{type:Object},tagCompleteFile:{type:String,default:""},onlyCsvOnAuto:{type:Boolean,default:!1}},data(){return{cancelMultiTranslate:!1,globals:Sl}},computed:{langName(){for(const e in this.languages){const t=this.languages[e];if(t.code===this.languageCode)return t.name}return item.name}},methods:{getLang(e){return ve.getLang(e,this.languageCode,this.languages)},replaceGlobals(e){return ve.replaceGlobals(e,this.languageCode)},getCSV(e=null,t=!1){return window.tagCompleteFileCache=window.tagCompleteFileCache||{},window.tagCompleteFileLoading=window.tagCompleteFileLoading||{},new Promise((n,r)=>{if(e=e||this.tagCompleteFile,!t&&window.tagCompleteFileCache[e]){n(window.tagCompleteFileCache[e]);return}if(window.tagCompleteFileLoading[e]){const s=setInterval(()=>{window.tagCompleteFileLoading[e]||(clearInterval(s),n(window.tagCompleteFileCache[e]))},100);return}window.tagCompleteFileLoading[e]=!0;let i={toEn:new Map,toLocal:new Map},o=(s,l)=>{[s,s.replace(/\_/g," "),s.replace(/\-/g," ")].forEach(d=>i.toLocal.set(d,l)),i.toEn.set(l,s)};if(!e&&typeof translations=="object"&&translations instanceof Map){translations.forEach((s,l)=>{o(l,s)}),window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=i,n(i);return}if(!e){window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=i,r(this.getLang("not_found_csv_file"));return}this.gradioAPI.getCSV(e).then(s=>{s=aw.parse(s,{header:!1,skipEmptyLines:!0}),s.data.forEach(l=>{if(l.length<2)return;let c=l[0].trim(),d=l[1].trim();c===""||d===""||o(c,d)}),window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=i,n(i)}).catch(s=>{window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=i,s.response&&s.response.status===404?r(this.getLang("not_found_csv_file")):r(s.message)})})},async translateToLocalByCSV(e,t=null,n=!1){let r=await this.getCSV(t,n);return e=e.trim().toLowerCase(),r.toLocal.has(e)?r.toLocal.get(e):""},async translateToEnByCSV(e,t=null,n=!1){let r=await this.getCSV(t,n);return e=e.trim().toLowerCase(),r.toEn.has(e)?r.toEn.get(e):""}}},Hi=Number.isNaN||window.isNaN,lw=/^-?(?:\d+|\d+\.\d+|\.\d+)(?:[eE][-+]?\d+)?$/,uw=/\.\d*(?:0|9){10}\d*$/,bg=(e,t=1e11)=>uw.test(String(e))?Math.round(e*t)/t:e,cw=Rn({name:"VueNumberInput",props:{attrs:{type:Object,default:void 0},center:Boolean,controls:Boolean,disabled:Boolean,inputtable:{type:Boolean,default:!0},inline:Boolean,max:{type:Number,default:1/0},min:{type:Number,default:-1/0},name:{type:String,default:void 0},placeholder:{type:String,default:void 0},readonly:Boolean,rounded:Boolean,size:{type:String,default:void 0},step:{type:Number,default:1},modelValue:{type:Number,default:NaN}},emits:["update:modelValue"],data(){return{value:NaN}},computed:{increasable(){return Hi(this.value)||this.valuethis.min}},watch:{modelValue:{immediate:!0,handler(e,t){!(Hi(e)&&typeof t>"u")&&e!==this.value&&this.setValue(e)}}},methods:{isNaN:Hi,change(e){this.setValue(e.target.value)},paste(e){const t=e.clipboardData||window.clipboardData;t&&!lw.test(t.getData("text"))&&e.preventDefault()},decrease(){if(this.decreasable){let{value:e}=this;Hi(e)&&(e=0),this.setValue(bg(e-this.step))}},increase(){if(this.increasable){let{value:e}=this;Hi(e)&&(e=0),this.setValue(bg(e+this.step))}},setValue(e){const t=this.value;let n=typeof e!="number"?parseFloat(e):e;Hi(n)||(this.min<=this.max&&(n=Math.min(this.max,Math.max(this.min,n))),this.rounded&&(n=Math.round(n))),this.value=n,n===t&&(this.$refs.input.value=String(n)),this.$emit("update:modelValue",n,t)}}}),En=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},fw=["disabled"],dw=["name","value","min","max","step","readonly","disabled","placeholder"],pw=["disabled"];function hw(e,t,n,r,i,o){return E(),H("div",{class:lt(["vue-number-input",{"vue-number-input--inline":e.inline,"vue-number-input--center":e.center,"vue-number-input--controls":e.controls,[`vue-number-input--${e.size}`]:e.size}])},[e.controls?(E(),H("button",{key:0,class:"vue-number-input__button vue-number-input__button--minus",type:"button",tabindex:"-1",disabled:e.disabled||e.readonly||!e.decreasable,onClick:t[0]||(t[0]=gt((...s)=>e.decrease&&e.decrease(...s),["prevent"]))},null,8,fw)):Re("",!0),T("input",ul({ref:"input",class:"vue-number-input__input"},e.attrs,{type:"number",name:e.name,value:isNaN(e.value)?"":e.value,min:e.min,max:e.max,step:e.step,readonly:e.readonly||!e.inputtable,disabled:e.disabled||!e.decreasable&&!e.increasable,placeholder:e.placeholder,autocomplete:"off",onChange:t[1]||(t[1]=(...s)=>e.change&&e.change(...s)),onPaste:t[2]||(t[2]=(...s)=>e.paste&&e.paste(...s))}),null,16,dw),e.controls?(E(),H("button",{key:1,class:"vue-number-input__button vue-number-input__button--plus",type:"button",tabindex:"-1",disabled:e.disabled||e.readonly||!e.increasable,onClick:t[3]||(t[3]=gt((...s)=>e.increase&&e.increase(...s),["prevent"]))},null,8,pw)):Re("",!0)],2)}const gw=En(cw,[["render",hw]]),mw={data(){return{autocompleteResults:null,showAppendList:!1,appendListStyle:{top:0,left:0},appendListSelected:null,appendListChildSelected:null,appendList:[{type:"wrap",name:"line_break_character",icon:"wrap",children:[]}],favorites:[],autoInputPrompt:"disabled",autoInputPromptKey:""}},computed:{appendListChildItemTags(){return this.appendListSelected===null?[]:this.appendListChildSelected===null?[]:this.appendList[this.appendListSelected].type!=="favorite"&&this.appendList[this.appendListSelected].type!=="history"?[]:this.appendList[this.appendListSelected].children[this.appendListChildSelected].tags}},mounted(){this.initAutoInputPrompt(),[{name:"txt2img",type:"prompt",key:"txt2img",neg:!1},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",neg:!0},{name:"img2img",type:"prompt",key:"img2img",neg:!1},{name:"img2img",type:"negative_prompt",key:"img2img_neg",neg:!0}].forEach(t=>{t.neg===this.neg&&this.appendList.push({type:"favorite",name:["favorite",t.name],icon:"favorite",key:t.key,dataKey:"favorite."+t.key,children:[]})})},methods:{onUnfoldClick(){this.hidePanel&&this.$nextTick(()=>{this.onResize()}),this.$emit("update:hidePanel",!this.hidePanel)},onTranslatesToLocalClick(){if(this.tags.length===0)return;if(this.loading.all_local){this.cancelMultiTranslate=!0,this.loading.all_local=!1;return}this.loading.all_local=!0;let e=[];for(const t in this.tags)this.tags[t].type&&this.tags[t].type!=="text"||e.push(t);return this.translates(e,!0,!0).finally(()=>{this.loading.all_local=!1,this.updateTags()})},onTranslatesToEnglishClick(){if(this.tags.length===0)return;if(this.loading.all_en){this.cancelMultiTranslate=!0,this.loading.all_en=!1;return}this.loading.all_en=!0;let e=[];for(const t in this.tags)this.tags[t].type&&this.tags[t].type!=="text"||e.push(t);this.translates(e,!1,!0).finally(()=>{this.loading.all_en=!1,this.updateTags()})},onCopyAllTagsClick(){this.copy(this.prompt)},onDeleteAllTagsClick(){confirm(this.getLang("delete_all_keywords_confirm"))&&(this.tags=[],this.updateTags())},appendListItemName(e){let t=[];if(typeof e.name=="object")for(let n of e.name)t.push(this.getLang(n));else t=[this.getLang(e.name)];return t.join(" / ")},onAppendTagFocus(e){if(this.$refs.promptTagAppend.value===""||this.$refs.promptTagAppend.value.trim()===""){this.appendListStyle={top:e.target.offsetTop+e.target.offsetHeight+"px",left:e.target.offsetLeft+"px"},this.appendListSelected=null,this.appendListChildSelected=null,this.showAppendList=!0;let t=[];this.appendList.forEach(n=>{typeof n.dataKey=="string"&&t.push(n.dataKey)}),this.gradioAPI.getDatas(t).then(n=>{this.appendList.forEach(r=>{typeof r.dataKey=="string"&&(r.children=n[r.dataKey]||[],r.children.reverse())})})}this._setTextareaFocus()},onAppendTagBlur(e){setTimeout(()=>{this.showAppendList=!1},300)},selectAppendList(e=!0){this.appendList.length!==0&&(this.appendListSelected===null?this.appendListSelected=0:e?(this.appendListSelected++,this.appendListSelected>=this.appendList.length&&(this.appendListSelected=0)):(this.appendListSelected--,this.appendListSelected<0&&(this.appendListSelected=this.appendList.length-1)),this.appendListChildSelected=null)},selectAppendListChild(e=!0){this.appendList.length!==0&&this.appendListSelected!==null&&this.appendList[this.appendListSelected].children.length!==0&&(this.appendListChildSelected===null?this.appendListChildSelected=0:e?(this.appendListChildSelected++,this.appendListChildSelected>=this.appendList[this.appendListSelected].children.length&&(this.appendListChildSelected=0)):(this.appendListChildSelected--,this.appendListChildSelected<0&&(this.appendListChildSelected=this.appendList[this.appendListSelected].children.length-1)),this.scrollAppendListChild())},scrollAppendListChild(){this.appendListSelected!==null&&(this.appendListChildSelected===0||this.appendListChildSelected===null?this.$refs.promptAppendListChildren[this.appendListSelected].scrollTop=0:this.$refs.promptAppendListChild[this.appendListChildSelected].scrollIntoView({behavior:"smooth",block:"center"}))},onAppendTagKeyDown(e,t=null){if(!(e.keyCode===38||e.keyCode===40))if(e.keyCode===13){if(this.getAutocompleteResults()&&this.autocompleteResults.style.display==="block"&&this.getAutocompleteResultsSelected()){let r=this.getAutocompleteResultsSelectedText();setTimeout(()=>{t=this.$refs.promptTagAppend.value,r?t=r:(r=this.getAutocompleteResultsSelectedText(),r&&(t=r)),this.onAppendTagKeyDown(e,t)},300);return}let n=this.$refs.promptTagAppend.value;if(this.$refs.promptTagAppend.value="",this.showAppendList=!0,console.log(n,t),t)n=n.replace(/\s*,\s*$/,"").trim(),ve.hasBrackets(n)&&(n=ve.replaceBrackets(n)),this._appendTag(n,t),this.updateTags();else{ve.hasBrackets(n)?(n=ve.replaceBrackets(n),n=[n]):n=ve.splitTags(n,this.autoBreakBeforeWrap,this.autoBreakAfterWrap);let r=[];n.forEach(i=>{let o=-1;i===` +`?o=this._appendTag(` +`,` +`,!1,-1,"wrap"):o=this._appendTag(i),o!==-1&&r.push(o)}),this.updatePrompt(),this.autoTranslateToEnglish||this.autoTranslateToLocal?this.$nextTick(()=>{let i=!(this.tagCompleteFile&&this.onlyCsvOnAuto);this.autoTranslateToEnglish?this.translates(r,!1,i).finally(()=>{this.updateTags()}):this.autoTranslateToLocal&&this.translates(r,!0,i).finally(()=>{this.updateTags()})}):this.updateTags()}}else this.removeAutocompleteResultsSelected()},onAppendTagKeyUp(e){this.$refs.promptTagAppend.value===""||this.$refs.promptTagAppend.value.trim()===""?(this.$refs.promptTagAppend.value="",this.showAppendList=!0,e.keyCode===38||e.keyCode===40?this.appendListChildSelected===null?this.selectAppendList(e.keyCode===40):this.selectAppendListChild(e.keyCode===40):e.keyCode===37||e.keyCode===39?this.appendListSelected!==null&&(e.keyCode===37?(this.appendListChildSelected=null,this.scrollAppendListChild()):this.appendList[this.appendListSelected].children.length===0?this.appendListChildSelected=null:(this.appendListChildSelected=0,this.scrollAppendListChild())):e.keyCode===13&&(this._appendTagByList(),this.scrollAppendListChild(),this.appendListSelected=null,this.appendListChildSelected=null)):this.showAppendList=!1},onAppendGroupClick(e,t,n){if(e!==null){if(this.appendListSelected=e,t===null){if(this.appendList[this.appendListSelected].children.length>0)return}else this.appendListChildSelected=t;this._appendTagByList()}},onAppendListChildMouseLeave(e,t,n){this.appendListSelected=null,this.appendListChildSelected=null},onAppendListChildMouseEnter(e,t,n){this.appendListSelected=e,this.appendListChildSelected=t},_appendTagByList(){if(this.appendListSelected===null)return;const e=this.appendList[this.appendListSelected];let t=null;e.children.length>0&&this.appendListChildSelected!==null&&(t=e.children[this.appendListChildSelected]);let n=[];switch(e.type){case"wrap":n.push({value:` +`,localValue:` +`,disabled:!1,type:"wrap"});break;case"lora":break;case"favorite":case"history":t&&t.tags.forEach(r=>{n.push({value:r.value,localValue:r.localValue,disabled:r.disabled,type:r.type||"text"})});break}n.length<=0||(n.forEach(r=>{this._appendTag(r.value,r.localValue,r.disabled,-1,r.type)}),this.updateTags())},getAutocompleteResults(){if(!this.autocompleteResults){const e=this.$refs.promptTagAppend.parentElement.querySelector(".autocompleteResults");e&&(this.autocompleteResults=e,this.autocompleteResults.getAttribute("data-mousemove")!=="true"&&(this.autocompleteResults.setAttribute("data-mousemove","true"),this.autocompleteResults.addEventListener("mousemove",t=>{this.bindAutocompleteResultsClick()})))}return this.autocompleteResults},removeAutocompleteResultsSelected(){const e=this.getAutocompleteResults();return e?(e.querySelectorAll("li").forEach(t=>{t.classList.remove("selected")}),!0):!1},getAutocompleteResultsSelected(){const e=this.getAutocompleteResults();if(!e)return null;const t=e.querySelector("li.selected");return t||null},getAutocompleteResultsSelectedText(e=null){if(!e&&(e=this.getAutocompleteResultsSelected(),!e))return null;const r=e.querySelector(".acListItem").innerText.match(/\[(.+?)\]/);return r?r[1]:null},bindAutocompleteResultsClick(){if(this.getAutocompleteResults(),!this.autocompleteResults)return;this.autocompleteResults.querySelectorAll("li").forEach(t=>{t.getAttribute("physton-on-clicked")!=="true"&&(t.setAttribute("physton-on-clicked","true"),t.addEventListener("click",()=>{this.onAutocompleteResultsClicked(t)}))})},onAutocompleteResultsClicked(e){const t=this.getAutocompleteResultsSelectedText(e);setTimeout(()=>{let n=this.$refs.promptTagAppend.value.replace(/,\s*$/,"");this.$refs.promptTagAppend.value="",n=n.replace(/\s*,\s*$/,"").trim(),ve.hasBrackets(n)&&(n=ve.replaceBrackets(n)),this._appendTag(n,t),this.updateTags()},300)},onSettingBoxMouseEnter(){this.favorites=typeof window.phystonPromptfavorites=="object"?window.phystonPromptfavorites:[]},getCurrentTypeFavorites(){let e=[];return this.favorites.forEach(t=>{if(this.neg){if(t.type!=="negative_prompt")return}else if(t.type!=="prompt")return;e.push(t)}),e},onAutoInputPromptChange(){this.gradioAPI.setData(this.autoInputPromptKey,this.autoInputPrompt).then(()=>{this.$toastr.success(this.getLang("success"))}).catch(()=>{this.$toastr.error(this.getLang("failed"))})},initAutoInputPrompt(){this.autoInputPromptKey="autoInputPrompt-"+this.name,this.gradioAPI.getData(this.autoInputPromptKey).then(e=>{if(e!==null)if(this.autoInputPrompt=e,this.autoInputPrompt==="last")this.gradioAPI.getLatestHistory(this.historyKey).then(t=>{this.useHistory(t)});else{const t=()=>{if(typeof window.phystonPromptfavorites=="object"&&window.phystonPromptfavorites.length>0){for(let n of window.phystonPromptfavorites)for(let r of n.list)if(r.id===this.autoInputPrompt){this.useFavorite(r);return}return}setTimeout(t,100)};setTimeout(t,100)}})}}},vw={data(){return{dropStartX:0,dropStartY:0,dropEndX:0,dropEndY:0,dropOffsetX:0,dropOffsetY:0,dropIsSelecting:!1,dropIsStart:!1,dropIsEnd:!1,dropArea:{top:0,left:0,width:0,height:0},dropTags:[],dropTimeId:0}},methods:{_dropOver(){this.dropIsSelecting=!1,this.dropIsStart=!1,this.dropIsEnd=!1,this.dropTags=[];for(let e=0;ethis.dropArea.left+this.dropArea.width||i>this.dropArea.top+this.dropArea.height)?(e.push(n.getAttribute("data-id")),n.classList.add("drop-selected")):n.classList.remove("drop-selected"),this.dropTags=e}},onDropMouseUp(e){this.dropIsSelecting=!1,this.dropIsStart=!1,this.dropIsEnd=!0,this.$refs.dropSelectBtns.style.left=this.$refs.dropSelectBox.style.left,this.$refs.dropSelectBtns.style.top=this.$refs.dropSelectBox.style.top},_getDropTags(){let e=[];return this.dropTags.forEach(t=>{let n=this.tags.find(r=>r.id===t);n&&e.push(n)}),e},_getDropIndexes(){let e=[];return this.dropTags.forEach(t=>{let n=this.tags.findIndex(r=>r.id===t);n!==-1&&e.push(n)}),e},_getDropTagsEle(){let e=[];return this.dropTags.forEach(t=>{let n=this.$refs.promptTagsList.querySelector(`.prompt-tag[data-id="${t}"]`);n&&e.push(n)}),e},onDropCopy(){let e=this._getDropTags();this._dropOver();let t=this.genPrompt(e,!0);this.copy(t)},onDropFavorite(){let e=this._getDropTags();this._dropOver();let t=this.genPrompt(e,!0);this.gradioAPI.pushFavorite(this.favoriteKey,e,t,"").then(n=>{n?(this.$toastr.success(this.getLang("success")),this.$emit("refreshFavorites",this.favoriteKey)):this.$toastr.error(this.getLang("failed"))}).catch(n=>{this.$toastr.error(this.getLang("failed"))})},onDropDisable(){let e=this._getDropTags();this._dropOver(),e.forEach(t=>{t.disabled=!0}),this.updateTags()},onDropEnable(){let e=this._getDropTags();this._dropOver(),e.forEach(t=>{t.disabled=!1}),this.updateTags()},onDropDelete(){let e=this._getDropIndexes();this._dropOver(),e.sort((t,n)=>n-t),e.forEach(t=>{this.tags.splice(t,1)}),this.updateTags()}}};var Vc="__autosizeInputGhost",yw={" ":"nbsp","<":"lt",">":"gt"};function bw(e){return"&"+yw[e]+";"}function Cw(e){return e.replace(/\s|<|>/g,bw)}function _w(){var e=document.createElement("div");return e.id=Vc,e.style.cssText="display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;",document.body.appendChild(e),e}var ww=function(e,t){var n=window.getComputedStyle(e),r="box-sizing:"+n.boxSizing+";border-left:"+n.borderLeftWidth+" solid red;border-right:"+n.borderRightWidth+" solid red;font-family:"+n.fontFamily+";font-feature-settings:"+n.fontFeatureSettings+";font-kerning:"+n.fontKerning+";font-size:"+n.fontSize+";font-stretch:"+n.fontStretch+";font-style:"+n.fontStyle+";font-variant:"+n.fontVariant+";font-variant-caps:"+n.fontVariantCaps+";font-variant-ligatures:"+n.fontVariantLigatures+";font-variant-numeric:"+n.fontVariantNumeric+";font-weight:"+n.fontWeight+";letter-spacing:"+n.letterSpacing+";margin-left:"+n.marginLeft+";margin-right:"+n.marginRight+";padding-left:"+n.paddingLeft+";padding-right:"+n.paddingRight+";text-indent:"+n.textIndent+";text-transform:"+n.textTransform;function i(){var s=e.value||e.getAttribute("placeholder")||"",l=document.getElementById(Vc)||_w();l.style.cssText+=r,l.innerHTML=Cw(s);var c=window.getComputedStyle(l).width;return e.style.width=c,c}e.addEventListener("input",i);var o=i();return t&&t.minWidth&&o!=="0px"&&(e.style.minWidth=o),function(){e.removeEventListener("input",i);var s=document.getElementById(Vc);s&&s.parentNode.removeChild(s)}};const Tw=Ol(ww),xw={data(){return{tagClickTimeId:0}},mounted(){ve.gradioApp().addEventListener("mousemove",()=>{this.$refs.highlightPrompt.hide()})},methods:{_setTag(e){typeof e.type=="string"&&e.type==="wrap"?(e.weightNum=1,e.incWeight=0,e.decWeight=0):(e.weightNum=ve.getTagWeightNum(e.value),e.weightNum=e.weightNum<=0?1:e.weightNum,e.incWeight=ve.getTagIncWeight(e.value),e.decWeight=ve.getTagDecWeight(e.value)),this._setTagClass(e),this.$nextTick(()=>{this._setTagHeight(e)})},_setTagHeight(e){let t=10,n=setInterval(()=>{if(t--,t<=0&&clearInterval(n),!this.$refs["promptTagValue-"+e.id]||!this.$refs["promptTagValue-"+e.id][0])return!1;clearInterval(n);let r=this.$refs["promptTagValue-"+e.id][0],i=r.offsetHeight;r.parentNode.style.height=i+"px",this.$refs["promptTagEdit-"+e.id]&&(this.$refs["promptTagEdit-"+e.id][0].style.height=i+"px"),this.$refs["promptTagDelete-"+e.id]&&(this.$refs["promptTagDelete-"+e.id][0].style.height=i+"px")},50)},_getTagType(e){},_setTagClass(e){if(e.isLora=!1,e.loraExists=!1,e.isLyco=!1,e.lycoExists=!1,e.isEmbedding=!1,!(typeof e.type=="string"&&e.type==="wrap")){const n=e.value.match(ve.loraRegex);if(n){e.isLora=!0;const r=this.loraExists(n[1]);r!==!1&&(e.loraExists=!0,e.loraName=r)}if(!e.isLora){const r=e.value.match(ve.lycoRegex);if(r){e.isLyco=!0;const i=this.lycoExists(r[1]);i!==!1&&(e.lycoExists=!0,e.lycoName=i)}}if(!e.isLora&&!e.isLyco){const r=this.embeddingExists(e.value);if(r!==!1)e.isEmbedding=!0,e.value=r;else{let i=e.value;const o=ve.hasBrackets(i);(o[0]==="("&&o[1]===")"||o[0]==="["&&o[1]==="]")&&(i=ve.setLayers(i,0,o[0],o[1]),i=i.replace(ve.weightNumRegex,"$1"),this.embeddingExists(i)!==!1&&(e.isEmbedding=!0))}}}let t=["prompt-tag-value"];return e.isLora?(t.push("lora-tag"),e.loraExists||t.push("lora-not-exists")):e.isLyco?(t.push("lyco-tag"),e.lycoExists||t.push("lyco-not-exists")):e.isEmbedding?t.push("embedding-tag"):this.neg&&t.push("neg-tag"),e.classes=t,t},_setTagById(e,t=null,n=null){let r=this.tags.find(i=>i.id===e);return r?(t!==null&&(r.value=t),n!==null&&(r.localValue=n),r):!1},_isTagBlacklist(e){if(typeof e.type=="string"&&e.type==="wrap")return!1;if(e.isLora){if(this.blacklist.lora&&this.blacklist.lora.includes(e.loraName))return!0}else if(e.isLyco){if(this.blacklist.lycoris&&this.blacklist.lycoris.includes(e.lycoName))return!0}else if(e.isEmbedding){if(this.blacklist.embedding&&this.blacklist.embedding.includes(e.value))return!0}else if(this.neg){if(this.blacklist.negative_prompt&&this.blacklist.negative_prompt.includes(e.value))return!0}else if(this.blacklist.prompt&&this.blacklist.prompt.includes(e.value))return!0;return!1},_appendTag(e,t="",n=!1,r=-1,i="text"){if(e==="")return-1;const o=Date.now()+(Math.random()*1e6).toFixed(0);let s={id:o,value:e==null||e===!1?"":e,localValue:t==null||t===!1?"":t,disabled:n,type:i};return this._setTag(s),this._isTagBlacklist(s)?-1:(r>=0?this.tags.splice(r,0,s):r=this.tags.push(s),this.$nextTick(()=>{this.$refs["promptTagEdit-"+o]&&Tw(this.$refs["promptTagEdit-"+o][0])}),r-1)},renderTag(e){let t=this.tags.find(r=>r.id===e);if(!t)return"";let n=t.value;if(n==="BREAK"&&(this.autoBreakBeforeWrap||this.autoBreakAfterWrap))n='
---------------------
BREAK
---------------------
';else if(n=ve.escapeHtml(n),t.incWeight>0){n=ve.setLayers(n,0,"(",")"),n='
'+n+"
";let r='
'+"(".repeat(t.incWeight)+"
",i='
'+")".repeat(t.incWeight)+"
";n=r+n+i}else if(t.decWeight>0){n=ve.setLayers(n,0,"[","]"),n='
'+n+"
";let r='
'+"[".repeat(t.decWeight)+"
",i='
'+"]".repeat(t.decWeight)+"
";n=r+n+i}else n='
'+n+"
";return n},isFavorite(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;if(typeof window.phystonPromptfavorites=="object"){for(const n of window.phystonPromptfavorites)if(n.key===this.favoriteKey){for(const r of n.list)if(r.tags.length===1&&r.tags[0].value===t.value)return r.id}}return!1},onTagMouseEnter(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;t.isFavorite=this.isFavorite(t.id)},onTagMouseMove(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.$refs.highlightPrompt.show(t)},onTagClick(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.tagClickTimeId&&clearTimeout(this.tagClickTimeId),this.tagClickTimeId=setTimeout(()=>{this.editing={},this.editing[t.id]=!0,this.$forceUpdate(),this.$nextTick(()=>{const n=this.$refs["promptTagEdit-"+t.id][0];n.focus(),n.dispatchEvent(new Event("input"))}),clearTimeout(this.tagClickTimeId)},250)},onTagDblclick(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;clearTimeout(this.tagClickTimeId),this.onDisabledTagClick(t.id)},onTagInputBlur(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.editing[t.id]=!1},onTagInputKeyDown(e,t){if(t.keyCode===13){let n=this.tags.find(r=>r.id===e);if(!n)return!1;this.editing[n.id]=!1,n.value!==t.target.value&&(n.value=t.target.value,this._setTag(n),this.updateTags())}},onTagInputChange(e,t){let n=this.tags.find(r=>r.id===e);if(!n)return!1;n.value!==t.target.value&&(n.value=t.target.value,this._setTag(n),this.updateTags())},onTagWeightNumChange(e,t){let n=this.tags.find(s=>s.id===e);if(!n)return!1;if(t=typeof t=="number"||typeof a=="string"?t:t.target.value,n.weightNum==t)return;let r=t,i=n.value,o=n.localValue;if(r>0){if(r===1&&!this.autoKeepWeightOne){const s=ve.hasBrackets(i);s[0]==="("&&s[1]===")"&&(i=ve.setLayers(i,0,s[0],s[1]),o!==""&&(o=ve.setLayers(o,0,s[0],s[1]))),i=i.replace(ve.weightNumRegex,"$1"),o!==""&&(o=o.replace(ve.weightNumRegex,"$1"))}else{if(!ve.weightNumRegex.test(i)){let s=ve.hasBrackets(i);s?(i=ve.setLayers(i,1,s[0],s[1],":"+r),o!==""&&(o=ve.setLayers(o,1,s[0],s[1],":"+r))):(i=i+":"+r,o!==""&&(o=o+":"+r))}ve.hasBrackets(i)||(i=ve.setLayers(i,1,"(",")"),o!==""&&(o=ve.setLayers(o,1,"(",")")))}i!==n.value&&(n.value=i,o!==""&&(n.localValue=o),this._setTag(n))}else{const s=ve.hasBrackets(i);s[0]==="<"&&s[1]===">"?r=.1:this.autoKeepWeightZero?(n.value=i.replace(ve.weightNumRegex,"$1:0"),o!==""&&(n.localValue=n.localValue.replace(ve.weightNumRegex,"$1:0"))):(n.value=i.replace(ve.weightNumRegex,"$1"),o!==""&&(n.localValue=n.localValue.replace(ve.weightNumRegex,"$1")))}n.weightNum=r,this.updateTags()},onDeleteTagClick(e){let t=this.tags.find(r=>r.id===e);if(!t)return!1;let n=this.tags.indexOf(t);this.tags.splice(n,1),this.updateTags()},onFavoriteTagClick(e){let t=this.tags.find(r=>r.id===e);if(!t)return!1;let n=this.isFavorite(t.id);n?this.gradioAPI.unFavorite(this.favoriteKey,n).then(r=>{r&&(t.isFavorite=!1,this.$emit("refreshFavorites",this.favoriteKey))}):this.gradioAPI.pushFavorite(this.favoriteKey,[t],t.value,t.localValue===""?t.value:t.localValue).then(r=>{r&&(t.isFavorite=!0,this.$emit("refreshFavorites",this.favoriteKey))})},onDisabledTagClick(e){let t=this.tags.find(n=>n.id===e);t&&(t.disabled=!t.disabled,this.updateTags())},onIncWeightClick(e,t){let n=this.tags.find(s=>s.id===e);if(!n)return;let r=n.value,i=n.localValue;r=ve.setLayers(r,0,"[","]"),i!==""&&(i=ve.setLayers(i,0,"[","]"));let o=n.incWeight;o+=t,o<0&&(o=0),n.incWeight=o,n.decWeight=0,r=ve.setLayers(r,o,"(",")"),i!==""&&(i=ve.setLayers(i,o,"(",")")),n.value=r,i!==""&&(n.localValue=i),this.updateTags()},onDecWeightClick(e,t){let n=this.tags.find(s=>s.id===e);if(!n)return;let r=n.value,i=n.localValue;r=ve.setLayers(r,0,"(",")"),i!==""&&(i=ve.setLayers(i,0,"(",")"));let o=n.decWeight;o+=t,o<0&&(o=0),n.incWeight=0,n.decWeight=o,r=ve.setLayers(r,o,"[","]"),i!==""&&(i=ve.setLayers(i,o,"[","]")),n.value=r,i!==""&&(n.localValue=i),this.updateTags()},onWrapTagClick(e){let t=this.tags.find(o=>o.id===e);if(!t)return;let n=this.tags.indexOf(t),r=this._appendTag(` +`,` +`,!1,-1,"wrap"),i=this.tags[r];this.tags.splice(r,1),this.tags.splice(n+1,0,i),this.updateTags()},onTranslateToLocalClick(e){let t=this.tags.find(r=>r.id===e);if(!t)return;let n=this.tags.indexOf(t);this.loading[t.id+"_local"]||this.translates([n],!0,!0).finally(()=>{this.updateTags()})},onTranslateToEnglishClick(e){let t=this.tags.find(r=>r.id===e);if(!t)return;let n=this.tags.indexOf(t);this.loading[t.id+"_en"]||this.translates([n],!1,!0).finally(()=>{this.updateTags()})}}},kw={data(){return{groupTagsActive:0,subGroupTagsActive:0,groupTagsColorKeyCache:{}}},watch:{groupTags:{handler(){for(let e of this.groupTags)for(let t of e.groups){if(t.type&&t.typ=="wrap")continue;let n=this.getTagsColorKey(e.name,t.name);this.groupTagsColor[n]||(this.groupTagsColor[n]=Et(ve.fitterInputColor(t.color)));for(let r in t.tags)this.groupTagsColorKeyCache[r]=n}},deep:!0,immediate:!0}},methods:{activeGroupTab(e){this.groupTagsActive=e,this.subGroupTagsActive=0;let t=this.$refs.groupTabsHeader.children[e].offsetLeft-this.$refs.groupTabsHeader.offsetWidth/2+this.$refs.groupTabsHeader.children[e].offsetWidth/2;this.$refs.groupTabsHeader.scrollTo({left:t,behavior:"smooth"})},activeSubGroupTab(e){this.subGroupTagsActive=e},onClickHideGroupTags(){this.$emit("update:hideGroupTags",!this.hideGroupTags)},onClickGroupTag(e,t){this._appendTag(t,e,!1,-1,"text"),this.updateTags()},getGroupTagTooltip(e,t){let n="";return e&&e!==t&&(n+=e+"
"),n+=t,n},getGroupTagStyle(e,t){let n={},r=this.getTagsColorKey(e,t),i="";return this.groupTagsColor[r]&&(i=this.groupTagsColor[r],ve.isColorTransparent(i)&&(i="")),i&&(n={background:i}),n},getTagsColorKey(e,t){return e+"||"+t},onTagsColorChange(e){this.$emit("update:groupTagsColor",this.groupTagsColor)},onClickResetTagsColor(e){for(let t of this.groupTags)for(let n of t.groups){if(n.type&&n.typ=="wrap")continue;let r=this.getTagsColorKey(t.name,n.name);e===r&&(this.groupTagsColor[e]=Et(ve.fitterInputColor(n.color)))}this.onTagsColorChange(e)},onClickClearTagsColor(e){this.groupTagsColor[e]=Et("rgba(0,0,0,0)"),this.onTagsColorChange(e)},getTagColorStyle(e){if(e.isLora||e.isLyco||e.isEmbedding)return{};if(!this.groupTagsColorKeyCache[e.value])return{};let t=this.groupTagsColorKeyCache[e.value];if(!this.groupTagsColor[t])return{};let n=this.groupTagsColor[t];return ve.isColorTransparent(n)?{}:{background:n}}}},Sw={name:"IconSvg",props:{name:{type:String,required:!0},svgName:{type:String,default:""}},data(){return{svgCode:""}},watch:{name:{handler:function(e,t){this.getSvg()},immediate:!1}},mounted(){this.getSvg()},methods:{getSvg(){if(!this.name)return;let e=this.svgName||this.name;if(window.loadingSvg=window.loadingSvg||{},window.isLoadSvg=window.isLoadSvg||{},window.isLoadSvg[e]){this.svgCode=localStorage.getItem("iconSVG-"+e);return}if(localStorage.getItem("iconSVG-"+e)&&(this.svgCode=localStorage.getItem("iconSVG-"+e)),window.loadingSvg[e]){const t=setInterval(()=>{window.loadingSvg[e]||(clearInterval(t),this.svgCode=localStorage.getItem("iconSVG-"+e))},10);return}window.loadingSvg[e]=!0,window.iconSvgHash||(window.iconSvgHash=new Date().getTime()),this.gradioAPI.styles("icons/"+e+".svg",window.iconSvgHash).then(t=>{this.svgCode=t,localStorage.setItem("iconSVG-"+e,t),window.isLoadSvg[e]=!0,window.loadingSvg[e]=!1}).catch(t=>{window.loadingSvg[e]=!1})}}},Aw=["innerHTML"];function Ew(e,t,n,r,i,o){return be((E(),H("div",{class:lt(["icon-svg","icon-svg-"+n.name]),"data-name":"name",innerHTML:i.svgCode},null,10,Aw)),[[Ot,i.svgCode]])}const sr=En(Sw,[["render",Ew]]),Ow={name:"HighlightPrompt",props:{textarea:{type:Object,required:!0},hideDefaultInput:{type:Boolean,default:!1}},data(){return{scrollTop:0,showTimeId:0,hideTimeId:0,lastHighLightTag:null}},watch:{},mounted(){},methods:{show(e){this.lastHighLightTag&&this.lastHighLightTag.value===e.value||(this.lastHighLightTag=e,this.showTimeId&&clearTimeout(this.showTimeId),this.showTimeId=setTimeout(()=>{this._show(e),this.showTimeId=0},10))},_show(e){if(this.hideDefaultInput)return this._hide();if(typeof e.type=="string"&&e.type==="wrap")return this._hide();let t=e.value,n=this.textarea.value;if(t===""||t.trim()==="")return this._hide();if(n===""||n.trim()==="")return this._hide();if(t=ve.escapeHtml(t),n=ve.escapeHtml(this.textarea.value),n.indexOf(t)===-1)return this._hide();this.textarea.parentNode.insertBefore(this.$refs.highlightPrompt,this.textarea.nextSibling);const i=window.getComputedStyle(this.textarea);for(const l of i)this.$refs.highlightPrompt.style[l]=i[l];this.$refs.highlightPrompt.style.display="block",this.textarea.style.display="none";let o="",s=n;for(;;){const l=s.indexOf(t);if(l===-1){o+=s;break}const c=l+t.length;o+=s.substring(0,l),o+='',o+=s.substring(l,c),o+="",s=s.substring(c)}this.$refs.highlightPrompt.innerHTML=o,this.$refs.highlightPrompt.scrollTop=this.scrollTop},hide(){this.lastHighLightTag=null,this.showTimeId&&clearTimeout(this.showTimeId),this.hideTimeId&&clearTimeout(this.hideTimeId),this.hideTimeId=setTimeout(()=>{this._hide(),this.hideTimeId=0},10)},_hide(){this.textarea.style.display="block",this.$refs.highlightPrompt.style.display="none",this.scrollTop=this.textarea.scrollTop}}};function Lw(e,t,n,r,i,o){return E(),H("div",{class:"physton-highlight-prompt",ref:"highlightPrompt",onClick:t[0]||(t[0]=(...s)=>o.hide&&o.hide(...s))},null,512)}const Iw=En(Ow,[["render",Lw]]);function Pw(e){return yp()?(Qb(e),!0):!1}function Ws(e){return typeof e=="function"?e():jp(e)}const Cg=typeof window<"u",Ks=()=>{},Dw=Rw();function Rw(){var e;return Cg&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function _g(e,t){function n(...r){return new Promise((i,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(i).catch(o)})}return n}const wg=e=>e();function Nw(e,t={}){let n,r,i=Ks;const o=l=>{clearTimeout(l),i(),i=Ks};return l=>{const c=Ws(e),d=Ws(t.maxWait);return n&&o(n),c<=0||d!==void 0&&d<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((h,p)=>{i=t.rejectOnCancel?p:h,d&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,h(l())},d)),n=setTimeout(()=>{r&&o(r),r=null,h(l())},c)})}}function Mw(e=wg){const t=Et(!0);function n(){t.value=!1}function r(){t.value=!0}const i=(...o)=>{t.value&&e(...o)};return{isActive:tc(t),pause:n,resume:r,eventFilter:i}}function ji(e,t=200,n={}){return _g(Nw(t,n),e)}function Lo(e,t=!0){Sh()?uc(e):t?e():Ja(e)}var Tg=Object.getOwnPropertySymbols,Fw=Object.prototype.hasOwnProperty,$w=Object.prototype.propertyIsEnumerable,Bw=(e,t)=>{var n={};for(var r in e)Fw.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Tg)for(var r of Tg(e))t.indexOf(r)<0&&$w.call(e,r)&&(n[r]=e[r]);return n};function Hw(e,t,n={}){const r=n,{eventFilter:i=wg}=r,o=Bw(r,["eventFilter"]);return rr(e,_g(i,t),o)}var jw=Object.defineProperty,Uw=Object.defineProperties,Ww=Object.getOwnPropertyDescriptors,Ll=Object.getOwnPropertySymbols,xg=Object.prototype.hasOwnProperty,kg=Object.prototype.propertyIsEnumerable,Sg=(e,t,n)=>t in e?jw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Kw=(e,t)=>{for(var n in t||(t={}))xg.call(t,n)&&Sg(e,n,t[n]);if(Ll)for(var n of Ll(t))kg.call(t,n)&&Sg(e,n,t[n]);return e},Vw=(e,t)=>Uw(e,Ww(t)),qw=(e,t)=>{var n={};for(var r in e)xg.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ll)for(var r of Ll(e))t.indexOf(r)<0&&kg.call(e,r)&&(n[r]=e[r]);return n};function zw(e,t,n={}){const r=n,{eventFilter:i}=r,o=qw(r,["eventFilter"]),{eventFilter:s,pause:l,resume:c,isActive:d}=Mw(i);return{stop:Hw(e,t,Vw(Kw({},o),{eventFilter:s})),pause:l,resume:c,isActive:d}}function bn(e,t,n){return rr(e,(r,i,o)=>{r&&t(r,i,o)},n)}function Vs(e){var t;const n=Ws(e);return(t=n==null?void 0:n.$el)!=null?t:n}const qs=Cg?window:void 0;function zs(...e){let t,n,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,i]=e,t=qs):[t,n,r,i]=e,!t)return Ks;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],s=()=>{o.forEach(h=>h()),o.length=0},l=(h,p,y,C)=>(h.addEventListener(p,y,C),()=>h.removeEventListener(p,y,C)),c=rr(()=>[Vs(t),Ws(i)],([h,p])=>{s(),h&&o.push(...n.flatMap(y=>r.map(C=>l(h,y,C,p))))},{immediate:!0,flush:"post"}),d=()=>{c(),s()};return Pw(d),d}let Ag=!1;function Gw(e,t,n={}){const{window:r=qs,ignore:i=[],capture:o=!0,detectIframe:s=!1}=n;if(!r)return;Dw&&!Ag&&(Ag=!0,Array.from(r.document.body.children).forEach(y=>y.addEventListener("click",Ks)),r.document.documentElement.addEventListener("click",Ks));let l=!0;const c=y=>i.some(C=>{if(typeof C=="string")return Array.from(r.document.querySelectorAll(C)).some(w=>w===y.target||y.composedPath().includes(w));{const w=Vs(C);return w&&(y.target===w||y.composedPath().includes(w))}}),h=[zs(r,"click",y=>{const C=Vs(e);if(!(!C||C===y.target||y.composedPath().includes(C))){if(y.detail===0&&(l=!c(y)),!l){l=!0;return}t(y)}},{passive:!0,capture:o}),zs(r,"pointerdown",y=>{const C=Vs(e);C&&(l=!y.composedPath().includes(C)&&!c(y))},{passive:!0}),s&&zs(r,"blur",y=>{setTimeout(()=>{var C;const w=Vs(e);((C=r.document.activeElement)==null?void 0:C.tagName)==="IFRAME"&&!(w!=null&&w.contains(r.document.activeElement))&&t(y)},0)})].filter(Boolean);return()=>h.forEach(y=>y())}const Il=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Pl="__vueuse_ssr_handlers__",Yw=Xw();function Xw(){return Pl in Il||(Il[Pl]=Il[Pl]||{}),Il[Pl]}function Jw(e,t){return Yw[e]||t}function Zw(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}var Qw=Object.defineProperty,Eg=Object.getOwnPropertySymbols,eT=Object.prototype.hasOwnProperty,tT=Object.prototype.propertyIsEnumerable,Og=(e,t,n)=>t in e?Qw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lg=(e,t)=>{for(var n in t||(t={}))eT.call(t,n)&&Og(e,n,t[n]);if(Eg)for(var n of Eg(t))tT.call(t,n)&&Og(e,n,t[n]);return e};const nT={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ig="vueuse-storage";function rT(e,t,n,r={}){var i;const{flush:o="pre",deep:s=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:d=!1,shallow:h,window:p=qs,eventFilter:y,onError:C=I=>{console.error(I)}}=r,w=(h?AC:Et)(t);if(!n)try{n=Jw("getDefaultStorage",()=>{var I;return(I=qs)==null?void 0:I.localStorage})()}catch(I){C(I)}if(!n)return w;const k=Ws(t),O=Zw(k),N=(i=r.serializer)!=null?i:nT[O],{pause:L,resume:K}=zw(w,()=>D(w.value),{flush:o,deep:s,eventFilter:y});return p&&l&&(zs(p,"storage",ue),zs(p,Ig,m)),ue(),w;function D(I){try{if(I==null)n.removeItem(e);else{const S=N.write(I),P=n.getItem(e);P!==S&&(n.setItem(e,S),p&&p.dispatchEvent(new CustomEvent(Ig,{detail:{key:e,oldValue:P,newValue:S,storageArea:n}})))}}catch(S){C(S)}}function Te(I){const S=I?I.newValue:n.getItem(e);if(S==null)return c&&k!==null&&n.setItem(e,N.write(k)),k;if(!I&&d){const P=N.read(S);return typeof d=="function"?d(P,k):O==="object"&&!Array.isArray(P)?Lg(Lg({},k),P):P}else return typeof S!="string"?S:N.read(S)}function m(I){ue(I.detail)}function ue(I){if(!(I&&I.storageArea!==n)){if(I&&I.key==null){w.value=k;return}if(!(I&&I.key!==e)){L();try{w.value=Te(I)}catch(S){C(S)}finally{I?Ja(K):K()}}}}}function qc(e,t,n={}){const{window:r=qs}=n;return rT(e,t,r==null?void 0:r.localStorage,n)}var Ui=Ui||{};Ui.stringify=function(){var e={"visit_linear-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return e.visit_gradient(t)},"visit_radial-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return e.visit_gradient(t)},visit_gradient:function(t){var n=e.visit(t.orientation);return n&&(n+=", "),t.type+"("+n+e.visit(t.colorStops)+")"},visit_shape:function(t){var n=t.value,r=e.visit(t.at),i=e.visit(t.style);return i&&(n+=" "+i),r&&(n+=" at "+r),n},"visit_default-radial":function(t){var n="",r=e.visit(t.at);return r&&(n+=r),n},"visit_extent-keyword":function(t){var n=t.value,r=e.visit(t.at);return r&&(n+=" at "+r),n},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return e.visit(t.value.x)+" "+e.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_literal:function(t){return e.visit_color(t.value,t)},visit_hex:function(t){return e.visit_color("#"+t.value,t)},visit_rgb:function(t){return e.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return e.visit_color("rgba("+t.value.join(", ")+")",t)},visit_color:function(t,n){var r=t,i=e.visit(n.length);return i&&(r+=" "+i),r},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var n="",r=t.length;return t.forEach(function(i,o){n+=e.visit(i),o0&&n("Invalid input not EOF"),z}function i(){return K(o)}function o(){return s("linear-gradient",e.linearGradient,c)||s("repeating-linear-gradient",e.repeatingLinearGradient,c)||s("radial-gradient",e.radialGradient,p)||s("repeating-radial-gradient",e.repeatingRadialGradient,p)}function s(z,ie,fe){return l(ie,function(nt){var Ve=fe();return Ve&&(je(e.comma)||n("Missing comma before color stops")),{type:z,orientation:Ve,colorStops:K(D)}})}function l(z,ie){var fe=je(z);if(fe){je(e.startCall)||n("Missing (");var nt=ie(fe);return je(e.endCall)||n("Missing )"),nt}}function c(){return d()||h()}function d(){return ye("directional",e.sideOrCorner,1)}function h(){return ye("angular",e.angleValue,1)}function p(){var z,ie=y(),fe;return ie&&(z=[],z.push(ie),fe=t,je(e.comma)&&(ie=y(),ie?z.push(ie):t=fe)),z}function y(){var z=C()||w();if(z)z.at=O();else{var ie=k();if(ie){z=ie;var fe=O();fe&&(z.at=fe)}else{var nt=N();nt&&(z={type:"default-radial",at:nt})}}return z}function C(){var z=ye("shape",/^(circle)/i,0);return z&&(z.style=J()||k()),z}function w(){var z=ye("shape",/^(ellipse)/i,0);return z&&(z.style=j()||k()),z}function k(){return ye("extent-keyword",e.extentKeywords,1)}function O(){if(ye("position",/^at/,0)){var z=N();return z||n("Missing positioning value"),z}}function N(){var z=L();if(z.x||z.y)return{type:"position",value:z}}function L(){return{x:j(),y:j()}}function K(z){var ie=z(),fe=[];if(ie)for(fe.push(ie);je(e.comma);)ie=z(),ie?fe.push(ie):n("One extra comma");return fe}function D(){var z=Te();return z||n("Expected color definition"),z.length=j(),z}function Te(){return ue()||S()||I()||m()}function m(){return ye("literal",e.literalColor,0)}function ue(){return ye("hex",e.hexColor,1)}function I(){return l(e.rgbColor,function(){return{type:"rgb",value:K(P)}})}function S(){return l(e.rgbaColor,function(){return{type:"rgba",value:K(P)}})}function P(){return je(e.number)[1]}function j(){return ye("%",e.percentageValue,1)||ee()||J()}function ee(){return ye("position-keyword",e.positionKeywords,1)}function J(){return ye("px",e.pixelValue,1)||ye("em",e.emValue,1)}function ye(z,ie,fe){var nt=je(ie);if(nt)return{type:z,value:nt[fe]}}function je(z){var ie,fe;return fe=/^[\n\r\t\s]+/.exec(t),fe&&Ne(fe[0].length),ie=z.exec(t),ie&&Ne(ie[0].length),ie}function Ne(z){t=t.substr(z)}return function(z){return t=z.toString(),r()}}();var iT=Ui.parse,oT=Ui.stringify,Fn="top",ar="bottom",lr="right",$n="left",zc="auto",Gs=[Fn,ar,lr,$n],Io="start",Ys="end",sT="clippingParents",Pg="viewport",Xs="popper",aT="reference",Dg=Gs.reduce(function(e,t){return e.concat([t+"-"+Io,t+"-"+Ys])},[]),Rg=[].concat(Gs,[zc]).reduce(function(e,t){return e.concat([t,t+"-"+Io,t+"-"+Ys])},[]),lT="beforeRead",uT="read",cT="afterRead",fT="beforeMain",dT="main",pT="afterMain",hT="beforeWrite",gT="write",mT="afterWrite",vT=[lT,uT,cT,fT,dT,pT,hT,gT,mT];function Rr(e){return e?(e.nodeName||"").toLowerCase():null}function Yn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Wi(e){var t=Yn(e).Element;return e instanceof t||e instanceof Element}function ur(e){var t=Yn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Gc(e){if(typeof ShadowRoot>"u")return!1;var t=Yn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function yT(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!ur(o)||!Rr(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(s){var l=i[s];l===!1?o.removeAttribute(s):o.setAttribute(s,l===!0?"":l)}))})}function bT(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],o=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),l=s.reduce(function(c,d){return c[d]="",c},{});!ur(i)||!Rr(i)||(Object.assign(i.style,l),Object.keys(o).forEach(function(c){i.removeAttribute(c)}))})}}const Ng={name:"applyStyles",enabled:!0,phase:"write",fn:yT,effect:bT,requires:["computeStyles"]};function Nr(e){return e.split("-")[0]}var Ki=Math.max,Dl=Math.min,Po=Math.round;function Yc(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Mg(){return!/^((?!chrome|android).)*safari/i.test(Yc())}function Do(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&ur(e)&&(i=e.offsetWidth>0&&Po(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Po(r.height)/e.offsetHeight||1);var s=Wi(e)?Yn(e):window,l=s.visualViewport,c=!Mg()&&n,d=(r.left+(c&&l?l.offsetLeft:0))/i,h=(r.top+(c&&l?l.offsetTop:0))/o,p=r.width/i,y=r.height/o;return{width:p,height:y,top:h,right:d+p,bottom:h+y,left:d,x:d,y:h}}function Xc(e){var t=Do(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Fg(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Gc(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Yr(e){return Yn(e).getComputedStyle(e)}function CT(e){return["table","td","th"].indexOf(Rr(e))>=0}function yi(e){return((Wi(e)?e.ownerDocument:e.document)||window.document).documentElement}function Rl(e){return Rr(e)==="html"?e:e.assignedSlot||e.parentNode||(Gc(e)?e.host:null)||yi(e)}function $g(e){return!ur(e)||Yr(e).position==="fixed"?null:e.offsetParent}function _T(e){var t=/firefox/i.test(Yc()),n=/Trident/i.test(Yc());if(n&&ur(e)){var r=Yr(e);if(r.position==="fixed")return null}var i=Rl(e);for(Gc(i)&&(i=i.host);ur(i)&&["html","body"].indexOf(Rr(i))<0;){var o=Yr(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function Js(e){for(var t=Yn(e),n=$g(e);n&&CT(n)&&Yr(n).position==="static";)n=$g(n);return n&&(Rr(n)==="html"||Rr(n)==="body"&&Yr(n).position==="static")?t:n||_T(e)||t}function Jc(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Zs(e,t,n){return Ki(e,Dl(t,n))}function wT(e,t,n){var r=Zs(e,t,n);return r>n?n:r}function Bg(){return{top:0,right:0,bottom:0,left:0}}function Hg(e){return Object.assign({},Bg(),e)}function jg(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var TT=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Hg(typeof t!="number"?t:jg(t,Gs))};function xT(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,s=n.modifiersData.popperOffsets,l=Nr(n.placement),c=Jc(l),d=[$n,lr].indexOf(l)>=0,h=d?"height":"width";if(!(!o||!s)){var p=TT(i.padding,n),y=Xc(o),C=c==="y"?Fn:$n,w=c==="y"?ar:lr,k=n.rects.reference[h]+n.rects.reference[c]-s[c]-n.rects.popper[h],O=s[c]-n.rects.reference[c],N=Js(o),L=N?c==="y"?N.clientHeight||0:N.clientWidth||0:0,K=k/2-O/2,D=p[C],Te=L-y[h]-p[w],m=L/2-y[h]/2+K,ue=Zs(D,m,Te),I=c;n.modifiersData[r]=(t={},t[I]=ue,t.centerOffset=ue-m,t)}}function kT(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Fg(t.elements.popper,i)&&(t.elements.arrow=i))}const ST={name:"arrow",enabled:!0,phase:"main",fn:xT,effect:kT,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ro(e){return e.split("-")[1]}var AT={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ET(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Po(n*i)/i||0,y:Po(r*i)/i||0}}function Ug(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,s=e.offsets,l=e.position,c=e.gpuAcceleration,d=e.adaptive,h=e.roundOffsets,p=e.isFixed,y=s.x,C=y===void 0?0:y,w=s.y,k=w===void 0?0:w,O=typeof h=="function"?h({x:C,y:k}):{x:C,y:k};C=O.x,k=O.y;var N=s.hasOwnProperty("x"),L=s.hasOwnProperty("y"),K=$n,D=Fn,Te=window;if(d){var m=Js(n),ue="clientHeight",I="clientWidth";if(m===Yn(n)&&(m=yi(n),Yr(m).position!=="static"&&l==="absolute"&&(ue="scrollHeight",I="scrollWidth")),m=m,i===Fn||(i===$n||i===lr)&&o===Ys){D=ar;var S=p&&m===Te&&Te.visualViewport?Te.visualViewport.height:m[ue];k-=S-r.height,k*=c?1:-1}if(i===$n||(i===Fn||i===ar)&&o===Ys){K=lr;var P=p&&m===Te&&Te.visualViewport?Te.visualViewport.width:m[I];C-=P-r.width,C*=c?1:-1}}var j=Object.assign({position:l},d&&AT),ee=h===!0?ET({x:C,y:k},Yn(n)):{x:C,y:k};if(C=ee.x,k=ee.y,c){var J;return Object.assign({},j,(J={},J[D]=L?"0":"",J[K]=N?"0":"",J.transform=(Te.devicePixelRatio||1)<=1?"translate("+C+"px, "+k+"px)":"translate3d("+C+"px, "+k+"px, 0)",J))}return Object.assign({},j,(t={},t[D]=L?k+"px":"",t[K]=N?C+"px":"",t.transform="",t))}function OT(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,s=o===void 0?!0:o,l=n.roundOffsets,c=l===void 0?!0:l,d={placement:Nr(t.placement),variation:Ro(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Ug(Object.assign({},d,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Ug(Object.assign({},d,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const LT={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:OT,data:{}};var Nl={passive:!0};function IT(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,s=r.resize,l=s===void 0?!0:s,c=Yn(t.elements.popper),d=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&d.forEach(function(h){h.addEventListener("scroll",n.update,Nl)}),l&&c.addEventListener("resize",n.update,Nl),function(){o&&d.forEach(function(h){h.removeEventListener("scroll",n.update,Nl)}),l&&c.removeEventListener("resize",n.update,Nl)}}const PT={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:IT,data:{}};var DT={left:"right",right:"left",bottom:"top",top:"bottom"};function Ml(e){return e.replace(/left|right|bottom|top/g,function(t){return DT[t]})}var RT={start:"end",end:"start"};function Wg(e){return e.replace(/start|end/g,function(t){return RT[t]})}function Zc(e){var t=Yn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Qc(e){return Do(yi(e)).left+Zc(e).scrollLeft}function NT(e,t){var n=Yn(e),r=yi(e),i=n.visualViewport,o=r.clientWidth,s=r.clientHeight,l=0,c=0;if(i){o=i.width,s=i.height;var d=Mg();(d||!d&&t==="fixed")&&(l=i.offsetLeft,c=i.offsetTop)}return{width:o,height:s,x:l+Qc(e),y:c}}function MT(e){var t,n=yi(e),r=Zc(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Ki(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Ki(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),l=-r.scrollLeft+Qc(e),c=-r.scrollTop;return Yr(i||n).direction==="rtl"&&(l+=Ki(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:s,x:l,y:c}}function ef(e){var t=Yr(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Kg(e){return["html","body","#document"].indexOf(Rr(e))>=0?e.ownerDocument.body:ur(e)&&ef(e)?e:Kg(Rl(e))}function Qs(e,t){var n;t===void 0&&(t=[]);var r=Kg(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=Yn(r),s=i?[o].concat(o.visualViewport||[],ef(r)?r:[]):r,l=t.concat(s);return i?l:l.concat(Qs(Rl(s)))}function tf(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function FT(e,t){var n=Do(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Vg(e,t,n){return t===Pg?tf(NT(e,n)):Wi(t)?FT(t,n):tf(MT(yi(e)))}function $T(e){var t=Qs(Rl(e)),n=["absolute","fixed"].indexOf(Yr(e).position)>=0,r=n&&ur(e)?Js(e):e;return Wi(r)?t.filter(function(i){return Wi(i)&&Fg(i,r)&&Rr(i)!=="body"}):[]}function BT(e,t,n,r){var i=t==="clippingParents"?$T(e):[].concat(t),o=[].concat(i,[n]),s=o[0],l=o.reduce(function(c,d){var h=Vg(e,d,r);return c.top=Ki(h.top,c.top),c.right=Dl(h.right,c.right),c.bottom=Dl(h.bottom,c.bottom),c.left=Ki(h.left,c.left),c},Vg(e,s,r));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function qg(e){var t=e.reference,n=e.element,r=e.placement,i=r?Nr(r):null,o=r?Ro(r):null,s=t.x+t.width/2-n.width/2,l=t.y+t.height/2-n.height/2,c;switch(i){case Fn:c={x:s,y:t.y-n.height};break;case ar:c={x:s,y:t.y+t.height};break;case lr:c={x:t.x+t.width,y:l};break;case $n:c={x:t.x-n.width,y:l};break;default:c={x:t.x,y:t.y}}var d=i?Jc(i):null;if(d!=null){var h=d==="y"?"height":"width";switch(o){case Io:c[d]=c[d]-(t[h]/2-n[h]/2);break;case Ys:c[d]=c[d]+(t[h]/2-n[h]/2);break}}return c}function ea(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,s=o===void 0?e.strategy:o,l=n.boundary,c=l===void 0?sT:l,d=n.rootBoundary,h=d===void 0?Pg:d,p=n.elementContext,y=p===void 0?Xs:p,C=n.altBoundary,w=C===void 0?!1:C,k=n.padding,O=k===void 0?0:k,N=Hg(typeof O!="number"?O:jg(O,Gs)),L=y===Xs?aT:Xs,K=e.rects.popper,D=e.elements[w?L:y],Te=BT(Wi(D)?D:D.contextElement||yi(e.elements.popper),c,h,s),m=Do(e.elements.reference),ue=qg({reference:m,element:K,strategy:"absolute",placement:i}),I=tf(Object.assign({},K,ue)),S=y===Xs?I:m,P={top:Te.top-S.top+N.top,bottom:S.bottom-Te.bottom+N.bottom,left:Te.left-S.left+N.left,right:S.right-Te.right+N.right},j=e.modifiersData.offset;if(y===Xs&&j){var ee=j[i];Object.keys(P).forEach(function(J){var ye=[lr,ar].indexOf(J)>=0?1:-1,je=[Fn,ar].indexOf(J)>=0?"y":"x";P[J]+=ee[je]*ye})}return P}function HT(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,s=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,d=c===void 0?Rg:c,h=Ro(r),p=h?l?Dg:Dg.filter(function(w){return Ro(w)===h}):Gs,y=p.filter(function(w){return d.indexOf(w)>=0});y.length===0&&(y=p);var C=y.reduce(function(w,k){return w[k]=ea(e,{placement:k,boundary:i,rootBoundary:o,padding:s})[Nr(k)],w},{});return Object.keys(C).sort(function(w,k){return C[w]-C[k]})}function jT(e){if(Nr(e)===zc)return[];var t=Ml(e);return[Wg(e),t,Wg(t)]}function UT(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,l=s===void 0?!0:s,c=n.fallbackPlacements,d=n.padding,h=n.boundary,p=n.rootBoundary,y=n.altBoundary,C=n.flipVariations,w=C===void 0?!0:C,k=n.allowedAutoPlacements,O=t.options.placement,N=Nr(O),L=N===O,K=c||(L||!w?[Ml(O)]:jT(O)),D=[O].concat(K).reduce(function(we,Ae){return we.concat(Nr(Ae)===zc?HT(t,{placement:Ae,boundary:h,rootBoundary:p,padding:d,flipVariations:w,allowedAutoPlacements:k}):Ae)},[]),Te=t.rects.reference,m=t.rects.popper,ue=new Map,I=!0,S=D[0],P=0;P=0,je=ye?"width":"height",Ne=ea(t,{placement:j,boundary:h,rootBoundary:p,altBoundary:y,padding:d}),z=ye?J?lr:$n:J?ar:Fn;Te[je]>m[je]&&(z=Ml(z));var ie=Ml(z),fe=[];if(o&&fe.push(Ne[ee]<=0),l&&fe.push(Ne[z]<=0,Ne[ie]<=0),fe.every(function(we){return we})){S=j,I=!1;break}ue.set(j,fe)}if(I)for(var nt=w?3:1,Ve=function(Ae){var Oe=D.find(function(Be){var Xe=ue.get(Be);if(Xe)return Xe.slice(0,Ae).every(function(Le){return Le})});if(Oe)return S=Oe,"break"},ne=nt;ne>0;ne--){var ge=Ve(ne);if(ge==="break")break}t.placement!==S&&(t.modifiersData[r]._skip=!0,t.placement=S,t.reset=!0)}}const WT={name:"flip",enabled:!0,phase:"main",fn:UT,requiresIfExists:["offset"],data:{_skip:!1}};function zg(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Gg(e){return[Fn,lr,ar,$n].some(function(t){return e[t]>=0})}function KT(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,s=ea(t,{elementContext:"reference"}),l=ea(t,{altBoundary:!0}),c=zg(s,r),d=zg(l,i,o),h=Gg(c),p=Gg(d);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:d,isReferenceHidden:h,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":p})}const VT={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:KT};function qT(e,t,n){var r=Nr(e),i=[$n,Fn].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=o[0],l=o[1];return s=s||0,l=(l||0)*i,[$n,lr].indexOf(r)>=0?{x:l,y:s}:{x:s,y:l}}function zT(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,s=Rg.reduce(function(h,p){return h[p]=qT(p,t.rects,o),h},{}),l=s[t.placement],c=l.x,d=l.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=d),t.modifiersData[r]=s}const GT={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:zT};function YT(e){var t=e.state,n=e.name;t.modifiersData[n]=qg({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const XT={name:"popperOffsets",enabled:!0,phase:"read",fn:YT,data:{}};function JT(e){return e==="x"?"y":"x"}function ZT(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,l=s===void 0?!1:s,c=n.boundary,d=n.rootBoundary,h=n.altBoundary,p=n.padding,y=n.tether,C=y===void 0?!0:y,w=n.tetherOffset,k=w===void 0?0:w,O=ea(t,{boundary:c,rootBoundary:d,padding:p,altBoundary:h}),N=Nr(t.placement),L=Ro(t.placement),K=!L,D=Jc(N),Te=JT(D),m=t.modifiersData.popperOffsets,ue=t.rects.reference,I=t.rects.popper,S=typeof k=="function"?k(Object.assign({},t.rects,{placement:t.placement})):k,P=typeof S=="number"?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),j=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,ee={x:0,y:0};if(m){if(o){var J,ye=D==="y"?Fn:$n,je=D==="y"?ar:lr,Ne=D==="y"?"height":"width",z=m[D],ie=z+O[ye],fe=z-O[je],nt=C?-I[Ne]/2:0,Ve=L===Io?ue[Ne]:I[Ne],ne=L===Io?-I[Ne]:-ue[Ne],ge=t.elements.arrow,we=C&&ge?Xc(ge):{width:0,height:0},Ae=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Bg(),Oe=Ae[ye],Be=Ae[je],Xe=Zs(0,ue[Ne],we[Ne]),Le=K?ue[Ne]/2-nt-Xe-Oe-P.mainAxis:Ve-Xe-Oe-P.mainAxis,rt=K?-ue[Ne]/2+nt+Xe+Be+P.mainAxis:ne+Xe+Be+P.mainAxis,mt=t.elements.arrow&&Js(t.elements.arrow),R=mt?D==="y"?mt.clientTop||0:mt.clientLeft||0:0,$=(J=j==null?void 0:j[D])!=null?J:0,G=z+Le-$-R,te=z+rt-$,W=Zs(C?Dl(ie,G):ie,z,C?Ki(fe,te):fe);m[D]=W,ee[D]=W-z}if(l){var X,Ce=D==="x"?Fn:$n,de=D==="x"?ar:lr,me=m[Te],se=Te==="y"?"height":"width",ke=me+O[Ce],_e=me-O[de],Me=[Fn,$n].indexOf(N)!==-1,Se=(X=j==null?void 0:j[Te])!=null?X:0,qe=Me?ke:me-ue[se]-I[se]-Se+P.altAxis,ft=Me?me+ue[se]+I[se]-Se-P.altAxis:_e,at=C&&Me?wT(qe,me,ft):Zs(C?qe:ke,me,C?ft:_e);m[Te]=at,ee[Te]=at-me}t.modifiersData[r]=ee}}const QT={name:"preventOverflow",enabled:!0,phase:"main",fn:ZT,requiresIfExists:["offset"]};function ex(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function tx(e){return e===Yn(e)||!ur(e)?Zc(e):ex(e)}function nx(e){var t=e.getBoundingClientRect(),n=Po(t.width)/e.offsetWidth||1,r=Po(t.height)/e.offsetHeight||1;return n!==1||r!==1}function rx(e,t,n){n===void 0&&(n=!1);var r=ur(t),i=ur(t)&&nx(t),o=yi(t),s=Do(e,i,n),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((Rr(t)!=="body"||ef(o))&&(l=tx(t)),ur(t)?(c=Do(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):o&&(c.x=Qc(o))),{x:s.left+l.scrollLeft-c.x,y:s.top+l.scrollTop-c.y,width:s.width,height:s.height}}function ix(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var s=[].concat(o.requires||[],o.requiresIfExists||[]);s.forEach(function(l){if(!n.has(l)){var c=t.get(l);c&&i(c)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function ox(e){var t=ix(e);return vT.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function sx(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function ax(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Yg={placement:"bottom",modifiers:[],strategy:"absolute"};function Xg(){for(var e=arguments.length,t=new Array(e),n=0;n + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */function Zg(e){return Object.prototype.toString.call(e)==="[object Object]"}function cx(e){var t,n;return Zg(e)===!1?!1:(t=e.constructor,t===void 0?!0:(n=t.prototype,!(Zg(n)===!1||n.hasOwnProperty("isPrototypeOf")===!1)))}function ta(){return ta=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}const fx={silent:!1,logLevel:"warn"},dx=["validator"],em=Object.prototype,tm=em.toString,px=em.hasOwnProperty,nm=/^\s*function (\w+)/;function rm(e){var t;const n=(t=e==null?void 0:e.type)!==null&&t!==void 0?t:e;if(n){const r=n.toString().match(nm);return r?r[1]:""}return""}const Vi=cx;let Cn=e=>e;const No=(e,t)=>px.call(e,t),hx=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e},Mo=Array.isArray||function(e){return tm.call(e)==="[object Array]"},Fo=e=>tm.call(e)==="[object Function]",Fl=e=>Vi(e)&&No(e,"_vueTypes_name"),im=e=>Vi(e)&&(No(e,"type")||["_vueTypes_name","validator","default","required"].some(t=>No(e,t)));function nf(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function qi(e,t,n=!1){let r,i=!0,o="";r=Vi(e)?e:{type:e};const s=Fl(r)?r._vueTypes_name+" - ":"";if(im(r)&&r.type!==null){if(r.type===void 0||r.type===!0||!r.required&&t===void 0)return i;Mo(r.type)?(i=r.type.some(l=>qi(l,t,!0)===!0),o=r.type.map(l=>rm(l)).join(" or ")):(o=rm(r),i=o==="Array"?Mo(t):o==="Object"?Vi(t):o==="String"||o==="Number"||o==="Boolean"||o==="Function"?function(l){if(l==null)return"";const c=l.constructor.toString().match(nm);return c?c[1]:""}(t)===o:t instanceof r.type)}if(!i){const l=`${s}value "${t}" should be of type "${o}"`;return n===!1?(Cn(l),!1):l}if(No(r,"validator")&&Fo(r.validator)){const l=Cn,c=[];if(Cn=d=>{c.push(d)},i=r.validator(t),Cn=l,!i){const d=(c.length>1?"* ":"")+c.join(` +* `);return c.length=0,n===!1?(Cn(d),i):d}}return i}function Xn(e,t){const n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get(){return this.required=!0,this}},def:{value(i){return i===void 0?(No(this,"default")&&delete this.default,this):Fo(i)||qi(this,i,!0)===!0?(this.default=Mo(i)?()=>[...i]:Vi(i)?()=>Object.assign({},i):i,this):(Cn(`${this._vueTypes_name} - invalid default value: "${i}"`),this)}}}),{validator:r}=n;return Fo(r)&&(n.validator=nf(r,n)),n}function Mr(e,t){const n=Xn(e,t);return Object.defineProperty(n,"validate",{value(r){return Fo(this.validator)&&Cn(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info: +${JSON.stringify(this)}`),this.validator=nf(r,this),this}})}function om(e,t,n){const r=function(c){const d={};return Object.getOwnPropertyNames(c).forEach(h=>{d[h]=Object.getOwnPropertyDescriptor(c,h)}),Object.defineProperties({},d)}(t);if(r._vueTypes_name=e,!Vi(n))return r;const{validator:i}=n,o=Qg(n,dx);if(Fo(i)){let{validator:c}=r;c&&(c=(l=(s=c).__original)!==null&&l!==void 0?l:s),r.validator=nf(c?function(d){return c.call(this,d)&&i.call(this,d)}:i,r)}var s,l;return Object.assign(r,o)}function $l(e){return e.replace(/^(?!\s*$)/gm," ")}const gx=()=>Mr("any",{}),mx=()=>Mr("function",{type:Function}),vx=()=>Mr("boolean",{type:Boolean}),yx=()=>Mr("string",{type:String}),bx=()=>Mr("number",{type:Number}),Cx=()=>Mr("array",{type:Array}),_x=()=>Mr("object",{type:Object}),wx=()=>Xn("integer",{type:Number,validator:e=>hx(e)}),Tx=()=>Xn("symbol",{validator:e=>typeof e=="symbol"});function xx(e,t="custom validation failed"){if(typeof e!="function")throw new TypeError("[VueTypes error]: You must provide a function as argument");return Xn(e.name||"<>",{type:null,validator(n){const r=e(n);return r||Cn(`${this._vueTypes_name} - ${t}`),r}})}function kx(e){if(!Mo(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");const t=`oneOf - value should be one of "${e.join('", "')}".`,n=e.reduce((r,i)=>{if(i!=null){const o=i.constructor;r.indexOf(o)===-1&&r.push(o)}return r},[]);return Xn("oneOf",{type:n.length>0?n:void 0,validator(r){const i=e.indexOf(r)!==-1;return i||Cn(t),i}})}function Sx(e){if(!Mo(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");let t=!1,n=[];for(let i=0;in.indexOf(i)===o);const r=n.length>0?n:null;return Xn("oneOfType",t?{type:r,validator(i){const o=[],s=e.some(l=>{const c=qi(Fl(l)&&l._vueTypes_name==="oneOf"?l.type||null:l,i,!0);return typeof c=="string"&&o.push(c),c===!0});return s||Cn(`oneOfType - provided value does not match any of the ${o.length} passed-in validators: +${$l(o.join(` +`))}`),s}}:{type:r})}function Ax(e){return Xn("arrayOf",{type:Array,validator(t){let n="";const r=t.every(i=>(n=qi(e,i,!0),n===!0));return r||Cn(`arrayOf - value validation error: +${$l(n)}`),r}})}function Ex(e){return Xn("instanceOf",{type:e})}function Ox(e){return Xn("objectOf",{type:Object,validator(t){let n="";const r=Object.keys(t).every(i=>(n=qi(e,t[i],!0),n===!0));return r||Cn(`objectOf - value validation error: +${$l(n)}`),r}})}function Lx(e){const t=Object.keys(e),n=t.filter(i=>{var o;return!((o=e[i])===null||o===void 0||!o.required)}),r=Xn("shape",{type:Object,validator(i){if(!Vi(i))return!1;const o=Object.keys(i);if(n.length>0&&n.some(s=>o.indexOf(s)===-1)){const s=n.filter(l=>o.indexOf(l)===-1);return Cn(s.length===1?`shape - required property "${s[0]}" is not defined.`:`shape - required properties "${s.join('", "')}" are not defined.`),!1}return o.every(s=>{if(t.indexOf(s)===-1)return this._vueTypes_isLoose===!0||(Cn(`shape - shape definition does not include a "${s}" property. Allowed keys: "${t.join('", "')}".`),!1);const l=qi(e[s],i[s],!0);return typeof l=="string"&&Cn(`shape - "${s}" property validation error: + ${$l(l)}`),l===!0})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get(){return this._vueTypes_isLoose=!0,this}}),r}const Ix=["name","validate","getter"],Px=(()=>{var e;return(e=class{static get any(){return gx()}static get func(){return mx().def(this.defaults.func)}static get bool(){return vx().def(this.defaults.bool)}static get string(){return yx().def(this.defaults.string)}static get number(){return bx().def(this.defaults.number)}static get array(){return Cx().def(this.defaults.array)}static get object(){return _x().def(this.defaults.object)}static get integer(){return wx().def(this.defaults.integer)}static get symbol(){return Tx()}static get nullable(){return{type:null}}static extend(t){if(Mo(t))return t.forEach(c=>this.extend(c)),this;const{name:n,validate:r=!1,getter:i=!1}=t,o=Qg(t,Ix);if(No(this,n))throw new TypeError(`[VueTypes error]: Type "${n}" already defined`);const{type:s}=o;if(Fl(s))return delete o.type,Object.defineProperty(this,n,i?{get:()=>om(n,s,o)}:{value(...c){const d=om(n,s,o);return d.validator&&(d.validator=d.validator.bind(d,...c)),d}});let l;return l=i?{get(){const c=Object.assign({},o);return r?Mr(n,c):Xn(n,c)},enumerable:!0}:{value(...c){const d=Object.assign({},o);let h;return h=r?Mr(n,d):Xn(n,d),d.validator&&(h.validator=d.validator.bind(h,...c)),h},enumerable:!0},Object.defineProperty(this,n,l)}}).defaults={},e.sensibleDefaults=void 0,e.config=fx,e.custom=xx,e.oneOf=kx,e.instanceOf=Ex,e.oneOfType=Sx,e.arrayOf=Ax,e.objectOf=Ox,e.shape=Lx,e.utils={validate:(t,n)=>qi(n,t,!0)===!0,toType:(t,n,r=!1)=>r?Mr(t,n):Xn(t,n)},e})();function Dx(e={func:()=>{},bool:!0,string:"",number:0,array:()=>[],object:()=>({}),integer:0}){var t;return(t=class extends Px{static get sensibleDefaults(){return ta({},this.defaults)}static set sensibleDefaults(n){this.defaults=n!==!1?ta({},n!==!0?n:e):{}}}).defaults=ta({},e),t}let st=class extends Dx(){};var sm=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function rf(e){var t={exports:{}};return e(t,t.exports),t.exports}var Bl=function(e){return e&&e.Math==Math&&e},rn=Bl(typeof globalThis=="object"&&globalThis)||Bl(typeof window=="object"&&window)||Bl(typeof self=="object"&&self)||Bl(typeof sm=="object"&&sm)||function(){return this}()||Function("return this")(),Nt=function(e){try{return!!e()}catch{return!0}},cr=!Nt(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),am={}.propertyIsEnumerable,lm=Object.getOwnPropertyDescriptor,Rx={f:lm&&!am.call({1:2},1)?function(e){var t=lm(this,e);return!!t&&t.enumerable}:am},Hl=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},Nx={}.toString,Xr=function(e){return Nx.call(e).slice(8,-1)},Mx="".split,jl=Nt(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return Xr(e)=="String"?Mx.call(e,""):Object(e)}:Object,bi=function(e){if(e==null)throw TypeError("Can't call method on "+e);return e},$o=function(e){return jl(bi(e))},cn=function(e){return typeof e=="object"?e!==null:typeof e=="function"},of=function(e,t){if(!cn(e))return e;var n,r;if(t&&typeof(n=e.toString)=="function"&&!cn(r=n.call(e))||typeof(n=e.valueOf)=="function"&&!cn(r=n.call(e))||!t&&typeof(n=e.toString)=="function"&&!cn(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},Fx={}.hasOwnProperty,Zt=function(e,t){return Fx.call(e,t)},sf=rn.document,$x=cn(sf)&&cn(sf.createElement),um=function(e){return $x?sf.createElement(e):{}},cm=!cr&&!Nt(function(){return Object.defineProperty(um("div"),"a",{get:function(){return 7}}).a!=7}),fm=Object.getOwnPropertyDescriptor,af={f:cr?fm:function(e,t){if(e=$o(e),t=of(t,!0),cm)try{return fm(e,t)}catch{}if(Zt(e,t))return Hl(!Rx.f.call(e,t),e[t])}},On=function(e){if(!cn(e))throw TypeError(String(e)+" is not an object");return e},dm=Object.defineProperty,Jr={f:cr?dm:function(e,t,n){if(On(e),t=of(t,!0),On(n),cm)try{return dm(e,t,n)}catch{}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},fr=cr?function(e,t,n){return Jr.f(e,t,Hl(1,n))}:function(e,t,n){return e[t]=n,e},lf=function(e,t){try{fr(rn,e,t)}catch{rn[e]=t}return t},zi=rn["__core-js_shared__"]||lf("__core-js_shared__",{}),Bx=Function.toString;typeof zi.inspectSource!="function"&&(zi.inspectSource=function(e){return Bx.call(e)});var Ul,na,Wl,pm=zi.inspectSource,hm=rn.WeakMap,Hx=typeof hm=="function"&&/native code/.test(pm(hm)),gm=rf(function(e){(e.exports=function(t,n){return zi[t]||(zi[t]=n!==void 0?n:{})})("versions",[]).push({version:"3.8.3",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})}),jx=0,Ux=Math.random(),uf=function(e){return"Symbol("+String(e===void 0?"":e)+")_"+(++jx+Ux).toString(36)},mm=gm("keys"),cf=function(e){return mm[e]||(mm[e]=uf(e))},Kl={},Wx=rn.WeakMap;if(Hx){var Bo=zi.state||(zi.state=new Wx),Kx=Bo.get,Vx=Bo.has,qx=Bo.set;Ul=function(e,t){return t.facade=e,qx.call(Bo,e,t),t},na=function(e){return Kx.call(Bo,e)||{}},Wl=function(e){return Vx.call(Bo,e)}}else{var ra=cf("state");Kl[ra]=!0,Ul=function(e,t){return t.facade=e,fr(e,ra,t),t},na=function(e){return Zt(e,ra)?e[ra]:{}},Wl=function(e){return Zt(e,ra)}}var Ci={set:Ul,get:na,has:Wl,enforce:function(e){return Wl(e)?na(e):Ul(e,{})},getterFor:function(e){return function(t){var n;if(!cn(t)||(n=na(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},_i=rf(function(e){var t=Ci.get,n=Ci.enforce,r=String(String).split("String");(e.exports=function(i,o,s,l){var c,d=!!l&&!!l.unsafe,h=!!l&&!!l.enumerable,p=!!l&&!!l.noTargetGet;typeof s=="function"&&(typeof o!="string"||Zt(s,"name")||fr(s,"name",o),(c=n(s)).source||(c.source=r.join(typeof o=="string"?o:""))),i!==rn?(d?!p&&i[o]&&(h=!0):delete i[o],h?i[o]=s:fr(i,o,s)):h?i[o]=s:lf(o,s)})(Function.prototype,"toString",function(){return typeof this=="function"&&t(this).source||pm(this)})}),ff=rn,vm=function(e){return typeof e=="function"?e:void 0},Vl=function(e,t){return arguments.length<2?vm(ff[e])||vm(rn[e]):ff[e]&&ff[e][t]||rn[e]&&rn[e][t]},zx=Math.ceil,Gx=Math.floor,Ho=function(e){return isNaN(e=+e)?0:(e>0?Gx:zx)(e)},Yx=Math.min,Jn=function(e){return e>0?Yx(Ho(e),9007199254740991):0},Xx=Math.max,Jx=Math.min,ql=function(e,t){var n=Ho(e);return n<0?Xx(n+t,0):Jx(n,t)},ym=function(e){return function(t,n,r){var i,o=$o(t),s=Jn(o.length),l=ql(r,s);if(e&&n!=n){for(;s>l;)if((i=o[l++])!=i)return!0}else for(;s>l;l++)if((e||l in o)&&o[l]===n)return e||l||0;return!e&&-1}},bm={includes:ym(!0),indexOf:ym(!1)},Zx=bm.indexOf,Cm=function(e,t){var n,r=$o(e),i=0,o=[];for(n in r)!Zt(Kl,n)&&Zt(r,n)&&o.push(n);for(;t.length>i;)Zt(r,n=t[i++])&&(~Zx(o,n)||o.push(n));return o},zl=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Qx=zl.concat("length","prototype"),ek={f:Object.getOwnPropertyNames||function(e){return Cm(e,Qx)}},tk={f:Object.getOwnPropertySymbols},nk=Vl("Reflect","ownKeys")||function(e){var t=ek.f(On(e)),n=tk.f;return n?t.concat(n(e)):t},rk=function(e,t){for(var n=nk(t),r=Jr.f,i=af.f,o=0;o1?arguments[1]:void 0)}}),function(){function e(){Gi(this,e)}return Yi(e,null,[{key:"isInBrowser",value:function(){return typeof window<"u"}},{key:"isServer",value:function(){return typeof window>"u"}},{key:"getUA",value:function(){return e.isInBrowser()?window.navigator.userAgent.toLowerCase():""}},{key:"isMobile",value:function(){return/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion)}},{key:"isOpera",value:function(){return navigator.userAgent.indexOf("Opera")!==-1}},{key:"isIE",value:function(){var t=e.getUA();return t!==""&&t.indexOf("msie")>0}},{key:"isIE9",value:function(){var t=e.getUA();return t!==""&&t.indexOf("msie 9.0")>0}},{key:"isEdge",value:function(){var t=e.getUA();return t!==""&&t.indexOf("edge/")>0}},{key:"isChrome",value:function(){var t=e.getUA();return t!==""&&/chrome\/\d+/.test(t)&&!e.isEdge()}},{key:"isPhantomJS",value:function(){var t=e.getUA();return t!==""&&/phantomjs/.test(t)}},{key:"isFirefox",value:function(){var t=e.getUA();return t!==""&&/firefox/.test(t)}}]),e}();var hk=[].join,gk=jl!=Object,mk=pf("join",",");_n({target:"Array",proto:!0,forced:gk||!mk},{join:function(e){return hk.call($o(this),e===void 0?",":e)}});var Uo,Gl,Zr=function(e){return Object(bi(e))},Wo=Array.isArray||function(e){return Xr(e)=="Array"},km=!!Object.getOwnPropertySymbols&&!Nt(function(){return!String(Symbol())}),vk=km&&!Symbol.sham&&typeof Symbol.iterator=="symbol",Yl=gm("wks"),oa=rn.Symbol,yk=vk?oa:oa&&oa.withoutSetter||uf,Vt=function(e){return Zt(Yl,e)||(km&&Zt(oa,e)?Yl[e]=oa[e]:Yl[e]=yk("Symbol."+e)),Yl[e]},bk=Vt("species"),Xl=function(e,t){var n;return Wo(e)&&(typeof(n=e.constructor)!="function"||n!==Array&&!Wo(n.prototype)?cn(n)&&(n=n[bk])===null&&(n=void 0):n=void 0),new(n===void 0?Array:n)(t===0?0:t)},Ko=function(e,t,n){var r=of(t);r in e?Jr.f(e,r,Hl(0,n)):e[r]=n},gf=Vl("navigator","userAgent")||"",Sm=rn.process,Am=Sm&&Sm.versions,Em=Am&&Am.v8;Em?Gl=(Uo=Em.split("."))[0]+Uo[1]:gf&&(!(Uo=gf.match(/Edge\/(\d+)/))||Uo[1]>=74)&&(Uo=gf.match(/Chrome\/(\d+)/))&&(Gl=Uo[1]);var Jl=Gl&&+Gl,Ck=Vt("species"),mf=function(e){return Jl>=51||!Nt(function(){var t=[];return(t.constructor={})[Ck]=function(){return{foo:1}},t[e](Boolean).foo!==1})},_k=mf("splice"),wk=jo("splice",{ACCESSORS:!0,0:0,1:2}),Tk=Math.max,xk=Math.min;_n({target:"Array",proto:!0,forced:!_k||!wk},{splice:function(e,t){var n,r,i,o,s,l,c=Zr(this),d=Jn(c.length),h=ql(e,d),p=arguments.length;if(p===0?n=r=0:p===1?(n=0,r=d-h):(n=p-2,r=xk(Tk(Ho(t),0),d-h)),d+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(i=Xl(c,r),o=0;od-r+n;o--)delete c[o-1]}else if(n>r)for(o=d-r;o>h;o--)l=o+n-1,(s=o+r-1)in c?c[l]=c[s]:delete c[l];for(o=0;o0&&(!o.multiline||o.multiline&&e[o.lastIndex-1]!==` +`)&&(c="(?: "+c+")",h=" "+h,d++),n=new RegExp("^(?:"+c+")",l)),_f&&(n=new RegExp("^"+c+"$(?!\\s)",l)),Cf&&(t=o.lastIndex),r=Zl.call(s?n:o,h),s?r?(r.input=r.input.slice(d),r[0]=r[0].slice(d),r.index=o.lastIndex,o.lastIndex+=r[0].length):o.lastIndex=0:Cf&&r&&(o.lastIndex=o.global?r.index+r[0].length:t),_f&&r&&r.length>1&&Ek.call(r[0],n,function(){for(i=1;i")!=="7"}),$m="a".replace(/./,"$0")==="$0",Bm=Vt("replace"),Hm=!!/./[Bm]&&/./[Bm]("a","$0")==="",Dk=!Nt(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return n.length!==2||n[0]!=="a"||n[1]!=="b"}),jm=function(e,t,n,r){var i=Vt(e),o=!Nt(function(){var p={};return p[i]=function(){return 7},""[e](p)!=7}),s=o&&!Nt(function(){var p=!1,y=/a/;return e==="split"&&((y={}).constructor={},y.constructor[Ik]=function(){return y},y.flags="",y[i]=/./[i]),y.exec=function(){return p=!0,null},y[i](""),!p});if(!o||!s||e==="replace"&&(!Pk||!$m||Hm)||e==="split"&&!Dk){var l=/./[i],c=n(i,""[e],function(p,y,C,w,k){return y.exec===sa?o&&!k?{done:!0,value:l.call(y,C,w)}:{done:!0,value:p.call(C,y,w)}:{done:!1}},{REPLACE_KEEPS_$0:$m,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Hm}),d=c[0],h=c[1];_i(String.prototype,e,d),_i(RegExp.prototype,i,t==2?function(p,y){return h.call(p,this,y)}:function(p){return h.call(p,this)})}r&&fr(RegExp.prototype[i],"sham",!0)},Rk=Vt("match"),Um=function(e){var t;return cn(e)&&((t=e[Rk])!==void 0?!!t:Xr(e)=="RegExp")},wf=function(e){if(typeof e!="function")throw TypeError(String(e)+" is not a function");return e},Nk=Vt("species"),Wm=function(e){return function(t,n){var r,i,o=String(bi(t)),s=Ho(n),l=o.length;return s<0||s>=l?e?"":void 0:(r=o.charCodeAt(s))<55296||r>56319||s+1===l||(i=o.charCodeAt(s+1))<56320||i>57343?e?o.charAt(s):r:e?o.slice(s,s+2):i-56320+(r-55296<<10)+65536}},Km={codeAt:Wm(!1),charAt:Wm(!0)},Mk=Km.charAt,Vm=function(e,t,n){return t+(n?Mk(e,t).length:1)},Tf=function(e,t){var n=e.exec;if(typeof n=="function"){var r=n.call(e,t);if(typeof r!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return r}if(Xr(e)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return sa.call(e,t)},Fk=[].push,$k=Math.min,Vo=!Nt(function(){return!RegExp(4294967295,"y")});jm("split",2,function(e,t,n){var r;return r="abbc".split(/(b)*/)[1]=="c"||"test".split(/(?:)/,-1).length!=4||"ab".split(/(?:ab)*/).length!=2||".".split(/(.?)(.?)/).length!=4||".".split(/()()/).length>1||"".split(/.?/).length?function(i,o){var s=String(bi(this)),l=o===void 0?4294967295:o>>>0;if(l===0)return[];if(i===void 0)return[s];if(!Um(i))return t.call(s,i,l);for(var c,d,h,p=[],y=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(i.sticky?"y":""),C=0,w=new RegExp(i.source,y+"g");(c=sa.call(w,s))&&!((d=w.lastIndex)>C&&(p.push(s.slice(C,c.index)),c.length>1&&c.index=l));)w.lastIndex===c.index&&w.lastIndex++;return C===s.length?!h&&w.test("")||p.push(""):p.push(s.slice(C)),p.length>l?p.slice(0,l):p}:"0".split(void 0,0).length?function(i,o){return i===void 0&&o===0?[]:t.call(this,i,o)}:t,[function(i,o){var s=bi(this),l=i==null?void 0:i[e];return l!==void 0?l.call(i,s,o):r.call(String(s),i,o)},function(i,o){var s=n(r,i,this,o,r!==t);if(s.done)return s.value;var l=On(i),c=String(this),d=function(D,Te){var m,ue=On(D).constructor;return ue===void 0||(m=On(ue)[Nk])==null?Te:wf(m)}(l,RegExp),h=l.unicode,p=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(Vo?"y":"g"),y=new d(Vo?l:"^(?:"+l.source+")",p),C=o===void 0?4294967295:o>>>0;if(C===0)return[];if(c.length===0)return Tf(y,c)===null?[c]:[];for(var w=0,k=0,O=[];k1?arguments[1]:void 0,t.length)),r=String(e);return qm?qm.call(t,r,n):t.slice(n,n+r.length)===r}});var qo=function(e){return typeof e=="string"},zo=function(e){return e!==null&&Gm(e)==="object"},Go=function(){function e(){Gi(this,e)}return Yi(e,null,[{key:"isWindow",value:function(t){return t===window}},{key:"addEventListener",value:function(t,n,r){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];t&&n&&r&&t.addEventListener(n,r,i)}},{key:"removeEventListener",value:function(t,n,r){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];t&&n&&r&&t.removeEventListener(n,r,i)}},{key:"triggerDragEvent",value:function(t,n){var r=!1,i=function(s){var l;(l=n.drag)===null||l===void 0||l.call(n,s)},o=function s(l){var c;e.removeEventListener(document,"mousemove",i),e.removeEventListener(document,"mouseup",s),document.onselectstart=null,document.ondragstart=null,r=!1,(c=n.end)===null||c===void 0||c.call(n,l)};e.addEventListener(t,"mousedown",function(s){var l;r||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},e.addEventListener(document,"mousemove",i),e.addEventListener(document,"mouseup",o),r=!0,(l=n.start)===null||l===void 0||l.call(n,s))})}},{key:"getBoundingClientRect",value:function(t){return t&&zo(t)&&t.nodeType===1?t.getBoundingClientRect():null}},{key:"hasClass",value:function(t,n){return!!(t&&zo(t)&&qo(n)&&t.nodeType===1)&&t.classList.contains(n.trim())}},{key:"addClass",value:function(t,n){if(t&&zo(t)&&qo(n)&&t.nodeType===1&&(n=n.trim(),!e.hasClass(t,n))){var r=t.className;t.className=r?r+" "+n:n}}},{key:"removeClass",value:function(t,n){if(t&&zo(t)&&qo(n)&&t.nodeType===1&&typeof t.className=="string"){n=n.trim();for(var r=t.className.trim().split(" "),i=r.length-1;i>=0;i--)r[i]=r[i].trim(),r[i]&&r[i]!==n||r.splice(i,1);t.className=r.join(" ")}}},{key:"toggleClass",value:function(t,n,r){t&&zo(t)&&qo(n)&&t.nodeType===1&&t.classList.toggle(n,r)}},{key:"replaceClass",value:function(t,n,r){t&&zo(t)&&qo(n)&&qo(r)&&t.nodeType===1&&(n=n.trim(),r=r.trim(),e.removeClass(t,n),e.addClass(t,r))}},{key:"getScrollTop",value:function(t){var n="scrollTop"in t?t.scrollTop:t.pageYOffset;return Math.max(n,0)}},{key:"setScrollTop",value:function(t,n){"scrollTop"in t?t.scrollTop=n:t.scrollTo(t.scrollX,n)}},{key:"getRootScrollTop",value:function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},{key:"setRootScrollTop",value:function(t){e.setScrollTop(window,t),e.setScrollTop(document.body,t)}},{key:"getElementTop",value:function(t,n){if(e.isWindow(t))return 0;var r=n?e.getScrollTop(n):e.getRootScrollTop();return t.getBoundingClientRect().top+r}},{key:"getVisibleHeight",value:function(t){return e.isWindow(t)?t.innerHeight:t.getBoundingClientRect().height}},{key:"isHidden",value:function(t){if(!t)return!1;var n=window.getComputedStyle(t),r=n.display==="none",i=t.offsetParent===null&&n.position!=="fixed";return r||i}},{key:"triggerEvent",value:function(t,n){if("createEvent"in document){var r=document.createEvent("HTMLEvents");r.initEvent(n,!1,!0),t.dispatchEvent(r)}}},{key:"calcAngle",value:function(t,n){var r=t.getBoundingClientRect(),i=r.left+r.width/2,o=r.top+r.height/2,s=Math.abs(i-n.clientX),l=Math.abs(o-n.clientY),c=l/Math.sqrt(Math.pow(s,2)+Math.pow(l,2)),d=Math.acos(c),h=Math.floor(180/(Math.PI/d));return n.clientX>i&&n.clientY>o&&(h=180-h),n.clientX==i&&n.clientY>o&&(h=180),n.clientX>i&&n.clientY==o&&(h=90),n.clientXo&&(h=180+h),n.clientX1?r-1:0),o=1;o]*>)/g,rS=/\$([$&'`]|\d\d?)/g,iS=function(e,t,n,r,i,o){var s=n+e.length,l=r.length,c=rS;return i!==void 0&&(i=Zr(i),c=nS),tS.call(o,c,function(d,h){var p;switch(h.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(s);case"<":p=i[h.slice(1,-1)];break;default:var y=+h;if(y===0)return d;if(y>l){var C=eS(y/10);return C===0?d:C<=l?r[C-1]===void 0?h.charAt(1):r[C-1]+h.charAt(1):d}p=r[y-1]}return p===void 0?"":p})},oS=Math.max,sS=Math.min;jm("replace",2,function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,o=r.REPLACE_KEEPS_$0,s=i?"$":"$0";return[function(l,c){var d=bi(this),h=l==null?void 0:l[e];return h!==void 0?h.call(l,d,c):t.call(String(d),l,c)},function(l,c){if(!i&&o||typeof c=="string"&&c.indexOf(s)===-1){var d=n(t,l,this,c);if(d.done)return d.value}var h=On(l),p=String(this),y=typeof c=="function";y||(c=String(c));var C=h.global;if(C){var w=h.unicode;h.lastIndex=0}for(var k=[];;){var O=Tf(h,p);if(O===null||(k.push(O),!C))break;String(O[0])===""&&(h.lastIndex=Vm(p,Jn(h.lastIndex),w))}for(var N,L="",K=0,D=0;D=K&&(L+=p.slice(K,m)+j,K=m+Te.length)}return L+p.slice(K)}]}),function(){function e(){Gi(this,e)}return Yi(e,null,[{key:"camelize",value:function(t){return t.replace(/-(\w)/g,function(n,r){return r?r.toUpperCase():""})}},{key:"capitalize",value:function(t){return t.charAt(0).toUpperCase()+t.slice(1)}}]),e}(),function(){function e(){Gi(this,e)}return Yi(e,null,[{key:"_clone",value:function(){}}]),e}();var Ym=Vt("isConcatSpreadable"),aS=Jl>=51||!Nt(function(){var e=[];return e[Ym]=!1,e.concat()[0]!==e}),lS=mf("concat"),uS=function(e){if(!cn(e))return!1;var t=e[Ym];return t!==void 0?!!t:Wo(e)};_n({target:"Array",proto:!0,forced:!aS||!lS},{concat:function(e){var t,n,r,i,o,s=Zr(this),l=Xl(s,0),c=0;for(t=-1,r=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");Ko(l,c++,o)}return l.length=c,l}});var Ef,aa=function(e,t,n){if(wf(e),t===void 0)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,i){return e.call(t,r,i)};case 3:return function(r,i,o){return e.call(t,r,i,o)}}return function(){return e.apply(t,arguments)}},Xm=[].push,wi=function(e){var t=e==1,n=e==2,r=e==3,i=e==4,o=e==6,s=e==7,l=e==5||o;return function(c,d,h,p){for(var y,C,w=Zr(c),k=jl(w),O=aa(d,h,3),N=Jn(k.length),L=0,K=p||Xl,D=t?K(c,N):n||s?K(c,0):void 0;N>L;L++)if((l||L in k)&&(C=O(y=k[L],L,w),e))if(t)D[L]=C;else if(C)switch(e){case 3:return!0;case 5:return y;case 6:return L;case 2:Xm.call(D,y)}else switch(e){case 4:return!1;case 7:Xm.call(D,y)}return o?-1:r||i?i:D}},Jm={forEach:wi(0),map:wi(1),filter:wi(2),some:wi(3),every:wi(4),find:wi(5),findIndex:wi(6),filterOut:wi(7)},cS=cr?Object.defineProperties:function(e,t){On(e);for(var n,r=Sf(t),i=r.length,o=0;i>o;)Jr.f(e,n=r[o++],t[n]);return e},fS=Vl("document","documentElement"),Zm=cf("IE_PROTO"),Of=function(){},Qm=function(e){return"","import common from \"@/utils/common\";\n\nexport default {\n data() {\n return {\n autocompleteResults: null,\n\n showAppendList: false,\n appendListStyle: {\n top: 0,\n left: 0,\n },\n appendListSelected: null,\n appendListChildSelected: null,\n appendList: [\n {\n \"type\": \"wrap\",\n \"name\": \"line_break_character\",\n \"icon\": \"wrap\",\n \"children\": []\n },\n /*{\n \"type\": \"lora\",\n \"name\": \"Lora\",\n \"children\": []\n },*/\n /*{\n \"type\": \"favorite\",\n \"name\": \"favorite\",\n \"icon\": \"favorite\",\n \"children\": []\n },\n {\n \"type\": \"history\",\n \"name\": \"history\",\n \"icon\": \"history\",\n \"children\": []\n }*/\n ],\n\n favorites: [],\n autoInputPrompt: 'disabled',\n autoInputPromptKey: '',\n }\n },\n computed: {\n appendListChildItemTags() {\n if (this.appendListSelected === null) return []\n if (this.appendListChildSelected === null) return []\n if (this.appendList[this.appendListSelected].type !== 'favorite' && this.appendList[this.appendListSelected].type !== 'history') return []\n return this.appendList[this.appendListSelected].children[this.appendListChildSelected].tags\n }\n },\n mounted() {\n this.initAutoInputPrompt()\n let temp = [\n {\n 'name': 'txt2img',\n 'type': 'prompt',\n 'key': 'txt2img',\n 'neg': false,\n },\n {\n 'name': 'txt2img',\n 'type': 'negative_prompt',\n 'key': 'txt2img_neg',\n 'neg': true,\n },\n {\n 'name': 'img2img',\n 'type': 'prompt',\n 'key': 'img2img',\n 'neg': false,\n },\n {\n 'name': 'img2img',\n 'type': 'negative_prompt',\n 'key': 'img2img_neg',\n 'neg': true,\n },\n ]\n /*for (let i = 0; i < temp.length; i++) {\n if (temp[i].key === this.favoriteKey) {\n // 排到第一位\n let item = temp[i]\n temp.splice(i, 1)\n temp.unshift(item)\n break\n }\n }*/\n temp.forEach(item => {\n if (item.neg !== this.neg) return\n this.appendList.push({\n 'type': \"favorite\",\n 'name': [\"favorite\", item.name/*, item.type*/],\n \"icon\": \"favorite\",\n \"key\": item.key,\n 'dataKey': 'favorite.' + item.key,\n \"children\": [],\n })\n })\n /*temp.forEach(item => {\n this.appendList.push({\n 'type': \"history\",\n 'name': [\"history\", item.name, item.type],\n \"icon\": \"history\",\n \"key\": item.key,\n 'dataKey': 'history.' + item.key,\n \"children\": [],\n })\n })*/\n },\n methods: {\n onUnfoldClick() {\n if (this.hidePanel) {\n this.$nextTick(() => {\n this.onResize()\n })\n }\n this.$emit(\"update:hidePanel\", !this.hidePanel)\n },\n onTranslatesToLocalClick() {\n if (this.tags.length === 0) return // 没有关键词需要翻译\n if (this.loading['all_local']) {\n // 正在翻译中,取消翻译\n this.cancelMultiTranslate = true\n this.loading['all_local'] = false\n return\n }\n this.loading['all_local'] = true\n let tagIndexes = []\n for (const index in this.tags) {\n if (this.tags[index].type && this.tags[index].type !== 'text') continue\n tagIndexes.push(index)\n }\n return this.translates(tagIndexes, true, true).finally(() => {\n this.loading['all_local'] = false\n this.updateTags()\n })\n },\n onTranslatesToEnglishClick() {\n if (this.tags.length === 0) return // 没有关键词需要翻译\n if (this.loading['all_en']) {\n // 正在翻译中,取消翻译\n this.cancelMultiTranslate = true\n this.loading['all_en'] = false\n return\n }\n this.loading['all_en'] = true\n let tagIndexes = []\n for (const index in this.tags) {\n if (this.tags[index].type && this.tags[index].type !== 'text') continue\n tagIndexes.push(index)\n }\n this.translates(tagIndexes, false, true).finally(() => {\n this.loading['all_en'] = false\n this.updateTags()\n })\n },\n onCopyAllTagsClick() {\n this.copy(this.prompt)\n },\n onDeleteAllTagsClick() {\n if (!confirm(this.getLang('delete_all_keywords_confirm'))) return\n this.tags = []\n this.updateTags()\n },\n appendListItemName(item) {\n let names = []\n if (typeof item.name === \"object\") {\n for (let name of item.name) {\n names.push(this.getLang(name))\n }\n } else {\n names = [this.getLang(item.name)]\n }\n return names.join(' / ')\n },\n onAppendTagFocus(e) {\n if (this.$refs.promptTagAppend.value === '' || this.$refs.promptTagAppend.value.trim() === '') {\n this.appendListStyle = {\n top: e.target.offsetTop + e.target.offsetHeight + 'px',\n left: e.target.offsetLeft + 'px',\n }\n this.appendListSelected = null\n this.appendListChildSelected = null\n this.showAppendList = true\n let dataKeys = []\n this.appendList.forEach(item => {\n if (typeof item['dataKey'] === 'string') {\n dataKeys.push(item['dataKey'])\n }\n })\n this.gradioAPI.getDatas(dataKeys).then(res => {\n this.appendList.forEach(item => {\n if (typeof item['dataKey'] !== 'string') return\n item.children = res[item['dataKey']] || []\n // 反转\n item.children.reverse()\n })\n })\n /*this.gradioAPI.getFavorites(this.favoriteKey).then(res => {\n this.appendList.forEach(item => {\n if (item.type !== 'favorite') return\n item.children = res\n })\n })\n this.gradioAPI.getHistories(this.historyKey).then(res => {\n this.appendList.forEach(item => {\n if (item.type !== 'history') return\n item.children = res\n })\n })*/\n }\n this._setTextareaFocus()\n },\n onAppendTagBlur(e) {\n setTimeout(() => {\n this.showAppendList = false\n }, 300)\n },\n selectAppendList(down = true) {\n if (this.appendList.length === 0) return\n if (this.appendListSelected === null) {\n this.appendListSelected = 0\n } else {\n if (down) {\n this.appendListSelected++\n if (this.appendListSelected >= this.appendList.length) {\n this.appendListSelected = 0\n }\n } else {\n this.appendListSelected--\n if (this.appendListSelected < 0) {\n this.appendListSelected = this.appendList.length - 1\n }\n }\n }\n this.appendListChildSelected = null\n },\n selectAppendListChild(down = true) {\n if (this.appendList.length === 0) return\n if (this.appendListSelected === null) return\n if (this.appendList[this.appendListSelected].children.length === 0) return\n if (this.appendListChildSelected === null) {\n this.appendListChildSelected = 0\n } else {\n if (down) {\n this.appendListChildSelected++\n if (this.appendListChildSelected >= this.appendList[this.appendListSelected].children.length) {\n this.appendListChildSelected = 0\n }\n } else {\n this.appendListChildSelected--\n if (this.appendListChildSelected < 0) {\n this.appendListChildSelected = this.appendList[this.appendListSelected].children.length - 1\n }\n }\n }\n this.scrollAppendListChild()\n },\n scrollAppendListChild() {\n if (this.appendListSelected === null) return\n if (this.appendListChildSelected === 0 || this.appendListChildSelected === null) {\n this.$refs.promptAppendListChildren[this.appendListSelected].scrollTop = 0\n } else {\n this.$refs.promptAppendListChild[this.appendListChildSelected].scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n })\n }\n },\n onAppendTagKeyDown(e, localValue = null) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n } else if (e.keyCode === 13) {\n if (this.getAutocompleteResults() && this.autocompleteResults.style.display === 'block' && this.getAutocompleteResultsSelected()) {\n let text = this.getAutocompleteResultsSelectedText()\n setTimeout(() => {\n localValue = this.$refs.promptTagAppend.value\n if (text) {\n localValue = text\n } else {\n text = this.getAutocompleteResultsSelectedText()\n if (text) localValue = text\n }\n this.onAppendTagKeyDown(e, localValue)\n }, 300)\n return\n }\n\n let tags = this.$refs.promptTagAppend.value\n this.$refs.promptTagAppend.value = ''\n this.showAppendList = true\n // [night light:magical forest: 5, 15]\n console.log(tags, localValue)\n if (localValue) {\n // 去除末尾的逗号\n tags = tags.replace(/\\s*,\\s*$/, '').trim()\n if (common.hasBrackets(tags)) {\n tags = common.replaceBrackets(tags)\n }\n this._appendTag(tags, localValue)\n this.updateTags()\n } else {\n if (common.hasBrackets(tags)) {\n // 如果已经被英文括号括起来,那么就不需要再分词了\n tags = common.replaceBrackets(tags)\n tags = [tags]\n } else {\n tags = common.splitTags(tags, this.autoBreakBeforeWrap, this.autoBreakAfterWrap)\n }\n let indexes = []\n tags.forEach(tag => {\n let index = -1\n if (tag === \"\\n\") {\n index = this._appendTag(\"\\n\", \"\\n\", false, -1, 'wrap')\n } else {\n index = this._appendTag(tag)\n }\n if (index !== -1) indexes.push(index)\n })\n this.updatePrompt() // 先更新再翻译\n if (this.autoTranslateToEnglish || this.autoTranslateToLocal) {\n this.$nextTick(() => {\n let useNetwork = !(this.tagCompleteFile && this.onlyCsvOnAuto)\n if (this.autoTranslateToEnglish) {\n // 如果开启了自动翻译到英语,那么就自动翻译\n this.translates(indexes, false, useNetwork).finally(() => {\n this.updateTags()\n })\n } else if (this.autoTranslateToLocal) {\n // 如果开启了自动翻译到本地语言,那么就自动翻译\n this.translates(indexes, true, useNetwork).finally(() => {\n this.updateTags()\n })\n }\n })\n } else {\n this.updateTags()\n }\n }\n } else {\n // 不是上下键,也不是回车\n this.removeAutocompleteResultsSelected()\n }\n },\n onAppendTagKeyUp(e) {\n if (this.$refs.promptTagAppend.value === '' || this.$refs.promptTagAppend.value.trim() === '') {\n this.$refs.promptTagAppend.value = ''\n this.showAppendList = true\n\n if (e.keyCode === 38 || e.keyCode === 40) {\n // 如果是上下键\n if (this.appendListChildSelected === null) {\n this.selectAppendList(e.keyCode === 40)\n } else {\n this.selectAppendListChild(e.keyCode === 40)\n }\n } else if (e.keyCode === 37 || e.keyCode === 39) {\n // 如果是左右键\n if (this.appendListSelected !== null) {\n if (e.keyCode === 37) {\n this.appendListChildSelected = null\n this.scrollAppendListChild()\n } else {\n if (this.appendList[this.appendListSelected].children.length === 0) {\n this.appendListChildSelected = null\n } else {\n this.appendListChildSelected = 0\n this.scrollAppendListChild()\n }\n }\n }\n } else if (e.keyCode === 13) {\n // 如果是回车键\n this._appendTagByList()\n this.scrollAppendListChild()\n this.appendListSelected = null\n this.appendListChildSelected = null\n }\n } else {\n this.showAppendList = false\n }\n },\n onAppendGroupClick(index, childIndex, e) {\n if (index === null) return\n this.appendListSelected = index\n if (childIndex === null) {\n // 如果是点击的是父级\n if (this.appendList[this.appendListSelected].children.length > 0) return\n } else {\n this.appendListChildSelected = childIndex\n }\n this._appendTagByList()\n },\n onAppendListChildMouseLeave(index, childIndex, e) {\n this.appendListSelected = null\n this.appendListChildSelected = null\n },\n onAppendListChildMouseEnter(index, childIndex, e) {\n this.appendListSelected = index\n this.appendListChildSelected = childIndex\n },\n _appendTagByList() {\n if (this.appendListSelected === null) return\n const appendItem = this.appendList[this.appendListSelected]\n let appendChildItem = null\n if (appendItem.children.length > 0) {\n if (this.appendListChildSelected !== null) {\n // 有子项并且选中了子项\n appendChildItem = appendItem.children[this.appendListChildSelected]\n }\n } else {\n // 没有子项\n }\n let appendTags = []\n switch (appendItem.type) {\n case 'wrap':\n appendTags.push({\n value: \"\\n\",\n localValue: \"\\n\",\n disabled: false,\n type: 'wrap'\n })\n break\n case 'lora':\n break\n case 'favorite':\n case 'history':\n if (appendChildItem) {\n appendChildItem.tags.forEach(tag => {\n appendTags.push({\n value: tag.value,\n localValue: tag.localValue,\n disabled: tag.disabled,\n type: tag.type || 'text'\n })\n })\n }\n break\n }\n if (appendTags.length <= 0) return\n appendTags.forEach(tag => {\n this._appendTag(tag.value, tag.localValue, tag.disabled, -1, tag.type)\n })\n this.updateTags()\n },\n getAutocompleteResults() {\n if (!this.autocompleteResults) {\n const autocompleteResults = this.$refs.promptTagAppend.parentElement.querySelector('.autocompleteResults')\n if (autocompleteResults) {\n this.autocompleteResults = autocompleteResults\n // 增加mousemove事件\n if (this.autocompleteResults.getAttribute('data-mousemove') !== 'true') {\n this.autocompleteResults.setAttribute('data-mousemove', 'true')\n this.autocompleteResults.addEventListener('mousemove', (e) => {\n this.bindAutocompleteResultsClick()\n })\n }\n }\n }\n return this.autocompleteResults\n },\n removeAutocompleteResultsSelected() {\n const autocompleteResults = this.getAutocompleteResults()\n if (!autocompleteResults) return false\n autocompleteResults.querySelectorAll('li').forEach(li => {\n li.classList.remove('selected')\n })\n return true\n },\n getAutocompleteResultsSelected() {\n const autocompleteResults = this.getAutocompleteResults()\n if (!autocompleteResults) return null\n const el = autocompleteResults.querySelector('li.selected')\n if (!el) return null\n return el\n },\n getAutocompleteResultsSelectedText(el = null) {\n if (!el) {\n el = this.getAutocompleteResultsSelected()\n if (!el) return null\n }\n const $acListItem = el.querySelector('.acListItem')\n const text = $acListItem.innerText\n const match = text.match(/\\[(.+?)\\]/)\n if (!match) return null\n return match[1]\n },\n bindAutocompleteResultsClick() {\n this.getAutocompleteResults()\n if (!this.autocompleteResults) return\n // 获取列表\n let lis = this.autocompleteResults.querySelectorAll('li')\n // 给每个li绑定点击事件\n lis.forEach(li => {\n // 判断是否已经绑定过\n if (li.getAttribute('physton-on-clicked') === 'true') return\n li.setAttribute('physton-on-clicked', 'true')\n li.addEventListener('click', () => {\n this.onAutocompleteResultsClicked(li)\n })\n })\n },\n onAutocompleteResultsClicked(li) {\n const text = this.getAutocompleteResultsSelectedText(li)\n setTimeout(() => {\n let tags = this.$refs.promptTagAppend.value.replace(/,\\s*$/, '')\n this.$refs.promptTagAppend.value = ''\n // 去除末尾的逗号\n tags = tags.replace(/\\s*,\\s*$/, '').trim()\n if (common.hasBrackets(tags)) {\n tags = common.replaceBrackets(tags)\n }\n this._appendTag(tags, text)\n this.updateTags()\n }, 300)\n },\n onSettingBoxMouseEnter() {\n this.favorites = typeof window.phystonPromptfavorites === 'object' ? window.phystonPromptfavorites : []\n },\n getCurrentTypeFavorites() {\n let favorites = []\n this.favorites.forEach(favorite => {\n if (this.neg) {\n if (favorite.type !== 'negative_prompt') return\n } else {\n if (favorite.type !== 'prompt') return\n }\n favorites.push(favorite)\n })\n return favorites\n },\n onAutoInputPromptChange() {\n this.gradioAPI.setData(this.autoInputPromptKey, this.autoInputPrompt).then(() => {\n this.$toastr.success(this.getLang('success'))\n }).catch(() => {\n this.$toastr.error(this.getLang('failed'))\n })\n },\n initAutoInputPrompt() {\n this.autoInputPromptKey = 'autoInputPrompt-' + this.name\n this.gradioAPI.getData(this.autoInputPromptKey).then(res => {\n if (res === null) return\n this.autoInputPrompt = res\n if (this.autoInputPrompt === 'last') {\n this.gradioAPI.getLatestHistory(this.historyKey).then(res => {\n this.useHistory(res)\n })\n } else {\n const getFavorites = () => {\n if (typeof window.phystonPromptfavorites === 'object' && window.phystonPromptfavorites.length > 0) {\n for (let item of window.phystonPromptfavorites) {\n for (let favorite of item.list) {\n if (favorite.id === this.autoInputPrompt) {\n this.useFavorite(favorite)\n return\n }\n }\n }\n return\n }\n setTimeout(getFavorites, 100)\n }\n setTimeout(getFavorites, 100)\n }\n })\n },\n }\n}","export default {\n data() {\n return {\n // 鼠标框选功能\n dropStartX: 0,\n dropStartY: 0,\n dropEndX: 0,\n dropEndY: 0,\n dropOffsetX: 0,\n dropOffsetY: 0,\n dropIsSelecting: false,\n dropIsStart: false,\n dropIsEnd: false,\n dropArea: {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n },\n dropTags: [],\n dropTimeId: 0,\n }\n },\n methods: {\n _dropOver() {\n this.dropIsSelecting = false\n this.dropIsStart = false\n this.dropIsEnd = false\n this.dropTags = []\n for (let i = 0; i < this.$refs.promptTagsList.children.length; i++) {\n let tag = this.$refs.promptTagsList.children[i]\n if (tag.style.display === 'none') {\n // 删除display:none属性\n tag.style.display = ''\n }\n tag.classList.remove('drop-selected')\n }\n },\n onDropMouseDown(e) {\n if (this.droping) return\n this._dropOver()\n this.dropOffsetX = e.clientX - e.layerX\n this.dropOffsetY = e.clientY - e.layerY\n this.dropStartX = e.clientX - this.dropOffsetX\n this.dropStartY = e.clientY - this.dropOffsetY\n this.dropEndX = e.clientX - this.dropOffsetX\n this.dropEndY = e.clientY - this.dropOffsetY\n this.dropIsStart = true\n },\n onDropMouseMove(e) {\n if (this.dropIsStart) {\n this.dropIsSelecting = true\n this.dropEndX = e.clientX - this.dropOffsetX\n this.dropEndY = e.clientY - this.dropOffsetY\n let left = Math.min(this.dropStartX, this.dropEndX)\n let top = Math.min(this.dropStartY, this.dropEndY)\n let width = Math.abs(this.dropStartX - this.dropEndX)\n let height = Math.abs(this.dropStartY - this.dropEndY)\n // 设置不超过 this.$refs.promptTags 范围\n left = Math.max(left, 0)\n top = Math.max(top, 0)\n width = Math.min(width, this.$refs.promptTags.clientWidth - left)\n height = Math.min(height, this.$refs.promptTags.clientHeight - top)\n\n this.dropArea.top = top\n this.dropArea.left = left\n this.dropArea.width = width\n this.dropArea.height = height\n\n if (this.dropTimeId) clearTimeout(this.dropTimeId)\n this.dropTimeId = setTimeout(this.dropSelectItems, 10)\n }\n },\n dropSelectItems() {\n if (this.dropTimeId) clearTimeout(this.dropTimeId)\n let selectIds = []\n for (let i = 0; i < this.$refs.promptTagsList.children.length; i++) {\n let tag = this.$refs.promptTagsList.children[i]\n if (!tag.classList.contains('prompt-tag')) continue\n let tagLeft = tag.offsetLeft\n let tagTop = tag.offsetTop\n let tagWidth = tag.clientWidth\n let tagHeight = tag.clientHeight\n let tagRight = tagLeft + tagWidth\n let tagBottom = tagTop + tagHeight\n let isSelect = !(tagRight < this.dropArea.left || tagBottom < this.dropArea.top || tagLeft > this.dropArea.left + this.dropArea.width || tagTop > this.dropArea.top + this.dropArea.height)\n if (isSelect) {\n selectIds.push(tag.getAttribute('data-id'))\n tag.classList.add('drop-selected')\n } else {\n tag.classList.remove('drop-selected')\n }\n this.dropTags = selectIds\n }\n },\n onDropMouseUp(e) {\n this.dropIsSelecting = false\n this.dropIsStart = false\n this.dropIsEnd = true\n this.$refs.dropSelectBtns.style.left = this.$refs.dropSelectBox.style.left\n this.$refs.dropSelectBtns.style.top = this.$refs.dropSelectBox.style.top\n },\n _getDropTags() {\n let tags = []\n this.dropTags.forEach(id => {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n tags.push(tag)\n })\n return tags\n },\n _getDropIndexes() {\n let indexes = []\n this.dropTags.forEach(id => {\n let index = this.tags.findIndex(tag => tag.id === id)\n if (index === -1) return\n indexes.push(index)\n })\n return indexes\n },\n _getDropTagsEle() {\n let elements = []\n this.dropTags.forEach(id => {\n let tag = this.$refs.promptTagsList.querySelector(`.prompt-tag[data-id=\"${id}\"]`)\n if (!tag) return\n elements.push(tag)\n })\n return elements\n },\n onDropCopy() {\n let tags = this._getDropTags()\n this._dropOver()\n let prompt = this.genPrompt(tags, true)\n this.copy(prompt)\n },\n onDropFavorite() {\n let tags = this._getDropTags()\n this._dropOver()\n let prompt = this.genPrompt(tags, true)\n this.gradioAPI.pushFavorite(this.favoriteKey, tags, prompt, '').then(res => {\n if (res) {\n this.$toastr.success(this.getLang('success'))\n this.$emit('refreshFavorites', this.favoriteKey)\n } else {\n this.$toastr.error(this.getLang('failed'))\n }\n }).catch(error => {\n this.$toastr.error(this.getLang('failed'))\n })\n },\n onDropDisable() {\n let tags = this._getDropTags()\n this._dropOver()\n tags.forEach(tag => {\n tag.disabled = true\n })\n this.updateTags()\n },\n onDropEnable() {\n let tags = this._getDropTags()\n this._dropOver()\n tags.forEach(tag => {\n tag.disabled = false\n })\n this.updateTags()\n },\n onDropDelete() {\n let indexes = this._getDropIndexes()\n this._dropOver()\n indexes.sort((a, b) => b - a)\n indexes.forEach(index => {\n this.tags.splice(index, 1)\n })\n this.updateTags()\n },\n }\n}","var GHOST_ELEMENT_ID = '__autosizeInputGhost'\n\nvar characterEntities = {\n ' ': 'nbsp',\n '<': 'lt',\n '>': 'gt'\n}\nfunction mapSpecialCharacterToCharacterEntity (specialCharacter) {\n return '&' + characterEntities[specialCharacter] + ';'\n}\nfunction escapeSpecialCharacters (string) {\n return string.replace(/\\s|<|>/g, mapSpecialCharacterToCharacterEntity)\n}\n\n// Create `ghostElement`, with inline styles to hide it and ensure that the text is all\n// on a single line.\nfunction createGhostElement () {\n var ghostElement = document.createElement('div')\n ghostElement.id = GHOST_ELEMENT_ID\n ghostElement.style.cssText =\n 'display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;'\n document.body.appendChild(ghostElement)\n return ghostElement\n}\n\nmodule.exports = function (element, options) {\n var elementStyle = window.getComputedStyle(element)\n // prettier-ignore\n var elementCssText = 'box-sizing:' + elementStyle.boxSizing +\n ';border-left:' + elementStyle.borderLeftWidth + ' solid red' +\n ';border-right:' + elementStyle.borderRightWidth + ' solid red' +\n ';font-family:' + elementStyle.fontFamily +\n ';font-feature-settings:' + elementStyle.fontFeatureSettings +\n ';font-kerning:' + elementStyle.fontKerning +\n ';font-size:' + elementStyle.fontSize +\n ';font-stretch:' + elementStyle.fontStretch +\n ';font-style:' + elementStyle.fontStyle +\n ';font-variant:' + elementStyle.fontVariant +\n ';font-variant-caps:' + elementStyle.fontVariantCaps +\n ';font-variant-ligatures:' + elementStyle.fontVariantLigatures +\n ';font-variant-numeric:' + elementStyle.fontVariantNumeric +\n ';font-weight:' + elementStyle.fontWeight +\n ';letter-spacing:' + elementStyle.letterSpacing +\n ';margin-left:' + elementStyle.marginLeft +\n ';margin-right:' + elementStyle.marginRight +\n ';padding-left:' + elementStyle.paddingLeft +\n ';padding-right:' + elementStyle.paddingRight +\n ';text-indent:' + elementStyle.textIndent +\n ';text-transform:' + elementStyle.textTransform\n\n // Assigns an appropriate width to the given `element` based on its contents.\n function setWidth () {\n var string = element.value || element.getAttribute('placeholder') || ''\n // Check if the `ghostElement` exists. If no, create it.\n var ghostElement =\n document.getElementById(GHOST_ELEMENT_ID) || createGhostElement()\n // Copy all width-affecting styles to the `ghostElement`.\n ghostElement.style.cssText += elementCssText\n ghostElement.innerHTML = escapeSpecialCharacters(string)\n // Copy the width of `ghostElement` to `element`.\n var width = window.getComputedStyle(ghostElement).width\n element.style.width = width\n return width\n }\n\n element.addEventListener('input', setWidth)\n\n var width = setWidth()\n\n // Set `min-width` only if `options.minWidth` was set, and only if the initial\n // width is non-zero.\n if (options && options.minWidth && width !== '0px') {\n element.style.minWidth = width\n }\n\n // Return a function for unbinding the event listener and removing the `ghostElement`.\n return function () {\n element.removeEventListener('input', setWidth)\n var ghostElement = document.getElementById(GHOST_ELEMENT_ID)\n if (ghostElement) {\n ghostElement.parentNode.removeChild(ghostElement)\n }\n }\n}\n","import common from \"@/utils/common\";\nimport autoSizeInput from \"autosize-input\";\n\nexport default {\n data() {\n return {\n tagClickTimeId: 0,\n }\n },\n mounted() {\n common.gradioApp().addEventListener('mousemove', () => {\n this.$refs.highlightPrompt.hide()\n })\n },\n methods: {\n _setTag(tag) {\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') {\n tag.weightNum = 1\n tag.incWeight = 0\n tag.decWeight = 0\n } else {\n tag.weightNum = common.getTagWeightNum(tag.value)\n tag.weightNum = tag.weightNum <= 0 ? 1 : tag.weightNum\n tag.incWeight = common.getTagIncWeight(tag.value)\n tag.decWeight = common.getTagDecWeight(tag.value)\n // const bracket = common.hasBrackets(tag.value)\n }\n this._setTagClass(tag)\n this.$nextTick(() => {\n this._setTagHeight(tag)\n })\n },\n _setTagHeight(tag) {\n let maxNum = 10\n let interval = setInterval(() => {\n // console.log(maxNum, tag)\n maxNum--\n if (maxNum <= 0) clearInterval(interval)\n if (!this.$refs['promptTagValue-' + tag.id]) return false\n if (!this.$refs['promptTagValue-' + tag.id][0]) return false\n clearInterval(interval)\n let $tag = this.$refs['promptTagValue-' + tag.id][0]\n let height = $tag.offsetHeight\n $tag.parentNode.style.height = height + 'px'\n if (this.$refs['promptTagEdit-' + tag.id]) {\n this.$refs['promptTagEdit-' + tag.id][0].style.height = height + 'px'\n }\n if (this.$refs['promptTagDelete-' + tag.id]) {\n this.$refs['promptTagDelete-' + tag.id][0].style.height = height + 'px'\n }\n }, 50)\n },\n _getTagType(tag) {\n\n },\n _setTagClass(tag) {\n tag.isLora = false\n tag.loraExists = false\n tag.isLyco = false\n tag.lycoExists = false\n tag.isEmbedding = false\n\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') {\n } else {\n // 判断是否lora\n const match = tag.value.match(common.loraRegex)\n if (match) {\n tag.isLora = true\n const loraName = this.loraExists(match[1])\n if (loraName !== false) {\n tag.loraExists = true\n tag.loraName = loraName\n }\n }\n\n if (!tag.isLora) {\n // 判断是否lyco\n const match = tag.value.match(common.lycoRegex)\n if (match) {\n tag.isLyco = true\n const lycoName = this.lycoExists(match[1])\n if (lycoName !== false) {\n tag.lycoExists = true\n tag.lycoName = lycoName\n }\n }\n }\n\n if (!tag.isLora && !tag.isLyco) {\n // 判断是否embedding\n const embeddingName = this.embeddingExists(tag.value)\n if (embeddingName !== false) {\n tag.isEmbedding = true\n tag.value = embeddingName\n } else {\n // 判断是否被括号包裹的embedding\n\n let value = tag.value\n const bracket = common.hasBrackets(value)\n if ((bracket[0] === '(' && bracket[1] === ')') || bracket[0] === '[' && bracket[1] === ']') {\n // 移除括号\n value = common.setLayers(value, 0, bracket[0], bracket[1])\n // 移除权重数\n value = value.replace(common.weightNumRegex, '$1')\n const embeddingName = this.embeddingExists(value)\n if (embeddingName !== false) {\n tag.isEmbedding = true\n // tag.value = embeddingName\n }\n }\n }\n }\n }\n\n let classes = ['prompt-tag-value']\n if (tag.isLora) {\n classes.push('lora-tag')\n if (!tag.loraExists) {\n classes.push('lora-not-exists')\n }\n } else if (tag.isLyco) {\n classes.push('lyco-tag')\n if (!tag.lycoExists) {\n classes.push('lyco-not-exists')\n }\n } else if (tag.isEmbedding) {\n classes.push('embedding-tag')\n } else if (this.neg) {\n classes.push('neg-tag')\n }\n\n tag.classes = classes\n return classes\n },\n _setTagById(id, value = null, localValue = null) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (value !== null) tag.value = value\n if (localValue !== null) tag.localValue = localValue\n return tag\n },\n _isTagBlacklist(tag) {\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') return false\n if (tag.isLora) {\n if (this.blacklist.lora && this.blacklist.lora.includes(tag.loraName)) return true\n } else if (tag.isLyco) {\n if (this.blacklist.lycoris && this.blacklist.lycoris.includes(tag.lycoName)) return true\n } else if (tag.isEmbedding) {\n if (this.blacklist.embedding && this.blacklist.embedding.includes(tag.value)) return true\n } else {\n if (this.neg) {\n if (this.blacklist.negative_prompt && this.blacklist.negative_prompt.includes(tag.value)) return true\n } else {\n if (this.blacklist.prompt && this.blacklist.prompt.includes(tag.value)) return true\n }\n }\n return false\n },\n _appendTag(value, localValue = '', disabled = false, index = -1, type = 'text') {\n if (value === '') return -1\n // 唯一数:当前时间戳+随机数\n const id = Date.now() + (Math.random() * 1000000).toFixed(0)\n let tag = {\n id,\n value: value === null || value === undefined || value === false ? '' : value,\n localValue: localValue === null || localValue === undefined || localValue === false ? '' : localValue,\n disabled,\n type\n }\n this._setTag(tag)\n // value = common.setLayers(value, 0, '(', ')')\n // value = common.setLayers(value, 0, '[', ']')\n if (this._isTagBlacklist(tag)) return -1\n if (index >= 0) {\n // 插入到指定位置\n this.tags.splice(index, 0, tag)\n } else {\n index = this.tags.push(tag)\n }\n this.$nextTick(() => {\n if (this.$refs['promptTagEdit-' + id]) autoSizeInput(this.$refs['promptTagEdit-' + id][0])\n })\n return index - 1\n },\n renderTag(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return ''\n let value = tag.value\n if (value === 'BREAK' && (this.autoBreakBeforeWrap || this.autoBreakAfterWrap)) {\n value = '
---------------------
BREAK
---------------------
'\n } else {\n value = common.escapeHtml(value)\n if (tag.incWeight > 0) {\n value = common.setLayers(value, 0, '(', ')')\n value = '
' + value + '
'\n let start = '
' + '('.repeat(tag.incWeight) + '
'\n let end = '
' + ')'.repeat(tag.incWeight) + '
'\n value = start + value + end\n } else if (tag.decWeight > 0) {\n value = common.setLayers(value, 0, '[', ']')\n value = '
' + value + '
'\n let start = '
' + '['.repeat(tag.decWeight) + '
'\n let end = '
' + ']'.repeat(tag.decWeight) + '
'\n value = start + value + end\n } else {\n value = '
' + value + '
'\n }\n }\n return value\n },\n isFavorite(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (typeof window.phystonPromptfavorites === 'object') {\n for (const group of window.phystonPromptfavorites) {\n if (group.key !== this.favoriteKey) continue\n for (const favorite of group.list) {\n if (favorite.tags.length !== 1) continue\n if (favorite.tags[0].value === tag.value) return favorite.id\n }\n }\n }\n return false\n },\n onTagMouseEnter(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n tag.isFavorite = this.isFavorite(tag.id)\n },\n onTagMouseMove(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.$refs.highlightPrompt.show(tag)\n },\n onTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (this.tagClickTimeId) clearTimeout(this.tagClickTimeId)\n this.tagClickTimeId = setTimeout(() => {\n this.editing = {}\n this.editing[tag.id] = true\n this.$forceUpdate()\n this.$nextTick(() => {\n const input = this.$refs['promptTagEdit-' + tag.id][0]\n input.focus()\n input.dispatchEvent(new Event('input'))\n // input.select()\n })\n clearTimeout(this.tagClickTimeId)\n }, 250)\n },\n onTagDblclick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n clearTimeout(this.tagClickTimeId)\n this.onDisabledTagClick(tag.id)\n },\n onTagInputBlur(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.editing[tag.id] = false\n },\n onTagInputKeyDown(id, e) {\n if (e.keyCode === 13) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.editing[tag.id] = false\n if (tag.value !== e.target.value) {\n tag.value = e.target.value\n this._setTag(tag)\n this.updateTags()\n }\n }\n },\n onTagInputChange(id, e) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (tag.value === e.target.value) return\n tag.value = e.target.value\n this._setTag(tag)\n this.updateTags()\n },\n onTagWeightNumChange(id, e) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n e = typeof e === \"number\" || typeof a === \"string\" ? e : e.target.value\n if (tag.weightNum == e) return\n let weightNum = e\n let value = tag.value\n let localValue = tag.localValue\n if (weightNum > 0) {\n if (weightNum === 1 && !this.autoKeepWeightOne) {\n // 如果权重数是1,那么就去掉权重数\n const bracket = common.hasBrackets(value)\n if (bracket[0] === '(' && bracket[1] === ')') {\n // 移除括号\n value = common.setLayers(value, 0, bracket[0], bracket[1])\n if (localValue !== '') localValue = common.setLayers(localValue, 0, bracket[0], bracket[1])\n } else {\n // 不移除括号\n }\n // 移除权重数\n value = value.replace(common.weightNumRegex, '$1')\n if (localValue !== '') localValue = localValue.replace(common.weightNumRegex, '$1')\n } else {\n // 如果原来没有权重数,那么就加上权重数\n if (!common.weightNumRegex.test(value)) {\n // 如果原来有括号,就要加到括号内\n let bracket = common.hasBrackets(value)\n if (bracket) {\n value = common.setLayers(value, 1, bracket[0], bracket[1], ':' + weightNum)\n if (localValue !== '') localValue = common.setLayers(localValue, 1, bracket[0], bracket[1], ':' + weightNum)\n } else {\n value = value + ':' + weightNum\n if (localValue !== '') localValue = localValue + ':' + weightNum\n }\n }\n // 如果原来没有括号() [] {} <>,那么就加上括号\n if (!common.hasBrackets(value)) {\n value = common.setLayers(value, 1, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, 1, '(', ')')\n }\n }\n if (value !== tag.value) {\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this._setTag(tag)\n }\n } else {\n // 如果原来的括号是<>,那么最小权重数只能是0.1\n const bracket = common.hasBrackets(value)\n if (bracket[0] === '<' && bracket[1] === '>') {\n weightNum = 0.1\n } else {\n if (this.autoKeepWeightZero) {\n // 保留权重数\n tag.value = value.replace(common.weightNumRegex, '$1:0')\n if (localValue !== '') tag.localValue = tag.localValue.replace(common.weightNumRegex, '$1:0')\n } else {\n // 移除权重数\n tag.value = value.replace(common.weightNumRegex, '$1')\n if (localValue !== '') tag.localValue = tag.localValue.replace(common.weightNumRegex, '$1')\n }\n }\n }\n tag.weightNum = weightNum\n this.updateTags()\n },\n onDeleteTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n let index = this.tags.indexOf(tag)\n this.tags.splice(index, 1)\n this.updateTags()\n },\n onFavoriteTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n let favoriteId = this.isFavorite(tag.id)\n if (!favoriteId) {\n // 收藏\n this.gradioAPI.pushFavorite(this.favoriteKey, [tag], tag.value, tag.localValue === '' ? tag.value : tag.localValue).then(res => {\n if (res) {\n tag.isFavorite = true\n this.$emit('refreshFavorites', this.favoriteKey)\n }\n })\n } else {\n // 取消收藏\n this.gradioAPI.unFavorite(this.favoriteKey, favoriteId).then(res => {\n if (res) {\n tag.isFavorite = false\n this.$emit('refreshFavorites', this.favoriteKey)\n }\n })\n }\n },\n onDisabledTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n tag.disabled = !tag.disabled\n this.updateTags()\n },\n onIncWeightClick(id, num) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let value = tag.value\n let localValue = tag.localValue\n value = common.setLayers(value, 0, '[', ']')\n if (localValue !== '') localValue = common.setLayers(localValue, 0, '[', ']')\n let incWeight = tag.incWeight\n incWeight += num\n if (incWeight < 0) incWeight = 0\n tag.incWeight = incWeight\n tag.decWeight = 0\n value = common.setLayers(value, incWeight, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, incWeight, '(', ')')\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this.updateTags()\n },\n onDecWeightClick(id, num) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let value = tag.value\n let localValue = tag.localValue\n value = common.setLayers(value, 0, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, 0, '(', ')')\n let decWeight = tag.decWeight\n decWeight += num\n if (decWeight < 0) decWeight = 0\n tag.incWeight = 0\n tag.decWeight = decWeight\n value = common.setLayers(value, decWeight, '[', ']')\n if (localValue !== '') localValue = common.setLayers(localValue, decWeight, '[', ']')\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this.updateTags()\n },\n onWrapTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n let wrapIndex = this._appendTag(\"\\n\", \"\\n\", false, -1, 'wrap')\n let wrapTag = this.tags[wrapIndex]\n // 移动到当前标签的下面\n this.tags.splice(wrapIndex, 1);\n // 然后将 'c' 插入到 'e' 后面\n this.tags.splice(index + 1, 0, wrapTag);\n this.updateTags()\n },\n onTranslateToLocalClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n if (this.loading[tag.id + '_local']) return\n this.translates([index], true, true).finally(() => {\n this.updateTags()\n })\n },\n onTranslateToEnglishClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n if (this.loading[tag.id + '_en']) return\n this.translates([index], false, true).finally(() => {\n this.updateTags()\n })\n },\n }\n}","import common from \"@/utils/common\"\nimport {ref} from \"vue\"\n\nexport default {\n data() {\n return {\n groupTagsActive: 0,\n subGroupTagsActive: 0,\n groupTagsColorKeyCache: {},\n }\n },\n watch: {\n groupTags: {\n handler() {\n for (let item of this.groupTags) {\n for (let group of item.groups) {\n if (group.type && group.typ == 'wrap') continue\n let key = this.getTagsColorKey(item.name, group.name)\n if (!this.groupTagsColor[key]) {\n this.groupTagsColor[key] = ref(common.fitterInputColor(group.color))\n }\n for (let en in group.tags) {\n this.groupTagsColorKeyCache[en] = key\n }\n }\n }\n },\n deep: true,\n immediate: true,\n },\n },\n methods: {\n activeGroupTab(index) {\n this.groupTagsActive = index\n this.subGroupTagsActive = 0\n let scrollLeft = this.$refs.groupTabsHeader.children[index].offsetLeft - this.$refs.groupTabsHeader.offsetWidth / 2 + this.$refs.groupTabsHeader.children[index].offsetWidth / 2\n this.$refs.groupTabsHeader.scrollTo({\n left: scrollLeft,\n behavior: 'smooth'\n })\n },\n activeSubGroupTab(index) {\n this.subGroupTagsActive = index\n },\n onClickHideGroupTags() {\n this.$emit('update:hideGroupTags', !this.hideGroupTags)\n },\n onClickGroupTag(local, en) {\n this._appendTag(en, local, false, -1, 'text')\n this.updateTags()\n },\n getGroupTagTooltip(local, en) {\n let html = ''\n if (local && local !== en) {\n html += local + '
'\n }\n html += en\n return html\n },\n getGroupTagStyle(groupName, subGroupName) {\n let style = {}\n let colorKey = this.getTagsColorKey(groupName, subGroupName)\n let color = ''\n if (this.groupTagsColor[colorKey]) {\n color = this.groupTagsColor[colorKey]\n if (common.isColorTransparent(color)) {\n // 如果是纯透明,则设为空\n color = ''\n }\n }\n if (color) {\n style = {background: color}\n }\n return style\n },\n getTagsColorKey(groupName, subGroupName) {\n return groupName + '||' + subGroupName\n },\n onTagsColorChange(key) {\n this.$emit('update:groupTagsColor', this.groupTagsColor)\n },\n onClickResetTagsColor(key) {\n for (let item of this.groupTags) {\n for (let group of item.groups) {\n if (group.type && group.typ == 'wrap') continue\n let key2 = this.getTagsColorKey(item.name, group.name)\n if (key === key2) {\n this.groupTagsColor[key] = ref(common.fitterInputColor(group.color))\n }\n }\n }\n this.onTagsColorChange(key)\n },\n onClickClearTagsColor(key) {\n this.groupTagsColor[key] = ref('rgba(0,0,0,0)')\n this.onTagsColorChange(key)\n },\n getTagColorStyle(tag) {\n if (tag.isLora || tag.isLyco || tag.isEmbedding) return {}\n if (!this.groupTagsColorKeyCache[tag.value]) return {}\n let key = this.groupTagsColorKeyCache[tag.value]\n if (!this.groupTagsColor[key]) return {}\n let color = this.groupTagsColor[key]\n if (common.isColorTransparent(color)) return {}\n return {background: color}\n },\n }\n}\n","\n","\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$b = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, __spreadProps$8(__spreadValues$b({}, options), {\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n }));\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n return Promise.all(Array.from(fns).map((fn) => fn(param)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nfunction createInjectionState(composable) {\n const key = Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provide(key, state);\n return state;\n };\n const useInjectedState = () => inject(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = __spreadValues$a({}, obj);\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(\n () => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0])))\n );\n}\n\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /* @__PURE__ */ /iP(ad|hone|od)/.test(window.navigator.userAgent);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = defaultValue;\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = defaultValue;\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n let watchLeft;\n let watchRight;\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchLeft = watch(\n left,\n (newValue) => right.value = transformLTR(newValue),\n { flush, deep, immediate }\n );\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchRight = watch(\n right,\n (newValue) => left.value = transformRTL(newValue),\n { flush, deep, immediate }\n );\n }\n return () => {\n watchLeft == null ? void 0 : watchLeft();\n watchRight == null ? void 0 : watchRight();\n };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = __spreadProps$7(__spreadValues$9({}, objectRef.value), { [key]: v });\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (getCurrentInstance())\n onBeforeMount(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (getCurrentInstance())\n onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance())\n onMounted(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (getCurrentInstance())\n onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(\n () => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n )\n );\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(\n () => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n )\n );\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(\n () => toValue(list).slice(formIndex).some(\n (element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))\n )\n );\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return __spreadValues$8({\n counter,\n reset\n }, controls);\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return __spreadValues$7({\n ready\n }, controls);\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n ...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)\n ];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$5(_a, [\n \"eventFilter\"\n ]);\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchAtMost(source, cb, options) {\n const _a = options, {\n count\n } = _a, watchOptions = __objRest$4(_a, [\n \"count\"\n ]);\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n const _a = options, {\n debounce = 0,\n maxWait = void 0\n } = _a, watchOptions = __objRest$3(_a, [\n \"debounce\",\n \"maxWait\"\n ]);\n return watchWithFilter(\n source,\n cb,\n __spreadProps$6(__spreadValues$6({}, watchOptions), {\n eventFilter: debounceFilter(debounce, { maxWait })\n })\n );\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n __spreadProps$5(__spreadValues$5({}, options), {\n deep: true\n })\n );\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$2(_a, [\n \"eventFilter\"\n ]);\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n __spreadProps$4(__spreadValues$4({}, watchOptions), { flush: \"sync\" })\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n __spreadProps$3(__spreadValues$3({}, options), {\n immediate: true\n })\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n const _a = options, {\n eventFilter: filter\n } = _a, watchOptions = __objRest$1(_a, [\n \"eventFilter\"\n ]);\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n __spreadProps$2(__spreadValues$2({}, watchOptions), {\n eventFilter\n })\n );\n return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n const _a = options, {\n throttle = 0,\n trailing = true,\n leading = true\n } = _a, watchOptions = __objRest(_a, [\n \"throttle\",\n \"trailing\",\n \"leading\"\n ]);\n return watchWithFilter(\n source,\n cb,\n __spreadProps$1(__spreadValues$1({}, watchOptions), {\n eventFilter: throttleFilter(throttle, trailing, leading)\n })\n );\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return __spreadProps(__spreadValues({}, res), {\n trigger\n });\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isClient, isDef, isDefined, isIOS, isObject, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, makeDestructurable, camelize, toValue, isClient, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, isObject, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, useTimeoutFn, pausableWatch, toRef, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, useIntervalFn, notNullish, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, identity, isDef } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nvar __defProp$q = Object.defineProperty;\nvar __defProps$d = Object.defineProperties;\nvar __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$t = Object.getOwnPropertySymbols;\nvar __hasOwnProp$t = Object.prototype.hasOwnProperty;\nvar __propIsEnum$t = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$q = (obj, key, value) => key in obj ? __defProp$q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$q = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$t.call(b, prop))\n __defNormalProp$q(a, prop, b[prop]);\n if (__getOwnPropSymbols$t)\n for (var prop of __getOwnPropSymbols$t(b)) {\n if (__propIsEnum$t.call(b, prop))\n __defNormalProp$q(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, __spreadProps$d(__spreadValues$q({}, keysToCamelKebabCase(attrs)), { $slots: slots }));\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, options2));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nvar __defProp$p = Object.defineProperty;\nvar __defProps$c = Object.defineProperties;\nvar __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$s = Object.getOwnPropertySymbols;\nvar __hasOwnProp$s = Object.prototype.hasOwnProperty;\nvar __propIsEnum$s = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$p = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$p = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$s.call(b, prop))\n __defNormalProp$p(a, prop, b[prop]);\n if (__getOwnPropSymbols$s)\n for (var prop of __getOwnPropSymbols$s(b)) {\n if (__propIsEnum$s.call(b, prop))\n __defNormalProp$p(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$c(__spreadValues$p({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$c(__spreadValues$p({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$c(__spreadValues$p({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions);\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n if (getCurrentInstance()) {\n onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - (previousFrameTimestamp || timestamp);\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options;\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nvar __defProp$o = Object.defineProperty;\nvar __defProps$b = Object.defineProperties;\nvar __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$r = Object.getOwnPropertySymbols;\nvar __hasOwnProp$r = Object.prototype.hasOwnProperty;\nvar __propIsEnum$r = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$o = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$r.call(b, prop))\n __defNormalProp$o(a, prop, b[prop]);\n if (__getOwnPropSymbols$r)\n for (var prop of __getOwnPropSymbols$r(b)) {\n if (__propIsEnum$r.call(b, prop))\n __defNormalProp$o(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return __spreadProps$b(__spreadValues$o({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n });\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return Object.assign(shortcutMethods, {\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nvar __defProp$n = Object.defineProperty;\nvar __getOwnPropSymbols$q = Object.getOwnPropertySymbols;\nvar __hasOwnProp$q = Object.prototype.hasOwnProperty;\nvar __propIsEnum$q = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$n = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$q.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n if (__getOwnPropSymbols$q)\n for (var prop of __getOwnPropSymbols$q(b)) {\n if (__propIsEnum$q.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n }\n return a;\n};\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive(__spreadValues$n({\n trigger,\n state: state2,\n length,\n origin\n }, refs));\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nvar __defProp$m = Object.defineProperty;\nvar __defProps$a = Object.defineProperties;\nvar __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$p = Object.getOwnPropertySymbols;\nvar __hasOwnProp$p = Object.prototype.hasOwnProperty;\nvar __propIsEnum$p = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$p.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n if (__getOwnPropSymbols$p)\n for (var prop of __getOwnPropSymbols$p(b)) {\n if (__propIsEnum$p.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, __spreadProps$a(__spreadValues$m({}, options), {\n deep,\n immediate\n }));\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$l = Object.defineProperty;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$o.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n if (__getOwnPropSymbols$o)\n for (var prop of __getOwnPropSymbols$o(b)) {\n if (__propIsEnum$o.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n }\n return a;\n};\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? shallowRef : ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return __spreadValues$l(__spreadValues$l({}, rawInit), value);\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$n.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$n)\n for (var prop of __getOwnPropSymbols$n(b)) {\n if (__propIsEnum$n.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = __spreadValues$k({\n auto: \"\",\n light: \"light\",\n dark: \"dark\"\n }, options.modes || {});\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(\n () => store.value === \"auto\" ? system.value : store.value\n );\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$m.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$m)\n for (var prop of __getOwnPropSymbols$m(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$m.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$3(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$l)\n for (var prop of __getOwnPropSymbols$l(b)) {\n if (__propIsEnum$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\"\n } = options;\n const mode = useColorMode(__spreadProps$9(__spreadValues$j({}, options), {\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n }));\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (mode.system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, __spreadProps$8(__spreadValues$i({}, options), { clone: options.clone || deep, setSource }));\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return __spreadProps$8(__spreadValues$i({}, manualHistory), {\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n });\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, __spreadProps$7(__spreadValues$h({}, options), { eventFilter: filter }));\n return __spreadValues$h({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio({\n window = defaultWindow\n} = {}) {\n const pixelRatio = ref(1);\n if (window) {\n let observe = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe, { once: true });\n }, cleanup = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe);\n };\n let media;\n observe();\n tryOnScopeDispose(cleanup);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n if (!filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const rect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\")\n x = e.clientX - pressedDelta.value.x;\n if (axis === \"y\" || axis === \"both\")\n y = e.clientY - pressedDelta.value.y;\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return __spreadProps$6(__spreadValues$g({}, toRefs(position)), {\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n });\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a;\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_a = _options.onEnter) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$h.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$h.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(\n () => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]\n );\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$g.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(b)) {\n if (__propIsEnum$g.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return __spreadValues$f({\n isSupported,\n element\n }, controls);\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n return {\n width,\n height\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n ([{ isIntersecting }]) => {\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return __spreadValues$e(__spreadValues$e({}, ctx), await callback(ctx));\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = __spreadValues$e(__spreadValues$e({}, ctx), await callback(ctx));\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = __spreadProps$5(__spreadValues$e(__spreadValues$e({}, options), args[0]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n });\n } else {\n fetchOptions = __spreadProps$5(__spreadValues$e(__spreadValues$e({}, fetchOptions), args[0]), {\n headers: __spreadValues$e(__spreadValues$e({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n });\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = __spreadProps$5(__spreadValues$e(__spreadValues$e({}, options), args[1]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n });\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = { immediate: true, refetch: false, timeout: 0 };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = __spreadValues$e(__spreadValues$e({}, options), args[0]);\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = __spreadValues$e(__spreadValues$e({}, options), args[1]);\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = __spreadProps$5(__spreadValues$e({}, fetchOptions), {\n signal: controller.signal\n });\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: __spreadValues$e(__spreadValues$e({}, defaultFetchOptions), fetchOptions),\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(\n context.url,\n __spreadProps$5(__spreadValues$e(__spreadValues$e({}, defaultFetchOptions), context.options), {\n headers: __spreadValues$e(__spreadValues$e({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n })\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch)\n ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError)\n ({ error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n error.value = errorData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return __spreadProps$5(__spreadValues$e({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return __spreadProps$5(__spreadValues$e({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return __spreadProps$5(__spreadValues$e({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = __spreadValues$d(__spreadValues$d(__spreadValues$d({}, DEFAULT_OPTIONS), options), localOptions);\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker(__spreadValues$c(__spreadValues$c({}, toValue(options)), _options));\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$c(__spreadValues$c({}, options), _options));\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$c(__spreadValues$c({}, options), _options));\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(\n () => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0\n );\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return __spreadProps$4(__spreadValues$b({}, gamepad), {\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n });\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n __spreadValues$a({\n resetOnExecute: true\n }, asyncStateOptions)\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n if (!window)\n return;\n const el = target === window ? target.document.documentElement : target === window.document ? target.documentElement : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n if (!window)\n return;\n const eventTarget = e.target === window.document ? e.target.documentElement : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100\n } = options;\n const state = reactive(useScroll(\n element,\n __spreadProps$3(__spreadValues$9({}, options), {\n offset: __spreadValues$9({\n [direction]: (_a = options.distance) != null ? _a : 0\n }, options.offset)\n })\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n const el = toValue(element);\n if (el instanceof Window)\n return window.document.documentElement;\n if (el instanceof Document)\n return document.documentElement;\n return el;\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value)\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = __spreadValues$8(__spreadValues$8({}, defaultOptions), options);\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return reactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return reactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst BuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n eventFilter\n } = options;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : BuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n useEventListener(window, \"mouseup\", onReleased, { passive: true });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"drop\", onReleased, { passive: true });\n useEventListener(window, \"dragend\", onReleased, { passive: true });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n useEventListener(window, \"touchend\", onReleased, { passive: true });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return __spreadValues$7({\n now\n }, controls);\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page))\n syncRef(page, currentPage);\n if (isRef(pageSize))\n syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction usePerformanceObserver(options, callback) {\n const _a = options, {\n window = defaultWindow,\n immediate = true\n } = _a, performanceOptions = __objRest$1(_a, [\n \"window\",\n \"immediate\"\n ]);\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return __spreadProps$2(__spreadValues$6({}, toRefs(state)), {\n isInside\n });\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n if (el) {\n const ele = el;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const ele = toValue(element);\n if (!ele || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n ele,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n ele.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const ele = toValue(element);\n if (!ele || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n ele.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = __spreadValues$5(__spreadValues$5({}, toValue(shareOptions)), toValue(overrideOptions));\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = __spreadValues$4(__spreadValues$4({}, rawInit), value);\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style.height = \"1px\";\n textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style.height = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, __spreadProps$1(__spreadValues$3({}, options), { eventFilter: filter }));\n return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return __spreadValues$2({\n timeAgo\n }, controls);\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$1({\n timestamp: ts\n }, controls);\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = toRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_b = document.head) == null ? void 0 : _b.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, __spreadProps(__spreadValues({}, options), {\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n }));\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n watch(\n () => props[key],\n (v) => proxy.value = cloneFn(v)\n );\n watch(\n proxy,\n (v) => {\n if (v !== props[key] || deep)\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props)\n ret[key] = useVModel(props, key, emit, options);\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(defaultOptions = {}) {\n const {\n window = defaultWindow\n } = defaultOptions;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const notification = ref(null);\n const requestPermission = async () => {\n if (!isSupported.value)\n return;\n if (\"permission\" in Notification && Notification.permission !== \"denied\")\n await Notification.requestPermission();\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value)\n return;\n await requestPermission();\n const options = Object.assign({}, defaultOptions, overrides);\n notification.value = new Notification(options.title || \"\", options);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n tryOnMounted(async () => {\n if (isSupported.value)\n await requestPermission();\n });\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const close = (code = 1e3, reason) => {\n if (!wsRef.value)\n return;\n explicitlyClosed = true;\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(window, \"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const x = ref(window.scrollX);\n const y = ref(window.scrollY);\n useEventListener(\n window,\n \"scroll\",\n () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","// Copyright (c) 2014 Rafael Caricio. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nvar GradientParser = (GradientParser || {});\n\nGradientParser.stringify = (function() {\n\n var visitor = {\n\n 'visit_linear-gradient': function(node) {\n return visitor.visit_gradient(node);\n },\n\n 'visit_repeating-linear-gradient': function(node) {\n return visitor.visit_gradient(node);\n },\n\n 'visit_radial-gradient': function(node) {\n return visitor.visit_gradient(node);\n },\n\n 'visit_repeating-radial-gradient': function(node) {\n return visitor.visit_gradient(node);\n },\n\n 'visit_gradient': function(node) {\n var orientation = visitor.visit(node.orientation);\n if (orientation) {\n orientation += ', ';\n }\n\n return node.type + '(' + orientation + visitor.visit(node.colorStops) + ')';\n },\n\n 'visit_shape': function(node) {\n var result = node.value,\n at = visitor.visit(node.at),\n style = visitor.visit(node.style);\n\n if (style) {\n result += ' ' + style;\n }\n\n if (at) {\n result += ' at ' + at;\n }\n\n return result;\n },\n\n 'visit_default-radial': function(node) {\n var result = '',\n at = visitor.visit(node.at);\n\n if (at) {\n result += at;\n }\n return result;\n },\n\n 'visit_extent-keyword': function(node) {\n var result = node.value,\n at = visitor.visit(node.at);\n\n if (at) {\n result += ' at ' + at;\n }\n\n return result;\n },\n\n 'visit_position-keyword': function(node) {\n return node.value;\n },\n\n 'visit_position': function(node) {\n return visitor.visit(node.value.x) + ' ' + visitor.visit(node.value.y);\n },\n\n 'visit_%': function(node) {\n return node.value + '%';\n },\n\n 'visit_em': function(node) {\n return node.value + 'em';\n },\n\n 'visit_px': function(node) {\n return node.value + 'px';\n },\n\n 'visit_literal': function(node) {\n return visitor.visit_color(node.value, node);\n },\n\n 'visit_hex': function(node) {\n return visitor.visit_color('#' + node.value, node);\n },\n\n 'visit_rgb': function(node) {\n return visitor.visit_color('rgb(' + node.value.join(', ') + ')', node);\n },\n\n 'visit_rgba': function(node) {\n return visitor.visit_color('rgba(' + node.value.join(', ') + ')', node);\n },\n\n 'visit_color': function(resultColor, node) {\n var result = resultColor,\n length = visitor.visit(node.length);\n\n if (length) {\n result += ' ' + length;\n }\n return result;\n },\n\n 'visit_angular': function(node) {\n return node.value + 'deg';\n },\n\n 'visit_directional': function(node) {\n return 'to ' + node.value;\n },\n\n 'visit_array': function(elements) {\n var result = '',\n size = elements.length;\n\n elements.forEach(function(element, i) {\n result += visitor.visit(element);\n if (i < size - 1) {\n result += ', ';\n }\n });\n\n return result;\n },\n\n 'visit': function(element) {\n if (!element) {\n return '';\n }\n var result = '';\n\n if (element instanceof Array) {\n return visitor.visit_array(element, result);\n } else if (element.type) {\n var nodeVisitor = visitor['visit_' + element.type];\n if (nodeVisitor) {\n return nodeVisitor(element);\n } else {\n throw Error('Missing visitor visit_' + element.type);\n }\n } else {\n throw Error('Invalid node.');\n }\n }\n\n };\n\n return function(root) {\n return visitor.visit(root);\n };\n})();\n\n// Copyright (c) 2014 Rafael Caricio. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nvar GradientParser = (GradientParser || {});\n\nGradientParser.parse = (function() {\n\n var tokens = {\n linearGradient: /^(\\-(webkit|o|ms|moz)\\-)?(linear\\-gradient)/i,\n repeatingLinearGradient: /^(\\-(webkit|o|ms|moz)\\-)?(repeating\\-linear\\-gradient)/i,\n radialGradient: /^(\\-(webkit|o|ms|moz)\\-)?(radial\\-gradient)/i,\n repeatingRadialGradient: /^(\\-(webkit|o|ms|moz)\\-)?(repeating\\-radial\\-gradient)/i,\n sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i,\n extentKeywords: /^(closest\\-side|closest\\-corner|farthest\\-side|farthest\\-corner|contain|cover)/,\n positionKeywords: /^(left|center|right|top|bottom)/i,\n pixelValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))px/,\n percentageValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))\\%/,\n emValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))em/,\n angleValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))deg/,\n startCall: /^\\(/,\n endCall: /^\\)/,\n comma: /^,/,\n hexColor: /^\\#([0-9a-fA-F]+)/,\n literalColor: /^([a-zA-Z]+)/,\n rgbColor: /^rgb/i,\n rgbaColor: /^rgba/i,\n number: /^(([0-9]*\\.[0-9]+)|([0-9]+\\.?))/\n };\n\n var input = '';\n\n function error(msg) {\n var err = new Error(input + ': ' + msg);\n err.source = input;\n throw err;\n }\n\n function getAST() {\n var ast = matchListDefinitions();\n\n if (input.length > 0) {\n error('Invalid input not EOF');\n }\n\n return ast;\n }\n\n function matchListDefinitions() {\n return matchListing(matchDefinition);\n }\n\n function matchDefinition() {\n return matchGradient(\n 'linear-gradient',\n tokens.linearGradient,\n matchLinearOrientation) ||\n\n matchGradient(\n 'repeating-linear-gradient',\n tokens.repeatingLinearGradient,\n matchLinearOrientation) ||\n\n matchGradient(\n 'radial-gradient',\n tokens.radialGradient,\n matchListRadialOrientations) ||\n\n matchGradient(\n 'repeating-radial-gradient',\n tokens.repeatingRadialGradient,\n matchListRadialOrientations);\n }\n\n function matchGradient(gradientType, pattern, orientationMatcher) {\n return matchCall(pattern, function(captures) {\n\n var orientation = orientationMatcher();\n if (orientation) {\n if (!scan(tokens.comma)) {\n error('Missing comma before color stops');\n }\n }\n\n return {\n type: gradientType,\n orientation: orientation,\n colorStops: matchListing(matchColorStop)\n };\n });\n }\n\n function matchCall(pattern, callback) {\n var captures = scan(pattern);\n\n if (captures) {\n if (!scan(tokens.startCall)) {\n error('Missing (');\n }\n\n var result = callback(captures);\n\n if (!scan(tokens.endCall)) {\n error('Missing )');\n }\n\n return result;\n }\n }\n\n function matchLinearOrientation() {\n return matchSideOrCorner() ||\n matchAngle();\n }\n\n function matchSideOrCorner() {\n return match('directional', tokens.sideOrCorner, 1);\n }\n\n function matchAngle() {\n return match('angular', tokens.angleValue, 1);\n }\n\n function matchListRadialOrientations() {\n var radialOrientations,\n radialOrientation = matchRadialOrientation(),\n lookaheadCache;\n\n if (radialOrientation) {\n radialOrientations = [];\n radialOrientations.push(radialOrientation);\n\n lookaheadCache = input;\n if (scan(tokens.comma)) {\n radialOrientation = matchRadialOrientation();\n if (radialOrientation) {\n radialOrientations.push(radialOrientation);\n } else {\n input = lookaheadCache;\n }\n }\n }\n\n return radialOrientations;\n }\n\n function matchRadialOrientation() {\n var radialType = matchCircle() ||\n matchEllipse();\n\n if (radialType) {\n radialType.at = matchAtPosition();\n } else {\n var extent = matchExtentKeyword();\n if (extent) {\n radialType = extent;\n var positionAt = matchAtPosition();\n if (positionAt) {\n radialType.at = positionAt;\n }\n } else {\n var defaultPosition = matchPositioning();\n if (defaultPosition) {\n radialType = {\n type: 'default-radial',\n at: defaultPosition\n };\n }\n }\n }\n\n return radialType;\n }\n\n function matchCircle() {\n var circle = match('shape', /^(circle)/i, 0);\n\n if (circle) {\n circle.style = matchLength() || matchExtentKeyword();\n }\n\n return circle;\n }\n\n function matchEllipse() {\n var ellipse = match('shape', /^(ellipse)/i, 0);\n\n if (ellipse) {\n ellipse.style = matchDistance() || matchExtentKeyword();\n }\n\n return ellipse;\n }\n\n function matchExtentKeyword() {\n return match('extent-keyword', tokens.extentKeywords, 1);\n }\n\n function matchAtPosition() {\n if (match('position', /^at/, 0)) {\n var positioning = matchPositioning();\n\n if (!positioning) {\n error('Missing positioning value');\n }\n\n return positioning;\n }\n }\n\n function matchPositioning() {\n var location = matchCoordinates();\n\n if (location.x || location.y) {\n return {\n type: 'position',\n value: location\n };\n }\n }\n\n function matchCoordinates() {\n return {\n x: matchDistance(),\n y: matchDistance()\n };\n }\n\n function matchListing(matcher) {\n var captures = matcher(),\n result = [];\n\n if (captures) {\n result.push(captures);\n while (scan(tokens.comma)) {\n captures = matcher();\n if (captures) {\n result.push(captures);\n } else {\n error('One extra comma');\n }\n }\n }\n\n return result;\n }\n\n function matchColorStop() {\n var color = matchColor();\n\n if (!color) {\n error('Expected color definition');\n }\n\n color.length = matchDistance();\n return color;\n }\n\n function matchColor() {\n return matchHexColor() ||\n matchRGBAColor() ||\n matchRGBColor() ||\n matchLiteralColor();\n }\n\n function matchLiteralColor() {\n return match('literal', tokens.literalColor, 0);\n }\n\n function matchHexColor() {\n return match('hex', tokens.hexColor, 1);\n }\n\n function matchRGBColor() {\n return matchCall(tokens.rgbColor, function() {\n return {\n type: 'rgb',\n value: matchListing(matchNumber)\n };\n });\n }\n\n function matchRGBAColor() {\n return matchCall(tokens.rgbaColor, function() {\n return {\n type: 'rgba',\n value: matchListing(matchNumber)\n };\n });\n }\n\n function matchNumber() {\n return scan(tokens.number)[1];\n }\n\n function matchDistance() {\n return match('%', tokens.percentageValue, 1) ||\n matchPositionKeyword() ||\n matchLength();\n }\n\n function matchPositionKeyword() {\n return match('position-keyword', tokens.positionKeywords, 1);\n }\n\n function matchLength() {\n return match('px', tokens.pixelValue, 1) ||\n match('em', tokens.emValue, 1);\n }\n\n function match(type, pattern, captureIndex) {\n var captures = scan(pattern);\n if (captures) {\n return {\n type: type,\n value: captures[captureIndex]\n };\n }\n }\n\n function scan(regexp) {\n var captures,\n blankCaptures;\n\n blankCaptures = /^[\\n\\r\\t\\s]+/.exec(input);\n if (blankCaptures) {\n consume(blankCaptures[0].length);\n }\n\n captures = regexp.exec(input);\n if (captures) {\n consume(captures[0].length);\n }\n\n return captures;\n }\n\n function consume(size) {\n input = input.substr(size);\n }\n\n return function(code) {\n input = code.toString();\n return getAST();\n };\n})();\n\nexports.parse = GradientParser.parse;\nexports.stringify = GradientParser.stringify;\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","import{isPlainObject as e}from\"is-plain-object\";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[r]=e[r]);return i}const n={silent:!1,logLevel:\"warn\"},i=[\"validator\"],o=Object.prototype,a=o.toString,s=o.hasOwnProperty,u=/^\\s*function (\\w+)/;function l(e){var t;const r=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(r){const e=r.toString().match(u);return e?e[1]:\"\"}return\"\"}const c=e,f=e=>e;let d=f;if(\"production\"!==process.env.NODE_ENV){const e=\"undefined\"!=typeof console;d=e?function(e,t=n.logLevel){!1===n.silent&&console[t](`[VueTypes warn]: ${e}`)}:f}const p=(e,t)=>s.call(e,t),y=Number.isInteger||function(e){return\"number\"==typeof e&&isFinite(e)&&Math.floor(e)===e},v=Array.isArray||function(e){return\"[object Array]\"===a.call(e)},h=e=>\"[object Function]\"===a.call(e),b=e=>c(e)&&p(e,\"_vueTypes_name\"),g=e=>c(e)&&(p(e,\"type\")||[\"_vueTypes_name\",\"validator\",\"default\",\"required\"].some(t=>p(e,t)));function O(e,t){return Object.defineProperty(e.bind(t),\"__original\",{value:e})}function m(e,t,r=!1){let n,i=!0,o=\"\";n=c(e)?e:{type:e};const a=b(n)?n._vueTypes_name+\" - \":\"\";if(g(n)&&null!==n.type){if(void 0===n.type||!0===n.type)return i;if(!n.required&&void 0===t)return i;v(n.type)?(i=n.type.some(e=>!0===m(e,t,!0)),o=n.type.map(e=>l(e)).join(\" or \")):(o=l(n),i=\"Array\"===o?v(t):\"Object\"===o?c(t):\"String\"===o||\"Number\"===o||\"Boolean\"===o||\"Function\"===o?function(e){if(null==e)return\"\";const t=e.constructor.toString().match(u);return t?t[1]:\"\"}(t)===o:t instanceof n.type)}if(!i){const e=`${a}value \"${t}\" should be of type \"${o}\"`;return!1===r?(d(e),!1):e}if(p(n,\"validator\")&&h(n.validator)){const e=d,o=[];if(d=e=>{o.push(e)},i=n.validator(t),d=e,!i){const e=(o.length>1?\"* \":\"\")+o.join(\"\\n* \");return o.length=0,!1===r?(d(e),i):e}}return i}function j(e,t){const r=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get(){return this.required=!0,this}},def:{value(e){return void 0===e?(p(this,\"default\")&&delete this.default,this):h(e)||!0===m(this,e,!0)?(this.default=v(e)?()=>[...e]:c(e)?()=>Object.assign({},e):e,this):(d(`${this._vueTypes_name} - invalid default value: \"${e}\"`),this)}}}),{validator:n}=r;return h(n)&&(r.validator=O(n,r)),r}function _(e,t){const r=j(e,t);return Object.defineProperty(r,\"validate\",{value(e){return h(this.validator)&&d(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(this)}`),this.validator=O(e,this),this}})}function T(e,t,n){const o=function(e){const t={};return Object.getOwnPropertyNames(e).forEach(r=>{t[r]=Object.getOwnPropertyDescriptor(e,r)}),Object.defineProperties({},t)}(t);if(o._vueTypes_name=e,!c(n))return o;const{validator:a}=n,s=r(n,i);if(h(a)){let{validator:e}=o;e&&(e=null!==(l=(u=e).__original)&&void 0!==l?l:u),o.validator=O(e?function(t){return e.call(this,t)&&a.call(this,t)}:a,o)}var u,l;return Object.assign(o,s)}function $(e){return e.replace(/^(?!\\s*$)/gm,\" \")}const w=()=>_(\"any\",{}),P=()=>_(\"function\",{type:Function}),x=()=>_(\"boolean\",{type:Boolean}),E=()=>_(\"string\",{type:String}),N=()=>_(\"number\",{type:Number}),q=()=>_(\"array\",{type:Array}),A=()=>_(\"object\",{type:Object}),V=()=>j(\"integer\",{type:Number,validator:e=>y(e)}),S=()=>j(\"symbol\",{validator:e=>\"symbol\"==typeof e}),k=()=>({type:null});function D(e,t=\"custom validation failed\"){if(\"function\"!=typeof e)throw new TypeError(\"[VueTypes error]: You must provide a function as argument\");return j(e.name||\"<>\",{type:null,validator(r){const n=e(r);return n||d(`${this._vueTypes_name} - ${t}`),n}})}function L(e){if(!v(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument.\");const t=`oneOf - value should be one of \"${e.join('\", \"')}\".`,r=e.reduce((e,t)=>{if(null!=t){const r=t.constructor;-1===e.indexOf(r)&&e.push(r)}return e},[]);return j(\"oneOf\",{type:r.length>0?r:void 0,validator(r){const n=-1!==e.indexOf(r);return n||d(t),n}})}function F(e){if(!v(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument\");let t=!1,r=[];for(let n=0;nr.indexOf(e)===t);const n=r.length>0?r:null;return j(\"oneOfType\",t?{type:n,validator(t){const r=[],n=e.some(e=>{const n=m(b(e)&&\"oneOf\"===e._vueTypes_name?e.type||null:e,t,!0);return\"string\"==typeof n&&r.push(n),!0===n});return n||d(`oneOfType - provided value does not match any of the ${r.length} passed-in validators:\\n${$(r.join(\"\\n\"))}`),n}}:{type:n})}function Y(e){return j(\"arrayOf\",{type:Array,validator(t){let r=\"\";const n=t.every(t=>(r=m(e,t,!0),!0===r));return n||d(`arrayOf - value validation error:\\n${$(r)}`),n}})}function B(e){return j(\"instanceOf\",{type:e})}function I(e){return j(\"objectOf\",{type:Object,validator(t){let r=\"\";const n=Object.keys(t).every(n=>(r=m(e,t[n],!0),!0===r));return n||d(`objectOf - value validation error:\\n${$(r)}`),n}})}function J(e){const t=Object.keys(e),r=t.filter(t=>{var r;return!(null===(r=e[t])||void 0===r||!r.required)}),n=j(\"shape\",{type:Object,validator(n){if(!c(n))return!1;const i=Object.keys(n);if(r.length>0&&r.some(e=>-1===i.indexOf(e))){const e=r.filter(e=>-1===i.indexOf(e));return d(1===e.length?`shape - required property \"${e[0]}\" is not defined.`:`shape - required properties \"${e.join('\", \"')}\" are not defined.`),!1}return i.every(r=>{if(-1===t.indexOf(r))return!0===this._vueTypes_isLoose||(d(`shape - shape definition does not include a \"${r}\" property. Allowed keys: \"${t.join('\", \"')}\".`),!1);const i=m(e[r],n[r],!0);return\"string\"==typeof i&&d(`shape - \"${r}\" property validation error:\\n ${$(i)}`),!0===i})}});return Object.defineProperty(n,\"_vueTypes_isLoose\",{writable:!0,value:!1}),Object.defineProperty(n,\"loose\",{get(){return this._vueTypes_isLoose=!0,this}}),n}const M=[\"name\",\"validate\",\"getter\"],R=/*#__PURE__*/(()=>{var e;return(e=class{static get any(){return w()}static get func(){return P().def(this.defaults.func)}static get bool(){return x().def(this.defaults.bool)}static get string(){return E().def(this.defaults.string)}static get number(){return N().def(this.defaults.number)}static get array(){return q().def(this.defaults.array)}static get object(){return A().def(this.defaults.object)}static get integer(){return V().def(this.defaults.integer)}static get symbol(){return S()}static get nullable(){return{type:null}}static extend(e){if(v(e))return e.forEach(e=>this.extend(e)),this;const{name:t,validate:n=!1,getter:i=!1}=e,o=r(e,M);if(p(this,t))throw new TypeError(`[VueTypes error]: Type \"${t}\" already defined`);const{type:a}=o;if(b(a))return delete o.type,Object.defineProperty(this,t,i?{get:()=>T(t,a,o)}:{value(...e){const r=T(t,a,o);return r.validator&&(r.validator=r.validator.bind(r,...e)),r}});let s;return s=i?{get(){const e=Object.assign({},o);return n?_(t,e):j(t,e)},enumerable:!0}:{value(...e){const r=Object.assign({},o);let i;return i=n?_(t,r):j(t,r),r.validator&&(i.validator=r.validator.bind(i,...e)),i},enumerable:!0},Object.defineProperty(this,t,s)}}).defaults={},e.sensibleDefaults=void 0,e.config=n,e.custom=D,e.oneOf=L,e.instanceOf=B,e.oneOfType=F,e.arrayOf=Y,e.objectOf=I,e.shape=J,e.utils={validate:(e,t)=>!0===m(t,e,!0),toType:(e,t,r=!1)=>r?_(e,t):j(e,t)},e})();function z(e={func:()=>{},bool:!0,string:\"\",number:0,array:()=>[],object:()=>({}),integer:0}){var r;return(r=class extends R{static get sensibleDefaults(){return t({},this.defaults)}static set sensibleDefaults(r){this.defaults=!1!==r?t({},!0!==r?r:e):{}}}).defaults=t({},e),r}class C extends(z()){}export{w as any,q as array,Y as arrayOf,x as bool,n as config,z as createTypes,D as custom,C as default,T as fromType,P as func,B as instanceOf,V as integer,k as nullable,N as number,A as object,I as objectOf,L as oneOf,F as oneOfType,J as shape,E as string,S as symbol,j as toType,_ as toValidableType,m as validateType};\n//# sourceMappingURL=vue-types.modern.js.map\n","var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var n=function(t){return t&&t.Math==Math&&t},r=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof t&&t)||function(){return this}()||Function(\"return this\")(),o=function(t){try{return!!t()}catch(t){return!0}},i=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,c={f:a&&!u.call({1:2},1)?function(t){var e=a(this,t);return!!e&&e.enumerable}:u},l=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},f={}.toString,s=function(t){return f.call(t).slice(8,-1)},d=\"\".split,v=o((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==s(t)?d.call(t,\"\"):Object(t)}:Object,p=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t},g=function(t){return v(p(t))},h=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t},y=function(t,e){if(!h(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!h(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!h(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!h(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")},m={}.hasOwnProperty,S=function(t,e){return m.call(t,e)},x=r.document,b=h(x)&&h(x.createElement),E=function(t){return b?x.createElement(t):{}},w=!i&&!o((function(){return 7!=Object.defineProperty(E(\"div\"),\"a\",{get:function(){return 7}}).a})),O=Object.getOwnPropertyDescriptor,T={f:i?O:function(t,e){if(t=g(t),e=y(e,!0),w)try{return O(t,e)}catch(t){}if(S(t,e))return l(!c.f.call(t,e),t[e])}},A=function(t){if(!h(t))throw TypeError(String(t)+\" is not an object\");return t},k=Object.defineProperty,R={f:i?k:function(t,e,n){if(A(t),e=y(e,!0),A(n),w)try{return k(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},I=i?function(t,e,n){return R.f(t,e,l(1,n))}:function(t,e,n){return t[e]=n,t},j=function(t,e){try{I(r,t,e)}catch(n){r[t]=e}return e},C=r[\"__core-js_shared__\"]||j(\"__core-js_shared__\",{}),L=Function.toString;\"function\"!=typeof C.inspectSource&&(C.inspectSource=function(t){return L.call(t)});var P,M,_,D=C.inspectSource,U=r.WeakMap,N=\"function\"==typeof U&&/native code/.test(D(U)),F=e((function(t){(t.exports=function(t,e){return C[t]||(C[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.8.3\",mode:\"global\",copyright:\"© 2021 Denis Pushkarev (zloirock.ru)\"})})),W=0,z=Math.random(),$=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++W+z).toString(36)},B=F(\"keys\"),Y=function(t){return B[t]||(B[t]=$(t))},G={},H=r.WeakMap;if(N){var X=C.state||(C.state=new H),V=X.get,K=X.has,q=X.set;P=function(t,e){return e.facade=t,q.call(X,t,e),e},M=function(t){return V.call(X,t)||{}},_=function(t){return K.call(X,t)}}else{var Q=Y(\"state\");G[Q]=!0,P=function(t,e){return e.facade=t,I(t,Q,e),e},M=function(t){return S(t,Q)?t[Q]:{}},_=function(t){return S(t,Q)}}var J={set:P,get:M,has:_,enforce:function(t){return _(t)?M(t):P(t,{})},getterFor:function(t){return function(e){var n;if(!h(e)||(n=M(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}}},Z=e((function(t){var e=J.get,n=J.enforce,o=String(String).split(\"String\");(t.exports=function(t,e,i,u){var a,c=!!u&&!!u.unsafe,l=!!u&&!!u.enumerable,f=!!u&&!!u.noTargetGet;\"function\"==typeof i&&(\"string\"!=typeof e||S(i,\"name\")||I(i,\"name\",e),(a=n(i)).source||(a.source=o.join(\"string\"==typeof e?e:\"\"))),t!==r?(c?!f&&t[e]&&(l=!0):delete t[e],l?t[e]=i:I(t,e,i)):l?t[e]=i:j(e,i)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&e(this).source||D(this)}))})),tt=r,et=function(t){return\"function\"==typeof t?t:void 0},nt=function(t,e){return arguments.length<2?et(tt[t])||et(r[t]):tt[t]&&tt[t][e]||r[t]&&r[t][e]},rt=Math.ceil,ot=Math.floor,it=function(t){return isNaN(t=+t)?0:(t>0?ot:rt)(t)},ut=Math.min,at=function(t){return t>0?ut(it(t),9007199254740991):0},ct=Math.max,lt=Math.min,ft=function(t,e){var n=it(t);return n<0?ct(n+e,0):lt(n,e)},st=function(t){return function(e,n,r){var o,i=g(e),u=at(i.length),a=ft(r,u);if(t&&n!=n){for(;u>a;)if((o=i[a++])!=o)return!0}else for(;u>a;a++)if((t||a in i)&&i[a]===n)return t||a||0;return!t&&-1}},dt={includes:st(!0),indexOf:st(!1)},vt=dt.indexOf,pt=function(t,e){var n,r=g(t),o=0,i=[];for(n in r)!S(G,n)&&S(r,n)&&i.push(n);for(;e.length>o;)S(r,n=e[o++])&&(~vt(i,n)||i.push(n));return i},gt=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"],ht=gt.concat(\"length\",\"prototype\"),yt={f:Object.getOwnPropertyNames||function(t){return pt(t,ht)}},mt={f:Object.getOwnPropertySymbols},St=nt(\"Reflect\",\"ownKeys\")||function(t){var e=yt.f(A(t)),n=mt.f;return n?e.concat(n(t)):e},xt=function(t,e){for(var n=St(e),r=R.f,o=T.f,i=0;i1?arguments[1]:void 0)}});var Bt=function(){function t(){Wt(this,t)}return $t(t,null,[{key:\"isInBrowser\",value:function(){return\"undefined\"!=typeof window}},{key:\"isServer\",value:function(){return\"undefined\"==typeof window}},{key:\"getUA\",value:function(){return t.isInBrowser()?window.navigator.userAgent.toLowerCase():\"\"}},{key:\"isMobile\",value:function(){return/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion)}},{key:\"isOpera\",value:function(){return-1!==navigator.userAgent.indexOf(\"Opera\")}},{key:\"isIE\",value:function(){var e=t.getUA();return\"\"!==e&&e.indexOf(\"msie\")>0}},{key:\"isIE9\",value:function(){var e=t.getUA();return\"\"!==e&&e.indexOf(\"msie 9.0\")>0}},{key:\"isEdge\",value:function(){var e=t.getUA();return\"\"!==e&&e.indexOf(\"edge/\")>0}},{key:\"isChrome\",value:function(){var e=t.getUA();return\"\"!==e&&/chrome\\/\\d+/.test(e)&&!t.isEdge()}},{key:\"isPhantomJS\",value:function(){var e=t.getUA();return\"\"!==e&&/phantomjs/.test(e)}},{key:\"isFirefox\",value:function(){var e=t.getUA();return\"\"!==e&&/firefox/.test(e)}}]),t}(),Yt=[].join,Gt=v!=Object,Ht=jt(\"join\",\",\");It({target:\"Array\",proto:!0,forced:Gt||!Ht},{join:function(t){return Yt.call(g(this),void 0===t?\",\":t)}});var Xt,Vt,Kt=function(t){return Object(p(t))},qt=Array.isArray||function(t){return\"Array\"==s(t)},Qt=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())})),Jt=Qt&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator,Zt=F(\"wks\"),te=r.Symbol,ee=Jt?te:te&&te.withoutSetter||$,ne=function(t){return S(Zt,t)||(Qt&&S(te,t)?Zt[t]=te[t]:Zt[t]=ee(\"Symbol.\"+t)),Zt[t]},re=ne(\"species\"),oe=function(t,e){var n;return qt(t)&&(\"function\"!=typeof(n=t.constructor)||n!==Array&&!qt(n.prototype)?h(n)&&null===(n=n[re])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)},ie=function(t,e,n){var r=y(e);r in t?R.f(t,r,l(0,n)):t[r]=n},ue=nt(\"navigator\",\"userAgent\")||\"\",ae=r.process,ce=ae&&ae.versions,le=ce&&ce.v8;le?Vt=(Xt=le.split(\".\"))[0]+Xt[1]:ue&&(!(Xt=ue.match(/Edge\\/(\\d+)/))||Xt[1]>=74)&&(Xt=ue.match(/Chrome\\/(\\d+)/))&&(Vt=Xt[1]);var fe=Vt&&+Vt,se=ne(\"species\"),de=function(t){return fe>=51||!o((function(){var e=[];return(e.constructor={})[se]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},ve=de(\"splice\"),pe=Mt(\"splice\",{ACCESSORS:!0,0:0,1:2}),ge=Math.max,he=Math.min;It({target:\"Array\",proto:!0,forced:!ve||!pe},{splice:function(t,e){var n,r,o,i,u,a,c=Kt(this),l=at(c.length),f=ft(t,l),s=arguments.length;if(0===s?n=r=0:1===s?(n=0,r=l-f):(n=s-2,r=he(ge(it(e),0),l-f)),l+n-r>9007199254740991)throw TypeError(\"Maximum allowed length exceeded\");for(o=oe(c,r),i=0;il-r+n;i--)delete c[i-1]}else if(n>r)for(i=l-r;i>f;i--)a=i+n-1,(u=i+r-1)in c?c[a]=c[u]:delete c[a];for(i=0;i0&&(!i.multiline||i.multiline&&\"\\n\"!==t[i.lastIndex-1])&&(c=\"(?: \"+c+\")\",f=\" \"+f,l++),n=new RegExp(\"^(?:\"+c+\")\",a)),Pe&&(n=new RegExp(\"^\"+c+\"$(?!\\\\s)\",a)),Ce&&(e=i.lastIndex),r=Re.call(u?n:i,f),u?r?(r.input=r.input.slice(l),r[0]=r[0].slice(l),r.index=i.lastIndex,i.lastIndex+=r[0].length):i.lastIndex=0:Ce&&r&&(i.lastIndex=i.global?r.index+r[0].length:e),Pe&&r&&r.length>1&&Ie.call(r[0],n,(function(){for(o=1;o\")})),ze=\"$0\"===\"a\".replace(/./,\"$0\"),$e=ne(\"replace\"),Be=!!/./[$e]&&\"\"===/./[$e](\"a\",\"$0\"),Ye=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n=\"ab\".split(t);return 2!==n.length||\"a\"!==n[0]||\"b\"!==n[1]})),Ge=function(t,e,n,r){var i=ne(t),u=!o((function(){var e={};return e[i]=function(){return 7},7!=\"\"[t](e)})),a=u&&!o((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[Fe]=function(){return n},n.flags=\"\",n[i]=/./[i]),n.exec=function(){return e=!0,null},n[i](\"\"),!e}));if(!u||!a||\"replace\"===t&&(!We||!ze||Be)||\"split\"===t&&!Ye){var c=/./[i],l=n(i,\"\"[t],(function(t,e,n,r,o){return e.exec===Me?u&&!o?{done:!0,value:c.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:ze,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Be}),f=l[0],s=l[1];Z(String.prototype,t,f),Z(RegExp.prototype,i,2==e?function(t,e){return s.call(t,this,e)}:function(t){return s.call(t,this)})}r&&I(RegExp.prototype[i],\"sham\",!0)},He=ne(\"match\"),Xe=function(t){var e;return h(t)&&(void 0!==(e=t[He])?!!e:\"RegExp\"==s(t))},Ve=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t},Ke=ne(\"species\"),qe=function(t){return function(e,n){var r,o,i=String(p(e)),u=it(n),a=i.length;return u<0||u>=a?t?\"\":void 0:(r=i.charCodeAt(u))<55296||r>56319||u+1===a||(o=i.charCodeAt(u+1))<56320||o>57343?t?i.charAt(u):r:t?i.slice(u,u+2):o-56320+(r-55296<<10)+65536}},Qe={codeAt:qe(!1),charAt:qe(!0)},Je=Qe.charAt,Ze=function(t,e,n){return e+(n?Je(t,e).length:1)},tn=function(t,e){var n=t.exec;if(\"function\"==typeof n){var r=n.call(t,e);if(\"object\"!=typeof r)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return r}if(\"RegExp\"!==s(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return Me.call(t,e)},en=[].push,nn=Math.min,rn=!o((function(){return!RegExp(4294967295,\"y\")}));Ge(\"split\",2,(function(t,e,n){var r;return r=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,n){var r=String(p(this)),o=void 0===n?4294967295:n>>>0;if(0===o)return[];if(void 0===t)return[r];if(!Xe(t))return e.call(r,t,o);for(var i,u,a,c=[],l=(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\"),f=0,s=new RegExp(t.source,l+\"g\");(i=Me.call(s,r))&&!((u=s.lastIndex)>f&&(c.push(r.slice(f,i.index)),i.length>1&&i.index=o));)s.lastIndex===i.index&&s.lastIndex++;return f===r.length?!a&&s.test(\"\")||c.push(\"\"):c.push(r.slice(f)),c.length>o?c.slice(0,o):c}:\"0\".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=p(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var i=n(r,t,this,o,r!==e);if(i.done)return i.value;var u=A(t),a=String(this),c=function(t,e){var n,r=A(t).constructor;return void 0===r||null==(n=A(r)[Ke])?e:Ve(n)}(u,RegExp),l=u.unicode,f=(u.ignoreCase?\"i\":\"\")+(u.multiline?\"m\":\"\")+(u.unicode?\"u\":\"\")+(rn?\"y\":\"g\"),s=new c(rn?u:\"^(?:\"+u.source+\")\",f),d=void 0===o?4294967295:o>>>0;if(0===d)return[];if(0===a.length)return null===tn(s,a)?[a]:[];for(var v=0,p=0,g=[];p1?arguments[1]:void 0,e.length)),r=String(t);return wn?wn.call(e,r,n):e.slice(n,n+r.length)===r}});var Rn=function(t){return t instanceof Date},In=function(t){return\"function\"==typeof t},jn=function(t){return\"string\"==typeof t},Cn=function(t){return\"symbol\"===kn(t)},Ln=function(t){return\"boolean\"==typeof t},Pn=function(t){return\"number\"==typeof t},Mn=function(t){return null!==t&&\"object\"===kn(t)},_n=Object.prototype.toString,Dn=function(t){return _n.call(t)},Un=Object.prototype.hasOwnProperty,Nn=function(t,e){return Un.call(t,e)},Fn=Array.isArray,Wn=function(t){return\"[object Map]\"===Dn(t)},zn=function(t){return\"[object Set]\"===Dn(t)},$n=function(t){return Dn(t).slice(8,-1)},Bn=function(t){return $n(t).startsWith(\"HTML\")},Yn=function(t){return Mn(t)&&In(t.then)&&In(t.catch)},Gn=function(t){return null===t},Hn=function(t){return void 0===t},Xn=function(t){return!t&&0!==t&&\"\"!==t||Fn(t)&&!t.length||Mn(t)&&!Object.keys(t).length},Vn=function(){function t(){Wt(this,t)}return $t(t,null,[{key:\"isWindow\",value:function(t){return t===window}},{key:\"addEventListener\",value:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t&&e&&n&&t.addEventListener(e,n,r)}},{key:\"removeEventListener\",value:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t&&e&&n&&t.removeEventListener(e,n,r)}},{key:\"triggerDragEvent\",value:function(e,n){var r=!1,o=function(t){var e;null===(e=n.drag)||void 0===e||e.call(n,t)},i=function e(i){var u;t.removeEventListener(document,\"mousemove\",o),t.removeEventListener(document,\"mouseup\",e),document.onselectstart=null,document.ondragstart=null,r=!1,null===(u=n.end)||void 0===u||u.call(n,i)};t.addEventListener(e,\"mousedown\",(function(e){var u;r||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},t.addEventListener(document,\"mousemove\",o),t.addEventListener(document,\"mouseup\",i),r=!0,null===(u=n.start)||void 0===u||u.call(n,e))}))}},{key:\"getBoundingClientRect\",value:function(t){return t&&Mn(t)&&1===t.nodeType?t.getBoundingClientRect():null}},{key:\"hasClass\",value:function(t,e){return!!(t&&Mn(t)&&jn(e)&&1===t.nodeType)&&t.classList.contains(e.trim())}},{key:\"addClass\",value:function(e,n){if(e&&Mn(e)&&jn(n)&&1===e.nodeType&&(n=n.trim(),!t.hasClass(e,n))){var r=e.className;e.className=r?r+\" \"+n:n}}},{key:\"removeClass\",value:function(t,e){if(t&&Mn(t)&&jn(e)&&1===t.nodeType&&\"string\"==typeof t.className){e=e.trim();for(var n=t.className.trim().split(\" \"),r=n.length-1;r>=0;r--)n[r]=n[r].trim(),n[r]&&n[r]!==e||n.splice(r,1);t.className=n.join(\" \")}}},{key:\"toggleClass\",value:function(t,e,n){t&&Mn(t)&&jn(e)&&1===t.nodeType&&t.classList.toggle(e,n)}},{key:\"replaceClass\",value:function(e,n,r){e&&Mn(e)&&jn(n)&&jn(r)&&1===e.nodeType&&(n=n.trim(),r=r.trim(),t.removeClass(e,n),t.addClass(e,r))}},{key:\"getScrollTop\",value:function(t){var e=\"scrollTop\"in t?t.scrollTop:t.pageYOffset;return Math.max(e,0)}},{key:\"setScrollTop\",value:function(t,e){\"scrollTop\"in t?t.scrollTop=e:t.scrollTo(t.scrollX,e)}},{key:\"getRootScrollTop\",value:function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},{key:\"setRootScrollTop\",value:function(e){t.setScrollTop(window,e),t.setScrollTop(document.body,e)}},{key:\"getElementTop\",value:function(e,n){if(t.isWindow(e))return 0;var r=n?t.getScrollTop(n):t.getRootScrollTop();return e.getBoundingClientRect().top+r}},{key:\"getVisibleHeight\",value:function(e){return t.isWindow(e)?e.innerHeight:e.getBoundingClientRect().height}},{key:\"isHidden\",value:function(t){if(!t)return!1;var e=window.getComputedStyle(t),n=\"none\"===e.display,r=null===t.offsetParent&&\"fixed\"!==e.position;return n||r}},{key:\"triggerEvent\",value:function(t,e){if(\"createEvent\"in document){var n=document.createEvent(\"HTMLEvents\");n.initEvent(e,!1,!0),t.dispatchEvent(n)}}},{key:\"calcAngle\",value:function(t,e){var n=t.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2,i=Math.abs(r-e.clientX),u=Math.abs(o-e.clientY),a=u/Math.sqrt(Math.pow(i,2)+Math.pow(u,2)),c=Math.acos(a),l=Math.floor(180/(Math.PI/c));return e.clientX>r&&e.clientY>o&&(l=180-l),e.clientX==r&&e.clientY>o&&(l=180),e.clientX>r&&e.clientY==o&&(l=90),e.clientXo&&(l=180+l),e.clientX1?n-1:0),o=1;o]*>)/g,Jn=/\\$([$&'`]|\\d\\d?)/g,Zn=function(t,e,n,r,o,i){var u=n+t.length,a=r.length,c=Jn;return void 0!==o&&(o=Kt(o),c=Qn),qn.call(i,c,(function(i,c){var l;switch(c.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return e.slice(0,n);case\"'\":return e.slice(u);case\"<\":l=o[c.slice(1,-1)];break;default:var f=+c;if(0===f)return i;if(f>a){var s=Kn(f/10);return 0===s?i:s<=a?void 0===r[s-1]?c.charAt(1):r[s-1]+c.charAt(1):i}l=r[f-1]}return void 0===l?\"\":l}))},tr=Math.max,er=Math.min;Ge(\"replace\",2,(function(t,e,n,r){var o=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=r.REPLACE_KEEPS_$0,u=o?\"$\":\"$0\";return[function(n,r){var o=p(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,r){if(!o&&i||\"string\"==typeof r&&-1===r.indexOf(u)){var a=n(e,t,this,r);if(a.done)return a.value}var c=A(t),l=String(this),f=\"function\"==typeof r;f||(r=String(r));var s=c.global;if(s){var d=c.unicode;c.lastIndex=0}for(var v=[];;){var p=tn(c,l);if(null===p)break;if(v.push(p),!s)break;\"\"===String(p[0])&&(c.lastIndex=Ze(l,at(c.lastIndex),d))}for(var g,h=\"\",y=0,m=0;m=y&&(h+=l.slice(y,x)+T,y=x+S.length)}return h+l.slice(y)}]}));var nr=function(){function t(){Wt(this,t)}return $t(t,null,[{key:\"camelize\",value:function(t){return t.replace(/-(\\w)/g,(function(t,e){return e?e.toUpperCase():\"\"}))}},{key:\"capitalize\",value:function(t){return t.charAt(0).toUpperCase()+t.slice(1)}}]),t}(),rr=function(){function t(){Wt(this,t)}return $t(t,null,[{key:\"_clone\",value:function(){}}]),t}(),or=ne(\"isConcatSpreadable\"),ir=fe>=51||!o((function(){var t=[];return t[or]=!1,t.concat()[0]!==t})),ur=de(\"concat\"),ar=function(t){if(!h(t))return!1;var e=t[or];return void 0!==e?!!e:qt(t)};It({target:\"Array\",proto:!0,forced:!ir||!ur},{concat:function(t){var e,n,r,o,i,u=Kt(this),a=oe(u,0),c=0;for(e=-1,r=arguments.length;e9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(n=0;n=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");ie(a,c++,i)}return a.length=c,a}});var cr,lr=function(t,e,n){if(Ve(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}},fr=[].push,sr=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,u=7==t,a=5==t||i;return function(c,l,f,s){for(var d,p,g=Kt(c),h=v(g),y=lr(l,f,3),m=at(h.length),S=0,x=s||oe,b=e?x(c,m):n||u?x(c,0):void 0;m>S;S++)if((a||S in h)&&(p=y(d=h[S],S,g),t))if(e)b[S]=p;else if(p)switch(t){case 3:return!0;case 5:return d;case 6:return S;case 2:fr.call(b,d)}else switch(t){case 4:return!1;case 7:fr.call(b,d)}return i?-1:r||o?o:b}},dr={forEach:sr(0),map:sr(1),filter:sr(2),some:sr(3),every:sr(4),find:sr(5),findIndex:sr(6),filterOut:sr(7)},vr=i?Object.defineProperties:function(t,e){A(t);for(var n,r=yn(e),o=r.length,i=0;o>i;)R.f(t,n=r[i++],e[n]);return t},pr=nt(\"document\",\"documentElement\"),gr=Y(\"IE_PROTO\"),hr=function(){},yr=function(t){return\"\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","\n\n","/*!\n * jQuery JavaScript Library v3.6.4\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-03-08T15:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.10\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2023-02-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t// Make sure the the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `