Compare commits
No commits in common. 'dev' and 'master' have entirely different histories.
@ -1,10 +0,0 @@
|
||||
module.exports = {
|
||||
style: {
|
||||
postcss: {
|
||||
plugins: [
|
||||
require('tailwindcss'),
|
||||
require('autoprefixer'),
|
||||
],
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1,338 +0,0 @@
|
||||
import { Keyword } from "types";
|
||||
|
||||
/** 字典 */
|
||||
export const PROMPT_DICT: {
|
||||
[part: string]: Keyword[];
|
||||
} = {
|
||||
test: [
|
||||
{
|
||||
value: "黑长直",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: ["Flowing tresses", "Sleek and straight strands"],
|
||||
hairColor: "Glossy black hair",
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "伪娘",
|
||||
class: "n",
|
||||
prompts: {
|
||||
base: [
|
||||
"Feminine appearance",
|
||||
"Cute outfit",
|
||||
"Shimmering eyeshadow",
|
||||
"High heeled shoes",
|
||||
"Flawless skin",
|
||||
"Feminine accessories",
|
||||
"Graceful posture",
|
||||
"Sweet smile",
|
||||
"Playful demeanor",
|
||||
"Girly charm",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "兔女郎",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
"Bunny girl",
|
||||
"Rabbit ears",
|
||||
"Cute",
|
||||
"Playful",
|
||||
"Sexy",
|
||||
"Fluffy tail",
|
||||
"Carrots",
|
||||
"Easter",
|
||||
"Pink",
|
||||
"Thigh-high stockings",
|
||||
"Bow tie",
|
||||
"Curvy",
|
||||
"Innocent",
|
||||
"Sassy",
|
||||
"Furry",
|
||||
"Lustrous hair",
|
||||
"Playmate",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "傲娇",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
"Arrogant",
|
||||
"Cocky",
|
||||
"Self-important",
|
||||
"Self-centered",
|
||||
"Narcissistic",
|
||||
"Insolent",
|
||||
"Condescending",
|
||||
"Contemptuous",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "病娇",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
"Cutesy yet dangerous",
|
||||
"Obsessive behavior",
|
||||
"Innocent appearance with sinister undertones",
|
||||
"Unstable emotions and mood swings",
|
||||
"Lovesick and possessive",
|
||||
"Clingy and needy",
|
||||
"Outwardly sweet but inwardly devious",
|
||||
"Intense and volatile personality",
|
||||
"Can be manipulative and controlling",
|
||||
"Dark and troubled past",
|
||||
"Fragile and vulnerable",
|
||||
"Plays the victim card",
|
||||
"A mix of sweetness and insanity",
|
||||
"Hard to resist but dangerous to cross",
|
||||
"Demanding and high-maintenance",
|
||||
"Perpetually in a state of emotional turmoil",
|
||||
"Possesses a hidden dark side",
|
||||
"Resistant to change and easily offended",
|
||||
"Can be both alluring and terrifying at the same time",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "天然呆",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
"Adorkable",
|
||||
"Innocent",
|
||||
"Simple",
|
||||
"Naive",
|
||||
"Untainted",
|
||||
" Quirky ",
|
||||
" Unassuming ",
|
||||
" Unsophisticated ",
|
||||
" Endearing ",
|
||||
" Sweet ",
|
||||
" Charming ",
|
||||
" Innocuous ",
|
||||
" Childlike ",
|
||||
" Nurturing ",
|
||||
" Trusting ",
|
||||
" Genuine ",
|
||||
" Unpretentious ",
|
||||
" Candid ",
|
||||
" Artless ",
|
||||
" Pure",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "抖S",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
" Whips",
|
||||
" Dominatrix",
|
||||
" Leather",
|
||||
" Corsets",
|
||||
" Chains",
|
||||
" Risky behavior",
|
||||
" Control",
|
||||
" Submission",
|
||||
" Spanking",
|
||||
" Collars",
|
||||
" Bondage",
|
||||
" Black latex gloves",
|
||||
" Safe words",
|
||||
" Riding crop",
|
||||
" Discipline",
|
||||
" Pain",
|
||||
" Pleasure",
|
||||
" Body harness",
|
||||
" Role playing",
|
||||
" Power exchange",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "抖M",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
" Masochistic tendencies",
|
||||
" Whips and chains",
|
||||
" Submission",
|
||||
" Punishment",
|
||||
" Humiliation",
|
||||
" Sadomasochism",
|
||||
" Dominance",
|
||||
" Role play",
|
||||
" Bondage",
|
||||
" Leather gear",
|
||||
" Safeword",
|
||||
" Power exchange",
|
||||
" Consensual non-consent",
|
||||
" Degradation",
|
||||
" Foot worship",
|
||||
" Cuffs and restraints",
|
||||
" Impact play",
|
||||
" Verbal humiliation",
|
||||
" Chastity",
|
||||
" Teasing and denial",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "泳装",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
" Beachwear ",
|
||||
" Swimsuit ",
|
||||
" Beach hat ",
|
||||
" Sunglasses ",
|
||||
" Sunscreen ",
|
||||
" Bikini ",
|
||||
" Poolside ",
|
||||
" Water sports ",
|
||||
" Sun-kissed ",
|
||||
" Tanned skin ",
|
||||
" Sun hat ",
|
||||
" Beach bag ",
|
||||
" Flip-flops ",
|
||||
" Beach towel ",
|
||||
" Ocean waves ",
|
||||
" Board shorts ",
|
||||
" Surfer girl ",
|
||||
" Palm trees ",
|
||||
" Sea shells ",
|
||||
" Tropical paradise",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "银发",
|
||||
class: "adj",
|
||||
prompts: {
|
||||
base: [
|
||||
" Silver hair",
|
||||
" Elderly person",
|
||||
" Wise",
|
||||
" Sophisticated",
|
||||
" Grandparent",
|
||||
" Dignified",
|
||||
" Graceful",
|
||||
" Experienced",
|
||||
" Serene",
|
||||
" Timeless",
|
||||
" Refined",
|
||||
" Regal",
|
||||
" Elegant",
|
||||
" Respected",
|
||||
" Majestic",
|
||||
" Honorable",
|
||||
" Charismatic",
|
||||
" Cultured",
|
||||
" Prestigious",
|
||||
" Noble",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "女仆",
|
||||
class: "n",
|
||||
prompts: {
|
||||
base: [
|
||||
" Maid costume",
|
||||
" Serving tray",
|
||||
" Feather duster",
|
||||
" Bows and ribbons",
|
||||
" Clean and tidy",
|
||||
" Apron",
|
||||
" High heels",
|
||||
" Polite and respectful",
|
||||
" Uniform",
|
||||
" Updo hairstyle",
|
||||
" Mistress or master",
|
||||
" Tea set",
|
||||
" Pinafore dress",
|
||||
" Chores and tasks",
|
||||
" Maid headband",
|
||||
" Lace or frills",
|
||||
" Domestic service",
|
||||
" Well-groomed appearance",
|
||||
" Submissive demeanor",
|
||||
" Tidy and organized environment",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "美少女",
|
||||
class: "n",
|
||||
prompts: {
|
||||
base: [
|
||||
"Cute smile",
|
||||
"Flowing dress",
|
||||
"Rosy cheeks",
|
||||
"Pink lips",
|
||||
"Playful expression",
|
||||
"Innocent blush",
|
||||
"Elegant posture",
|
||||
"Enchanting gaze",
|
||||
"Delicate facial features",
|
||||
"Graceful body language",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "御姐",
|
||||
class: "n",
|
||||
prompts: {
|
||||
base: [
|
||||
"Elegant",
|
||||
"Confident",
|
||||
"Seductive",
|
||||
"Mysterious",
|
||||
"Powerful",
|
||||
"Regal",
|
||||
"Graceful",
|
||||
"Intimidating",
|
||||
"Alluring",
|
||||
"Sophisticated",
|
||||
"Enigmatic",
|
||||
"Enchanting",
|
||||
"Imposing",
|
||||
"Commanding",
|
||||
"Glamorous",
|
||||
"Queenly",
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
value: "萝莉",
|
||||
class: "n",
|
||||
prompts: {
|
||||
base: [
|
||||
"Innocent eyes",
|
||||
"Petite stature",
|
||||
"Blushing cheeks",
|
||||
"Adorable smile",
|
||||
"Cute bows",
|
||||
"Vibrant colors",
|
||||
"Playful expression",
|
||||
"Over-sized hat",
|
||||
"Flower headband",
|
||||
"Candy-colored outfit",
|
||||
"Plush toys",
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
/** 奖池 */
|
||||
export const getLotteryPool = () =>
|
||||
Object.values(PROMPT_DICT).reduce((pool, tokens) => {
|
||||
return [...pool, ...tokens];
|
||||
}, []);
|
||||
@ -1,93 +0,0 @@
|
||||
export const ACTION_BASE = {
|
||||
"坐": "sitting",
|
||||
"站": "stand",
|
||||
"蹲着": "squat",
|
||||
"趴": "grovel",
|
||||
"躺": "lie",
|
||||
"跳": "jump",
|
||||
"跑": "run",
|
||||
"走": "walk",
|
||||
"飞": "fly",
|
||||
"歪头": "head tilt",
|
||||
"回头": "looking back",
|
||||
"向下看": "looking down",
|
||||
"向上看": "looking up",
|
||||
"闻": "smelling",
|
||||
"睡觉": "sleeping",
|
||||
"洗澡": "bathing",
|
||||
}
|
||||
|
||||
export const ACTION_HAND = {
|
||||
"手放在嘴边": "hand_to_mouth",
|
||||
"手放头旁边": "arm at side ",
|
||||
"手放脑后": "arms behind head",
|
||||
"手放后面": "arms behind back ",
|
||||
"手放在自己的胸前": "hand on own chest",
|
||||
"手交叉于胸前": "arms_crossed",
|
||||
"手放臀": "hand on another\u0027s hip",
|
||||
"单手插腰": "hand_on_hip",
|
||||
"双手叉腰": "hands_on_hips",
|
||||
"举手": "hands up ",
|
||||
"伸懒腰": "stretch",
|
||||
"举手露腋": "armpits",
|
||||
"手把腿抓着": "leg hold",
|
||||
"抓住": "grabbing",
|
||||
"拿着": "holding",
|
||||
"用手指做出笑脸": "fingersmile",
|
||||
"拉头发": "hair_pull",
|
||||
"撮头发": "hair scrunchie",
|
||||
"手势": "w ",
|
||||
"耶": "peace symbol ",
|
||||
"翘大拇指": "thumbs_up",
|
||||
"比出中指": "middle_finger",
|
||||
"猫爪手势": "cat_pose",
|
||||
"手枪手势": "finger_gun",
|
||||
"嘘手势": "shushing",
|
||||
"招手": "waving",
|
||||
"敬礼": "salute",
|
||||
"张手": "spread_arms",
|
||||
}
|
||||
|
||||
export const ACTION_LEG = {
|
||||
"张开腿": "spread legs",
|
||||
"二郎腿": "crossed_legs",
|
||||
"曲腿至胸": "fetal_position",
|
||||
"抬一只脚": "leg_lift",
|
||||
"抬两只脚": "legs_up",
|
||||
"前倾": "leaning forward",
|
||||
"婴儿姿势": "fetal position",
|
||||
"靠墙": " against wall",
|
||||
"趴着": "on_stomach",
|
||||
"正坐": "seiza",
|
||||
"割坐": "wariza/w-sitting",
|
||||
"侧身坐": "yokozuwari",
|
||||
"盘腿": "indian_style",
|
||||
"抱腿": "leg_hug",
|
||||
"跨坐": "straddling",
|
||||
"下跪": "kneeling",
|
||||
"抽烟": "smoking",
|
||||
"用手支撑住": "arm_support",
|
||||
}
|
||||
|
||||
export const ACTION_COMPOSE = {
|
||||
"拥抱": "hug",
|
||||
"膝枕": "lap_pillow",
|
||||
|
||||
"公主抱": "princess_carry",
|
||||
"战斗姿态": "fighting_stance",
|
||||
"颠倒的": "upside-down",
|
||||
"趴着翘臀": "top-down_bottom-up",
|
||||
"翘臀姿势": "bent_over",
|
||||
"弓身体": "arched_back",
|
||||
"背对背": "back-to-back",
|
||||
"手对手": "symmetrical_hand_pose",
|
||||
"眼对眼(对视)": "eye_contact",
|
||||
"掏耳勺": "mimikaki",
|
||||
"牵手": "holding_hands",
|
||||
"四肢趴地": "all_fours",
|
||||
"女胸部贴在一起": "symmetrical_docking",
|
||||
"脱衣服": "undressing",
|
||||
"掀起裙子": "skirt lift",
|
||||
"掀起上衣": "shirt lift",
|
||||
"调整过膝袜": "adjusting_thighhigh"
|
||||
}
|
||||
@ -1,259 +0,0 @@
|
||||
export const BODY_BREASTS = {
|
||||
"小%3": "small breast",
|
||||
"中%1": "medium breast",
|
||||
"大%5": "big breast"
|
||||
};
|
||||
|
||||
export const BODY_CLOTHING = {
|
||||
"晚礼服%1": "evening dress",
|
||||
"短裙%3": "Skirt",
|
||||
"长裙%3": "Long skirt",
|
||||
"水手服%5": "sailor suit",
|
||||
"JK%5": "JK",
|
||||
"黑色丝袜": "black silk stocking",
|
||||
"白色丝袜": "white silk stocking",
|
||||
"西装%3": "suit",
|
||||
|
||||
|
||||
"湿衣服%5": "wet clothes",
|
||||
|
||||
"比基尼%5": "bikini",
|
||||
"领子%1": "sailor collar",
|
||||
"帽子%1": "hat",
|
||||
"衬衫%1": "shirt",
|
||||
"水手服 ": "shorts under skirt",
|
||||
"有领衬衣%1": "collared shirt ",
|
||||
"学校制服": "school uniform",
|
||||
"日本学生服": "seifuku",
|
||||
"职场制服%2": "business_suit",
|
||||
"夹克%2": "jacket",
|
||||
"火焰纹章军服%3": "garreg mach monastery uniform",
|
||||
"礼服长裙": "revealing dress",
|
||||
"礼服": "pink lucency full dress",
|
||||
"露出胸口部分的连衣裙%4": "cleavage dress",
|
||||
"无袖连衣裙": "sleeveless dress",
|
||||
"白色连衣裙": "whitedress",
|
||||
"婚纱%3": "wedding_dress",
|
||||
"水手连衣裙": "Sailor dress",
|
||||
"毛衣裙": "sweater dress",
|
||||
"罗纹毛衣": "ribbed sweater",
|
||||
"毛衣夹克": "sweater jacket",
|
||||
"工装服": "dungarees",
|
||||
"棕色开襟衫(外套)": "brown cardigan ",
|
||||
"连帽衫,卫衣%3": "hoodie ",
|
||||
"长袍%2": "robe",
|
||||
"斗篷%3": "cape",
|
||||
"羊毛衫%2": "cardigan",
|
||||
"围裙": "apron",
|
||||
"哥特风格%4": "gothic",
|
||||
"洛丽塔风格%4": "lolita_fashion",
|
||||
"哥特洛丽塔风格%4": "gothic_lolita",
|
||||
"西部风格": "western",
|
||||
"格子花纹": "tartan",
|
||||
"露单肩": "off_shoulder",
|
||||
"露双肩": "bare_shoulders",
|
||||
"赤脚": "barefoot",
|
||||
"裸足": "bare_legs",
|
||||
"横条花纹的": "striped",
|
||||
"点状花纹的": "polka_dot",
|
||||
"皱边的": "frills",
|
||||
"花边": "lace",
|
||||
"日本女生运动短裤": "buruma",
|
||||
"运动服": "gym_uniform",
|
||||
"女用背心": "tank_top",
|
||||
"裁剪短夹克": "cropped jacket ",
|
||||
"运动胸罩": "black sports bra ",
|
||||
"漏脐装": "crop top",
|
||||
"睡衣": "pajamas",
|
||||
"和服": "japanese_clothes",
|
||||
"衣带和服用": "obi",
|
||||
"网眼上衣": "mesh",
|
||||
"无袖上衣": "sleeveless shirt",
|
||||
"袖肩分离装": "detached_sleeves",
|
||||
"白色灯笼裤": "white bloomers",
|
||||
"高腰腿裤": "high - waist shorts",
|
||||
"百褶裙": "pleated_skirt",
|
||||
"裙子": "skirt",
|
||||
"迷你裙": "miniskirt",
|
||||
"热裤": "short shorts",
|
||||
"夏日长裙": "summer_dress",
|
||||
"灯笼裤": "bloomers",
|
||||
"短裤": "shorts",
|
||||
"自行车短裤": "bike_shorts",
|
||||
"海豚短裤": "dolphin shorts",
|
||||
"腰带": "belt",
|
||||
"吊索比基尼": "sling bikini",
|
||||
"比基尼乳罩": "bikini_top",
|
||||
"上身比基尼": " bikini top only ",
|
||||
"侧边系带比基尼下装": "side - tie bikini bottom",
|
||||
"系带式比基尼": "side-tie_bikini",
|
||||
"褶边比基尼": "friled bikini",
|
||||
"比基尼内衣": " bikini under clothes",
|
||||
"泳装": "swimsuit",
|
||||
"学校泳衣": "school swimsuit",
|
||||
"连体泳衣": "one-piece swimsuit",
|
||||
"竞技泳衣": "competition swimsuit",
|
||||
"死库水": "Sukumizu",
|
||||
"没胸罩": "no bra",
|
||||
"胸罩": "bra ",
|
||||
"褶边文胸": "frilled bra ",
|
||||
"情趣内衣": "sexy lingerie",
|
||||
"透明内衣": "transparent underwear",
|
||||
"缠胸布": "sarashi",
|
||||
"胸衣": "bustier",
|
||||
"吊带胸衣": "chemise",
|
||||
"内衣": "underwear",
|
||||
"内裤(前加颜色)": "panties",
|
||||
"条纹内裤": "striped_panties",
|
||||
"没内裤": "no_panties",
|
||||
"低腰式内裤": "lowleg_panties/low_leg_panties",
|
||||
"侧系带内裤": "side-tie_panties",
|
||||
"高腰内裤": "string_panties",
|
||||
"丁字裤": "thong",
|
||||
"日式丁字裤": "fundoshi",
|
||||
"女用贴身内衣裤": "lingerie"
|
||||
};
|
||||
|
||||
export const BODY_LEG_ORNAMENTS = [
|
||||
"bare legs",
|
||||
"garter straps",
|
||||
"garter belt",
|
||||
"socks",
|
||||
"kneehighs",
|
||||
"white kneehighs",
|
||||
"black kneehighs",
|
||||
"over-kneehighs",
|
||||
"single kneehigh",
|
||||
"tabi",
|
||||
"bobby socks",
|
||||
"loose socks",
|
||||
"single sock",
|
||||
"no socks",
|
||||
"socks removed",
|
||||
"ankle socks",
|
||||
"striped socks",
|
||||
"blue socks",
|
||||
"grey socks",
|
||||
"red socks",
|
||||
"frilled socks",
|
||||
"thighhighs",
|
||||
"black thighhighs",
|
||||
"white thighhighs",
|
||||
"striped thighhighs",
|
||||
"brown thighhighs",
|
||||
"blue thighhighs",
|
||||
"red thighhighs",
|
||||
"purple thighhighs",
|
||||
"pink thighhighs",
|
||||
"grey thighhighs",
|
||||
"thighhighs under boots",
|
||||
"green thighhighs",
|
||||
"yellow thighhighs",
|
||||
"orange thighhighs",
|
||||
"vertical-striped thighhighs",
|
||||
"frilled thighhighs",
|
||||
"fishnet thighhighs",
|
||||
"pantyhose",
|
||||
"black pantyhose",
|
||||
"white pantyhose",
|
||||
"thighband pantyhose",
|
||||
"brown pantyhose",
|
||||
"fishnet pantyhose",
|
||||
"striped pantyhose",
|
||||
"vertical-striped pantyhose",
|
||||
"grey pantyhose",
|
||||
"blue pantyhose",
|
||||
"single leg pantyhose",
|
||||
"purple pantyhose",
|
||||
"red pantyhose",
|
||||
"fishnet legwear",
|
||||
"bandaged leg",
|
||||
"bandaid on leg",
|
||||
"mechanical legs",
|
||||
"leg belt",
|
||||
"leg tattoo",
|
||||
"bound legs",
|
||||
"leg lock",
|
||||
"panties under pantyhose",
|
||||
"panty",
|
||||
"thighhighs over pantyhose",
|
||||
"socks over thighhighs",
|
||||
"panties over pantyhose",
|
||||
"pantyhose under swimsuit",
|
||||
"black garter belt",
|
||||
"neck garter",
|
||||
"white garter straps",
|
||||
"black garter straps",
|
||||
"ankle garter",
|
||||
"no legwear",
|
||||
"black legwear",
|
||||
"white legwear",
|
||||
"torn legwear",
|
||||
"striped legwear",
|
||||
"asymmetrical legwear",
|
||||
"brown legwear",
|
||||
"uneven legwear",
|
||||
"toeless legwear",
|
||||
"print legwear",
|
||||
"lace-trimmed legwear",
|
||||
"red legwear",
|
||||
"mismatched legwear",
|
||||
"legwear under shorts",
|
||||
"purple legwear",
|
||||
"grey legwear",
|
||||
"blue legwear",
|
||||
"pink legwear",
|
||||
"argyle legwear",
|
||||
"ribbon-trimmed legwear",
|
||||
"american flag legwear",
|
||||
"green legwear",
|
||||
"vertical-striped legwear",
|
||||
"frilled legwear",
|
||||
"stirrup legwear",
|
||||
"alternate legwear",
|
||||
"seamed legwear",
|
||||
"yellow legwear",
|
||||
"multicolored legwear",
|
||||
"ribbed legwear",
|
||||
"fur-trimmed legwear",
|
||||
"see-through legwear",
|
||||
"legwear garter",
|
||||
"two-tone legwear",
|
||||
"latex legwear",
|
||||
];
|
||||
|
||||
export const BODY_SHOES = {
|
||||
"鞋子%1": "shoes ",
|
||||
"靴子%1": "boots",
|
||||
"乐福鞋%2": "loafers",
|
||||
"高跟鞋%2": "high heels",
|
||||
"系带靴%2": "cross-laced_footwear",
|
||||
"玛丽珍鞋%2": "mary_janes",
|
||||
"女式学生鞋": "uwabaki",
|
||||
"拖鞋%2": "slippers",
|
||||
"马靴": "knee_boots",
|
||||
"连裤袜%4": "pantyhose",
|
||||
"大腿连裤袜%4": "thighband pantyhose",
|
||||
"连腰吊带袜": "garter_belt",
|
||||
"吊带袜%5": "garter straps",
|
||||
"短袜%4": "socks",
|
||||
"横条袜": "striped_socks",
|
||||
"泡泡袜": "loose_socks",
|
||||
"裹腿": "legwear",
|
||||
"黑色紧身裤%5": "black leggings ",
|
||||
"裤袜%4": "leggings ",
|
||||
"网袜%5": "fishnets",
|
||||
"渔网袜%5": "fishnet_pantyhose",
|
||||
"长袜%3": "kneehighs",
|
||||
"丝袜%3": "stockings",
|
||||
"过膝袜%5": "thighhighs",
|
||||
"条纹过膝袜%4": "striped_thighhighs",
|
||||
"白色过膝袜%5": "white_thighhighs",
|
||||
"损坏了的过膝袜%5": "torn_thighhighs",
|
||||
"日式厚底短袜%5": "tabi",
|
||||
"蕾丝镶边紧身裤%7": "lace-trimmed legwear",
|
||||
"腿部花边环%4": "leg_garter",
|
||||
"腿部系带%4": "ankle_lace-up",
|
||||
"大腿系带%5": "thigh strap",
|
||||
"短裤下的紧身裤%4": "legwear under shorts"
|
||||
};
|
||||
@ -0,0 +1,37 @@
|
||||
import { PromptToken } from "types";
|
||||
|
||||
/** 字典 */
|
||||
export const PROMPT_DICT: {
|
||||
[part: string]: PromptToken[];
|
||||
} = {
|
||||
test: [
|
||||
{ value: "very long light blue hair" },
|
||||
{ value: "ahoge" },
|
||||
{ value: "bang to the side" },
|
||||
{ value: "long bang" },
|
||||
{ value: "long light blue hair" },
|
||||
{ value: "military style" },
|
||||
{ value: "full body" },
|
||||
{ value: "long white shirt" },
|
||||
{ value: "small waist" },
|
||||
{ value: "small breasts" },
|
||||
{ value: "dark blue jacket" },
|
||||
{ value: "small jacket" },
|
||||
{ value: "crop military jacket" },
|
||||
{ value: "golden aiguillette" },
|
||||
{ value: "small skirt" },
|
||||
{ value: "dark blue military skirt" },
|
||||
{ value: "black garters" },
|
||||
{ value: "white stockings" },
|
||||
{ value: "military boots" },
|
||||
{ value: "high heels" },
|
||||
{ value: "women boots" },
|
||||
{ value: "blue round boots" },
|
||||
],
|
||||
};
|
||||
|
||||
/** 奖池 */
|
||||
export const getLotteryPool = () =>
|
||||
Object.values(PROMPT_DICT).reduce((pool, tokens) => {
|
||||
return [...pool, ...tokens];
|
||||
}, []);
|
||||
@ -1,53 +0,0 @@
|
||||
export const ENVIRONMENT_TIME = [
|
||||
"day",
|
||||
"dusk",
|
||||
"night",
|
||||
"in spring",
|
||||
"in summer",
|
||||
"in autumn",
|
||||
"in winter",
|
||||
];
|
||||
|
||||
export const ENVIRONMENT_SKY = [
|
||||
"sun",
|
||||
"sunset",
|
||||
"moon",
|
||||
"full_moon",
|
||||
"stars",
|
||||
"cloudy",
|
||||
"rain",
|
||||
"in the rain",
|
||||
"rainy days",
|
||||
"snow",
|
||||
];
|
||||
|
||||
export const ENVIRONMENT_LOCATION = [
|
||||
"sky",
|
||||
"sea",
|
||||
"mountain",
|
||||
"on a hill",
|
||||
"the top of the hill",
|
||||
"in a meadow",
|
||||
"plateau",
|
||||
"on a desert",
|
||||
"in hawaii",
|
||||
"cityscape",
|
||||
"landscape",
|
||||
"beautiful detailed sky",
|
||||
"beautiful detailed water",
|
||||
"on the beach",
|
||||
"on the ocean",
|
||||
"over the sea",
|
||||
"beautiful purple sunset at beach",
|
||||
"in the ocean",
|
||||
"against backlight at dusk",
|
||||
"golden hour lighting",
|
||||
"strong rim light",
|
||||
"intense shadows",
|
||||
"fireworks",
|
||||
"flower field",
|
||||
"underwater",
|
||||
"explosion",
|
||||
"in the cyberpunk city",
|
||||
"steam",
|
||||
];
|
||||
@ -1,54 +0,0 @@
|
||||
export const EYE_COLOR = [
|
||||
"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",
|
||||
];
|
||||
|
||||
export const EYE_STYLE = [
|
||||
"eyeshadow",
|
||||
"red eyeshadow",
|
||||
"blue eyeshadow",
|
||||
"purple eyeshadow",
|
||||
"pink eyeshadow",
|
||||
"green eyeshadow",
|
||||
"bags under eyes",
|
||||
"ringed eyes",
|
||||
"covered eyes",
|
||||
"covering eyes",
|
||||
"shading eyes",
|
||||
];
|
||||
|
||||
export const EYE_STATUS = [
|
||||
"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",
|
||||
"blank eyes",
|
||||
"no eyes",
|
||||
"sparkling eyes",
|
||||
"extra eyes",
|
||||
"crazy eyes",
|
||||
"solid circle eyes",
|
||||
"solid oval eyes",
|
||||
"uneven eyes",
|
||||
"blood from eyes",
|
||||
];
|
||||
@ -1,90 +0,0 @@
|
||||
export const FACIAL_FEATURE = {
|
||||
"食物在脸上(食物可替换)": "food on face",
|
||||
"淡淡腮红%R": "light blush",
|
||||
"面纹%N": "facepaint",
|
||||
"浓妆%R": "makeup ",
|
||||
"可爱表情%N": "cute face",
|
||||
"白色睫毛%SR": "white colored eyelashes",
|
||||
"长睫毛%R": "longeyelashes",
|
||||
"白色眉毛%R": "white eyebrows",
|
||||
"吊眼角": "tsurime",
|
||||
"渐变眼": "gradient_eyes",
|
||||
"垂眼角": "tareme",
|
||||
"猫眼%SR": "slit pupils ",
|
||||
"异色瞳%SSR": "heterochromia ",
|
||||
"红蓝眼%SSR": "heterochromia blue red",
|
||||
"水汪汪大眼%SR": "aqua eyes",
|
||||
"看你": "looking at viewer",
|
||||
"盯着看": "eyeball",
|
||||
"凝视": "stare",
|
||||
"透过刘海看": "visible through hair",
|
||||
"看旁边": "looking to the side ",
|
||||
"收缩的瞳孔": "constricted pupils",
|
||||
"符号形状的瞳孔%SSR": "symbol-shaped pupils ",
|
||||
"❤%SSR": "heart in eye",
|
||||
"爱心瞳孔%SSR": "heart-shaped pupils",
|
||||
"眨眼%SR": "wink ",
|
||||
"眼下痣%R": "mole under eye",
|
||||
"闭眼%N": "eyes closed",
|
||||
"没鼻子": "no_nose",
|
||||
"动物耳朵%SR": "animal_ears",
|
||||
"动物耳绒毛%SR": "animal ear fluff ",
|
||||
"狐狸耳朵%SR": "fox_ears",
|
||||
"兔子耳朵%SR": "bunny_ears",
|
||||
"猫耳%SR": "cat_ears",
|
||||
"狗耳%SR": "dog_ears",
|
||||
"叔耳": "mouse_ears",
|
||||
"头发上耳朵": "hair ear",
|
||||
"尖耳": "pointy ears"
|
||||
};
|
||||
|
||||
export const FACIAL_EXPRESSION = {
|
||||
"微笑%1": "smirk",
|
||||
"诱惑笑%5": "seductive smile",
|
||||
"露齿而笑%2": "grin",
|
||||
"笑": "laughing",
|
||||
"牙": "teeth ",
|
||||
"兴奋%3": "excited",
|
||||
"害羞%3": "nose blush ",
|
||||
"脸红%4": "blush",
|
||||
"无表情%4": "expressionless",
|
||||
"失神%1": "expressionless eyes",
|
||||
"困%2": "sleepy",
|
||||
"喝醉的%4": "drunk",
|
||||
"哭%3": "crying with eyes open",
|
||||
"悲伤的": "sad",
|
||||
"别扭努嘴%4": "pout",
|
||||
"叹气": "sigh",
|
||||
"睁大眼睛%3": "wide eyed",
|
||||
"生气%2": "angry",
|
||||
"苦恼的%1": "annoyed",
|
||||
"皱眉": "frown",
|
||||
"严肃": "serious",
|
||||
"鄙夷": "jitome",
|
||||
"锐利": "scowl",
|
||||
"疯狂的": "crazy",
|
||||
"黑化的%5": "dark_persona",
|
||||
"得意": "smug",
|
||||
|
||||
"一只眼睛闭上%4": "one eye closed",
|
||||
"半闭眼睛%3": "half-closed eyes",
|
||||
"鼻血": "nosebleed",
|
||||
"做鬼脸%4": "eyelid pull ",
|
||||
"舌头": "tongue",
|
||||
"吐舌%4": "tongue out",
|
||||
"闭嘴": "closed mouth",
|
||||
"张嘴": "open mouth",
|
||||
"口红": "lipstick",
|
||||
"尖牙": "fangs",
|
||||
"咬紧牙关": "clenched teeth",
|
||||
"ω猫嘴%4": ":3",
|
||||
"向下吐舌头%3": ":p",
|
||||
"向上吐舌头%3": ":q",
|
||||
"不耐烦%2": ":t",
|
||||
"杯型笑脸": ":d",
|
||||
"下流的表情": "naughty_face",
|
||||
"忍耐的表情": "endured_face",
|
||||
"阿黑颜": "ahegao",
|
||||
"血在脸上": "blood on face",
|
||||
"唾液": "saliva"
|
||||
};
|
||||
@ -1,209 +0,0 @@
|
||||
// 如需要更新词条,请访问 https://tools.miku.ac/novelai_tag/,并修改以下代码获取词条
|
||||
// const labels = [];document.querySelectorAll("#pane-头发\\&发饰 > div:nth-child(1) > div.el-checkbox-group > label > span.el-checkbox__label").forEach(label=>labels.push(label.outerHTML.match(/\n(\s|\d|[a-zA-Z]|:|-|_)+/)[0].replace(/(\n|\s)+/,"").replace(/\s$/,"")));labels;
|
||||
|
||||
/** 通用特征 */
|
||||
export const GENERAL_PROMPTS = {};
|
||||
|
||||
export const STYLE = {
|
||||
"原画": "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",
|
||||
"封面": "covr",
|
||||
"专辑": "album",
|
||||
"图上有字样": "sample",
|
||||
"背影像": "back",
|
||||
"半身像": "bust",
|
||||
"侧面绘": "profile",
|
||||
"表情绘(各种表情)": "expressions",
|
||||
"一部作品中的主要人物集齐": "everyone",
|
||||
"一列列小图组成大图": "column_lineup",
|
||||
"透明的背景": "transparent_background",
|
||||
"简单的背景无背景": "simple_background",
|
||||
"渐变的背景": "gradient_background",
|
||||
"背景是前景的放大版": "zoom_layer"
|
||||
};
|
||||
|
||||
export const CHARACTER = [
|
||||
"1girl",
|
||||
"2girls",
|
||||
"3girls",
|
||||
"1boy",
|
||||
"2boys",
|
||||
"3boys",
|
||||
"solo",
|
||||
"multiple girls",
|
||||
"little girl",
|
||||
"little boy",
|
||||
"shota",
|
||||
"loli",
|
||||
"kawaii",
|
||||
"mesugaki",
|
||||
"adorable girl",
|
||||
"bishoujo",
|
||||
"gyaru",
|
||||
"sisters",
|
||||
"ojousama",
|
||||
"mature female",
|
||||
"mature",
|
||||
"female pervert",
|
||||
"milf",
|
||||
"harem",
|
||||
];
|
||||
|
||||
export const ROLE = {
|
||||
"女王%SR": "queen",
|
||||
"学生%N": "student",
|
||||
"医生%R": "doctor",
|
||||
"护士%SR": "nurse",
|
||||
"警察%R": "police",
|
||||
"士兵%R": "soldier",
|
||||
"骑士%SR": "knight",
|
||||
"女仆%SSR": "housemaid",
|
||||
"天使%SR": "angel",
|
||||
"啦啦队%SR": "cheerleader",
|
||||
"版人物": "chibi",
|
||||
"伪娘%R": "trap",
|
||||
"魔鬼%SR": "devil",
|
||||
"人偶%R": "doll",
|
||||
"妖精%SR": "elf",
|
||||
"小精灵%SR": "fairy",
|
||||
"女人%N": "female",
|
||||
"兽人%N": "furry",
|
||||
"半兽人%N": "orc",
|
||||
"女巨人%N": "giantess",
|
||||
"后宫": "harem",
|
||||
"偶像%R": "idol",
|
||||
"兽耳萝莉%SR": "kemonomimi_mode",
|
||||
|
||||
"魔法少女%SSR": "magical_girl",
|
||||
"男人": "male",
|
||||
"美人鱼%SR": "mermaid",
|
||||
"巫女%SR": "miko",
|
||||
"迷你女孩%R": "minigirl",
|
||||
"怪物": "monster",
|
||||
"魔幻少女": "multiple_girls",
|
||||
"忍者%SR": "ninja",
|
||||
"非人": "no_humans",
|
||||
"修女%SR": "nun",
|
||||
"空姐%SR": "stewardess",
|
||||
"吸血鬼%SR": "vampire",
|
||||
"女服务员%R": "waitress",
|
||||
"女巫%R": "witch",
|
||||
"搞基": "yaoi",
|
||||
"油库里": "yukkuri_shiteitte_ne",
|
||||
"百合": "yuri"
|
||||
};
|
||||
|
||||
export const ACTION = [
|
||||
"head tilt",
|
||||
"turning around",
|
||||
"looking back",
|
||||
"looking down",
|
||||
"looking up",
|
||||
"smelling",
|
||||
"hand_to_mouth",
|
||||
"arm at side",
|
||||
"arms behind head",
|
||||
"arms behind back",
|
||||
"hand on own chest",
|
||||
"arms_crossed",
|
||||
"hand on hip",
|
||||
"hand on another",
|
||||
"hand_on_hip",
|
||||
"hands_on_hips",
|
||||
"arms up",
|
||||
"hands up",
|
||||
"stretch",
|
||||
"armpits",
|
||||
"leg hold",
|
||||
"grabbing",
|
||||
"holding",
|
||||
"fingersmile",
|
||||
"hair_pull",
|
||||
"hair scrunchie",
|
||||
"w",
|
||||
"v",
|
||||
"peace symbol",
|
||||
"thumbs_up",
|
||||
"middle_finger",
|
||||
"cat_pose",
|
||||
"finger_gun",
|
||||
"shushing",
|
||||
"waving",
|
||||
"salute",
|
||||
"spread_arms",
|
||||
"spread legs",
|
||||
"crossed_legs",
|
||||
"fetal_position",
|
||||
"leg_lift",
|
||||
"legs_up",
|
||||
"leaning forward",
|
||||
"fetal position",
|
||||
"against wall",
|
||||
"on_stomach",
|
||||
"squatting",
|
||||
"lying",
|
||||
"sitting",
|
||||
"sitting on",
|
||||
"seiza",
|
||||
"wariza",
|
||||
"yokozuwari",
|
||||
"indian_style",
|
||||
"leg_hug",
|
||||
"walking",
|
||||
"running",
|
||||
"straddle",
|
||||
"straddling",
|
||||
"kneeling",
|
||||
"smoking",
|
||||
"arm_support",
|
||||
"caramelldansen niconiconi",
|
||||
"princess_carry",
|
||||
"fighting_stance",
|
||||
"upside-down",
|
||||
"top-down_bottom-up",
|
||||
"bent_over",
|
||||
"arched_back",
|
||||
"back-to-back",
|
||||
"symmetrical_hand_pose",
|
||||
"eye_contact",
|
||||
"hug",
|
||||
"lap_pillow",
|
||||
"sleeping",
|
||||
"bathing",
|
||||
"mimikaki",
|
||||
"holding_hands",
|
||||
];
|
||||
|
||||
export const R18TAG = [
|
||||
"surrounded, multiple others, exhibitionism, audience, background characters, crowd, public humiliation",
|
||||
"partially unbuttoned",
|
||||
"show foot",
|
||||
"pubic tattoo on underbelly",
|
||||
"spread pussy",
|
||||
"ass_visible_through_thighs",
|
||||
];
|
||||
@ -1,21 +0,0 @@
|
||||
import { BODY_BREASTS, BODY_CLOTHING, BODY_LEG_ORNAMENTS, BODY_SHOES } from "./body";
|
||||
import { FACIAL_EXPRESSION, FACIAL_FEATURE } from "./facial";
|
||||
import { ROLE, STYLE } from "./general";
|
||||
import { HAIR_COLOR, HAIR_STYLE } from "./hair";
|
||||
import { ORNAMENTS } from "./ornament";
|
||||
|
||||
/** 全局提示词清单 */
|
||||
export const GLOBAL_PROMPTS = {
|
||||
// 抽卡
|
||||
role: ROLE,
|
||||
facialFeature: FACIAL_FEATURE,
|
||||
ornaments: ORNAMENTS,
|
||||
|
||||
// 天赋点
|
||||
hairColor: HAIR_COLOR,
|
||||
hairStyle: HAIR_STYLE,
|
||||
facialExpression: FACIAL_EXPRESSION,
|
||||
bodyBreasts: BODY_BREASTS,
|
||||
bodyClothing: BODY_CLOTHING,
|
||||
bodyShoes: BODY_SHOES,
|
||||
}
|
||||
@ -1,172 +0,0 @@
|
||||
/** 头发长度 */
|
||||
export const HAIR_LENGTH = [
|
||||
"very short hair",
|
||||
"short hair",
|
||||
"medium hair",
|
||||
"long hair",
|
||||
"very long hair",
|
||||
"absurdly long hair",
|
||||
"hair over shoulder",
|
||||
"alternate hair length",
|
||||
];
|
||||
|
||||
/** 发色 */
|
||||
export const HAIR_COLOR = {
|
||||
"白发%1": "white hair",
|
||||
"金发%4": "blonde hair ",
|
||||
"银发%5": "silver hair",
|
||||
"灰发%2": "grey hair ",
|
||||
"紫发%2": "purple hair",
|
||||
"红发%3": "red hair",
|
||||
"黄发%3": "yellow hair",
|
||||
"绿发%5": "green hair",
|
||||
"蓝发%3": "blue hair",
|
||||
"黑发%4": "black hair",
|
||||
"棕发%2": "brown hair",
|
||||
};
|
||||
|
||||
/** 发型特征 */
|
||||
export const HAIR_STYLE = {
|
||||
"短发%1": "short hair",
|
||||
"卷发%2": "curly hair",
|
||||
"长发%4": "long hair",
|
||||
"马尾%3": "pony-tail",
|
||||
"双马尾%5": "bunches",
|
||||
"挑染": "streaked hair",
|
||||
"灰色渐变%3": "grey gradient hair",
|
||||
"亮棕": "light brown hair",
|
||||
"双色": "two-tone hair",
|
||||
"五颜六色": "multicolored hair",
|
||||
"高马尾": "high ponytail",
|
||||
"双马尾 ": "twintails",
|
||||
"马尾编发": "braided ponytail ",
|
||||
"马尾辫%2": "ponytail",
|
||||
"短马尾%2": "short_ponytail",
|
||||
"双辫子%1": "twin_braids",
|
||||
"短发 ": "short hair",
|
||||
"中发": "medium hair",
|
||||
"长发 ": "long hair",
|
||||
"超长发%5": "very long hair",
|
||||
"辫子刘海%2": "braided bangs",
|
||||
"侧扫刘海": "swept bangs",
|
||||
"眼间头发%3": "hair between eyes",
|
||||
"妹妹切%3": "bob cut",
|
||||
"公主切%4": "hime_cut",
|
||||
"交叉刘海%3": "crossed bangs",
|
||||
"刘海%3": "bangs",
|
||||
"齐刘海": "blunt bangs",
|
||||
"翼状头发": "hair wings",
|
||||
"长刘海": "long bangs",
|
||||
"蓬发": "disheveled hair",
|
||||
"波浪形头发": "wavy hair",
|
||||
"卷发 ": "curly_hair",
|
||||
"收拢": "hair in takes",
|
||||
|
||||
"粉色花": "hair pink flowers",
|
||||
"呆毛%4": "ahoge",
|
||||
"多根呆毛%4": "antenna hair",
|
||||
"侧马尾%2": "Side ponytail",
|
||||
"露额头": "forehead",
|
||||
"钻头卷公主卷": "drill hair",
|
||||
"包子头%2": "hair bun",
|
||||
"俩包子头%3": "double_bun",
|
||||
"凌乱发型%3": "messy_hair"
|
||||
};
|
||||
|
||||
/** 发辫 */
|
||||
export const HAIR_BRAID = [
|
||||
"braid",
|
||||
"twin braids",
|
||||
"single braid",
|
||||
"side braid",
|
||||
"long braid",
|
||||
"french braid",
|
||||
"crown braid",
|
||||
"braided bun",
|
||||
"ponytail",
|
||||
"braided ponytail",
|
||||
"high ponytail",
|
||||
"twintails",
|
||||
"short",
|
||||
"twin",
|
||||
"Side ponytail",
|
||||
];
|
||||
|
||||
/** 刘海 */
|
||||
export const HAIR_BANGS = [
|
||||
"bangs",
|
||||
"blunt bangs",
|
||||
"parted bangs",
|
||||
"swept bangs",
|
||||
"crossed bangs",
|
||||
"asymmetrical bangs",
|
||||
"braided bangs",
|
||||
"long bangs",
|
||||
"bangs pinned back",
|
||||
"diagonal bangs",
|
||||
"dyed bangs",
|
||||
"hair between eyes",
|
||||
"hair over one eye",
|
||||
"hair over eyes",
|
||||
"hair behind ear",
|
||||
"hair between breasts",
|
||||
"hair over breasts",
|
||||
"hair censor",
|
||||
];
|
||||
|
||||
/** 发饰 */
|
||||
export const HAIR_ORNAMENT = [
|
||||
"hair ornament",
|
||||
"hair bow",
|
||||
"hair ribbon",
|
||||
"hairband",
|
||||
"hair flower",
|
||||
"hair bun",
|
||||
"hair bobbles",
|
||||
"hairclip",
|
||||
"single hair bun",
|
||||
"x hair ornament x",
|
||||
"black hairband",
|
||||
"hair scrunchie",
|
||||
"hair rings",
|
||||
"tied hair",
|
||||
"hairpin",
|
||||
"white hairband",
|
||||
"hair tie",
|
||||
"frog hair ornament",
|
||||
"food",
|
||||
"tentacle hair",
|
||||
"star hair ornament",
|
||||
"hair bell",
|
||||
"heart hair ornament",
|
||||
"red hairband",
|
||||
"butterfly hair ornament",
|
||||
"hair stick",
|
||||
"snake hair ornament",
|
||||
"lolita hairband",
|
||||
"crescent hair ornament",
|
||||
"cone hair bun",
|
||||
"feather hair ornament",
|
||||
"blue hairband",
|
||||
"anchor hair ornament",
|
||||
"leaf hair ornament",
|
||||
"bunny hair ornament",
|
||||
"skull hair ornament",
|
||||
"yellow hairband",
|
||||
"pink hairband",
|
||||
"dark blue hair",
|
||||
"bow hairband",
|
||||
"cat hair ornament",
|
||||
"musical note hair ornament",
|
||||
"carrot hair ornament",
|
||||
"purple hairband",
|
||||
"hair tucking",
|
||||
"hair beads",
|
||||
"multiple hair bows",
|
||||
"hairpods",
|
||||
"bat hair ornament",
|
||||
"bone hair ornament",
|
||||
"orange hairband",
|
||||
"multi",
|
||||
"snowflake hair ornament",
|
||||
];
|
||||
@ -1,70 +0,0 @@
|
||||
export const ORNAMENTS = {
|
||||
"光环%R": "halo",
|
||||
"迷你礼帽": "mini_top_hat",
|
||||
"贝雷帽": "beret",
|
||||
"兜帽": "hood",
|
||||
"护士帽%SR": "nurse cap",
|
||||
"皇冠%R": "tiara",
|
||||
"鬼角": "oni horns",
|
||||
"恶魔角%SSR": "demon horns",
|
||||
"发带%SR": "hair_ribbon",
|
||||
"花丝带": "flower ribbon",
|
||||
"发卡%R": "hairband",
|
||||
"发夹%R": "hairclip",
|
||||
"发花": "hair_flower",
|
||||
"头饰": "hair_ornament",
|
||||
"蝴蝶结": "bowtie",
|
||||
"蝴蝶结发饰": "hair_bow",
|
||||
"女仆头饰%SSR": "maid_headdress",
|
||||
"服装饰品头部饰品": "bow",
|
||||
"发饰": "hair ornament",
|
||||
"心形%SR": "heart hair ornament",
|
||||
"创可贴": "bandaid",
|
||||
"锥形发髻": "cone hair bun",
|
||||
"双发髻": "double bun",
|
||||
"半无框的眼镜": "semi-rimless eyewear",
|
||||
"太阳镜%SR": "sunglasses",
|
||||
"风镜": "goggles",
|
||||
"眼罩独眼%SSR": "eyepatch",
|
||||
"黑色眼罩": "black blindfold",
|
||||
"耳机%N": "headphones",
|
||||
"面纱%R": "veil",
|
||||
"口罩%R": "mouth mask",
|
||||
"眼镜%R": "glasses",
|
||||
"耳环%N": "earrings",
|
||||
"首饰%N": "jewelry",
|
||||
"铃铛%SSR": "bell",
|
||||
"颈带%N": "ribbon_choker",
|
||||
"颈部饰品%N": "black choker ",
|
||||
"项链%R": "necklace",
|
||||
"耳机套脖子上%SR": "headphones around neck",
|
||||
"项圈%SSR": "collar",
|
||||
"水手领%SR": "sailor_collar",
|
||||
"领巾%N": "neckerchief",
|
||||
"领带%N": "necktie",
|
||||
"十字架%SR": "cross necklace",
|
||||
"吊坠%N": "pendant",
|
||||
"围巾%R": "scarf",
|
||||
"臂章%R": "armband",
|
||||
"臂环%N": "armlet",
|
||||
"臂带%N": "arm strap",
|
||||
"肘部手套%N": "elbow gloves ",
|
||||
"露指手套%N": "half gloves ",
|
||||
"手镯%R": "bracelet",
|
||||
"手套%R": "gloves",
|
||||
"五指手套%N": "fingerless gloves",
|
||||
"锁链%SSR": "chains",
|
||||
"手链%SSR": "shackles",
|
||||
"手铐%SSR": "handcuffs",
|
||||
"手表%R": "wristwatch",
|
||||
"腕带": "wristband",
|
||||
"腕饰": "wrist_cuffs",
|
||||
"拿着书%R": "holding book",
|
||||
"拿着剑%SR": "holding sword",
|
||||
"球拍%SR": "tennis racket",
|
||||
"手杖%SR": "cane",
|
||||
"双肩包": "backpack",
|
||||
"书包%N": "school bag ",
|
||||
"肩背书包": "satchel",
|
||||
"手机%N": "smartphone "
|
||||
};
|
||||
@ -1,18 +0,0 @@
|
||||
.arrow {
|
||||
position: relative; /* 确保箭头相对于其父元素进行定位 */
|
||||
animation-name: down-fade; /* 指定动画名称 */
|
||||
animation-duration: 3s; /* 动画持续时间(秒)*/
|
||||
animation-timing-function: ease-in-out; /* 指定动画变化速度 */
|
||||
animation-iteration-count: infinite; /* 让动画无限循环 */
|
||||
}
|
||||
|
||||
@keyframes down-fade {
|
||||
0% {
|
||||
opacity: 1; /* 开始时完全不透明 */
|
||||
transform: translateY(0); /* 初始位置 */
|
||||
}
|
||||
100% {
|
||||
opacity: 0.8; /* 最后完全消失 */
|
||||
transform: translateY(30px);/* 继续向下移动一段距离 */
|
||||
}
|
||||
}
|
||||
@ -1,118 +0,0 @@
|
||||
import { FigurePrompts } from "types";
|
||||
import { randomSelect, randomSelectNoRepeat } from "./random";
|
||||
import { CHARACTER, ROLE } from "prompts/general";
|
||||
import {
|
||||
ENVIRONMENT_LOCATION,
|
||||
ENVIRONMENT_SKY,
|
||||
ENVIRONMENT_TIME,
|
||||
} from "prompts/environment";
|
||||
import {
|
||||
HAIR_BANGS,
|
||||
HAIR_BRAID,
|
||||
HAIR_COLOR,
|
||||
HAIR_LENGTH,
|
||||
HAIR_ORNAMENT,
|
||||
HAIR_STYLE,
|
||||
} from "prompts/hair";
|
||||
import { EYE_COLOR, EYE_STATUS, EYE_STYLE } from "prompts/eye";
|
||||
import { FACIAL_EXPRESSION, FACIAL_FEATURE } from "prompts/facial";
|
||||
import {
|
||||
BODY_BREASTS,
|
||||
BODY_CLOTHING,
|
||||
BODY_LEG_ORNAMENTS,
|
||||
BODY_SHOES,
|
||||
} from "prompts/body";
|
||||
import { ORNAMENTS } from "prompts/ornament";
|
||||
|
||||
export const initPrompts = (p?: FigurePrompts): FigurePrompts => {
|
||||
const _p: FigurePrompts = {
|
||||
base: p?.base || [],
|
||||
style: p?.style || [],
|
||||
character: p?.character || '1 girl',
|
||||
role: p?.role,
|
||||
action: p?.action,
|
||||
environmentTime: p?.environmentTime || randomSelect(ENVIRONMENT_TIME),
|
||||
environmentSky: p?.environmentSky || randomSelect(ENVIRONMENT_SKY),
|
||||
environmentLocation:
|
||||
p?.environmentLocation || randomSelect(ENVIRONMENT_LOCATION),
|
||||
hairLength: p?.hairLength || randomSelect(HAIR_LENGTH),
|
||||
hairColor: p?.hairColor,
|
||||
hairStyle: p?.hairStyle,
|
||||
hairBraid: p?.hairBraid,
|
||||
hairBangs: p?.hairBangs,
|
||||
hairOrnament: p?.hairOrnament,
|
||||
eyeColor: p?.eyeColor || randomSelect(EYE_COLOR, 0.5),
|
||||
eyeStyle: p?.eyeStyle || randomSelect(EYE_STYLE, 0.5),
|
||||
eyeStatus: p?.eyeStatus || randomSelect(EYE_STATUS, 0.8),
|
||||
facialFeature: p?.facialFeature,
|
||||
facialExpression:
|
||||
p?.facialExpression,
|
||||
bodyBreasts: p?.bodyBreasts,
|
||||
bodyClothing: p?.bodyClothing,
|
||||
bodyLegOrnaments:
|
||||
p?.bodyLegOrnaments,
|
||||
bodyShoes: p?.bodyShoes,
|
||||
ornaments: p?.ornaments,
|
||||
};
|
||||
return _p;
|
||||
};
|
||||
|
||||
export const mergeArray = (
|
||||
arr1: any[] | undefined,
|
||||
arr2: any[] | undefined
|
||||
) => {
|
||||
const arr = [] as any[];
|
||||
if (Array.isArray(arr1)) {
|
||||
arr.push(...arr1);
|
||||
} else if (arr1) {
|
||||
arr.push(arr1);
|
||||
}
|
||||
if (Array.isArray(arr2)) {
|
||||
arr.push(...arr2);
|
||||
} else if (arr2) {
|
||||
arr.push(arr2);
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
export const mergePrompts = (
|
||||
p1: FigurePrompts,
|
||||
p2: FigurePrompts
|
||||
): FigurePrompts => {
|
||||
const _p: FigurePrompts = {
|
||||
base: mergeArray(p1.base, p2.base),
|
||||
style: mergeArray(p1.style, p2.style),
|
||||
character: p2.character || p1.character,
|
||||
role: mergeArray(p1.role, p2.role),
|
||||
action: p2.action || p1.action,
|
||||
environmentTime: p2.environmentTime || p1.environmentTime,
|
||||
environmentSky: p2.environmentSky || p1.environmentSky,
|
||||
environmentLocation: p2.environmentLocation || p1.environmentLocation,
|
||||
hairLength: p2.hairLength || p1.hairLength,
|
||||
hairColor: p2.hairColor || p1.hairColor,
|
||||
hairStyle: p2.hairStyle || p1.hairStyle,
|
||||
hairBraid: p2.hairBraid || p1.hairBraid,
|
||||
hairBangs: p2.hairBangs || p1.hairBangs,
|
||||
hairOrnament: p2.hairOrnament || p1.hairOrnament,
|
||||
eyeColor: p2.hairColor || p1.hairColor,
|
||||
eyeStyle: p2.eyeStyle || p1.eyeStyle,
|
||||
eyeStatus: p2.eyeStatus || p1.eyeStyle,
|
||||
facialFeature: p2.facialFeature || p1.facialFeature,
|
||||
facialExpression: p2.facialExpression || p1.facialExpression,
|
||||
bodyBreasts: p2.bodyBreasts || p1.bodyBreasts,
|
||||
bodyClothing: p2.bodyClothing || p1.bodyClothing,
|
||||
bodyLegOrnaments: p2.bodyLegOrnaments || p1.bodyLegOrnaments,
|
||||
bodyShoes: p2.bodyShoes || p1.bodyShoes,
|
||||
ornaments: mergeArray(p1.ornaments, p2.ornaments),
|
||||
};
|
||||
return _p;
|
||||
};
|
||||
|
||||
export const getPrompts = (p: FigurePrompts): string[] => {
|
||||
const prompts = [] as string[];
|
||||
Object.values(p).forEach((value) => {
|
||||
if (typeof value === "string") prompts.push(value);
|
||||
else if (Array.isArray(value)) prompts.push(...value);
|
||||
});
|
||||
return prompts;
|
||||
};
|
||||
@ -1,33 +0,0 @@
|
||||
export const randomSelectNoRepeat = (
|
||||
arr: string[] | any[],
|
||||
count: number,
|
||||
mapper?: (obj: any) => any
|
||||
) => {
|
||||
if(arr.length < count) return arr;
|
||||
const length = arr.length;
|
||||
let availableNum = 0;
|
||||
let lottery = {} as any;
|
||||
while (availableNum < count) {
|
||||
let code = Math.random() * length;
|
||||
if (code === length) code -= 1;
|
||||
code = Math.floor(code);
|
||||
if (lottery[code]) continue;
|
||||
lottery[code] = mapper
|
||||
? mapper(arr[code])
|
||||
: typeof arr[code] === "string"
|
||||
? arr[code]
|
||||
: {
|
||||
...arr[code],
|
||||
};
|
||||
availableNum++;
|
||||
}
|
||||
return Object.values(lottery) as any[];
|
||||
};
|
||||
|
||||
export const randomSelect = (arr: any[], noReturn = 0) => {
|
||||
if (Math.random() < noReturn) return undefined;
|
||||
const length = arr.length;
|
||||
let code = Math.random() * length;
|
||||
if (code === length) code -= 1;
|
||||
return arr[code];
|
||||
};
|
||||
@ -1,12 +0,0 @@
|
||||
module.exports = {
|
||||
purge: [],
|
||||
darkMode: false, // or 'media' or 'class'
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
purge: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html'],
|
||||
variants: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
Loading…
Reference in New Issue