❌
Inventing model names or adding date suffixes:
Why wrong: Image generation models have specific names; date suffixes like
are for text models only
Better: Use exactly
or
gemini-3-pro-image-preview
— no variations
❌
Using Gemini 2.5 Pro for images:
Why wrong: Gemini 2.5 Pro doesn't generate images directly
Better: Use
or
gemini-3-pro-image-preview
❌ Storing only base64 in database:
Why wrong: Blobs database, expensive storage, slow retrieval
Better: Store in object storage (Vercel Blob/S3), save URL only
❌ No rate limit handling:
Why wrong: Will hit 429 errors in production, poor UX
Better: Implement rate limiting with user-friendly error messages
❌ Ignoring multi-turn context:
Why wrong: Wastes Nano Banana's conversational editing strength
Better: Track chat history for iterative refinement
❌ Hardcoding API keys client-side:
Why wrong: Exposes credentials, security risk
Better: Use server actions / API routes with environment variables
❌ Using wrong aspect ratio:
Why wrong: 21:9 on 1:1 request wastes tokens, unexpected crop
Better: Match aspect ratio to intended use case
❌ No loading states:
Why wrong: Image generation takes 5-30s, users think it's broken
Better: Show progress indicators and estimated wait time
❌ Generating on every keystroke:
Why wrong: Wastes quota, slow response
Better: Debounce prompts, require explicit action
❌
自行编造模型名称或添加日期后缀:
错误原因:图像生成模型有固定名称;类似
的日期后缀仅适用于文本模型
正确做法:严格使用
或
gemini-3-pro-image-preview
——切勿修改
❌
使用Gemini 2.5 Pro进行图像生成:
错误原因:Gemini 2.5 Pro不直接支持图像生成
正确做法:使用
或
gemini-3-pro-image-preview
❌ 仅在数据库中存储base64格式图像:
错误原因:会导致数据库体积过大、存储成本高、检索速度慢
正确做法:存储到对象存储(如Vercel Blob/S3),仅保存图像URL
❌ 未处理速率限制:
错误原因:生产环境中会触发429错误,影响用户体验
正确做法:实现速率限制机制,并提供友好的错误提示
❌ 忽略多轮上下文:
错误原因:浪费了Nano Banana的对话式编辑能力
正确做法:跟踪聊天历史以支持迭代优化
❌ 在客户端硬编码API密钥:
错误原因:会泄露凭证,存在安全风险
正确做法:使用Server Actions/API路由,并通过环境变量存储密钥
❌ 使用错误的宽高比:
错误原因:在1:1的请求中使用21:9会浪费令牌,导致意外裁剪
正确做法:根据使用场景匹配合适的宽高比
❌ 未添加加载状态:
错误原因:图像生成需要5-30秒,用户会误以为应用故障
正确做法:显示进度指示器及预计等待时间
❌ 每次按键都触发生成:
错误原因:浪费配额,响应速度慢
正确做法:对输入提示进行防抖处理,要求用户明确触发生成操作