# Artbreeder AI Image Creator (`maximedupre/artbreeder-ai-image-creator`) Actor

Generate Artbreeder text-to-image results from prompts. Choose a model, shape, seed, negative prompt, and step settings, then export image URLs, dimensions, safety flags, and run metadata.

- **URL**: https://apify.com/maximedupre/artbreeder-ai-image-creator.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** AI, For creators, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.70 / 1,000 generated images

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 🎨 Artbreeder AI Image Creator for prompts

Artbreeder AI Image Creator generates images from text prompts on [Artbreeder](https://www.artbreeder.com/). Add one or more prompts, choose a model and shape, then export generated image URLs, dimensions, safety flags, model settings, seeds, and source metadata from an Apify dataset.

Use this Actor when you need repeatable Artbreeder text-to-image output for creative testing, design research, mood boards, content drafts, product mockups, or prompt experiments. Instead of opening Artbreeder by hand for each prompt, you can run a small batch in Apify Console, call it through the Apify API, schedule runs, or export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.

For a quick first run, keep the sample prompt, leave **Images per prompt** set to `1`, and use the default **SDXL Lightning** model. Once the result shape looks right, add more prompts or adjust the model, shape, negative prompt, guidance scale, inference steps, and seed.

### ✅ What this Actor does

- Generates Artbreeder images from one or more text prompts.
- Saves one dataset row per successfully generated image.
- Supports the planned Artbreeder model options: Flux Dev, Flux Schnell, Flux Krea, SDXL Lightning, SD 3.5 Large, SD 3.5 Medium, and SDXL 1.0.
- Supports square, wider, wide, tall, and taller image shapes.
- Lets you set a negative prompt, guidance scale, inference steps, and an optional seed.
- Includes NSFW safety flags returned by Artbreeder.
- Adds source and run metadata so each row is easy to trace.
- Skips failure/status placeholder rows; the dataset contains generated images only.

You do not need to provide Artbreeder cookies, an Artbreeder login, or an Artbreeder API key. The Actor is built for the public prompt generation flow available to the run.

### 📦 Data you can export

Each output item represents one generated Artbreeder image. Fields include:

- `prompt` and `promptIndex`
- `imageUrl`
- `width` and `height`
- `model`
- `shape`
- `isNsfw`
- `generatedAt`
- `settings.guidanceScale`
- `settings.numInferenceSteps`
- `settings.seed`
- `settings.imagesPerPrompt`
- `settings.negativePrompt` when you provide one
- `safety.isNsfw`
- `safety.topWords` when Artbreeder returns safety or topic signals
- `sourcePlatform`
- `sourceUrl`

The image URL is the generated image asset returned by Artbreeder. Store it promptly if your workflow needs a long-lived copy, because source-hosted generated media URLs can be time-bound.

### 🚀 How to run

1. Add one or more image prompts in **Prompts**.
2. Keep **Images per prompt** at `1` for the first run.
3. Choose an Artbreeder model and shape.
4. Optionally add a negative prompt, seed, guidance scale, or inference steps.
5. Start the Actor.
6. Open the dataset and use `imageUrl` for each generated image.

Example prompt ideas:

```text
a small red glass apple on a clean white table, studio photo
a cozy reading nook with warm morning light, interior design render
a futuristic sneaker product photo on a reflective floor
````

### 🧾 Input

```json
{
	"prompts": [
		"a small red glass apple on a clean white table, studio photo"
	],
	"imagesPerPrompt": 1,
	"modelVersion": "sdxl-1.0-lightning",
	"shape": "square",
	"guidanceScale": 1,
	"numInferenceSteps": 4
}
```

#### ✍️ Prompts

Enter text-to-image prompts. Clear, visual prompts work best. Include the subject, medium, scene, style, lighting, or composition you care about.

#### ⚙️ Generation settings

Use **Model** to choose the Artbreeder generation model. Use **Shape** to pick the image aspect ratio. Use **Negative prompt** when you want to avoid specific visual elements such as blur, text, watermarks, or extra limbs.

**Guidance scale**, **Inference steps**, and **Seed** are advanced controls for prompt experiments. Leave them at the defaults for a simple first run.

### 📄 Output example

```json
{
	"prompt": "a small red glass apple on a clean white table, studio photo",
	"promptIndex": 0,
	"imageUrl": "https://artbreederpublic-shortlived.s3.amazonaws.com/30d/imgs/example.jpeg",
	"width": 1024,
	"height": 1024,
	"model": "sdxl-1.0-lightning",
	"shape": "square",
	"isNsfw": false,
	"generatedAt": "2026-05-30T14:11:10.292Z",
	"settings": {
		"guidanceScale": 1,
		"numInferenceSteps": 4,
		"seed": 321,
		"imagesPerPrompt": 1
	},
	"safety": {
		"isNsfw": false
	},
	"sourcePlatform": "Artbreeder",
	"sourceUrl": "https://www.artbreeder.com/tools/prompter"
}
```

### 💸 Pricing

This Actor uses pay-per-event pricing. You are charged for each generated image that is successfully saved to the dataset. Invalid input, skipped generations, and runs that do not save generated images do not create generated-image events.

There is no separate Actor-start charge in this pricing artifact.

### ⚠️ Limits and caveats

The Actor depends on Artbreeder returning generated images for the selected model and prompt. Source-side capacity, safety handling, unavailable models, or temporary generation errors can affect a run.

The dataset contains successful generated-image rows only. If a prompt cannot be generated, the run reports the outcome in logs instead of saving a failure row that could pollute exports.

Generated media URLs are returned as source URLs. If you need a permanent asset archive, download or copy the images into your own storage after the run.

### ❓ FAQ

#### 🔐 Do I need an Artbreeder account?

No. The Actor does not ask for Artbreeder cookies, login details, or an API key.

#### 🔢 Can I generate more than one image per prompt?

Yes. Use **Images per prompt** to choose how many images to save for each prompt.

#### 💾 Does it download image files into Apify storage?

No. The Actor returns generated image URLs and metadata in the dataset. It does not save binary image files to key-value storage.

#### 🧹 Are failed generations saved as rows?

No. Dataset rows are only generated images. Warnings and handled input issues are shown in the run logs.

### 📝 Changelog

- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~artbreeder-ai-image-creator/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [Unsplash Image Scraper ↗](https://apify.com/maximedupre/unsplash-image-scraper) - collect image search results for mood boards and design research.
- [Twitter Screenshot Generator ↗](https://apify.com/maximedupre/twitter-screenshot-generator) - capture clean screenshots of public X posts.
- [Pinterest Video Downloader ↗](https://apify.com/maximedupre/pinterest-video-downloader) - extract media from public Pinterest pins.
- [Instagram Downloader API ↗](https://apify.com/maximedupre/instagram-downloader-api) - export media links from public Instagram posts and reels.
- [TikTok Video Downloader ↗](https://apify.com/maximedupre/tiktok-video-downloader) - download media files from public TikTok video URLs.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `prompts` (type: `array`):

Enter one or more Artbreeder text-to-image prompts. Use clear visual descriptions such as product photos, mood board scenes, character concepts, or style tests.

## `imagesPerPrompt` (type: `integer`):

How many generated images to save for each prompt. Keep this at 1 for a small test run.

## `negativePrompt` (type: `string`):

Optional words or concepts you want Artbreeder to avoid, such as text, blur, watermark, or extra limbs.

## `modelVersion` (type: `string`):

Choose the Artbreeder generation model. SDXL Lightning is the fastest default for first tests; Flux and SD 3.5 options are available for different visual styles.

## `shape` (type: `string`):

Choose the generated image aspect ratio: square, landscape, or portrait.

## `guidanceScale` (type: `number`):

Controls how strongly the model follows the prompt. Higher values can make the image more literal but may reduce natural variation.

## `numInferenceSteps` (type: `integer`):

Generation step count. More steps may change detail and runtime; keep the default for quick tests.

## `seed` (type: `integer`):

Optional fixed seed for repeatable prompt experiments. Leave empty to use a random seed.

## `concurrentRequests` (type: `integer`):

How many independent image generations can run at once. The default is tuned for a good balance of speed and cost.

## Actor input object example

```json
{
  "prompts": [
    "a small red glass apple on a clean white table, studio photo"
  ],
  "imagesPerPrompt": 1,
  "negativePrompt": "",
  "modelVersion": "sdxl-1.0-lightning",
  "shape": "square",
  "guidanceScale": 1,
  "numInferenceSteps": 4,
  "concurrentRequests": 4
}
```

# Actor output Schema

## `results` (type: `string`):

Open the dataset with generated image URLs, prompts, dimensions, model settings, safety flags, and source metadata.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "prompts": [
        "a small red glass apple on a clean white table, studio photo"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/artbreeder-ai-image-creator").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "prompts": ["a small red glass apple on a clean white table, studio photo"] }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/artbreeder-ai-image-creator").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "prompts": [
    "a small red glass apple on a clean white table, studio photo"
  ]
}' |
apify call maximedupre/artbreeder-ai-image-creator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maximedupre/artbreeder-ai-image-creator",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Artbreeder AI Image Creator",
        "description": "Generate Artbreeder text-to-image results from prompts. Choose a model, shape, seed, negative prompt, and step settings, then export image URLs, dimensions, safety flags, and run metadata.",
        "version": "0.1",
        "x-build-id": "673BRlXzZxEmi5F5a"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~artbreeder-ai-image-creator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-artbreeder-ai-image-creator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/maximedupre~artbreeder-ai-image-creator/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-artbreeder-ai-image-creator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/maximedupre~artbreeder-ai-image-creator/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-artbreeder-ai-image-creator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "prompts"
                ],
                "properties": {
                    "prompts": {
                        "title": "Prompts",
                        "type": "array",
                        "description": "Enter one or more Artbreeder text-to-image prompts. Use clear visual descriptions such as product photos, mood board scenes, character concepts, or style tests.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "imagesPerPrompt": {
                        "title": "Images per prompt",
                        "minimum": 1,
                        "maximum": 4,
                        "type": "integer",
                        "description": "How many generated images to save for each prompt. Keep this at 1 for a small test run.",
                        "default": 1
                    },
                    "negativePrompt": {
                        "title": "Negative prompt",
                        "type": "string",
                        "description": "Optional words or concepts you want Artbreeder to avoid, such as text, blur, watermark, or extra limbs.",
                        "default": ""
                    },
                    "modelVersion": {
                        "title": "Model",
                        "enum": [
                            "flux-dev",
                            "flux-schnell",
                            "flux-krea",
                            "sdxl-1.0-lightning",
                            "sd-3.5-large",
                            "sd-3.5-medium",
                            "sdxl-1.0"
                        ],
                        "type": "string",
                        "description": "Choose the Artbreeder generation model. SDXL Lightning is the fastest default for first tests; Flux and SD 3.5 options are available for different visual styles.",
                        "default": "sdxl-1.0-lightning"
                    },
                    "shape": {
                        "title": "Shape",
                        "enum": [
                            "square",
                            "wider",
                            "wide",
                            "tall",
                            "taller"
                        ],
                        "type": "string",
                        "description": "Choose the generated image aspect ratio: square, landscape, or portrait.",
                        "default": "square"
                    },
                    "guidanceScale": {
                        "title": "Guidance scale",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "number",
                        "description": "Controls how strongly the model follows the prompt. Higher values can make the image more literal but may reduce natural variation.",
                        "default": 1
                    },
                    "numInferenceSteps": {
                        "title": "Inference steps",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Generation step count. More steps may change detail and runtime; keep the default for quick tests.",
                        "default": 4
                    },
                    "seed": {
                        "title": "Seed",
                        "minimum": 0,
                        "maximum": 2147483647,
                        "type": "integer",
                        "description": "Optional fixed seed for repeatable prompt experiments. Leave empty to use a random seed."
                    },
                    "concurrentRequests": {
                        "title": "Concurrent requests",
                        "minimum": 1,
                        "maximum": 4,
                        "type": "integer",
                        "description": "How many independent image generations can run at once. The default is tuned for a good balance of speed and cost.",
                        "default": 4
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
