시킨 것과 한 것
사장님이 한 말
맥에서 돈 안 들이고 게임 캐릭터 그림을 뽑고 싶어. 장사에 써도 되는 모델로.
그래서 제가 한 일
- 허깅페이스 모델 카드의 license 칸을 읽어 장사 가능 여부를 정리했다.
- uv tool install mflux 명령으로 도구를 깔고 오류 두 개를 해결했다.
- klein 4B와 Z-Image-Turbo를 같은 조건에서 돌려 속도와 메모리를 잰 표를 만들었다.
- 그림 속 글자(영어·한글)를 테스트해 모델별 차이를 확인했다.
사장님이 직접 하신 일"장사에 써도 되는 것만"이라고 조건 말해 주기
장사에 써도 되는 모델인지부터 확인했다
허깅페이스 모델 카드의 license 칸 원문을 읽었다. 이름이 비슷해도 라이선스가 다르니 모델 이름 뒤의 숫자까지 봐야 한다. 아래는 카드에 적힌 표기를 그대로 옮긴 것이고, 법적 판단은 아니다.
| 모델 | 카드의 license 표기 | 장사 |
|---|---|---|
| FLUX.2 klein 4B | Apache-2.0 | 가능 |
| Z-Image-Turbo | Apache-2.0 | 가능 |
| FLUX.2 klein 9B | 비상업(flux-non-commercial-license) | 불가 |
| Qwen-Image-2.1 | 연구용(qwen-research) | 불가 |
| FLUX.1 dev | 비상업 | 불가 |
한계: 카드의 license 칸을 읽은 것이고 LICENSE 전문까지는 읽지 않았다. 앱에 넣기 전에 한 번 더 본다.
따라 해 보는 명령
| 명령 (그대로 복사) |
|---|
설치 (한 번만)uv tool install --python 3.12 --force mflux --with "pillow<13" |
klein 4B 로 그림mflux-generate-flux2 --model flux2-klein-4b --prompt "a cute chibi knight hero holding a big sword, game character art, full body, clean flat colors, thick outline, plain white background" --width 768 --height 768 --steps 4 --seed 1 -q 8 --output knight.png |
Z-Image-Turbo 로 그림mflux-generate-z-image-turbo --prompt "a cute chibi knight hero holding a big sword, game character art, full body, clean flat colors, thick outline, plain white background" --width 768 --height 768 --steps 9 --seed 1 -q 8 --output knight.png |
설치하다 밟은 오류 두 개
uv tool install mflux 만 치면 파이썬 3.15 를 잡는다. 아래 표의 명령으로 해결했다.
| 증상 | 오류 원문 | 해결 |
|---|---|---|
| uv tool install mflux 만 치면 파이썬 3.15 를 잡음 | You require CPython 3.15 (cp315), but we only found wheels for torch | --python 3.12 로 고정 |
| Pillow 13.0.0 이 깔림 | ImportError: cannot import name '_IntegralLike' from 'numbers' | --with "pillow<13" (12.3.0 이 깔림) |
klein 4B 와 Z-Image-Turbo 를 같은 조건으로 돌렸다
768x768 기준 klein 4B 가 약 4.2초, Z-Image-Turbo 가 14~19초 걸렸다. Z-Image 는 압축(-q) 설정을 바꿔도 시간·메모리가 거의 안 바뀌었다.
| 항목 | klein 4B | Z-Image-Turbo |
|---|---|---|
| 한 장 걸린 시간(768x768) | 4.1~4.9초 | 14~19초 |
| 최대 메모리 | 13GB | 30GB |
| 그림 느낌 | 질감·음영 풍부 | 선이 굵고 깔끔한 만화풍 |
| 로컬 Qwen(32GB)과 합친 메모리(계산, 같이 돌려 보진 않음) | 45GB | 62GB |
1024x1024 는 klein 6.1초, Z-Image 20.4초였다.
그림 속 글자: 해외판이라 넣지 않기로 했다
그림 속 글자도 시험했다. 영어 OPEN 간판은 두 모델 다 맞게 그렸고, 한글 '여관' 간판은 Z-Image 가 '여관'으로, klein 이 '허몸'으로 그렸다. 각 1번씩만 시험했다(확률은 모른다).
그런데 우리는 앱을 해외판과 같이 낸다. 한글이든 영어든 그림에 글자를 구워 넣으면 한 나라 것밖에 못 쓴다. 그래서 그림에는 글자를 넣지 않고, 글자는 앱에서 언어별로 얹기로 했다. 글자 없는 빈 간판은 klein 이 프롬프트에 글자 얘기를 안 해도 그려 줬고, no text, no letters, no writing 을 붙여도 됐다(klein·Z-Image 1번씩 시험).
한국어 프롬프트도 알아듣는다. 같은 뜻이라도 영어로 flat colors, thick outline 을 쓰면 만화풍, 한국어 설명만 쓰면 3D풍·애니풍이 나왔다.
함정과 한계
로컬 Qwen 8비트판(38GB)이 올라가 있으면 Z-Image 가 크게 느려졌다: 그때 그림 9단계 생성에만 83초가 걸렸고, 내린 뒤에는 명령 전체가 모델 불러오기까지 합쳐 14초대였다.
투명 배경은 안 나온다(알파 채널 없음). 투명이 되는 Qwen-Image-2.1 은 비상업이라 못 쓴다.
칼·손은 가끔 엉킨다 → 후보를 여러 장 뽑아 고른다. Qwen-Image 20B 는 받지도 돌려 보지도 않았다.