세로와 가로 각각 1536픽셀까지의 텍스트 생성 이미지에는 Z-Image Spicy를 쓰세요. 이미지당 $0.01235부터입니다. 한 변이 1536을 넘어야 할 때는 최대 2560픽셀까지 가능한 Spicy Pro를 $0.019에 쓰세요. 둘 다 무검열 텍스트→이미지 작업입니다. 둘 다 이미지 레퍼런스를 받지 않으므로, 승인된 얼굴을 그대로 유지해야 한다면 별도의 편집기를 쓰세요.
둘 다 프롬프트 확장을 끈 상태로 무검열 브리프를 있는 그대로 받습니다. 2026년 9월 테스트에서 가장 강한 요청에서 Spicy가 한 번 장면의 일부를 누락했고, Pro는 그러지 않았습니다(세부 내용: Z-Image는 무검열인가). 아래는 산호색 부채를 하나 든, 옷을 다 입은 가상의 성인 댄서입니다. 먼저 세로 인물 이미지, 그다음 넓은 공지 이미지를 만듭니다.
화면 크기와 가격을 함께 정하기
| 설정 | Z-Image Spicy | Z-Image Spicy Pro |
|---|---|---|
| 너비와 높이 | 각각 256–1536 | 각각 256–2560 |
| 기본값 | 1024 × 1536 | 1024 × 1024 |
| 확장 끔 | 이미지당 $0.01235 | 이미지당 $0.019 |
| 확장 켬 | 이미지당 $0.0133 | 이미지당 $0.019 |
| 프롬프트 길이 | 제한 없음 | 제한 없음 |
| 시드 | 0–2147483647 | 동일 |
| 네거티브 프롬프트, 원본 이미지, 마스크, LoRA | 지원 안 함 | 지원 안 함 |
width와 height를 보냅니다. aspect_ratio 필드는 없습니다. 유용한 화면 크기은 4:5 카드용 960 × 1200, 9:16 스토리 프레임용 864 × 1536, 16:9용 1536 × 864이며 모두 일반 Spicy 범위 안입니다. 2560 × 1440이나 너비 1600픽셀 프레임에는 Pro를 고르세요. Spicy는 너비 1600을 거부하고, 너비만 1536으로 줄이면 비율이 조용히 바뀝니다.
결제는 픽셀이 아니라 이미지 단위입니다. 그래서 2560 × 2560 Pro 프레임도 1024 정사각형과 같은 $0.019이고, 작은 시안을 만든다고 비용이 절약되지는 않습니다. 화면이 달라지면 같은 시드여도 그림이 달라집니다. 전달할 크기로 시안을 작업하세요. 빈 공간이 목적이 아니라면 긴 변을 짧은 변의 약 두 배 안쪽으로 유지하세요.
먼저 Playground에서 세로 인물 이미지를 시험하기
- Z-Image Spicy 페이지를 열고 Playground 탭의 Form 뷰에 머문 채 진행합니다. 실행하려면 잔액이 있는 계정으로 로그인하세요.
- Width를 960, Height를 1200으로 놓고 Prompt expansion은 끈 채로 두며, Seed에 314159 같은 값을 넣습니다.
- 아래 프롬프트를 Prompt에 붙여 모델을 실행하고, 결과물을 쓰기 전에 부채와 손과 신발을 확인하세요.

Z-Image의 자매 텍스트→이미지 페이지이며 Spicy 페이지가 아닙니다. Prompt 필드와 Run 버튼이 있는 Form 뷰입니다.
조용한 스튜디오에서 혼자 연습하는 32세 가상의 성인 댄서의 자연스러운 에디토리얼 패션 이미지. 코발트색 긴팔 블라우스, 아이보리 스커트, 단순한 연습 신발을 입고 있다. 몸 전체가 4분의 1 바퀴쯤 살짝 돌아 있고, 두 신발 모두 나무 바닥에 닿아 있다. 한 손이 어깨 옆에서 연 산호색 접이식 부채 하나의 손잡이를 쥐고, 쥔 곳이 보이며 부채는 얼굴에서 멀리 있다. 다른 손은 힘 없이 내려와 있다. 매끈한 황토색 벽, 부드러운 옆빛, 부채 위와 신발 아래의 넉넉한 여백. 글자도, 거울도, 추가 인물도, 더 많은 부채도 넣지 않는다.
네거티브 프롬프트 칸이 없으므로 제외할 것은 프롬프트에 씁니다. 그래서 마지막 문장이 안전장치입니다. 부채와 손과 화면 구도를 정의하는 단어는 "걸작" 같은 형용사 나열보다 훨씬 큰 역할을 합니다. 첫 포즈는 어느 손이 물건을 쥐는지 보일 만큼 고정하세요. 의상 콘셉트가 원하는 대로 나오면 그다음에는 온몸을 움직이는 춤 동작을 시도하세요.

