20 lines
1.0 KiB
Bash
Executable File
20 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
PROMPT="$*"
|
|
[ -z "$PROMPT" ] && { echo '{"error":"need prompt"}'; exit 1; }
|
|
# URL-encode prompt
|
|
ENC=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$PROMPT")
|
|
OUT=/tmp/img_$$.jpg
|
|
URL="https://image.pollinations.ai/prompt/${ENC}?width=768&height=768&nologo=true&model=flux"
|
|
HTTP=$(curl -sS -o "$OUT" -w "%{http_code}" --max-time 45 "$URL" 2>&1)
|
|
SZ=$(stat -c%s "$OUT" 2>/dev/null || echo 0)
|
|
if [ "$HTTP" = "200" ] && [ "$SZ" -gt 1000 ]; then
|
|
sudo mkdir -p /var/www/html/generated 2>/dev/null
|
|
FINAL=/var/www/html/generated/gen-$(date +%Y%m%d-%H%M%S)-$$.jpg
|
|
sudo mv "$OUT" "$FINAL"
|
|
sudo chmod 644 "$FINAL"
|
|
echo "{\"ok\":true,\"image\":\"/generated/$(basename $FINAL)\",\"url\":\"https://weval-consulting.com/generated/$(basename $FINAL)\",\"size\":$SZ,\"engine\":\"pollinations-flux\",\"prompt\":$(python3 -c "import json,sys;print(json.dumps(sys.argv[1]))" "$PROMPT")}"
|
|
else
|
|
rm -f "$OUT"
|
|
echo "{\"ok\":false,\"http\":\"$HTTP\",\"size\":$SZ,\"error\":\"pollinations failed\"}"
|
|
fi
|