동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.
원하는 이미지를 얻는 방법은 “이번 시도가 실패했는데, 어떻게 되살릴 수 있나요?”에 답합니다. 이 페이지에서는 그다음 질문인 **어떻게 하면 모든 시도를 성공시킬 수 있나요?**에 답합니다.다음과 같은 질문이 자주 나옵니다. freepik.com 및 higgsfield.ai과 같은 소비자용 이미지 제품은 여러분이 사용하는 것과 동일한 기반 모델, 즉 동일한 Nano Banana, GPT-Image 및 FLUX 제품군을 기반으로 실행되는데도 결과물이 더 완성도 높아 보입니다. 그 차이는 모델 가중치에 있는 것이 아닙니다. 모델을 감싸는 레이어에 있으며, 이 레이어를 직접 구축할 수 있습니다. 이 페이지에서는 그 방법을 설명합니다.
이러한 제품 중 하나를 분해해 보면 모델 외부에 대략 8개의 계층이 있습니다. 이 모든 계층은 API에서 재현할 수 있습니다.
제품이 수행하는 작업
해결하는 문제
API에서 재현하는 방법
프롬프트 재작성 계층 (프롬프트 강화)
사용자는 일상적인 표현으로 작성하지만, 모델은 구조화된 설명을 원합니다
먼저 텍스트 모델을 호출해 재작성한 다음 이미지 모델을 호출합니다(2절)
스타일 프리셋 (클릭 가능한 수십 개의 프리셋과 저장된 사용자 지정 프리셋)
미적 스타일을 고정하므로 사용자가 사진 관련 용어를 알 필요가 없습니다
프리셋은 코드에 있는 프롬프트 조각 상수와 고정된 참조 이미지 세트일 뿐입니다
정체성 고정 (예: 20~80장의 사진으로 지속적인 정체성을 학습하는 Higgsfield의 Soul ID)
여러 생성 결과에서 동일한 인물이 동일하게 유지됩니다
참조 이미지를 사용해 근사할 수 있습니다(아래 제한 사항 참조)
여러 개를 샘플링하고 하나를 표시
사용자는 최상의 후보만 보므로 체감 적중률이 100%에 가까워집니다
N개를 병렬로 생성한 다음 비전 모델이 점수를 매겨 선택하도록 합니다(3절, 3~4단계)
단계별 편집
한 번에 복합 지시를 내리면 안정적으로 결과가 무너집니다
먼저 구도를 고정하고, 그다음 국소적으로 편집한 후 텍스트를 추가합니다
업스케일링 및 후처리 (Freepik은 2024년에 Magnific을 인수하여 2×~16× 창의적 업스케일링을 제공)
작은 출력을 인쇄 가능한 크기로 변환합니다
APIYI에는 이러한 엔드포인트가 없으므로 대신 생성 시 고해상도 등급을 선택합니다(아래 제한 사항 참조)
네거티브 프롬프트 및 안전 대체 경로
알려진 모델의 습관을 피하도록 유도하고, 모더레이션에서 거부할 요청을 포착합니다
고정된 네거티브 표현을 템플릿에 포함하고, 모더레이션 실패에 대비한 다운그레이드 경로를 추가합니다
에셋 라이브러리 및 재호스팅
사용자 이미지가 만료되거나 사라지지 않습니다
모든 결과를 즉시 자체 객체 스토리지에 복사합니다
경쟁사의 기능 목록을 그대로 복사하기 전에 정리해야 할 두 가지 플랫폼 제한 사항:
APIYI에는 업스케일링, 배경 제거 또는 얼굴 복원 엔드포인트가 없습니다. 큰 이미지가 필요하다면 나중에 확대할 계획을 세우기보다 생성 시 고해상도 등급을 선택합니다(4K의 gpt-image-2, 4K의 Nano Banana Pro). 투명한 배경이 필요한 경우 background: "transparent"과 함께 공식 릴레이 gpt-image-2.5-flare / gpt-image-2.5-sunburst를 사용합니다. 실제 알파 채널이 포함된 PNG를 반환합니다(OpenAI은 2026-09-30에 gpt-image-2의 투명 배경 지원을 중단했습니다)(seedream-5-0 / seedream-5-0-pro는 프롬프트로만 지정할 수 있으며 모든 호출에서 알파가 보장되지는 않습니다). 투명한 배경으로 이미지를 생성하려면 어떻게 해야 하나요를 참조하십시오.
APIYI는 LoRA 또는 정체성 학습을 제공하지 않습니다.Soul ID의 기반이 되는 “한 번 학습하고 얼굴을 영원히 고정하는” 기능은 참조 이미지로만 근사할 수 있습니다. 동일한 캐릭터라도 장면과 조명이 바뀌면 계속 달라질 수 있으며, 새로운 장면이 정면 시점과 원래 조명에 가까울 때 가장 잘 유지됩니다. 엄격한 일관성이 필요한 상업용 캐릭터라면 사람의 검토 단계를 위한 예산을 책정하십시오.
브리프는 “커피를 위한 이커머스 제품 사진”입니다. 왼쪽은 사용자가 실제로 입력하는 내용이고, 오른쪽은 누락된 결정을 채운 동일한 브리프입니다. 두 이미지 모두 gemini-3-pro-image (Nano Banana Pro)에서 2K, 1:1 조건으로 한 번씩 실행했습니다.
Casual prompt: 'Make me a coffee product shot, make it look nice, make it feel premium'
Structured prompt: subject, environment, light position, lens, grading, imperfections and composition all specified
왼쪽 이미지는 못생기지는 않았지만 사용할 수 없습니다. 모델은 누구도 승인하지 않은 결정을 무더기로 내렸습니다. 그라인더와 삼베 자루를 추가했고, 향수를 불러일으키는 따뜻한 색보정을 선택했으며, 컵에 가상의 브랜드명까지 인쇄했습니다. 이처럼 자동 생성된 텍스트는 상업적으로 해당 프레임을 쓸모없게 만듭니다. 오른쪽 이미지는 제품 페이지에 바로 사용할 수 있습니다. 중립적인 배경, 말로 설명할 수 있는 조명 설정, 카피를 배치할 공간이 갖춰져 있습니다.“보기 좋다”와 “사용할 수 있다”는 서로 다른 목표입니다. 일상적인 프롬프트는 첫 번째 목표에만 도달할 수 있습니다.
여기에는 저렴하고 빠른 텍스트 모델이면 충분합니다. 생성 비용과 비교하면 그 비용은 무시할 수 있는 수준입니다.
import osimport requestsBASE = "https://api.apiyi.com/v1"API_KEY = os.environ["APIYI_API_KEY"] # never hard-code the keyREWRITE_SYSTEM = """You are an image prompt engineer. Rewrite the user's casual briefinto one structured image prompt.Fill in all six elements. Supply whatever is missing; never ask the user:1 Subject: material, colour, count, state2 Environment: what the background is, what is sharp and what is blurred3 Light: direction, hardness, fill or no fill — there must be one identifiable key light4 Lens and angle: focal length, aperture, camera height, tilt5 Grading and medium: white balance bias, saturation, film or digital character6 Composition: where the subject sits in the frame, where the negative space isRules:- Output only the prompt body: no explanation, no bullet points, no heading- No brand names, logos, or legible text unless the user asked for them- Never use vague quality words such as 8K, ultra HD, masterpiece, perfect- Keep any element the user specified exactly as written"""def rewrite(user_prompt: str) -> str: r = requests.post( f"{BASE}/chat/completions", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": "gemini-3.5-flash", "messages": [ {"role": "system", "content": REWRITE_SYSTEM}, {"role": "user", "content": user_prompt}, ], }, timeout=60, ) r.raise_for_status() return r.json()["choices"][0]["message"]["content"].strip()
“8K, 울트라 HD, 걸작, 완벽함”을 금지하는 규칙에 주목하십시오. 그 이유는 4절에서 설명합니다.
다음 두 가지 규칙을 준수하십시오. prompt의 “이미지 1 / 이미지 2”는 배열 순서에 엄격히 대응하므로 어느 이미지가 무엇인지 명시해야 합니다. 또한 Grok은 /v1/images/edits에서만 참조 이미지를 적용합니다. /v1/images/generations에 참조 이미지를 전달하면 조용히 폐기되면서도 과금은 계속됩니다.
3
샘플: N개를 병렬로 생성하고 n에 의존하지 마십시오
소비자 제품에서 느껴지는 “첫 시도부터 정확히 맞힌” 느낌은 실제로 제품이 사용자를 대신해 여러 장의 카드를 뽑는 것입니다.그러나 서버 측 n 매개변수는 대부분의 이미지 모델에 영향을 주지 않습니다(Seedream은 이를 완전히 무시합니다). 여러 후보를 얻으려면 클라이언트에서 여러 요청을 동시에 전송하십시오. 이 사이트의 스킬 페이지에서는 한 번에 최대 5개로 제한합니다. 채널별로 동시 실행 수를 조정하십시오. 일부 채널은 2개부터 429를 반환하기 시작하므로 지수 백오프를 추가하십시오.
4
선택: 비전 모델을 심사자로 사용
N개의 후보를 확보했다면 자동으로 하나를 선택해야 합니다. 그렇지 않으면 선택 작업을 단순히 사용자에게 넘긴 것에 불과합니다.후보를 표준 /v1/chat/completions 이미지 입력으로 비전 모델에 다시 보내 점수를 매기십시오. 사용 가능한 모델은 비전 이해를 참조하십시오. 평가 기준은 다섯 가지 차원으로 고정하고 JSON을 반환하도록 요구하십시오. 즉, 지시 준수, 구조와 해부학, 텍스트 정확성, 텍스처의 사실성, 구도입니다.
이 작업에는 /v1/rerank을 사용하지 마십시오. bge-reranker-v2-m3은 텍스트 전용 재순위 지정 모델이며 이미지를 허용하지 않습니다. 이미지에 점수를 매기려면 비전 이해 모델이 필요합니다.
5
수정하고 마무리하십시오
구도가 결정된 후 국소적으로 조정하십시오. 하나의 복합 지시를 사용하는 것보다 성공률이 훨씬 높습니다.
픽셀 수준의 국소 재도색: 마스크를 지원하는 것은 **공식 릴레이 gpt-image-2**뿐입니다. 마스크 인페인팅 가이드를 참조하십시오.
다중 턴 누적 편집: Nano Banana 모델의 네이티브 Gemini 엔드포인트에서 지원됩니다(이전 이미지를 role: "model"으로 다시 전달). 리버스 엔지니어링된 경로에서는 지원되지 않습니다.
즉시 다시 호스팅: 반환되는 모든 URL은 임시 URL입니다(FLUX는 약 10분이며 CORS를 지원하지 않고, Seedream과 R2는 약 24시간). 따라서 이미지를 확보하는 즉시 자체 객체 스토리지로 다운로드하십시오.
import base64import jsonimport osfrom concurrent.futures import ThreadPoolExecutorimport requestsBASE = "https://api.apiyi.com"API_KEY = os.environ["APIYI_API_KEY"]HEAD = {"Authorization": f"Bearer {API_KEY}"}STYLE_CONST = "Cool neutral white balance, low saturation, clean frame with generous negative space."def draw(prompt: str, size: str = "2K", aspect: str = "1:1") -> bytes: """Generate one image (Nano Banana Pro, native Gemini endpoint).""" url = f"{BASE}/v1beta/models/gemini-3-pro-image:generateContent" body = { "contents": [{"parts": [{"text": prompt}]}], "generationConfig": { "responseModalities": ["IMAGE"], "imageConfig": {"aspectRatio": aspect, "imageSize": size}, }, } r = requests.post(url, headers=HEAD, json=body, timeout=600) # headroom for 4K r.raise_for_status() parts = r.json()["candidates"][0]["content"]["parts"] part = next((p for p in parts if p.get("inlineData")), None) if part is None: # HTTP 200 with no image usually means moderation raise RuntimeError("no image returned: " + json.dumps(parts)[:300]) return base64.b64decode(part["inlineData"]["data"])def score(image: bytes, prompt: str) -> dict: """Score a candidate with a vision model; returns per-dimension scores and one issue line.""" data_url = "data:image/png;base64," + base64.b64encode(image).decode() rubric = ( "Score this image and return strict JSON: " '{"instruction":0-10,"anatomy":0-10,"text":0-10,"texture":0-10,' '"composition":0-10,"total":0-50,"issue":"one sentence"}. ' "instruction = does it satisfy the brief below; anatomy = errors in hands, limbs, object structure; " "text = is any text in the image correct (score 10 if there is none); " "texture = does it read as a real photograph rather than a render; " "composition = is the framing usable. The brief:\n" + prompt ) r = requests.post( f"{BASE}/v1/chat/completions", headers=HEAD, json={ "model": "gemini-3.5-flash", "messages": [{"role": "user", "content": [ {"type": "text", "text": rubric}, {"type": "image_url", "image_url": {"url": data_url}}, ]}], "response_format": {"type": "json_object"}, }, timeout=120, ) r.raise_for_status() return json.loads(r.json()["choices"][0]["message"]["content"])def best_of(user_input: str, n: int = 4) -> bytes: prompt = rewrite(user_input) + "\n" + STYLE_CONST # steps 1 and 2 with ThreadPoolExecutor(max_workers=n) as pool: # step 3: client-side fan-out results = list(pool.map(lambda _: _safe(draw, prompt), range(n))) cands = [img for ok, img in results if ok] if not cands: raise RuntimeError("all candidates failed; check moderation or fall back to another model") with ThreadPoolExecutor(max_workers=len(cands)) as pool: # step 4: score in parallel scores = list(pool.map(lambda im: score(im, prompt), cands)) ranked = sorted(zip(cands, scores), key=lambda x: x[1]["total"], reverse=True) return ranked[0][0] # step 5 retouch/rehost hooks in heredef _safe(fn, *args): try: return True, fn(*args) except Exception as e: # one failure must not sink the batch return False, str(e)
동일한 모델(gemini-3-pro-image), 동일한 주제, 두 가지 프롬프트 스타일, 각각 두 장의 이미지이며 각 배치에서 첫 번째 이미지를 표시합니다:
Bare prompt: 'A photorealistic half-body portrait of a young woman by a cafe window, smiling at the camera, 8K, ultra HD, ultra detailed, flawless skin, beautiful, perfect lighting, masterpiece'
The same subject after adding four blocks of control language: light position, lens, medium, imperfections
왼쪽 이미지는 나쁘지 않습니다. 기본 모델이 충분히 강력하기 때문에 간단한 프롬프트만으로도 보기 좋은 이미지를 생성합니다. 하지만 여기에는 모든 특성이 고스란히 담겨 있습니다. 피사체는 정중앙에 완전히 고정되어 있고, 조명이 너무 고르기 때문에 어디에서 빛이 오는지 말할 수 없으며, 모든 요소가 무난합니다. 그리고 이는 우연히 한 번 나온 결과가 아닙니다. 해당 배치의 두 이미지 모두 본질적으로 동일한 구도와 조명 패턴을 공유했습니다.오른쪽 이미지는 접근 방식을 바꾸었습니다. 빛에는 방향이 있고, 얼굴 절반은 그림자에 잠기도록 두었으며, 피부에는 유분과 모공이 보이고, 볼에는 점이 있으며, 잔머리는 빗질하지 않은 상태이고, 피사체는 중앙에서 오른쪽에 배치되어 있습니다. 이는 “카페에서 미소 짓는 여성의 스톡 이미지”라기보다 특정한 순간에 촬영된 특정한 사람으로 느껴집니다.
파이프라인의 진정한 가치가 드러나는 지점도 바로 여기입니다. 파이프라인은 못생긴 결과물을 예쁜 결과물로 바꾸는 것이 아니라, “운 좋게 나온 좋은 결과”를 “지정하고, 설명하고, 재현할 수 있는 좋은 결과”로 바꿉니다. 이해관계자가 오른쪽 이미지를 더 선호하지 않을 수도 있지만, 왼쪽 이미지로는 왜 그런 모습으로 보이는지 설명할 수 없고, 다음 이미지에 같은 결과를 요청할 수도 없습니다.
하나의 키 라이트와 그 경도를 지정합니다: “왼쪽에서 들어오는 창문 빛만 광원으로 사용하고, 얼굴 오른쪽 절반은 그림자에 둠"
"완벽한 조명”, “부드러운 조명”
가짜처럼 보이는 피사계 심도, 배경이 붙여 넣은 것처럼 보임
초점 거리와 조리개를 제시합니다: “85mm, f/2.8, 가까운 쪽 눈에 초점"
"흐린 배경”, “영화 같은”
과도하게 채도가 높고 빛나는 색상
매체와 화이트 밸런스를 제시합니다: “Kodak Portra 400 특유의 느낌, 따뜻한 하이라이트와 차가운 그림자, 낮은 채도"
"생생한 색상”, “HDR”
모든 것이 새것처럼 보이고 사용감이 없음
의도적으로 사용감을 추가합니다: “보풀이 생긴 스웨터, 테이블 위의 물자국과 부스러기"
"깨끗하고 정돈된”, “고급스러운 질감”
포스터나 렌더링처럼 보임
촬영 상황을 지정합니다: “자연스러운 스냅 사진”, “옆 테이블에서 눈높이로 촬영"
"8K”, “초고화질”, “걸작”
8K, ultra HD, ultra detailed, masterpiece 및 perfect과 같은 모호한 품질 관련 단어는 전반적으로 부정적인 영향을 줍니다. 이러한 단어는 해상도를 높이지 않으며(해상도를 높이는 것은 매개변수뿐입니다), 모델을 과도하게 선명하고 과도하게 채도가 높은 렌더링으로 유도합니다. 이는 바로 AI 느낌의 핵심입니다. 위 왼쪽 프롬프트에는 이러한 단어가 지나치게 많이 들어갔고, 그 결과가 이를 보여줍니다. 품질을 원한다면 구체적인 조명, 렌즈 및 매체를 작성하시기 바랍니다.
자연스러운 반신 인물 사진: 카페 창가에 있는 20대 중반의 여성, 옆으로 돌아선 채 창밖을 바라보며, 애써 참으려는 듯한 미소를 짓고 있습니다. 프레임의 유일한 광원은 왼쪽에서 들어오는 창빛입니다. 얼굴 오른쪽 절반은 그림자에 잠기고, 콧등 아래에는 가장자리가 선명한 작은 그림자가 드리워집니다. 85mm 렌즈, f/2.8, 눈높이, 가까운 쪽 눈에 초점을 맞춥니다. 미세하게 눈에 보이는 입자를 지닌 Kodak Portra 400 특유의 질감, 따뜻한 하이라이트와 차가운 그림자, 전체적으로 낮은 채도입니다. 자연스러운 피부: 보이는 모공과 솜털, 콧방울 옆의 약간의 번들거림, 왼쪽 볼의 작은 점, 몇 가닥 삐져나온 눈썹, 이마에 빗질하지 않은 느슨한 머리카락. 피부 보정 금지, 뷰티 리터칭 금지, 선명화 금지입니다. 피사체는 중앙에서 오른쪽에 배치하고, 왼쪽에 여백을 둡니다.
제품 사진: 제품 페이지에 바로 사용할 수 있는 이미지
이커머스 히어로 샷: 검은 커피가 80% 채워진 무광 검은색 세라믹 푸어오버 컵, 표면에는 크레마가 가느다란 고리 형태로 남아 있습니다. 밝은 회색 마이크로시멘트 표면 위에 놓여 있으며, 뒤쪽 벽도 같은 색조로 흐릿하게 보입니다. 주요 광원은 왼쪽 위 45도 위치의 소프트박스입니다. 오른쪽의 흰색 바운스 카드는 컵 오른쪽 가장자리를 따라 좁은 하이라이트를 만들고, 부드러운 투사 그림자는 뒤쪽 오른쪽으로 드리워집니다. 85mm 매크로 렌즈, f/5.6, 15도 아래로 기울인 정면 시점, 컵 전체에 선명한 초점을 맞춥니다. 차갑고 중립적인 화이트 밸런스, 전체적으로 낮은 채도입니다. 유약에는 수작업으로 제작한 듯한 약간의 불균일함과 아주 작은 가마 자국 하나가 있으며, 테두리에는 사용 흔적이 아주 희미하게 남아 있습니다. 넉넉한 여백을 두고, 컵은 프레임의 왼쪽 3분할 지점에 배치합니다. 이미지 어디에도 브랜드명이나 텍스트를 넣지 않습니다.
환경: 구체적인 시간과 날씨를 지정합니다
저녁 6시, 비가 막 그친 직후의 좁은 구시가지 거리입니다. 양쪽 상점의 라이트 박스가 물웅덩이에 반사됩니다. 유일한 주요 광원은 거리 끝의 따뜻한 가로등이며, 상점 창문이 보조광 역할을 하고, 하늘에는 차가운 해 질 녘의 기운이 희미하게 남아 있어 따뜻한 색과 차가운 색의 대비를 만듭니다. 28mm 렌즈, f/4, 카메라는 눈높이에 두고 약간 위쪽으로 기울입니다. 전체적으로 낮은 채도, 그림자에 남겨 둔 노이즈, 그림자 밝기 상승 금지입니다. 벽에는 물 얼룩, 찢어진 오래된 포스터와 에어컨 실외기가 보이고, 프레임 위쪽을 전선이 가로지릅니다. 누구도 카메라를 바라보지 않으며, 지나가는 사람들은 뒤에서 보이고 약간의 모션 블러가 적용됩니다.
생성 시점에 출력 크기를 결정하십시오. 투명한 배경이 필요한 경우 background: "transparent"을 gpt-image-2.5-flare / gpt-image-2.5-sunburst에 전달하십시오(오려내기 엔드포인트가 아니라 투명한 상태에서 직접 생성합니다)
이미지가 없는 HTTP 200 응답은 일반적으로 moderation 차단을 의미합니다
선택 로직은 “이미지가 반환되지 않음”과 “이미지가 반환되었지만 품질이 좋지 않음”을 구분해야 합니다. 전자의 경우 Gemini 이미지 오류 처리를 참조하십시오
반환되는 모든 이미지 URL은 임시 링크입니다
수신하는 즉시 다른 곳에 호스팅하십시오. 업스트림 URL을 데이터베이스에 저장하지 마십시오
GPT-Image prompt의 길이는 8,192 token으로 제한됩니다 (측정 결과이며, 초과해도 오류가 발생하지 않고 전체 prompt가 조용히 무시됩니다. 중국어 약 11,000자에 해당합니다)
브랜드 가이드나 패키지 사양을 이미지 모델에 그대로 입력하지 마십시오. 먼저 텍스트 모델로 1K~3K자 분량의 구조화된 prompt로 요약한 다음 사용하십시오. 긴 prompt를 참조하십시오
파이프라인은 성공률을 높이는 대신 비용을 지불하는 방식입니다. 이미지 비용은 출력이 대부분을 차지하며(gpt-image-2은 출력에 토큰 100만 개당 $30를 청구합니다), 재작성과 점수 산정에 사용되는 텍스트 및 비전 모델 비용은 무시할 수 있을 정도로 낮습니다. 따라서 비용은 사실상 “몇 개의 후보를 생성했는가”에 달려 있습니다.모든 작업에 하나의 설정을 적용하기보다는 다음 세 가지 계층을 사용합니다.
계층
구성
상대적 비용
용도
초안
Lite 모델에서 단일 생성
1×
내부 미리보기, 대량 플레이스홀더, 가벼운 사용자 실험
표준
재작성 + 후보 2개 + 점수에 따른 선택
약 2×
소비자 제품의 기본 경로
프리미엄
재작성 + 후보 4개 + 점수 산정 + 로컬 수정 1회
약 5×
제품 대표 이미지, 광고 소재, 외부에 전달되는 모든 결과물
테스트는 간단합니다. 팀 외부의 누군가가 이 이미지를 보게 됩니까? 그렇다면 표준 이상을 사용하는 것이 비용 대비 효과가 있습니다. 내부에서 잠깐 확인하는 용도라면 초안으로 충분합니다. 중간에 게이트를 추가할 수도 있습니다. 상위 점수가 임계값보다 낮을 때만 후보를 추가로 생성하면 되므로, 대부분의 요청을 후보 2개에서 수렴시킬 수 있습니다.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"API易文档中心","description":"企业级专业稳定的AI大模型API中转站,一个令牌、无限模型。支持OpenAI、Claude、Gemini、DeepSeek、Qwen等 200+ 精选 AI 模型。","colors":{"primary":"#2563eb","light":"#3b82f6","dark":"#1d4ed8"},"logo":{"light":"https://mintcdn.com/apiyillc/LjCT1O0GrSur6F2v/logo/light.svg?fit=max\u0026auto=format\u0026n=LjCT1O0GrSur6F2v\u0026q=85\u0026s=4119ef17a74cc54be127f34578d8b5fa","dark":"https://mintcdn.com/apiyillc/LjCT1O0GrSur6F2v/logo/dark.svg?fit=max\u0026auto=format\u0026n=LjCT1O0GrSur6F2v\u0026q=85\u0026s=1f046ae9580247d96549ade642b5ecc4"},"favicon":"https://mintcdn.com/apiyillc/OMY6ItCc2mC1yzgA/logo/logo.webp?fit=max\u0026auto=format\u0026n=OMY6ItCc2mC1yzgA\u0026q=85\u0026s=62a7977ef801070e689df2d0291b9d13","api":{"openapi":["api-reference/nano-banana-2-generate-openapi.yaml","api-reference/nano-banana-2-edit-openapi.yaml","api-reference/nano-banana-2-generate-openapi-en.yaml","api-reference/nano-banana-2-edit-openapi-en.yaml","api-reference/nano-banana-pro-generate-openapi.yaml","api-reference/nano-banana-pro-edit-openapi.yaml","api-reference/nano-banana-pro-generate-openapi-en.yaml","api-reference/nano-banana-pro-edit-openapi-en.yaml","api-reference/gpt-image-2-all-generate-openapi.yaml","api-reference/gpt-image-2-all-edit-openapi.yaml","api-reference/gpt-image-2-all-generate-openapi-en.yaml","api-reference/gpt-image-2-all-edit-openapi-en.yaml","api-reference/gpt-image-2-all-chat-openapi.yaml","api-reference/gpt-image-2-all-chat-openapi-en.yaml","api-reference/gpt-image-2-vip-generate-openapi.yaml","api-reference/gpt-image-2-vip-edit-openapi.yaml","api-reference/gpt-image-2-vip-chat-openapi.yaml","api-reference/gpt-image-2-vip-generate-openapi-en.yaml","api-reference/gpt-image-2-vip-edit-openapi-en.yaml","api-reference/gpt-image-2-vip-chat-openapi-en.yaml"],"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required"}},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"首页"},{"href":"https://imagen.apiyi.com","label":"AI出图"},{"href":"https://icover.ai","label":"AI视频"}],"primary":{"type":"button","label":"控制台","href":"https://api.apiyi.com/account/profile"}},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 集成","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 开发者套件(中文)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"用户口碑 / Wall of Love","items":[{"label":"用户口碑(中文)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"seo":{"indexing":"all"},"icons":{"library":"lucide"},"banner":{"content":"🚀 **GPT Image 2.6 Sunburst 和 Flare 均已上线,支持 GIF 输出,低至 83 折(17% off) | Now Live**:[详情 Details](https://docs.apiyi.com/api-capabilities/gpt-image-2/gpt-image-2-6)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","aistudio"],"display":"header"},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"global":{"anchors":[]},"languages":[{"language":"zh","href":""},{"language":"en","navbar":{"links":[{"href":"https://api.apiyi.com","label":"Home"},{"href":"https://imagen.apiyi.com","label":"AI Image"},{"href":"https://icover.ai","label":"AI Video"}],"primary":{"type":"button","label":"Console","href":"https://api.apiyi.com/account/profile"}},"href":"en"},{"language":"zh-Hant","banner":{"content":"本頁由程式自動轉換為繁體中文,用詞以台灣正體為準;如有歧義請以[簡體中文版](/)為準。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 整合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 開發者套件(中文)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"使用者口碑 / Wall of Love","items":[{"label":"使用者口碑(中文)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"首頁"},{"href":"https://imagen.apiyi.com","label":"AI出圖"},{"href":"https://icover.ai","label":"AI影片"}],"primary":{"type":"button","label":"控制台","href":"https://api.apiyi.com/account/profile"}},"href":"zh-Hant"},{"language":"ja","banner":{"content":"このページは AI により翻訳されています。内容に相違がある場合は[English 版](/en)を正としてください。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI統合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI開発者キット(中国語)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"ユーザーの声 / Wall of Love","items":[{"label":"ユーザーの声(中国語)","href":"/wall-of-love"},{"label":"Wall of Love(英語)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"ホーム"},{"href":"https://imagen.apiyi.com","label":"AI画像生成"},{"href":"https://icover.ai","label":"AI動画生成"}],"primary":{"type":"button","label":"コンソール","href":"https://api.apiyi.com/account/profile"}},"href":"ja"},{"language":"ko","banner":{"content":"이 페이지는 AI로 번역되었습니다. 내용이 다를 경우 [English 버전](/en)을 기준으로 하십시오.","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 통합","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 개발자 키트(중국어)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"사용자 후기 / Wall of Love","items":[{"label":"사용자 후기(중국어)","href":"/wall-of-love"},{"label":"Wall of Love (영문)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"홈"},{"href":"https://imagen.apiyi.com","label":"AI 이미지 생성"},{"href":"https://icover.ai","label":"AI 동영상 생성"}],"primary":{"type":"button","label":"콘솔","href":"https://api.apiyi.com/account/profile"}},"href":"ko"},{"language":"ru","banner":{"content":"Эта страница переведена с помощью ИИ. При расхождениях ориентируйтесь на [английскую версию](/en).","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI-интеграция","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"Набор AI-разработчика (кит.)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"Отзывы пользователей / Wall of Love","items":[{"label":"Отзывы пользователей (на китайском)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"Главная"},{"href":"https://imagen.apiyi.com","label":"Генерация изображений"},{"href":"https://icover.ai","label":"Генерация видео"}],"primary":{"type":"button","label":"Консоль","href":"https://api.apiyi.com/account/profile"}},"href":"ru"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"apiyillc","hasAudioNarration":false,"actualSubdomain":"apiyillc","customDomains":["docs.apiyi.com"],"gitSource":{"type":"github","owner":"pdmaker","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6af5cad1043c55511fa6440d","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"zh","tag":"首页","count":216},{"language":"en","tag":"Home","count":216},{"language":"ja","tag":"ホーム","count":216},{"language":"ko","tag":"홈","count":216},{"language":"ru","tag":"Главная","count":216},{"language":"zh-Hant","tag":"首頁","count":216},{"language":"zh","tag":"图片 API(官转)","count":86},{"language":"en","tag":"Image API (Official)","count":86},{"language":"ja","tag":"画像API(公式)","count":86},{"language":"ko","tag":"이미지 API (공식)","count":86},{"language":"ru","tag":"Image API (официальный)","count":86},{"language":"zh-Hant","tag":"圖片 API(官轉)","count":86},{"language":"zh","tag":"公告","count":81},{"language":"en","tag":"Announcements","count":81},{"language":"zh","tag":"AI风向标","count":78},{"language":"en","tag":"AI Radar","count":78},{"language":"zh","tag":"常见问题","count":63},{"language":"en","tag":"FAQ","count":63},{"language":"ja","tag":"FAQ","count":63},{"language":"ko","tag":"FAQ","count":63},{"language":"ru","tag":"FAQ","count":63},{"language":"zh-Hant","tag":"常見問題","count":63},{"language":"zh","tag":"使用场景","count":50},{"language":"en","tag":"Use Cases","count":50},{"language":"ja","tag":"活用例","count":50},{"language":"ko","tag":"활용 사례","count":50},{"language":"ru","tag":"Сценарии использования","count":50},{"language":"zh-Hant","tag":"使用場景","count":50},{"language":"zh","tag":"基础 API","count":47},{"language":"en","tag":"Basic API","count":47},{"language":"ja","tag":"基本API","count":47},{"language":"ko","tag":"기본 API","count":47},{"language":"ru","tag":"Базовый API","count":47},{"language":"zh-Hant","tag":"基礎 API","count":47},{"language":"zh","tag":"模型价格","count":36},{"language":"en","tag":"Model Pricing","count":36},{"language":"ja","tag":"モデル料金","count":36},{"language":"ko","tag":"모델 요금","count":36},{"language":"ru","tag":"Цены на модели","count":36},{"language":"zh-Hant","tag":"模型價格","count":36},{"language":"zh","tag":"视频 API(官转)","count":35},{"language":"en","tag":"Video API (Official)","count":35},{"language":"ja","tag":"動画API(公式)","count":35},{"language":"ko","tag":"동영상 API (공식)","count":35},{"language":"ru","tag":"Video API (официальный)","count":35},{"language":"zh-Hant","tag":"影片 API(官轉)","count":35},{"language":"zh","tag":"文本生成","count":28},{"language":"en","tag":"Text Generation","count":28},{"language":"ja","tag":"テキスト生成","count":28},{"language":"ko","tag":"텍스트 생성","count":28},{"language":"ru","tag":"Генерация текста","count":28},{"language":"zh-Hant","tag":"文本生成","count":28},{"language":"ja","tag":"課金とセキュリティ","count":17},{"language":"ko","tag":"결제 및 보안","count":17},{"language":"ru","tag":"Оплата и безопасность","count":17},{"language":"zh-Hant","tag":"充值與安全","count":17},{"language":"ja","tag":"NanoBananaベストプラクティス","count":15},{"language":"ko","tag":"NanoBanana 모범 사례","count":15},{"language":"ru","tag":"Лучшие практики NanoBanana","count":15},{"language":"zh-Hant","tag":"NanoBanana最佳實踐","count":15}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"models/models.css","content":".mp-layout{display:flex;gap:2.5rem;max-width:1400px;margin:0 auto;padding:2.5rem 1.5rem 4rem;font-size:15px;line-height:1.7;color:rgb(var(--gray-500, 113 115 119))}html.dark .mp-layout{color:rgb(var(--gray-400, 159 161 165))}.mp-rail{display:none}@media (min-width: 1024px){.mp-rail{display:block;width:13rem;flex-shrink:0}}.mp-rail-nav{position:sticky;top:9.25rem;font-size:0.875rem}.mp-rail-head{font-weight:600;margin:0 0 0.375rem;color:rgb(var(--gray-900, 23 25 29))}html.dark .mp-rail-head{color:rgb(var(--gray-200, 223 225 229))}.mp-rail-link{display:block;padding:0.22rem 0;color:rgb(var(--gray-500, 113 115 119));text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-rail-link:hover{color:rgb(var(--primary, 37 99 235))}html.dark .mp-rail-link{color:rgb(var(--gray-400, 159 161 165))}html.dark .mp-rail-link:hover{color:rgb(var(--primary-light, 59 130 246))}.mp-rail-vendors{max-height:45vh;overflow-y:auto}.mp-mt{margin-top:1rem}.mp-content{min-width:0;flex:1}.mp-title{font-size:2rem;font-weight:700;letter-spacing:-0.02em;margin:0 0 0.5rem;color:rgb(var(--gray-900, 23 25 29))}html.dark .mp-title{color:#fff}.mp-desc{color:rgb(var(--gray-500, 113 115 119));margin:0 0 1.5rem}html.dark .mp-desc{color:rgb(var(--gray-400, 159 161 165))}.mp-content h2{font-size:1.375rem;font-weight:600;margin:2.75rem 0 1rem;padding-bottom:0.45rem;border-bottom:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);color:rgb(var(--gray-900, 23 25 29));scroll-margin-top:12rem}@media (min-width: 1024px){.mp-content h2{scroll-margin-top:16.5rem}}html.dark .mp-content h2{border-color:rgb(255 255 255 / 0.1);color:#fff}.mp-content p{margin:0.75rem 0}.mp-content ul{margin:0.75rem 0;padding-left:1.4rem}.mp-content li{margin:0.4rem 0}.mp-content strong{color:rgb(var(--gray-900, 23 25 29))}html.dark .mp-content strong{color:#fff}.mp-content a{color:rgb(var(--primary, 37 99 235));text-decoration:none}.mp-content a:hover{text-decoration:underline}html.dark .mp-content a{color:rgb(var(--primary-light, 59 130 246))}.mp-content code{font-size:0.85em;background:rgb(var(--gray-100, 239 241 245) / 0.8);border:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);padding:0.1em 0.35em;border-radius:0.375rem}html.dark .mp-content code{background:rgb(255 255 255 / 0.06);border-color:rgb(255 255 255 / 0.1)}.mp-content code.mp-ep-rec{color:rgb(var(--primary, 37 99 235));background:rgb(var(--primary, 37 99 235) / 0.08);border-color:rgb(var(--primary, 37 99 235) / 0.45);font-weight:600}html.dark .mp-content code.mp-ep-rec{color:rgb(var(--primary-light, 59 130 246));background:rgb(var(--primary-light, 59 130 246) / 0.14);border-color:rgb(var(--primary-light, 59 130 246) / 0.5)}.mp-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:0.875rem;margin:1rem 0 1.5rem}.mp-content th{text-align:left;font-weight:500;color:rgb(var(--gray-500, 113 115 119));padding:0.55rem 1.25rem 0.55rem 0;border-bottom:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);white-space:nowrap}.mp-content td{padding:0.55rem 1.25rem 0.55rem 0;border-bottom:1px solid rgb(var(--gray-200, 223 225 229) / 0.45);white-space:nowrap}html.dark .mp-content th{border-color:rgb(255 255 255 / 0.1);color:rgb(var(--gray-400, 159 161 165))}html.dark .mp-content td{border-color:rgb(255 255 255 / 0.07)}.mp-search{display:contents}.mp-search-bar{position:sticky;top:5rem;z-index:20;margin:0 0 1.75rem;background:rgb(var(--background-light, 255 255 255));padding:0.75rem 0 0.85rem;box-shadow:0 10px 14px -10px rgb(var(--gray-950, 11 13 17) / 0.28)}@media (min-width: 1024px){.mp-search-bar{top:9.25rem}}html.dark .mp-search-bar{background:rgb(var(--background-dark, 10 11 16));box-shadow:0 8px 12px -10px rgb(0 0 0 / 0.7)}.mp-search-label{margin:0 0 0.5rem;padding-left:0.6rem;border-left:3px solid rgb(var(--primary, 37 99 235));font-size:0.9rem;font-weight:600;line-height:1.4;color:rgb(var(--primary, 37 99 235))}html.dark .mp-search-label{border-left-color:rgb(var(--primary-light, 59 130 246));color:rgb(var(--primary-light, 59 130 246))}.mp-search-input{width:100%;box-sizing:border-box;border:1px solid rgb(var(--gray-400, 159 161 165) / 0.3);border-radius:0.75rem;padding:0.7rem 1rem 0.7rem 2.65rem;font-size:0.9rem;background-color:rgb(var(--background-light, 255 255 255));background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23717377' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:0.9rem center;color:rgb(var(--gray-900, 23 25 29));outline:none;transition:border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease}.mp-search-input::placeholder{color:rgb(var(--gray-500, 113 115 119))}.mp-search-input:hover{border-color:rgb(var(--gray-600, 81 83 87) / 0.3)}.mp-search-input:focus{border-color:rgb(var(--primary, 37 99 235));box-shadow:0 0 0 3px rgb(var(--primary, 37 99 235) / 0.16)}html.dark .mp-search-input{background-color:rgb(var(--background-dark, 10 11 16));background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%239fa1a5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\");border-color:rgb(var(--gray-600, 81 83 87) / 0.3);color:rgb(var(--gray-100, 239 241 245))}html.dark .mp-search-input::placeholder{color:rgb(255 255 255 / 0.5)}html.dark .mp-search-input:hover{border-color:rgb(var(--gray-500, 113 115 119) / 0.35)}html.dark .mp-search-input:focus{border-color:rgb(var(--primary-light, 59 130 246));box-shadow:0 0 0 3px rgb(var(--primary-light, 59 130 246) / 0.22)}.mp-search-meta{font-size:0.75rem;color:rgb(var(--gray-500, 113 115 119));margin:0.75rem 0 0.25rem}.mp-search-empty{font-size:0.875rem;color:rgb(var(--gray-500, 113 115 119));margin-top:0.75rem}html.dark .mp-search-meta,html.dark .mp-search-empty{color:rgb(var(--gray-400, 159 161 165))}.mp-mono{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.8125rem}@media (min-width: 1024px){.mp-jump{display:none}}"},{"filePath":"styles/agent-prompt.css","content":"div.prompt{border:1.5px solid rgb(var(--primary, 37 99 235) / 0.35);background:rgb(var(--primary, 37 99 235) / 0.035);padding:1.25rem 1.25rem 1rem;row-gap:0.75rem}html.dark div.prompt{border-color:rgb(var(--primary-light, 59 130 246) / 0.4);background:rgb(var(--primary-light, 59 130 246) / 0.06)}div.prompt [data-component-part=\"prompt-content-wrapper\"]{width:100%}div.prompt [data-component-part=\"prompt-actions-wrapper\"]{width:100%;justify-content:flex-end}div.prompt [data-component-part=\"prompt-description\"]{flex:1;font-size:14px;line-height:1.65}div.prompt [data-component-part=\"prompt-description\"]>div>*{margin:0}div.prompt [data-component-part=\"prompt-description\"]>div>*+*{margin-top:0.6rem}div.prompt [data-component-part=\"prompt-description\"] strong{font-size:15px;font-weight:650;color:rgb(var(--gray-900, 23 25 29))}html.dark div.prompt [data-component-part=\"prompt-description\"] strong{color:#fff}div.prompt [data-component-part=\"prompt-description\"]>div>*+p{color:rgb(var(--gray-600, 80 82 86))}html.dark div.prompt [data-component-part=\"prompt-description\"]>div>*+p{color:rgb(var(--gray-400, 159 161 165))}div.prompt [data-component-part=\"prompt-description\"] code{font-size:0.85em;background:rgb(var(--gray-100, 239 241 245) / 0.9);border:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);padding:0.05em 0.35em;border-radius:0.375rem}html.dark div.prompt [data-component-part=\"prompt-description\"] code{background:rgb(255 255 255 / 0.06);border-color:rgb(255 255 255 / 0.1)}div.prompt [data-component-part=\"prompt-description\"] blockquote{margin:0;padding:0.75rem 0.9rem;font-style:normal;border:1px dashed rgb(var(--gray-300, 191 193 197));border-radius:0.6rem;background:rgb(var(--background-light, 255 255 255));font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:12.5px;line-height:1.6;color:rgb(var(--gray-600, 80 82 86));overflow-wrap:anywhere;-webkit-mask-image:linear-gradient(to bottom, #000 70%, transparent 100%);mask-image:linear-gradient(to bottom, #000 70%, transparent 100%)}div.prompt [data-component-part=\"prompt-description\"] blockquote p,div.prompt [data-component-part=\"prompt-description\"] blockquote ol{margin:0}div.prompt [data-component-part=\"prompt-description\"] blockquote li{padding:0}div.prompt [data-component-part=\"prompt-description\"] blockquote>*+*{margin-top:0.5rem}div.prompt [data-component-part=\"prompt-description\"] blockquote code{background:none;border:0;padding:0;font-size:1em}div.prompt [data-component-part=\"prompt-description\"] blockquote a{color:inherit;text-decoration:none;pointer-events:none}html.dark div.prompt [data-component-part=\"prompt-description\"] blockquote{border-color:rgb(255 255 255 / 0.15);background:rgb(var(--background-dark, 13 13 13));color:rgb(var(--gray-400, 159 161 165))}div.prompt [data-component-part=\"prompt-action-copy-button\"]{padding:0.6rem 1.25rem;font-size:14px;line-height:20px;font-weight:600;border-radius:0.65rem;gap:0.45rem;box-shadow:0 1px 2px rgb(0 0 0 / 0.08), 0 4px 12px rgb(var(--primary, 37 99 235) / 0.25)}div.prompt [data-component-part=\"prompt-action-copy-button\"]::before{content:\"\";width:16px;height:16px;flex-shrink:0;background:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E\") center / contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E\") center / contain no-repeat}div.prompt [data-component-part=\"prompt-action-copy-button\"] svg{width:12px;height:12px}@media (max-width: 640px){div.prompt [data-component-part=\"prompt-actions-wrapper\"]>*{flex:1}}"}],"page":{"pagePath":"ko/api-capabilities/image-advanced-workflow","slug":"/ko/api-capabilities/image-advanced-workflow","pageMetadata":{"title":"고급 이미지 생성: 워크플로 및 사실감","sidebarTitle":"고급 워크플로","description":"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.","icon":"workflow","href":"/ko/api-capabilities/image-advanced-workflow"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Frame,Heading,Info,OptimizedImage,Step,Steps,Table,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/ko/api-capabilities/image-generation-success-tips`,children:`원하는 이미지를 얻는 방법`}),`은 “이번 시도가 실패했는데, 어떻게 되살릴 수 있나요?”에 답합니다. 이 페이지에서는 그다음 질문인 **어떻게 하면 모든 시도를 성공시킬 수 있나요?**에 답합니다.`]}),`\n`,_jsxs(_components.p,{children:[`다음과 같은 질문이 자주 나옵니다. `,_jsx(_components.code,{children:`freepik.com`}),` 및 `,_jsx(_components.code,{children:`higgsfield.ai`}),`과 같은 소비자용 이미지 제품은 여러분이 사용하는 것과 동일한 기반 모델, 즉 동일한 Nano Banana, GPT-Image 및 FLUX 제품군을 기반으로 실행되는데도 결과물이 더 완성도 높아 보입니다. 그 차이는 모델 가중치에 있는 것이 아닙니다. `,_jsx(_components.strong,{children:`모델을 감싸는 레이어에 있으며`}),`, 이 레이어를 직접 구축할 수 있습니다. 이 페이지에서는 그 방법을 설명합니다.`]}),`\n`,_jsx(Heading,{level:`2`,id:`1-모델을-둘러싼-소비자용-이미지-제품은-무엇인가`,children:`1. 모델을 둘러싼 소비자용 이미지 제품은 무엇인가`}),`\n`,_jsx(_components.p,{children:`이러한 제품 중 하나를 분해해 보면 모델 외부에 대략 8개의 계층이 있습니다. 이 모든 계층은 API에서 재현할 수 있습니다.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`제품이 수행하는 작업`}),_jsx(_components.th,{children:`해결하는 문제`}),_jsx(_components.th,{children:`API에서 재현하는 방법`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`프롬프트 재작성 계층`}),` (프롬프트 강화)`]}),_jsx(_components.td,{children:`사용자는 일상적인 표현으로 작성하지만, 모델은 구조화된 설명을 원합니다`}),_jsx(_components.td,{children:`먼저 텍스트 모델을 호출해 재작성한 다음 이미지 모델을 호출합니다(2절)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`스타일 프리셋`}),` (클릭 가능한 수십 개의 프리셋과 저장된 사용자 지정 프리셋)`]}),_jsx(_components.td,{children:`미적 스타일을 고정하므로 사용자가 사진 관련 용어를 알 필요가 없습니다`}),_jsx(_components.td,{children:`프리셋은 코드에 있는 프롬프트 조각 상수와 고정된 참조 이미지 세트일 뿐입니다`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`정체성 고정`}),` (예: 20~80장의 사진으로 지속적인 정체성을 학습하는 Higgsfield의 `,_jsx(_components.code,{children:`Soul ID`}),`)`]}),_jsx(_components.td,{children:`여러 생성 결과에서 동일한 인물이 동일하게 유지됩니다`}),_jsx(_components.td,{children:`참조 이미지를 사용해 근사할 수 있습니다(아래 제한 사항 참조)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`여러 개를 샘플링하고 하나를 표시`})}),_jsx(_components.td,{children:`사용자는 최상의 후보만 보므로 체감 적중률이 100%에 가까워집니다`}),_jsx(_components.td,{children:`N개를 병렬로 생성한 다음 비전 모델이 점수를 매겨 선택하도록 합니다(3절, 3~4단계)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`단계별 편집`})}),_jsx(_components.td,{children:`한 번에 복합 지시를 내리면 안정적으로 결과가 무너집니다`}),_jsx(_components.td,{children:`먼저 구도를 고정하고, 그다음 국소적으로 편집한 후 텍스트를 추가합니다`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`업스케일링 및 후처리`}),` (Freepik은 2024년에 Magnific을 인수하여 2×~16× 창의적 업스케일링을 제공)`]}),_jsx(_components.td,{children:`작은 출력을 인쇄 가능한 크기로 변환합니다`}),_jsx(_components.td,{children:`APIYI에는 이러한 엔드포인트가 없으므로 대신 생성 시 고해상도 등급을 선택합니다(아래 제한 사항 참조)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`네거티브 프롬프트 및 안전 대체 경로`})}),_jsx(_components.td,{children:`알려진 모델의 습관을 피하도록 유도하고, 모더레이션에서 거부할 요청을 포착합니다`}),_jsx(_components.td,{children:`고정된 네거티브 표현을 템플릿에 포함하고, 모더레이션 실패에 대비한 다운그레이드 경로를 추가합니다`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`에셋 라이브러리 및 재호스팅`})}),_jsx(_components.td,{children:`사용자 이미지가 만료되거나 사라지지 않습니다`}),_jsx(_components.td,{children:`모든 결과를 즉시 자체 객체 스토리지에 복사합니다`})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`경쟁사의 기능 목록을 그대로 복사하기 전에 정리해야 할 두 가지 플랫폼 제한 사항:`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`APIYI에는 업스케일링, 배경 제거 또는 얼굴 복원 엔드포인트가 없습니다.`}),` 큰 이미지가 필요하다면 나중에 확대할 계획을 세우기보다 생성 시 고해상도 등급을 선택합니다(4K의 `,_jsx(_components.code,{children:`gpt-image-2`}),`, 4K의 Nano Banana Pro). 투명한 배경이 필요한 경우 `,_jsx(_components.code,{children:`background: \"transparent\"`}),`과 함께 공식 릴레이 `,_jsx(_components.code,{children:`gpt-image-2.5-flare`}),` / `,_jsx(_components.code,{children:`gpt-image-2.5-sunburst`}),`를 사용합니다. 실제 알파 채널이 포함된 PNG를 반환합니다(OpenAI은 2026-09-30에 `,_jsx(_components.code,{children:`gpt-image-2`}),`의 투명 배경 지원을 중단했습니다)(`,_jsx(_components.code,{children:`seedream-5-0`}),` / `,_jsx(_components.code,{children:`seedream-5-0-pro`}),`는 프롬프트로만 지정할 수 있으며 모든 호출에서 알파가 보장되지는 않습니다). `,_jsx(_components.a,{href:`/ko/faq/image-transparent-background`,children:`투명한 배경으로 이미지를 생성하려면 어떻게 해야 하나요`}),`를 참조하십시오.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`APIYI는 LoRA 또는 정체성 학습을 제공하지 않습니다.`}),` `,_jsx(_components.code,{children:`Soul ID`}),`의 기반이 되는 “한 번 학습하고 얼굴을 영원히 고정하는” 기능은 참조 이미지로만 근사할 수 있습니다. 동일한 캐릭터라도 장면과 조명이 바뀌면 계속 달라질 수 있으며, 새로운 장면이 정면 시점과 원래 조명에 가까울 때 가장 잘 유지됩니다. 엄격한 일관성이 필요한 상업용 캐릭터라면 사람의 검토 단계를 위한 예산을 책정하십시오.`]}),`\n`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`2-첫-번째-레이어가-이미-결과를-분리합니다-일상적인-입력을-구조로-전환하기`,children:`2. 첫 번째 레이어가 이미 결과를 분리합니다: 일상적인 입력을 구조로 전환하기`}),`\n`,_jsx(_components.p,{children:`이는 가장 큰 효과를 내는 레이어이자, 가장 자주 생략되는 레이어입니다.`}),`\n`,_jsx(Heading,{level:`3`,id:`나란히-비교하는-테스트-하나의-모델-하나의-브리프-두-개의-프롬프트`,children:`나란히 비교하는 테스트: 하나의 모델, 하나의 브리프, 두 개의 프롬프트`}),`\n`,_jsxs(_components.p,{children:[`브리프는 “커피를 위한 이커머스 제품 사진”입니다. 왼쪽은 사용자가 실제로 입력하는 내용이고, 오른쪽은 누락된 결정을 채운 동일한 브리프입니다. 두 이미지 모두 `,_jsx(_components.code,{children:`gemini-3-pro-image`}),` (Nano Banana Pro)에서 `,_jsx(_components.code,{children:`2K`}),`, `,_jsx(_components.code,{children:`1:1`}),` 조건으로 한 번씩 실행했습니다.`]}),`\n`,_jsx(Frame,{caption:`Casual prompt: 'Make me a coffee product shot, make it look nice, make it feel premium'`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=a2e2025bf74baf40a7b63a424762cb62`,alt:`일상적인 프롬프트로 생성한 커피 이미지: 나무 테이블, 그라인더, 삼베 자루 및 요청하지 않은 기타 소품, 따뜻하고 향수를 불러일으키는 색보정, 컵에 인쇄된 가상의 브랜드명`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`1280`,height:`1280`,\"data-path\":`images/image-workflow-prompt-before.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=cdc6f261bdbade3a9151b43d99deed33 280w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=e6f697fd2f035f9d39a0cef120c30ff6 560w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=0ab09776f1d36718beda0903d57cb3e3 840w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=b23c589ff1264ee042d455f3be56592b 1100w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=6bf52a162e36e3efc6082e283b140b85 1650w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-before.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=15fdbefaa8ce0c9bf88a8eb0877b09fc 2500w`})}),`\n`,_jsx(Frame,{caption:`Structured prompt: subject, environment, light position, lens, grading, imperfections and composition all specified`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=cb00b095545e5dcad8cb2c113fefe47f`,alt:`구조화된 프롬프트로 생성한 커피 이미지: 밝은 회색 마이크로시멘트 표면 위의 무광 검은색 세라믹 컵, 깔끔하게 흐린 배경, 명확한 광원 방향, 넉넉한 네거티브 스페이스`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`1280`,height:`1280`,\"data-path\":`images/image-workflow-prompt-after.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=1e386f2df340f396a1cb6ab94b10e6f7 280w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=8458932292b8d4ab0a760e6c380a42a5 560w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=72d06312b1f8c31140260787e22ab7c7 840w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=92afe2e96b655501b908861b2392991a 1100w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=1df25d991b960115ed294465c1b167eb 1650w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-prompt-after.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=2240107add42d7014c50fc820998f46d 2500w`})}),`\n`,_jsxs(_components.p,{children:[`왼쪽 이미지는 못생기지는 않았지만 `,_jsx(_components.strong,{children:`사용할 수 없습니다`}),`. 모델은 누구도 승인하지 않은 결정을 무더기로 내렸습니다. 그라인더와 삼베 자루를 추가했고, 향수를 불러일으키는 따뜻한 색보정을 선택했으며, 컵에 가상의 브랜드명까지 인쇄했습니다. 이처럼 자동 생성된 텍스트는 상업적으로 해당 프레임을 쓸모없게 만듭니다. 오른쪽 이미지는 제품 페이지에 바로 사용할 수 있습니다. 중립적인 배경, 말로 설명할 수 있는 조명 설정, 카피를 배치할 공간이 갖춰져 있습니다.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`“보기 좋다”와 “사용할 수 있다”는 서로 다른 목표입니다.`}),` 일상적인 프롬프트는 첫 번째 목표에만 도달할 수 있습니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`재작성-레이어가-제공해야-하는-여섯-가지-요소`,children:`재작성 레이어가 제공해야 하는 여섯 가지 요소`}),`\n`,_jsx(_components.p,{children:`재작성은 프롬프트를 더 길게 만든다는 의미가 아닙니다. 누락된 결정을 채운다는 의미입니다. 이미지 프롬프트에는 핵심적인 여섯 가지 부분이 있습니다.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`요소`}),_jsx(_components.th,{children:`없을 때 발생하는 일`}),_jsx(_components.th,{children:`예시`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`피사체`})}),_jsx(_components.td,{children:`모델이 임의로 판단하여 원하지 않은 소품을 추가합니다`}),_jsx(_components.td,{children:`“무광 검은색 세라믹 푸어오버 컵, 검은 커피가 80% 채워진 상태”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`환경`})}),_jsx(_components.td,{children:`배경이 무작위로 정해져 이미지 세트가 서로 일치하지 않습니다`}),_jsx(_components.td,{children:`“밝은 회색 마이크로시멘트 표면, 같은 색조의 벽, 흐린 배경”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`조명`})}),_jsx(_components.td,{children:`즉시 가짜처럼 보이는 평면적인 전체 조명이 적용됩니다`}),_jsx(_components.td,{children:`“왼쪽 위 45도 위치의 소프트박스에서 들어오는 주광, 오른쪽의 흰색 반사판”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`렌즈 및 각도`})}),_jsx(_components.td,{children:`원근과 피사계 심도를 제어할 수 없습니다`}),_jsx(_components.td,{children:`“85mm 매크로, f/5.6, 정면에서 아래로 15도 기울인 뷰”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`색보정 및 매체`})}),_jsx(_components.td,{children:`채도가 높고 렌더링한 듯한 출력이 기본값으로 적용됩니다`}),_jsx(_components.td,{children:`“차갑고 중립적인 화이트 밸런스, 전반적으로 낮은 채도”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`구도`})}),_jsx(_components.td,{children:`피사체가 항상 정중앙에 배치됩니다`}),_jsx(_components.td,{children:`“프레임 왼쪽 3분할 지점에 컵 배치, 오른쪽에 넓은 네거티브 스페이스”`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`해상도는 `,_jsx(_components.strong,{children:`일곱 번째 요소가 아닙니다`}),`. 출력 해상도는 `,_jsx(_components.code,{children:`size`}),` / `,_jsx(_components.code,{children:`imageSize`}),`와 같은 매개변수로만 결정됩니다. 프롬프트에 “4K” 또는 “8K”라고 작성해도 픽셀이 하나도 추가되지 않습니다. `,_jsx(_components.a,{href:`/ko/api-capabilities/image-compression-resolution`,children:`이미지 압축 및 출력 해상도`}),`를 참조하십시오.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`코드에서의-재작성-레이어`,children:`코드에서의 재작성 레이어`}),`\n`,_jsx(_components.p,{children:`여기에는 저렴하고 빠른 텍스트 모델이면 충분합니다. 생성 비용과 비교하면 그 비용은 무시할 수 있는 수준입니다.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`39`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`39`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`BASE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.apiyi.com/v1\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"APIYI_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# never hard-code the key`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`REWRITE_SYSTEM`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"You are an image prompt engineer. Rewrite the user's casual brief`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`into one structured image prompt.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Fill in all six elements. Supply whatever is missing; never ask the user:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`1 Subject: material, colour, count, state`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`2 Environment: what the background is, what is sharp and what is blurred`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`3 Light: direction, hardness, fill or no fill — there must be one identifiable key light`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`4 Lens and angle: focal length, aperture, camera height, tilt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`5 Grading and medium: white balance bias, saturation, film or digital character`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`6 Composition: where the subject sits in the frame, where the negative space is`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Rules:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`- Output only the prompt body: no explanation, no bullet points, no heading`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`- No brand names, logos, or legible text unless the user asked for them`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`- Never use vague quality words such as 8K, ultra HD, masterpiece, perfect`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`- Keep any element the user specified exactly as written\"\"\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` rewrite`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`user_prompt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.post(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`BASE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/chat/completions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gemini-3.5-flash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"system\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`REWRITE_SYSTEM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: user_prompt},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` timeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`60`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.raise_for_status()`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.json()[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"choices\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`].strip()`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`“8K, 울트라 HD, 걸작, 완벽함”을 금지하는 규칙에 주목하십시오. 그 이유는 4절에서 설명합니다.`}),`\n`,_jsx(Heading,{level:`2`,id:`3-실제로-배포할-수-있는-파이프라인`,children:`3. 실제로 배포할 수 있는 파이프라인`}),`\n`,_jsx(_components.p,{children:`나머지 네 개 레이어를 리라이트 레이어에 연결하면 전체 구성이 완성됩니다.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`리라이트: 일상적인 입력을 구조화된 prompt로 변환`,children:_jsx(_components.p,{children:`섹션 2를 참조하십시오. 이 단계에서는 사용자의 입력에 포함된 민감한 콘텐츠도 처리 과정에서 중화하므로, 이후 단계에서 요청이 차단되는 빈도를 측정 가능할 정도로 줄일 수 있습니다.`})}),_jsxs(Step,{title:`앵커: 참조 이미지와 스타일 상수`,children:[_jsxs(_components.p,{children:[`스타일은 두 가지 요소로 고정됩니다. `,_jsx(_components.strong,{children:`모든 prompt에 추가하는 스타일 상수`}),`(프리셋)와 `,_jsx(_components.strong,{children:`고정된 참조 이미지 세트`}),`입니다.`]}),_jsx(_components.p,{children:`참조 제한은 모델 제품군별로 크게 다르므로 파이프라인을 설계하기 전에 사용 중인 제한을 확인하십시오.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`모델 제품군`}),_jsx(_components.th,{children:`참조 제한`}),_jsx(_components.th,{children:`참고`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nano Banana (전체)`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`14`}),` (측정값)`]}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/ko/api-capabilities/multi-image-fusion-testing`,children:`다중 이미지 융합 테스트`}),`를 참조하십시오`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`gpt-image-2`}),` 제품군`]}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`16`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`image[]`}),` 반복`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Seedream`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`10`})}),_jsx(_components.td,{children:`입력과 출력의 합계가 15 이하여야 합니다`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`FLUX.2 pro / max / flex`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`8`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`input_image_2`}),` … `,_jsx(_components.code,{children:`input_image_8`}),`; klein은 4개, Kontext는 1개를 사용합니다`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Grok Imagine`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`1–4`})}),_jsx(_components.td,{children:`다섯 번째 이미지를 보내면 400을 반환합니다`})]})]})]}),_jsxs(_components.p,{children:[`다음 두 가지 규칙을 준수하십시오. prompt의 `,_jsx(_components.strong,{children:`“이미지 1 / 이미지 2”는 배열 순서에 엄격히 대응`}),`하므로 어느 이미지가 무엇인지 명시해야 합니다. 또한 `,_jsxs(_components.strong,{children:[`Grok은 `,_jsx(_components.code,{children:`/v1/images/edits`}),`에서만 참조 이미지를 적용`]}),`합니다. `,_jsx(_components.code,{children:`/v1/images/generations`}),`에 참조 이미지를 전달하면 조용히 폐기되면서도 과금은 계속됩니다.`]})]}),_jsxs(Step,{title:`샘플: N개를 병렬로 생성하고 n에 의존하지 마십시오`,children:[_jsx(_components.p,{children:`소비자 제품에서 느껴지는 “첫 시도부터 정확히 맞힌” 느낌은 실제로 제품이 사용자를 대신해 여러 장의 카드를 뽑는 것입니다.`}),_jsxs(_components.p,{children:[`그러나 `,_jsxs(_components.strong,{children:[`서버 측 `,_jsx(_components.code,{children:`n`}),` 매개변수는 대부분의 이미지 모델에 영향을 주지 않습니다`]}),`(Seedream은 이를 완전히 무시합니다). 여러 후보를 얻으려면 클라이언트에서 여러 요청을 동시에 전송하십시오. 이 사이트의 스킬 페이지에서는 한 번에 최대 5개로 제한합니다. 채널별로 동시 실행 수를 조정하십시오. 일부 채널은 2개부터 429를 반환하기 시작하므로 지수 백오프를 추가하십시오.`]})]}),_jsxs(Step,{title:`선택: 비전 모델을 심사자로 사용`,children:[_jsx(_components.p,{children:`N개의 후보를 확보했다면 자동으로 하나를 선택해야 합니다. 그렇지 않으면 선택 작업을 단순히 사용자에게 넘긴 것에 불과합니다.`}),_jsxs(_components.p,{children:[`후보를 표준 `,_jsx(_components.code,{children:`/v1/chat/completions`}),` 이미지 입력으로 비전 모델에 다시 보내 점수를 매기십시오. 사용 가능한 모델은 `,_jsx(_components.a,{href:`/ko/api-capabilities/vision-understanding`,children:`비전 이해`}),`를 참조하십시오. 평가 기준은 다섯 가지 차원으로 고정하고 JSON을 반환하도록 요구하십시오. 즉, 지시 준수, 구조와 해부학, 텍스트 정확성, 텍스처의 사실성, 구도입니다.`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`이 작업에는 `,_jsx(_components.code,{children:`/v1/rerank`}),`을 사용하지 마십시오. `,_jsx(_components.code,{children:`bge-reranker-v2-m3`}),`은 `,_jsx(_components.strong,{children:`텍스트 전용`}),` 재순위 지정 모델이며 이미지를 허용하지 않습니다. 이미지에 점수를 매기려면 비전 이해 모델이 필요합니다.`]})})]}),_jsxs(Step,{title:`수정하고 마무리하십시오`,children:[_jsx(_components.p,{children:`구도가 결정된 후 국소적으로 조정하십시오. 하나의 복합 지시를 사용하는 것보다 성공률이 훨씬 높습니다.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`픽셀 수준의 국소 재도색`}),`: 마스크를 지원하는 것은 **공식 릴레이 `,_jsx(_components.code,{children:`gpt-image-2`}),`**뿐입니다. `,_jsx(_components.a,{href:`/ko/api-capabilities/gpt-image-2/mask-editing`,children:`마스크 인페인팅 가이드`}),`를 참조하십시오.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`다중 턴 누적 편집`}),`: Nano Banana 모델의 `,_jsx(_components.strong,{children:`네이티브 Gemini 엔드포인트`}),`에서 지원됩니다(이전 이미지를 `,_jsx(_components.code,{children:`role: \"model\"`}),`으로 다시 전달). 리버스 엔지니어링된 경로에서는 지원되지 않습니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`즉시 다시 호스팅`}),`: 반환되는 모든 URL은 임시 URL입니다(FLUX는 약 10분이며 CORS를 지원하지 않고, Seedream과 R2는 약 24시간). 따라서 이미지를 확보하는 즉시 자체 객체 스토리지로 다운로드하십시오.`]}),`\n`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`최소-엔드투엔드-구현`,children:`최소 엔드투엔드 구현`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`83`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`83`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` base64`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` concurrent.futures `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ThreadPoolExecutor`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`BASE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.apiyi.com\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"APIYI_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`HEAD`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`STYLE_CONST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Cool neutral white balance, low saturation, clean frame with generous negative space.\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` draw`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`prompt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`size`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"2K\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`aspect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"1:1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"Generate one image (Nano Banana Pro, native Gemini endpoint).\"\"\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`BASE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/v1beta/models/gemini-3-pro-image:generateContent\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"contents\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"parts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: prompt}]}],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"generationConfig\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"responseModalities\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"IMAGE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"imageConfig\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"aspectRatio\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: aspect, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"imageSize\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: size},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.post(url, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`HEAD`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`body, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`timeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# headroom for 4K`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.raise_for_status()`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` parts `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.json()[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"candidates\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"parts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` part `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` next`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((p `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` p `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` parts `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` p.get(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"inlineData\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)), `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` part `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`is`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# HTTP 200 with no image usually means moderation`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` raise`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` RuntimeError`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"no image returned: \"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` json.dumps(parts)[:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`300`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` base64.b64decode(part[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"inlineData\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` score`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`image`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`prompt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`dict`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"Score a candidate with a vision model; returns per-dimension scores and one issue line.\"\"\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` data_url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"data:image/png;base64,\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` base64.b64encode(image).decode()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rubric `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Score this image and return strict JSON: \"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"instruction\":0-10,\"anatomy\":0-10,\"text\":0-10,\"texture\":0-10,'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '\"composition\":0-10,\"total\":0-50,\"issue\":\"one sentence\"}. '`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"instruction = does it satisfy the brief below; anatomy = errors in hands, limbs, object structure; \"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"text = is any text in the image correct (score 10 if there is none); \"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"texture = does it read as a real photograph rather than a render; \"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"composition = is the framing usable. The brief:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` prompt`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.post(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`BASE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/v1/chat/completions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`HEAD`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gemini-3.5-flash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: rubric},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: data_url}},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]}],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"response_format\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"json_object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` timeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`120`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r.raise_for_status()`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` json.loads(r.json()[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"choices\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` best_of`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`user_input`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`n`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`int`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` prompt `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rewrite(user_input) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`+`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` STYLE_CONST`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # steps 1 and 2`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ThreadPoolExecutor(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`max_workers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`n) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pool: `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# step 3: client-side fan-out`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` results `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(pool.map(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`lambda`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: _safe(draw, prompt), `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`range`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(n)))`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` cands `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [img `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ok, img `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` results `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ok]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` not`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` cands:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` raise`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` RuntimeError`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"all candidates failed; check moderation or fall back to another model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ThreadPoolExecutor(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`max_workers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`len`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(cands)) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pool: `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# step 4: score in parallel`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` scores `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(pool.map(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`lambda`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` im`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: score(im, prompt), cands))`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ranked `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` sorted`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`zip`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(cands, scores), `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`lambda`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` x`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: x[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`reverse`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ranked[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# step 5 retouch/rehost hooks in here`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` _safe`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fn`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`*`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`args`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` try`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, fn(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`*`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`args)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` except`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Exception`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` e: `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# one failure must not sink the batch`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(e)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`4-ai-느낌-없애기`,children:`4. AI 느낌 없애기`}),`\n`,_jsxs(_components.p,{children:[`“AI 느낌”은 미스터리가 아닙니다. 이는 `,_jsx(_components.strong,{children:`하나씩 제거할 수 있는 구체적인 특징들의 집합`}),`입니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`나란히-비교`,children:`나란히 비교`}),`\n`,_jsxs(_components.p,{children:[`동일한 모델(`,_jsx(_components.code,{children:`gemini-3-pro-image`}),`), 동일한 주제, 두 가지 프롬프트 스타일, 각각 두 장의 이미지이며 각 배치에서 첫 번째 이미지를 표시합니다:`]}),`\n`,_jsx(Frame,{caption:`Bare prompt: 'A photorealistic half-body portrait of a young woman by a cafe window, smiling at the camera, 8K, ultra HD, ultra detailed, flawless skin, beautiful, perfect lighting, masterpiece'`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=0623ee0bf7aa07fab43cd347d9aa4a7d`,alt:`간단한 프롬프트에서 생성한 인물 사진: 피사체가 중앙에 배치되어 카메라를 바라보고, 뚜렷한 광원 방향 없이 고르게 조명되며, 깔끔한 배경과 전형적인 스톡 사진의 느낌을 보여 줍니다`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`956`,height:`956`,\"data-path\":`images/image-workflow-texture-before.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=1da07d9d22728413529c5cd02ca7a8a4 280w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=48cc76890fc115ba84418cc29080dc48 560w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=0596f0e5a57cf031c576b1f3fc2f457c 840w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=0a949b43b54a71d68b17662bcaefd01a 1100w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=6cd2bb12f2dcf609d2d8c5abb0bd0156 1650w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-before.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=402aea8964783728164b064d5d65b673 2500w`})}),`\n`,_jsx(Frame,{caption:`The same subject after adding four blocks of control language: light position, lens, medium, imperfections`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=83efd55ea2ba552a67c04aa2e0f99936`,alt:`제어된 프롬프트에서 생성한 인물 사진: 한쪽 방향에서 들어오는 창문 빛, 얼굴 절반에 드리운 그림자, 보이는 모공과 잔털, 볼의 작은 점, 흘러내린 머리카락 몇 가닥, 필름 색보정, 중앙에서 오른쪽에 배치된 피사체`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`956`,height:`956`,\"data-path\":`images/image-workflow-texture-after.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=bccba09fbb4d009c48de6e45cd3e81f9 280w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=c40cc2e21dab1a17da9bd9d3790c8f9e 560w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=700e5a4768bb1be633dbae7bd4d16919 840w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=6c083ef18a027864f0197bdc55b5745d 1100w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=3ce88999d2c9543ea9f3f9463a955fb7 1650w, https://mintcdn.com/apiyillc/4sMX_MxhL2nRcbPH/images/image-workflow-texture-after.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=4sMX_MxhL2nRcbPH\u0026q=85\u0026s=89f7d08d6891faecd09c16be56c62999 2500w`})}),`\n`,_jsxs(_components.p,{children:[`왼쪽 이미지는 나쁘지 않습니다. 기본 모델이 충분히 강력하기 때문에 간단한 프롬프트만으로도 보기 좋은 이미지를 생성합니다. 하지만 여기에는 모든 특성이 고스란히 담겨 있습니다. `,_jsx(_components.strong,{children:`피사체는 정중앙에 완전히 고정되어 있고, 조명이 너무 고르기 때문에 어디에서 빛이 오는지 말할 수 없으며, 모든 요소가 무난합니다`}),`. 그리고 이는 우연히 한 번 나온 결과가 아닙니다. 해당 배치의 두 이미지 모두 본질적으로 동일한 구도와 조명 패턴을 공유했습니다.`]}),`\n`,_jsxs(_components.p,{children:[`오른쪽 이미지는 접근 방식을 바꾸었습니다. 빛에는 방향이 있고, 얼굴 절반은 그림자에 잠기도록 두었으며, 피부에는 유분과 모공이 보이고, 볼에는 점이 있으며, 잔머리는 빗질하지 않은 상태이고, 피사체는 중앙에서 오른쪽에 배치되어 있습니다. 이는 “카페에서 미소 짓는 여성의 스톡 이미지”라기보다 `,_jsx(_components.strong,{children:`특정한 순간에 촬영된 특정한 사람`}),`으로 느껴집니다.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`파이프라인의 진정한 가치가 드러나는 지점도 바로 여기입니다. 파이프라인은 못생긴 결과물을 예쁜 결과물로 바꾸는 것이 아니라, `,_jsx(_components.strong,{children:`“운 좋게 나온 좋은 결과”를 “지정하고, 설명하고, 재현할 수 있는 좋은 결과”로 바꿉니다.`}),` 이해관계자가 오른쪽 이미지를 더 선호하지 않을 수도 있지만, 왼쪽 이미지로는 왜 그런 모습으로 보이는지 설명할 수 없고, 다음 이미지에 같은 결과를 요청할 수도 없습니다.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`ai-느낌의-증상-해결-방법-및-작성하지-말아야-할-내용`,children:`AI 느낌의 증상, 해결 방법 및 작성하지 말아야 할 내용`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`AI 느낌의 증상`}),_jsx(_components.th,{children:`해결 방법 (프롬프트에 다음과 같이 작성)`}),_jsx(_components.th,{children:`작성하지 말아야 할 내용`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`피사체가 항상 중앙에 있고 구도가 대칭적임`}),_jsx(_components.td,{children:`배치를 지정합니다: “피사체는 중앙 오른쪽에 배치하고, 왼쪽에 여백을 둠\"`}),_jsx(_components.td,{children:`\"완벽한 구도”, “황금비”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`모공이 없는 플라스틱 같은 피부`}),_jsx(_components.td,{children:`”자연스러운 피부 질감, 보이는 모공과 얼굴 솜털, 코에 약간의 광택, 리터칭 없음\"`}),_jsx(_components.td,{children:`\"결점 없는 피부”, “정교한”, “아름다운”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`식별 가능한 광원이 없는 균일한 조명`}),_jsx(_components.td,{children:`하나의 키 라이트와 그 경도를 지정합니다: “왼쪽에서 들어오는 창문 빛만 광원으로 사용하고, 얼굴 오른쪽 절반은 그림자에 둠\"`}),_jsx(_components.td,{children:`\"완벽한 조명”, “부드러운 조명”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`가짜처럼 보이는 피사계 심도, 배경이 붙여 넣은 것처럼 보임`}),_jsx(_components.td,{children:`초점 거리와 조리개를 제시합니다: “85mm, f/2.8, 가까운 쪽 눈에 초점\"`}),_jsx(_components.td,{children:`\"흐린 배경”, “영화 같은”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`과도하게 채도가 높고 빛나는 색상`}),_jsx(_components.td,{children:`매체와 화이트 밸런스를 제시합니다: “Kodak Portra 400 특유의 느낌, 따뜻한 하이라이트와 차가운 그림자, 낮은 채도\"`}),_jsx(_components.td,{children:`\"생생한 색상”, “HDR”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`모든 것이 새것처럼 보이고 사용감이 없음`}),_jsx(_components.td,{children:`의도적으로 사용감을 추가합니다: “보풀이 생긴 스웨터, 테이블 위의 물자국과 부스러기\"`}),_jsx(_components.td,{children:`\"깨끗하고 정돈된”, “고급스러운 질감”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`포스터나 렌더링처럼 보임`}),_jsx(_components.td,{children:`촬영 상황을 지정합니다: “자연스러운 스냅 사진”, “옆 테이블에서 눈높이로 촬영\"`}),_jsx(_components.td,{children:`\"8K”, “초고화질”, “걸작”`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`8K`}),`, `,_jsx(_components.code,{children:`ultra HD`}),`, `,_jsx(_components.code,{children:`ultra detailed`}),`, `,_jsx(_components.code,{children:`masterpiece`}),` 및 `,_jsx(_components.code,{children:`perfect`}),`과 같은 모호한 품질 관련 단어는 전반적으로 부정적인 영향을 줍니다.`]}),` 이러한 단어는 해상도를 높이지 않으며(해상도를 높이는 것은 매개변수뿐입니다), 모델을 과도하게 선명하고 과도하게 채도가 높은 렌더링으로 유도합니다. 이는 바로 AI 느낌의 핵심입니다. 위 왼쪽 프롬프트에는 이러한 단어가 지나치게 많이 들어갔고, 그 결과가 이를 보여줍니다. 품질을 원한다면 구체적인 조명, 렌즈 및 매체를 작성하시기 바랍니다.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`복사해-붙여-넣을-수-있는-제어-문구-네-가지-블록`,children:`복사해 붙여 넣을 수 있는 제어 문구 네 가지 블록`}),`\n`,_jsx(_components.p,{children:`필요에 따라 prompt에 섞어 사용합니다. 각 블록에서 한두 줄이면 대개 충분합니다.`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`조명`,icon:`sun`,children:_jsx(_components.p,{children:`프레임 안에서 왼쪽의 창문 빛만 광원으로 사용 / 오후 3시의 강한 후면 측면광 / 머리카락에 림 라이트가 있는 역광 / 프레임 안에 실용적인 조명으로 배치된 책상 램프 / 뚜렷한 그림자가 없는 흐린 날의 확산광`})}),_jsx(Card,{title:`렌즈`,icon:`aperture`,children:_jsx(_components.p,{children:`35mm f/2.0, 자연스러운 순간 포착, 눈높이 / 85mm f/2.8, 가까운 쪽 눈에 초점 / 낮은 카메라 위치에서 24mm, 가장자리에 약간의 왜곡 / 공간을 압축하는 망원 렌즈, 평평해진 배경 레이어 / 모서리에 약한 비네팅`})}),_jsx(Card,{title:`매체`,icon:`film`,children:_jsx(_components.p,{children:`Kodak Portra 400 특유의 표현, 미세한 그레인 / 따뜻한 하이라이트, 차가운 그림자 / Polaroid 즉석 필름, 낮은 대비, 부드러운 가장자리 / 초기 CCD 디지털 카메라의 노이즈와 색조 편향 / 전체적으로 낮은 채도, 선명하게 처리하지 않음`})}),_jsx(Card,{title:`불완전함`,icon:`scan-line`,children:_jsx(_components.p,{children:`자연스러운 피부 질감, 보이는 모공과 솜털 / 몇 가닥의 헝클어진 머리카락, 빗지 않은 상태 / 보풀이 일어난 스웨터, 해진 소매 끝 / 테이블 위의 물자국, 지문과 부스러기 / 중심에서 벗어난 구도, 가장자리에서 피사체 일부가 잘린 상태`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`완전한-예시-3가지`,children:`완전한 예시 3가지`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`인물 사진: 자연스러운 모습, 증명사진 아님`,id:`%EC%9E%90%EC%97%B0%EC%8A%A4%EB%9F%AC%EC%9A%B4-%EB%B0%98%EC%8B%A0-%EC%9D%B8%EB%AC%BC-%EC%82%AC%EC%A7%84%3A-%EC%B9%B4%ED%8E%98-%EC%B0%BD%EA%B0%80%EC%97%90-%EC%9E%88%EB%8A%94-20%EB%8C%80-%EC%A4%91%EB%B0%98%EC%9D%98-%EC%97%AC%EC%84%B1%2C-%EC%98%86%EC%9C%BC%EB%A1%9C-%EB%8F%8C%EC%95%84%EC%84%A0-%EC%B1%84-%EC%B0%BD%EB%B0%96%EC%9D%84-%EB%B0%94%EB%9D%BC%EB%B3%B4%EB%A9%B0%2C-%EC%95%A0%EC%8D%A8-%EC%B0%B8%EC%9C%BC%EB%A0%A4%EB%8A%94-%EB%93%AF%ED%95%9C-%EB%AF%B8%EC%86%8C%EB%A5%BC-%EC%A7%93%EA%B3%A0-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.-%ED%94%84%EB%A0%88%EC%9E%84%EC%9D%98-%EC%9C%A0%EC%9D%BC%ED%95%9C-%EA%B4%91%EC%9B%90%EC%9D%80-%EC%99%BC%EC%AA%BD%EC%97%90%EC%84%9C-%EB%93%A4%EC%96%B4%EC%98%A4%EB%8A%94-%EC%B0%BD%EB%B9%9B%EC%9E%85%EB%8B%88%EB%8B%A4.-%EC%96%BC%EA%B5%B4-%EC%98%A4%EB%A5%B8%EC%AA%BD-%EC%A0%88%EB%B0%98%EC%9D%80-%EA%B7%B8%EB%A6%BC%EC%9E%90%EC%97%90-%EC%9E%A0%EA%B8%B0%EA%B3%A0%2C-%EC%BD%A7%EB%93%B1-%EC%95%84%EB%9E%98%EC%97%90%EB%8A%94-%EA%B0%80%EC%9E%A5%EC%9E%90%EB%A6%AC%EA%B0%80-%EC%84%A0%EB%AA%85%ED%95%9C-%EC%9E%91%EC%9D%80-%EA%B7%B8%EB%A6%BC%EC%9E%90%EA%B0%80-%EB%93%9C%EB%A6%AC%EC%9B%8C%EC%A7%91%EB%8B%88%EB%8B%A4.-85mm-%EB%A0%8C%EC%A6%88%2C-f%2F2.8%2C-%EB%88%88%EB%86%92%EC%9D%B4%2C-%EA%B0%80%EA%B9%8C%EC%9A%B4-%EC%AA%BD-%EB%88%88%EC%97%90-%EC%B4%88%EC%A0%90%EC%9D%84-%EB%A7%9E%EC%B6%A5%EB%8B%88%EB%8B%A4.-%EB%AF%B8%EC%84%B8%ED%95%98%EA%B2%8C-%EB%88%88%EC%97%90-%EB%B3%B4%EC%9D%B4%EB%8A%94-%EC%9E%85%EC%9E%90%EB%A5%BC-%EC%A7%80%EB%8B%8C-kodak-portra-400-%ED%8A%B9%EC%9C%A0%EC%9D%98-%EC%A7%88%EA%B0%90%2C-%EB%94%B0%EB%9C%BB%ED%95%9C-%ED%95%98%EC%9D%B4%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%99%80-%EC%B0%A8%EA%B0%80%EC%9A%B4-%EA%B7%B8%EB%A6%BC%EC%9E%90%2C-%EC%A0%84%EC%B2%B4%EC%A0%81%EC%9C%BC%EB%A1%9C-%EB%82%AE%EC%9D%80-%EC%B1%84%EB%8F%84%EC%9E%85%EB%8B%88%EB%8B%A4.-%EC%9E%90%EC%97%B0%EC%8A%A4%EB%9F%AC%EC%9A%B4-%ED%94%BC%EB%B6%80%3A-%EB%B3%B4%EC%9D%B4%EB%8A%94-%EB%AA%A8%EA%B3%B5%EA%B3%BC-%EC%86%9C%ED%84%B8%2C-%EC%BD%A7%EB%B0%A9%EC%9A%B8-%EC%98%86%EC%9D%98-%EC%95%BD%EA%B0%84%EC%9D%98-%EB%B2%88%EB%93%A4%EA%B1%B0%EB%A6%BC%2C-%EC%99%BC%EC%AA%BD-%EB%B3%BC%EC%9D%98-%EC%9E%91%EC%9D%80-%EC%A0%90%2C-%EB%AA%87-%EA%B0%80%EB%8B%A5-%EC%82%90%EC%A0%B8%EB%82%98%EC%98%A8-%EB%88%88%EC%8D%B9%2C-%EC%9D%B4%EB%A7%88%EC%97%90-%EB%B9%97%EC%A7%88%ED%95%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EB%8A%90%EC%8A%A8%ED%95%9C-%EB%A8%B8%EB%A6%AC%EC%B9%B4%EB%9D%BD.-%ED%94%BC%EB%B6%80-%EB%B3%B4%EC%A0%95-%EA%B8%88%EC%A7%80%2C-%EB%B7%B0%ED%8B%B0-%EB%A6%AC%ED%84%B0%EC%B9%AD-%EA%B8%88%EC%A7%80%2C-%EC%84%A0%EB%AA%85%ED%99%94-%EA%B8%88%EC%A7%80%EC%9E%85%EB%8B%88%EB%8B%A4.-%ED%94%BC%EC%82%AC%EC%B2%B4%EB%8A%94-%EC%A4%91%EC%95%99%EC%97%90%EC%84%9C-%EC%98%A4%EB%A5%B8%EC%AA%BD%EC%97%90-%EB%B0%B0%EC%B9%98%ED%95%98%EA%B3%A0%2C-%EC%99%BC%EC%AA%BD%EC%97%90-%EC%97%AC%EB%B0%B1%EC%9D%84-%EB%91%A1%EB%8B%88%EB%8B%A4.`,children:_jsx(_components.p,{children:`자연스러운 반신 인물 사진: 카페 창가에 있는 20대 중반의 여성, 옆으로 돌아선 채 창밖을 바라보며, 애써 참으려는 듯한 미소를 짓고 있습니다. 프레임의 유일한 광원은 왼쪽에서 들어오는 창빛입니다. 얼굴 오른쪽 절반은 그림자에 잠기고, 콧등 아래에는 가장자리가 선명한 작은 그림자가 드리워집니다. 85mm 렌즈, f/2.8, 눈높이, 가까운 쪽 눈에 초점을 맞춥니다. 미세하게 눈에 보이는 입자를 지닌 Kodak Portra 400 특유의 질감, 따뜻한 하이라이트와 차가운 그림자, 전체적으로 낮은 채도입니다. 자연스러운 피부: 보이는 모공과 솜털, 콧방울 옆의 약간의 번들거림, 왼쪽 볼의 작은 점, 몇 가닥 삐져나온 눈썹, 이마에 빗질하지 않은 느슨한 머리카락. 피부 보정 금지, 뷰티 리터칭 금지, 선명화 금지입니다. 피사체는 중앙에서 오른쪽에 배치하고, 왼쪽에 여백을 둡니다.`})}),_jsx(Accordion,{title:`제품 사진: 제품 페이지에 바로 사용할 수 있는 이미지`,id:`-1`,children:_jsx(_components.p,{children:`이커머스 히어로 샷: 검은 커피가 80% 채워진 무광 검은색 세라믹 푸어오버 컵, 표면에는 크레마가 가느다란 고리 형태로 남아 있습니다. 밝은 회색 마이크로시멘트 표면 위에 놓여 있으며, 뒤쪽 벽도 같은 색조로 흐릿하게 보입니다. 주요 광원은 왼쪽 위 45도 위치의 소프트박스입니다. 오른쪽의 흰색 바운스 카드는 컵 오른쪽 가장자리를 따라 좁은 하이라이트를 만들고, 부드러운 투사 그림자는 뒤쪽 오른쪽으로 드리워집니다. 85mm 매크로 렌즈, f/5.6, 15도 아래로 기울인 정면 시점, 컵 전체에 선명한 초점을 맞춥니다. 차갑고 중립적인 화이트 밸런스, 전체적으로 낮은 채도입니다. 유약에는 수작업으로 제작한 듯한 약간의 불균일함과 아주 작은 가마 자국 하나가 있으며, 테두리에는 사용 흔적이 아주 희미하게 남아 있습니다. 넉넉한 여백을 두고, 컵은 프레임의 왼쪽 3분할 지점에 배치합니다. 이미지 어디에도 브랜드명이나 텍스트를 넣지 않습니다.`})}),_jsx(Accordion,{title:`환경: 구체적인 시간과 날씨를 지정합니다`,id:`-2`,children:_jsx(_components.p,{children:`저녁 6시, 비가 막 그친 직후의 좁은 구시가지 거리입니다. 양쪽 상점의 라이트 박스가 물웅덩이에 반사됩니다. 유일한 주요 광원은 거리 끝의 따뜻한 가로등이며, 상점 창문이 보조광 역할을 하고, 하늘에는 차가운 해 질 녘의 기운이 희미하게 남아 있어 따뜻한 색과 차가운 색의 대비를 만듭니다. 28mm 렌즈, f/4, 카메라는 눈높이에 두고 약간 위쪽으로 기울입니다. 전체적으로 낮은 채도, 그림자에 남겨 둔 노이즈, 그림자 밝기 상승 금지입니다. 벽에는 물 얼룩, 찢어진 오래된 포스터와 에어컨 실외기가 보이고, 프레임 위쪽을 전선이 가로지릅니다. 누구도 카메라를 바라보지 않으며, 지나가는 사람들은 뒤에서 보이고 약간의 모션 블러가 적용됩니다.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`5-파이프라인-설계를-재구성할-사실`,children:`5. 파이프라인 설계를 재구성할 사실`}),`\n`,_jsx(_components.p,{children:`이러한 사항을 미리 파악하면 재작업을 줄일 수 있습니다.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`사실`}),_jsx(_components.th,{children:`파이프라인에 미치는 영향`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`이 제품군 전반에서 시드는 사실상 사용할 수 없습니다`}),`: Nano Banana 또는 GPT-Image 모델 중 시드를 노출하는 모델이 없고, Seedream 4.x / 5.x의 시드는 효과가 없는 것으로 측정되었으며, Grok Imagine은 시드를 지원하지 않습니다`]}),_jsxs(_components.td,{children:[`시드를 기반으로 재현성을 구축하지 마십시오. `,_jsx(_components.strong,{children:`신뢰할 수 있는 유일한 재현 방법은 성공한 전체 요청을 보관하는 것입니다`}),` — prompt, 참조 이미지, 모든 매개변수를 포함하여 그대로 다시 실행해야 합니다`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsxs(_components.strong,{children:[`서버 측 `,_jsx(_components.code,{children:`n`}),` 매개변수는 대부분의 이미지 모델에 영향을 주지 않습니다`]})}),_jsx(_components.td,{children:`여러 후보는 클라이언트 측 동시 실행으로 생성해야 합니다. 채널별 동시 실행 수를 부하 테스트하고 지수 백오프를 추가하십시오`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`모든 이미지 API는 동기식이며, 작업 ID가 없고 연결이 끊겨도 계속 과금됩니다`})}),_jsxs(_components.td,{children:[`파이프라인에 자체 작업 큐가 필요합니다. `,_jsx(_components.a,{href:`/ko/api-capabilities/image-async-queue`,children:`직접 비동기 큐 구축`}),` 및 `,_jsx(_components.a,{href:`/ko/api-capabilities/image-api-best-practices`,children:`이미지 API 필수 사항`}),`을 참조하십시오`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`업스케일링, 배경 제거 또는 얼굴 복원 엔드포인트가 없습니다`})}),_jsxs(_components.td,{children:[`생성 시점에 출력 크기를 결정하십시오. 투명한 배경이 필요한 경우 `,_jsx(_components.code,{children:`background: \"transparent\"`}),`을 `,_jsx(_components.code,{children:`gpt-image-2.5-flare`}),` / `,_jsx(_components.code,{children:`gpt-image-2.5-sunburst`}),`에 전달하십시오(오려내기 엔드포인트가 아니라 투명한 상태에서 직접 생성합니다)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`이미지가 없는 HTTP 200 응답은 일반적으로 moderation 차단을 의미합니다`})}),_jsxs(_components.td,{children:[`선택 로직은 “이미지가 반환되지 않음”과 “이미지가 반환되었지만 품질이 좋지 않음”을 구분해야 합니다. 전자의 경우 `,_jsx(_components.a,{href:`/ko/api-capabilities/gemini-image-error-handling`,children:`Gemini 이미지 오류 처리`}),`를 참조하십시오`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`반환되는 모든 이미지 URL은 임시 링크입니다`})}),_jsx(_components.td,{children:`수신하는 즉시 다른 곳에 호스팅하십시오. 업스트림 URL을 데이터베이스에 저장하지 마십시오`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`GPT-Image prompt의 길이는 8,192 token으로 제한됩니다`}),` (측정 결과이며, 초과해도 오류가 발생하지 않고 전체 prompt가 조용히 무시됩니다. 중국어 약 11,000자에 해당합니다)`]}),_jsxs(_components.td,{children:[`브랜드 가이드나 패키지 사양을 이미지 모델에 그대로 입력하지 마십시오. 먼저 텍스트 모델로 1K~3K자 분량의 구조화된 prompt로 요약한 다음 사용하십시오. `,_jsx(_components.a,{href:`/ko/api-capabilities/image-long-prompt`,children:`긴 prompt`}),`를 참조하십시오`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`6-비용-계산-파이프라인이-가치가-있는-경우`,children:`6. 비용 계산: 파이프라인이 가치가 있는 경우`}),`\n`,_jsxs(_components.p,{children:[`파이프라인은 성공률을 높이는 대신 비용을 지불하는 방식입니다. 이미지 비용은 출력이 대부분을 차지하며(`,_jsx(_components.code,{children:`gpt-image-2`}),`은 출력에 토큰 100만 개당 $30를 청구합니다), 재작성과 점수 산정에 사용되는 텍스트 및 비전 모델 비용은 무시할 수 있을 정도로 낮습니다. 따라서 비용은 사실상 “몇 개의 후보를 생성했는가”에 달려 있습니다.`]}),`\n`,_jsx(_components.p,{children:`모든 작업에 하나의 설정을 적용하기보다는 다음 세 가지 계층을 사용합니다.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`계층`}),_jsx(_components.th,{children:`구성`}),_jsx(_components.th,{children:`상대적 비용`}),_jsx(_components.th,{children:`용도`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`초안`})}),_jsx(_components.td,{children:`Lite 모델에서 단일 생성`}),_jsx(_components.td,{children:`1×`}),_jsx(_components.td,{children:`내부 미리보기, 대량 플레이스홀더, 가벼운 사용자 실험`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`표준`})}),_jsx(_components.td,{children:`재작성 + 후보 2개 + 점수에 따른 선택`}),_jsx(_components.td,{children:`약 2×`}),_jsx(_components.td,{children:`소비자 제품의 기본 경로`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`프리미엄`})}),_jsx(_components.td,{children:`재작성 + 후보 4개 + 점수 산정 + 로컬 수정 1회`}),_jsx(_components.td,{children:`약 5×`}),_jsx(_components.td,{children:`제품 대표 이미지, 광고 소재, 외부에 전달되는 모든 결과물`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`테스트는 간단합니다. `,_jsx(_components.strong,{children:`팀 외부의 누군가가 이 이미지를 보게 됩니까?`}),` 그렇다면 표준 이상을 사용하는 것이 비용 대비 효과가 있습니다. 내부에서 잠깐 확인하는 용도라면 초안으로 충분합니다. 중간에 게이트를 추가할 수도 있습니다. 상위 점수가 임계값보다 낮을 때만 후보를 추가로 생성하면 되므로, 대부분의 요청을 후보 2개에서 수렴시킬 수 있습니다.`]}),`\n`,_jsx(Heading,{level:`2`,id:`빠른-요약`,children:`빠른 요약`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`차이는 모델 가중치에 있는 것이 아니라 `,_jsx(_components.strong,{children:`모델을 둘러싼 8개 계층`}),`에 있습니다. 즉, 재작성, 프리셋, 앵커링, 샘플링, 선택, 단계별 편집, 후처리, 재호스팅입니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`재작성 계층의 투자 대비 효과가 가장 큽니다`}),`. 주제, 환경, 조명, 렌즈, 색보정, 구도를 채워 넣으면 “멋져 보인다”가 “사용할 수 있다”로 바뀝니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`여러 후보와 비전 모델 점수화`}),`가 실제로 소비자 제품의 높은 체감 성공률을 만들어 내는 부분입니다. `,_jsx(_components.code,{children:`n`}),`는 작동하지 않으므로 클라이언트 측에서 분산 호출해야 하며, `,_jsx(_components.code,{children:`/v1/rerank`}),`는 이미지에 점수를 매길 수 없습니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AI 느낌을 없애려면 형용사가 아니라 구체성을 더해야 합니다`}),`. 광원 하나를 명시하고, 초점 거리와 조리개를 제시하며, 매체와 그레인을 지정하고, 의도적으로 불완전함을 추가하고, 피사체를 중앙에서 벗어나게 배치해야 합니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`8K`}),` / `,_jsx(_components.code,{children:`masterpiece`}),` / `,_jsx(_components.code,{children:`perfect lighting`}),`는 순효과가 마이너스입니다`]}),` — 해상도가 추가되지 않으며, 프레임을 렌더링된 느낌으로 몰고 갑니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`재현을 위해 시드에 의존하지 마십시오`}),`. 대신 전체 요청을 보관해야 합니다. 이미지 API는 동기식이며 연결이 끊겨도 과금되므로 파이프라인에 큐가 필요합니다.`]}),`\n`,_jsx(_components.li,{children:`APIYI에는 업스케일링, 배경 제거 또는 ID 학습 엔드포인트가 없으므로 처음부터 이러한 계층을 고려해 설계해야 합니다.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`관련-문서`,children:`관련 문서`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`원하는 이미지 얻는 방법`,icon:`target`,href:`/ko/api-capabilities/image-generation-success-tips`,children:_jsx(_components.p,{children:`단일 실패 호출 복구: prompt 재작성, 재시도, 모델 전환, 테스트 도구로 격리`})}),_jsx(Card,{title:`이미지 API 핵심 사항`,icon:`book-check`,href:`/ko/api-capabilities/image-api-best-practices`,children:_jsx(_components.p,{children:`동기 호출, 타임아웃 단계, 과금, base64 처리, 입력 이미지 전처리`})}),_jsx(Card,{title:`마스크 인페인팅 가이드`,icon:`scissors`,href:`/ko/api-capabilities/gpt-image-2/mask-editing`,children:_jsx(_components.p,{children:`픽셀 수준의 로컬 편집, 공식 릴레이 gpt-image-2 전용`})}),_jsx(Card,{title:`다중 이미지 융합 테스트`,icon:`images`,href:`/ko/api-capabilities/multi-image-fusion-testing`,children:_jsx(_components.p,{children:`참조 제한 측정 방법과 14개 이미지 융합 결과`})}),_jsx(Card,{title:`비전 이해`,icon:`eye`,href:`/ko/api-capabilities/vision-understanding`,children:_jsx(_components.p,{children:`후보 이미지의 점수를 매기는 데 사용할 수 있는 비전 모델과 호출 방법`})}),_jsx(Card,{title:`사용자 지정 비동기 큐 구축`,icon:`list-checks`,href:`/ko/api-capabilities/image-async-queue`,children:_jsx(_components.p,{children:`다중 후보 파이프라인을 지원하도록 동기 생성을 작업 큐로 래핑`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"고급 이미지 생성: 워크플로 및 사실감","sidebarTitle":"고급 워크플로","description":"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.","icon":"workflow","href":"/ko/api-capabilities/image-advanced-workflow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. 모델을 둘러싼 소비자용 이미지 제품은 무엇인가","slug":"1-모델을-둘러싼-소비자용-이미지-제품은-무엇인가","depth":2,"children":[]},{"title":"2. 첫 번째 레이어가 이미 결과를 분리합니다: 일상적인 입력을 구조로 전환하기","slug":"2-첫-번째-레이어가-이미-결과를-분리합니다-일상적인-입력을-구조로-전환하기","depth":2,"children":[{"title":"나란히 비교하는 테스트: 하나의 모델, 하나의 브리프, 두 개의 프롬프트","slug":"나란히-비교하는-테스트-하나의-모델-하나의-브리프-두-개의-프롬프트","depth":3,"children":[]},{"title":"재작성 레이어가 제공해야 하는 여섯 가지 요소","slug":"재작성-레이어가-제공해야-하는-여섯-가지-요소","depth":3,"children":[]},{"title":"코드에서의 재작성 레이어","slug":"코드에서의-재작성-레이어","depth":3,"children":[]}]},{"title":"3. 실제로 배포할 수 있는 파이프라인","slug":"3-실제로-배포할-수-있는-파이프라인","depth":2,"children":[{"title":"최소 엔드투엔드 구현","slug":"최소-엔드투엔드-구현","depth":3,"children":[]}]},{"title":"4. AI 느낌 없애기","slug":"4-ai-느낌-없애기","depth":2,"children":[{"title":"나란히 비교","slug":"나란히-비교","depth":3,"children":[]},{"title":"AI 느낌의 증상, 해결 방법 및 작성하지 말아야 할 내용","slug":"ai-느낌의-증상-해결-방법-및-작성하지-말아야-할-내용","depth":3,"children":[]},{"title":"복사해 붙여 넣을 수 있는 제어 문구 네 가지 블록","slug":"복사해-붙여-넣을-수-있는-제어-문구-네-가지-블록","depth":3,"children":[]},{"title":"완전한 예시 3가지","slug":"완전한-예시-3가지","depth":3,"children":[]}]},{"title":"5. 파이프라인 설계를 재구성할 사실","slug":"5-파이프라인-설계를-재구성할-사실","depth":2,"children":[]},{"title":"6. 비용 계산: 파이프라인이 가치가 있는 경우","slug":"6-비용-계산-파이프라인이-가치가-있는-경우","depth":2,"children":[]},{"title":"빠른 요약","slug":"빠른-요약","depth":2,"children":[]},{"title":"관련 문서","slug":"관련-문서","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"apiyillc","siteName":"API易文档中心","title":"고급 이미지 생성: 워크플로 및 사실감 - API易文档中心","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"zh":{"href":"/api-capabilities/image-advanced-workflow","matchLevel":1},"en":{"href":"/en/api-capabilities/image-advanced-workflow","matchLevel":1},"zh-Hant":{"href":"/zh-Hant/api-capabilities/image-advanced-workflow","matchLevel":1},"ja":{"href":"/ja/api-capabilities/image-advanced-workflow","matchLevel":1},"ko":{"href":"/ko/api-capabilities/image-advanced-workflow","matchLevel":0},"ru":{"href":"/ru/api-capabilities/image-advanced-workflow","matchLevel":1}}},"lastModified":"2026-11-09T08:49:14.734Z","originalFileLocation":"ko/api-capabilities/image-advanced-workflow.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"API易文档中心\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"고급 이미지 생성: 워크플로 및 사실감 - API易文档中心\">\u003cmeta data-mint-head property=\"og:description\" content=\"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"API易文档中心\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://apiyillc.mintlify.site/_mintlify/api/og/v2?division=%EC%9D%B4%EB%AF%B8%EC%A7%80+API+%ED%95%B5%EC%8B%AC\u0026amp;title=%EA%B3%A0%EA%B8%89+%EC%9D%B4%EB%AF%B8%EC%A7%80+%EC%83%9D%EC%84%B1%3A+%EC%9B%8C%ED%81%AC%ED%94%8C%EB%A1%9C+%EB%B0%8F+%EC%82%AC%EC%8B%A4%EA%B0%90\u0026amp;description=%EB%8F%99%EC%9D%BC%ED%95%9C+%EB%AA%A8%EB%8D%B8%2C+%EB%8D%94+%EB%82%98%EC%9D%80+%EA%B2%B0%EA%B3%BC%EB%AC%BC%3A+%EC%86%8C%EB%B9%84%EC%9E%90%EC%9A%A9+%EC%9D%B4%EB%AF%B8%EC%A7%80+%EC%95%B1%EC%9D%B4+API+%EC%9C%84%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94+%EA%B8%B0%EB%8A%A5%EC%9D%84+%EC%82%B4%ED%8E%B4%EB%B4%85%EB%8B%88%EB%8B%A4+%E2%80%94+%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8+%EC%9E%AC%EC%9E%91%EC%84%B1+%EB%A0%88%EC%9D%B4%EC%96%B4%2C+%EC%B0%B8%EC%A1%B0+%EC%95%B5%EC%BB%A4%EB%A7%81%2C+%EB%B9%84%EC%A0%84+%EB%AA%A8%EB%8D%B8+%EC%84%A0%ED%83%9D%EC%9D%84+%ED%99%9C%EC%9A%A9%ED%95%9C+%EB%B3%91%EB%A0%AC+%EC%83%98%ED%94%8C%EB%A7%81%2C+%EB%8B%A8%EA%B3%84%EB%B3%84+%EB%A6%AC%ED%84%B0%EC%B9%AD%EC%9E%85%EB%8B%88%EB%8B%A4.+%EB%B3%B5%EC%82%AC%ED%95%B4+%EB%B6%99%EC%97%AC+%EB%84%A3%EC%9D%84+%EC%88%98+%EC%9E%88%EB%8A%94+%EC%82%AC%EC%8B%A4%EA%B0%90+%EC%96%B4%ED%9C%98%2C+%EB%82%98%EB%9E%80%ED%9E%88+%EB%B9%84%EA%B5%90%ED%95%98%EB%8A%94+%ED%85%8C%EC%8A%A4%ED%8A%B8%2C+%EB%B9%84%EC%9A%A9+%EA%B3%84%EC%82%B0%EC%9D%84+%ED%8F%AC%ED%95%A8%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=84509e4a5d1cb12fd162de92\u0026amp;signature=df3a05db3cf2918dbfac095affd0e0e307efd86116e06319281099db916ed4a0\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"고급 이미지 생성: 워크플로 및 사실감 - API易文档中心\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://apiyillc.mintlify.site/_mintlify/api/og/v2?division=%EC%9D%B4%EB%AF%B8%EC%A7%80+API+%ED%95%B5%EC%8B%AC\u0026amp;title=%EA%B3%A0%EA%B8%89+%EC%9D%B4%EB%AF%B8%EC%A7%80+%EC%83%9D%EC%84%B1%3A+%EC%9B%8C%ED%81%AC%ED%94%8C%EB%A1%9C+%EB%B0%8F+%EC%82%AC%EC%8B%A4%EA%B0%90\u0026amp;description=%EB%8F%99%EC%9D%BC%ED%95%9C+%EB%AA%A8%EB%8D%B8%2C+%EB%8D%94+%EB%82%98%EC%9D%80+%EA%B2%B0%EA%B3%BC%EB%AC%BC%3A+%EC%86%8C%EB%B9%84%EC%9E%90%EC%9A%A9+%EC%9D%B4%EB%AF%B8%EC%A7%80+%EC%95%B1%EC%9D%B4+API+%EC%9C%84%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94+%EA%B8%B0%EB%8A%A5%EC%9D%84+%EC%82%B4%ED%8E%B4%EB%B4%85%EB%8B%88%EB%8B%A4+%E2%80%94+%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8+%EC%9E%AC%EC%9E%91%EC%84%B1+%EB%A0%88%EC%9D%B4%EC%96%B4%2C+%EC%B0%B8%EC%A1%B0+%EC%95%B5%EC%BB%A4%EB%A7%81%2C+%EB%B9%84%EC%A0%84+%EB%AA%A8%EB%8D%B8+%EC%84%A0%ED%83%9D%EC%9D%84+%ED%99%9C%EC%9A%A9%ED%95%9C+%EB%B3%91%EB%A0%AC+%EC%83%98%ED%94%8C%EB%A7%81%2C+%EB%8B%A8%EA%B3%84%EB%B3%84+%EB%A6%AC%ED%84%B0%EC%B9%AD%EC%9E%85%EB%8B%88%EB%8B%A4.+%EB%B3%B5%EC%82%AC%ED%95%B4+%EB%B6%99%EC%97%AC+%EB%84%A3%EC%9D%84+%EC%88%98+%EC%9E%88%EB%8A%94+%EC%82%AC%EC%8B%A4%EA%B0%90+%EC%96%B4%ED%9C%98%2C+%EB%82%98%EB%9E%80%ED%9E%88+%EB%B9%84%EA%B5%90%ED%95%98%EB%8A%94+%ED%85%8C%EC%8A%A4%ED%8A%B8%2C+%EB%B9%84%EC%9A%A9+%EA%B3%84%EC%82%B0%EC%9D%84+%ED%8F%AC%ED%95%A8%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=84509e4a5d1cb12fd162de92\u0026amp;signature=df3a05db3cf2918dbfac095affd0e0e307efd86116e06319281099db916ed4a0\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"API易文档中心\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563eb\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ko/api-capabilities/image-advanced-workflow.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.apiyi.com/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.apiyi.com/en/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://docs.apiyi.com/zh-Hant/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.apiyi.com/ja/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.apiyi.com/ru/api-capabilities/image-advanced-workflow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.apiyi.com/api-capabilities/image-advanced-workflow\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.apiyi.com/#organization\",\"name\":\"API易文档中心\",\"url\":\"https://docs.apiyi.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/apiyillc/LjCT1O0GrSur6F2v/logo/light.svg?fit=max\u0026auto=format\u0026n=LjCT1O0GrSur6F2v\u0026q=85\u0026s=4119ef17a74cc54be127f34578d8b5fa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.apiyi.com#website\",\"name\":\"API易文档中心\",\"url\":\"https://docs.apiyi.com\",\"publisher\":{\"@id\":\"https://docs.apiyi.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow#webpage\",\"url\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow\",\"name\":\"고급 이미지 생성: 워크플로 및 사실감\",\"description\":\"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.\",\"dateModified\":\"2026-11-09T08:49:14.734Z\",\"isPartOf\":{\"@id\":\"https://docs.apiyi.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"이미지 API (공식)\",\"item\":\"https://docs.apiyi.com/ko/api-capabilities/image-api-best-practices\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"이미지 API 핵심\",\"item\":\"https://docs.apiyi.com/ko/api-capabilities/image-api-best-practices\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"고급 이미지 생성: 워크플로 및 사실감\",\"item\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow#article\",\"headline\":\"고급 이미지 생성: 워크플로 및 사실감\",\"name\":\"고급 이미지 생성: 워크플로 및 사실감\",\"description\":\"동일한 모델, 더 나은 결과물: 소비자용 이미지 앱이 API 위에 추가하는 기능을 살펴봅니다 — 프롬프트 재작성 레이어, 참조 앵커링, 비전 모델 선택을 활용한 병렬 샘플링, 단계별 리터칭입니다. 복사해 붙여 넣을 수 있는 사실감 어휘, 나란히 비교하는 테스트, 비용 계산을 포함합니다.\",\"url\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apiyi.com/ko/api-capabilities/image-advanced-workflow#webpage\"},\"dateModified\":\"2026-11-09T08:49:14.734Z\",\"publisher\":{\"@id\":\"https://docs.apiyi.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.apiyi.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"API易文档中心\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"API易文档中心\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/ko/api-capabilities/image-advanced-workflow.md","siteName":"API易文档中心","nav":{"global":{"anchors":[]},"languages":[{"language":"zh","pages":[{"title":"zh","href":"/api-capabilities/image-advanced-workflow"}]},{"language":"en","navbar":{"links":[{"href":"https://api.apiyi.com","label":"Home"},{"href":"https://imagen.apiyi.com","label":"AI Image"},{"href":"https://icover.ai","label":"AI Video"}],"primary":{"type":"button","label":"Console","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"en","href":"/en/api-capabilities/image-advanced-workflow"}]},{"language":"zh-Hant","banner":{"content":"本頁由程式自動轉換為繁體中文,用詞以台灣正體為準;如有歧義請以[簡體中文版](/)為準。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 整合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 開發者套件(中文)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"使用者口碑 / Wall of Love","items":[{"label":"使用者口碑(中文)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"首頁"},{"href":"https://imagen.apiyi.com","label":"AI出圖"},{"href":"https://icover.ai","label":"AI影片"}],"primary":{"type":"button","label":"控制台","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"zh-Hant","href":"/zh-Hant/api-capabilities/image-advanced-workflow"}]},{"language":"ja","banner":{"content":"このページは AI により翻訳されています。内容に相違がある場合は[English 版](/en)を正としてください。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI統合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI開発者キット(中国語)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"ユーザーの声 / Wall of Love","items":[{"label":"ユーザーの声(中国語)","href":"/wall-of-love"},{"label":"Wall of Love(英語)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"ホーム"},{"href":"https://imagen.apiyi.com","label":"AI画像生成"},{"href":"https://icover.ai","label":"AI動画生成"}],"primary":{"type":"button","label":"コンソール","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"ja","href":"/ja/api-capabilities/image-advanced-workflow"}]},{"language":"ko","banner":{"content":"이 페이지는 AI로 번역되었습니다. 내용이 다를 경우 [English 버전](/en)을 기준으로 하십시오.","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 통합","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 개발자 키트(중국어)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"사용자 후기 / Wall of Love","items":[{"label":"사용자 후기(중국어)","href":"/wall-of-love"},{"label":"Wall of Love (영문)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"홈"},{"href":"https://imagen.apiyi.com","label":"AI 이미지 생성"},{"href":"https://icover.ai","label":"AI 동영상 생성"}],"primary":{"type":"button","label":"콘솔","href":"https://api.apiyi.com/account/profile"}},"tabs":[{"tab":"홈","icon":"house","groups":[{"group":"기초","pages":[{"title":"APIYI - AI 모델 API 허브","sidebarTitle":"소개","icon":"house","href":"/ko"},{"title":"빠른 시작","icon":"rocket","href":"/ko/getting-started"},{"group":"AI 개발자 키트","icon":"terminal","pages":[{"title":"AI 개발 키트","sidebarTitle":"AI 개발 키트","icon":"bot","href":"/ko/developer-kit"},{"title":"터미널에 apiyi 명령을 찾을 수 없다고 표시되는 이유","icon":"terminal","href":"/ko/faq/apiyi-cli-command-not-found"}]},{"group":"API 매뉴얼","icon":"book","pages":[{"title":"API 매뉴얼","sidebarTitle":"매뉴얼 개요","icon":"book","href":"/ko/api-manual"},{"title":"API 오류 세부 정보 캡처","sidebarTitle":"오류 캡처","icon":"clipboard-list","href":"/ko/api-manual/error-reporting"},{"group":"API 연동 자주 묻는 질문","icon":"circle-question-mark","expanded":false,"pages":[{"title":"APIYI는 파일 API를 지원하나요?","icon":"file-up","href":"/ko/faq/files-api-not-supported"},{"title":"기본 URL을 구성하는 방법은 무엇입니까? /v1, 루트 도메인 및 /v1beta의 차이","icon":"link","href":"/ko/faq/base-url-config"},{"title":"모델 API 오류는 어떻게 해결하나요?","icon":"alert-triangle","href":"/ko/faq/model-error-troubleshooting"},{"title":"API 동시 실행 수 제한은 무엇입니까?","icon":"gauge","href":"/ko/faq/api-concurrency"}]}]},{"title":"가격 책정","icon":"badge-dollar-sign","href":"/ko/pricing"}]},{"group":"기본 API","icon":"box","pages":[{"group":"인기 모델","icon":"cpu","root":{"title":"인기 모델 추천 - APIYI, 항상 최신 정보","sidebarTitle":"인기 모델","icon":"database","href":"/ko/api-capabilities/model-info"},"pages":[{"group":"모델 자주 묻는 질문","icon":"circle-question-mark","expanded":false,"pages":[{"title":"적합한 AI 모델을 선택하는 방법은 무엇입니까?","icon":"compass","href":"/ko/faq/model-selection-guide"},{"title":"공식 웹 앱과 API는 왜 서로 다른 결과를 제공합니까?","icon":"layers","href":"/ko/faq/webapp-vs-api-difference"},{"title":"AI 모델은 왜 자신의 버전을 알지 못하나요?","icon":"circle-question-mark","href":"/ko/faq/model-version-identity"}]}]},{"title":"이미지 및 동영상 생성 모델","icon":"palette","href":"/ko/api-capabilities/image-video-models"},{"group":"OpenAI API 호출","icon":"sparkles","pages":[{"title":"OpenAI Responses API 네이티브 가이드","sidebarTitle":"네이티브 호출","icon":"zap","href":"/ko/api-capabilities/openai/native"},{"title":"OpenAI 채팅 완성 호환 모드","sidebarTitle":"호환 모드","icon":"plug","href":"/ko/api-capabilities/openai/compatible"},{"title":"엔드포인트 선택: GPT-5.4+를 Responses로 마이그레이션하기","sidebarTitle":"엔드포인트 및 마이그레이션","icon":"route","href":"/ko/api-capabilities/openai/responses-migration"},{"title":"OpenAI 호환 모드: 응답 처리","sidebarTitle":"응답 처리","icon":"braces","href":"/ko/api-capabilities/openai/response-handling"},{"title":"OpenAI 호환 모드: 추론 모델 출력","sidebarTitle":"추론 모델 출력","icon":"brain","href":"/ko/api-capabilities/openai/reasoning-models"},{"title":"OpenAI 프롬프트 캐싱 과금 가이드","sidebarTitle":"캐시 과금","icon":"database","href":"/ko/api-capabilities/openai/prompt-caching"},{"title":"OpenAI 함수 호출 가이드","sidebarTitle":"함수 호출","icon":"wrench","href":"/ko/api-capabilities/openai/function-calling"},{"title":"OpenAI API 웹 검색 가이드","sidebarTitle":"웹 검색","icon":"globe","href":"/ko/api-capabilities/openai/web-search"},{"group":"OpenAI 자주 묻는 질문","icon":"circle-question-mark","pages":[{"title":"APIYI는 OpenAI 빠른 모드/초고속 모드를 지원합니까?","icon":"gauge","href":"/ko/faq/openai-service-tier-fast-mode"},{"title":"콘텐츠가 필터링될 때 스트리밍 요청과 비스트리밍 요청은 어떻게 다릅니까?","sidebarTitle":"스트리밍 및 콘텐츠 필터링","icon":"shield-half","href":"/ko/faq/streaming-content-filter"},{"title":"OpenAI 모델의 요청 거부는 어떤 형태로 나타납니까?","icon":"message-square-x","href":"/ko/faq/openai-content-safety-refusal"}]}]},{"group":"Claude 공식","icon":"sparkles","pages":[{"title":"Claude API 호출 기초","sidebarTitle":"Claude API 기초","icon":"sparkles","href":"/ko/api-capabilities/claude"},{"title":"Claude 네이티브 형식: 스트리밍 및 비스트리밍 응답","sidebarTitle":"스트리밍 및 응답","icon":"braces","href":"/ko/api-capabilities/claude-response-handling"},{"title":"Claude 프롬프트 캐싱 가이드","sidebarTitle":"프롬프트 캐싱","icon":"database","href":"/ko/api-capabilities/claude-prompt-caching"},{"title":"Claude 노력 및 사고 가이드","sidebarTitle":"Claude 사고 가이드","icon":"gauge","href":"/ko/api-capabilities/claude-effort-thinking"},{"title":"Claude API 웹 검색 가이드","sidebarTitle":"Claude 웹 검색","icon":"globe","href":"/ko/api-capabilities/claude-web-search"},{"group":"Claude 자주 묻는 질문","icon":"circle-question-mark","pages":[{"title":"Claude가 Qwen 또는 DeepSeek이라고 주장하는 이유는 무엇입니까?","icon":"venetian-mask","href":"/ko/faq/claude-identity-confusion"},{"title":"Claude의 잘못된 추론 서명 오류를 어떻게 해결합니까?","icon":"file-signature","href":"/ko/faq/claude-thinking-signature-invalid"},{"title":"Claude의 거부 응답에 콘텐츠가 비어 있는 이유는 무엇입니까?","icon":"message-square-x","href":"/ko/faq/claude-content-safety-refusal"}]}]},{"group":"Gemini 네이티브 호출","icon":"sparkles","pages":[{"title":"Gemini 네이티브 형식 가이드","sidebarTitle":"네이티브 호출","icon":"zap","href":"/ko/api-capabilities/gemini/native"},{"title":"Interactions API와 generateContent 비교","sidebarTitle":"Interactions API 비교","icon":"git-compare","href":"/ko/api-capabilities/gemini/interactions-api"},{"title":"Gemini 네이티브 형식: 스트리밍 및 비스트리밍 응답","sidebarTitle":"스트리밍 및 응답","icon":"braces","href":"/ko/api-capabilities/gemini/response-handling"},{"title":"Gemini 멀티모달 입력 및 코드 실행","sidebarTitle":"멀티모달 및 코드 실행","icon":"images","href":"/ko/api-capabilities/gemini/multimodal"},{"title":"Gemini 암시적 캐싱 과금 가이드","sidebarTitle":"캐시 과금","icon":"database","href":"/ko/api-capabilities/gemini/prompt-caching"},{"title":"Gemini 함수 호출 가이드","sidebarTitle":"함수 호출","icon":"wrench","href":"/ko/api-capabilities/gemini/function-calling"},{"title":"Gemini API 웹 검색 안내서","sidebarTitle":"웹 검색","icon":"globe","href":"/ko/api-capabilities/gemini/web-search"},{"title":"도구 호출에서 Gemini thought_signature 400 오류를 어떻게 해결합니까?","icon":"file-signature","href":"/ko/faq/gemini-thought-signature-missing"}]},{"group":"Grok API 호출","icon":"sparkles","pages":[{"title":"Grok 모델 시리즈 가이드","sidebarTitle":"Grok 개요","icon":"rocket","href":"/ko/api-capabilities/grok/overview"},{"title":"Grok 채팅 및 추론 가이드","sidebarTitle":"채팅 및 추론","icon":"message-square","href":"/ko/api-capabilities/grok/chat"},{"title":"Grok 웹 검색 및 X 검색 가이드","sidebarTitle":"웹 및 X 검색","icon":"globe","href":"/ko/api-capabilities/grok/web-search"},{"title":"Grok 코드 실행 및 원격 MCP 가이드","sidebarTitle":"코드 실행 및 MCP","icon":"terminal","href":"/ko/api-capabilities/grok/code-execution-mcp"},{"title":"Grok 멀티 에이전트 모델 가이드","sidebarTitle":"멀티 에이전트 모델","icon":"users","href":"/ko/api-capabilities/grok/multi-agent"},{"title":"Grok 프롬프트 캐싱 과금 가이드","sidebarTitle":"캐시 과금","icon":"database","href":"/ko/api-capabilities/grok/prompt-caching"}]},{"group":"텍스트 API 모범 사례","icon":"book-check","pages":[{"title":"장문 출력 실무","sidebarTitle":"장문 출력","icon":"book-check","href":"/ko/api-capabilities/long-form-output-practices"},{"title":"멀티턴 대화 가이드","sidebarTitle":"멀티턴 대화","icon":"messages-square","href":"/ko/api-capabilities/multi-turn-conversation"},{"group":"텍스트 자주 묻는 질문","icon":"circle-question-mark","expanded":false,"pages":[{"title":"추론 모델이 빈 콘텐츠를 반환하는 이유는 무엇입니까?","icon":"alert-circle","href":"/ko/faq/reasoning-model-empty-response"},{"title":"스트리밍 호출과 비스트리밍 호출의 차이는 무엇입니까?","sidebarTitle":"스트리밍과 비스트리밍","icon":"audio-lines","href":"/ko/faq/streaming-vs-non-streaming"},{"title":"max_tokens란 무엇입니까? 설정하지 않으면 어떻게 됩니까?","icon":"sliders-horizontal","href":"/ko/faq/max-tokens"},{"title":"API에 ChatGPT와 같은 메모리가 있습니까?","icon":"brain","href":"/ko/faq/api-memory"}]}]},{"title":"잔액 조회 API","icon":"wallet","href":"/ko/api-capabilities/balance-query"},{"title":"로그 조회 API","icon":"file-text","href":"/ko/api-capabilities/log-query"},{"title":"토큰 관리 API","icon":"key","href":"/ko/api-capabilities/token-management"},{"title":"사용 중단 예정 모델","icon":"triangle-alert","href":"/ko/api-capabilities/deprecated-models"}]},{"group":"이미지 API (공식)","icon":"image","pages":[{"group":"이미지 API 핵심","icon":"book-check","pages":[{"title":"이미지 API 필수 사항 및 모범 사례","sidebarTitle":"필독 사항 및 모범 사례","icon":"book-check","href":"/ko/api-capabilities/image-api-best-practices"},{"title":"이미지 API 연결 끊김 문제 해결","sidebarTitle":"연결 끊김","icon":"unplug","href":"/ko/api-capabilities/image-connection-drops"},{"title":"데이터가 도착한 후 멈추는 이미지 요청","sidebarTitle":"마지막 단계에서 멈추는 요청","icon":"hourglass","href":"/ko/api-capabilities/image-tail-stall"},{"title":"이미지 압축 및 출력 해상도","sidebarTitle":"압축 및 해상도","icon":"scaling","href":"/ko/api-capabilities/image-compression-resolution"},{"title":"만족스러운 이미지를 얻는 방법","sidebarTitle":"만족스러운 이미지 얻기","icon":"target","href":"/ko/api-capabilities/image-generation-success-tips"},{"title":"안전성 거부 문제 해결: 제거 실험으로 트리거 단어 찾기","sidebarTitle":"안전성 거부","icon":"shield-alert","href":"/ko/api-capabilities/image-safety-troubleshooting"},{"title":"긴 프롬프트와 2단계 생성: 32K 제한은 어디에서 비롯되는가","sidebarTitle":"긴 프롬프트","description":"한 고객이 ChatGPT에는 이러한 제한이 없는데 왜 당사의 prompt가 32K로 제한되는지 문의했습니다. 문서에는 32,000자로 기재되어 있지만 실제로 적용되는 제한은 8,192 token이며, 이를 초과하면 오류 없이 전체 prompt가 조용히 삭제됩니다. 웹 앱이 긴 자료를 처리할 수 있는 이유는 chat 모델이 먼저 이를 요약하기 때문입니다. 제한, 비용, 더 길다고 해서 지시 준수력이 더 좋아지는 것은 아닌 이유, 그리고 자료를 텍스트 모델에 입력하고 prompt를 이미지 모델에 입력하는 2단계 파이프라인을 다룹니다.","icon":"text-quote","href":"/ko/api-capabilities/image-long-prompt"},{"title":"고급 이미지 생성: 워크플로 및 사실감","sidebarTitle":"고급 워크플로","icon":"workflow","href":"/ko/api-capabilities/image-advanced-workflow"},{"title":"이미지 prompt 닥터 스킬","sidebarTitle":"prompt 닥터 스킬","description":"사전 생성 prompt 검토를 Codex, OpenClaw, hermes-agent, Claude Code 및 기타 도구에서 즉시 사용할 수 있는 에이전트 스킬로 패키징합니다. prompt를 6가지 요소에 따라 평가하고, 품질을 저해하는 모호한 단어를 표시하며, 그대로 사용할 수 있도록 다시 작성한 prompt를 제공합니다. 또한 실제 결과를 해당 결과를 생성한 prompt와 비교하여 검토할 수도 있습니다. 기본값은 gpt-5.6-luna입니다.","icon":"stethoscope","href":"/ko/api-capabilities/image-prompt-doctor"},{"group":"이미지 자주 묻는 질문","icon":"circle-question-mark","pages":[{"title":"이미지가 생성된 후 거부될 수 있습니까?","sidebarTitle":"출력 이미지 검토","icon":"shield-alert","href":"/ko/faq/image-output-safety-review"},{"title":"텍스트와 생성 이미지를 모두 출력하는 대화형 API가 있습니까?","sidebarTitle":"하나의 API로 텍스트 + 이미지","icon":"images","href":"/ko/faq/text-and-image-in-one-api"},{"title":"이미지 요청이 결과 없이 멈추지만 로그에는 쓰기 실패가 표시됩니까?","icon":"hourglass","href":"/ko/faq/image-direct-large-response-stall"},{"title":"프록시 뒤에서 약 90초 후 이미지 호출이 끊기나요?","icon":"unplug","href":"/ko/faq/proxy-idle-timeout-disconnect"},{"title":"생성된 이미지가 참조 이미지와 크게 다른 이유는 무엇인가요?","icon":"image","href":"/ko/faq/image-result-differs-from-reference"},{"title":"이미지 콘텐츠가 MIME 유형과 일치하지 않음 오류를 해결하는 방법은 무엇인가요?","icon":"image","href":"/ko/faq/image-mime-type-mismatch-with-query"},{"title":"비동기 이미지 API가 있습니까? 작업 ID로 결과를 조회할 수 있습니까?","icon":"image","href":"/ko/faq/image-async-api"}]}]},{"group":"GPT-Image-2.6 / 2.5 / 2 이미지 생성","icon":"sparkles","pages":[{"title":"GPT-Image-2.6 / 2.5 / 2 이미지 생성/편집","sidebarTitle":"GPT-Image-2.6 / 2.5 / 2 개요","icon":"sparkles","href":"/ko/api-capabilities/gpt-image-2/overview"},{"title":"GPT Image 2.6 새로운 기능","sidebarTitle":"GPT Image 2.6 기능","openapi":"api-reference/gpt-image-2-6-generate-openapi-en.yaml POST /v1/images/generations","icon":"sparkles","href":"/ko/api-capabilities/gpt-image-2/gpt-image-2-6"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/gpt-image-2-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/gpt-image-2/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/gpt-image-2-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/ko/api-capabilities/gpt-image-2/image-edit"},{"title":"GPT-Image-2.6 / 2.5 / 2 시리즈 에이전트 스킬","sidebarTitle":"GPT-Image 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/gpt-image-2/skills"},{"title":"마스크 인페인팅 가이드","sidebarTitle":"마스크 인페인팅","icon":"brush","href":"/ko/api-capabilities/gpt-image-2/mask-editing"},{"title":"GPT-이미지 레거시 버전","sidebarTitle":"GPT-이미지 레거시","icon":"rotate-ccw-clock","href":"/ko/api-capabilities/gpt-image-2/historical-versions"},{"group":"GPT-Image 자주 묻는 질문","icon":"circle-question-mark","expanded":false,"pages":[{"title":"GPT Image 2.6 공식 릴레이: 유효하지 않은 출력 형식과 배경 조합은 무엇입니까?","icon":"swatch-book","href":"/ko/faq/gpt-image-output-format-background"},{"title":"SVG 생성에 사용할 수 있는 reasoning effort 값은 무엇입니까?","icon":"sliders-horizontal","href":"/ko/faq/gpt-image-svg-reasoning-effort"},{"title":"투명한 배경의 이미지(PNG 누끼)는 어떻게 생성합니까?","icon":"layers","href":"/ko/faq/image-transparent-background"},{"title":"GPT Image 출력 token이 왜 이렇게 높은가요?","icon":"calculator","href":"/ko/faq/gpt-image-output-token-calculation"},{"title":"잘못된 API 키로 인해 GPT-Image용 Codex 통합 실패","sidebarTitle":"OpenAI에서 이미지 키 거부","icon":"key-round","href":"/ko/faq/gpt-image-incorrect-api-key-openai"}]}]},{"title":"GPT-image-2.5 / 2 공식 모델과 리버스 모델 비교","sidebarTitle":"GPT-image-2.5 / 2 공식 모델과 리버스 모델 비교","icon":"scale","href":"/ko/api-capabilities/gpt-image-2/vs-gpt-image-2-all"},{"title":"GPT-Image-2.6 공식 릴레이와 리버스 비교","sidebarTitle":"GPT-Image-2.6 공식 릴레이와 리버스 비교","icon":"scale","href":"/ko/api-capabilities/gpt-image-2/vs-gpt-image-2-6-all"},{"group":"GPT-Image-2.6-All 이미지 생성","icon":"sparkles","pages":[{"title":"GPT-Image-2.6-All 이미지 생성 및 편집","sidebarTitle":"GPT-Image-2.6-All 개요","icon":"sparkles","href":"/ko/api-capabilities/gpt-image-2-all/gpt-image-2-6-all"},{"title":"GPT-Image-2.5-All 이미지 생성/편집","sidebarTitle":"GPT-Image-2.5-All 개요","icon":"sparkles","href":"/ko/api-capabilities/gpt-image-2-all/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/gpt-image-2-all-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/gpt-image-2-all/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/gpt-image-2-all-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/ko/api-capabilities/gpt-image-2-all/image-edit"},{"title":"GPT-Image-2.5 / 2.6-All 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/gpt-image-2-all/skills"}]},{"group":"GPT-Image-2.5-VIP 이미지 생성","icon":"expand","pages":[{"title":"GPT-Image-2.5-VIP 이미지 생성/편집","sidebarTitle":"GPT-Image-2.5-VIP 개요","icon":"expand","href":"/ko/api-capabilities/gpt-image-2-vip/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/gpt-image-2-vip-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/gpt-image-2-vip/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/gpt-image-2-vip-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/ko/api-capabilities/gpt-image-2-vip/image-edit"},{"title":"GPT-Image-2.5-VIP 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/gpt-image-2-vip/skills"}]},{"title":"Nano Banana 시리즈 요금","icon":"tag","href":"/ko/api-capabilities/nano-banana-pricing"},{"group":"NanoBanana 모범 사례","icon":"lightbulb","pages":[{"title":"Nano Banana 시리즈 개발자 가이드","icon":"compass","href":"/ko/api-capabilities/nano-banana-dev-guide"},{"title":"사용량 필드 및 출력 설명","sidebarTitle":"사용량 필드 및 출력 설명","icon":"receipt-text","href":"/ko/api-capabilities/nano-banana-usage-metadata"},{"title":"Gemini 이미지 생성 API 오류 처리 가이드","icon":"triangle-alert","href":"/ko/api-capabilities/gemini-image-error-handling"},{"title":"다중 이미지 융합 테스트 가이드","sidebarTitle":"다중 이미지 융합 테스트","icon":"layers","href":"/ko/api-capabilities/multi-image-fusion-testing"},{"title":"Nano Banana Pro 생성 실패 크레딧 환급 플랜","icon":"shield-check","href":"/ko/api-capabilities/nano-banana-pro-guarantee"},{"title":"Nano Banana OSS 그룹","icon":"link","href":"/ko/api-capabilities/nano-banana-oss-group"},{"group":"NB 자주 묻는 질문","icon":"circle-question-mark","pages":[{"title":"Google 모델은 AI Studio에서 실행됩니까, 아니면 Vertex에서 실행됩니까?","icon":"split","href":"/ko/faq/google-upstream-aistudio-vertex"},{"title":"이미지 편집에서 입력 이미지를 처리할 수 없다고 반환됩니까?","icon":"image-off","href":"/ko/faq/gemini-empty-inlinedata"},{"title":"Gemini 이미지가 IMAGE_OTHER를 반환하는 이유는 무엇입니까?","sidebarTitle":"IMAGE_OTHER","icon":"image-minus","href":"/ko/faq/gemini-image-other"},{"title":"Gemini 이미지에서 blockReason: OTHER가 반환되는 이유는 무엇인가요?","sidebarTitle":"blockReason: OTHER","icon":"shield-alert","href":"/ko/faq/gemini-image-input-blocked"},{"title":"Nano Banana 이미지 생성 실패의 일반적인 원인","icon":"image-off","href":"/ko/faq/nano-banana-image-failure"},{"title":"Gemini 이미지 API가 NO_IMAGE를 반환하는 이유는 무엇인가요?","icon":"image-off","href":"/ko/faq/gemini-no-image"},{"title":"Nano Banana Pro로 편집한 후 이미지가 붉게 변하는 이유는 무엇인가요?","icon":"image","href":"/ko/faq/banana-pro-edit-red-cast"},{"title":"Nano Banana Pro로 의상을 변경할 때 왜곡된 결과물을 수정하는 방법은 무엇입니까?","icon":"shirt","href":"/ko/faq/nano-banana-pro-print-distortion"},{"title":"흰색 배경 이미지에 검은 점, 얼룩 또는 흐릿한 색상 블록이 나타나는 이유는 무엇입니까?","icon":"triangle-alert","href":"/ko/faq/white-background-image-artifacts"}]}]},{"group":"Nano Banana 2.1 이미지 생성","icon":"banana","pages":[{"title":"Nano Banana 2.1 이미지 생성/편집","icon":"banana","href":"/ko/api-capabilities/gemini-nano-banana-2.1/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/gemini-nano-banana-2.1-generate-openapi-en.yaml POST /v1beta/models/gemini-nano-banana-2.1:generateContent","icon":"wand-sparkles","href":"/ko/api-capabilities/gemini-nano-banana-2.1/text-to-image"},{"title":"이미지 편집 API 참조","openapi":"api-reference/gemini-nano-banana-2.1-edit-openapi-en.yaml POST /v1beta/models/gemini-nano-banana-2.1:generateContent","icon":"image","href":"/ko/api-capabilities/gemini-nano-banana-2.1/image-edit"},{"title":"Nano Banana 2.1 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/gemini-nano-banana-2.1/skills"}]},{"group":"Nano Banana Pro 이미지 생성","icon":"banana","pages":[{"title":"Nano Banana Pro 이미지 생성","icon":"banana","href":"/ko/api-capabilities/nano-banana-image/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/nano-banana-pro-generate-openapi-en.yaml POST /v1beta/models/gemini-3-pro-image:generateContent","icon":"wand-sparkles","href":"/ko/api-capabilities/nano-banana-image/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/nano-banana-pro-edit-openapi-en.yaml POST /v1beta/models/gemini-3-pro-image:generateContent","icon":"image","href":"/ko/api-capabilities/nano-banana-image/image-edit"},{"title":"Nano Banana Pro 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/nano-banana-image/skills"}]},{"group":"Nano Banana 2 이미지 생성","icon":"banana","pages":[{"title":"Nano Banana 2 이미지 생성/편집","icon":"banana","href":"/ko/api-capabilities/nano-banana-2-image/overview"},{"title":"텍스트-이미지 API 참조","openapi":"api-reference/nano-banana-2-generate-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-image:generateContent","icon":"wand-sparkles","href":"/ko/api-capabilities/nano-banana-2-image/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/nano-banana-2-edit-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-image:generateContent","icon":"image","href":"/ko/api-capabilities/nano-banana-2-image/image-edit"},{"title":"Nano Banana 2 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/nano-banana-2-image/skills"}]},{"group":"Nano Banana Lite 이미지 생성","icon":"banana","pages":[{"title":"Nano Banana Lite 이미지 생성/편집","icon":"banana","href":"/ko/api-capabilities/nano-banana-lite-image/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/nano-banana-lite-generate-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-lite-image:generateContent","icon":"wand-sparkles","href":"/ko/api-capabilities/nano-banana-lite-image/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/nano-banana-lite-edit-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-lite-image:generateContent","icon":"image","href":"/ko/api-capabilities/nano-banana-lite-image/image-edit"},{"title":"Nano Banana Lite 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/nano-banana-lite-image/skills"}]},{"group":"FLUX 이미지 생성 및 편집","icon":"sparkles","pages":[{"title":"FLUX 이미지 생성 및 편집","sidebarTitle":"FLUX 개요","icon":"sparkles","href":"/ko/api-capabilities/flux/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/flux-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/flux/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/flux-edit-openapi-en.yaml POST /v1/images/generations","icon":"image","href":"/ko/api-capabilities/flux/image-edit"},{"title":"FLUX 이전 버전","sidebarTitle":"이전 버전","icon":"rotate-ccw-clock","href":"/ko/api-capabilities/flux/historical-versions"}]},{"group":"Seedream 5.0 시리즈","icon":"sparkles","pages":[{"title":"Seedream 이미지 생성 및 편집","sidebarTitle":"Seedream 개요","icon":"sparkles","href":"/ko/api-capabilities/seedream-image/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/seedream-image-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/seedream-image/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/seedream-image-edit-openapi-en.yaml POST /v1/images/generations","icon":"image","href":"/ko/api-capabilities/seedream-image/image-edit"},{"title":"Seedream 이전 버전","sidebarTitle":"이전 버전","icon":"rotate-ccw-clock","href":"/ko/api-capabilities/seedream-image/historical-versions"}]},{"group":"Grok Imagine 공식 이미지 생성","icon":"sparkles","pages":[{"title":"Grok Imagine 공식 이미지 생성","sidebarTitle":"Grok Imagine 공식 개요","icon":"sparkles","href":"/ko/api-capabilities/grok-imagine-image-official/overview"},{"title":"Grok Imagine 공식 텍스트-이미지 API 레퍼런스","sidebarTitle":"텍스트-이미지","openapi":"api-reference/grok-imagine-image-official-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/grok-imagine-image-official/text-to-image"}]},{"group":"Grok Imagine 리버스 이미지 생성 및 편집","icon":"sparkles","pages":[{"title":"Grok Imagine 역방향 이미지 생성 및 편집","sidebarTitle":"Grok Imagine 역방향 개요","icon":"sparkles","href":"/ko/api-capabilities/grok-imagine-image/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/grok-imagine-image-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/grok-imagine-image/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/grok-imagine-image-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/ko/api-capabilities/grok-imagine-image/image-edit"}]},{"group":"MAI-Image 2.6 이미지 생성 및 편집","icon":"sparkles","pages":[{"title":"MAI-Image 2.6 이미지 생성 및 편집","sidebarTitle":"MAI-Image 2.6 개요","icon":"sparkles","href":"/ko/api-capabilities/mai-image/overview"},{"title":"텍스트-이미지 API 레퍼런스","openapi":"api-reference/mai-image-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/ko/api-capabilities/mai-image/text-to-image"},{"title":"이미지 편집 API 레퍼런스","openapi":"api-reference/mai-image-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/ko/api-capabilities/mai-image/image-edit"}]},{"title":"이미지 API 통합 실습: 자체 비동기 큐 구축","sidebarTitle":"자체 호스팅 비동기 큐","icon":"list-checks","href":"/ko/api-capabilities/image-async-queue"}]},{"group":"동영상 API (공식)","icon":"video","pages":[{"group":"Seedance 2.0 / 2.5 (Volcengine)","icon":"film","pages":[{"title":"Seedance 2.0 / 2.5 동영상 생성","sidebarTitle":"Seedance 2.0 / 2.5 개요","icon":"film","href":"/ko/api-capabilities/seedance2/overview"},{"title":"Seedance 2.0 / 2.5 동영상 생성 API 레퍼런스","sidebarTitle":"동영상 생성","openapi":"api-reference/seedance2-video-openapi-en.yaml POST /seedance/api/v3/contents/generations/tasks","icon":"video","href":"/ko/api-capabilities/seedance2/video-generation"},{"title":"Seedance 2.0 동영상 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/seedance2/skills"},{"title":"Seedance 2.0 에셋 라이브러리 (캐릭터 일관성 동영상)","sidebarTitle":"에셋 라이브러리","icon":"images","href":"/ko/api-capabilities/seedance2/asset-library"},{"title":"코드에서 자산을 참조하는 동영상 생성","sidebarTitle":"자산 참조 가이드","icon":"clapperboard","href":"/ko/api-capabilities/seedance2/asset-reference"},{"title":"에셋 우선: 더 빠르고 안정적인 이미지 및 동영상 입력","sidebarTitle":"에셋 우선 워크플로","icon":"gauge","href":"/ko/api-capabilities/seedance2/asset-first-workflow"},{"group":"SD 자주 묻는 질문","icon":"circle-question-mark","pages":[{"title":"Seedance에서 첫/마지막 프레임은 참조 미디어와 혼합할 수 없음","sidebarTitle":"참조 미디어와 혼합된 첫 프레임","icon":"layers","href":"/ko/faq/seedance-first-frame-mixed-with-reference"},{"title":"Seedance에서 이미지 형식이 잘못되었다고 표시되지만 브라우저에서는 링크가 열립니다","sidebarTitle":"이미지 링크는 열리지만 실패함","icon":"link","href":"/ko/faq/seedance-image-url-invalid-format"},{"title":"Seedance 2.5: 참조-투-비디오와 동영상 편집 비교","icon":"split","href":"/ko/faq/seedance2-reference-vs-edit"},{"title":"제출 후 Seedance 동영상 작업을 취소할 수 있습니까?","icon":"video","href":"/ko/faq/seedance-video-task-cancel"},{"title":"task_id로 Seedance 동영상의 실제 비용을 어떻게 조회합니까?","icon":"receipt","href":"/ko/faq/seedance-task-cost-lookup"},{"title":"Seedance 2.0은 얼굴 참조 이미지를 자산 라이브러리에 자동으로 업로드합니까? 딥페이크 필터가 작동합니까?","icon":"banana","href":"/ko/faq/seedance2-asset-face-reference"},{"title":"Seedance 2.0 / 2.5에서 얼굴 에셋이 차단되는 이유는 무엇인가요?","icon":"scan-face","href":"/ko/faq/seedance2-face-asset-whitelist"}]}]},{"group":"Wan3.0 동영상 생성 (Alibaba)","icon":"video","pages":[{"title":"Wan3.0 동영상 생성 (Alibaba Tongyi Wanxiang)","sidebarTitle":"개요","icon":"video","href":"/ko/api-capabilities/wan3/overview"},{"title":"Wan3.0 동영상 생성 API 레퍼런스","sidebarTitle":"동영상 생성","openapi":"api-reference/wan3-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"wand-sparkles","href":"/ko/api-capabilities/wan3/video-generation"},{"title":"Wan3.0 다운로드 실패: 소스 미디어 URL이 실패하는 이유와 해결 방법","sidebarTitle":"미디어 다운로드 실패","icon":"circle-question-mark","href":"/ko/faq/wan3-media-download-failed"}]},{"group":"Wan2.7 동영상 생성 (Alibaba)","icon":"videotape","pages":[{"title":"Wan 동영상 생성 (알리바바 클라우드 통이 완샹)","sidebarTitle":"Wan 개요","icon":"video","href":"/ko/api-capabilities/wan/overview"},{"title":"Wan2.7 텍스트-동영상 API 레퍼런스","sidebarTitle":"텍스트-동영상","openapi":"api-reference/wan-text-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"wand-sparkles","href":"/ko/api-capabilities/wan/text-to-video"},{"title":"Wan2.7 이미지-동영상 API 레퍼런스","sidebarTitle":"이미지-동영상","openapi":"api-reference/wan-image-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"image","href":"/ko/api-capabilities/wan/image-to-video"},{"title":"Wan2.7 레퍼런스-투-비디오 API 레퍼런스","sidebarTitle":"레퍼런스-투-비디오","openapi":"api-reference/wan-reference-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"users","href":"/ko/api-capabilities/wan/reference-to-video"},{"title":"Wan2.7 동영상 편집 API 레퍼런스","sidebarTitle":"동영상 편집","openapi":"api-reference/wan-video-edit-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"scissors","href":"/ko/api-capabilities/wan/video-edit"},{"title":"Wan2.7 및 HappyHorse 동영상 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/wan/skills"},{"title":"Wan 이전 버전(Wan2.6)","sidebarTitle":"이전 버전","icon":"rotate-ccw-clock","href":"/ko/api-capabilities/wan/historical-versions"}]},{"group":"HappyHorse 동영상 생성 (Alibaba)","icon":"monitor-play","pages":[{"title":"HappyHorse 동영상 생성(알리바바 클라우드)","sidebarTitle":"HappyHorse 개요","icon":"monitor-play","href":"/ko/api-capabilities/happyhorse/overview"},{"title":"HappyHorse 텍스트-동영상 API 레퍼런스","sidebarTitle":"텍스트-동영상","openapi":"api-reference/happyhorse-text-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"wand-sparkles","href":"/ko/api-capabilities/happyhorse/text-to-video"},{"title":"HappyHorse 이미지-동영상 API 레퍼런스","sidebarTitle":"이미지-동영상","openapi":"api-reference/happyhorse-image-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"image","href":"/ko/api-capabilities/happyhorse/image-to-video"},{"title":"HappyHorse 레퍼런스-투-비디오 API 레퍼런스","sidebarTitle":"레퍼런스-투-비디오","openapi":"api-reference/happyhorse-reference-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"users","href":"/ko/api-capabilities/happyhorse/reference-to-video"},{"title":"HappyHorse 동영상 편집 API 레퍼런스","sidebarTitle":"동영상 편집","openapi":"api-reference/happyhorse-video-edit-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"scissors","href":"/ko/api-capabilities/happyhorse/video-edit"},{"title":"HappyHorse 동영상 에이전트 스킬","icon":"blocks","href":"/ko/api-capabilities/happyhorse/skills"}]},{"group":"Grok Imagine 동영상 생성 (xAI)","icon":"camera","pages":[{"title":"Grok Imagine 동영상 생성","sidebarTitle":"Grok Imagine 동영상 개요","icon":"video","href":"/ko/api-capabilities/grok-imagine-video/overview"},{"title":"Grok Imagine 동영상 생성 API 레퍼런스","sidebarTitle":"동영상 생성","openapi":"api-reference/grok-imagine-video-openapi-en.yaml POST /v1/videos","icon":"wand-sparkles","href":"/ko/api-capabilities/grok-imagine-video/video-generation"}]},{"group":"MiniMax H3 동영상 생성 (자체 호스팅)","icon":"film","pages":[{"title":"MiniMax-H3 동영상 생성","sidebarTitle":"MiniMax-H3 개요","icon":"video","href":"/ko/api-capabilities/minimax-h3/overview"},{"title":"MiniMax-H3 동영상 생성 API 레퍼런스","sidebarTitle":"동영상 생성","openapi":"api-reference/minimax-h3-video-openapi-en.yaml POST /hailuo/v2/video_generation","icon":"video","href":"/ko/api-capabilities/minimax-h3/video-generation"}]},{"group":"Oxygen 동영상 생성 (AZ8)","icon":"clapperboard","pages":[{"title":"Oxygen 동영상 생성","sidebarTitle":"Oxygen 개요","icon":"video","href":"/ko/api-capabilities/oxygen/overview"},{"title":"Oxygen 동영상 생성 API 레퍼런스","sidebarTitle":"동영상 생성","openapi":"api-reference/oxygen-video-openapi-en.yaml POST /videos","icon":"video","href":"/ko/api-capabilities/oxygen/video-generation"}]}]},{"group":"멀티모달 이해 API","icon":"eye","pages":[{"group":"이미지 이해 API","icon":"eye","root":{"title":"비전 이해(이미지 인식) API","icon":"eye","href":"/ko/api-capabilities/vision-understanding"},"pages":[{"group":"이미지 이해 자주 묻는 질문","icon":"circle-help","expanded":false,"pages":[{"title":"이미지 이해 요청이 계속 시간 초과됩니다 — 이미지가 너무 큰가요?","icon":"image","href":"/ko/faq/vision-image-too-large"}]}]},{"title":"동영상 이해 API","icon":"video","href":"/ko/api-capabilities/video-understanding"}]},{"group":"텍스트 생성","icon":"file-text","pages":[{"title":"텍스트 생성(채팅 완성)","icon":"message-square","href":"/ko/api-capabilities/text-generation"},{"group":"Gemini 4 Carbon","icon":"sparkles","pages":[{"title":"Gemini 4 Carbon 텍스트 생성","sidebarTitle":"Gemini 4 Carbon 개요","icon":"sparkles","href":"/ko/api-capabilities/gemini-4-carbon/overview"}]},{"group":"Gemini 4 Argon","icon":"sparkles","pages":[{"title":"Gemini 4 Argon 텍스트 생성","sidebarTitle":"Gemini 4 Argon 개요","icon":"sparkles","href":"/ko/api-capabilities/gemini-4-argon/overview"}]},{"group":"GPT-6 Astra","icon":"sparkles","pages":[{"title":"GPT-6 Astra 텍스트 생성","sidebarTitle":"GPT-6 Astra 개요","icon":"sparkles","href":"/ko/api-capabilities/gpt-6-astra/overview"}]},{"group":"DeepSeek V4 Flash Vision","icon":"eye","pages":[{"title":"DeepSeek V4 Flash 비전","sidebarTitle":"개요","icon":"eye","href":"/ko/api-capabilities/deepseek-v4-flash-vision/overview"},{"title":"DeepSeek V4 Flash 비전 채팅 API 레퍼런스","sidebarTitle":"채팅 플레이그라운드","openapi":"api-reference/deepseek-v4-flash-vision-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/ko/api-capabilities/deepseek-v4-flash-vision/chat-completions"},{"title":"DeepSeek V4 Flash Vision 메시지 API 레퍼런스","sidebarTitle":"메시지 플레이그라운드","openapi":"api-reference/deepseek-v4-flash-vision-messages-openapi-en.yaml POST /v1/messages","icon":"terminal","href":"/ko/api-capabilities/deepseek-v4-flash-vision/messages"}]},{"group":"DeepSeek V4 Flash","icon":"zap","pages":[{"title":"DeepSeek V4 Flash 텍스트 생성","sidebarTitle":"개요","icon":"zap","href":"/ko/api-capabilities/deepseek-v4-flash/overview"},{"title":"DeepSeek V4 Flash 채팅 API 레퍼런스","sidebarTitle":"채팅 플레이그라운드","openapi":"api-reference/deepseek-v4-flash-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/ko/api-capabilities/deepseek-v4-flash/chat-completions"},{"title":"DeepSeek V4 Flash Responses API 레퍼런스","sidebarTitle":"Responses 플레이그라운드","openapi":"api-reference/deepseek-v4-flash-responses-openapi-en.yaml POST /v1/responses","icon":"git-fork","href":"/ko/api-capabilities/deepseek-v4-flash/responses"}]},{"group":"DeepSeek Search \u0026 Fetch","icon":"search","pages":[{"title":"DeepSeek 웹 검색 및 가져오기 API","sidebarTitle":"개요","icon":"search","href":"/ko/api-capabilities/deepseek-search-fetch/overview"},{"title":"DeepSeek 웹 검색 API 레퍼런스","sidebarTitle":"검색 플레이그라운드","openapi":"api-reference/deepseek-search-openapi-en.yaml POST /v1/tools/search","icon":"terminal","href":"/ko/api-capabilities/deepseek-search-fetch/search-api"},{"title":"DeepSeek 웹 페이지 가져오기 API 레퍼런스","sidebarTitle":"가져오기 플레이그라운드","openapi":"api-reference/deepseek-fetch-openapi-en.yaml POST /v1/tools/fetch","icon":"terminal","href":"/ko/api-capabilities/deepseek-search-fetch/fetch-api"}]},{"group":"Seed 2.1 Turbo","icon":"zap","pages":[{"title":"Seed 2.1 Turbo 텍스트 생성","sidebarTitle":"개요","icon":"message-square","href":"/ko/api-capabilities/dola-seed-2-1-turbo/overview"},{"title":"Seed 2.1 Turbo 채팅 API 레퍼런스","sidebarTitle":"채팅 플레이그라운드","openapi":"api-reference/dola-seed-2-1-turbo-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/ko/api-capabilities/dola-seed-2-1-turbo/chat-completions"},{"title":"Seed 2.1 Turbo Responses API 레퍼런스","sidebarTitle":"Responses 플레이그라운드","openapi":"api-reference/dola-seed-2-1-turbo-responses-openapi-en.yaml POST /v1/responses","icon":"messages-square","href":"/ko/api-capabilities/dola-seed-2-1-turbo/responses"}]},{"group":"Gemini Flash 시리즈","icon":"sparkles","pages":[{"title":"Gemini 3.8 Flash 텍스트 생성","sidebarTitle":"Gemini 3.8 Flash 개요","icon":"sparkles","href":"/ko/api-capabilities/gemini-3-8-flash/overview"},{"title":"Gemini 3.6 Flash 텍스트 생성","sidebarTitle":"Gemini 3.6 Flash 개요","icon":"sparkles","href":"/ko/api-capabilities/gemini-3-6-flash/overview"},{"title":"Gemini 3.6 Flash 네이티브 API 레퍼런스","sidebarTitle":"3.6 네이티브 플레이그라운드","openapi":"api-reference/gemini-3-6-flash-native-openapi-en.yaml POST /v1beta/models/gemini-3.6-flash:generateContent","icon":"terminal","href":"/ko/api-capabilities/gemini-3-6-flash/generate-content"},{"title":"Gemini 3.6 Flash 채팅 API 레퍼런스","sidebarTitle":"3.6 채팅 플레이그라운드","openapi":"api-reference/gemini-3-6-flash-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/ko/api-capabilities/gemini-3-6-flash/chat-completions"}]},{"group":"Gemini 3.5 Flash-Lite","icon":"feather","pages":[{"title":"Gemini 3.5 Flash-Lite 텍스트 생성","sidebarTitle":"개요","icon":"feather","href":"/ko/api-capabilities/gemini-3-5-flash-lite/overview"},{"title":"Gemini 3.5 Flash-Lite 네이티브 API 레퍼런스","sidebarTitle":"네이티브 플레이그라운드","openapi":"api-reference/gemini-3-5-flash-lite-native-openapi-en.yaml POST /v1beta/models/gemini-3.5-flash-lite:generateContent","icon":"terminal","href":"/ko/api-capabilities/gemini-3-5-flash-lite/generate-content"},{"title":"Gemini 3.5 Flash-Lite 채팅 API 레퍼런스","sidebarTitle":"채팅 플레이그라운드","openapi":"api-reference/gemini-3-5-flash-lite-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/ko/api-capabilities/gemini-3-5-flash-lite/chat-completions"}]},{"group":"Qwen3 시리즈","icon":"puzzle","pages":[{"title":"Qwen3.8-Max 텍스트 생성","sidebarTitle":"개요","icon":"puzzle","href":"/ko/api-capabilities/qwen-3-8/overview"},{"title":"Qwen3.8-Max 채팅 API 레퍼런스","sidebarTitle":"채팅 플레이그라운드","openapi":"api-reference/qwen-3-8-max-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/ko/api-capabilities/qwen-3-8/chat-completions"},{"title":"Qwen3.6 텍스트 모델 시리즈 (레거시)","sidebarTitle":"Qwen3.6 (레거시)","icon":"puzzle","href":"/ko/api-capabilities/qwen-3-6/overview"}]},{"group":"Kimi K3.1 Pro","icon":"moon","pages":[{"title":"Kimi K3.1 Pro 개요","sidebarTitle":"개요","icon":"brain","href":"/ko/api-capabilities/kimi-k3-1/overview"}]},{"title":"Kimi K2.5 텍스트 생성","sidebarTitle":"Kimi K2.5","icon":"bot","href":"/ko/api-capabilities/kimi-k2-5"}]},{"group":"음성 API (공식)","icon":"audio-lines","pages":[{"title":"실시간 음성(WebSocket)","sidebarTitle":"실시간 음성 개요","icon":"audio-lines","href":"/ko/api-capabilities/realtime/overview"}]},{"group":"검색 및 안전","icon":"search","pages":[{"title":"텍스트 임베딩 API","icon":"vector-square","href":"/ko/api-capabilities/text-embedding"},{"title":"실제 임베딩 튜닝","sidebarTitle":"임베딩 튜닝","icon":"sliders-horizontal","href":"/ko/api-capabilities/embedding-best-practices"},{"group":"리랭킹","icon":"list-ordered","pages":[{"title":"bge-reranker-v2-m3 텍스트 리랭킹","sidebarTitle":"개요","icon":"list-ordered","href":"/ko/api-capabilities/rerank/overview"},{"title":"재정렬 API 레퍼런스","sidebarTitle":"플레이그라운드","openapi":"api-reference/bge-reranker-v2-m3-rerank-openapi-en.yaml POST /v1/rerank","icon":"terminal","href":"/ko/api-capabilities/rerank/rerank-api"},{"title":"실제 RAG 튜닝","sidebarTitle":"RAG 튜닝","icon":"sliders-horizontal","href":"/ko/api-capabilities/rerank/rag-best-practices"}]},{"title":"텍스트 모더레이션","icon":"shield-check","href":"/ko/api-capabilities/text-moderation"}]}]},{"tab":"활용 사례","icon":"layout-grid","pages":[{"title":"활용 사례","href":"/ko/scenarios"}]},{"tab":"FAQ","icon":"circle-question-mark","pages":[{"title":"FAQ","href":"/ko/faq"}]},{"tab":"실시간 업데이트","icon":"activity","pages":[{"title":"실시간 업데이트","href":"/ko/live"}]},{"tab":"공지사항","icon":"megaphone","pages":[{"title":"공지사항","href":"/ko/changelog"}]},{"tab":"프로모션","icon":"gift","pages":[{"title":"프로모션","href":"/ko/faq/recharge-promotions"}]},{"tab":"모델 요금","icon":"circle-dollar-sign","pages":[{"title":"모델 요금","href":"/ko/models"}]}]},{"language":"ru","banner":{"content":"Эта страница переведена с помощью ИИ. При расхождениях ориентируйтесь на [английскую версию](/en).","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI-интеграция","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"Набор AI-разработчика (кит.)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"Отзывы пользователей / Wall of Love","items":[{"label":"Отзывы пользователей (на китайском)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"Главная"},{"href":"https://imagen.apiyi.com","label":"Генерация изображений"},{"href":"https://icover.ai","label":"Генерация видео"}],"primary":{"type":"button","label":"Консоль","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"ru","href":"/ru/api-capabilities/image-advanced-workflow"}]}]},"basePath":"","title":"고급 이미지 생성: 워크플로 및 사실감 - API易文档中心","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["10e4515597","07c022d89b","a74be98ba7"],"chunks":["BannerMarkdown-DV3Oq1fY.js","dist-C-XZBk9h.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D3Isdib3.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}