import random
class SeasonalFashionMasterV20:
def __init__(self):
# 1. 구도 및 앵글
self.angles = ["front view", "side view", "back view", "profile", "three-quarter view", "from above", "from below", "high angle", "low angle", "wide angle", "perspective", "pov", "cowboy shot", "full body", "upper body"]
# 2. 클린 표정 및 이모지
self.faces = {
"bright": ["smile, :D, wide eyes", "grinning, XD, happy eyes", "beaming, :O, laughing", "cat smile, :3", "sparkling eyes, ^_^", "closed mouth, smile"],
"sexy": ["smirk, ;-), bedroom eyes", "seductive smile, parted lips", "smug, :3, winking", "naughty smile, tongue out, :P", "staring, heavy eyelids"],
"shy": ["embarrassed smile, >_<, blush", "shy smile, u_u, downcast eyes", "pouting, :I, puffy cheeks", "nervous smile, light blush"],
"dark": ["evil smile, >:D, glaring", "crazy smile, staring, glowing eyes", "slit pupils, constricted pupils", "expressionless, cold stare"]
}
# 3. 피트감 (skintight 제외)
self.fits = ["tight", "oversized", "loose", "baggy", "compression", "form-fitting", "slim-fit", "too small", "stretched", "vacuum seal", "bodycon", "relaxed fit", "clinging", "wet clinging"]
# 4. 계절별 의상 라이브러리
self.library = {
"ss_tops": ["crop top", "tank top", "camisole", "halterneck top", "tube top", "sleeveless shirt", "t-shirt", "short sleeved blouse", "polo shirt"],
"ss_bottoms": ["mini skirt", "micro skirt", "shorts", "dolphin shorts", "high-waist shorts", "pleated skirt", "denim skirt"],
"ss_outer": ["cardigan", "denim jacket", "shrug", "bolero", "track jacket"],
"aw_tops": ["sweater", "turtleneck sweater", "knit sweater", "hoodie", "sweatshirt", "long sleeved shirt", "flannel shirt"],
"aw_bottoms": ["pants", "trousers", "jeans", "leggings", "cargo pants", "long skirt", "pencil skirt", "leather skirt"],
"aw_outer": ["coat", "trench coat", "overcoat", "parka", "winter coat", "leather jacket", "bomber jacket", "down jacket", "duffle coat"]
}
self.dresses = ["dress", "sun1dress", "backless dress", "china dress", "wedding dress", "evening gown", "summer dress", "sweater dress", "lolita dress", "gothic dress", "apron dress"]
self.swimwear = ["bikini", "monokini", "tankini", "sling swimsuit", "highleg swimsuit", "competition swimsuit", "school swimsuit", "micro bikini"]
self.traditional = [
{"top": "kimono", "bottom": "hakama skirt", "shoe": "geta", "mood": "bright"},
{"top": "hanbok", "bottom": "chima, long skirt", "shoe": "kkotsin", "mood": "shy"},
{"top": "china dress", "bottom": "high slit", "shoe": "high heels", "mood": "sexy"},
{"top": "ao dai", "bottom": "silk trousers", "shoe": "flats", "mood": "bright"}
]
# 5. 소품 및 액세서리
self.hats = ["beret", "cap", "baseball cap", "beanie", "straw hat", "fedora", "crown", "tiara", "cowboy hat"]
self.accs = ["pearl necklace", "gold bracelet", "choker", "heart necklace", "wrist watch", "silver ring", "earrings", "hair ribbon", "gloves", "necktie", "bowtie", "scarf", "sash"]
self.eyes = ["glasses", "sunglasses", "rimless glasses", "under-rim glasses", "monocle"]
self.shoes = ["sneakers", "sandals", "high heels", "loafers", "mary janes", "geta", "boots", "pumps", "flats"]
self.legwear = ["socks", "knee highs", "thigh highs", "pantyhose", "tights", "fishnets", "leg warmers"]
self.colors = ["white", "black", "gray", "silver", "brown", "tan", "beige", "red", "maroon", "pink", "hot pink", "orange", "yellow", "golden", "green", "teal", "blue", "navy blue", "sky blue", "purple", "lavender"]
self.poses = ["standing, arms at sides", "standing, hands on hips", "sitting on chair, legs crossed", "sitting on floor, hugging legs", "leaning against wall", "leaning forward, hand on chin", "squatting", "kneeling, hands on lap", "lying on back", "three-quarter view", "back view, looking back"]
self.locations = ["urban city", "cafe", "park", "rooftop", "alleyway", "indoor", "beach", "forest", "bedroom", "classroom", "library", "garden", "train station"]
def generate(self, count=1):
results = []
# 기본 카테고리 비율
categories = ["eyewear"]*5 + ["acc"]*10 + ["hat"]*10 + ["traditional"]*10 + ["costume"]*10 + ["swimwear"]*10 + ["daily"]*45
for i in range(1, count + 1):
# 1. 계절 결정 (봄/여름 65%, 가을/겨울 35%)
is_warm_season = random.random() < 0.65
category = random.choice(categories)
c1, c2, c3 = random.sample(self.colors, 3)
fit = random.choice(self.fits) if random.random() > 0.4 else ""
tags = [random.choice(self.angles)]
mood, bg, shoe, current_outfit = "bright", random.choice(self.locations), "sneakers", []
# 2. 의상 생성 (시즌 및 레이어드 로직)
if category in ["eyewear", "acc", "hat", "daily"]:
if is_warm_season: # 봄/여름
top = random.choice(self.library["ss_tops"])
bottom = random.choice(self.library["ss_bottoms"])
current_outfit = [f"{c1} {fit} {top}", f"{c2} high-waist {bottom}"]
if random.random() > 0.8: # 얇은 겉옷 레이어드
outer = random.choice(self.library["ss_outer"])
current_outfit.append(f"{c3} open {outer}")
shoe = random.choice(["sandals", "flats", "sneakers"])
else: # 가을/겨울
inner = random.choice(self.library["aw_tops"])
outer = random.choice(self.library["aw_outer"])
bottom = random.choice(self.library["aw_bottoms"])
current_outfit = [f"{c1} {inner}", f"{c2} {bottom}", f"{c3} {outer}"]
if random.random() > 0.6: current_outfit.append(f"{inner} under {outer}")
shoe = random.choice(["boots", "loafers", "pumps"])
mood = random.choice(["bright", "sexy", "shy"])
elif category == "traditional":
item = random.choice(self.traditional)
current_outfit = [f"{c1} {item['top']}", f"{c2} {item['bottom']}"]
shoe, mood = item['shoe'], item['mood']
elif category == "swimwear": # 수영복은 기본적으로 여름 패션
sw = random.choice(self.swimwear)
leg_cut = random.choice(["highleg", "lowleg", "extreme highleg"])
current_outfit = [f"{c1} {fit} {sw}", leg_cut]
shoe, mood = "barefoot", "sexy"
else: # costumes (v18 logic 유지)
current_outfit = [f"{c1} maid dress", "white apron"]
shoe, mood = "mary janes", "bright"
tags.extend(current_outfit)
# 3. 논리적 소품 및 상호작용
if category == "eyewear":
tags.append(random.choice(self.eyes))
if random.random() > 0.7: tags.append("adjusting eyewear")
elif category == "hat":
tags.append(random.choice(self.hats))
if random.random() > 0.7: tags.append("holding hat")
elif category == "acc":
tags.append(random.choice(self.accs))
if any("skirt" in item for item in current_outfit) and random.random() > 0.8:
tags.append("skirt tug")
# 4. 마무리
if random.random() > 0.5: tags.append(random.choice(self.legwear))
tags.append(shoe)
tags.append(random.choice(self.faces[mood]))
tags.append(bg)
tags.append(random.choice(self.poses))
prompt = ", ".join([t for t in tags if t]).replace(" ", " ")
results.append(f"[{i}] {prompt}")
return results
# 실행
bot = SeasonalFashionMasterV20()
for line in bot.generate(50):
print(line)
파이선에서 복붙하면 바로됨
댓글 0