Initial commit
This commit is contained in:
194
commands/generate.md
Normal file
194
commands/generate.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# Generate Command
|
||||
|
||||
Generate images from text prompts with optional reference images using Google Gemini models.
|
||||
|
||||
**Alias:** `generate-image` (can be used interchangeably with `generate`)
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
gemini-nano-banana-tool generate [PROMPT] -o OUTPUT [OPTIONS]
|
||||
gemini-nano-banana-tool generate-image [PROMPT] -o OUTPUT [OPTIONS] # Alias
|
||||
```
|
||||
|
||||
## Arguments
|
||||
|
||||
- `PROMPT` - Text prompt (positional, mutually exclusive with `-f` and `-s`)
|
||||
|
||||
## Required Options
|
||||
|
||||
- `-o, --output PATH` - Output image file path (required)
|
||||
|
||||
## Prompt Input Options (mutually exclusive)
|
||||
|
||||
- `PROMPT` - Positional argument (default)
|
||||
- `-f, --prompt-file PATH` - Read prompt from file
|
||||
- `-s, --stdin` - Read prompt from stdin (for piping)
|
||||
|
||||
## Image Options
|
||||
|
||||
- `-i, --image PATH` - Reference image (can be used up to 3 times for Flash, 14 for Pro)
|
||||
- `-a, --aspect-ratio TEXT` - Aspect ratio (default: 1:1)
|
||||
- `-m, --model TEXT` - Gemini model (default: gemini-2.5-flash-image)
|
||||
- `-r, --resolution TEXT` - Resolution quality for Pro model (1K/2K/4K)
|
||||
|
||||
## Authentication Options
|
||||
|
||||
- `--api-key TEXT` - Override API key from environment
|
||||
- `--use-vertex` - Use Vertex AI instead of Developer API
|
||||
- `--project TEXT` - Google Cloud project (for Vertex AI)
|
||||
- `--location TEXT` - Google Cloud location (for Vertex AI)
|
||||
|
||||
## Other Options
|
||||
|
||||
- `-v, --verbose` - Multi-level verbosity (-v INFO, -vv DEBUG, -vvv TRACE)
|
||||
|
||||
## Examples
|
||||
|
||||
### Basic Text-to-Image
|
||||
|
||||
```bash
|
||||
# Simple generation (both commands work)
|
||||
gemini-nano-banana-tool generate "A cat wearing a wizard hat" -o cat.png
|
||||
gemini-nano-banana-tool generate-image "A cat wearing a wizard hat" -o cat.png
|
||||
|
||||
# With aspect ratio
|
||||
gemini-nano-banana-tool generate "Mountain landscape" -o landscape.png -a 16:9
|
||||
```
|
||||
|
||||
### Prompt from File or Stdin
|
||||
|
||||
```bash
|
||||
# From file
|
||||
gemini-nano-banana-tool generate -f prompt.txt -o output.png
|
||||
|
||||
# From stdin (piping)
|
||||
echo "Beautiful sunset" | gemini-nano-banana-tool generate -o sunset.png -s
|
||||
|
||||
# With promptgen
|
||||
gemini-nano-banana-tool promptgen "wizard cat" | \
|
||||
gemini-nano-banana-tool generate -o cat.png -s -a 16:9
|
||||
```
|
||||
|
||||
### Image Editing with Reference Images
|
||||
|
||||
```bash
|
||||
# Single reference image
|
||||
gemini-nano-banana-tool generate "Add a birthday hat" -o edited.png \
|
||||
-i original.jpg
|
||||
|
||||
# Multiple reference images
|
||||
gemini-nano-banana-tool generate "Put the dress on the model in garden" \
|
||||
-o fashion.png -i dress.jpg -i model.jpg
|
||||
|
||||
# Up to 3 references (Flash) or 14 (Pro)
|
||||
gemini-nano-banana-tool generate "Combine these styles" -o result.png \
|
||||
-i ref1.jpg -i ref2.jpg -i ref3.jpg
|
||||
```
|
||||
|
||||
### Different Aspect Ratios
|
||||
|
||||
```bash
|
||||
# Square (Instagram post)
|
||||
gemini-nano-banana-tool generate "Modern design" -o square.png -a 1:1
|
||||
|
||||
# Widescreen (YouTube thumbnail)
|
||||
gemini-nano-banana-tool generate "Epic scene" -o wide.png -a 16:9
|
||||
|
||||
# Vertical (Instagram story)
|
||||
gemini-nano-banana-tool generate "Portrait" -o vertical.png -a 9:16
|
||||
|
||||
# Cinematic (ultra-wide)
|
||||
gemini-nano-banana-tool generate "Sci-fi panorama" -o cinema.png -a 21:9
|
||||
```
|
||||
|
||||
### Model Selection and Resolution
|
||||
|
||||
```bash
|
||||
# Default Flash model (fast, cost-effective)
|
||||
gemini-nano-banana-tool generate "Your prompt" -o output.png
|
||||
|
||||
# Pro model (higher quality)
|
||||
gemini-nano-banana-tool generate "Your prompt" -o output.png \
|
||||
-m gemini-3-pro-image-preview
|
||||
|
||||
# Pro with 4K resolution (maximum quality)
|
||||
gemini-nano-banana-tool generate "Your prompt" -o output.png \
|
||||
-m gemini-3-pro-image-preview -r 4K
|
||||
```
|
||||
|
||||
### Verbosity Levels
|
||||
|
||||
```bash
|
||||
# Normal (warnings only)
|
||||
gemini-nano-banana-tool generate "test" -o output.png
|
||||
|
||||
# Verbose (show operations)
|
||||
gemini-nano-banana-tool generate "test" -o output.png -v
|
||||
|
||||
# Debug (detailed info)
|
||||
gemini-nano-banana-tool generate "test" -o output.png -vv
|
||||
|
||||
# Trace (full HTTP logs)
|
||||
gemini-nano-banana-tool generate "test" -o output.png -vvv
|
||||
```
|
||||
|
||||
## Output Format
|
||||
|
||||
Returns JSON with generation details:
|
||||
|
||||
```json
|
||||
{
|
||||
"output_path": "output.png",
|
||||
"model": "gemini-2.5-flash-image",
|
||||
"aspect_ratio": "16:9",
|
||||
"resolution": "1344x768",
|
||||
"resolution_quality": "1K",
|
||||
"reference_image_count": 0,
|
||||
"token_count": 1295,
|
||||
"estimated_cost_usd": 0.0389,
|
||||
"metadata": {
|
||||
"finish_reason": "STOP",
|
||||
"safety_ratings": null
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Cost Information
|
||||
|
||||
Automatic cost tracking based on token usage:
|
||||
|
||||
- **Flash Model**: ~$0.039 per image (1,290 tokens × $0.00003)
|
||||
- **Pro Model 1K/2K**: ~$0.134 per image (1,120 tokens × $0.00012)
|
||||
- **Pro Model 4K**: ~$0.24 per image (2,000 tokens × $0.00012)
|
||||
|
||||
Cost is always included in output JSON as `estimated_cost_usd`.
|
||||
|
||||
## Supported Aspect Ratios
|
||||
|
||||
- `1:1` - Square (1024×1024)
|
||||
- `16:9` - Widescreen (1344×768)
|
||||
- `9:16` - Vertical (768×1344)
|
||||
- `4:3` - Traditional (1184×864)
|
||||
- `3:4` - Portrait (864×1184)
|
||||
- `3:2` - DSLR (1248×832)
|
||||
- `2:3` - Portrait photo (832×1248)
|
||||
- `21:9` - Cinematic (1536×672)
|
||||
- `4:5` - Instagram portrait (896×1152)
|
||||
- `5:4` - Medium format (1152×896)
|
||||
|
||||
## Authentication
|
||||
|
||||
Set environment variable:
|
||||
```bash
|
||||
export GEMINI_API_KEY='your-api-key'
|
||||
```
|
||||
|
||||
Get API key: https://aistudio.google.com/app/apikey
|
||||
|
||||
For Vertex AI:
|
||||
```bash
|
||||
export GOOGLE_GENAI_USE_VERTEXAI=true
|
||||
export GOOGLE_CLOUD_PROJECT='your-project-id'
|
||||
export GOOGLE_CLOUD_LOCATION='us-central1'
|
||||
```
|
||||
Reference in New Issue
Block a user