Integrate GPT Image 2.5 API from https://gptimage25api.com into this project. Read https://gptimage25api.com/llms-full.txt and https://gptimage25api.com/openapi.json first. This is an independent third-party API. The model gpt-image-2.5 uses GPT Image 2.5 Flare or Sunburst; do not claim this is the official OpenAI API or use the OpenAI SDK unchanged. Store GPTIMAGE25_API_KEY only in server-side environment variables. The user creates a key at https://gptimage25api.com/dashboard/api-keys after signing in. Never ask them to paste secrets into chat, source code, client bundles or logs. POST /api/v1/images/generate with Authorization: Bearer and Content-Type: application/json. Use {model:"gpt-image-2.5",variant:"flare",prompt:"...",aspect_ratio:"3:2",resolution:"1K",public:false}. Save data.task_id durably. GET /api/v1/images/status?task_id= using the SAME API key every 8 seconds. Back off on 429/502/503/504. Stop on SUCCESS and use data.response (image URL array); stop on FAILED and show data.error_message. REFUND_PENDING needs slower status checks. Keep a bounded polling deadline; persist the task ID and allow resuming after timeout or reload. Never auto-retry generate: client_request_id is NOT an idempotency guarantee and repeated POSTs can charge again. Validate prompt <=20000 characters. images is an optional array of public HTTP(S) image URLs; a nonempty prompt is always required, with at most 16 reference images. variant is flare (default) or sunburst. Aspect ratios: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, 27:16, 16:27, 9:8, 8:9. Resolutions: 1K, 2K, 4K; all 13 aspect ratios support all resolutions. Costs: 1K = 4 credits, 2K = 6 credits, 4K = 10 credits. Check HTTP status and the {code,message,data} envelope. Handle 401 invalid/disabled keys, 402 credits, 403 wrong-project key and 404 ownership. Do not send Cookie, project_key, email, service keys or internal provider URLs. Build loading, success, error, timeout and resumable-polling states. Download results promptly to the application's own storage; no permanent output retention is promised. Use mocks for tests; do not perform paid generation without user intent.