Comfy-Org / Comfy-Org/comfy-cli
comfy generate: stale Gemini model enum and incomplete GPT Image 2 output/edit support
- Dominant language
- Python
- Stars
- 968
- Forks
- 151
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 77
Description
# `comfy generate`: stale Gemini image model enum and incomplete GPT Image 2 output/edit support
**Describe the bug**
`comfy generate` does not currently expose or fully handle several image models that are available through the current ComfyUI Partner Nodes:
1. The `nano-banana` adapter uses a fixed Gemini model enum. It accepts the legacy `gemini-3-pro-image-preview` name, which the server resolves successfully to `gemini-3-pro-image`, but it rejects the current stable `gemini-3-pro-image` name and Nano Banana 2 (`gemini-3.1-flash-image`) before making a request.
2. GPT Image 2 generation is accepted by the server through `dalle --model gpt-image-2`, but the response contains `data[].b64_json`. The CLI reports that no image URLs were found and `--download` does not save the image.
3. The `dalle-edit` schema does not include an `image` input, so GPT Image 2 editing cannot be submitted: `--image` is rejected as an unknown flag.
4. `comfy generate refresh` currently requests `https://api.comfy.org/openapi.yml`, which returns HTTP 404, so it cannot refresh the local catalog.
I also checked the current `main` branch. The Gemini fallback enum, URL-only generic result extraction, and `OpenAIImageEditRequest` without an image property are still present there.
**To Reproduce**
Environment:
```text
comfy-cli 1.12.0
Python 3.12
macOS x86_64
Authentication: COMFY_API_KEY environment variable (no browser login)
```
Inspect the Nano Banana schema:
```bash
comfy generate schema nano-banana --json
```
The model enum is:
```text
gemini-2.5-flash-image
gemini-2.5-flash-image-preview
gemini-3-pro-image-preview
```
Current stable model names are rejected locally:
```bash
comfy generate nano-banana \
--prompt "A blue ceramic cube on a white background" \
--model gemini-3-pro-image \
--json
comfy generate nano-banana \
--prompt "A blue ceramic cube on a white background" \
--model gemini-3.1-flash-image \
--json
```
Both return:
```text
--model: '' is not one of [...]
```
However, the legacy Pro name succeeds:
```bash
comfy generate nano-banana \
--prompt "A blue ceramic cube on a white background" \
--model gemini-3-pro-image-preview \
--json
```
The successful server response reports:
```json
{
"modelVersion": "gemini-3-pro-image"
}
```
GPT Image 2 generation reaches the server successfully:
```bash
comfy generate dalle \
--model gpt-image-2 \
--prompt "A red glass sphere on a light gray background" \
--n 1 \
--quality low \
--size 1024x1024 \
--output_format png \
--download gpt-image-2.png
```
The command exits successfully but does not save the image:
```text
No image URLs found in response. Pass --json to inspect.
--download requested but no image URLs found in response.
```
The JSON response uses `data[].b64_json`. Trying to force a URL does not work:
```bash
comfy generate dalle \
--model gpt-image-2 \
--prompt "A green glass sphere on a light gray background" \
--response_format url \
--download gpt-image-2.png
```
The API returns:
```text
API error 400
Unknown parameter: 'response_format'.
```
GPT Image 2 editing is blocked by the local schema:
```bash
comfy generate dalle-edit \
--model gpt-image-2 \
--prompt "Replace the circle with a star" \
--image input.png \
--download edited.png
```
Result:
```text
Unknown flag: '--image'.
```
Finally:
```bash
comfy generate refresh
```
returns:
```text
Failed to fetch https://api.comfy.org/openapi.yml: 404 Not Found
```
**Expected behavior**
- `nano-banana` should accept the current Partner Node model identifiers, including `gemini-3-pro-image` and `gemini-3.1-flash-image`, or obtain the enum dynamically from the active catalog.
- `--download` should decode and save OpenAI `data[].b64_json` image responses, similar to the existing Gemini inline-image decoder.
- `dalle-edit` should expose the required image input(s), and optional mask input where supported, so GPT Image 2 editing can be submitted.
- `comfy generate refresh` should fetch the current authenticated/public OpenAPI catalog from a working endpoint.
- `comfy generate list` / `schema` should reflect models currently supported by the official ComfyUI Partner Nodes.
**Nice to have**
- [x] Terminal output
- [ ] Screenshots
**Additional context**
- Nano Banana Pro generation and image editing both succeeded when using `gemini-3-pro-image-preview`; the response identified the actual model as `gemini-3-pro-image`.
- No API keys, account identifiers, generated base64 payloads, or private URLs are included in this report.
Contributor guide
Research direction
Start with the nano-banana fallback enum, the generic result extraction, OpenAIImageEditRequest, and the refresh command that requests https://api.comfy.org/openapi.yml. Reproduce the schema, GPT Image 2 generation/edit, and refresh commands, then inspect the related catalog and response handling. Done means current Gemini names validate, b64_json images download, edit image inputs are accepted, and refresh uses a working catalog endpoint.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- openapi, python
- Domain
- ai, api, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100