"모델마다 결과 차이가 크다"는 말은 다들 하는데, 막상 뭐가 어떻게 다른지는 잘 안 나옵니다. 저도 그동안 감으로만 골라 썼어요.
그래서 진짜 대조 실험을 해봤습니다. 프롬프트 하나를 아홉 모델에 똑같이 넣고, 눈으로 채점 가능한 항목 네 개를 심었습니다.
프롬프트는 이겁니다.
A wooden shop counter photographed straight on. A hanging sign board above reads exactly: OPEN 24. Below the sign, exactly five identical white ceramic bowls are arranged in a single evenly spaced row on the counter. The third bowl from the left is filled to the brim with water; the other four bowls are completely empty. A single brass spoon rests to the right of the fifth bowl.
채점 항목 네 가지입니다. 취향이 아니라 맞고 틀림으로 셀 수 있는 것들이에요.
GPT Image 2. 글자가 제일 또렷하고 간판이 실제로 새겨진 목재처럼 나왔습니다.
Seedream 5.0 Pro. 물이 든 그릇의 수면이 실제로 보이는 유일한 결과였습니다.
Nano Banana Pro. 네 항목 다 맞히면서 뒤쪽 선반의 잡화까지 자연스럽게 채웠습니다.
Seedream 4.5. 여기가 흥미롭습니다. 상위 모델인 5.0 Pro와 차이를 못 느끼겠어요. 이 정도 난이도에서는 굳이 비싼 걸 쓸 이유가 없다는 뜻입니다.
Recraft V4.1. 의외의 선전이었습니다. 조명이 제일 부드럽고 글자도 정확해요. 저는 이 모델을 벡터·로고용으로만 생각했는데 사진에도 씁니다.
Kling O1. 다 맞혔는데 물이 두 번째 그릇에 들어갔습니다. "왼쪽에서 세 번째"를 한 칸 틀렸어요.
돌아보니 제 다른 작업에서도 Kling은 순서·위치 지정에서 자주 어긋났습니다.
Grok Image. 개수와 배치는 맞는데 물이 아예 안 들어갔습니다. 다섯 개 다 비어 있어요.
대신 나뭇결과 질감은 이 중 제일 좋습니다. 이 모델의 성격이 그대로 나온 셈이에요 — 지시는 대충 듣고 그림은 잘 그립니다.
FLUX.2가 2점. 그릇이 다섯 개가 아니라 세 개고, 가운데는 도자기가 아니라 유리볼입니다.
FLUX.2는 카탈로그에 "정확한 프롬프트 준수"가 강점으로 적혀 있는 모델이에요. 그런데 개수 세기에서 무너졌습니다.
다만 화면 자체는 아홉 중 제일 깔끔합니다. "프롬프트 준수"가 "숫자를 센다"는 뜻은 아니었던 것 같아요.
Z Image가 1.5점. 간판이 "OPEN 24." — 마침표가 붙었습니다. 물도 없고 숟가락은 그릇 앞이에요.
그런데 이건 예상된 결과입니다. Z Image는 카탈로그에 "초고속, 저비용"으로 분류된 모델이에요. 정확도가 필요 없는 초안·배경·대량 생성에는 여전히 씁니다. 못 쓰는 모델이 아니라 쓸 자리가 다른 모델입니다.
이걸 순위표로 읽으시면 안 됩니다. 이유가 셋 있어요.
그래서 이건 정답표가 아니라 관찰입니다. 다만 아홉 장을 다 올려 뒀으니 직접 보고 다르게 판단하셔도 됩니다.
이번 실험 말고도 지난 몇 주간 250점 넘게 만들면서 알게 된 것들입니다.
피규어 패키지에 "PAPER CRANE"을 넣는데 Kling이 두 번 연속 "PAPER CRAINE"으로 썼습니다. 철자를 한 글자씩 지정했는데도요. GPT Image 2로 바꾸니 한 번에 됐습니다.
반대로 한글 간판은 Grok이 잘합니다. "떡볶이 & 호떡 3,000원", "옛날통닭 15,000원" 같은 걸 정확히 써 줬어요.
조각 연작에서 거의 같은 프롬프트 아홉 개 중 하나만 차단됐습니다. 자세한 건 따로 쓴 글에 있습니다.
FLUX.2에 3:2를 요청하면 4:3으로 바뀝니다. 응답의 adjustments 항목에 closest supported aspect ratio라고 적혀 오는데, 안 읽으면 모르고 지나갑니다. Soul Cinema에 4:5를 넣었을 때도 3:4로 바뀌었어요.
이건 좀 헷갈리는 부분입니다. 응답에 찍히는 모델 이름을 그대로 믿으면 안 돼요.
nano_banana_pro로 요청 → 내부 이름 nano_banana_2, 표시명 "Nano Banana Pro"nano_banana_2로 요청 → 내부 이름 nano_banana_flash, 표시명 "Nano Banana 2"내부 이름이 한 세대씩 밀려 있습니다. 기록을 남기실 거면 응답의 모델 필드가 아니라 내가 요청한 카탈로그 id를 저장하세요. 저는 이걸 모르고 한동안 헷갈렸습니다.
한 번에 아홉 개씩 던지면 429 rate_limit_reached가 나는데, 체감상 FLUX.2와 Seedream 계열이 제일 자주 걸립니다. 여덟 개 이하로 나눠 던지면 대체로 안 납니다.
실험을 하고 나서 생각이 좀 바뀌었습니다. "좋은 모델"보다 "이 작업에 맞는 모델"이 훨씬 중요합니다.
Grok은 지시를 두 개 틀렸지만 질감은 제일 좋았고, FLUX.2는 개수를 틀렸지만 화면은 제일 깔끔했어요. Z Image는 꼴찌였지만 제일 빠릅니다.
그리고 하나 더 — 실패하면 프롬프트만 고치지 말고 모델도 바꿔 보세요. 저는 그동안 프롬프트를 다섯 번 고치고 있었는데, 모델을 한 번 바꾸면 끝나는 경우가 꽤 있었습니다 🍠
같은 프롬프트로 직접 돌려 보시고 결과가 다르면 알려주세요. 표본이 늘면 이 글도 고치겠습니다.