Skip to content

Conversation

@tjx666
Copy link
Member

@tjx666 tjx666 commented Aug 30, 2025

💻 变更类型 | Change Type

  • ✨ feat
  • 🐛 fix
  • ♻️ refactor
  • 💄 style
  • 👷 build
  • ⚡️ perf
  • ✅ test
  • 📝 docs
  • 🔨 chore

🔀 变更说明 | Description of Change

This PR includes several improvements and refactoring changes:

Model Naming Updates:

  • Update display names for Gemini 2.5 Flash models to 'Nano Banana' for better user experience
  • Consolidate and reorganize model constants and configurations

Image Generation Enhancements:

  • Add support for multiple image URLs (imageUrls parameter) in Google image generation
  • Extract processImageForParts function to eliminate code duplication
  • Add parameter conflict validation and image count limits for better error handling
  • Move MAX_IMAGE_COUNT to packages/const for centralized configuration

Development Environment:

  • Increase VSCode vitest maximum configurations from 10 to 20 for better testing support

📝 补充信息 | Additional Information

Summary by Sourcery

Refactor AI model naming to 'Nano Banana' and improve image generation by enabling multiple image support, adding validation and limits, and consolidating related constants and code.

New Features:

  • Support multiple imageUrls parameter in Google image generation with conflict validation and count limits

Enhancements:

  • Rename display names and descriptions of Gemini 2.5 Flash models to Nano Banana across all AI model providers
  • Extract processImageForParts function in Google image generation and centralize MAX_IMAGE_COUNT constant
  • Replace singular imageUrl parameter with imageUrls array default in image generation parameters
  • Increase VSCode Vitest maximum configurations from 10 to 20

@vercel
Copy link

vercel bot commented Aug 30, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
lobe-chat-database Canceled Canceled Aug 30, 2025 9:15pm
lobe-chat-preview Ready Ready Preview Comment Aug 30, 2025 9:15pm

@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Aug 30, 2025

Reviewer's Guide

This refactor renames all Gemini 2.5 Flash models to “Nano Banana” across providers, centralizes image‐generation constants and logic, adds multi‐URL support with validation and limits, and updates development test settings.

Entity relationship diagram for image generation parameters

erDiagram
    CHAT_MODEL_IMAGE_GENERATION_PARAMS {
        string[] imageUrls
        string prompt
    }
Loading

Class diagram for updated image generation logic

classDiagram
    class GoogleImageGenerator {
        +generateImageByChatModel(payload)
        +processImageForParts(imageUrl)
        MAX_IMAGE_COUNT
    }
    class Part {
        +inlineData
    }
    GoogleImageGenerator --> Part: uses
Loading

Class diagram for model naming refactor

classDiagram
    class AIChatModelCard {
        +displayName
        +description
        +id
        +enabled
        +contextWindowTokens
        +maxOutput
        +pricing
    }
    class AIImageModelCard {
        +displayName
        +description
        +id
        +enabled
        +type
        +parameters
        +pricing
    }
    AIChatModelCard <|-- AIImageModelCard
    AIChatModelCard : displayName="Nano Banana"
    AIImageModelCard : displayName="Nano Banana"
Loading

File-Level Changes

Change Details Files
Rename Gemini 2.5 Flash models to Nano Banana
  • Update displayName and descriptions in googleChatModels and googleImageModels
  • Apply the same name updates in openrouter, vertexai, and aihubmix model definitions
  • Reorder and consolidate ModelParamsSchema import
packages/model-bank/src/aiModels/google.ts
packages/model-bank/src/aiModels/openrouter.ts
packages/model-bank/src/aiModels/vertexai.ts
packages/model-bank/src/aiModels/aihubmix.ts
Refactor image processing and add multi‐URL support
  • Extract processImageForParts to handle base64 and URL conversion
  • Replace inline parsing in generateImageByChatModel with reusable function
  • Add params conflict check between imageUrl and imageUrls
  • Support multiple imageUrls with Promise.all and append parts
packages/model-runtime/src/google/createImage.ts
Centralize MAX_IMAGE_COUNT and update image schema
  • Move MAX_IMAGE_COUNT constant to packages/const
  • Rename imageUrl schema field to imageUrls with default []
packages/const/src/image.ts
Increase VSCode Vitest configuration limits
  • Bump maximum Vitest configurations from 10 to 20
.vscode/settings.json

Possibly linked issues

  • #0: The PR renames gemini-2.5-flash-image-preview and adds multiple image URL support, directly adapting the model.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Aug 30, 2025
@lobehubbot
Copy link
Member

👍 @tjx666

Thank you for raising your pull request and contributing to our Community
Please make sure you have followed our contributing guidelines. We will review it as soon as possible.
If you encounter any problems, please feel free to connect with us.
非常感谢您提出拉取请求并为我们的社区做出贡献,请确保您已经遵循了我们的贡献指南,我们会尽快审查它。
如果您遇到任何问题,请随时与我们联系。

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@codecov
Copy link

