AI image generation

Generate images on demand from your app — mockups, hero art, avatars, OG images, and more

Overview

Your app can generate images using state-of-the-art models for product mockups, blog cover art, social media graphics, profile avatars, and more. Image jobs run asynchronously: your app submits a prompt, receives a job ID, and either polls or subscribes for the finished image.

What it supports

  • Prompt-to-image generation — describe an image in plain text and get back a generated image stored in your app
  • Configurable prompt styles — Pentoggle wraps each image channel in a prompt style (e.g., photorealistic, illustrated, flat icon) so generated images stay visually consistent
  • Asynchronous jobs — generation runs in the background; your app polls or subscribes for completion so the UI stays responsive
  • Activity dashboard — see recent jobs, their status, and cost-per-image inside the app's Settings tab
  • Auto-storage — finished images land in a dedicated generated-images storage category and can be referenced anywhere in your app

Example prompts

"Add a 'Generate cover image' button on each blog post
that creates a hero image from the post title."

"Let users describe their dream product and generate three
photorealistic mockups they can choose from."

"Auto-generate a square OG image for every page on my
site using the page title and a brand-consistent style."

Setup (none required)

Image generation is fully managed by Pentoggle. There's no provider account to create, no API key to paste, and no model to pick — the platform configures everything when you ask the agent to add image generation.

Fully managed: Image generation costs are metered as part of your normal usage — you can see per-job cost in the activity dashboard.

Image Generation settings

When your app uses image generation, an Image Generation card appears in your app's Settings tab. From there you can:

  • View the configured image channel(s) — model, prompt style, size limits
  • Preview a prompt style — see how a sample prompt is shaped before it's sent to the model
  • Watch the activity dashboard — recent jobs, status, and cost-per-image

How it works

  1. Your app code (a button click, a scheduled task, etc.) calls the image-generation channel with a prompt and any options (size, count)
  2. Pentoggle wraps your prompt with the channel's configured style and submits the job to the underlying model provider
  3. A job record is created with status queued; your app receives the job ID immediately and updates its UI
  4. The model generates the image asynchronously; Pentoggle uploads the result to your app's generated-images storage category
  5. The job status flips to complete with a URL to the stored image; your app picks it up via polling or a live subscription and renders it
  6. The job, prompt, and cost are recorded in the activity dashboard for later review

Where the images live

Generated images are uploaded automatically to a built-in generated-images storage category in your app's file storage. You can reference them by URL anywhere in your app, list previous generations, and clean up old ones — just like any other file in your storage.

Limitations

  • Model is platform-managed — you can't pick a specific provider or model. Pentoggle chooses from a curated allowlist and rolls forward as better models ship
  • Asynchronous only — there's no blocking generation; your app must handle the queued → complete transition
  • Generation cost is metered — image generation consumes your app's live capacity, so high-volume usage will register on the usage dashboard
  • Content policy applies — prompts that violate the underlying model's content policy will fail with a clear error; the agent can guide you on safer phrasing

Troubleshooting

  • Job stuck in "queued" — check the activity dashboard for a model-provider error; transient failures are retried automatically
  • Generated image doesn't match the prompt style — adjust the channel's style description in Settings, then ask the agent to "refine the image style" from chat for fuller control
  • Image URL returns 404 — the image may still be uploading; wait for the job status to flip to complete, then re-fetch the URL
  • Costs spiking unexpectedly — check the activity dashboard for high-volume callers (often a misconfigured loop) and rate-limit the calling code path