Search by

adachsoft / ai-image-xai

Arkadiusz Adach

AI image explanation library

Package info

gitlab.com/a.adach/ai-image-xai

Issues

pkg:composer/adachsoft/ai-image-xai

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

v0.3.1 2026-11-06 21:18 UTC

This package is auto-updated.

Last update: 2026-11-07 07:47:56 UTC


README

AI image generator implementation for the X.AI (Grok) API.

Installation

composer require adachsoft/ai-image-xai

Plugin auto-discovery

This package declares the xai plugin under the adachsoft/ai-image-contract discovery key in composer.json. Libraries that implement the contract's auto-discovery can detect the plugin automatically after this package is installed with Composer.

The plugin requires the api_key parameter.

use AdachSoft\AiImageContract\Plugins\PluginParametersDto;
use AdachSoft\AiImageXai\XaiImagePlugin;

$generator = (new XaiImagePlugin())->create(
    new PluginParametersDto(['api_key' => 'your-xai-api-key']),
);

Usage

use AdachSoft\AiImageContract\Collections\ImageInputVoCollection;
use AdachSoft\AiImageContract\Exceptions\AiImageExceptionInterface;
use AdachSoft\AiImageContract\Models\GenerationRequestDto;
use AdachSoft\AiImageContract\ValueObjects\ImageSizeVo;
use AdachSoft\AiImageContract\ValueObjects\PromptVo;
use AdachSoft\AiImageXai\XaiImageGeneratorFactory;

$generator = XaiImageGeneratorFactory::create('your-xai-api-key');

$request = new GenerationRequestDto(
    prompt: new PromptVo('A cute dog with a lion mane'),
    imageInputs: new ImageInputVoCollection([]),
    size: new ImageSizeVo(1024, 1024),
    options: ['model' => 'grok-imagine-image'],
);

try {
    $response = $generator->generate($request);

    foreach ($response->images as $image) {
        if ($image->url !== null) {
            echo $image->url . PHP_EOL;
        }

        if ($image->b64Json !== null) {
            echo $image->b64Json . PHP_EOL;
        }
    }
} catch (AiImageExceptionInterface $exception) {
    echo $exception->getMessage();
}

Exception model

This adapter follows the adachsoft/ai-image-contract exception model.

  • ContentModerationException is used for moderation and safety filter rejections.
  • RetryableException is used for temporary provider failures such as rate limits, connectivity issues, and transient server errors.
  • GenerationFailedException is used for non-retryable generation failures.