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 Details

    • ImageGenerator

      public ImageGenerator()
  • Method Details

    • openai

      public static ImageGenerator openai(String apiKey)

      Creates an OpenAI image generator talking to the public endpoint.

      Shipping this means the key travels with the app, and a key the running app can read is one its user can extract. For a released build, put the key on your server and point openAiCompatible(String, String) at it instead.

      Parameters:
      apiKey - OpenAI API key
      Returns:
      configured generator
    • openAiCompatible

      public static ImageGenerator openAiCompatible(String baseUrl, String apiKey)
      Creates a generator for any endpoint that speaks the OpenAI image generation API -- most usefully your own server, holding the provider key and proxying the call, so the device carries nothing more than a short-lived token of yours.
      Parameters:
      baseUrl - endpoint root, for example https://api.example.com/ai/v1; required, because falling back to the public endpoint would send your proxy's token and your user's prompt to a third party
      apiKey - credential for that endpoint, or empty when it needs none
      Returns:
      configured generator
      Throws:
      IllegalArgumentException - when baseUrl is null or empty
    • 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.
      Parameters:
      apiKey - Replicate API token
      Returns:
      configured generator
    • 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.
      Returns:
      optional on-device generator or an unsupported stub
    • generate

      public abstract AsyncResource<Image> generate(GenerateImageRequest req)
      Generates an image without blocking the EDT.
      Parameters:
      req - provider-neutral generation request
      Returns:
      asynchronous generated image