<?php 
 
header("Access-Control-Allow-Origin: *"); 
 
$prompt = $_GET['prompt'] ?? ''; 
if ($prompt === '') { 
    echo json_encode(['error' => 'Empty prompt!']); 
    exit(); 
} 
 
$models = [ 
    '@cf/lykon/dreamshaper-8-lcm', 
    '@cf/stabilityai/stable-diffusion-xl-base-1.0', 
    '@cf/bytedance/stable-diffusion-xl-lightning', 
]; 
$model = $models[random_int(0, count($models)-1)]; 
 
$prompt = rawurldecode($prompt); 
$settingPath = 'settings.txt'; 
if (file_exists($settingPath) === false) { 
    echo json_encode(['error' => "$settingPath file is not found!"]); 
    exit(); 
} 
 
$settings = file_get_contents('settings.txt'); 
$arrSetting = explode(PHP_EOL, $settings); 
if (count($arrSetting) !== 3) { 
    echo json_encode(['error' => 'setting file format is invalid!']); 
    exit(); 
} 
 
$accountId = $arrSetting[0]; 
$token = $arrSetting[1]; 
 
$curl = curl_init(); 
 
curl_setopt_array($curl, [ 
  CURLOPT_URL => "https://api.cloudflare.com/client/v4/accounts/$accountId/ai/run/$model", 
  CURLOPT_RETURNTRANSFER => true, 
  CURLOPT_ENCODING => "", 
  CURLOPT_MAXREDIRS => 10, 
  CURLOPT_TIMEOUT => 30, 
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
  CURLOPT_CUSTOMREQUEST => "POST", 
  CURLOPT_POSTFIELDS => json_encode(['prompt' => $prompt]), 
  CURLOPT_HTTPHEADER => [ 
    "Authorization: Bearer $token", 
    "Content-Type: application/json", 
  ], 
]); 
 
$response = curl_exec($curl); 
$err = curl_error($curl); 
 
curl_close($curl); 
 
if ($err !== '') { 
    echo json_encode(['error' => $err]); 
    exit(); 
} 
 
echo json_encode(['result' => base64_encode($response)]); 
 
 |