public abstract class ImageGenerator
- Object
- ImageGenerator
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));
Constructors
public ImageGenerator() |
Methods
public static ImageGenerator openai(String apiKey) | Creates an OpenAI image generator talking to the public endpoint. |
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. |
public static ImageGenerator replicate(String apiKey) | Replicate runs a wide catalog of third-party image models (SDXL, Flux, etc.) behind a uniform REST API. |
public static ImageGenerator onDevice() | On-device generator. |
public abstract AsyncResource<Image> generate(GenerateImageRequest req) | Generates an image without blocking the EDT. |
Inherited methods
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
apiKeyString- 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
baseUrlString- 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 apiKeyString- credential for that endpoint, or empty when it needs none
Returns
configured generator
Throws
IllegalArgumentException- when
baseUrlis 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
apiKeyString- 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
reqGenerateImageRequest- provider-neutral generation request
Returns
asynchronous generated image