Skip to content

Commit bdaadc7

Browse files
committed
feat: Upgrade to .NET 10 and update documentation for multi-provider support
1 parent 679b408 commit bdaadc7

9 files changed

Lines changed: 176 additions & 162 deletions

File tree

.github/copilot-instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Copilot Instructions for image-gen-cli
22

3-
Multi-provider image generation CLI using .NET 8 and System.CommandLine.
3+
Multi-provider image generation CLI using .NET 10 and System.CommandLine.
44

55
## Quick Commands
66

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ image-gen "Your prompt here"
2121

2222
## Architecture
2323

24-
Multi-provider image generation CLI using .NET 8 and System.CommandLine.
24+
Multi-provider image generation CLI using .NET 10 and System.CommandLine.
2525

2626
**Provider Pattern:**
2727
- `IImageGenerationClient` - common interface for all providers

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ image-gen "Your prompt here"
2121

2222
## Architecture
2323

24-
Multi-provider image generation CLI using .NET 8 and System.CommandLine.
24+
Multi-provider image generation CLI using .NET 10 and System.CommandLine.
2525

2626
**Provider Pattern:**
2727
- `IImageGenerationClient` - common interface for all providers

README.md

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# image-gen-cli
22

3-
A multi-provider image generation CLI supporting Google Gemini and OpenAI image models.
3+
A multi-provider image generation CLI supporting Google Gemini, OpenAI, BFL FLUX, and Poe image models.
44

55
## Features
66

