# SupermakerAIImageMaster
A robust Elixir library for seamless integration with the Supermaker AI Image API. Simplify image generation, manipulation, and retrieval within your Elixir applications.
## Installation
Add `supermaker_ai_image_master` to your list of dependencies in `mix.exs`:
elixir
def deps do
[
{:supermaker_ai_image_master, "~> 0.1.0"} # Replace with the actual version
]
end
Then, run:
bash
mix deps.get
## Usage Examples
Ensure you have configured your API key (consult Supermaker AI Image API documentation for details). The following examples demonstrate common usage patterns.
**Example 1: Generating a simple image**
elixir
alias SupermakerAIImageMaster
case SupermakerAIImageMaster.generate("A cat wearing a hat") do
{:ok, image_url} ->
IO.puts("Image URL: #{image_url}")
{:error, reason} ->
IO.puts("Error generating image: #{reason}")
end
**Example 2: Generating an image with specific dimensions and handling errors**
elixir
alias SupermakerAIImageMaster
options = [width: 512, height: 512]
SupermakerAIImageMaster.generate("A futuristic cityscape", options)
|> case do
{:ok, image_url} ->
IO.puts("Image URL: #{image_url}")
{:error, :invalid_api_key} ->
IO.puts("Invalid API key. Please configure your API key.")
{:error, reason} ->
IO.puts("Error: #{reason}")
end
**Example 3: Asynchronously generating multiple images with different prompts**
elixir
alias SupermakerAIImageMaster
prompts = ["A dog playing fetch", "A bird singing in a tree"]
prompts
|> Enum.map(fn prompt ->
Task.async(fn -> SupermakerAIImageMaster.generate(prompt) end)
end)
|> Enum.map(fn task ->
Task.await(task)
end)
|> Enum.each(fn result ->
case result do
{:ok, image_url} ->
IO.puts("Generated image: #{image_url}")
{:error, reason} ->
IO.puts("Error generating image: #{reason}")
end
end)
**Example 4: Using pattern matching to handle different response types**
elixir
alias SupermakerAIImageMaster
SupermakerAIImageMaster.generate("A portrait of a superhero")
|> case do
{:ok, %{url: image_url, size: image_size}} ->
IO.puts("Image URL: #{image_url}, Size: #{image_size}")
{:ok, image_url} ->
IO.puts("Image URL: #{image_url}")
{:error, %{message: error_message}} ->
IO.puts("API Error: #{error_message}")
{:error, reason} ->
IO.puts("Error: #{reason}")
end
**Example 5: Piping operations for complex image generation scenarios**
elixir
alias SupermakerAIImageMaster
"A majestic lion in the savanna"
|> SupermakerAIImageMaster.generate([width: 768, height: 512])
|> case do
{:ok, image_url} ->
IO.puts("Image URL: #{image_url}")
# Further processing with the image_url (e.g., storing it)
{:error, reason} ->
IO.puts("Error generating image: #{reason}")
end
## Feature Summary
* Simple and intuitive API for image generation.
* Asynchronous operations for non-blocking execution.
* Comprehensive error handling with descriptive error messages.
* Flexible options for customizing image generation.
* Well-defined data structures for easy integration.
* Built with Elixir best practices for reliability and performance.
## License
MIT
This package is part of the supermaker-ai-image-master ecosystem. For advanced features and enterprise-grade tools, visit: https://supermaker.ai/image/