PageSourceSearch

https://ghibliia.com/about-ghibliia

html ghibliia.com collected 2026-10-08 04:15:01 UTC 104,008 bytes, 417 lines download raw bytes

1<!DOCTYPE html><html lang="es"> <head><!-- Character Encoding --><meta charset="UTF-8"><!-- Viewport Meta Tag - Optimized for mobile browsers with interactive-widget to handle address bar behavior --><!-- interactive-widget=resizes-content ensures sticky elements stay correctly positioned when mobile browser UI changes --><meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content"><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- SEO Meta Tags --><meta name="description" content="Descubre GhibliIA, la principal herramienta de IA para crear obras de arte con el distintivo estilo de Studio Ghibli. Aprende cómo GhibliIA aprovecha la IA avanzada para transformar tus ideas en mágicos visuales inspirados en Ghibli."><meta name="keywords" content="GhibliIA, AI Generator, AI Image Generator, Ghibli Style, AI Art"><meta name="author" content="GhibliIA"><meta http-equiv="content-language" content="es"><meta name="geo.region" content="ES"><meta name="geo.country" content="ES"><meta name="robots" content="index, follow"><meta name="googlebot" content="index, follow"><!-- Open Graph / Facebook --><meta property="og:type" content="article"><meta property="og:url" content="https://ghibliia.com/about-ghibliia"><meta property="og:title" content="Acerca de GhibliIA"><meta property="og:description" content="Descubre GhibliIA, la principal herramienta de IA para crear obras de arte con el distintivo estilo de Studio Ghibli. Aprende cómo GhibliIA aprovecha la IA avanzada para transformar tus ideas en mágicos visuales inspirados en Ghibli."><meta property="og:image" content="/images/og-ai-generator.jpg"><meta property="og:site_name" content="GhibliIA"><meta property="og:locale" content="es_ES"><meta property="og:locale:alternate" content="en_US"><meta property="og:locale:alternate" content="zh_TW"><meta property="og:locale:alternate" content="ko_KR"><meta property="og:locale:alternate" content="de_DE"><meta property="og:locale:alternate" content="fr_FR"><meta property="og:locale:alternate" content="ja_JP"><meta property="og:locale:alternate" content="pt_PT"><meta property="og:locale:alternate" content="ru_RU"><meta property="og:locale:alternate" content="zh_CN"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:url" content="https://ghibliia.com/about-ghibliia"><meta name="twitter:title" content="Acerca de GhibliIA"><meta name="twitter:description" content="Descubre GhibliIA, la principal herramienta de IA para crear obras de arte con el distintivo estilo de Studio Ghibli. Aprende cómo GhibliIA aprovecha la IA avanzada para transformar tus ideas en mágicos visuales inspirados en Ghibli."><meta name="twitter:image" content="/images/og-ai-generator.jpg"><meta name="twitter:creator" content="@GhibliIA"><!-- Canonical URL --><link rel="canonical" href="https://ghibliia.com/about-ghibliia"><!-- Alternate Language Links (hreflang) --><link rel="alternate" hreflang="en" href="https://ghibliia.com/en/about-ghibliia"><link rel="alternate" hreflang="zh-TW" href="https://ghibliia.com/zh-tw/about-ghibliia"><link rel="alternate" hreflang="ko" href="https://ghibliia.com/ko/about-ghibliia"><link rel="alternate" hreflang="de" href="https://ghibliia.com/de/about-ghibliia"><link rel="alternate" hreflang="es" href="https://ghibliia.com/about-ghibliia"><link rel="alternate" hreflang="fr" href="https://ghibliia.com/fr/about-ghibliia"><link rel="alternate" hreflang="ja" href="https://ghibliia.com/ja/about-ghibliia"><link rel="alternate" hreflang="pt" href="https://ghibliia.com/pt/about-ghibliia"><link rel="alternate" hreflang="ru" href="https://ghibliia.com/ru/about-ghibliia"><link rel="alternate" hreflang="zh" href="https://ghibliia.com/zh/about-ghibliia"><!-- x-default for international targeting --><link rel="alternate" hreflang="x-default" href="https://ghibliia.com/about-ghibliia"><!-- Favicon --><link rel="icon" type="image/x-icon" href="/favicon.ico"><title>Acerca de GhibliIA</title><!-- Preload Critical Resources --><!-- ✅ 预加载关键LCP图片 - 首页Hero背景 --><link rel="preload" as="image" href="/images/expload/4001.webp" fetchpriority="high"><!-- ✅ 预加载Logo --><link rel="preload" as="image" href="/images/logo.png" fetchpriority="high">
1<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="dns-prefetch" href="https://fonts.googleapis.com"><link rel="dns-prefetch" href="https://www.google-analytics.com"><link rel="dns-prefetch" href="https://www.googletagmanager.com"><!-- ✅ 第三方脚本已移至body底部延迟加载,优化FCP --><!-- Structured Data (JSON-LD) -->
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"GhibliIA","url":"https://ghibliia.com/","description":"Descubre GhibliIA, la principal herramienta de IA para crear obras de arte con el distintivo estilo de Studio Ghibli. Aprende cómo GhibliIA aprovecha la IA avanzada para transformar tus ideas en mágicos visuales inspirados en Ghibli.","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://ghibliia.com/?q={search_term_string}"},"query-input":"required name=search_term_string"}}</script>
1<!-- Theme Initialization Script (Prevents Flash) -->
1<script>
2      // 默认主题为浅色
3      const theme = localStorage.getItem('theme') || 'light';
4      document.documentElement.setAttribute('data-theme', theme);
5    </script>
5<!-- Sidebar Width Initialization (Prevents Layout Shift) -->
5<script>
6      // 预设侧边栏宽度 CSS 变量(避免布局偏移)
7      (function() {
8        // 默认展开状态
9        let sidebarWidth = '18rem';
10
11        // 只在桌面端处理
12        if (window.innerWidth >= 1280) {
13          try {
14            const savedState = localStorage.getItem('sidebar-collapsed');
15            // 检查是否是首页(支持多语言路径)
16            const pathname = window.location.pathname;
17            const isHomePage = pathname === '/' || pathname.match(/^\/(en|zh-tw|de|fr|es|ja|ko|pt|ru|ar|hi)\/$/);
18
19            // 判断是否应该收缩
20            // 1. 用户手动设置为收缩
21            // 2. 首页且无用户设置(默认收缩)
22            if (savedState === 'true' || (savedState === null && isHomePage)) {
23              sidebarWidth = '4.5rem';
24            }
25          } catch (e) {
26            // localStorage 不可用时,使用默认展开状态
27            console.warn('[Sidebar] localStorage not available:', e);
28          }
29        } else {
30          // 移动端不需要 margin
31          sidebarWidth = '0';
32        }
33
34        // 设置 CSS 变量
35        document.documentElement.style.setProperty('--sidebar-width', sidebarWidth);
36      })();
37    </script>
37<!-- Banner Height Initialization (Prevents Layout Shift) --><style>
38        :root {
39          /* 预设横幅高度,避免页面加载时的布局偏移 */
40          --banner-height: 56px;
41        }
42
43        @media (min-width: 640px) {
44          :root {
45            --banner-height: 60px;
46          }
47        }
48      </style><!-- Performance Optimization --><meta name="theme-color" content="#A3C5E0"><!-- Google Client ID for Login (injected from server-side environment) --><meta name="google-client-id" content="403187205857-7bb6ui1udgg5autubiprs3mo5ka7kl8f.apps.googleusercontent.com"><!-- Login Prompt Messages for i18n (injected from server-side) --><meta name="login-prompt-messages" content="%7B%22status%22%3A%7B%22loggingIn%22%3A%22Iniciando%20sesi%C3%B3n...%22%7D%2C%22error%22%3A%7B%22loginFailed%22%3A%22Error%20al%20iniciar%20sesi%C3%B3n%3A%20%7Berror%7D%22%2C%22unknownError%22%3A%22Error%20desconocido%22%2C%22requestFailed%22%3A%22La%20solicitud%20de%20inicio%20de%20sesi%C3%B3n%20fall%C3%B3%2C%20por%20favor%20intente%20m%C3%A1s%20tarde%22%7D%2C%22success%22%3A%7B%22loginTitle%22%3A%22Inicio%20de%20sesi%C3%B3n%20exitoso%22%2C%22loginMessage%22%3A%22%C2%A1Bienvenido%20de%20nuevo!%20Has%20iniciado%20sesi%C3%B3n%20correctamente.%22%7D%2C%22modal%22%3A%7B%22title%22%3A%22Bienvenido%20a%20AI%20Generator%22%2C%22loginMessage%22%3A%22Inicia%20sesi%C3%B3n%20en%20los%20pr%C3%B3ximos%22%2C%22gainMessage%22%3A%22para%20obtener%20inmediatamente%3A%22%7D%2C%22feature%22%3A%7B%22freeCredits%22%3A%223%20Cr%C3%A9ditos%20Gratis%22%2C%22withLogin%22%3A%22con%20el%20inicio%20de%20sesi%C3%B3n%22%2C%22image%22%3A%22imagen%22%2C%22video%22%3A%22video%22%2C%22music%22%3A%22m%C3%BAsica%22%2C%22generation%22%3A%22generaci%C3%B3n%22%2C%22imageModels%22%3A%22(Nano%20Banana%2C%20Seedream%2C%20Flux%20Kontext%20y%20m%C3%A1s)%22%2C%22videoModels%22%3A%22(Sora2%2C%20Seedance%20y%20m%C3%A1s)%22%7D%2C%22button%22%3A%7B%22loginWithGoogle%22%3A%22Iniciar%20sesi%C3%B3n%20con%20Google%22%7D%2C%22privacy%22%3A%7B%22agreement%22%3A%22Al%20continuar%2C%20aceptas%20nuestros%20T%C3%A9rminos%20de%20Servicio%20y%20Pol%C3%ADtica%20de%20Privacidad.%22%7D%7D"><link rel="stylesheet" href="/_astro/about-ghibliia.CK6rc90o.css">
49<link rel="stylesheet" href="/_astro/about-ghibliia.D4rmA57v.css">
50<style>.toast-container[data-astro-cid-d7jtuv6c]{position:fixed;top:1rem;right:1rem;z-index:9999;pointer-events:none}.toast[data-astro-cid-d7jtuv6c]{display:flex;align-items:flex-start;gap:.75rem;min-width:320px;max-width:420px;padding:1rem;border-radius:.5rem;background:var(--card);border:1px solid hsl(var(--border));box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -4px #0000004d;pointer-events:auto;transform:translate(calc(100% + 2rem));opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.toast[data-astro-cid-d7jtuv6c].show{transform:translate(0);opacity:1}.toast-icon[data-astro-cid-d7jtuv6c]{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:9999px}.toast[data-astro-cid-d7jtuv6c].error .toast-icon[data-astro-cid-d7jtuv6c]{background:#ef44441a;color:#ef4444}.toast[data-astro-cid-d7jtuv6c].success .toast-icon[data-astro-cid-d7jtuv6c]{background:#22c55e1a;color:#22c55e}.toast[data-astro-cid-d7jtuv6c].warning .toast-icon[data-astro-cid-d7jtuv6c]{background:#fbbf241a;color:#fbbf24}.toast[data-astro-cid-d7jtuv6c].info .toast-icon[data-astro-cid-d7jtuv6c]{background:#3b82f61a;color:#3b82f6}.toast-icon-svg[data-astro-cid-d7jtuv6c]{width:1.25rem;height:1.25rem}.toast-content[data-astro-cid-d7jtuv6c]{flex:1}.toast-title[data-astro-cid-d7jtuv6c]{font-size:.875rem;font-weight:600;color:var(--foreground);margin-bottom:.25rem}.toast-message[data-astro-cid-d7jtuv6c]{font-size:.875rem;color:var(--muted-foreground);line-height:1.4}.toast-close[data-astro-cid-d7jtuv6c]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;border-radius:.25rem;transition:all .2s}.toast-close[data-astro-cid-d7jtuv6c]:hover{background:hsl(var(--muted) / .5);color:var(--foreground)}
51</style>
52<link rel="stylesheet" href="/_astro/WhatsNewModal.BOxe2vaq.css">
53<style>.login-reward-banner{position:fixed;top:calc(var(--banner-height, 0px) + 80px);right:1.5rem;z-index:999;max-width:380px;width:calc(100% - 3rem);transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1);transform:translateY(0);opacity:1}.login-reward-banner-visible{transform:translateY(0);opacity:1}.login-reward-banner-hidden{transform:translateY(-120%);opacity:0;pointer-events:none}.login-reward-banner-content{display:flex;flex-direction:column;align-items:center;gap:1rem;position:relative;padding:1.5rem;background:linear-gradient(135deg,#fffffffa,#f8fcfafa);backdrop-filter:blur(12px);border-radius:20px;border:2px solid rgba(125,185,166,.3);box-shadow:0 8px 32px #0000001a,0 4px 16px #7db9a633;text-align:center}.login-reward-banner-icon{position:relative;width:56px;height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#7db9a6,#a5d4c3);border-radius:50%;box-shadow:0 4px 12px #7db9a659,inset 0 -2px 8px #a5d4c380}.login-reward-banner-icon svg{width:28px;height:28px;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));z-index:1}.login-reward-banner-icon-glow{position:absolute;inset:-4px;background:radial-gradient(circle,rgba(125,185,166,.5) 0%,transparent 70%);border-radius:50%;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.15);opacity:.3}}.login-reward-banner-text{width:100%}.login-reward-banner-title{font-size:1.125rem;font-weight:700;color:#2c3e50;margin:0 0 .5rem;line-height:1.3;letter-spacing:-.01em}.login-reward-banner-description{font-size:.875rem;color:#5a6c7d;margin:0;line-height:1.4}.login-reward-banner-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;background:linear-gradient(135deg,#7db9a6,#5a9b88);color:#fff;font-size:.9375rem;font-weight:600;border-radius:12px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #7db9a64d,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.15)}.login-reward-banner-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #7db9a666,inset 0 1px #ffffff4d;background:linear-gradient(135deg,#8bc9b4,#6baaa0)}.login-reward-banner-button:active{transform:translateY(0)}.login-reward-banner-button-arrow{width:18px;height:18px;transition:transform .3s cubic-bezier(.4,0,.2,1)}.login-reward-banner-button:hover .login-reward-banner-button-arrow{transform:translate(4px)}.login-reward-banner-close{position:absolute;top:.5rem;right:.5rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#fffc;border:1px solid rgba(0,0,0,.08);border-radius:8px;
53cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);color:#5a6c7d}.login-reward-banner-close:hover{background:#fff;color:#2c3e50;transform:scale(1.05);box-shadow:0 2px 8px #0000001a}.login-reward-banner-close:active{transform:scale(.95)}.login-reward-banner-close svg{width:18px;height:18px}@media(max-width:768px){.login-reward-banner{right:1rem;left:1rem;width:auto;max-width:none}.login-reward-banner-content{padding:1.25rem}.login-reward-banner-icon{width:48px;height:48px}.login-reward-banner-icon svg{width:24px;height:24px}.login-reward-banner-title{font-size:1rem}.login-reward-banner-description{font-size:.8125rem}.login-reward-banner-close{top:.5rem;right:.5rem;width:28px;height:28px}.login-reward-banner-close svg{width:16px;height:16px}}@media(prefers-color-scheme:dark){.login-reward-banner-content{background:linear-gradient(135deg,#282d32f2,#2d3734f2);border-color:#7db9a640;box-shadow:0 8px 32px #0006,0 4px 16px #7db9a633}.login-reward-banner-title{color:#e8eaed}.login-reward-banner-description{color:#b0b8c4}.login-reward-banner-close{background:#2d3734e6;border-color:#7db9a626;color:#b0b8c4}.login-reward-banner-close:hover{background:#323c39;color:#e8eaed;border-color:#7db9a640}}
54.modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease-out;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg);border-radius:16px;box-shadow:0 20px 60px #007b4326;width:100%;max-width:min(1200px,calc(100vw - 40px));max-height:calc(100vh - 40px);animation:slideUp .3s ease-out;overflow:hidden;display:flex;flex-direction:column;position:relative;margin:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-bg)}[data-theme=dark] .modal-header{background:#007b4308;border-bottom-color:#007b4326}.modal-title{font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0;flex:1}.modal-close-button{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text);opacity:.6;cursor:pointer;border-radius:.375rem;transition:all .2s ease;flex-shrink:0;padding:0}.modal-close-button:hover{background:#007b431a;opacity:1;color:#007b43}.modal-close-button:active{transform:scale(.95)}.modal-close-button svg{width:1.25rem;height:1.25rem}.modal-body{padding:var(--spacing-sm) var(--spacing-md);overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:#0000000d;border-radius:4px}.modal-body::-webkit-scrollbar-thumb{background:#007b434d;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#007b4380}.alert-modal-content{text-align:center;padding:12px 0}.modal-icon{width:64px;height:64px;margin:0 auto 20px;display:block}.modal-icon-info{color:#3b82f6}.modal-icon-success{color:#10b981}.modal-icon-warning{color:#f59e0b}.modal-icon-error{color:#ef4444}.alert-modal-message{font-size:16px;line-height:1.6;color:#666;margin:0 0 24px;white-space:pre-line}.alert-modal-btn{min-width:120px}.confirm-modal-content{text-align:center;padding:12px 0}.confirm-modal-message{font-size:16px;line-height:1.6;color:#666;margin:0 0 24px;white-space:pre-line}.confirm-modal-actions{display:flex;gap:12px;justify-content:center}.confirm-modal-actions .btn{min-width:100px}@media(max-width:768px){.modal-overlay{padding:10px}.modal-content{max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:12px}.modal-header{padding:1rem 1.25rem}.modal-title{font-size:1.125rem}.modal-close-button{width:2.5rem;height:2.5rem}.modal-close-button svg{width:1.5rem;height:1.5rem}.modal-body{padding:1rem}.modal-icon{width:56px;height:56px}.alert-modal-message,.confirm-modal-message{font-size:15px}.confirm-modal-actions{flex-direction:column}.confirm-modal-actions .btn{width:100%}}
55</style></head> <body> <div class="app-container"> <!-- 优惠活动横幅 --><!-- 翻译数据注入 -->
55<script id="promotion-banner-i18n" type="application/json">{"modal.title":"Oferta Especial - ¡Obtén 15% DE DESCUENTO! 🎉","modal.subtitle":"Oferta por tiempo limitado en todos los paquetes de créditos. ¡Comienza a crear con IA hoy!"}</script>
55 <!-- 根据服务端判断设置初始可见性,避免布局偏移 --><div id="promotion-banner" class="promotion-banner" data-should-show="true" data-astro-cid-n2n5lssf> <div class="promotion-container" data-astro-cid-n2n5lssf> <!-- 可点击内容区域 --> <div class="promotion-clickable" id="promotion-clickable" data-astro-cid-n2n5lssf> <!-- NEW 标签 --> <div class="promotion-badge" data-astro-cid-n2n5lssf> <span class="badge-text" data-astro-cid-n2n5lssf>NUEVO</span> </div> <!-- 主要内容 --> <div class="promotion-content" data-astro-cid-n2n5lssf> <!-- 魔法图标 (仅桌面显示) --> <div class="promotion-icon" data-astro-cid-n2n5lssf> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" data-astro-cid-n2n5lssf> <path stroke-linecap="round" stroke-linejoin="round" d="M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z" data-astro-cid-n2n5lssf></path> </svg> </div> <!-- 文案 --> <div class="promotion-text" data-astro-cid-n2n5lssf> <span class="offer-title" data-astro-cid-n2n5lssf>Oferta Especial</span> <span class="offer-divider" data-astro-cid-n2n5lssf>·</span> <span class="offer-discount" data-astro-cid-n2n5lssf>15% DE DESCUENTO</span> <span class="offer-description" data-astro-cid-n2n5lssf>Oferta por tiempo limitado en todos los paquetes de créditos</span> </div> </div> <!-- CTA 按钮 --> <button class="promotion-cta" id="promotion-cta-btn" data-astro-cid-n2n5lssf> Obtener 15% de descuento </button> </div> <!-- 关闭按钮 --> <button class="promotion-close" id="promotion-close-btn" aria-label="Cerrar banner" data-astro-cid-n2n5lssf> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" data-astro-cid-n2n5lssf> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" data-astro-cid-n2n5lssf></path> </svg> </button> </div> </div>  
55<script type="module">function l(){return new Date().toISOString().split("T")[0]}let a=null;async function m(){if(a)return a;const t=document.getElementById("promotion-banner-i18n");if(t)try{return a=JSON.parse(t.textContent||"{}"),a}catch(n){console.error("[PromotionBanner] Failed to parse translations:",n)}return{"modal.title":"Special Offer - Get 15% OFF! 🎉","modal.subtitle":"Limited time offer on all credit packages. Start creating with AI today!"}}async function s(){const t=await m();window.dispatchEvent(new CustomEvent("open-pricing-modal",{detail:{title:t["modal.title"]||"Special Offer - Get 15% OFF! 🎉",subtitle:t["modal.subtitle"]||"Limited time offer on all credit packages. Start creating with AI today!"}}))}function d(){const t=document.getElementById("promotion-banner"),n=document.getElementById("promotion-clickable"),o=document.getElementById("promotion-cta-btn"),i=document.getElementById("promotion-close-btn");if(!t)return;t.classList.contains("banner-hidden")||setTimeout(()=>{requestAnimationFrame(()=>{const e=t.offsetHeight,c=document.documentElement.style.getPropertyValue("--banner-height");Math.abs(e-parseInt(c||"0"))>2&&document.documentElement.style.setProperty("--banner-height",`${e}px`)})},900),n&&n.addEventListener("click",e=>{e.target===o||o?.contains(e.target)||e.target===i||i?.contains(e.target)||s()}),o&&o.addEventListener("click",e=>{e.stopPropagation(),s()}),i&&i.addEventListener("click",e=>{e.stopPropagation(),t.style.opacity="0",setTimeout(()=>{t.classList.add("banner-hidden"),document.documentElement.style.setProperty("--banner-height","0px");const c=l();document.cookie=`promotion_banner_closed_date=${encodeURIComponent(c)}; Path=/; Max-Age=86400; SameSite=Lax`},600)});let r;window.addEventListener("resize",()=>{t.classList.contains("banner-hidden")||(r&&clearTimeout(r),r=window.setTimeout(()=>{requestAnimationFrame(()=>{const e=t.offsetHeight;document.documentElement.style.setProperty("--banner-height",`${e}px`)})},150))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",d):d();</script>
55 <header class="header" data-astro-cid-3ef6ksr2> <div class="header-container" data-astro-cid-3ef6ksr2> <nav class="nav" data-astro-cid-3ef6ksr2> <!-- Left Section: Sidebar Toggle & Logo --> <div class="nav-left" data-astro-cid-3ef6ksr2> <button class="sidebar-toggle" aria-label="Alternar barra lateral" id="sidebar-toggle" data-astro-cid-3ef6ksr2> <span class="sidebar-toggle-icon" data-astro-cid-3ef6ksr2> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="menu-icon" data-astro-cid-3ef6ksr2> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" data-astro-cid-3ef6ksr2></path> </svg> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-icon" data-astro-cid-3ef6ksr2> <path d="m15 18-6-6 6-6" data-astro-cid-3ef6ksr2></path> </svg> </span> </button> <a href="/" class="logo" title="GhibliIA - Create stunning Studio Ghibli style AI art" data-astro-cid-3ef6ksr2> <div class="logo-icon" role="img" aria-label="GhibliIA - Studio Ghibli style AI art generation platform" data-astro-cid-3ef6ksr2></div> <span class="logo-text" data-astro-cid-3ef6ksr2>GhibliIA</span> </a> </div> <!-- Right Section: Actions --> <div class="nav-actions" data-astro-cid-3ef6ksr2> <!-- Language Toggle --> <div class="language-toggle" data-astro-cid-lb7h3eps> <button class="language-button" id="language-btn" aria-label="Switch language" aria-expanded="false" aria-haspopup="true" data-astro-cid-lb7h3eps> <div class="button-content" data-astro-cid-lb7h3eps> <span class="language-flag" data-astro-cid-lb7h3eps>🇪🇸</span> <span class="language-name" data-astro-cid-lb7h3eps>Español</span> <div class="button-decoration" data-astro-cid-lb7h3eps> <svg class="sparkle-icon" width="12" height="12" viewBox="0 0 12 12" fill="none" data-astro-cid-lb7h3eps> <path d="M6 0L7 5L12 6L7 7L6 12L5 7L0 6L5 5L6 0Z" fill="currentColor" data-astro-cid-lb7h3eps></path> </svg> </div> </div> <svg class="chevron-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lb7h3eps> <path d="m6 9 6 6 6-6" data-astro-cid-lb7h3eps></path> </svg> </button> <div class="language-dropdown" id="language-dropdown" role="menu" data-astro-cid-lb7h3eps> <!-- Decorative header --> <div class="dropdown-header" data-astro-cid-lb7h3eps> <svg class="header-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" data-astro-cid-lb7h3eps> <circle cx="10" cy="10" r="8" stroke="currentColor" stroke-width="1.5" fill="none" data-astro-cid-lb7h3eps></circle> <path d="M2 10H18M10 2C12 5 12 15 10 18M10 2C8 5 8 15 10 18" stroke="currentColor" stroke-width="1.5" data-astro-cid-lb7h3eps></path> </svg> <span class="header-text" data-astro-cid-lb7h3eps>Select Language</span> </div> <!-- Language options --> <div class="dropdown-options" data-astro-cid-lb7h3eps> <a href="/about-ghibliia" class="language-option active" data-locale="es" role="menuitem" style="--option-index: 0" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇪🇸</span> <span class="option-name" data-astro-cid-lb7h3eps>Español</span> </div> <div class="option-check" data-astro-cid-lb7h3eps> <svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lb7h3eps> <path d="M20 6 9 17l-5-5" data-astro-cid-lb7h3eps></path> </svg> </div> </a><a href="/en/about-ghibliia" class="language-option" data-locale="en" role="menuitem" style="--option-index: 1" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇺🇸</span> <span class="option-name" data-astro-cid-lb7h3eps>English</span> </div>  </a><a href="/zh-tw/about-ghibliia" class="language-option" data-locale="zh-tw" role="menuitem" style="--option-index: 2" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇹🇼</span> <span class="option-name" data-astro-cid-lb7h3eps>繁體中文</span> </div>  </a><a href="/ko/about-ghibliia" class="language-option" data-locale="k
55o" role="menuitem" style="--option-index: 3" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇰🇷</span> <span class="option-name" data-astro-cid-lb7h3eps>한국어</span> </div>  </a><a href="/de/about-ghibliia" class="language-option" data-locale="de" role="menuitem" style="--option-index: 4" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇩🇪</span> <span class="option-name" data-astro-cid-lb7h3eps>Deutsch</span> </div>  </a><a href="/fr/about-ghibliia" class="language-option" data-locale="fr" role="menuitem" style="--option-index: 5" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇫🇷</span> <span class="option-name" data-astro-cid-lb7h3eps>Français</span> </div>  </a><a href="/ja/about-ghibliia" class="language-option" data-locale="ja" role="menuitem" style="--option-index: 6" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇯🇵</span> <span class="option-name" data-astro-cid-lb7h3eps>日本語</span> </div>  </a><a href="/pt/about-ghibliia" class="language-option" data-locale="pt" role="menuitem" style="--option-index: 7" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇵🇹</span> <span class="option-name" data-astro-cid-lb7h3eps>Português</span> </div>  </a><a href="/ru/about-ghibliia" class="language-option" data-locale="ru" role="menuitem" style="--option-index: 8" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇷🇺</span> <span class="option-name" data-astro-cid-lb7h3eps>Русский</span> </div>  </a><a href="/zh/about-ghibliia" class="language-option" data-locale="zh" role="menuitem" style="--option-index: 9" data-astro-cid-lb7h3eps> <div class="option-content" data-astro-cid-lb7h3eps> <span class="option-flag" data-astro-cid-lb7h3eps>🇨🇳</span> <span class="option-name" data-astro-cid-lb7h3eps>简体中文</span> </div>  </a> </div> </div> </div>  
55<script type="module">function a(){const t=document.querySelector(".language-toggle"),e=document.getElementById("language-btn"),o=document.getElementById("language-dropdown");!t||!e||!o||(e.addEventListener("click",n=>{n.stopPropagation();const s=t.classList.toggle("open");e.setAttribute("aria-expanded",String(s))}),document.addEventListener("click",n=>{n.target.closest(".language-toggle")||(t.classList.remove("open"),e.setAttribute("aria-expanded","false"))}),o.addEventListener("click",()=>{t.classList.remove("open"),e.setAttribute("aria-expanded","false")}),document.addEventListener("keydown",n=>{n.key==="Escape"&&t.classList.contains("open")&&(t.classList.remove("open"),e.setAttribute("aria-expanded","false"),e.focus())}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a):a();document.addEventListener("astro:page-load",a);</script>
55 <!-- Check-In Button (Gift Icon) with Dropdown - Only shown when logged in -->  <!-- Credits Display with Dropdown -->  <a href="/login" class="btn btn-primary login-button" data-astro-cid-3ef6ksr2> Iniciar sesión </a> </div> </nav> </div> </header>  <!-- GhibliIA Global Styles - Studio Ghibli Aesthetic -->  
55<script>
56console.log('[Header Script] 脚本开始执行 - inline version');
57
58// 监听积分更新事件
59window.addEventListener('creditsUpdated', (event) => {
60  const customEvent = event;
61  if (customEvent.detail && typeof customEvent.detail.credits === 'number') {
62    const newCredits = customEvent.detail.credits.toString();
63
64    // 更新积分按钮显示
65    const creditsButton = document.querySelector('.credits-display span');
66    if (creditsButton) {
67      creditsButton.textContent = newCredits;
68    }
69
70    // 更新积分下拉菜单中的积分显示
71    const creditsAmountDisplay = document.getElementById('credits-amount-display');
72    if (creditsAmountDisplay) {
73      creditsAmountDisplay.textContent = newCredits;
74    }
75
76    // 更新用户头像下拉菜单中的积分显示
77    const userCreditsValue = document.querySelector('.user-avatar-wrapper .credits-value');
78    if (userCreditsValue) {
79      userCreditsValue.textContent = newCredits;
80    }
81  }
82});
83
84// 监听用户登录成功事件(One Tap 登录)
85window.addEventListener('userLoggedIn', async (event) => {
86  const customEvent = event;
87  const user = customEvent.detail?.user;
88  console.log('[Header] User logged in event received:', user);
89
90  if (!user) {
91    console.error('[Header] No user data in login event');
92    // 不刷新页面,只显示错误信息
93    console.error('[Header] Login event missing user data, but page will not reload');
94    return;
95  }
96
97  // 无刷新更新页面:动态替换登录按钮为用户信息
98  const navActions = document.querySelector('.nav-actions');
99  if (!navActions) {
100    console.error('[Header] Nav actions container not found');
101    // 不刷新页面,只显示错误信息
102    console.error('[Header] Nav actions not found, but page will not reload');
103    return;
104  }
105
106  // 移除登录按钮(保留语言切换按钮)
107  const loginButton = navActions.querySelector('.login-button');
108  if (loginButton) {
109    loginButton.remove();
110  }
111
112  // 创建积分显示
113  const creditsWrapper = document.createElement('div');
114  creditsWrapper.className = 'credits-wrapper';
115  creditsWrapper.innerHTML = `
116      <button class="credits-display" id="credits-btn" aria-label="Credits menu">
117        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="credits-icon">
118          <circle cx="8" cy="8" r="6"></circle>
119          <path d="M18.09 10.37A6 6 0 1 1 10.34 18"></path>
120          <path d="M7 6h1v4"></path>
121          <path d="m16.71 13.88.7.71-2.82 2.82"></path>
122        </svg>
123        <span>${user.credits}</span>
124      </button>
125      <div class="credits-dropdown-menu" id="credits-dropdown">
126        <div class="credits-modal-header">
127          <div class="credits-modal-title">
128            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="credits-title-icon">
129              <circle cx="8" cy="8" r="6"></circle>
130              <path d="M18.09 10.37A6 6 0 1 1 10.34 18"></path>
131              <path d="M7 6h1v4"></path>
132              <path d="m16.71 13.88.7.71-2.82 2.82"></path>
133            </svg>
134            <span>Credits</span>
135          </div>
136        </div>
137        <div class="credits-amount-section">
138          <div class="credits-amount" id="credits-amount-display">${user.credits}</div>
139          <div class="credits-label">Available Credits</div>
140        </div>
141        <div class="credits-actions">
142          <a href="/dashboard" class="credits-action-btn credits-btn-secondary">
143            <svg class="btn-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
144              <path d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" />
145            </svg>
146            <span>Dashboard</span>
147          </a>
148          <a href="/pricing" class="credits-action-btn credits-btn-primary">
149            <svg class="btn-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
150              <path d="M8.433 7.418c.155-.103.346-.196.567-.267v1.698a2.305 2.305 0 01-.567-.267C8.07 8.34 8 8.114 8 8c0-.114.07-.34.433-.582zM11 12.849v-1.698c.22.071.412.164.567.267.364.243.433.468.433.582 0 .114-.07.34-.433.582a2.305 2.305 0 01-.567.267z" />
151              <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a1 1 0 10-2 0v.092a4.535 4.535 0 00-1.676.662C6.602 6.234 6 7.009 6 8c0 .99.602 1.765 1.324 2.246.48.32 1.054.545 1.676.662v1.941c-.391-.127-.68-.317-.843-.504a1 1 0 10-1.51 1.31c.562.649 1.413 1.076 2.353 1.253V15a1 1 0 102 0v-.092a4.535 4.535 0 001.676-.662C13.398 13.766 14 12.991 14 12c0-.99-.602-1.765-1.324-2.246A4.535 4.535 0 0011 9.092V7.151c.391.127.68.317.843.504a1 1 0 101.511-1.31c-.563-.649-1.413-1.076-2.354-1.253V5z" clip-rule="evenodd" />
152            </svg>
153            <span>Get More Credits</span>
154          </a>
155        </div>
156      </div>
157    `;
158
159  // 创建用户头像
160  const initial = user.name ? user.name.charAt(0).toUpperCase() : user.email ? user.email.charAt(0).toUpperCase() : 'U';
161  const avatarWrapper = document.createElement('div');
162  avatarWrapper.className = 'user-avatar-wrapper';
163  avatarWrapper.innerHTML = `
164      <button class="avatar-button" id="user-avatar-btn" aria-label="User menu">
165        ${user.avatar
166    ? `<div class="avatar-image" style="background-image: url('${user.avatar}')" role="img" aria-label="${user.name || 'User'}"></div>`
167    : `<div class="avatar-placeholder">${initial}</div>`
168}
169      </button>
170      <div class="dropdown-menu" id="user-dropdown">
171        <div class="dropdown-header">
172          <div class="user-info">
173            <p class="user-name">${user.name || 'User'}</p>
174            <p class="user-email">${user.email}</p>
175          </div>
176          <div class="user-credits">
177            <span class="credits-label">Credits:</span>
178            <span class="credits-value">${user.credits}</span>
179          </div>
180        </div>
181        <nav class="dropdown-nav">
182          <button class="dropdown-item logout-button" id="logout-btn">
183            <svg class="item-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
184              <path fill-rule="evenodd" d="M3 3a1 1 0 00-1 1v12a1 1 0 102 0V4a1 1 0 00-1-1zm10.293 9.293a1 1 0 001.414 1.414l3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L14.586 9H7a1 1 0 100 2h7.586l-1.293 1.293z" clip-rule="evenodd" />
185            </svg>
186            <span>Logout</span>
187          </button>
188        </nav>
189      </div>
190    `;
191
192  // 插入新元素(保持语言切换按钮在最前面)
193  // 获取语言切换按钮元素
194  const languageToggle = navActions.querySelector('.language-toggle');
195
196  if (languageToggle) {
197    // 如果存在语言切换按钮,将积分显示插入到其后面
198    languageToggle.insertAdjacentElement('afterend', creditsWrapper);
199  } else {
200    // 如果不存在语言切换按钮(向后兼容),插入到最前面
201    navActions.insertBefore(creditsWrapper, navActions.firstChild);
202  }
203
204  // 用户头像添加到最后
205  navActions.appendChild(avatarWrapper);
206
207  // 重新绑定事件监听器
208  setupCreditsDropdown();
209  setupUserDropdown();
210
211  console.log('[Header] User interface updated successfully');
212});
213
214// 设置积分下拉菜单事件监听
215function setupCreditsDropdown() {
216  const creditsButton = document.getElementById('credits-btn');
217  const creditsDropdown = document.getElementById('credits-dropdown');
218
219  // 调试日志
220  console.log('[Credits Dropdown] Setup - Button:', !!creditsButton, 'Dropdown:', !!creditsDropdown);
221
222  if (!creditsButton || !creditsDropdown) {
223    console.warn('[Credits Dropdown] 元素未找到,跳过事件绑定');
224    return;
225  }
226
227  // 切换积分下拉菜单
228  creditsButton.addEventListener('click', (e) => {
229    e.stopPropagation();
230    e.preventDefault();
231
232    const isActive = creditsDropdown.classList.contains('active');
233    console.log('[Credits Dropdown] 点击按钮,当前状态:', isActive ? 'active' : 'inactive');
234
235    // 如果要打开积分菜单,先关闭用户菜单
236    if (!isActive) {
237      window.dispatchEvent(new CustomEvent('close-user-dropdown'));
238    }
239
240    creditsDropdown.classList.toggle('active');
241    console.log('[Credits Dropdown] 切换后状态:', creditsDropdown.classList.contains('active') ? 'active' : 'inactive');
242  });
243
244  console.log('[Credits Dropdown] 事件监听器绑定成功');
245}
246
247// 设置用户下拉菜单事件监听
248function setupUserDropdown() {
249  const avatarButton = document.getElementById('user-avatar-btn');
250  const dropdown = document.getElementById('user-dropdown');
251  const logoutButton = document.getElementById('logout-btn');
252
253  // 调试日志
254  console.log('[User Dropdown] Setup - Avatar:', !!avatarButton, 'Dropdown:', !!dropdown, 'Logout:', !!logoutButton);
255
256  if (!avatarButton || !dropdown) {
257    console.warn('[User Dropdown] 元素未找到,跳过事件绑定');
258    return;
259  }
260
261  // 切换下拉菜单
262  avatarButton.addEventListener('click', (e) => {
263    e.stopPropagation();
264    e.preventDefault();
265
266    const isActive = dropdown.classList.contains('active');
267    console.log('[User Dropdown] 点击头像,当前状态:', isActive ? 'active' : 'inactive');
268
269    // 如果要打开用户菜单,先关闭积分菜单
270    if (!isActive) {
271      window.dispatchEvent(new CustomEvent('close-credits-dropdown'));
272    }
273
274    dropdown.classList.toggle('active');
275    console.log('[User Dropdown] 切换后状态:', dropdown.classList.contains('active') ? 'active' : 'inactive');
276  });
277
278  // 退出登录
279  logoutButton?.addEventListener('click', async (e) => {
280    e.preventDefault();
281
282    try {
283      // 获取当前语言标识
284      const currentPath = window.location.pathname;
285      const pathSegments = currentPath.replace(/^\//, '').split('/');
286      const supportedLocales = ['en', 'zh-tw'];
287      const currentLocale = supportedLocales.includes(pathSegments[0]) ? pathSegments[0] : 'en';
288
289      // 构造带语言标识的主页URL
290      const homeUrl = currentLocale === 'en' ? '/' : `/${currentLocale}`;
291
292      const response = await fetch('/api/auth/logout', {
293        method: 'POST',
294        credentials: 'include',
295        redirect: 'manual',
296      });
297
298      if (response.ok || response.status === 302 || response.type === 'opaqueredirect') {
299        if ('caches' in window) {
300          caches.keys().then(names => {
301            names.forEach(name => caches.delete(name));
302          });
303        }
304        window.location.href = homeUrl;
305      } else {
306        console.error('Logout failed with status:', response.status);
307        window.location.href = homeUrl;
308      }
309    } catch (error) {
310      console.error('Logout error:', error);
311      // 即使发生错误也要重定向到正确的语言主页
312      const currentPath = window.location.pathname;
313      const pathSegments = currentPath.replace(/^\//, '').split('/');
314      const supportedLocales = ['en', 'zh-tw'];
315      const currentLocale = supportedLocales.includes(pathSegments[0]) ? pathSegments[0] : 'en';
316      const homeUrl = currentLocale === 'en' ? '/' : `/${currentLocale}`;
317      window.location.href = homeUrl;
318    }
319  });
320}
321
322// 全局事件监听
323document.addEventListener('DOMContentLoaded', () => {
324  console.log('[Header] DOMContentLoaded - 开始初始化下拉菜单');
325
326  // 初始化已存在的下拉菜单
327  setupCreditsDropdown();
328  setupUserDropdown();
329
330  // 监听关闭积分下拉菜单的事件(由用户头像触发)
331  window.addEventListener('close-credits-dropdown', () => {
332    console.log('[Credits Dropdown] 收到关闭事件');
333    const creditsDropdown = document.getElementById('credits-dropdown');
334    if (creditsDropdown) {
335      creditsDropdown.classList.remove('active');
336    }
337  });
338
339  // 监听关闭用户下拉菜单的事件(由积分按钮触发)
340  window.addEventListener('close-user-dropdown', () => {
341    console.log('[User Dropdown] 收到关闭事件');
342    const dropdown = document.getElementById('user-dropdown');
343    if (dropdown) {
344      dropdown.classList.remove('active');
345    }
346  });
347
348  // 点击页面其他地方关闭下拉菜单
349  document.addEventListener('click', (e) => {
350    const target = e.target;
351
352    // 检查是否点击了积分区域外
353    if (!target.closest('.credits-wrapper')) {
354      const creditsDropdown = document.getElementById('credits-dropdown');
355      if (creditsDropdown && creditsDropdown.classList.contains('active')) {
356        console.log('[Credits Dropdown] 点击外部区域,关闭下拉菜单');
357        creditsDropdown.classList.remove('active');
358      }
359    }
360
361    // 检查是否点击了用户头像区域外
362    if (!target.closest('.user-avatar-wrapper')) {
363      const dropdown = document.getElementById('user-dropdown');
364      if (dropdown && dropdown.classList.contains('active')) {
365        console.log('[User Dropdown] 点击外部区域,关闭下拉菜单');
366        dropdown.classList.remove('active');
367      }
368    }
369  });
370
371  console.log('[Header] 下拉菜单初始化完成');
372});
373</script>
373 
373<script type="module" src="/_astro/Header.astro_astro_type_script_index_0_lang.C7t6yuCg.js"></script>
373  <!-- 移动端遮罩层 --><div class="sidebar-overlay" id="sidebar-overlay" data-astro-cid-ssfzsv2f></div> <!-- 侧边栏容器 --> <aside class="sidebar" id="sidebar" aria-label="Main navigation sidebar" data-astro-cid-ssfzsv2f> <!-- 移动端头部 --> <div class="sidebar-mobile-header" data-astro-cid-ssfzsv2f> <button class="sidebar-close-button" id="sidebar-close" aria-label="Close sidebar" data-astro-cid-ssfzsv2f> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="close-icon" data-astro-cid-ssfzsv2f> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" data-astro-cid-ssfzsv2f></path> </svg> </button> </div> <!-- 侧边栏导航 --> <nav class="sidebar-nav" data-astro-cid-ssfzsv2f> <div class="nav-section" style="--section-index: 0" data-astro-cid-ssfzsv2f>  <ul class="nav-links" data-astro-cid-ssfzsv2f> <li class="nav-item" style="--item-index: 0" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/" class="nav-link" title="Inicio" data-tooltip="Inicio" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M3 10L10 3L17 10V17H13V13H7V17H3V10Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Inicio</span>  </div> </a> </li><li class="nav-item" style="--item-index: 1" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/image/explore" class="nav-link" title="Explorar" data-tooltip="Explorar" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><circle cx="10" cy="10" r="7" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M10 3V5M17 10H15M10 17V15M3 10H5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M12 8L8 12L12 8Z" fill="currentColor"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Explorar</span>  </div> </a> </li><li class="nav-item" style="--item-index: 2" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/effects" class="nav-link" title="Efectos" data-tooltip="Efectos" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M3 17L17 3M17 3L15 7L17 3ZM17 3L13 5L17 3Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 5V7M5 6H7M13 13V15M13 14H15M9 9V11M9 10H11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Efectos</span>  </div> </a> </li><li class="nav-item" style="--item-index: 3" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/templates" class="nav-link" title="Templates" data-tooltip="Templates" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="3" y="3" width="6" height="6" rx="1" stroke="currentColor" stroke-width="1.5" fill="none"/><rect x="11" y="3" width="6" height="6" rx="1" stroke="currentColor" stroke-width="1.5" fill="none"/><rect x="3" y="11" width="6" height="6" rx="1" stroke="currentColor" stroke-width="1.5" fill="none"/><rect x="11" y="11" width="6" height="6" rx="1" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Templates</span>  </div> </a> </li><li class="nav-item" style="--item-index: 4" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/agent" class="nav-link" title="Modo Agente" data-tooltip="Modo Agente" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="4" y="7" width="12" height="9" rx="2" stroke="currentColor" stroke-width="1.5" fill="none"/><circle cx="8" cy="11" r="1" fill="currentColor"/><circle cx="12" cy="11" r="1" fill="currentColor"/><path d="M8 14H12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
373<path d="M10 7V4M10 4L8 6M10 4L12 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Modo Agente</span>  </div> </a> </li> </ul> <div class="nav-divider" data-astro-cid-ssfzsv2f></div> </div><div class="nav-section" style="--section-index: 1" data-astro-cid-ssfzsv2f> <div class="nav-section-header" data-astro-cid-ssfzsv2f> <span class="nav-section-title" data-astro-cid-ssfzsv2f>Generaciones IA</span>  </div> <ul class="nav-links" data-astro-cid-ssfzsv2f> <li class="nav-item" style="--item-index: 0" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/video" class="nav-link" title="Generador de Video IA" data-tooltip="Generador de Video IA" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="2" y="5" width="12" height="10" rx="2" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M14 8L18 6V14L14 12V8Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Generador de Video IA</span>  </div> </a> </li><li class="nav-item" style="--item-index: 1" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/image" class="nav-link" title="Generador de Imagen IA" data-tooltip="Generador de Imagen IA" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="3" y="3" width="14" height="14" rx="2" stroke="currentColor" stroke-width="1.5" fill="none"/><circle cx="7.5" cy="7.5" r="1.5" fill="currentColor"/><path d="M17 13L13 9L8 14L5 11L3 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Generador de Imagen IA</span>  </div> </a> </li><li class="nav-item" style="--item-index: 2" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/music" class="nav-link has-badge" title="Generador de Música IA" data-tooltip="Generador de Música IA" data-badge-text="NUEVO" data-badge-variant="new" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M8 15V5L16 3V13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="6" cy="15" r="2" stroke="currentColor" stroke-width="1.5" fill="none"/><circle cx="14" cy="13" r="2" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Generador de Música IA</span> <span class="nav-badge badge-new" data-astro-cid-ssfzsv2f> NUEVO </span> </div> </a> </li> </ul> <div class="nav-divider" data-astro-cid-ssfzsv2f></div> </div><div class="nav-section" style="--section-index: 2" data-astro-cid-ssfzsv2f> <div class="nav-section-header" data-astro-cid-ssfzsv2f> <span class="nav-section-title" data-astro-cid-ssfzsv2f>Modelos</span> <button class="nav-section-toggle" aria-label="Toggle section" data-astro-cid-ssfzsv2f> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="toggle-icon" data-astro-cid-ssfzsv2f> <path stroke-linecap="round" stroke-linejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5" data-astro-cid-ssfzsv2f></path> </svg> </button> </div> <ul class="nav-links" data-astro-cid-ssfzsv2f> <li class="nav-item" style="--item-index: 0" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/image/nano-banana" class="nav-link has-badge" title="Nano Banana" data-tooltip="Nano Banana" data-badge-text="POPULAR" data-badge-variant="hot" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="4" y="6" width="12" height="8" rx="4" stroke="currentColor" stroke-width="1.5" fill="none"/><circle cx="8" cy="10" r="1" fill="currentColor"/><circle cx="12" cy="10" r="1" fill="currentColor"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Nano Banana</span> <span class="nav-badge badge-hot" data-astro-cid-ssfzsv2f> POPULAR </span> </div> </a> </li><li class="nav-item" style="--item-index: 1" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/image/nano-banana-pro" class="nav-link has-badge" title="Nano Banana Pro" data-tooltip="Nano Banana Pro" data-badge-text="NUEVO" data-badge-variant="gradient" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="4" y="6" width="12" height="8" rx="4" stroke="currentColor" stroke-width="1.5" fill="none"/><circle cx="8" cy="10" r="1" fill="currentColor"/><circle cx="12" cy="10" r="1" fill="currentColor"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Nano Banana Pro</span> <span class="nav-badge badge-gradient" data-astro-cid-ssfzsv2f> NUEVO </span> </div> </a> </li><li class="nav-item" style="--item-index: 2" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/video/sora2" class="nav-link has-badge" title="Sora 2" data-tooltip="Sora 2" data-badge-text="POPULAR" data-badge-variant="hot" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><circle cx="10" cy="10" r="7" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M10 6V10L13 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Sora 2</span> <span class="nav-badge badge-hot" data-astro-cid-ssfzsv2f> POPULAR </span> </div> </a> </li><li class="nav-item" style="--item-index: 3" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/video/veo-3-1" class="nav-link has-badge" title="Veo 3.1" data-tooltip="Veo 3.1" data-badge-text="NUEVO" data-badge-variant="gradient" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M3 6L10 3L17 6V14L10 17L3 14V6Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" fill="none"/><path d="M10 10L10 17M3 6L10 10M17 6L10 10" stroke="currentColor" stroke-width="1.5"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Veo 3.1</span> <span class="nav-badge badge-gradient" data-astro-cid-ssfzsv2f> NUEVO </span> </div> </a> </li><li class="nav-item" style="--item-index: 4" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/video/mindvideo" class="nav-link" title="MindVideo AI" data-tooltip="MindVideo AI" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="2" y="5" width="12" height="10" rx="2" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M14 8L18 6V14L14 12V8Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>MindVideo AI</span>  </div> </a> </li><li class="nav-item" style="--item-index: 5" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/image/gpt-4o-image" class="nav-link" title="GPT-4o Imagen" data-tooltip="GPT-4o Imagen" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="3" y="3" width="14" height="14" rx="3" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M7 7H13M7 10H11M7 13H13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>GPT-4o Imagen</span>  </div> </a> </li><li class="nav-item" style="--item-index: 6" data-show-when-collapsed="true" data-always-visible="true" data-astro-cid-ssfzsv2f> <a href="/image/seedream-v4" class="nav-link" title="Seedream V4" data-tooltip="Seedream V4" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><circle cx="10" cy="8" r="2" stroke="currentColor" stroke-width="1.5" fill="none"/>
373<path d="M10 10C7 10 4 12 4 15V17H16V15C16 12 13 10 10 10Z" stroke="currentColor" stroke-width="1.5" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Seedream V4</span>  </div> </a> </li><li class="nav-item" style="--item-index: 7" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/video/seedance-v1-lite" class="nav-link" title="Seedance v1 Lite" data-tooltip="Seedance v1 Lite" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M5 10L10 5L15 10L10 15L5 10Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" fill="none"/><circle cx="10" cy="10" r="2" fill="currentColor"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Seedance v1 Lite</span>  </div> </a> </li><li class="nav-item" style="--item-index: 8" data-show-when-collapsed="false" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/image/flux-kontext" class="nav-link" title="Editor Flux Kontext" data-tooltip="Editor Flux Kontext" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="4" y="4" width="12" height="12" rx="2" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M8 8L12 12M12 8L8 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Editor Flux Kontext</span>  </div> </a> </li> </ul> <div class="nav-divider" data-astro-cid-ssfzsv2f></div> </div><div class="nav-section" style="--section-index: 3" data-astro-cid-ssfzsv2f>  <ul class="nav-links" data-astro-cid-ssfzsv2f> <li class="nav-item" style="--item-index: 0" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/pricing" class="nav-link has-badge" title="Actualizar Plan" data-tooltip="Actualizar Plan" data-badge-text="15% DESC" data-badge-variant="discount" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M6 3L10 10L4 17L10 10L16 17L10 10L14 3L10 10L6 3Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Actualizar Plan</span> <span class="nav-badge badge-discount" data-astro-cid-ssfzsv2f> 15% DESC </span> </div> </a> </li><li class="nav-item" style="--item-index: 1" data-show-when-collapsed="true" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="/blog" class="nav-link" title="Blog" data-tooltip="Blog" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><rect x="4" y="3" width="12" height="14" rx="1" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M7 7H13M7 10H13M7 13H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Blog</span>  </div> </a> </li><li class="nav-item" style="--item-index: 2" data-show-when-collapsed="false" data-always-visible="false" data-astro-cid-ssfzsv2f> <a href="#whats-new" class="nav-link" title="Novedades" data-tooltip="Novedades" data-astro-cid-ssfzsv2f> <span class="nav-icon" data-astro-cid-ssfzsv2f> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-ssfzsv2f><path d="M12 2L14 8H18L14 11L16 17L12 14L8 17L10 11L6 8H10L12 2Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" fill="none"/></svg> </span> <div class="nav-link-content" data-astro-cid-ssfzsv2f> <span class="nav-link-text" data-astro-cid-ssfzsv2f>Novedades</span>  </div> </a> </li> </ul> <div class="nav-divider" data-astro-cid-ssfzsv2f></div> </div> </nav> <!-- 装饰性底部元素 --> <div class="sidebar-footer" data-astro-cid-ssfzsv2f> <div class="footer-decoration" data-astro-cid-ssfzsv2f>
373 <svg class="sparkle-decoration" width="16" height="16" viewBox="0 0 16 16" fill="none" data-astro-cid-ssfzsv2f> <path d="M8 0L9 7L16 8L9 9L8 16L7 9L0 8L7 7L8 0Z" fill="currentColor" data-astro-cid-ssfzsv2f></path> </svg> </div> </div> </aside>  
373<script type="module">const t=document.getElementById("sidebar"),r=document.getElementById("sidebar-toggle"),w=document.getElementById("sidebar-close"),l=document.getElementById("sidebar-overlay");function v(){if(window.innerWidth>=1280){const s=t?.classList.contains("collapsed")?"4.5rem":"18rem";document.documentElement.style.setProperty("--sidebar-width",s)}else document.documentElement.style.setProperty("--sidebar-width","0")}if(window.innerWidth>=1280){const e=localStorage.getItem("sidebar-collapsed"),s=window.location.pathname,o=s==="/"||s.match(/^\/(en|zh-tw|de|fr|es|ja|ko|pt|ru|ar|hi)\/$/);e!==null?e==="true"&&(t?.classList.add("collapsed"),r?.classList.add("collapsed")):o&&(t?.classList.add("collapsed"),r?.classList.add("collapsed"))}r?.addEventListener("click",()=>{if(window.innerWidth>=1280){t?.classList.toggle("collapsed"),r?.classList.toggle("collapsed");const e=t?.classList.contains("collapsed");localStorage.setItem("sidebar-collapsed",String(e)),v()}else t?.classList.toggle("open"),l?.classList.toggle("active"),t?.classList.contains("open")?document.body.style.overflow="hidden":document.body.style.overflow=""});w?.addEventListener("click",()=>{t?.classList.remove("open"),l?.classList.remove("active"),document.body.style.overflow=""});l?.addEventListener("click",()=>{t?.classList.remove("open"),l?.classList.remove("active"),document.body.style.overflow=""});let m;window.addEventListener("resize",()=>{clearTimeout(m),m=window.setTimeout(()=>{window.innerWidth>=1280?(t?.classList.remove("open"),l?.classList.remove("active"),document.body.style.overflow="",v()):(t?.classList.remove("collapsed"),document.documentElement.style.setProperty("--sidebar-width","0"))},250)});t?.addEventListener("click",e=>{e.target===t&&window.innerWidth<1280&&(t.classList.remove("open"),l?.classList.remove("active"),document.body.style.overflow="")});t?.addEventListener("wheel",e=>{if(!t)return;const{scrollTop:s,scrollHeight:o,clientHeight:i}=t,n=s===0,c=s+i>=o;(n&&e.deltaY<0||c&&e.deltaY>0)&&e.preventDefault()},{passive:!1});let p=0;t?.addEventListener("touchstart",e=>{p=e.touches[0].clientY},{passive:!0});t?.addEventListener("touchmove",e=>{if(!t)return;const{scrollTop:s,scrollHeight:o,clientHeight:i}=t,n=e.touches[0].clientY,c=p-n,a=s===0,d=s+i>=o;(a&&c<0||d&&c>0)&&e.preventDefault()},{passive:!1});const u=document.querySelectorAll(".nav-section-toggle");u.forEach((e,s)=>{const o=e.closest(".nav-section"),i=o?.querySelector(".nav-links"),n=e.querySelector(".toggle-icon"),a=`sidebar-section-${(o?.querySelector(".nav-section-title")?.textContent?.trim()||`section-${s}`).toLowerCase().replace(/\s+/g,"-")}`;i&&(localStorage.getItem(a)==="expanded"?(i.classList.remove("preview-mode"),n?.classList.add("rotated")):(i.classList.add("preview-mode"),n?.classList.remove("rotated"))),e.addEventListener("click",()=>{const d=i?.classList.toggle("preview-mode");n?.classList.toggle("rotated"),d===!1?localStorage.setItem(a,"expanded"):localStorage.setItem(a,"collapsed")})});document.addEventListener("click",e=>{e.target.closest('a[href="#whats-new"]')&&(e.preventDefault(),window.dispatchEvent(new CustomEvent("open-whats-new-modal")),window.innerWidth<1280&&(t?.classList.remove("open"),l?.classList.remove("active"),document.body.style.overflow=""))});window.openSidebar=()=>{window.innerWidth<1280&&(t?.classList.add("open"),l?.classList.add("active"),document.body.style.overflow="hidden")};</script>
373 <main class="main-content"> 
373<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https://ghibliia.com/"},{"@type":"ListItem","position":2,"name":"Acerca de GhibliIA","item":"https://ghibliia.com/about-ghibliia"}]}</script>
373<nav class="breadcrumb-nav" aria-label="Ruta de navegación" data-astro-cid-qaanghzh><div class="breadcrumb-container" data-astro-cid-qaanghzh><ol role="list" class="breadcrumb-list" data-astro-cid-qaanghzh><li class="breadcrumb-item" style="--item-index: 0" data-astro-cid-qaanghzh><div class="breadcrumb-content " data-astro-cid-qaanghzh><a href="/" class="breadcrumb-link" data-astro-cid-qaanghzh><svg class="breadcrumb-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-qaanghzh><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" data-astro-cid-qaanghzh></path><polyline points="9 22 9 12 15 12 15 22" data-astro-cid-qaanghzh></polyline></svg><span class="breadcrumb-label" data-astro-cid-qaanghzh>Inicio</span></a></div></li><li class="breadcrumb-item" style="--item-index: 1" data-astro-cid-qaanghzh><span class="breadcrumb-separator" aria-hidden="true" data-astro-cid-qaanghzh><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-qaanghzh><polyline points="9 18 15 12 9 6" data-astro-cid-qaanghzh></polyline></svg></span><div class="breadcrumb-content current" data-astro-cid-qaanghzh><span class="breadcrumb-text current" aria-current="page" data-astro-cid-qaanghzh><span class="breadcrumb-label" data-astro-cid-qaanghzh>Acerca de GhibliIA</span></span></div></li></ol></div></nav>  <article class="ghibli-markdown  " itemScope itemType="https://schema.org/Article" data-astro-cid-yw7poyxk> 
373<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"Acerca de GhibliIA","description":"Descubre GhibliIA, la principal herramienta de IA para crear obras de arte con el distintivo estilo de Studio Ghibli. Aprende cómo GhibliIA aprovecha la IA avanzada para transformar tus ideas en mágicos visuales inspirados en Ghibli.","author":{"@type":"Person","name":"GhibliIA Team"},"publisher":{"@type":"Organization","name":"GhibliIA"},"inLanguage":{"DEFAULT_LOCALE":"es"}}</script>
373 <!-- 装饰背景 --> <div class="markdown-bg" aria-hidden="true" data-astro-cid-yw7poyxk> <div class="bg-pattern" data-astro-cid-yw7poyxk></div> </div> <div class="markdown-container" data-astro-cid-yw7poyxk> <!-- 标题卡片 --> <div class="title-card" data-animate data-astro-cid-yw7poyxk> <div class="card-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div> <h1 class="md-title" itemProp="headline" data-astro-cid-yw7poyxk> Acerca de GhibliIA </h1> <p class="md-description" itemProp="description" data-astro-cid-yw7poyxk> Descubre GhibliIA, la principal herramienta de IA para crear obras de arte con el distintivo estilo de Studio Ghibli. Aprende cómo GhibliIA aprovecha la IA avanzada para transformar tus ideas en mágicos visuales inspirados en Ghibli. </p> <!-- 元信息卡片 -->  <!-- 标签 -->  </div> <!-- 内容区块卡片 --> <main class="content-sections" itemProp="articleBody" data-astro-cid-yw7poyxk> <div class="section-card section-level-2" data-animate data-section-index="0" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="presentando-ghibliia-una-nueva-era-de-creacin-artstica-con-ia" class="section-title section-h2" data-astro-cid-yw7poyxk> Presentando GhibliIA: Una Nueva Era de Creación Artística con IA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">GhibliIA representa un avance revolucionario en la generación de imágenes impulsada por IA, específicamente diseñada para capturar la encantadora estética visual del icónico estilo de animación de Studio Ghibli. Como la principal plataforma de IA Ghibli, GhibliIA combina modelos de aprendizaje automático de vanguardia con precisión artística para transformar tus ideas en impresionantes obras de arte inspiradas en Ghibli.</p></div><div class="content-block" data-astro-cid-yw7poyxk><h3 id="la-diferencia-de-ghibliia" class="md-heading md-h3">La Diferencia de GhibliIA</h3></div><div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">Lo que distingue a GhibliIA de otros generadores de imágenes es su enfoque especializado en el distintivo estilo artístico de Ghibli. A través de un extenso entrenamiento en elementos visuales característicos de las películas de Studio Ghibli, GhibliIA puede reproducir auténticamente:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ol class="md-list"><li class="md-list-item"><strong class="md-strong">Diseño de Personajes Fantasiosos</strong>: GhibliIA captura las distintivas características y expresiones de los personajes</li><li class="md-list-item"><strong class="md-strong">Paisajes Naturales Mágicos</strong>: Transforma escenas ordinarias en entornos encantados inspirados en Ghibli</li><li class="md-list-item"><strong class="md-strong">Paletas de Colores Oníricas</strong>: Experimenta los característicos esquemas de colores suaves pero vibrantes</li><li class="md-list-item"><strong class="md-strong">Estética de Animación Dibujada a Mano</strong>: GhibliIA preserva la auténtica sensación artesanal</li></ol></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="1" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="base-tcnica-de-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> Base Técnica de GhibliIA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">La plataforma GhibliIA funciona con una sofisticada combinación de GPT-4o y modelos de difusión especializados, ajustados para interpretar descripciones textuales y entradas visuales con resultados al estilo Ghibli.</p></div><div class="content-block" data-astro-cid-yw7poyxk><h3 id="componentes-tecnolgicos-principales" class="md-heading md-h3">Componentes Tecnológicos Principales</h3></div><div class="content-block" data-astro-cid-yw7poyxk><ul class="md-list"><li class="md-list-item"><strong class="md-strong">Redes Neuronales Avanzadas</strong>: GhibliIA utiliza arquitectura de generación de imágenes de última generación</li><li class="md-list-item"><strong class="md-strong">Entrenamiento Específico de Estilo</strong>: Nuestros modelos de IA Ghibli están calibrados con precisión para la estética de Studio Ghibli</li><li class="md-list-item"><strong class="md-strong">Comprensión Contextual</strong>: GhibliIA interpreta indicaciones complejas para generar visuales apropiados para cada escena</li><li class="md-list-item"><strong class="md-strong">Procesamiento Multicapa</strong>: Manejo simultáneo de primer plano, personajes, fondos e iluminación</li></ul></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="2" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="por-qu-elegir-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> ¿Por Qué Elegir GhibliIA? </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">GhibliIA ofrece ventajas incomparables para artistas, fans y creadores:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ul class="md-list"><li class="md-list-item"><strong class="md-strong">Accesibilidad</strong>: Crea arte profesional al estilo Ghibli sin necesidad de amplia formación artística</li><li class="md-list-item"><strong class="md-strong">Eficiencia</strong>: Genera ilustraciones completas en minutos en lugar de horas o días</li><li class="md-list-item"><strong class="md-strong">Personalización</strong>: Ajusta cada aspecto de tu creación de IA Ghibli mediante indicaciones detalladas</li><li class="md-list-item"><strong class="md-strong">Versatilidad</strong>: Usa GhibliIA para proyectos personales, contenido de redes sociales o aplicaciones comerciales</li></ul></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="3" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="proceso-de-creacin-de-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> Proceso de Creación de GhibliIA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">La plataforma GhibliIA transforma tus ideas en obras de arte al estilo Ghibli mediante un proceso sofisticado:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ol class="md-list"><li class="md-list-item"><strong class="md-strong">Análisis de Entrada</strong>: GhibliIA procesa tu indicación textual o imagen de referencia</li><li class="md-list-item"><strong class="md-strong">Aplicación de Estilo</strong>: El motor de IA Ghibli aplica elementos artísticos característicos</li><li class="md-list-item"><strong class="md-strong">Mejora de Detalles</strong>: Algoritmos avanzados aseguran detalles intrincados específicos de Ghibli</li><li class="md-list-item"><strong class="md-strong">Control de Calidad</strong>: El procesamiento final preserva la sensación de dibujo a mano auténtica del arte Ghibli</li></ol></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="4" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="la-evolucin-de-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> La Evolución de GhibliIA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">Desde su creación, GhibliIA ha evolucionado continuamente para proporcionar la experiencia de IA Ghibli más auténtica:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ul class="md-list"><li class="md-list-item"><strong class="md-strong">Lanzamiento Inicial</strong>: Generación básica de imágenes al estilo Ghibli con personalización limitada</li><li class="md-list-item"><strong class="md-strong">Modelos Mejorados</strong>: Diseño de personajes mejorado e integración de fondos</li><li class="md-list-item"><strong class="md-strong">Funciones Avanzadas</strong>: Capacidades de transformación de texto a imagen y de imagen a imagen</li><li class="md-list-item"><strong class="md-strong">Versión Actual</strong>: Control de estilo integral y salida de alta resolución</li></ul></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="5" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="comunidad-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> Comunidad GhibliIA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">La plataforma GhibliIA ha fomentado una vibrante comunidad de creadores que comparten:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ul class="md-list"><li class="md-list-item">Técnicas creativas de indicaciones para resultados óptimos de IA Ghibli</li><li class="md-list-item">Exhibiciones de obras de arte de GhibliIA y galerías de inspiración</li><li class="md-list-item">Consejos técnicos para maximizar el potencial de las herramientas de IA Ghibli</li><li class="md-list-item">Proyectos colaborativos que celebran la estética Ghibli</li></ul></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="6" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="aplicaciones-profesionales-de-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> Aplicaciones Profesionales de GhibliIA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">Más allá de la expresión creativa personal, GhibliIA sirve para numerosos propósitos profesionales:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ul class="md-list"><li class="md-list-item"><strong class="md-strong">Creación de Contenido</strong>: Genera visuales únicos inspirados en Ghibli para plataformas online</li><li class="md-list-item"><strong class="md-strong">Arte Conceptual</strong>: Usa GhibliIA para prototipado rápido e ideación visual</li><li class="md-list-item"><strong class="md-strong">Recursos Educativos</strong>: Crea ilustraciones atractivas al estilo Ghibli para materiales de aprendizaje</li><li class="md-list-item"><strong class="md-strong">Proyectos de Fan Art</strong>: Desarrolla tributos de alta calidad a los queridos mundos de Ghibli</li></ul></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="7" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="compromiso-de-ghibliia-con-la-calidad" class="section-title section-h2" data-astro-cid-yw7poyxk> Compromiso de GhibliIA con la Calidad </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">El equipo detrás de GhibliIA mantiene una dedicación inquebrantable a:</p></div><div class="content-block" data-astro-cid-yw7poyxk><ul class="md-list"><li class="md-list-item">Mejora continua del modelo para una estética Ghibli cada vez más auténtica</li><li class="md-list-item">Actualizaciones regulares que incorporan comentarios de los usuarios</li><li class="md-list-item">Prácticas éticas de desarrollo de IA</li><li class="md-list-item">Apreciación respetuosa del legado artístico de Studio Ghibli</li></ul></div> </div> </div><div class="section-card section-level-2" data-animate data-section-index="8" data-astro-cid-yw7poyxk>  <div class="section-decoration" data-astro-cid-yw7poyxk> <div class="decoration-dot" data-astro-cid-yw7poyxk></div> <div class="decoration-line" data-astro-cid-yw7poyxk></div> </div>  <h2 id="experimenta-la-magia-de-ghibliia" class="section-title section-h2" data-astro-cid-yw7poyxk> Experimenta la Magia de GhibliIA </h2>  <div class="section-content" data-astro-cid-yw7poyxk> <div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">GhibliIA te invita a descubrir la alegría de crear tus propias obras maestras inspiradas en Ghibli. Ya seas un fan de toda la vida de Studio Ghibli o un artista digital en busca de nuevas posibilidades creativas, GhibliIA ofrece una puerta de acceso accesible al encantador mund
373o de la estética Ghibli a través del poder de la IA avanzada.</p></div><div class="content-block" data-astro-cid-yw7poyxk><p class="md-paragraph">Desbloquea hoy tu potencial creativo con GhibliIA – donde la imaginación se encuentra con la innovación de la IA Ghibli.</p></div> </div> </div> </main> </div> </article>  </main> <footer class="footer" data-astro-cid-sz7xmlte> <!-- 装饰性背景 --> <div class="footer-decoration" aria-hidden="true" data-astro-cid-sz7xmlte></div> <div class="footer-container" data-astro-cid-sz7xmlte> <!-- 主要内容区 --> <div class="footer-main" data-astro-cid-sz7xmlte> <!-- 品牌部分 --> <div class="footer-brand" style="--section-index: 0" data-astro-cid-sz7xmlte> <a href="/" class="brand-logo-link" data-astro-cid-sz7xmlte> <div class="brand-logo" role="img" aria-label="GhibliIA - Generador de Arte IA al Estilo Studio Ghibli" data-astro-cid-sz7xmlte></div> <span class="brand-name" data-astro-cid-sz7xmlte>GhibliIA</span> </a> <p class="brand-tagline" data-astro-cid-sz7xmlte>Transforma la imaginación en magia Ghibli</p> <p class="brand-description" data-astro-cid-sz7xmlte> Una plataforma impulsada por IA especializada en la estética auténtica de Studio Ghibli. Crea arte encantador con paletas de colores suaves características, elementos caprichosos y esa atmósfera mágica única de las películas Ghibli. </p> <!-- 魔法装饰 --> <div class="brand-decoration" aria-hidden="true" data-astro-cid-sz7xmlte> <svg class="sparkle-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-sz7xmlte> <path d="M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z" data-astro-cid-sz7xmlte></path> </svg> </div> </div> <!-- 导航链接区 --> <div class="footer-nav" data-astro-cid-sz7xmlte> <!-- 产品 --> <div class="nav-column" style="--section-index: 1" data-astro-cid-sz7xmlte> <h3 class="nav-heading" data-astro-cid-sz7xmlte> <svg class="nav-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-sz7xmlte> <rect width="18" height="18" x="3" y="3" rx="2" data-astro-cid-sz7xmlte></rect> <path d="M3 9h18" data-astro-cid-sz7xmlte></path> <path d="M9 21V9" data-astro-cid-sz7xmlte></path> </svg> Producto </h3> <ul class="nav-links" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/" class="nav-link" data-astro-cid-sz7xmlte>Generador de Imágenes</a> </li><li data-astro-cid-sz7xmlte> <a href="/video/mindvideo" class="nav-link" data-astro-cid-sz7xmlte>Generador de Videos</a> </li><li data-astro-cid-sz7xmlte> <a href="/effects" class="nav-link" data-astro-cid-sz7xmlte>Galería de Efectos</a> </li><li data-astro-cid-sz7xmlte> <a href="/ghibliia-features" class="nav-link" data-astro-cid-sz7xmlte>Características</a> </li> </ul> </div> <!-- 支持 --> <div class="nav-column" style="--section-index: 2" data-astro-cid-sz7xmlte> <h3 class="nav-heading" data-astro-cid-sz7xmlte> <svg class="nav-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-sz7xmlte> <circle cx="12" cy="12" r="10" data-astro-cid-sz7xmlte></circle> <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" data-astro-cid-sz7xmlte></path> <path d="M12 17h.01" data-astro-cid-sz7xmlte></path> </svg> Soporte </h3> <ul class="nav-links" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/how-to-use-ghibliia" class="nav-link" data-astro-cid-sz7xmlte>Cómo Usar</a> </li><li data-astro-cid-sz7xmlte> <a href="/about-ghibliia" class="nav-link" data-astro-cid-sz7xmlte>Sobre Nosotros</a> </li><li data-astro-cid-sz7xmlte> <a href="/ghibliia-faqs" class="nav-link" data-astro-cid-sz7xmlte>Preguntas Frecuentes</a> </li><li data-astro-cid-sz7xmlte> <a href="/cdn-cgi/l/email-protection#01637472686f647272417578782f6068" class="nav-link" data-astro-cid-sz7xmlte>Contacto</a> </li> </ul> </div> <!-- 法律 --> <div class="nav-column" style="--section-index: 3" data-astro-cid-sz7xmlte> <h3 class="nav-heading" data-astro-cid-sz7xmlte> <svg class="nav-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-sz7xmlte> <path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" data-astro-cid-sz7xmlte></path> <path d="M14 2v4a2 2 0 0 0 2 2h4" data-astro-cid-sz7xmlte></path> </svg> Legal </h3> <ul class="nav-links" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/privacy" class="nav-link" data-astro-cid-sz7xmlte>Política de Privacidad</a> </li><li data-astro-cid-sz7xmlte> <a href="/refund" class="nav-link" data-astro-cid-sz7xmlte>Política de Reembolso</a> </li><li data-astro-cid-sz7xmlte> <a href="/terms" class="nav-link" data-astro-cid-sz7xmlte>Términos de Servicio</a> </li> </ul> </div> </div> </div> <!-- 底部版权信息 --> <div class="footer-bottom" style="--section-index: 4" data-astro-cid-sz7xmlte> <div class="footer-divider" data-astro-cid-sz7xmlte></div> <div class="footer-copyright" data-astro-cid-sz7xmlte> <p class="copyright-text" data-astro-cid-sz7xmlte>
374© 2026 ghibliia.com. Todos los derechos reservados. </p> <p class="copyright-badge" data-astro-cid-sz7xmlte> <svg class="heart-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" data-astro-cid-sz7xmlte> <path d="m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z" data-astro-cid-sz7xmlte></path> </svg> Elaborado con cuidado y magia </p> </div> </div> </div> </footer>  </div> <!-- 全局套餐弹窗管理器 --> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style>
vendor: 108 bytes, line 374
374<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
374<script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script>
374<script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script>
374<astro-island uid="Z24kirN" component-url="/_astro/PricingModalManager.4AH3Cxdg.js" component-export="PricingModalManager" renderer-url="/_astro/client.Bv1kQOvy.js" props="{&quot;messages&quot;:[0,{&quot;default&quot;:[0,{&quot;title&quot;:[0,&quot;Elige Tu Plan&quot;],&quot;subtitle&quot;:[0,&quot;Sistema de créditos flexible, paga según uses&quot;]}],&quot;login&quot;:[0,{&quot;title&quot;:[0,&quot;¡Bienvenido de Nuevo! 🎉&quot;],&quot;subtitle&quot;:[0,&quot;Desbloquea potentes funciones de IA con nuestros paquetes de créditos&quot;]}],&quot;lowCredits&quot;:[0,{&quot;title&quot;:[0,&quot;Oferta Especial - ¡15% de DESCUENTO! 🎉&quot;],&quot;subtitle&quot;:[0,&quot;Solo te quedan {credits} créditos. ¡Compra más para seguir usando las funciones de IA!&quot;]}],&quot;error&quot;:[0,{&quot;checkCreditsFailed&quot;:[0,&quot;Error al verificar los créditos:&quot;],&quot;recordPromptFailed&quot;:[0,&quot;Error al registrar el tiempo de solicitud:&quot;],&quot;recordLoginPromptFailed&quot;:[0,&quot;Error al registrar la solicitud de inicio de sesión:&quot;]}]}],&quot;modalMessages&quot;:[0,{&quot;default&quot;:[0,{&quot;title&quot;:[0,&quot;Elige Tu Plan&quot;],&quot;subtitle&quot;:[0,&quot;Sistema de créditos flexible, paga según uso&quot;]}],&quot;credits&quot;:[0,&quot;Créditos&quot;],&quot;plan&quot;:[0,{&quot;starter&quot;:[0,{&quot;name&quot;:[0,&quot;Inicial&quot;],&quot;cta&quot;:[0,&quot;Comenzar&quot;],&quot;feature1&quot;:[0,&quot;250 créditos incluidos&quot;],&quot;feature2&quot;:[0,&quot;Acceso al Generador de Imágenes IA&quot;],&quot;feature3&quot;:[0,&quot;Acceso al Generador de Vídeos IA&quot;],&quot;feature4&quot;:[0,&quot;Generación de texto a imagen&quot;],&quot;feature5&quot;:[0,&quot;Animación de imagen a vídeo&quot;],&quot;feature6&quot;:[0,&quot;Más de 50 plantillas de generación&quot;],&quot;feature7&quot;:[0,&quot;Salida de calidad estándar&quot;],&quot;feature8&quot;:[0,&quot;Los créditos nunca caducan&quot;],&quot;feature9&quot;:[0,&quot;Soporte por correo electrónico&quot;]}],&quot;pro&quot;:[0,{&quot;name&quot;:[0,&quot;Pro&quot;],&quot;cta&quot;:[0,&quot;Hazte Pro&quot;],&quot;badge&quot;:[0,&quot;Más Popular&quot;],&quot;feature1&quot;:[0,&quot;1000 créditos incluidos&quot;],&quot;feature2&quot;:[0,&quot;Todo lo de Inicial&quot;],&quot;feature3&quot;:[0,&quot;Cola de procesamiento prioritaria&quot;],&quot;feature4&quot;:[0,&quot;Salida de calidad HD (1080p)&quot;],&quot;feature5&quot;:[0,&quot;Modo Agente IA Avanzado&quot;],&quot;feature6&quot;:[0,&quot;Soporte para generación por lotes&quot;],&quot;feature7&quot;:[0,&quot;Acceso a API incluido&quot;],&quot;feature8&quot;:[0,&quot;Soporte prioritario por correo&quot;],&quot;feature9&quot;:[0,&quot;Acceso anticipado a nuevas funciones&quot;]}],&quot;premium&quot;:[0,{&quot;name&quot;:[0,&quot;Premium&quot;],&quot;cta&quot;:[0,&quot;Hazte Premium&quot;],&quot;feature1&quot;:[0,&quot;2200 créditos incluidos&quot;],&quot;feature2&quot;:[0,&quot;Todo lo de Pro&quot;],&quot;feature3&quot;:[0,&quot;Salida de calidad 4K&quot;],&quot;feature4&quot;:[0,&quot;Procesamiento por lotes ilimitado&quot;],&quot;feature5&quot;:[0,&quot;Entrenamiento de modelo personalizado&quot;],&quot;feature6&quot;:[0,&quot;Gestor de cuenta dedicado&quot;],&quot;feature7&quot;:[0,&quot;Garantía de SLA&quot;],&quot;feature8&quot;:[0,&quot;Opciones de marca blanca&quot;],&quot;feature9&quot;:[0,&quot;Soporte prioritario 24/7&quot;]}]}],&quot;error&quot;:[0,{&quot;failed&quot;:[0,&quot;Ocurrió un error, por favor intenta más tarde&quot;],&quot;paymentSessionFailed&quot;:[0,&quot;Error al crear sesión de pago&quot;],&quot;paymentLinkNotReceived&quot;:[0,&quot;Enlace de pago no recibido&quot;],&quot;purchaseFailed&quot;:[0,&quot;Compra fallida:&quot;]}],&quot;footer&quot;:[0,{&quot;note&quot;:[0,&quot;Los créditos nunca caducan • Todos los métodos de pago principales aceptados • Garantía de devolución de dinero de 7 días&quot;]}],&quot;aria&quot;:[0,{&quot;purchasePlan&quot;:[0,&quot;Comprar plan {planName} por ${price}&quot;]}]}],&quot;modalComponentMessages&quot;:[0,{&quot;aria&quot;:[0,{&quot;closeModal&quot;:[0,&quot;Cerrar modal&quot;]}],&quot;button&quot;:[0,{&quot;ok&quot;:[0,&quot;OK&quot;],&quot;confirm&quot;:[0,&quot;Confirmar&quot;],&quot;cancel&quot;:[0,&quot;Cancelar&quot;]}]}]}" ssr client="only" opts="{&quot;name&quot;:&quot;PricingModalManager&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island> <!-- What's New 弹窗管理器 --> <astro-island uid="1aa2dl" component-url="/_astro/WhatsNewModalManager.Bu3Dca_b.js" component-export="WhatsNewModalManager" renderer-url="/_astro/client.Bv1kQOvy.js" props="{}" ssr client="only" opts="{&quot;name&quot;:&quot;WhatsNewModalManager&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island> <!-- Toast 通知组件 --> <!-- Toast Notification --><div class="toast-container" id="toast-container" data-astro-cid-d7jtuv6c>
374 <div class="toast" id="toast" data-astro-cid-d7jtuv6c> <div class="toast-icon" data-astro-cid-d7jtuv6c> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="toast-icon-svg" data-astro-cid-d7jtuv6c> <circle cx="12" cy="12" r="10" data-astro-cid-d7jtuv6c></circle> <line x1="12" x2="12" y1="8" y2="12" data-astro-cid-d7jtuv6c></line> <line x1="12" x2="12.01" y1="16" y2="16" data-astro-cid-d7jtuv6c></line> </svg> </div> <div class="toast-content" data-astro-cid-d7jtuv6c> <div class="toast-title" id="toast-title" data-astro-cid-d7jtuv6c>Notification</div> <div class="toast-message" id="toast-message" data-astro-cid-d7jtuv6c>This is a notification message</div> </div> <button type="button" class="toast-close" id="toast-close" data-astro-cid-d7jtuv6c> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-d7jtuv6c> <line x1="18" x2="6" y1="6" y2="18" data-astro-cid-d7jtuv6c></line> <line x1="6" x2="18" y1="6" y2="18" data-astro-cid-d7jtuv6c></line> </svg> </button> </div> </div>  
374<script type="module">const e=document.getElementById("toast"),l=document.getElementById("toast-title"),d=document.getElementById("toast-message"),n=document.getElementById("toast-close");let t=null;function m(i,a,c,o=5e3){t&&clearTimeout(t),e.classList.remove("success","error","warning","info","show"),l.textContent=a,d.textContent=c,e.classList.add(i),setTimeout(()=>{e.classList.add("show")},10),o>0&&(t=window.setTimeout(()=>{s()},o))}function s(){e.classList.remove("show"),t&&(clearTimeout(t),t=null)}n&&n.addEventListener("click",()=>{s()});window.showToast=m;window.hideToast=s;</script>
374 <!-- 登录奖励横幅 --> <astro-island uid="Z1mEMae" component-url="/_astro/LoginRewardBanner.CCS8hQEF.js" component-export="default" renderer-url="/_astro/client.Bv1kQOvy.js" props="{&quot;isLoggedIn&quot;:[0,false],&quot;messages&quot;:[0,{&quot;loginRewardBanner&quot;:[0,{&quot;title&quot;:[0,&quot;¡Inicia sesión para reclamar recompensas!&quot;],&quot;description&quot;:[0,&quot;Obtén 10+ créditos gratuitos al registrarte&quot;],&quot;loginButton&quot;:[0,&quot;Iniciar sesión ahora&quot;],&quot;loginButtonLabel&quot;:[0,&quot;Inicia sesión para reclamar tus créditos gratuitos&quot;],&quot;closeButton&quot;:[0,&quot;Cerrar banner&quot;]}]}],&quot;locale&quot;:[0,&quot;es&quot;]}" ssr client="only" opts="{&quot;name&quot;:&quot;LoginRewardBanner&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island> <!-- ✅ 延迟加载第三方脚本 - 优化FCP和TBT --> 
374<script>
375      (function() {
376        // 延迟加载Google Tag Manager和AdSense,避免阻塞首次内容绘制
377        function loadThirdPartyScripts() {
378          // Google Tag Manager (gtag.js)
379          const gtagScript = document.createElement('script');
380          gtagScript.async = true;
381          gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=AW-17169724171';
382          document.head.appendChild(gtagScript);
383
384          // 初始化gtag
385          window.dataLayer = window.dataLayer || [];
386          function gtag(){window.dataLayer.push(arguments);}
387          gtag('js', new Date());
388          gtag('config', 'AW-17169724171');
389
390          // Google AdSense
391          const adsenseScript = document.createElement('script');
392          adsenseScript.async = true;
393          adsenseScript.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5918823704025895';
394          adsenseScript.crossOrigin = 'anonymous';
395          document.head.appendChild(adsenseScript);
396        }
397
398        // 延迟策略:3秒后或首次用户交互时加载
399        let scriptsLoaded = false;
400        const loadScripts = () => {
401          if (!scriptsLoaded) {
402            scriptsLoaded = true;
403            loadThirdPartyScripts();
404          }
405        };
406
407        // 3秒后自动加载
408        setTimeout(loadScripts, 3000);
409
410        // 或在首次用户交互时立即加载(提升用户体验)
411        const interactionEvents = ['mousedown', 'touchstart', 'scroll', 'keydown'];
412        interactionEvents.forEach(eventName => {
413          window.addEventListener(eventName, loadScripts, { once: true, passive: true });
414        });
415      })();
416    </script>
416 
416<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"ccedce870fec49c395cac350b87ba3ef","r":1,"spa":2}' crossorigin="anonymous"></script>
416
417</body> </html>  
417<script type="module">function s(t){const i=decodeURIComponent(t.getAttribute("data-code")||""),e=t.querySelector(".copy-text"),o=e?.textContent||"";navigator.clipboard.writeText(i).then(()=>{t.classList.add("copied"),e&&(e.textContent="✓ Copied"),setTimeout(()=>{t.classList.remove("copied"),e&&(e.textContent=o)},2e3)}).catch(()=>{t.classList.add("error"),setTimeout(()=>{t.classList.remove("error")},2e3)})}window.copyCode=s;function n(){const t=document.querySelectorAll("[data-animate]"),i=new IntersectionObserver(e=>{e.forEach(o=>{o.isIntersecting&&(setTimeout(()=>{o.target.classList.add("animated")},50),i.unobserve(o.target))})},{threshold:.1,rootMargin:"0px 0px -50px 0px"});t.forEach(e=>i.observe(e))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",n):n();</script>
417 

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.