삽화이며 대상 모델 결과물이 아닙니다. 부채의 축에서 손이 손잡이를 쥐는 모습이 이 프롬프트가 요구하는 관계입니다.
후보를 비교하려면 절 하나만 바꾸고 매번 새로운 시드로 다시 실행하세요. Playground의 요청 본문은 API가 받는 것과 같은 JSON이라, 여기서 동작한 설정은 그대로 코드로 옮길 수 있습니다. Pro는 Z-Image Spicy Pro 페이지를 열어 같은 항목을 더 큰 한도로 쓰세요.
그다음 코드로 실행하기
Python SDK(pip install spicyapi)를 설치하고 서버 환경에 SPICY_API_KEY를 설정한 뒤 실행하세요.
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="alibaba/z-image-spicy/text-to-image",
input_data={
"prompt": "Natural editorial fashion image of one fictional adult dancer aged 32, rehearsing alone in a quiet studio. She wears a cobalt long-sleeved blouse, an ivory skirt and simple rehearsal shoes. Complete body in a gentle quarter turn, both shoes resting on the wooden floor. One hand holds the handle of one open coral folding fan beside her shoulder, with the grip visible and the fan away from her face. Her other hand hangs relaxed. Plain ochre wall, soft side light, generous room above the fan and below the shoes. No lettering, mirrors, extra people or additional fans.",
"width": 960,
"height": 1200,
"enable_prompt_expansion": False,
"seed": 314159,
},
idempotency_key=str(uuid.uuid4()),
)
print("Task", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
assets = output_assets(final)
if not assets or any(
not asset.get("url") or asset.get("pending") or asset.get("unavailable")
for asset in assets
):
raise RuntimeError(f"{task['taskId']} has no complete downloadable output; look up this task before retrying")
print(assets[0]["url"]) # copy the image to your own storage now생성, 대기, 다운로드, 재시도, 오류 코드는 tasks 가이드와 Python SDK 레퍼런스에 정리돼 있습니다. 결과에는 보존 기간이 있으므로, 반환된 링크를 바탕으로 만들기 전에 보존과 전달을 확인하세요.
또는 Agent에게 맡기기
어시스턴트가 생성을 맡도록 할 때 세 가지 공식 도구 모두 가격을 보여 주고 유료 호출 전에 확인을 요청합니다.
- CLI. 같은
input객체를input.json에 넣고 다음을 실행하세요.
``bash spicyapi tasks create --model alibaba/z-image-spicy/text-to-image --input-file input.json --wait ``
CLI 문서를 보세요. npx @spicyapi/cli는 설치 없이도 동작합니다.
- MCP 서버. 어시스턴트에 MCP 서버를 추가하고 이렇게 물어보세요. "Run Z-Image Spicy at 960 by 1200 with this prompt, prompt expansion off." 그러면
spicyapi_task_create를 호출해 가격 확인에서 멈추고, 이어서spicyapi_task_wait를 호출합니다. - Skill.
npx skills add spicyapi-ai/spicy-skill는 Agent Skill을 설치해, 코딩 어시스턴트가 항목을 추측하지 않고 실제 모델 스키마를 읽게 합니다.
넓은 이미지는 의도한 새 레이아웃으로 만들기
width: 1536, height: 864로 바꿉니다. 세로 인물 이미지 프롬프트에서 "몸 전체가 4분의 1 바퀴쯤 살짝 돌아 있고, 두 신발 모두 나무 바닥에 닿아 있다"를 아래의 첫 두 문장으로, "부채 위와 신발 아래의 넉넉한 여백"을 세 번째 문장으로 바꾸세요.
댄서 전체를 화면 왼쪽에 4분의 1 바퀴쯤 살짝 돌린 자세로 두고 두 신발을 모두 나무 바닥에 닿게 하세요. 펼친 부채 전체가 이미지 가장자리에서 떨어져 있게 유지하세요. 오른쪽 3분의 1은 따로 더할 행사 문구를 위한 조용한 황토색 벽으로 비워 두세요.
이는 새 텍스트 생성 이미지이며 세로 인물 이미지를 편집한 것이 아닙니다. 같은 시드를 써도 승인된 얼굴이 화면을 넘어 이어지지 않습니다. 같은 사람을 유지해야 한다면 고른 인물 이미지를 그대로 두고, 배너에는 레퍼런스를 받을 수 있는 이미지 편집기나 일반적인 잘라내기·레이아웃 작업을 쓰세요.
실제 제목, 날짜, 장소는 나중에 디자인 도구에서 넣으세요. 밋밋한 황토색 벽은 레이아웃 요청일 뿐, 생성된 글자의 철자가 정확하다는 보장은 아닙니다. 벽이 너무 좁게 나오면 부채를 덮는 대신 글자를 이미지 밖으로 빼세요.
Pro로 넘어가기 전에 고칠 실패
| 실패 | 구체적 수정 |
|---|---|
| 부채가 손과 합쳐진다 | "한 손으로 부채 축 아래의 가는 손잡이를 쥐게" 요청하고, 부채는 블라우스 가장자리에서 멀리 둡니다. |
| 신발이 잘려 나온다 | 4:5 또는 2:3 세로 구도를 쓰고, "두 신발 아래 바닥이 보이는 온몸"이라고 쓰세요. 근접 표현은 뺍니다. |
| 댄서가 두 명 나온다 | 수업, 무리, 거울, 파트너 표현을 빼고 "혼자 연습하는 성인 한 명"은 남깁니다. |
| 제목 영역이 복잡하다 | 장식 창, 벽 무늬, 극적인 광선을 빼고, 오른쪽 3분의 1의 밋밋한 벽을 요청하세요. |
| 부채가 얼굴을 가린다 | 어깨 옆에, 얼굴 실루엣 밖에 놓으세요. |
Pro는 인체 묘사나 레이아웃을 고쳐 주지 않습니다. 먼저 브리프를 고치고, 한 변이 1536을 넘어야 할 때만 Pro로 전환하세요.
확장과 시드
프롬프트 확장은 꺼 두세요. 생성 전에 프롬프트를 다시 쓰므로, 의도적으로 고른 표현을 일반적인 말로 바꿔 버릴 수 있고 이는 성인 대상 브리프에서 가장 중요합니다. 다른 장면도 받아들일 수 있는 한 줄 컨셉에만 켜세요. 일반 Spicy에서는 이미지당 $0.00095가 추가되고 Pro에서는 추가 비용이 없습니다.
모델 페이지는 시드를 생략하거나 0으로 두면 무작위로 그린다고 합니다. 하지만 시드 없는 요청을 반복했을 때 우리 테스트에서는 두 단계 모두 같은 이미지가 나왔습니다. 후보마다 다른 seed를 보내세요. 시드는 결과를 비교 가능하게 만들 뿐 같은 이미지를 보장하지 않으므로, 숫자 하나로 다시 만들려 하지 말고 선택한 파일을 저장하세요.

삽화이며 대상 모델 결과물이 아닙니다. 종이 인화는 세로 인물 이미지 컨셉 검토를 대신합니다.
예산과 결정
확장을 끈 일반 Spicy 후보 네 장은 $0.0494, Pro 후보 네 장은 $0.076입니다. 1536픽셀 안에 들어가는 것은 Spicy로 시작하세요. 배치에 더 긴 변이 필요할 때만 Pro 비용을 내고, 인체 묘사나 레이아웃이 틀렸을 때는 버전이 아니라 브리프를 고치세요.