codecov bot commented Aug 30, 2025

Codecov Report

❌ Patch coverage is 70.73171% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.95%. Comparing base (ddba451) to head (b5757b6).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9004      +/-   ##
==========================================
- Coverage   76.96%   76.95%   -0.02%     
==========================================
  Files         815      815              
  Lines       49136    49156      +20     
  Branches     5000     6617    +1617     
==========================================
+ Hits        37819    37829      +10     
- Misses      11311    11321      +10     
  Partials        6        6              
Flag Coverage Δ
app 76.73% <ø> (ø)
database 96.26% <100.00%> (+<0.01%) ⬆️
packages/electron-server-ipc 74.61% <ø> (ø)
packages/file-loaders 83.59% <ø> (ø)
packages/model-bank 100.00% <ø> (ø)
packages/model-runtime 75.07% <68.42%> (-0.07%) ⬇️
packages/prompts 100.00% <ø> (ø)
packages/utils 60.47% <ø> (ø)
packages/web-crawler 59.57% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
Store 68.86% <ø> (ø)
Services 62.01% <ø> (ø)
Server 66.33% <ø> (ø)
Libs 42.11% <ø> (ø)
Utils 73.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tjx666 tjx666 changed the title ♻️ refactor(model): update Gemini model naming to Nano Banana and improve image generation ✨ feat: rename Gemini 2.5 flash image to Nano Banana Aug 30, 2025
tjx666 added 4 commits August 31, 2025 01:09
…Urls support

- Add support for multiple image URLs (imageUrls parameter)
- Extract processImageForParts function to eliminate code duplication
- Add parameter conflict validation and image count limits
- Move MAX_IMAGE_COUNT to packages/const for better configuration
…nsformation

- Add missing transformation of config.imageUrl to full URL
- Previously only handled imageUrls array but ignored single imageUrl
- Add comprehensive test coverage for both scenarios
- Fixes issue where single reference images would show as broken links

Resolves: #8994
@tjx666 tjx666 force-pushed the tj/feat/nano-banana-naming branch from 8cda3da to d527c8c Compare August 30, 2025 17:11
@tjx666 tjx666 merged commit dac5a6f into main Aug 30, 2025
36 of 38 checks passed
@tjx666 tjx666 deleted the tj/feat/nano-banana-naming branch August 30, 2025 17:26
@lobehubbot
Copy link
Member

❤️ Great PR @tjx666 ❤️

The growth of project is inseparable from user feedback and contribution, thanks for your contribution! If you are interesting with the lobehub developer community, please join our discord and then dm @arvinxx or @canisminor1990. They will invite you to our private developer channel. We are talking about the lobe-chat development or sharing ai newsletter around the world.
项目的成长离不开用户反馈和贡献,感谢您的贡献! 如果您对 LobeHub 开发者社区感兴趣,请加入我们的 discord,然后私信 @arvinxx@canisminor1990。他们会邀请您加入我们的私密开发者频道。我们将会讨论关于 Lobe Chat 的开发,分享和讨论全球范围内的 AI 消息。

@gru-agent
Copy link
Contributor

gru-agent bot commented Aug 30, 2025

⏳ Processing in progress

lobehubbot pushed a commit that referenced this pull request Aug 30, 2025
## [Version&nbsp;1.120.0](v1.119.2...v1.120.0)
<sup>Released on **2025-08-30**</sup>

#### ♻ Code Refactoring

- **misc**: Remove webrtc sync feature flag.

#### ✨ Features

