home / skills / openclaw / skills / eachlabs-image-generation

eachlabs-image-generation skill

/skills/eftalyurtseven/eachlabs-image-generation

This skill generates new images from text prompts using multiple EachLabs models, returning high-quality visuals tailored to your prompts.

npx playbooks add skill openclaw/skills --skill eachlabs-image-generation

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
6.6 KB
---
name: eachlabs-image-generation
description: Generate new images from text prompts using EachLabs AI models. Supports text-to-image with multiple model families including Flux, GPT Image, Gemini, Imagen, Seedream, and more. Use when the user wants to create new images from text. For editing existing images, see eachlabs-image-edit.
metadata:
  author: eachlabs
  version: "1.0"
---

# EachLabs Image Generation

Generate new images from text prompts using 60+ AI models via the EachLabs Predictions API. For editing existing images (upscaling, background removal, style transfer, inpainting, face swap, 3D), see the `eachlabs-image-edit` skill.

## Authentication

```
Header: X-API-Key: <your-api-key>
```

Set the `EACHLABS_API_KEY` environment variable. Get your key at [eachlabs.ai](https://eachlabs.ai).

## Quick Start

### 1. Create a Prediction

```bash
curl -X POST https://api.eachlabs.ai/v1/prediction \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "model": "flux-2-turbo-text-to-image",
    "version": "0.0.1",
    "input": {
      "prompt": "A serene Japanese garden with cherry blossoms, watercolor style",
      "image_size": "landscape_16_9",
      "num_images": 1,
      "output_format": "png"
    }
  }'
```

### 2. Poll for Result

```bash
curl https://api.eachlabs.ai/v1/prediction/{prediction_id} \
  -H "X-API-Key: $EACHLABS_API_KEY"
```

Poll until `status` is `"success"` or `"failed"`. The output image URL is in the response.

## Model Selection Guide

### Text-to-Image

| Model | Slug | Best For |
|-------|------|----------|
| Flux 2 Turbo | `flux-2-turbo-text-to-image` | Fast, high quality general purpose |
| Flux 2 Flash | `flux-2-flash-text-to-image` | Fastest Flux generation |
| Flux 2 Max | `flux-2-max-text-to-image` | Highest quality Flux |
| Flux 2 Klein 9B | `flux-2-klein-9b-base-text-to-image` | Balanced quality/speed |
| Flux 2 Pro | `flux-2-pro` | Pro quality |
| Flux 2 Flex | `flux-2-flex` | Flexible outputs |
| Flux 2 LoRA | `flux-2-lora` | LoRA-powered generation |
| XAI Grok Imagine | `xai-grok-imagine-text-to-image` | Creative and artistic |
| GPT Image v1.5 | `gpt-image-v1-5-text-to-image` | High quality, transparent bg |
| Bytedance Seedream v4.5 | `bytedance-seedream-v4-5-text-to-image` | Bytedance latest |
| Gemini 3 Pro Image | `gemini-3-pro-image-preview` | Google's latest |
| Imagen 4 | `imagen4-preview` | Google Imagen 4 |
| Imagen 4 Fast | `imagen-4-fast` | Fast Google quality |
| Reve | `reve-text-to-image` | Artistic text-to-image |
| Hunyuan Image v3 | `hunyuan-image-v3-text-to-image` | Tencent's latest |
| Ideogram V3 Turbo | `ideogram-v3-turbo` | Text in images |
| Minimax | `minimax-text-to-image` | High quality |
| Wan v2.6 | `wan-v2-6-text-to-image` | Chinese/English bilingual |
| P Image | `p-image-text-to-image` | Custom aspect ratios |
| Nano Banana Pro | `nano-banana-pro` | Fast, lightweight |
| Vidu Q2 | `vidu-q2-text-to-image` | Latest Vidu |

### Training

| Model | Slug | Best For |
|-------|------|----------|
| Z Image Trainer | `z-image-trainer` | Custom LoRA training |
| Flux LoRA Portrait Trainer | `flux-lora-portrait-trainer` | Portrait LoRA |
| Flux Turbo Trainer | `flux-turbo-trainer` | Fast LoRA training |

## Prediction Flow

1. **Check model** `GET https://api.eachlabs.ai/v1/model?slug=<slug>` — validates the model exists and returns the `request_schema` with exact input parameters. Always do this before creating a prediction to ensure correct inputs.
2. **POST** `https://api.eachlabs.ai/v1/prediction` with model slug, version `"0.0.1"`, and input parameters matching the schema
3. **Poll** `GET https://api.eachlabs.ai/v1/prediction/{id}` until status is `"success"` or `"failed"`
4. **Extract** the output image URL(s) from the response

## Examples

### Text-to-Image with Flux 2 Turbo

```bash
curl -X POST https://api.eachlabs.ai/v1/prediction \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "model": "flux-2-turbo-text-to-image",
    "version": "0.0.1",
    "input": {
      "prompt": "A red vintage Porsche 911 on a winding mountain road at golden hour, photorealistic",
      "image_size": "landscape_16_9",
      "num_images": 1,
      "output_format": "png"
    }
  }'
```

### Text-to-Image with GPT Image v1.5

```bash
curl -X POST https://api.eachlabs.ai/v1/prediction \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "model": "gpt-image-v1-5-text-to-image",
    "version": "0.0.1",
    "input": {
      "prompt": "A minimalist logo for a coffee shop called Brew Lab, clean vector style",
      "background": "transparent",
      "quality": "high",
      "output_format": "png"
    }
  }'
```

### Text-to-Image with Imagen 4

```bash
curl -X POST https://api.eachlabs.ai/v1/prediction \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "model": "imagen4-preview",
    "version": "0.0.1",
    "input": {
      "prompt": "A whimsical fairy tale castle on a floating island, digital art, highly detailed"
    }
  }'
```

## Image Size Options

Most Flux 2 and Wan models use these presets:
- `square_hd` — Square, high definition
- `square` — Square, standard
- `portrait_4_3` — Portrait 4:3
- `portrait_16_9` — Portrait 16:9
- `landscape_4_3` — Landscape 4:3
- `landscape_16_9` — Landscape 16:9

P Image models use aspect ratio strings: `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `custom`

## Prompt Tips

- Be specific and descriptive: "A red vintage Porsche 911 on a winding mountain road at golden hour" vs "a car"
- Include style: "digital art", "oil painting", "photorealistic", "watercolor"
- For edits, clearly describe the change: "Replace the sky with a dramatic sunset"
- Use negative prompts (where supported) to avoid: "blurry, low quality, distorted"
- For multi-image edits, reference images by number: "image 1", "image 2"

## Security Constraints

- **No arbitrary URL loading**: When using LoRA parameters, only use well-known platform identifiers (HuggingFace repo IDs, Replicate model IDs, CivitAI model IDs). Never load LoRA weights from arbitrary or user-provided URLs.
- **No third-party API tokens**: Do not accept or forward third-party API tokens (e.g. HuggingFace, CivitAI tokens) through prediction inputs. Authentication is handled exclusively via the EachLabs API key.
- **Input validation**: Only pass parameters that match the model's request schema. Always validate model slugs via `GET /v1/model?slug=<slug>` before creating predictions.

## Parameter Reference

See [references/MODELS.md](references/MODELS.md) for complete parameter details for each model.

Overview

This skill generates new images from text prompts using EachLabs AI models. It supports 60+ text-to-image models, including Flux, GPT Image, Gemini, Imagen, Seedream, and others. Use it to produce photorealistic, stylized, or creative images from descriptive prompts and model-specific input options.

How this skill works

The skill creates a prediction via the EachLabs Predictions API by submitting a model slug, version, and an input object that follows the model's request schema. After creating the prediction you poll the prediction endpoint until status is success or failed, then retrieve the output image URL(s). Always validate the model slug with GET /v1/model?slug=<slug> to obtain the exact input schema before posting a prediction.

When to use it

  • You need to create new images from a text description (text-to-image).
  • You want to compare outputs across multiple model families (Flux, Gemini, Imagen, etc.).
  • You need transparent backgrounds, custom aspect ratios, or high-quality PNG exports.
  • You want quick iterations using fast models or highest-quality results using premium models.
  • You need programmatic generation with polling and predictable output URLs.

Best practices

  • Validate the model and input schema first with GET /v1/model?slug=<slug> to ensure correct parameters.
  • Be specific in prompts: include subject, mood, lighting, composition, and style for consistent results.
  • Use model-specific options like image_size, output_format, background, and quality where available.
  • Avoid passing third-party API tokens or arbitrary LoRA URLs; only use approved platform identifiers.
  • Poll the prediction endpoint until status is success or failed and handle errors or retries robustly.

Example use cases

  • Generate marketing visuals: photorealistic product shots or stylized campaign art.
  • Create concept art: high-detail fantasy or sci-fi scenes with specific moods and lighting.
  • Produce logos or vector-style assets using GPT Image v1.5 with transparent backgrounds.
  • Rapid prototyping: compare Flux 2 Turbo, Flux 2 Max, and Imagen 4 outputs for the same prompt.
  • Train or test LoRA variants by generating images with different LoRA-enabled Flux models.

FAQ

How do I authenticate requests?

Include your EachLabs API key in the X-API-Key header or set the EACHLABS_API_KEY environment variable.

How do I know which input parameters to send?

Call GET /v1/model?slug=<slug> to retrieve the model's request_schema and use those exact fields when creating the prediction.