SwiftUI view that asynchronously loads and displays an OpenAI image from open API
- Multiplatform iOS and macOS
- Customizable in term of SwiftUI Image specs [renderingMode, resizable, antialiased...]
- Customizable in term of the transport layer [Loader]
- Based on interfaces not implementations
Where do I find my Secret API Key?
@Environment(\.openAIDefaultLoader) var loader : OpenAIDefaultLoader
let apiKey = "*******************"
let endpoint = OpenAIImageEndpoint.get(with: apiKey)
let loader = OpenAIDefaultLoader(endpoint: endpoint)
ContentView()
.environment(\.openAIDefaultLoader, loader)
OpenAIAsyncImage(prompt: .constant("sun"))
.frame(width: 125, height: 125)
or with custom ViewBuilder
OpenAIAsyncImage(prompt: $imageText, size: .dpi1024){ state in
switch state{
case .loaded(let image) :
image
.resizable()
.scaledToFill()
case .loadError(let error) : Text(error.localizedDescription)
case .loading : ProgressView()
}
}
Param | Description |
---|---|
prompt | A text description of the desired image(s). The maximum length is 1000 characters |
size | The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024 |
tpl | Custom view builder tpl |
loader | Custom loader if you need something specific |
- You need to have Xcode 13 installed in order to have access to Documentation Compiler (DocC)
- Go to Product > Build Documentation or ⌃⇧⌘ D