# Class ImageGenerator

java.lang.Object
com.codename1.ai.ImageGenerator

public abstract class ImageGenerator extends Object

Cloud-first image generation. The `openai` and `replicate` factory methods cover the two dominant managed endpoints. On-device generation via Core ML / ONNX Stable Diffusion is provided separately by the optional `cn1-ai-stablediffusion` cn1lib; see `onDevice()`.

    ImageGenerator.openai(KeyStore.get("openai_key"))
        .generate(new GenerateImageRequest("A cat in a sombrero").setSize("1024x1024"))
        .ready(img -> imageComponent.setIcon(img));

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ImageGenerator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract AsyncResource<Image>`
  `generate(GenerateImageRequest req)`
  `static ImageGenerator`
  `onDevice()`
  On-device generator.
  `static ImageGenerator`
  `openai(String apiKey)`
  `static ImageGenerator`
  `replicate(String apiKey)`
  Replicate runs a wide catalog of third-party image models (SDXL, Flux, etc.) behind a uniform REST API.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ImageGenerator

    public ImageGenerator()

- ## Method Details

  - ### openai

    public static ImageGenerator openai(String apiKey)

  - ### replicate

    public static ImageGenerator replicate(String apiKey)
    Replicate runs a wide catalog of third-party image models (SDXL, Flux, etc.) behind a uniform REST API. Pass the API token from `https://replicate.com/account`.

  - ### onDevice

    public static ImageGenerator onDevice()
    On-device generator. Requires the optional cn1lib `cn1-ai-stablediffusion`; without it this returns an `AsyncResource` that completes with `UnsupportedOperationException`.

  - ### generate

    public abstract AsyncResource<Image> generate(GenerateImageRequest req)