1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" as="image" href="/logo.svg"/><link rel="preload" as="image" href="https://cdn.pixpal.ai/images/16a56dda399f229fb0cea45789aa4ed3.webp"/><link rel="preload" as="image" href="https://cdn.pixpal.ai/images/86cd4aa46af1d08c8add89c8ac46af8c.webp"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geologica:wght@300;400;500;600;700&family=Noto+Serif:ital,wght@0,400;0,600;0,700;1,400&display=swap" data-precedence="default"/><link rel="stylesheet" href="/assets/index-Cg_EkKJl.css" data-precedence="default"/>
vendor: 72 bytes, line 1
1<script id="ga-loader" src="https://www.googletagmanager.com/gtag/js?id=
1G-VTJ3T9ZFCC
vendor: 20 bytes, line 1
1" async=""></script>
1<title>AI Image â PixPal AI</title><meta name="description" content="Generate images from text prompts"/><meta name="robots" content="index, follow"/><meta property="og:title" content="AI Image â PixPal AI"/><meta property="og:description" content="Generate images from text prompts"/><meta property="og:url" content="https://pixpal.ai/apps/ai-image"/><meta property="og:type" content="website"/><meta property="og:site_name" content="PixPal AI"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://pixpal.ai/logo.svg"/><meta property="og:image:alt" content="AI Image â PixPal AI"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="AI Image â PixPal AI"/><meta name="twitter:description" content="Generate images from text prompts"/><meta name="twitter:image" content="https://pixpal.ai/logo.svg"/><meta property="og:locale:alternate" content="zh_CN"/><link rel="modulepreload" href="/assets/index-BWXA-IcU.js"/><link rel="modulepreload" href="/assets/jsx-runtime-C27Mmbu5.js"/><link rel="modulepreload" href="/assets/createBaseUIEventDetails-qoqc21e7.js"/><link rel="modulepreload" href="/assets/useOpenInteractionType-B5d4MbaC.js"/><link rel="modulepreload" href="/assets/input-PJYwky6J.js"/><link rel="modulepreload" href="/assets/messages-UbiuFgSo.js"/><link rel="modulepreload" href="/assets/api-client-DQy2gWR7.js"/><link rel="modulepreload" href="/assets/useStore-B4GNwqYv.js"/><link rel="modulepreload" href="/assets/seo-DmzuDXLW.js"/><link rel="modulepreload" href="/assets/navigation-9t_dKD_J.js"/><link rel="modulepreload" href="/assets/matchContext-BvFX7iVu.js"/><link rel="modulepreload" href="/assets/utils-DXalBF5w.js"/><link rel="modulepreload" href="/assets/createLucideIcon-yqNWVwE6.js"/><link rel="modulepreload" href="/assets/react-dom-BGozS2fx.js"/><link rel="modulepreload" href="/assets/with-selector-DpfNsvDm.js"/><link rel="modulepreload" href="/assets/field-Cl5m9iSg.js"/><link rel="modulepreload" href="/assets/config-DWge4-w6.js"/><link rel="modulepreload" href="/assets/route-CFqFE3zf.js"/><link rel="modulepreload" href="/assets/chevron-down-DM200Jqj.js"/><link rel="modulepreload" href="/assets/eraser-BX6YQ6se.js"/><link rel="modulepreload" href="/assets/expand-Bq8QK-xO.js"/><link rel="modulepreload" href="/assets/file-text-CEYCaWu2.js"/><link rel="modulepreload" href="/assets/folder-open-YzdVSkvt.js"/><link rel="modulepreload" href="/assets/use-daily-credits-wRP5OEc6.js"/><link rel="modulepreload" href="/assets/site-user-menu-DqRqtIB7.js"/><link rel="modulepreload" href="/assets/daily-credits-banner-BNezsOSh.js"/><link rel="modulepreload" href="/assets/locale-DTJXWvhd.js"/><link rel="modulepreload" href="/assets/video-gTOXP0gq.js"/><link rel="modulepreload" href="/assets/plus-Bq7lKVQe.js"/><link rel="modulepreload" href="/assets/wand-sparkles-Bkml_unH.js"/><link rel="modulepreload" href="/assets/zoom-in-BGkWLL-Z.js"/><link rel="modulepreload" href="/assets/_tool-DjP1G0yF.js"/><link rel="modulepreload" href="/assets/useCompositeItem-BxgtKV1z.js"/><link rel="modulepreload" href="/assets/useCompositeListItem-vc7wKxVP.js"/><link rel="modulepreload" href="/assets/select-DTUSjZrM.js"/><link rel="modulepreload" href="/assets/switch-UgCwZ8O-.js"/><link rel="modulepreload" href="/assets/isElementDisabled-KSuuBj8D.js"/><link rel="modulepreload" href="/assets/useMutation-Dap6LLda.js"/><link rel="modulepreload" href="/assets/chevron-left-nXp2jQNd.js"/><link rel="modulepreload" href="/assets/coins-CjIBvDfy.js"/><link rel="modulepreload" href="/assets/copy-BVbK0L1b.js"/><link rel="modulepreload" href="/assets/download-C3qA3mXp.js"/><link rel="modulepreload" href="/assets/image-plus-CmOuqBFa.js"/><link rel="modulepreload" href="/assets/generator-sample-carousel-BFqCb54n.js"/><link rel="modulepreload" href="/assets/daily-credits-claim-DV4r_BiT.js"/><link rel="modulepreload" href="/assets/image-uploader-B94VE4cv.js"/><link rel="modulepreload" href="/assets/label-DcU-l155.js"/><link rel="modulepreload" href="/assets/textarea-CBeA6l6g.js"/><link rel="modulepreload" href="/assets/apps-tool-runtime-BQCvSJ9d.js"/><link rel="modulepreload" href="/assets/task-recreate-C5F3vCtI.js"/><link rel="modulepreload" href="/assets/ai-task-errors-D09EL5Ws.js"/><link rel="modulepreload" href="/assets/download-image-BQgtPxFz.js"/><link rel="modulepreload" href="/assets/upload-errors-C4nBwGZC.js"/><link rel="modulepreload" href="/assets/site-layout-C3Y7g-AH.js"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/favicon.svg"/><link rel="canonical" href="https://pixpal.ai/apps/ai-image"/><link rel="alternate" hrefLang="en" href="https://pixpal.ai/apps/ai-image"/><link rel="alternate" hrefLang="zh" href="https://pixpal.ai/zh/apps/ai-image"/><link rel="alternate" hrefLang="x-default" href="https://pixpal.ai/apps/ai-image"/></head><body class="font-sans antialiased">
1<script>((e, i, s, u, m, a, l, h) => { 2 let d = document.documentElement, w = ["light", "dark"]; 3 function p(n) { 4 (Array.isArray(e) ? e : [e]).forEach((y) => { 5 let k = y === "class", S = k && a ? m.map((f) => a[f] || f) : m; 6 k ? (d.classList.remove(...S), d.classList.add(a && a[n] ? a[n] : n)) : d.setAttribute(y, n); 7 }), R(n); 8 } 9 function R(n) { 10 h && w.includes(n) && (d.style.colorScheme = n); 11 } 12 function c() { 13 return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; 14 } 15 if (u) p(u); 16 else try { 17 let n = localStorage.getItem(i) || s; 18 p(l && n === "system" ? c() : n); 19 } catch (n) {} 20})("class","theme","system",null,["light","dark"],null,true,true)</script>
20<!--$--><div class="min-h-screen bg-background text-foreground"><header class="fixed inset-x-0 top-0 z-[120] flex h-14 items-center justify-between border-b border-border bg-card px-4"><a href="/" class="flex items-center gap-2"><img src="/logo.svg" alt="" class="size-8 rounded-lg" width="32" height="32"/><span class="hidden font-semibold text-foreground sm:inline">PixPal AI</span></a><div class="flex items-center gap-1"><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-8"><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="lucide lucide-sun size-4 dark:hidden" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></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="lucide lucide-moon hidden size-4 dark:block" aria-hidden="true"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button><div class="size-9 shrink-0 rounded-full animate-pulse bg-muted" aria-hidden="true"></div></div></header><div class="flex pt-[56px]"><aside class="fixed bottom-0 left-0 top-14 z-[110] hidden w-64 flex-col border-r border-border bg-card md:flex"><div class="flex flex-1 flex-col overflow-y-auto px-3 py-4"><nav class="space-y-1"><a href="/" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house size-5 shrink-0" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>Home</a><a href="/apps/create" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard size-5 shrink-0" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg>AI Studio</a><div class="pt-3"><button type="button" class="flex w-full items-center justify-between px-4 py-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground">AI Editing<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="lucide lucide-chevron-down size-3.5 transition-transform rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="space-y-0.5"><a href="/apps/remove-background" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles size-5 shrink-0" aria-hidden="true"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg>
20Remove Background</a><a href="/apps/remove-watermark" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-stamp size-5 shrink-0" aria-hidden="true"><path d="M5 22h14"></path><path d="M19.27 13.73A2.5 2.5 0 0 0 17.5 13h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-1.5c0-.66-.26-1.3-.73-1.77Z"></path><path d="M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-3-3c-1.66 0-3 1-3 3s1 2 1 3.5V13"></path></svg>Remove Watermark</a><a href="/apps/object-remover" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-eraser size-5 shrink-0" aria-hidden="true"><path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"></path><path d="M22 21H7"></path><path d="m5 11 9 9"></path></svg>AI Object Removal</a><a href="/apps/image-upscaler" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zoom-in size-5 shrink-0" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><line x1="21" x2="16.65" y1="21" y2="16.65"></line><line x1="11" x2="11" y1="8" y2="14"></line><line x1="8" x2="14" y1="11" y2="11"></line></svg>Image Upscaler</a><a href="/apps/ai-image-extender" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-expand size-5 shrink-0" aria-hidden="true"><path d="m15 15 6 6"></path><path d="m15 9 6-6"></path><path d="M21 16v5h-5"></path><path d="M21 8V3h-5"></path><path d="M3 16v5h5"></path><path d="m3 21 6-6"></path><path d="M3 8V3h5"></path><path d="M9 9 3 3"></path></svg>AI Image Extender</a><a href="/apps/ai-image-translator" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages size-5 shrink-0" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg>AI Image Translator</a></div></div><div class="pt-2"><button type="button" class="flex w-full items-center justify-between px-4 py-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground">AI Creation<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="lucide lucide-chevron-down size-3.5 transition-transform rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="space-y-0.5"><a class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all bg-accent font-medium text-foreground active" href="/apps/ai-image" data-status="active" aria-current="page"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles size-5 shrink-0 text-foreground" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>AI Image</a><a href="/apps/ai-video" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-video size-5 shrink-0" aria-hidden="true"><path d="m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5"></path><rect x="2" y="6" width="14" height="12" rx="2"></rect></svg>AI Video</a><a href="/apps/image-to-prompt" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text size-5 shrink-0" aria-hidden="true"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg>Image to Prompt</a></div></div><div class="space-y-0.5 pt-2"><a href="/apps/creations" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open size-5 shrink-0" aria-hidden="true"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg>My Creations</a><a href="/apps/tools" class="flex h-10 items-center gap-3 rounded-lg px-4 text-sm transition-all text-muted-foreground hover:bg-accent/60 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-grid size-5 shrink-0" aria-hidden="true"><rect width="7" height="7" x="3" y="3" rx="1"></rect><rect width="7" height="7" x="14" y="3" rx="1"></rect><rect width="7" height="7" x="14" y="14" rx="1"></rect><rect width="7" height="7" x="3" y="14" rx="1"></rect></svg>All Tools</a></div></nav></div><div class="shrink-0 space-y-2 border-t border-border p-3"><a href="/pricing" class="flex h-10 w-full items-center justify-center gap-2 rounded-lg bg-[var(--pixpal-yellow)] text-sm font-bold text-[var(--pixpal-dark)] transition-opacity hover:opacity-90"><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="lucide lucide-crown
20size-4" aria-hidden="true"><path d="M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z"></path><path d="M5 21h14"></path></svg>Upgrade to Premium</a><div class="px-1"><button type="button" tabindex="0" aria-haspopup="menu" id="base-ui-_R_t6a6aq_" data-slot="dropdown-menu-trigger" class="inline-flex items-center transition-colors outline-none gap-2 border text-sm h-9 w-full justify-between rounded-lg border-border bg-background px-3 text-foreground hover:bg-accent"><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="lucide lucide-globe size-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span>English</span><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="lucide lucide-chevron-down size-4 opacity-70" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></aside><div class="flex min-w-0 flex-1 flex-col md:ml-64"><main class="min-h-[calc(100vh-56px)] flex-1 overflow-auto bg-background"><div class="flex flex-col bg-apps-canvas md:fixed md:inset-x-0 md:bottom-0 md:left-64 md:top-14 md:z-40 md:flex-row md:overflow-hidden pb-[calc(4rem+env(safe-area-inset-bottom,0px))] md:pb-0"><div class="flex w-full shrink-0 flex-col border-b border-border bg-card md:h-full md:w-[400px] md:overflow-y-auto md:border-b-0 md:border-r"><div class="border-b border-border px-4 py-4"><h1 class="text-base font-bold text-foreground">AI Image Generator</h1></div><div class="flex flex-col gap-5 p-4 pb-8"><div data-orientation="horizontal" data-activation-direction="none" data-slot="tabs" class="group/tabs flex gap-2 data-horizontal:flex-col"><div data-orientation="horizontal" data-activation-direction="none" role="tablist" data-slot="tabs-list" data-variant="default" class="group/tabs-list items-center justify-center text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none grid h-9 w-full rounded-lg bg-apps-tab-track p-0.5 grid-cols-2"><button type="button" data-active="" data-orientation="horizontal" aria-disabled="false" tabindex="-1" role="tab" aria-selected="true" id="base-ui-_R_4pbaa6aq_" data-composite-item-active="" data-slot="tabs-trigger" class="relative inline-flex flex-1 cursor-pointer items-center justify-center gap-1.5 border-transparent px-1.5 py-0.5 font-medium whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:data-active:border-input dark:data-active:text-foreground after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100 h-full rounded-md border-0 text-xs shadow-none text-muted-foreground hover:text-foreground data-active:border-0 data-active:bg-apps-tab-active data-active:font-medium data-active:text-foreground data-active:shadow-sm dark:data-active:bg-apps-tab-active dark:data-active:shadow-md dark:data-active:shadow-black/30 dark:data-active:ring-1 dark:data-active:ring-white/10">Image to Image</button><button type="button" data-orientation="horizontal" aria-disabled="false" tabindex="-1" role="tab" aria-selected="false" id="base-ui-_R_8pbaa6aq_" data-slot="tabs-trigger" class="relative inline-flex flex-1 cursor-pointer items-center justify-center gap-1.5 border-transparent px-1.5 py-0.5 font-medium whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='
20size-'])]:size-4 group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:data-active:border-input dark:data-active:text-foreground after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100 h-full rounded-md border-0 text-xs shadow-none text-muted-foreground hover:text-foreground data-active:border-0 data-active:bg-apps-tab-active data-active:font-medium data-active:text-foreground data-active:shadow-sm dark:data-active:bg-apps-tab-active dark:data-active:shadow-md dark:data-active:shadow-black/30 dark:data-active:ring-1 dark:data-active:ring-white/10">Text to Image</button></div></div><div class="space-y-2"><div class="flex flex-wrap items-baseline justify-between gap-x-2 gap-y-0.5"><label data-slot="label" class="flex items-center gap-2 font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs text-muted-foreground">Image</label><span class="text-xs text-muted-foreground">Up to 14</span></div><div class="space-y-2"><input type="file" accept="image/jpeg,image/png,image/webp,image/jfif,image/*" multiple="" class="hidden"/><button type="button" class="flex w-full flex-col items-center justify-center gap-1.5 rounded-lg border-2 border-dashed border-border bg-muted/30 px-4 transition hover:border-foreground
20/25 hover:bg-muted/50 aspect-[5/2] max-h-[120px]"><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="lucide lucide-image text-muted-foreground/60 size-6" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect><circle cx="9" cy="9" r="2"></circle><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path></svg><div class="text-center"><span class="text-xs text-muted-foreground">Click or drag here</span><span class="mt-0.5 block text-[10px] leading-snug text-muted-foreground/80">JPG, PNG, WebP · max 10MB</span></div></button></div><div class="space-y-2"><label data-slot="label" class="flex items-center gap-2 font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs text-muted-foreground">Paste image (Ctrl V) or URL</label><input type="url" placeholder="Image URL" class="h-10 w-full rounded-xl border border-border bg-background px-3 text-sm text-foreground outline-none ring-offset-background focus-visible:ring-2 focus-visible:ring-ring" value=""/></div><div class="flex items-center gap-2 text-xs text-muted-foreground"><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="lucide lucide-loader-circle size-3.5 animate-spin" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg>Loading recent imagesâ¦</div></div><div class="space-y-2"><label data-slot="label" class="flex items-center gap-2 font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs text-muted-foreground">Model Selection</label><button type="button" tabindex="0" id="base-ui-_R_9pbaa6aq_" role="combobox" aria-expanded="false" aria-haspopup="listbox" data-slot="select-trigger" data-size="default" class="flex cursor-pointer items-center justify-between gap-1.5 border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 h-10 w-full rounded-xl"><span data-slot="select-value" class="flex flex-1 text-left">Nano Banana 2</span><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="lucide lucide-chevron-down pointer-events-none size-4 text-muted-foreground" aria-hidden="true"><path d="m6 9 6 6 6-6"></path>â¼</svg></button><input id="base-ui-_R_9pbaa6aq_-hidden-input" style="clip-path:inset(50%);overflow:hidden;white-space:nowrap;border:0;padding:0;width:1px;height:1px;margin:-1px;position:fixed;top:0;left:0" tabindex="-1" aria-hidden="true" value="gemini-3.1-flash-image-preview"/></div><div class="space-y-2"><label data-slot="label" class="flex items-center gap-2 font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs text-muted-foreground">Prompt</label><textarea data-slot="textarea" class="flex field-sizing-content w-full border border-input bg-transparent px-2.5 py-2 transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 min-h-[140px] resize-none rounded-xl text-sm" placeholder="A professional product photo on a clean white background, studio lighting"></textarea><p class="text-xs text-muted-foreground">0<!-- --> / <!-- -->2000</p></div><div class="space-y-4"><div class="grid grid-cols-2 gap-3"><div class="col-span-2 space-y-1.5"><label data-slot="label" class="flex items-center gap-2 font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs text-muted-foreground">Aspect ratio</label><div class="grid grid-cols-3 gap-2 sm:grid-cols-4"><button type="button" aria-pressed="true" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-primary bg-primary/5 ring-1 ring-primary/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-primary bg-primary/15" style="width:22px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none font-medium text-foreground">Auto</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">1:1</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:8px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">1:4</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:8px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">4:1</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:8px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">1:8</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:8px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">8:1</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:14.666666666666666px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">2:3</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:14.666666666666666px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">3:2</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:16.5px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">3:4</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:16.5px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">4:3</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:17.6px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">4:5</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:17.6px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">5:4</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:12.375px;height:22px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">9:16</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground
20/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:12.375px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">16:9</span></button><button type="button" aria-pressed="false" class="flex flex-col items-center gap-1.5 rounded-xl border px-1.5 py-2 transition border-border bg-muted/20 hover:border-foreground/20 hover:bg-muted/40"><span class="flex size-7 shrink-0 items-center justify-center" aria-hidden="true"><span class="rounded-[3px] border-2 transition-colors border-muted-foreground/50 bg-muted-foreground/10" style="width:22px;height:9.428571428571429px"></span></span><span class="max-w-full truncate text-center text-xs leading-none text-muted-foreground">21:9</span></button></div></div><div class="space-y-1.5"><label data-slot="label" class="flex items-center gap-2 font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs text-muted-foreground">Quality</label><button type="button" tabindex="0" id="base-ui-_R_1apbaa6aq_" role="combobox" aria-expanded="false" aria-haspopup="listbox" data-slot="select-trigger" data-size="default" class="flex cursor-pointer items-center justify-between gap-1.5 border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 h-10 w-full rounded-xl"><span data-slot="select-value" class="flex flex-1 text-left">2K</span><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="lucide lucide-chevron-down pointer-events-none size-4 text-muted-foreground" aria-hidden="true"><path d="m6 9 6 6 6-6"></path>â¼</svg></button><input id="base-ui-_R_1apbaa6aq_-hidden-input" style="clip-path:inset(50%);overflow:hidden;white-space:nowrap;border:0;padding:0;width:1px;height:1px;margin:-1px;position:fixed;top:0;left:0" tabindex="-1" aria-hidden="true" value="2K"/></div><div class="col-span-2 flex items-center justify-between gap-3 rounded-xl border border-border bg-muted/30 px-3 py-2.5"><label data-slot="label" class="flex items-center gap-2 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 text-xs font-normal">Web search</label><span data-unchecked="" role="switch" tabindex="0" id="base-ui-_R_1epbaa6aq_" aria-checked="false" data-slot="switch" data-size="default" class="peer group/switch relative inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50"><span data-unchecked="" data-slot="switch-thumb" class="pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dar
20k:data-unchecked:bg-foreground"></span></span><input id="base-ui-_R_1epbaa6aqH1_" style="clip-path:inset(50%);overflow:hidden;white-space:nowrap;border:0;padding:0;width:1px;height:1px;margin:-1px;position:fixed;top:0;left:0" tabindex="-1" type="checkbox" aria-hidden="true"/></div></div></div><button type="button" data-disabled="" tabindex="0" disabled="" data-slot="button" class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [a]:hover:bg-primary/80 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12 w-full rounded-xl bg-pixpal-cta text-[var(--pixpal-dark)] hover:bg-pixpal-cta/90"><span class="flex items-center gap-2 font-semibold">Generate<span class="inline-flex items-center gap-1 opacity-80"><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="lucide lucide-coins size-4" aria-hidden="true"><circle cx="8" cy="8" r="6"></circle><path d="M18.09 10.37A6 6 0 1 1 10.34 18"></path><path d="M7 6h1v4"></path><path d="m16.71 13.88.7.71-2.82 2.82"></path></svg>9</span></span></button></div></div><div class="relative flex min-h-[min(55vh,520px)] flex-col bg-background md:min-h-0 md:flex-1 md:bg-apps-canvas"><div class="relative flex min-w-0 flex-1 flex-col"><div class="relative flex min-h-0 flex-1 flex-col items-center justify-center overflow-auto p-6 md:p-10"><div class="flex w-full max-w-5xl flex-col items-center gap-5 px-2 py-4 md:px-6"><div class="relative aspect-[4/3] w-full overflow-hidden rounded-2xl border border-border shadow-lg"><div class="absolute inset-0 transition-opacity duration-700 ease-in-out z-10 opacity-100" aria-hidden="false"><img src="https://cdn.pixpal.ai/images/16a56dda399f229fb0cea45789aa4ed3.webp" alt="Nano Banana 2" class="size-full object-cover"/><div class="absolute inset-0 bg-gradient-to-t from-black/60 via-trans
20parent to-transparent"></div></div><div class="absolute inset-0 transition-opacity duration-700 ease-in-out pointer-events-none z-0 opacity-0" aria-hidden="true"><img src="https://cdn.pixpal.ai/images/86cd4aa46af1d08c8add89c8ac46af8c.webp" alt="Nano Banana 2" class="size-full object-cover"/><div class="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent"></div></div></div><div class="flex gap-2"><button type="button" aria-label="Slide 1" class="h-2 rounded-full transition-all w-8 bg-primary"></button><button type="button" aria-label="Slide 2" class="h-2 rounded-full transition-all w-2 bg-muted-foreground/30"></button></div><div class="text-center"><p class="max-w-md text-sm text-muted-foreground">Your generated images will appear here</p></div></div></div></div></div></div><nav class="fixed inset-x-0 bottom-0 z-[110] flex border-t border-border bg-card pb-[env(safe-area-inset-bottom,0px)] md:hidden"><a href="/apps/create" class="flex min-h-14 flex-1 flex-col items-center justify-center gap-0.5 py-2 text-xs text-muted-foreground"><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="lucide lucide-layout-dashboard size-5" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg>AI Studio</a><a class="flex min-h-14 flex-1 flex-col items-center justify-center gap-0.5 py-2 text-xs font-medium text-foreground active" href="/apps/ai-image" data-status="active" aria-current="page"><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="lucide lucide-sparkles size-5" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>AI Image</a><a href="/apps/ai-video" class="flex min-h-14 flex-1 flex-col items-center justify-center gap-0.5 py-2 text-xs text-muted-foreground"><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="lucide lucide-video size-5" aria-hidden="true"><path d="m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5"></path><rect x="2" y="6" width="14" height="12" rx="2"></rect></svg>AI Video</a><a href="/apps/creations" class="flex min-h-14 flex-1 flex-col items-center justify-center gap-0.5 py-2 text-xs text-muted-foreground"><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="lucide lucide-folder-open size-5" aria-hidden="true"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg>My Creations</a></nav></main></div></div></div>
20<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
20<!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
20<script id="ga-init" async="">
vendor: 118 bytes, line 20
20window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
20G-VTJ3T9ZFCC
vendor: 3 bytes, line 20
20');
20</script>
20<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){if(this.hydrated&&this.streamEnded){const e=()=>{self.$_TSR?.hydrated&&self.$_TSR?.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-BWXA-IcU.js","/assets/jsx-runtime-C27Mmbu5.js","/assets/createBaseUIEventDetails-qoqc21e7.js","/assets/useOpenInteractionType-B5d4MbaC.js","/assets/input-PJYwky6J.js","/assets/messages-UbiuFgSo.js","/assets/api-client-DQy2gWR7.js","/assets/useStore-B4GNwqYv.js","/assets/seo-DmzuDXLW.js","/assets/navigation-9t_dKD_J.js","/assets/matchContext-BvFX7iVu.js","/assets/utils-DXalBF5w.js","/assets/createLucideIcon-yqNWVwE6.js","/assets/react-dom-BGozS2fx.js","/assets/with-selector-DpfNsvDm.js","/assets/field-Cl5m9iSg.js","/assets/config-DWge4-w6.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-BWXA-IcU.js"}}],css:$R[8]=["/assets/index-Cg_EkKJl.css"]},"/apps":$R[9]={preloads:$R[10]=["/assets/route-CFqFE3zf.js","/assets/chevron-down-DM200Jqj.js","/assets/eraser-BX6YQ6se.js","/assets/expand-Bq8QK-xO.js","/assets/file-text-CEYCaWu2.js","/assets/folder-open-YzdVSkvt.js","/assets/use-daily-credits-wRP5OEc6.js","/assets/site-user-menu-DqRqtIB7.js","/assets/daily-credits-banner-BNezsOSh.js","/assets/locale-DTJXWvhd.js","/assets/video-gTOXP0gq.js","/assets/plus-Bq7lKVQe.js","/assets/wand-sparkles-Bkml_unH.js","/assets/zoom-in-BGkWLL-Z.js"]},"/apps/$tool":$R[11]={preloads:$R[12]=["/assets/_tool-DjP1G0yF.js","/assets/useCompositeItem-BxgtKV1z.js","/assets/useCompositeListItem-vc7wKxVP.js","/assets/select-DTUSjZrM.js","/assets/switch-UgCwZ8O-.js","/assets/isElementDisabled-KSuuBj8D.js","/assets/useMutation-Dap6LLda.js","/assets/chevron-left-nXp2jQNd.js","/assets/coins-CjIBvDfy.js","/assets/copy-BVbK0L1b.js","/assets/download-C3qA3mXp.js","/assets/image-plus-CmOuqBFa.js","/assets/generator-sample-carousel-BFqCb54n.js","/assets/daily-credits-claim-DV4r_BiT.js","/assets/image-uploader-B94VE4cv.js","/assets/label-DcU-l155.js","/assets/textarea-CBeA6l6g.js","/assets/apps-tool-runtime-BQCvSJ9d.js","/assets/task-recreate-C5F3vCtI.js","/assets/ai-task-errors-D09EL5Ws.js","/assets/download-image-BQgtPxFz.js","/assets/upload-errors-C4nBwGZC.js","/assets/site-layout-C3Y7g-AH.js"]}}}
20,matches:$R[13]=[$R[14]={i:"__root__�",u:1791206681284,s:"success",l:$R[15]={gaId:"G-VTJ3T9ZFCC",plausibleDomain:"",plausibleSrc:"",adsenseCode:"",crispWebsiteId:"",tawkPropertyId:"",tawkWidgetId:"",footerBadges:$R[16]=[$R[17]={id:"43c095c9-e048-4f24-a69b-43d03e689e37",name:"toolfame",imageUrl:"https://toolfame.com/badge-dark.svg",linkUrl:"https://toolfame.com/item/pixpal-ai",altText:"Featured on toolfame.com"},$R[18]={id:"12fa4ec0-043c-4580-b161-487053b80073",name:"Turbo0",imageUrl:"https://img.turbo0.com/badge-listed-dark.svg",linkUrl:"https://turbo0.com/item/pixpal-ai",altText:"Listed on Turbo0"},$R[19]={id:"99cbb564-40e5-4b69-bafb-2990b37def7a",name:"Dofollow.Tools",imageUrl:"https://dofollow.tools/badge/badge_dark.svg",linkUrl:"https://dofollow.tools",altText:"Featured on Dofollow.Tools"},$R[20]={id:"183eb888-f67c-4b90-8405-8eaccead57aa",name:"Startup Fame",imageUrl:"https://startupfa.me/badges/featured-badge.webp",linkUrl:"https://startupfa.me/s/pixpal-ai?utm_source=pixpal.ai",altText:"PixPal AI - Featured on Startup Fame"},$R[21]={id:"75c7d14c-ee52-45e9-88da-2d65999e4da2",name:"NewTool.site",imageUrl:"https://newtool.site/badges/newtool-dark.svg",linkUrl:"https://newtool.site/item/pixpal-ai",altText:"Featured on NewTool.site"}],siteAssetOverrides:$R[22]={"home.tp-img-new-4.png":"https://cdn.pixpal.ai/uploads/c7427e76b846baa7d92cf33518f433c0.webp","home.tp-img-new-4-aft.png":"https://cdn.pixpal.ai/uploads/652f808fdf1ed0fa22486d9e35aea396.webp","home.tp-img-new-5.png":"https://cdn.pixpal.ai/uploads/c7427e76b846baa7d92cf33518f433c0.webp","home.tp-img-new-5-aft.png":"https://cdn.pixpal.ai/uploads/1409aeab041c526adbe3f42495c0e87f.webp","home.tp-img-new-2.png":"https://cdn.pixpal.ai/uploads/aac4d2637702389a15df3c0c1a63f52a.webp","home.tp-img-new-2-aft.png":"https://cdn.pixpal.ai/uploads/85c91a67f2ce3f85e3bbc8b665723f01.webp","apps.templates.ai-clothes-changer.webp":"https://cdn.pixpal.ai/uploads/4edc7ecad624dfaf4cb93a9b279a6899.webp","home.tp-img-new-6.png":"https://cdn.pixpal.ai/images/f73fd239ecca09198df1184b7eb3b58b.webp","home.tp-img-new-6-aft.png":"https://cdn.pixpal.ai/images/34b343c8511b94b8f46a780e3a96077b.webp"}},ssr:!0},$R[23]={i:"�apps�apps",u:1791206681136,s:"success",ssr:!0},$R[24]={i:"�apps�$tool�apps�ai-image",u:1791206681136,s:"success",l:$R[25]={title:"AI Image â PixPal AI",description:"Generate images from text prompts",path:"/apps/ai-image",locale:"en",tool:$R[26]={slug:"ai-image",key:"ai_image",kind:"prompt",icon:"/images/apps/icons/remove-bg.svg",templateImage:"https://cdn.pixpal.ai/images/16a56dda399f229fb0cea45789aa4ed3.webp",href:"/apps/ai-image",defaultModel:"black-forest-labs/flux-schnell",mediaType:"image",costCredits:10,defaultPrompt:"A professional product photo on a clean white background, studio lighting"}},ssr:!0}],lastMatchId:"�apps�$tool�apps�ai-image"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
20<script type="module" async="" src="/assets/index-BWXA-IcU.js"></script>
20</body></html>
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.