feat(image): add gpt-image-2 single and multi-image workflows
This commit is contained in:
38
scripts/run_aoixx_direct_test.sh
Executable file
38
scripts/run_aoixx_direct_test.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [[ ! -f .env ]]; then
|
||||
echo ".env not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while IFS= read -r line; do
|
||||
[[ -n "$line" ]] && export "$line"
|
||||
done < <(
|
||||
awk '
|
||||
$0 == "# https://api.aoixx.com" { in_block = 1; next }
|
||||
in_block && /^#/ { exit }
|
||||
in_block && /^OPENAI_API_KEY=/ { print; next }
|
||||
' .env
|
||||
)
|
||||
|
||||
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
|
||||
|
||||
if [[ -z "${OPENAI_API_KEY:-}" ]]; then
|
||||
echo "aoixx OPENAI_API_KEY not found in .env" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export OPENAI_BASE_URL="https://api.aoixx.com"
|
||||
export IMAGE_REQUEST_STYLE="${IMAGE_REQUEST_STYLE:-apicodex}"
|
||||
export IMAGE_SIZE="${IMAGE_SIZE:-3840x2160}"
|
||||
export IMAGE_MODEL="${IMAGE_MODEL:-gpt-image-2}"
|
||||
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 "$@"
|
||||
57
scripts/run_figma_direct_test.sh
Executable file
57
scripts/run_figma_direct_test.sh
Executable 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:-apicodex}"
|
||||
export IMAGE_SIZE="${IMAGE_SIZE:-3840x2160}"
|
||||
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}"
|
||||
export IMAGE_PROMPT="${IMAGE_PROMPT:-A realistic Figma design board screenshot for a digital transformation system, with a left layers panel, center canvas of nested frames and components, and right properties panel. Enterprise product design, Chinese labels, visible grid, alignment guides, annotations, components, variants, spacing notes, dashboard cards, workflow timeline, and system modules. Clean blue-gray palette, crisp typography, premium product design presentation, highly organized layered structure, realistic Figma workspace aesthetic.}"
|
||||
|
||||
python3 gpt_image2_generate.py "$@"
|
||||
57
scripts/run_openai_gpt_image2_edit.sh
Executable file
57
scripts/run_openai_gpt_image2_edit.sh
Executable 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 "$@"
|
||||
71
scripts/run_openai_gpt_image2_multi.sh
Executable file
71
scripts/run_openai_gpt_image2_multi.sh
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/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 \
|
||||
IMAGE_OUTPUT_STEM \
|
||||
IMAGE_RESPONSE_DIR \
|
||||
IMAGE_BACKGROUND \
|
||||
IMAGE_INPUT_FIDELITY \
|
||||
IMAGE_OUTPUT_FORMAT \
|
||||
REFERENCE_IMAGES \
|
||||
REFERENCE_IMAGE_LIST \
|
||||
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
|
||||
|
||||
for i in $(seq 1 16); do
|
||||
name="REFERENCE_IMAGE_${i}"
|
||||
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_RESPONSE_DIR="${IMAGE_RESPONSE_DIR:-outputs/image-multi-runs}"
|
||||
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_multi.py "$@"
|
||||
Reference in New Issue
Block a user