{"id":1269,"date":"2025-07-23T18:06:20","date_gmt":"2025-07-23T18:06:20","guid":{"rendered":"https:\/\/bawabatak.com\/ai-prompt\/?p=1269"},"modified":"2025-07-23T18:06:23","modified_gmt":"2025-07-23T18:06:23","slug":"ultra-realistic-nescafe-classic-jar-on-mossy-stone","status":"publish","type":"post","link":"https:\/\/bawabatak.com\/ai-prompt\/ultra-realistic-nescafe-classic-jar-on-mossy-stone\/","title":{"rendered":"Ultra-Realistic Nescaf\u00e9 Classic Jar on Mossy Stone"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1270 size-full\" src=\"https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/BTK-PROMPT-IMAGE-MAIN-Recovered.png?resize=1019%2C679&#038;ssl=1\" alt=\"\" width=\"1019\" height=\"679\" srcset=\"https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/BTK-PROMPT-IMAGE-MAIN-Recovered.png?w=1019&amp;ssl=1 1019w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/BTK-PROMPT-IMAGE-MAIN-Recovered.png?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/BTK-PROMPT-IMAGE-MAIN-Recovered.png?resize=768%2C512&amp;ssl=1 768w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/BTK-PROMPT-IMAGE-MAIN-Recovered.png?resize=150%2C100&amp;ssl=1 150w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n\n\n<div class=\"ai-prompt-container\" style=\"\n    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);\n    border-radius: 15px;\n    padding: 30px;\n    margin: 20px 0;\n    border: 1px solid #333;\n    box-shadow: 0 10px 30px rgba(0, 168, 255, 0.1);\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n    position: relative;\n\">\n    <div class=\"prompt-header\" style=\"\n        display: flex;\n        align-items: center;\n        margin-bottom: 20px;\n        border-bottom: 2px solid #00A8FF;\n        padding-bottom: 15px;\n    \">\n        <div class=\"prompt-icon\" style=\"\n            background: linear-gradient(45deg, #00A8FF, #0080CC);\n            width: 50px;\n            height: 50px;\n            border-radius: 12px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            margin-right: 15px;\n            box-shadow: 0 5px 15px rgba(0, 168, 255, 0.3);\n        \">\n            <span style=\"color: white; font-size: 24px; font-weight: bold;\">\u2728<\/span>\n        <\/div>\n        <div>\n            <h3 style=\"\n                color: #fff;\n                margin: 0;\n                font-size: 24px;\n                font-weight: 600;\n            \">Nescaf\u00e9 Classic in Forest<\/h3>\n            <p style=\"\n                color: #00A8FF;\n                margin: 5px 0 0 0;\n                font-size: 14px;\n                font-weight: 500;\n            \">AI Image Generation Prompt<\/p>\n        <\/div>\n    <\/div>\n\n    <div class=\"instructions-section\" style=\"\n        background: rgba(0, 168, 255, 0.05);\n        border-radius: 10px;\n        padding: 20px;\n        margin-bottom: 25px;\n        border-left: 4px solid #00A8FF;\n    \">\n        <h4 style=\"color: #00A8FF; margin: 0 0 15px 0; font-size: 18px; font-weight: 600;\">\ud83d\udccb How to Use:<\/h4>\n        <ol style=\"color: #e0e0e0; line-height: 1.6; margin: 0; padding-left: 20px;\">\n            <li style=\"margin-bottom: 8px;\">Open ChatGPT<\/li>\n            <li style=\"margin-bottom: 8px;\">Copy and paste the prompt below<\/li>\n        <\/ol>\n    <\/div>\n\n    <div class=\"prompt-content\" style=\"\n        background: rgba(0, 168, 255, 0.05);\n        border-left: 4px solid #00A8FF;\n        padding: 20px;\n        border-radius: 8px;\n        margin-bottom: 25px;\n    \">\n        <div class=\"prompt-text\" style=\"\n            color: #e0e0e0;\n            line-height: 1.6;\n            font-size: 16px;\n            white-space: pre-wrap;\n            word-wrap: break-word;\n        \" id=\"promptText\"><span class=\"editable-word\" data-key=\"image_orientation_style\">Vertical, ultra-realistic<\/span>. Place the <span class=\"editable-word\" data-key=\"product_description\">Nescaf\u00e9 Classic jar<\/span>. Set it on a <span class=\"editable-word\" data-key=\"surface_object\">mossy stone<\/span> in a <span class=\"editable-word\" data-key=\"environment\">lush green forest<\/span>. <span class=\"editable-word\" data-key=\"lighting_effect\">Sunrays cut through the trees behind, softly illuminating the jar<\/span>. <span class=\"editable-word\" data-key=\"scattered_elements\">A few coffee beans scattered naturally on the mossy surface<\/span>. <span class=\"editable-word\" data-key=\"label_enhancement\">Enhance the label text clearly, but keep everything else the same<\/span>.<\/div>\n    <\/div>\n\n    <div class=\"prompt-actions\" style=\"\n        display: flex;\n        gap: 15px;\n        align-items: center;\n        flex-wrap: wrap;\n        position: relative;\n    \">\n        <button onclick=\"copyPrompt()\" id=\"copyButton\" style=\"\n            background: linear-gradient(45deg, #00A8FF, #0080CC);\n            color: white;\n            border: none;\n            padding: 12px 25px;\n            border-radius: 25px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            box-shadow: 0 5px 15px rgba(0, 168, 255, 0.3);\n            display: flex;\n            align-items: center;\n            gap: 8px;\n            position: relative;\n            overflow: hidden;\n        \" onmouseover=\"this.style.transform='translateY(-2px)'; this.style.boxShadow='0 8px 25px rgba(0, 168, 255, 0.4)'\"\n            onmouseout=\"this.style.transform='translateY(0)'; this.style.boxShadow='0 5px 15px rgba(0, 168, 255, 0.3)'\">\n            <span id=\"copyIcon\">\ud83d\udccb<\/span>\n            <span id=\"copyText\">Copy Prompt<\/span>\n        <\/button>\n\n        <a href=\"https:\/\/chat.openai.com\/\" target=\"_blank\" style=\"\n            background: linear-gradient(45deg, #10A37F, #0D8A6B);\n            color: white;\n            text-decoration: none;\n            padding: 12px 25px;\n            border-radius: 25px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            box-shadow: 0 5px 15px rgba(16, 163, 127, 0.3);\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n        \" onmouseover=\"this.style.transform=&#039;translateY(-2px)&#039;; this.style.boxShadow=&#039;0 8px 25px rgba(16, 163, 127, 0.4)&#039;\" onmouseout=\"this.style.transform=&#039;translateY(0)&#039;; this.style.boxShadow=&#039;0 5px 15px rgba(16, 163, 127, 0.3)&#039;\" rel=\"noopener\">\n            <span>\ud83d\ude80<\/span>\n            Try in ChatGPT\n        <\/a>\n\n        <button onclick=\"toggleCustomizer()\" id=\"customizeButton\" style=\"\n            background: rgba(255, 193, 7, 0.1);\n            color: #FFC107;\n            border: 2px solid #FFC107;\n            padding: 10px 20px;\n            border-radius: 25px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            display: flex;\n            align-items: center;\n            gap: 8px;\n        \" onmouseover=\"this.style.background='rgba(255, 193, 7, 0.2)'\"\n            onmouseout=\"this.style.background='rgba(255, 193, 7, 0.1)'\">\n            <span>\u2699\ufe0f<\/span>\n            <span id=\"customizeText\">Customize<\/span>\n        <\/button>\n    <\/div>\n\n    <div id=\"customizerPanel\" style=\"\n        display: none;\n        background: rgba(0, 168, 255, 0.05);\n        border: 1px solid #00A8FF;\n        border-radius: 12px;\n        padding: 25px;\n        margin-top: 25px;\n        backdrop-filter: blur(10px);\n    \">\n        <div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;\">\n            <h4 style=\"color: #00A8FF; margin: 0; font-size: 18px; font-weight: 600; display: flex; align-items: center; gap: 10px;\">\n                <span>\ud83c\udfaf<\/span> Customize Your Prompt\n            <\/h4>\n            <button onclick=\"resetToDefaults()\" id=\"resetButton\" style=\"\n                background: rgba(220, 53, 69, 0.1);\n                color: #dc3545;\n                border: 2px solid #dc3545;\n                padding: 8px 16px;\n                border-radius: 20px;\n                font-size: 14px;\n                font-weight: 600;\n                cursor: pointer;\n                transition: all 0.3s ease;\n                display: flex;\n                align-items: center;\n                gap: 6px;\n            \" onmouseover=\"this.style.background='rgba(220, 53, 69, 0.2)'\"\n                onmouseout=\"this.style.background='rgba(220, 53, 69, 0.1)'\">\n                <span>\ud83d\udd04<\/span>\n                Reset\n            <\/button>\n        <\/div>\n\n        <div class=\"customizer-grid\" style=\"\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n            gap: 20px;\n            margin-bottom: 25px;\n        \">\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\">\ud83d\uddbc\ufe0f Image Orientation\/Style:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('image_orientation_style', 'Vertical, ultra-realistic')\">Vertical, Ultra-realistic<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('image_orientation_style', 'Horizontal, photorealistic')\">Horizontal, Photorealistic<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('image_orientation_style', 'Square, stylized')\">Square, Stylized<\/button>\n                <\/div>\n                <input type=\"text\" id=\"image_orientation_style-custom\" placeholder=\"Or enter custom style...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\">\u2615 Product Description:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('product_description', 'Nescaf\u00e9 Classic jar')\" data-active=\"true\">Nescaf\u00e9 Classic Jar<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('product_description', 'coffee cup with steam')\">Coffee Cup with Steam<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('product_description', 'bag of coffee beans')\">Bag of Coffee Beans<\/button>\n                <\/div>\n                <input type=\"text\" id=\"product_description-custom\" placeholder=\"Or enter custom product...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\">\ud83e\udea8 Surface Object:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('surface_object', 'mossy stone')\" data-active=\"true\">Mossy Stone<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('surface_object', 'ancient tree stump')\">Ancient Tree Stump<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('surface_object', 'fallen log')\">Fallen Log<\/button>\n                <\/div>\n                <input type=\"text\" id=\"surface_object-custom\" placeholder=\"Or enter custom surface object...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\">\ud83c\udf33 Environment:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('environment', 'lush green forest')\" data-active=\"true\">Lush Green Forest<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('environment', 'misty mountain landscape')\">Misty Mountain Landscape<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('environment', 'serene bamboo grove')\">Serene Bamboo Grove<\/button>\n                <\/div>\n                <input type=\"text\" id=\"environment-custom\" placeholder=\"Or enter custom environment...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\">\u2600\ufe0f Lighting Effect:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('lighting_effect', 'Sunrays cut through the trees behind, softly illuminating the jar')\" data-active=\"true\">Sunrays Illumination<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('lighting_effect', 'Soft, diffused natural light')\">Soft, Diffused Light<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('lighting_effect', 'Dramatic dappled sunlight')\">Dramatic Dappled Sunlight<\/button>\n                <\/div>\n                <input type=\"text\" id=\"lighting_effect-custom\" placeholder=\"Or enter custom lighting effect...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\"> h\u1ea1t Scattered Elements:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('scattered_elements', 'A few coffee beans scattered naturally on the mossy surface')\" data-active=\"true\">Coffee Beans on Moss<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('scattered_elements', 'dew drops on the leaves around')\">Dew Drops on Leaves<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('scattered_elements', 'fallen autumn leaves')\">Fallen Autumn Leaves<\/button>\n                <\/div>\n                <input type=\"text\" id=\"scattered_elements-custom\" placeholder=\"Or enter custom scattered elements...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n            <div class=\"customizer-item\">\n                <label style=\"color: #00A8FF; font-weight: 600; margin-bottom: 8px; display: block;\">\ud83c\udff7\ufe0f Label Enhancement:<\/label>\n                <div style=\"display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;\">\n                    <button class=\"preset-btn\" onclick=\"applyPreset('label_enhancement', 'Enhance the label text clearly, but keep everything else the same')\" data-active=\"true\">Enhance Label Text<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('label_enhancement', 'Keep label as it is, with natural wear')\">Keep Label Natural<\/button>\n                    <button class=\"preset-btn\" onclick=\"applyPreset('label_enhancement', 'subtly blur the label for artistic effect')\">Subtly Blur Label<\/button>\n                <\/div>\n                <input type=\"text\" id=\"label_enhancement-custom\" placeholder=\"Or enter custom label enhancement...\" style=\"\n                    width: 100%;\n                    background: rgba(255, 255, 255, 0.1);\n                    border: 1px solid #333;\n                    border-radius: 8px;\n                    padding: 10px;\n                    color: #e0e0e0;\n                    font-size: 14px;\n                \">\n            <\/div>\n\n        <\/div>\n\n        <div style=\"display: flex; gap: 15px; justify-content: center; flex-wrap: wrap;\">\n            <button onclick=\"applyCustomChanges()\" id=\"applyButton\" style=\"\n                background: linear-gradient(45deg, #FFC107, #FF9800);\n                color: #1a1a1a;\n                border: none;\n                padding: 12px 30px;\n                border-radius: 25px;\n                font-size: 16px;\n                font-weight: 700;\n                cursor: pointer;\n                transition: all 0.3s ease;\n                box-shadow: 0 5px 15px rgba(255, 193, 7, 0.3);\n                display: inline-flex;\n                align-items: center;\n                gap: 8px;\n            \" onmouseover=\"this.style.transform='translateY(-2px)'; this.style.boxShadow='0 8px 25px rgba(255, 193, 7, 0.4)'\"\n                onmouseout=\"this.style.transform='translateY(0)'; this.style.boxShadow='0 5px 15px rgba(255, 193, 7, 0.3)'\">\n                <span>\ud83d\ude80<\/span>\n                Apply Changes\n            <\/button>\n        <\/div>\n    <\/div>\n\n    <div class=\"tips-section\" style=\"\n        background: rgba(255, 193, 7, 0.1);\n        border-left: 4px solid #FFC107;\n        border-radius: 8px;\n        padding: 20px;\n        margin-top: 25px;\n    \">\n        <h4 style=\"color: #FFC107; margin: 0 0 15px 0; font-size: 16px; font-weight: 600;\">\ud83d\udca1 Pro Tips:<\/h4>\n        <ul style=\"color: #e0e0e0; line-height: 1.6; margin: 0; padding-left: 20px;\">\n            <li style=\"margin-bottom: 8px;\">The <span style=\"color: #00A8FF; font-weight: 600;\">highlighted words<\/span> in the prompt above can be customized<\/li>\n            <li style=\"margin-bottom: 8px;\">Use the <span style=\"color: #FFC107; font-weight: 600;\">Customize button<\/span> to modify different elements<\/li>\n            <li style=\"margin-bottom: 8px;\">Click <span style=\"color: #dc3545; font-weight: 600;\">Reset<\/span> to restore original prompt<\/li>\n            <li style=\"margin-bottom: 8px;\">Try different combinations for unique artistic effects<\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n\n<style>\n@keyframes bounceScale {\n    0% { transform: scale(1); }\n    25% { transform: scale(0.95); }\n    50% { transform: scale(1.1); }\n    75% { transform: scale(0.98); }\n    100% { transform: scale(1); }\n}\n\n@keyframes slideDown {\n    0% { opacity: 0; transform: translateY(-20px); max-height: 0; }\n    100% { opacity: 1; transform: translateY(0); max-height: 1600px; } \/* Increased max-height *\/\n}\n\n@keyframes slideUp {\n    0% { opacity: 1; transform: translateY(0); max-height: 1600px; } \/* Increased max-height *\/\n    100% { opacity: 0; transform: translateY(-20px); max-height: 0; }\n}\n\n@keyframes resetPulse {\n    0%, 100% { transform: scale(1); }\n    50% { transform: scale(1.05); }\n}\n\n\/* Base style for editable words - transparent by default, no special hover *\/\n.editable-word {\n    background: transparent;\n    color: inherit; \/* Inherit color from parent (.prompt-text) so it's readable *\/\n    padding: 2px 6px;\n    border-radius: 4px;\n    font-weight: 600; \/* Keep bold for distinction *\/\n    cursor: pointer;\n    transition: none; \/* Ensure no transitions on hover or initial state *\/\n    display: inline-block;\n}\n\n\/* Ensure no changes on hover *\/\n.editable-word:hover {\n    background: transparent;\n    color: inherit;\n    transform: none; \/* No scale or other transforms *\/\n}\n\n\/* Class for dynamically applied highlight when a word is modified *\/\n.modified-highlight {\n    background: rgba(0, 168, 255, 0.2); \/* Subtle transparent blue *\/\n    color: white; \/* Make text white for better contrast with highlight *\/\n}\n\n\n.preset-btn {\n    background: rgba(255, 255, 255, 0.1);\n    color: #e0e0e0;\n    border: 1px solid #333;\n    padding: 6px 12px;\n    border-radius: 15px;\n    font-size: 12px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.preset-btn:hover {\n    background: rgba(0, 168, 255, 0.2);\n    border-color: #00A8FF;\n    color: #00A8FF;\n}\n\n.preset-btn[data-active=\"true\"] {\n    background: linear-gradient(45deg, #00A8FF, #0080CC);\n    color: white;\n    border-color: #00A8FF;\n}\n\n.customizer-show {\n    display: block !important;\n    animation: slideDown 0.5s ease-out !important;\n}\n\n.customizer-hide {\n    animation: slideUp 0.3s ease-in !important;\n}\n\n.ai-prompt-container button:active {\n    transform: scale(0.98) !important;\n}\n\n.copy-button-success {\n    background: linear-gradient(45deg, #4CAF50, #45a049) !important;\n    animation: bounceScale 0.6s ease-in-out !important;\n    box-shadow: 0 8px 25px rgba(76, 175, 80, 0.4) !important;\n}\n\n.reset-button-success {\n    background: linear-gradient(45deg, #4CAF50, #45a049) !important;\n    color: white !important;\n    border-color: #4CAF50 !important;\n    animation: resetPulse 0.6s ease-in-out !important;\n}\n\n@media (max-width: 768px) {\n    .ai-prompt-container {\n        padding: 20px !important;\n        margin: 15px 0 !important;\n    }\n\n    .prompt-actions {\n        flex-direction: column !important;\n        align-items: stretch !important;\n    }\n\n    .prompt-actions button,\n    .prompt-actions a {\n        width: 100% !important;\n        justify-content: center !important;\n    }\n\n    .customizer-grid {\n        grid-template-columns: 1fr !important;\n    }\n\n    .preset-btn {\n        font-size: 11px !important;\n        padding: 5px 10px !important;\n    }\n\n    #customizerPanel > div:first-child {\n        flex-direction: column !important;\n        align-items: flex-start !important;\n        gap: 15px !important;\n    }\n\n    #resetButton {\n        align-self: flex-end !important;\n    }\n}\n<\/style>\n\n<script>\n\/\/ Default values\nconst defaultValues = {\n    image_orientation_style: 'Vertical, ultra-realistic',\n    product_description: 'Nescaf\u00e9 Classic jar',\n    surface_object: 'mossy stone',\n    environment: 'lush green forest',\n    lighting_effect: 'Sunrays cut through the trees behind, softly illuminating the jar',\n    scattered_elements: 'A few coffee beans scattered naturally on the mossy surface',\n    label_enhancement: 'Enhance the label text clearly, but keep everything else the same'\n};\n\n\/\/ Current values (will be modified by user actions)\nlet currentValues = {...defaultValues};\n\nfunction copyPrompt() {\n    const promptText = document.getElementById('promptText').innerText;\n    const copyButton = document.getElementById('copyButton');\n    const copyIcon = document.getElementById('copyIcon');\n    const copyText = document.getElementById('copyText');\n\n    copyButton.classList.add('copy-button-success');\n    copyIcon.textContent = '\u2705';\n    copyText.textContent = 'Copied!';\n\n    if (navigator.clipboard && window.isSecureContext) {\n        navigator.clipboard.writeText(promptText).then(function() {\n            \/\/ Success\n        }).catch(function(err) {\n            fallbackCopyTextToClipboard(promptText);\n        });\n    } else {\n        fallbackCopyTextToClipboard(promptText);\n    }\n\n    setTimeout(() => {\n        copyButton.classList.remove('copy-button-success');\n        copyIcon.textContent = '\ud83d\udccb';\n        copyText.textContent = 'Copy Prompt';\n    }, 2000);\n}\n\nfunction fallbackCopyTextToClipboard(text) {\n    const textArea = document.createElement(\"textarea\");\n    textArea.value = text;\n    textArea.style.top = \"0\";\n    textArea.style.left = \"0\";\n    textArea.style.position = \"fixed\";\n\n    document.body.appendChild(textArea);\n    textArea.focus();\n    textArea.select();\n\n    try {\n        document.execCommand('copy');\n    } catch (err) {\n        console.error('Fallback: Oops, unable to copy', err);\n    }\n\n    document.body.removeChild(textArea);\n}\n\nfunction toggleCustomizer() {\n    const panel = document.getElementById('customizerPanel');\n    const button = document.getElementById('customizeButton');\n    const buttonText = document.getElementById('customizeText');\n\n    if (panel.style.display === 'none' || panel.style.display === '') {\n        panel.classList.add('customizer-show');\n        panel.style.display = 'block';\n        buttonText.textContent = 'Close';\n        button.style.background = 'rgba(255, 193, 7, 0.2)';\n    } else {\n        panel.classList.remove('customizer-show');\n        panel.classList.add('customizer-hide');\n        buttonText.textContent = 'Customize';\n        button.style.background = 'rgba(255, 193, 7, 0.1)';\n\n        setTimeout(() => {\n            panel.style.display = 'none';\n            panel.classList.remove('customizer-hide');\n        }, 300);\n    }\n}\n\nfunction findButtonsForCustomizer(key) {\n    const customInput = document.getElementById(`${key}-custom`);\n    if (!customInput) return [];\n\n    let currentElement = customInput.parentElement;\n    const buttons = currentElement.querySelectorAll('.preset-btn');\n    return Array.from(buttons);\n}\n\nfunction applyPreset(key, value) {\n    currentValues[key] = value;\n\n    \/\/ Update active button\n    const buttons = findButtonsForCustomizer(key);\n    buttons.forEach(btn => {\n        btn.removeAttribute('data-active');\n        if (btn.onclick.toString().includes(`'${value}'`)) {\n            btn.setAttribute('data-active', 'true');\n        }\n    });\n\n    \/\/ Clear custom input\n    const customInput = document.getElementById(`${key}-custom`);\n    if (customInput) customInput.value = '';\n\n    updatePrompt(); \/\/ Re-render prompt to apply highlight if value is different from default\n}\n\nfunction applyCustomChanges() {\n    \/\/ Get custom values from inputs\n    Object.keys(defaultValues).forEach(key => {\n        const customInput = document.getElementById(`${key}-custom`);\n        if (customInput && customInput.value.trim()) {\n            currentValues[key] = customInput.value.trim();\n\n            \/\/ Remove active state from preset buttons as custom input overrides\n            const buttons = findButtonsForCustomizer(key);\n            buttons.forEach(btn => btn.removeAttribute('data-active'));\n        }\n    });\n\n    updatePrompt(); \/\/ Re-render prompt to apply highlights based on new custom values\n\n    \/\/ Show success feedback\n    const applyButton = document.getElementById('applyButton');\n    const originalText = applyButton.innerHTML;\n    applyButton.innerHTML = '<span>\u2705<\/span> Applied!';\n    applyButton.style.background = 'linear-gradient(45deg, #4CAF50, #45a049)';\n\n    setTimeout(() => {\n        applyButton.innerHTML = originalText;\n        applyButton.style.background = 'linear-gradient(45deg, #FFC107, #FF9800)';\n    }, 2000);\n}\n\nfunction resetToDefaults() {\n    \/\/ Reset values to defaults\n    currentValues = JSON.parse(JSON.stringify(defaultValues)); \/\/ Deep copy\n\n    \/\/ Clear all custom inputs\n    Object.keys(defaultValues).forEach(key => {\n        const input = document.getElementById(`${key}-custom`);\n        if (input) input.value = '';\n    });\n\n    \/\/ Reset ALL preset buttons first\n    document.querySelectorAll('.preset-btn').forEach(btn => {\n        btn.removeAttribute('data-active');\n    });\n\n    \/\/ Activate default buttons for each category based on defaultValues\n    const defaultButtonMappings = [\n        { key: 'image_orientation_style', value: 'Vertical, ultra-realistic', buttonText: 'Vertical, Ultra-realistic' },\n        { key: 'product_description', value: 'Nescaf\u00e9 Classic jar', buttonText: 'Nescaf\u00e9 Classic Jar' },\n        { key: 'surface_object', value: 'mossy stone', buttonText: 'Mossy Stone' },\n        { key: 'environment', value: 'lush green forest', buttonText: 'Lush Green Forest' },\n        { key: 'lighting_effect', value: 'Sunrays cut through the trees behind, softly illuminating the jar', buttonText: 'Sunrays Illumination' },\n        { key: 'scattered_elements', value: 'A few coffee beans scattered naturally on the mossy surface', buttonText: 'Coffee Beans on Moss' },\n        { key: 'label_enhancement', value: 'Enhance the label text clearly, but keep everything else the same', buttonText: 'Enhance Label Text' }\n    ];\n\n    defaultButtonMappings.forEach(({ key, value, buttonText }) => {\n        const buttons = findButtonsForCustomizer(key);\n        buttons.forEach(btn => {\n            if (btn.textContent.trim() === buttonText) {\n                btn.setAttribute('data-active', 'true');\n            }\n        });\n    });\n\n    \/\/ Force update the prompt to remove all highlights\n    updatePrompt();\n\n    \/\/ Show success feedback on reset button\n    const resetButton = document.getElementById('resetButton');\n    const originalText = resetButton.innerHTML;\n    resetButton.classList.add('reset-button-success');\n    resetButton.innerHTML = '<span>\u2705<\/span> Reset!';\n\n    setTimeout(() => {\n        resetButton.classList.remove('reset-button-success');\n        resetButton.innerHTML = originalText;\n    }, 2000);\n}\n\n\/\/ Function to dynamically update the prompt string with conditional highlighting\nfunction updatePrompt() {\n    const promptElement = document.getElementById('promptText');\n\n    \/\/ Helper to generate a span with conditional highlighting\n    const createEditableSpan = (key) => {\n        const isModified = currentValues[key] !== defaultValues[key];\n        const highlightClass = isModified ? ' modified-highlight' : '';\n        return `<span class=\"editable-word${highlightClass}\" data-key=\"${key}\">${currentValues[key]}<\/span>`;\n    };\n\n    \/\/ Construct the prompt string based on current values and original phrasing\n    const template = `${createEditableSpan('image_orientation_style')}. Place the ${createEditableSpan('product_description')}. Set it on a ${createEditableSpan('surface_object')} in a ${createEditableSpan('environment')}. ${createEditableSpan('lighting_effect')}. ${createEditableSpan('scattered_elements')}. ${createEditableSpan('label_enhancement')}.`;\n\n    promptElement.innerHTML = template;\n}\n\n\/\/ Initialize the prompt and customizer buttons on load\ndocument.addEventListener('DOMContentLoaded', () => {\n    updatePrompt(); \/\/ Render the initial prompt\n    \/\/ Set initial active state for default preset buttons\n    Object.keys(defaultValues).forEach(key => {\n        const buttons = findButtonsForCustomizer(key);\n        buttons.forEach(btn => {\n            if (btn.onclick.toString().includes(`'${defaultValues[key]}'`)) {\n                btn.setAttribute('data-active', 'true');\n            }\n        });\n    });\n});\n<\/script>\n\n\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1271 size-full\" src=\"https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/892994eb-dec9-453a-a7c4-fcbeae83152e.png?resize=1024%2C1024&#038;ssl=1\" alt=\"\" width=\"1024\" height=\"1024\" srcset=\"https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/892994eb-dec9-453a-a7c4-fcbeae83152e.png?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/892994eb-dec9-453a-a7c4-fcbeae83152e.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/892994eb-dec9-453a-a7c4-fcbeae83152e.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/892994eb-dec9-453a-a7c4-fcbeae83152e.png?resize=768%2C768&amp;ssl=1 768w, https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/892994eb-dec9-453a-a7c4-fcbeae83152e.png?resize=96%2C96&amp;ssl=1 96w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>\u2728 Nescaf\u00e9 Classic in Forest AI Image Generation Prompt \ud83d\udccb How to Use: Open ChatGPT Copy and paste the prompt below Vertical, ultra-realistic. Place the Nescaf\u00e9 Classic jar. Set it on a mossy stone in a lush green forest. Sunrays cut through the trees behind, softly illuminating the jar. A few coffee beans scattered naturally &hellip;<\/p>\n","protected":false},"author":1,"featured_media":1272,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[35,39],"tags":[],"class_list":["post-1269","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-image","category-product"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/bawabatak.com\/ai-prompt\/wp-content\/uploads\/2025\/07\/Ultra-Realistic-Nescafe-Classic-Jar-on-Mossy-Stone-bawabatak-chatgpt.png?fit=1080%2C1350&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/posts\/1269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/comments?post=1269"}],"version-history":[{"count":1,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/posts\/1269\/revisions"}],"predecessor-version":[{"id":1273,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/posts\/1269\/revisions\/1273"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/media\/1272"}],"wp:attachment":[{"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/media?parent=1269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/categories?post=1269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bawabatak.com\/ai-prompt\/wp-json\/wp\/v2\/tags?post=1269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}