Ir al contenido principal

Guía de API

GPT Image 2 VIP API

Muestra los ajustes de API que usa YingTu actualmente. El código nunca incluye tu Key real.

Abrir la página de tokens de LaoZhang

Inicio rápido

  1. 1

    Crea o elige una API Key de LaoZhang.

  2. 2

    Copia el ID actual y el ejemplo Python.

  3. 3

    Ejecuta una petición pequeña y revisa la respuesta.

Datos de la petición

Endpoint de generación
POST /v1/images/generations
Endpoint de edición
POST /v1/images/edits
URL base
https://api2.laozhang.ai
Autenticación
Bearer API Key
Familia de petición
OpenAI Images
Imágenes de referencia
Compatible
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.
Abrir documentación API

Ejemplo en Python

Sustituye la Key de ejemplo y tu propio prompt.

Ejemplo de texto a imagen

cURL
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

gpt-image-2-vip · edit
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))
Antes de producción, confirma precio, saldo y acceso actuales en tu cuenta de LaoZhang.

Parámetros de la petición

Los campos coinciden con el cliente actual de YingTu y los ejemplos de código.

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 usa los tamaños exactos configurados en el registro.
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 descarga data[0].url y conserva el tipo MIME.
Respuesta sin imagen
No se considera éxito sin b64_json o url; 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.

Preguntas sobre la API

¿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 el límite actual del navegador YingTu guardado en el registro 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

La página muestra un precio de referencia. Confirma precio, saldo, acceso y cargos actuales en tu cuenta LaoZhang.

Datos del modelo
ID del modelo
gpt-image-2-vip
Precio de referencia
$0.03/ llamada
Tamaños de salida
1K / 2K / 4K
Tamaños exactos de salida
30 tamaños disponibles
Niveles de calidad
low / medium / high
Formato API
OpenAI Images

Probar este modelo en el estudio

Estos son los ajustes disponibles actualmente en el estudio de imágenes.

YingTuLaoZhang