7ee8817fbc846af73cefe9e542d0216f5da13b70fb5b0eb5af4ee1820420d680314696dbb2


<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Pure Fashion Master V15</title>

    <style>

        body { font-family: -apple-system, sans-serif; background: #f0f2f5; padding: 20px; color: #333; }

        .container { max-width: 500px; margin: 0 auto; background: white; padding: 20px; border-radius: 15px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

        h2 { text-align: center; color: #4a90e2; font-size: 1.2rem; }

        button { width: 100%; padding: 15px; background: #4a90e2; color: white; border: none; border-radius: 10px; font-size: 1rem; font-weight: bold; cursor: pointer; margin-bottom: 20px; }

        button:active { background: #357abd; }

        .result-item { background: #f9f9f9; padding: 15px; border-radius: 8px; border: 1px solid #ddd; margin-bottom: 10px; font-size: 0.85rem; line-height: 1.4; word-break: break-all; relative; }

        .copy-btn { absolute; right: 5px; top: 5px; font-size: 0.7rem; padding: 3px 8px; background: #eee; border-radius: 5px; border: 1px solid #ccc; }

    </style>

</head>

<body>


<div class="container">

    <h2>+ 퓨어 패션 생성기 (v15)</h2>

    <button onclick="generatePrompts()">프롬프트 10개 생성</button>

    <div id="results"></div>

</div>


<script>

const 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"];

const 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"];

const 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", "nervous smile, light blush"],

    "dark": ["evil smile, >:D, glaring", "crazy smile, staring, glowing eyes", "slit pupils, constricted pupils", "expressionless, cold stare"]

};

const fits = ["tight", "oversized", "loose", "baggy", "compression", "form-fitting", "slim-fit", "too small", "stretched", "vacuum seal", "bodycon", "relaxed fit", "clinging", "wet clinging"];

const lib = {

    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"],

    skirts: ["mini skirt", "micro skirt", "pleated skirt", "pencil skirt", "denim skirt", "layered skirt", "ruffled skirt", "slit skirt", "leather skirt"],

    swim: ["bikini", "monokini", "tankini", "sling swimsuit", "highleg swimsuit", "competition swimsuit", "school swimsuit", "micro bikini"]

};

const 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"}

];

const 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"];

const locs = ["urban city", "cafe", "park", "rooftop", "alleyway", "indoor", "beach", "forest", "bedroom", "classroom", "library", "garden"];


function generatePrompts() {

    const resultsDiv = document.getElementById('results');

    resultsDiv.innerHTML = '';

    

    for (let i = 1; i <= 10; i++) {

        let tags = [angles[Math.floor(Math.random() * angles.length)]];

        let isWarm = Math.random() < 0.65;

        let c = [0,1,2].map(() => colors[Math.floor(Math.random() * colors.length)]);

        let mood = "bright", bg = locs[Math.floor(Math.random() * locs.length)], shoe = "sneakers", outfit = [];


        // 비율 설정

        let randCat = Math.random();

        let cat = "daily";

        if (randCat < 0.05) cat = "eyewear";

        else if (randCat < 0.15) cat = "acc";

        else if (randCat < 0.25) cat = "hat";

        else if (randCat < 0.35) cat = "trad";

        else if (randCat < 0.45) cat = "costume";

        else if (randCat < 0.55) cat = "swim";


        let fit = Math.random() > 0.4 ? fits[Math.floor(Math.random() * fits.length)] : "";


        if (cat === "daily" || cat === "eyewear" || cat === "acc" || cat === "hat") {

            if (isWarm) {

                outfit = [`${c[0]} ${fit} ${lib.ss_tops[Math.floor(Math.random() * lib.ss_tops.length)]}`, `${c[1]} high-waist ${lib.ss_bottoms[Math.floor(Math.random() * lib.ss_bottoms.length)]}`];

                if (Math.random() > 0.8) outfit.push(`${c[2]} open ${lib.ss_outer[Math.floor(Math.random() * lib.ss_outer.length)]}`);

                shoe = ["sandals", "flats", "sneakers"][Math.floor(Math.random() * 3)];

            } else {

                let inner = lib.aw_tops[Math.floor(Math.random() * lib.aw_tops.length)];

                let outer = lib.aw_outer[Math.floor(Math.random() * lib.aw_outer.length)];

                outfit = [`${c[0]} ${inner}`, `${c[1]} ${lib.aw_bottoms[Math.floor(Math.random() * lib.aw_bottoms.length)]}`, `${c[2]} ${outer}`];

                if (Math.random() > 0.6) outfit.push(`${inner} under ${outer}`);

                shoe = ["boots", "loafers", "pumps"][Math.floor(Math.random() * 3)];

            }

            mood = ["bright", "sexy", "shy"][Math.floor(Math.random() * 3)];

        } else if (cat === "trad") {

            let item = traditional[Math.floor(Math.random() * traditional.length)];

            outfit = [`${c[0]} ${item.top}`, `${c[1]} ${item.bottom}`];

            shoe = item.shoe; mood = item.mood;

        } else if (cat === "swim") {

            outfit = [`${c[0]} ${fit} ${lib.swim[Math.floor(Math.random() * lib.swim.length)]}`, ["highleg", "lowleg", "extreme highleg"][Math.floor(Math.random() * 3)]];

            shoe = "barefoot"; mood = "sexy"; bg = "beach";

        } else { // costume

            outfit = [`${c[0]} maid dress`, `white apron` pioneer]; shoe = "mary janes"; mood = "bright";

        }


        tags = tags.concat(outfit);

        if (cat === "eyewear") { tags.push("glasses"); if(Math.random()>0.7) tags.push("adjusting eyewear"); }

        if (cat === "hat") { tags.push("hat"); if(Math.random()>0.7) tags.push("holding hat"); }

        if (outfit.some(o => o.includes("skirt")) && Math.random() > 0.8) tags.push("skirt tug");


        tags.push(shoe, faces[mood][Math.floor(Math.random() * faces[mood].length)], bg, poses[Math.floor(Math.random() * poses.length)]);

        

        const finalStr = tags.filter(t => t).join(', ').replace(/ ,/g, ',');

        const itemDiv = document.createElement('div');

        itemDiv.className = 'result-item';

        itemDiv.innerHTML = `<button class="copy-btn" onclick="copyText(this)">Copy</button><b>[#${i}]</b> ${finalStr}`;

        resultsDiv.appendChild(itemDiv);

    }

}


function copyText(btn) {

    const text = btn.parentElement.innerText.replace('Copy', '').replace(/\[#\d+\] /, '').trim();

    navigator.clipboard.writeText(text);

    btn.innerText = 'Copied!';

    setTimeout(() => btn.innerText = 'Copy', 1000);

}

</script>


</body>

</html>





+ 모바일에서 사용하는 법 (가장 간편한 방법)
  1. 휴대폰 메모장에 위 코드를 전체 복사해서 붙여넣고 이름을 fashion.html로 저장합니다.

  2. 저장한 파일을 클릭해 **브라우저(삼성 인터넷, 크롬 등)**로 엽니다.

  3. 화면에 나타나는 [프롬프트 10개 생성] 버튼을 누릅니다.

  4. 나온 결과물 옆의 [Copy] 버튼을 누르면 즉시 복사되어 AI 앱에 붙여넣을 수 있습니다.


    모바일이라 10개씩 나오게 수정함.