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