GPT Image 2 API: precio y ejemplo en Python
Se llama con una sola API key de LaoZhang y el mismo endpoint que usa el estudio de YingTu. Abajo tienes el endpoint, los parámetros, el precio por imagen y código para copiar. Tu clave real nunca aparece en los ejemplos. A 9 de octubre de 2026, todos los IDs de modelo de esta página se cobran por imagen, sin suscripción, y funcionan con la misma clave.
Datos clave (a 10 de octubre de 2026)
- IDs de modelo en este endpoint: gpt-image-2-vip, gpt-image-2.5-flare-vip y gpt-image-2.5-sunburst-vip. Una sola clave de LaoZhang sirve para todos.
- Precio por imagen: GPT Image 2 VIP $0.03, GPT Image 2.5 Flare $0.03 y GPT Image 2.5 Sunburst $0.03. Sin suscripción; cada imagen se cobra por separado.
- Base URL https://api2.laozhang.ai, formato de petición de OpenAI: POST /v1/images/generations · /v1/images/edits.
- Las cuentas nuevas de LaoZhang reciben $0.1 para probar: unas 3 imágenes de GPT Image 2 VIP.
- La recarga en laozhang.ai se paga con tarjeta a través de Stripe o en USDT.
En marcha en 3 pasos
- 1
Crea una API key en laozhang.ai (las cuentas nuevas reciben $0.1).
- 2
Copia el ID del modelo y el código de abajo, y guarda la clave en una variable de entorno.
- 3
Genera una imagen para comprobar la respuesta y luego escala.
Endpoint y autenticación
- URL base
- https://api2.laozhang.ai
- Autenticación
- API key Bearer
- Formato de la petición
- OpenAI Images
- Imágenes de referencia
- Sí
- Límite de referencias
- Hasta 5 imágenes en YingTu (no es el máximo del proveedor)
- Estado de verificación
- Aún no verificado: no hay una fecha de comprobación disponible.
Ejemplo de código
Cambia el prompt por el tuyo. Para imágenes de referencia, usa el ejemplo de edición de abajo.
Ejemplo de texto a imagen
export LAOZHANG_API_KEY="replace-with-your-key"
curl --fail-with-body --max-time 500 \
-X POST 'https://api2.laozhang.ai/v1/images/generations' \
-H "Authorization: Bearer ${LAOZHANG_API_KEY}" \
-H "Content-Type: application/json" \
--data '{"model":"gpt-image-2-vip","prompt":"A minimal coffee poster with the exact headline “COFFEE MADE SIMPLE”, high contrast type, warm natural light, clean commercial layout.","size":"2048x2048","quality":"high"}'
# The JSON response can contain base64 image data or an image URL.
# If this request times out, check request and billing logs before retrying.Ejemplo de edición con referencia
import base64
import mimetypes
import os
import sys
import requests
API_KEY = os.environ.get("LAOZHANG_API_KEY")
if not API_KEY:
raise RuntimeError("Set the LAOZHANG_API_KEY environment variable before running this example.")
REQUEST_TIMEOUT_SECONDS = 500
headers = {"Authorization": f"Bearer {API_KEY}"}
def extension_for_mime(mime_type):
return {
"image/jpeg": "jpg",
"image/png": "png",
"image/webp": "webp",
"image/gif": "gif",
}.get(mime_type, "bin")
def decode_base64_image(value, fallback_mime="image/png"):
mime_type = fallback_mime
encoded = value
if value.startswith("data:"):
header, encoded = value.split(",", 1)
mime_type = header[5:].split(";", 1)[0] or fallback_mime
return base64.b64decode(encoded, validate=True), mime_type
def parse_json_response(response):
try:
result = response.json()
except ValueError as error:
print("API returned a non-JSON response.", file=sys.stderr)
raise SystemExit(1) from error
if not isinstance(result, dict):
print("API returned an unexpected JSON shape.", file=sys.stderr)
raise SystemExit(1)
return result
def extract_image(result):
if not isinstance(result, dict):
return None
images = result.get("data") or []
first_image = images[0] if images and isinstance(images[0], dict) else {}
encoded = first_image.get("b64_json")
if isinstance(encoded, str) and encoded:
return decode_base64_image(encoded)
image_url = first_image.get("url")
if isinstance(image_url, str) and image_url:
image_response = requests.get(image_url, timeout=REQUEST_TIMEOUT_SECONDS)
image_response.raise_for_status()
mime_type = image_response.headers.get("Content-Type", "image/png").split(";", 1)[0]
return image_response.content, mime_type
return None
def save_result_image(result):
extracted = extract_image(result)
if not extracted:
keys = sorted(result.keys()) if isinstance(result, dict) else []
print(f"No image data in response. Top-level keys: {keys}", file=sys.stderr)
raise SystemExit(1)
image_bytes, mime_type = extracted
output_path = f"output.{extension_for_mime(mime_type)}"
with open(output_path, "wb") as output_file:
output_file.write(image_bytes)
print(f"Image saved: {output_path} ({mime_type})")
API_URL = "https://api2.laozhang.ai/v1/images/edits"
data = {
"model": "gpt-image-2-vip",
"prompt": "A minimal coffee poster with the exact headline “COFFEE MADE SIMPLE”, high contrast type, warm natural light, clean commercial layout.",
"size": "2048x2048",
"quality": "high"
}
opened_files = []
files = []
image_1_path = "image_1.jpg" # Replace with your reference image path
image_1_mime = mimetypes.guess_type(image_1_path)[0] or "image/jpeg"
image_1_file = open(image_1_path, "rb")
opened_files.append(image_1_file)
files.append(("image", (image_1_path, image_1_file, image_1_mime)))
try:
try:
response = requests.post(
API_URL,
headers=headers,
data=data,
files=files,
timeout=REQUEST_TIMEOUT_SECONDS,
)
except requests.Timeout as error:
print(
"Request timed out after 500 seconds. The result status may be unknown; "
"check call and billing logs before retrying.",
file=sys.stderr,
)
raise SystemExit(1) from error
finally:
for image_file in opened_files:
image_file.close()
if response.status_code != 200:
print(f"API error {response.status_code}: {response.text}", file=sys.stderr)
raise SystemExit(1)
save_result_image(parse_json_response(response))Parámetros de la petición
Los campos coinciden con el cliente actual de YingTu y los ejemplos de código.
| Parámetro | Cómo se envía |
|---|---|
| model | Obligatorio. Usa el ID exacto de esta página. |
| prompt | Obligatorio. Envía la instrucción visual, nunca la API Key. |
| controles de salida | size debe ser uno de los tamaños exactos disponibles para este modelo. |
| quality | Opcional. Usa un nivel de calidad configurado para esta ruta. |
| imágenes de referencia | Opcional. Hasta 5 imágenes en el navegador de YingTu se envían como campos multipart image al endpoint de edición. |
Respuesta y timeout
- Respuesta de imagen
- El cliente decodifica
data[0].b64_json, también data URL, o descargadata[0].urly conserva el tipo MIME. - Respuesta sin imagen
- No se considera éxito sin
b64_jsonourl; se muestra el mensaje de la API si existe.
Timeout del cliente: 500 segundos
Tras 500 segundos YingTu deja de esperar; el resultado y el cargo pueden seguir siendo desconocidos.
Sin reintento automático
YingTu no reintenta automáticamente. Revisa los registros de petición y facturación antes de otra llamada de pago.
Errores habituales
- Autenticación
- Comprueba la Key en la variable de entorno y la cabecera Bearer.
- Acceso o saldo
- Revisa en LaoZhang el acceso al modelo, saldo, facturación y restricciones.
- Límite de peticiones
- Reduce la concurrencia y revisa el mensaje devuelto por el proveedor o la cuenta.
- Sin imagen
- Revisa motivos de bloqueo y finalización, mensaje de API y response ID.
- Timeout
- El estado final puede ser desconocido; revisa llamadas y cargos antes de reintentar.
Limitaciones conocidas
Estos puntos describen lo que conviene comprobar antes de usar el resultado.
- Comprueba las dimensiones reales del archivo descargado.
- Revisa todo el texto, números y signos visibles.
- Revisa identidad, logotipos, envase, colores y detalles.
- La disponibilidad y latencia pueden variar.
- Confirma precio, saldo, acceso y cargos en LaoZhang.
IDs de modelo de GPT Image 2 en este endpoint
Mismo endpoint y mismo formato de petición; solo cambia el ID del modelo.
| Modelo | ID del modelo | Precio | Tamaños |
|---|---|---|---|
| GPT Image 2 VIP | gpt-image-2-vip | $0.03/ imagen | 1K / 2K / 4K |
| GPT Image 2.5 Flare | gpt-image-2.5-flare-vip | $0.03/ imagen | 1K / 2K / 4K |
| GPT Image 2.5 Sunburst | gpt-image-2.5-sunburst-vip | $0.03/ imagen | 1K / 2K / 4K |
Preguntas sobre la API
¿Cuánto cuesta la API de GPT Image 2?
Por imagen y sin suscripción: GPT Image 2 VIP $0.03, GPT Image 2.5 Flare $0.03 y GPT Image 2.5 Sunburst $0.03. Cada cargo aparece en tu cuenta de LaoZhang.
¿Cómo consigo una clave de la API de GPT Image 2?
Crea un token en laozhang.ai (el botón de token arriba de esta página). Una clave sirve para todos los modelos de la tabla y las cuentas nuevas reciben $0.1 para probar.
¿Cuál es la URL base?
https://api2.laozhang.ai/v1, en formato OpenAI Images: /v1/images/generations y /v1/images/edits.
¿Hay una API de GPT Image 2 gratis?
Puedes probarla gratis: las cuentas nuevas de LaoZhang reciben $0.1, unas 3 imágenes de GPT Image 2. Después cada llamada se cobra por imagen de tu saldo, sin plan mensual ni paquetes que comprar.
¿Qué tamaños acepta la API de GPT Image 2?
En size va uno de 30 valores exactos ANCHOxALTO: 10 proporciones en cada nivel (1K, 2K y 4K), por ejemplo 1280x1280, 2048x2048 (el predeterminado) o 3840x2160. La calidad puede ser low, medium o high, y todos los tamaños y calidades cuestan lo mismo, $0.03.
¿Dónde guardo la API Key?
Usa la variable de entorno del ejemplo. No guardes la Key completa en código, logs ni prompts.
¿Un timeout significa que falló?
No siempre. Tras 500 segundos el resultado o cargo puede ser desconocido; revisa los registros.
¿El límite de referencias es del proveedor?
No. Es un límite de YingTu en el navegador, no el máximo del modelo.
¿Dónde confirmo precio y acceso?
El precio, saldo, acceso y cargos actuales se confirman en la cuenta LaoZhang.
Precio y facturación
Se cobra por imagen. El precio mostrado es la tarifa actual de LaoZhang; los cargos reales, el saldo y el acceso a modelos están en tu cuenta de LaoZhang.
- ID del modelo
- gpt-image-2-vip
- Precio
- $0.03/ imagen
- Tamaños
- 1K / 2K / 4K
- Tamaños exactos de salida
- 30 tamaños disponibles
- Niveles de calidad
- low / medium / high
- Formato de API
- OpenAI Images
Probar una primero en el estudio
Todos estos ajustes están en el estudio de imágenes de YingTu, y los usuarios nuevos tienen $0.1 gratis.
Páginas relacionadas
YingTuLaoZhang