Comfy-Org / Comfy-Org/comfy-cli

comfy generate: stale Gemini model enum and incomplete GPT Image 2 output/edit support

Open
#613 2 comments 1 reaction 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.