PHP code example of hosmelq / falai

1. Go to this page and download the library: Download hosmelq/falai library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

hosmelq / falai example snippets


$fal = FalAI::client('your-api-key-here');



use HosmelQ\FalAI\FalAI;
use HosmelQ\FalAI\Queue\Responses\QueueStatusCompleted;

$fal = FalAI::client();

$response = $fal->queue()->submit('fal-ai/fast-sdxl', [
    'prompt' => 'a sleeping cat',
]);

$status = $fal->queue()->status('fal-ai/fast-sdxl', $response->requestId);

if ($status instanceof QueueStatusCompleted) {
    $result = $fal->queue()->result('fal-ai/fast-sdxl', $response->requestId);
}



use HosmelQ\FalAI\FalAI;

$fal = FalAI::client();

$result = $fal->run('fal-ai/fast-sdxl', [
    'prompt' => 'a fluffy cat',
]);



use HosmelQ\FalAI\FalAI;

$fal = FalAI::client();

$status = $fal->queue()->submit('fal-ai/fast-sdxl', [
    'prompt' => 'a black cat',
]);

echo $status->requestId;



use HosmelQ\FalAI\FalAI;
use HosmelQ\FalAI\Queue\Responses\QueueStatusCompleted;
use HosmelQ\FalAI\Queue\Responses\QueueStatusInProgress;
use HosmelQ\FalAI\Queue\Responses\QueueStatusQueued;

$fal = FalAI::client();

$status = $fal->queue()->status('fal-ai/fast-sdxl', $requestId);

if ($status instanceof QueueStatusQueued) {
    echo 'Status: IN_QUEUE';
} elseif ($status instanceof QueueStatusInProgress) {
    echo 'Status: IN_PROGRESS';
} elseif ($status instanceof QueueStatusCompleted) {
    echo 'Status: COMPLETED';
}

echo $status->jsonSerialize()['status'];



use HosmelQ\FalAI\FalAI;

$fal = FalAI::client();

$result = $fal->queue()->result('fal-ai/fast-sdxl', $requestId);

use HosmelQ\FalAI\Queue\Responses\QueueStatusCompleted;

foreach ($fal->queue()->streamStatus('fal-ai/fast-sdxl', $requestId) as $status) {
    echo 'Status: '.$status->jsonSerialize()['status']."\n";
    
    if ($status instanceof QueueStatusCompleted) {
        echo 'Task completed! Result ready.'."\n";
        break;
    }
}



use HosmelQ\FalAI\FalAI;

$fal = FalAI::client();

$cancelled = $fal->queue()->cancel('fal-ai/fast-sdxl', $requestId);

if ($cancelled) {
    echo 'Request cancelled successfully.';
} else {
    echo 'Request could not be cancelled (may already be completed).';
}



use HosmelQ\FalAI\FalAI;

$fal = FalAI::client();

$status = $fal->queue()->submit(
    endpointId: 'fal-ai/fast-sdxl',
    input: ['prompt' => 'a white cat'],
    webhookUrl: 'https://your-app.com/webhook'
);



use HosmelQ\FalAI\Exceptions\WebhookVerificationException;
use HosmelQ\FalAI\WebhookVerifier;

$verifier = new WebhookVerifier();

$body = $request->getContent();
$headers = $request->headers->all();

try {
    $isValid = $verifier->verify($body, $headers);
    
    if ($isValid) {
        $payload = json_decode($body, true);
        
        if ($payload['status'] === 'OK') {
            echo 'Request '.$payload['request_id'].' completed successfully.';
        } elseif ($payload['status'] === 'ERROR') {
            echo 'Request failed: '.$payload['error'];
        }
    }
} catch (WebhookVerificationException $e) {
    echo 'Webhook verification failed: '.$e->getMessage();
}



use HosmelQ\FalAI\WebhookVerifier;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Symfony\Component\Cache\Psr16Cache;

$cache = new Psr16Cache(new FilesystemAdapter());
$verifier = new WebhookVerifier($cache);



use HosmelQ\FalAI\FalAI;

$fal = FalAI::client();

$result = $fal->run('fal-ai/fast-sdxl', [
    'prompt' => 'a cat with blue eyes',
]);

echo $result['images'][0]['url'];



use HosmelQ\FalAI\FalAI;
use Saloon\Exceptions\Request\FatalRequestException;
use Saloon\Exceptions\Request\RequestException;

$fal = FalAI::client();

try {
    $result = $fal->run('fal-ai/fast-sdxl', [
        'prompt' => 'a gray cat',
    ]);
} catch (FatalRequestException $e) {
    echo 'Fatal error: '.$e->getMessage();
} catch (RequestException $e) {
    echo 'Request error: '.$e->getMessage();
}



use HosmelQ\FalAI\FalAI;
use HosmelQ\SSE\SSEProtocolException;
use Saloon\Exceptions\Request\FatalRequestException;
use Saloon\Exceptions\Request\RequestException;

$fal = FalAI::client();

try {
    $fal->queue()->streamStatus('fal-ai/fast-sdxl', $requestId);
} catch (FatalRequestException $e) {
    echo 'Fatal error: '.$e->getMessage();
} catch (RequestException $e) {
    echo 'Request error: '.$e->getMessage();
} catch (SSEProtocolException $e) {
    echo 'SSE protocol error: '.$e->getMessage();
}



use HosmelQ\FalAI\FalAI;
use HosmelQ\FalAI\Queue\QueuePriority;

$fal = FalAI::client();

$status = $fal->queue()->submit(
    endpointId: 'black-forest-labs/FLUX.1-schnell',
    input: ['prompt' => 'a striped cat'],
    hint: 'black-forest-labs/FLUX.1-schnell',
    priority: QueuePriority::Low
);