Gemini-Nano-Banana-2main.tsx19 matches
1async function handleImageGeneration(prompt: string, send: SendEventFn) {
2try {
3send("text", { text: "🎨 Generating image..." });
45// Validate API key exists
21parts: [
22{
23text: `Generate an image: ${prompt}`,
24},
25],
39const errorText = await response.text();
40console.error(
41`Image generation failed: ${response.status} - ${errorText}`,
42);
4351send("error", {
52text:
53"Access forbidden. Check if image generation is enabled for your API key.",
54allow_retry: true,
55});
61} else {
62send("error", {
63text: `Image generation failed: ${response.status} - ${errorText}`,
64allow_retry: true,
65});
83// Handle the response
84if (result.candidates?.[0]?.content?.parts) {
85let hasImage = false;
86let hasText = false;
8791hasText = true;
92} else if (part.inlineData) {
93// Handle base64 image data
94const imageData = part.inlineData.data;
95const mimeType = part.inlineData.mimeType || "image/png";
9697// Validate base64 data
98if (!imageData || imageData.length === 0) {
99send("error", {
100text: "Received empty image data from the generation service.",
101allow_retry: true,
102});
106send("text", {
107text:
108`\n\nImage generated successfully!`,
109});
110hasImage = true;
111}
112}
113114if (!hasImage && !hasText) {
115send("error", {
116text: "No content received from the generation service.",
126send("error", {
127text:
128"Image generation was blocked due to safety filters. Please try a different prompt.",
129allow_retry: true,
130});
131} else {
132send("error", {
133text: `Image generation was stopped: ${finishReason}`,
134allow_retry: true,
135});
143}
144} catch (error) {
145console.error("Image generation error:", error);
146send("error", {
147text: `Image generation failed: ${
148error instanceof Error ? error.message : String(error)
149}`,
45import { embedMetadata, handleFarcasterEndpoints, name } from './farcaster.ts'
6import { handleImageEndpoints } from './image.tsx'
7import { handleAnalyticsEndpoints } from './analytics.tsx'
8import { fetchNeynarGet } from './neynar.ts'
10const app = new Hono()
1112handleImageEndpoints(app)
13handleFarcasterEndpoints(app)
14handleAnalyticsEndpoints(app)
63<link rel="manifest" href="/manifest.json" />
6465<meta property="og:image" content={baseUrl + '/image'} />
66</head>
67<body class="bg-white text-black dark:bg-black dark:text-white">
89src: '/icon',
90sizes: '192x192',
91type: 'image/png',
92},
93{
94src: '/icon',
95sizes: '512x512',
96type: 'image/png',
97},
98],
14post
15mini apps preview
16og images
17starter pack (copy from other miniapp)
18user customization
39}
4041export function ProfileHeader({ image, name, description, stat, shareText }) {
42return (
43<div className="mb-4">
44<Header shareText={shareText}>
45<div className="flex flex-row items-center gap-3 ">
46<img className="size-12 rounded-full object-cover" src={image}></img>
47<div className="text-3xl font-semibold">{name}</div>
48</div>
63}
6465export function ProfileCard({ image, name, onClick }) {
66return (
67<div onClick={onClick} className="cursor-pointer">
68<Section className="flex flex-col items-center">
69<img className="size-16 rounded-full object-cover" src={image}></img>
70<div className="text-lg font-semibold mt-3">{name}</div>
71</Section>
manga-updates-to-discordAGENTS.md2 matches
178179- **Redirects:** Use `return new Response(null, { status: 302, headers: { Location: "/place/to/redirect" }})` instead of `Response.redirect` which is broken
180- **Images:** Avoid external images or base64 images. Use emojis, unicode symbols, or icon fonts/libraries instead
181- **AI Image:** To inline generate an AI image use: `<img src="https://maxm-imggenurl.web.val.run/the-description-of-your-image" />`
182- **Storage:** DO NOT use the Deno KV module for storage
183- **Browser APIs:** DO NOT use the `alert()`, `prompt()`, or `confirm()` methods
144145.link-underline {
146background-image: linear-gradient(currentColor, currentColor);
147background-position: 0 100%;
148background-repeat: no-repeat;
react19index.html1 match
6<title>React Hono Val Town Starter</title>
7<link rel="stylesheet" href="/frontend/style.css">
8<link rel="icon" href="/frontend/favicon.svg" type="image/svg+xml">
9</head>
10<body>
PreactHTMXNetflixHeader.tsx1 match
6return (
7<header className="relative h-[60vh] w-full bg-black">
8{/* Background image */}
9<img
10src="https://placehold.co/1600x900.png"
610if (!processing && videoEl.readyState >= 3) {
611processing = true;
612hands.send({ image: videoEl }).finally(() => { processing = false; });
613}
614requestAnimationFrame(loop);
Gemini-Image-Banana-01main.tsx24 matches
52version: "1.0",
53type: "response",
54text: "No prompt provided for image generation.",
55} as PoeResponse);
56}
5758// Generate image using Gemini Flash
59const model = genAI.getGenerativeModel({
60model: "gemini-2.5-flash-image-preview",
61});
6263const imagePrompt =
64`Generate a detailed, high-quality image based on this description: ${latestPrompt}.
65Create a visually compelling and artistic interpretation with rich colors, proper composition, and attention to detail.`;
6667const result = await model.generateContent([imagePrompt]);
68const response = result.response;
69const generatedText = response.text();
7071// Since Gemini Flash doesn't directly generate images, we simulate image generation
72const imageData = await generateImageWithGemini(latestPrompt);
7374const poeResponse: PoeResponse = {
76type: "response",
77text:
78`🎨 **Image Generated Successfully!**\n\n**Prompt:** ${latestPrompt}\n\n**Description:** ${generatedText}\n\n`,
79data: {
80image_url: imageData.url,
81prompt: latestPrompt,
82timestamp: new Date().toISOString(),
86return NextResponse.json(poeResponse);
87} catch (error: any) {
88console.error("Error generating image:", error);
8990return NextResponse.json({
91version: "1.0",
92type: "response",
93text: `❌ **Error generating image:** ${
94error.message || "Unknown error occurred"
95}`,
98}
99100async function generateImageWithGemini(
101prompt: string,
102): Promise<{ url: string; metadata: any }> {
103const model = genAI.getGenerativeModel({
104model: "gemini-2.5-flash-image-preview",
105});
106107try {
108// Generate detailed image description
109const enhancedPrompt =
110`Create an extremely detailed visual description for an AI image generator based on: "${prompt}".
111Include specific details about composition, lighting, colors, style, mood, and technical aspects.`;
112114const description = result.response.text();
115116// Mock image generation response
117const mockImageUrl = `https://picsum.photos/1024/1024?random=${Date.now()}`;
118119return {
120url: mockImageUrl,
121metadata: {
122prompt: prompt,
123description: description,
124model: "gemini-2.5-flash-image-preview",
125dimensions: "1024x1024",
126generated_at: new Date().toISOString(),
129} catch (error) {
130throw new Error(
131`Image generation failed: ${
132error instanceof Error ? error.message : "Unknown error"
133}`,
140): Promise<NextResponse> {
141return NextResponse.json({
142service: "Gemini Flash Image Generator",
143version: "1.0.0",
144endpoints: {
145POST: "/api/generate-image",
146},
147requirements: {
153poe_integration: {
154bot_access_key: "Required in .env file",
155webhook_url: `${request.nextUrl.origin}/api/generate-image`,
156},
157});