adachsoft / ai-image-xai
AI image explanation library
v0.2.0
2026-03-19 05:29 UTC
Requires
- adachsoft/ai-image-contract: ^0.2
- adachsoft/collection: ^3.0
- guzzlehttp/guzzle: ^7.10
Requires (Dev)
- adachsoft/php-code-style: ^0.4.2
- friendsofphp/php-cs-fixer: ^3.94
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^13.0
- rector/rector: ^2.3
- vlucas/phpdotenv: ^5.6
README
AI image generator implementation for the X.AI (Grok) API.
Installation
composer require adachsoft/ai-image-xai
Usage
use AdachSoft\AiImageContract\Collections\ImageInputCollection;
use AdachSoft\AiImageContract\Exceptions\AiImageExceptionInterface;
use AdachSoft\AiImageContract\Models\GenerationRequest;
use AdachSoft\AiImageContract\ValueObjects\ImageSize;
use AdachSoft\AiImageContract\ValueObjects\Prompt;
use AdachSoft\AiImageXai\XaiImageGeneratorFactory;
$generator = XaiImageGeneratorFactory::create('your-xai-api-key');
$request = new GenerationRequest(
prompt: new Prompt('A cute dog with a lion mane'),
imageInputs: new ImageInputCollection([]),
size: new ImageSize(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.
ContentModerationExceptionis used for moderation and safety filter rejections.RetryableExceptionis used for temporary provider failures such as rate limits, connectivity issues, and transient server errors.GenerationFailedExceptionis used for non-retryable generation failures.