Source path: app/Services/Ai/Image/PollinationsImage.php
Extracted from supplied specification. Review before copying into application.

<?php
namespace App\Services\Ai\Image;

use App\Services\Ai\ImageProvider;
use Illuminate\Support\Facades\Http;

class PollinationsImage implements ImageProvider
{
    public function configured(array $c): bool { return true; } // works without a key

    public function generate(string $prompt, string $size, array $c): string
    {
        [$w, $h] = array_map('intval', explode('x', $size));
        $url = 'https://image.pollinations.ai/prompt/' . rawurlencode($prompt) . '?' .
            http_build_query(['width' => $w, 'height' => $h, 'model' => 'flux', 'nologo' => 'true']);

        $req = Http::timeout(120);
        if (!empty($c['api_key'])) $req = $req->withToken($c['api_key']);
        return $req->get($url)->throw()->body();
    }
}