77
- Generate images from text prompts
88
- Edit existing images with text instructions
9-
- Multiple provider support (Gemini, OpenAI)
9+
- Multiple provider support (Gemini, OpenAI, BFL, Poe)
1010
- Configurable aspect ratios and output sizes
1111
- Generate multiple images in a single request
1212
- Includes an [Agent Skill](https://agentskills.io) for AI agent integration
1313

1414
## Installation
1515

16-
**Requirements:** .NET 8.0 SDK
16+
**Requirements:** .NET 10.0 SDK
1717

1818
### Install as Global Tool (Recommended)
1919

@@ -42,14 +42,20 @@ dotnet run --project src/ImageGenCli.csproj -- "Your prompt here"
4242

4343
## Configuration
4444

45-
Set your API key as an environment variable:
45+
Set at least one API key as an environment variable:
4646

4747
```bash
4848
# For Gemini (default provider)
4949
export GEMINI_API_KEY=your-api-key
5050

5151
# For OpenAI
5252
export OPENAI_API_KEY=your-api-key
53+
54+
# For BFL (FLUX)
55+
export BFL_API_KEY=your-api-key
56+
57+
# For Poe
58+
export POE_API_KEY=your-api-key
5359
```
5460

5561
Or pass it directly with `--api-key`.
@@ -63,6 +69,13 @@ image-gen "A sunset over mountains with a lake reflection"
6369
# Use OpenAI provider
6470
image-gen -p openai "A futuristic city skyline at night"
6571

72+
# Use BFL FLUX provider
73+
image-gen -p bfl "A cyberpunk street scene with neon signs"
74+
75+
# Use Poe provider (access to many models)
76+
image-gen -p poe "A watercolor landscape"
77+
image-gen -p poe -m Imagen-4 "A photorealistic portrait"
78+
6679
# Specify aspect ratio
6780
image-gen -a 16:9 "Desktop wallpaper, abstract geometric art"
6881

@@ -80,33 +93,39 @@ image-gen -o ./output "Product photography, ceramic mug"
8093

8194
# High quality with Gemini Pro
8295
image-gen -m gemini-3-pro-image-preview -r 2K "Detailed architectural blueprint"
96+
97+
# List available models for a provider
98+
image-gen --list-models -p poe
8399
```
84100

85101
## Options
86102

87103
| Option | Short | Default | Description |
88104
|--------|-------|---------|-------------|
89-
| `--provider` | `-p` | `gemini` | Provider: `gemini` or `openai` |
90-
| `--model` | `-m` | auto | Model name |
91-
| `--images` | `-i` | none | Reference image paths |
105+
| `--provider` | `-p` | `gemini` | Provider: `gemini`, `openai`, `bfl`, or `poe` |
106+
| `--model` | `-m` | auto | Model name (use `--list-models` to see options) |
107+
| `--images` | `-i` | none | Reference image paths (can specify multiple) |
92108
| `--aspect-ratio` | `-a` | `1:1` | Aspect ratio (1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, etc.) |
93-
| `--resolution` | `-r` | `1K` | Resolution: 1K, 2K, 4K (Gemini Pro only) |
109+
| `--resolution` | `-r` | `1K` | Resolution: 1K, 2K, 4K (Gemini Pro, BFL, some Poe models) |
110+
| `--quality` | `-q` | none | Quality: low, medium, high (OpenAI, Poe) |
94111
| `--temperature` | `-t` | `1.0` | Temperature 0.0-2.0 (Gemini only) |
95112
| `--system-prompt` | `-s` | none | System instruction (Gemini only) |
96-
| `--samples` | `-n` | `1` | Number of images (1-4 Gemini, 1-10 OpenAI) |
113+
| `--samples` | `-n` | `1` | Number of images (1-4 Gemini, 1-10 others) |
97114
| `--output` | `-o` | current dir | Output directory |
98115
| `--api-key` | `-k` | env var | API key override |
116+
| `--list-models` | `-l` | - | List available models for the provider |
99117

100118
## Provider Comparison
101119

102-
| Feature | Gemini | OpenAI |
103-
|---------|--------|--------|
104-
| Default model | gemini-2.5-flash-image | gpt-image-1.5 |
105-
| System prompts | Yes | No |
106-
| Temperature control | Yes | No |
107-
| Resolution control | Pro models | No (fixed sizes) |
108-
| Max images per request | 4 | 10 |
109-
| Reference image editing | Yes | Yes |
120+
| Feature | Gemini | OpenAI | BFL | Poe |
121+
|---------|--------|--------|-----|-----|
122+
| Default model | gemini-2.5-flash-image | gpt-image-1.5 | flux-2-pro | GPT-Image-1 |
123+
| System prompts | Yes | No | No | No |
124+
| Temperature control | Yes | No | No | No |
125+
| Resolution control | Pro models | No | Yes | Model-dependent |
126+
| Quality control | No | Yes | No | Yes |
127+
| Max images per request | 4 | 10 | 10 | 10 |
128+
| Max reference images | N/A | N/A | 8 | N/A |
110129

111130
**Note:** Using unsupported options with a provider will result in an error. For example, `--temperature` with OpenAI will fail.
112131

image-gen/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: image-gen
33
description: Generate and edit images using AI models (Gemini, OpenAI, BFL FLUX, or Poe). Use this skill when you need to create images from text prompts, edit existing images, or generate variations. Supports multiple providers with automatic API key detection from environment variables.
44
license: MIT
5-
compatibility: Requires .NET 8.0 runtime and at least one of GEMINI_API_KEY, OPENAI_API_KEY, BFL_API_KEY, or POE_API_KEY environment variable
5+
compatibility: Requires .NET 10.0 runtime and at least one of GEMINI_API_KEY, OPENAI_API_KEY, BFL_API_KEY, or POE_API_KEY environment variable
66
---
77

88
# Image Generation Skill

image-gen/scripts/install.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Install image-gen CLI tool
2-
# Requires: .NET 8.0 SDK
2+
# Requires: .NET 10.0 SDK
33

44
$ErrorActionPreference = "Stop"
55

@@ -15,8 +15,8 @@ try {
1515

1616
# Check .NET version
1717
$majorVersion = [int]($dotnetVersion -split '\.')[0]
18-
if ($majorVersion -lt 8) {
19-
Write-Error "Error: .NET 8.0 or later required (found: $dotnetVersion)"
18+
if ($majorVersion -lt 10) {
19+
Write-Error "Error: .NET 10.0 or later required (found: $dotnetVersion)"
2020
exit 1
2121
}
2222

image-gen/scripts/install.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -e
33

44
# Install image-gen CLI tool
5-
# Requires: .NET 8.0 SDK
5+
# Requires: .NET 10.0 SDK
66

77
echo "Installing image-gen CLI..."
88

@@ -14,8 +14,8 @@ fi
1414

1515
# Check .NET version
1616
DOTNET_VERSION=$(dotnet --version | cut -d. -f1)
17-
if [ "$DOTNET_VERSION" -lt 8 ]; then
18-
echo "Error: .NET 8.0 or later required (found: $(dotnet --version))" >&2
17+
if [ "$DOTNET_VERSION" -lt 10 ]; then
18+
echo "Error: .NET 10.0 or later required (found: $(dotnet --version))" >&2
1919
exit 1
2020
fi
2121

src/ImageGenCli.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net8.0</TargetFramework>
5+
<TargetFramework>net10.0</TargetFramework>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
88
<RootNamespace>ImageGenCli</RootNamespace>
@@ -12,14 +12,14 @@
1212
<ToolCommandName>image-gen</ToolCommandName>
1313
<PackageId>ImageGenCli</PackageId>
1414
<Version>1.0.0</Version>
15-
<Description>Multi-provider image generation CLI supporting Gemini and OpenAI</Description>
15+
<Description>Multi-provider image generation CLI supporting Gemini, OpenAI, BFL FLUX, and Poe</Description>
1616
<Authors>image-gen-cli contributors</Authors>
1717
<PackageReadmeFile>README.md</PackageReadmeFile>
1818
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1919
</PropertyGroup>
2020

2121
<ItemGroup>
22-
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
22+
<PackageReference Include="System.CommandLine" Version="2.0.1" />
2323
</ItemGroup>
2424

2525
<ItemGroup>

0 commit comments

Comments
 (0)