diff --git a/gemini/README.md b/gemini/README.md index 484975c..9409478 100644 --- a/gemini/README.md +++ b/gemini/README.md @@ -49,14 +49,15 @@ gemini models | `gemini-3.5-flash` | Gemini 3.5 Flash | | `gemini-3-flash-preview` | Gemini 3 Flash Preview | | `gemini-3.1-flash-lite-preview` | Gemini 3.1 Flash Lite Preview | -| `gemini-3.1-flash-image` | Gemini 3.1 Flash Image | -| `gemini-3-pro-image` | Gemini 3 Pro Image | | `gemini-2.5-pro` | Gemini 2.5 Pro | | `gemini-2.5-flash` | Gemini 2.5 Flash (default) | | `gemini-2.5-flash-lite` | Gemini 2.5 Flash Lite | -| `gemini-2.5-flash-image` | Gemini 2.5 Flash Image | | `gemini-2.0-flash` | Gemini 2.0 Flash | +> Image-generating models (`gemini-*-image`) are not available on the chat +> endpoint. Use the native `/v1beta/models/{model}:generateContent` API for +> image generation. + ## Available Video Models | Model | Notes | diff --git a/gemini/gemini_cli/core/output.py b/gemini/gemini_cli/core/output.py index 95afdfe..16b06ba 100644 --- a/gemini/gemini_cli/core/output.py +++ b/gemini/gemini_cli/core/output.py @@ -17,12 +17,9 @@ "gemini-3.5-flash", "gemini-3-flash-preview", "gemini-3.1-flash-lite-preview", - "gemini-3.1-flash-image", - "gemini-3-pro-image", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", - "gemini-2.5-flash-image", "gemini-2.0-flash", ] diff --git a/gemini/tests/test_commands.py b/gemini/tests/test_commands.py index 5da4427..17c832d 100644 --- a/gemini/tests/test_commands.py +++ b/gemini/tests/test_commands.py @@ -98,9 +98,6 @@ def test_chat_with_new_models(self, runner, mock_chat_response): for model in [ "gemini-2.5-flash-lite", "gemini-3.1-flash-lite-preview", - "gemini-3.1-flash-image", - "gemini-2.5-flash-image", - "gemini-3-pro-image", ]: respx.post("https://api.acedata.cloud/gemini/chat/completions").mock( return_value=Response(200, json=mock_chat_response) @@ -110,6 +107,18 @@ def test_chat_with_new_models(self, runner, mock_chat_response): ) assert result.exit_code == 0, f"Model {model} failed: {result.output}" + def test_chat_rejects_image_models(self, runner): + """Image models are native-only; the chat endpoint can't serve them.""" + for model in [ + "gemini-3.1-flash-image", + "gemini-2.5-flash-image", + "gemini-3-pro-image", + ]: + result = runner.invoke( + cli, ["--token", "test-token", "chat", "Hello", "-m", model, "--json"] + ) + assert result.exit_code != 0, f"Model {model} should be rejected" + @respx.mock def test_chat_with_max_completion_tokens(self, runner, mock_chat_response): respx.post("https://api.acedata.cloud/gemini/chat/completions").mock(