주요 콘텐츠로 이동

API 안내

GPT Image 2 VIP API

YingTu가 현재 사용하는 API 설정을 보여 줍니다. 실제 Key는 코드에 포함되지 않습니다.

LaoZhang 토큰 페이지 열기

빠른 시작

  1. 1

    LaoZhang API Key를 만들거나 선택합니다.

  2. 2

    현재 모델 ID와 Python 예시를 복사합니다.

  3. 3

    작은 요청을 한 번 실행하고 응답을 확인합니다.

요청 정보

생성 엔드포인트
POST /v1/images/generations
편집 엔드포인트
POST /v1/images/edits
Base URL
https://api2.laozhang.ai
인증
Bearer API Key
요청 유형
OpenAI Images
참고 이미지
지원
참고 이미지 수
YingTu에서 최대 5장 선택 가능(제공자 최대값 아님)
확인 상태
아직 확인되지 않음 — 확인 가능한 날짜 기록이 없습니다.
API 문서 열기

Python 예시

자리표시자 Key와 자신의 프롬프트를 바꾸세요.

텍스트 이미지 생성 예시

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.

참조 이미지 편집 예시

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))
실제 사용 전 LaoZhang 계정에서 최신 가격, 잔액, 권한을 확인하세요.

요청 파라미터

현재 YingTu 클라이언트와 코드 예시에 맞춘 필드입니다.

model
필수. 이 페이지의 정확한 모델 ID를 사용합니다.
prompt
필수. 이미지 지시를 보내며 API Key는 포함하지 않습니다.
출력 설정
size는 모델 레지스트리에 구성된 정확한 크기에서 고릅니다.
quality
선택 사항. 이 경로에 구성된 품질 단계를 사용합니다.
참고 이미지
선택 사항. YingTu 브라우저에서는 최대 5장을 multipart image 필드로 편집 엔드포인트에 보냅니다.

응답 및 시간 제한

이미지 응답
data[0].b64_json(data URL 포함)을 디코딩하거나 data[0].url을 다운로드합니다.
이미지가 아닌 응답
b64_json 또는 url이 없으면 성공으로 처리하지 않고 API 메시지가 있으면 표시합니다.

클라이언트 500초 제한

500초 후 YingTu 클라이언트는 대기를 중단합니다. 이때 결과와 청구 상태는 알 수 없을 수 있습니다.

자동 재시도 없음

YingTu는 자동 재시도하지 않습니다. 다시 유료 호출하기 전에 요청 및 청구 로그를 확인하세요.

일반적인 오류

인증
환경 변수의 Key와 Bearer 인증 헤더를 확인하세요.
권한 또는 잔액
LaoZhang에서 모델 권한, 잔액, 청구 및 계정 제한을 확인하세요.
요청 제한
동시 실행 수를 낮추고 반환된 상위 또는 계정 메시지를 확인하세요.
이미지 없음
차단/종료 이유, API 메시지 및 response ID를 확인하세요.
시간 초과
최종 상태가 불명확할 수 있으므로 재시도 전에 호출 및 청구 로그를 확인하세요.

알려진 제한

생성 결과를 사용하기 전에 다음 내용을 확인하세요.

  • 다운로드한 파일의 실제 크기를 확인하세요.
  • 보이는 모든 문자, 숫자, 문장 부호를 검토하세요.
  • 정체성, 로고, 포장, 색상과 작은 세부 사항을 확인하세요.
  • 사용 가능 여부와 대기 시간은 달라질 수 있습니다.
  • 가격, 잔액, 권한 및 청구는 LaoZhang에서 확인하세요.

API FAQ

API Key는 어디에 저장하나요?

코드 예시의 환경 변수를 사용하고 코드, 로그, 프롬프트에 전체 Key를 남기지 마세요.

시간 초과는 실패인가요?

항상 그렇지는 않습니다. 500초 후에도 결과나 청구가 불명확할 수 있으므로 로그를 확인하세요.

참고 이미지 수는 제공자 최대값인가요?

아닙니다. 모델 레지스트리에 있는 현재 YingTu 브라우저 제한입니다.

가격과 권한은 어디서 확인하나요?

최신 가격, 잔액, 권한과 청구는 LaoZhang 계정에서 확인하세요.

가격 및 청구

페이지에는 참고 가격이 표시됩니다. 최신 가격, 잔액, 권한, 청구는 LaoZhang 계정에서 확인하세요.

모델 정보
모델 ID
gpt-image-2-vip
참고 가격
$0.03/회
출력 크기
1K / 2K / 4K
정확한 출력 크기
선택 가능한 크기 30개
품질 단계
low / medium / high
API 형식
OpenAI Images

스튜디오에서 이 모델 테스트

현재 이미지 스튜디오에서 사용할 수 있는 설정입니다.

YingTuLaoZhang