Initial commit
This commit is contained in:
182
commands/generate-conversation.md
Normal file
182
commands/generate-conversation.md
Normal file
@@ -0,0 +1,182 @@
|
||||
# Generate Conversation Command
|
||||
|
||||
Multi-turn image generation with progressive refinement. Each turn builds on previous context, allowing iterative improvements without starting over.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
gemini-nano-banana-tool generate-conversation PROMPT -o OUTPUT [OPTIONS]
|
||||
```
|
||||
|
||||
## Arguments
|
||||
|
||||
- `PROMPT` - Text prompt for this turn (required)
|
||||
|
||||
## Required Options
|
||||
|
||||
- `-o, --output PATH` - Output image file path (required)
|
||||
|
||||
## Conversation Options
|
||||
|
||||
- `-f, --file PATH` - Conversation file (creates new if doesn't exist)
|
||||
- `-a, --aspect-ratio TEXT` - Aspect ratio (default: 1:1, only for new conversations)
|
||||
- `-m, --model TEXT` - Gemini model (default: gemini-2.5-flash-image, only for new)
|
||||
|
||||
## 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)
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **First Turn**: Create initial image from prompt, save conversation state
|
||||
2. **Subsequent Turns**: Previous output automatically becomes reference image
|
||||
3. **Persistence**: All turns, prompts, and metadata saved to JSON file
|
||||
4. **Resume**: Load conversation file to continue refinement
|
||||
|
||||
## Examples
|
||||
|
||||
### Basic Multi-Turn Workflow
|
||||
|
||||
```bash
|
||||
# Turn 1: Initial generation
|
||||
gemini-nano-banana-tool generate-conversation "A sunset over mountains" \
|
||||
-o sunset1.png --file conversation.json
|
||||
|
||||
# Turn 2: Refinement (loads conversation automatically)
|
||||
gemini-nano-banana-tool generate-conversation "Make the sky more orange" \
|
||||
-o sunset2.png --file conversation.json
|
||||
|
||||
# Turn 3: Further refinement
|
||||
gemini-nano-banana-tool generate-conversation "Add a lake in the foreground" \
|
||||
-o sunset3.png --file conversation.json
|
||||
```
|
||||
|
||||
### Interior Design Example
|
||||
|
||||
```bash
|
||||
# Turn 1: Initial room
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"A modern minimalist living room with large windows" \
|
||||
-o room-v1.png --file interior.json -a 16:9
|
||||
|
||||
# Turn 2: Add furniture
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"Add a gray sofa and wooden coffee table" \
|
||||
-o room-v2.png --file interior.json
|
||||
|
||||
# Turn 3: Adjust lighting
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"Make the lighting warmer and add floor lamp" \
|
||||
-o room-v3.png --file interior.json
|
||||
|
||||
# Turn 4: Final touches
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"Add plants and artwork on the walls" \
|
||||
-o room-final.png --file interior.json
|
||||
```
|
||||
|
||||
### Product Photography Example
|
||||
|
||||
```bash
|
||||
# Turn 1: Initial product shot
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"Professional product photo of wireless headphones" \
|
||||
-o headphones-v1.png --file product.json -a 1:1
|
||||
|
||||
# Turn 2: Adjust angle
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"Rotate to show the left side" \
|
||||
-o headphones-v2.png --file product.json
|
||||
|
||||
# Turn 3: Change background
|
||||
gemini-nano-banana-tool generate-conversation \
|
||||
"Change background to dark gradient" \
|
||||
-o headphones-v3.png --file product.json
|
||||
```
|
||||
|
||||
## Conversation File Format
|
||||
|
||||
The conversation file stores complete history in JSON:
|
||||
|
||||
```json
|
||||
{
|
||||
"conversation_id": "20251120_181305",
|
||||
"model": "gemini-2.5-flash-image",
|
||||
"aspect_ratio": "16:9",
|
||||
"turns": [
|
||||
{
|
||||
"prompt": "A sunset over mountains",
|
||||
"output_path": "/path/to/sunset1.png",
|
||||
"reference_images": [],
|
||||
"metadata": {
|
||||
"token_count": 1295,
|
||||
"resolution": "1344x768",
|
||||
"finish_reason": "STOP"
|
||||
},
|
||||
"timestamp": "2025-11-20T18:13:11.428020"
|
||||
},
|
||||
{
|
||||
"prompt": "Make the sky more orange",
|
||||
"output_path": "/path/to/sunset2.png",
|
||||
"reference_images": ["/path/to/sunset1.png"],
|
||||
"metadata": {
|
||||
"token_count": 1554,
|
||||
"resolution": "1344x768",
|
||||
"finish_reason": "STOP"
|
||||
},
|
||||
"timestamp": "2025-11-20T18:13:27.318416"
|
||||
}
|
||||
],
|
||||
"created_at": "2025-11-20T18:13:05.751502",
|
||||
"updated_at": "2025-11-20T18:13:27.318430"
|
||||
}
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
|
||||
- **Product Photography**: Iteratively adjust lighting, angles, styling
|
||||
- **Character Design**: Refine poses, clothing, expressions progressively
|
||||
- **Interior Design**: Build rooms by adding furniture and decor step by step
|
||||
- **Marketing Materials**: Test variations while maintaining consistency
|
||||
- **Concept Art**: Explore different iterations of a design
|
||||
- **Fashion E-commerce**: Try products on models or in different settings
|
||||
|
||||
## Important Notes
|
||||
|
||||
- **Model & Aspect Ratio**: Only set when creating new conversation (locked for subsequent turns)
|
||||
- **Reference Images**: Previous output automatically used (no manual `-i` needed)
|
||||
- **Resume Anytime**: Load conversation file to continue from any turn
|
||||
- **No File Flag**: Can use without `--file` but conversation won't be saved
|
||||
|
||||
## Why Use Conversation Mode?
|
||||
|
||||
- **Progressive Refinement**: Iteratively improve without losing context
|
||||
- **Experiment Safely**: Try variations while maintaining consistency
|
||||
- **Context Awareness**: Each turn references previous outputs automatically
|
||||
- **Evolution Tracking**: Complete history of prompts and changes
|
||||
- **Resume Anytime**: Continue conversations across sessions
|
||||
|
||||
## Cost Information
|
||||
|
||||
Each turn costs the same as a single generation:
|
||||
- **Flash Model**: ~$0.039 per turn
|
||||
- **Pro Model 1K/2K**: ~$0.134 per turn
|
||||
- **Pro Model 4K**: ~$0.24 per turn
|
||||
|
||||
Cost is tracked per turn in conversation file metadata.
|
||||
|
||||
## Authentication
|
||||
|
||||
Set environment variable:
|
||||
```bash
|
||||
export GEMINI_API_KEY='your-api-key'
|
||||
```
|
||||
|
||||
Get API key: https://aistudio.google.com/app/apikey
|
||||
Reference in New Issue
Block a user