feat(image): add gpt-image-2 single and multi-image workflows

This commit is contained in:
zhangheng
2026-05-15 19:30:07 +08:00
commit 1e61d7c806
12 changed files with 1716 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
declare -A PRESERVED_ENV=()
for name in \
OPENAI_API_KEY \
OPENAI_BASE_URL \
IMAGE_REQUEST_STYLE \
IMAGE_SIZE \
IMAGE_RESOLUTION \
IMAGE_PROMPT \
IMAGE_MODEL \
IMAGE_QUALITY \
IMAGE_N \
OUTPUT_FILE \
REFERENCE_IMAGE \
REFERENCE_IMAGE_FILE \
REFERENCE_IMAGE_URL \
REFERENCE_IMAGE_DATA_URL \
MASK_IMAGE \
MASK_IMAGE_FILE \
MASK_IMAGE_URL \
MASK_IMAGE_DATA_URL \
IMAGE_REQUEST_TIMEOUT \
IMAGE_MAX_POLL_WAIT \
IMAGE_INITIAL_POLL_DELAY \
IMAGE_POLL_INTERVAL
do
if [[ -v "$name" ]]; then
PRESERVED_ENV["$name"]="${!name}"
fi
done
if [[ -f .env ]]; then
set -a
source .env
set +a
fi
for name in "${!PRESERVED_ENV[@]}"; do
export "$name=${PRESERVED_ENV[$name]}"
done
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
export IMAGE_REQUEST_STYLE="${IMAGE_REQUEST_STYLE:-openai}"
export IMAGE_MODEL="${IMAGE_MODEL:-gpt-image-2}"
export IMAGE_SIZE="${IMAGE_SIZE:-1024x1024}"
export IMAGE_REQUEST_TIMEOUT="${IMAGE_REQUEST_TIMEOUT:-900}"
export IMAGE_MAX_POLL_WAIT="${IMAGE_MAX_POLL_WAIT:-1800}"
export IMAGE_INITIAL_POLL_DELAY="${IMAGE_INITIAL_POLL_DELAY:-10}"
export IMAGE_POLL_INTERVAL="${IMAGE_POLL_INTERVAL:-5}"
python3 gpt_image2_generate.py "$@"