- **misc**: Rename Gemini 2.5 flash image to Nano Banana.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Remove webrtc sync feature flag, closes [#9002](#9002) ([0924d98](0924d98))

#### What's improved

* **misc**: Rename Gemini 2.5 flash image to Nano Banana, closes [#9004](#9004) ([dac5a6f](dac5a6f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
@lobehubbot
Copy link
Member

🎉 This PR is included in version 1.120.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@zhipeter
Copy link

1.120.0版本未能解决AI绘画上传图片在聊天预览图失效该问题 #8994

请求标头中的上传图片网址格式错误,如下
/lobe/https%3A//example.com/lobe/files/48XXXX/XXXX.jpg%3FX-Amz-Algorithm%3DAWS4-HMAC-SHA256%26X-Amz-Content-Sha256%3DUNSIGNED-PAYLOAD%26X-Amz-Credential%3Dadmin%252F20250830%252Fus-east-1%252Fs3%252Faws4_request%26X-Amz-Date%3D20250830T080452Z%26X-Amz-Expires%3D7200%26X-Amz-Signature%3D8c6a9d19378370221796cea9821e589ff59f3f97a17a8e1ace%26X-Amz-SignedHeaders%3Dhost%26x-id%3DGetObject?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=admin%2F20250831%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250831T051933Z&X-Amz-Expires=7200&X-Amz-Signature=87cc31bbfea79173099d1986557e0f916a307f83da35cc34c2&X-Amz-SignedHeaders=host&x-id=GetObject

@lobehubbot
Copy link
Member

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Version 1.120.0 failed to solve the problem that AI painting uploaded pictures in the chat preview picture failed #8994

The upload image URL in the request header is incorrect, as follows
/lobe/https%3A//example.com/lobe/files/48XXXX/XXXX.jpg%3FX-Amz-Algorithm%3DAWS4-HMAC-SHA256%26X-Amz-Content-Sha256%3DUNSIGNED-PAYLOAD%26X-Amz-Credential%3Dadmin%252F2025 0830%252Fus-east-1%252Fs3%252Faws4_request%26X-Amz-Date%3D20250830T080452Z%26X-Amz-Expires%3D7200%26X-Amz-Signature%3D8c6a9d19378370221796cea9821e589ff59f3f97a17a8e1ace% 26X-Amz-SignedHeaders%3Dhost%26x-id%3DGetObject?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=admin%2F20250831%2Fus-east-1%2Fs3 %2Faws4_request&X-Amz-Date=20250831T051933Z&X-Amz-Expires=7200&X-Amz-Signature=87cc31bbfea79173099d1986557e0f916a307f83da35cc34c2&X-Amz-SignedHeaders=host&x-id=GetObject

@m0eak
Copy link

m0eak commented Sep 1, 2025

大佬,fal的nanobanana可以弄一下吗

@lobehubbot
Copy link
Member

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Boss, can you do fal's nanobanana?

JamieStivala pushed a commit to jaworldwideorg/OneJA-Bot that referenced this pull request Sep 2, 2025
## [Version&nbsp;1.120.0](v1.119.1...v1.120.0)
<sup>Released on **2025-09-02**</sup>

#### ♻ Code Refactoring

- **model-runtime**: Refactor model-runtime dependencies and clean code.
- **misc**: Remove base path, remove webrtc sync feature flag.

#### ✨ Features

- **misc**: Added support for Azure OpenAI Image Generation, rename Gemini 2.5 flash image to Nano Banana.

#### 🐛 Bug Fixes

- **ai-image**: Save config.imageUrl with fullUrl instead of key.
- **misc**: Update enableStreaming name.

#### 💄 Styles

- **misc**: Add upload hint for non-visual model, adjust ControlsForm component to adapt to mobile phone display, Support new provider Nebius, update i18n, update i18n.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **model-runtime**: Refactor model-runtime dependencies and clean code, closes [lobehub#8997](https://github.com/jaworldwideorg/OneJA-Bot/issues/8997) ([9f7677d](9f7677d))
* **misc**: Remove base path, closes [lobehub#9015](https://github.com/jaworldwideorg/OneJA-Bot/issues/9015) ([2a5f8d7](2a5f8d7))
* **misc**: Remove webrtc sync feature flag, closes [lobehub#9002](https://github.com/jaworldwideorg/OneJA-Bot/issues/9002) ([0924d98](0924d98))

#### What's improved

* **misc**: Added support for Azure OpenAI Image Generation, closes [lobehub#8898](https://github.com/jaworldwideorg/OneJA-Bot/issues/8898) ([6042340](6042340))
* **misc**: Rename Gemini 2.5 flash image to Nano Banana, closes [lobehub#9004](https://github.com/jaworldwideorg/OneJA-Bot/issues/9004) ([dac5a6f](dac5a6f))

#### What's fixed

* **ai-image**: Save config.imageUrl with fullUrl instead of key, closes [lobehub#9016](https://github.com/jaworldwideorg/OneJA-Bot/issues/9016) ([bad009a](bad009a))
* **misc**: Update enableStreaming name, closes [lobehub#8995](https://github.com/jaworldwideorg/OneJA-Bot/issues/8995) ([7c7de40](7c7de40))

#### Styles

* **misc**: Add upload hint for non-visual model, closes [lobehub#7969](https://github.com/jaworldwideorg/OneJA-Bot/issues/7969) ([1224f4e](1224f4e))
* **misc**: Adjust ControlsForm component to adapt to mobile phone display, closes [lobehub#9013](https://github.com/jaworldwideorg/OneJA-Bot/issues/9013) ([c6038c0](c6038c0))
* **misc**: Support new provider Nebius, closes [lobehub#8903](https://github.com/jaworldwideorg/OneJA-Bot/issues/8903) ([c15791d](c15791d))
* **misc**: Update i18n, closes [lobehub#9033](https://github.com/jaworldwideorg/OneJA-Bot/issues/9033) ([650e552](650e552))
* **misc**: Update i18n, closes [lobehub#9005](https://github.com/jaworldwideorg/OneJA-Bot/issues/9005) ([63760f9](63760f9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
@tjx666 tjx666 mentioned this pull request Sep 10, 2025
20 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

provider:gemini released size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AI绘画上传图片在聊天预览图失效

5 participants