RTX 3060 12GB Z-Image-Turbo 후기 스텝 4면 충분 22초

지난 글에서 RTX 3060 12GB로 로컬 이미지 생성을 해봤습니다.
SDXL Turbo로 512×512 한 장 뽑는 데 4.35초, VRAM은 7.8GB만 썼죠.

4GB 넘게 남았으니 더 큰 것도 되지 않을까 싶었습니다. 그래서 이번엔 Z-Image-Turbo입니다.

다운로드 용량이 19GB인데 제 카드는 12GB입니다.
될 리가 없어 보이는데, 파일 구성을 뜯어보니 얘기가 좀 달랐습니다.

Z-Image-Turbo, 크기 19GB의 정체

ComfyUI 템플릿 목록에서 첫 번째 카드입니다.

ComfyUI 템플릿 목록에서 Z-Image-Turbo 텍스트 기반 이미지 생성 카드를 선택하는 화면

바로 옆에 Z-Image-Turbo Int8도 있습니다.
Z-Image-Turbo 양자화 버전인데 11.33GB라 12GB에 더 잘 맞습니다.
그런데 지난 글에서 원본으로 도전하겠다고 예고했으니 그대로 갑니다.

누르면 워크플로우가 열립니다.

ComfyUI 워크플로우가 텍스트 노드와 이미지 저장 노드 두 개로만 구성된 화면

노드가 두 개뿐입니다.
지난 글 SDXL Turbo에서는 여덟아홉 개가 얽혀 있었는데 훨씬 단순해졌네요.
실제로는 서브그래프로 접혀 있는 거라, 오른쪽 위 확장 아이콘을 누르면 안이 펼쳐집니다.

그리고 오른쪽에 빨간 오류 3개가 떠 있습니다. 모델이 없어서 그렇습니다.

누락 모델 목록에 디퓨전 모델 11.46GB 텍스트 인코더 7.49GB VAE 0.32GB가 표시된 화면

여기가 핵심입니다. 19.27GB가 한 덩어리가 아니었습니다.

파일용량역할
z_image_turbo_bf1611.46GB디퓨전 모델
(그림 그리는 부분)
qwen_3_4b7.49GB텍스트 인코더
(프롬프트 읽는 부분)
ae0.32GBVAE (마무리)

셋이 동시에 VRAM에 올라갈 필요가 없습니다.
텍스트 인코딩이 끝나면 인코더를 내리고 디퓨전 모델을 올리는 식으로 순서대로 쓰이거든요.

그러니까 진짜 관건은 Z-Image-Turbo 11.46GB가 12GB에 들어가느냐입니다.
19GB가 12GB 에 들어가느냐?! 이게 아니었던 거죠.

ComfyUI에서 모델 파일 3개를 순차적으로 내려받는 다운로드 진행 화면

다운로드는 20~30분정도 걸렸습니다.

텍스트 인코더가 Qwen3 4B입니다

받으면서 눈에 띈 게 하나 있었습니다. 텍스트 인코더가 qwen_3_4b입니다.

지난 글에서 다룬 SDXL Turbo는 CLIP이라는 전용 인코더를 썼습니다.
영어 위주로 학습돼서 한국어 프롬프트를 넣으면 엉뚱한 그림이 나왔죠.
지난 글에서 안경 쓴 아저씨가 나왔던 게 그 이유입니다.

그런데 이 모델은 인코더 자리에 LLM을 통째로 박아놨습니다.
Qwen은 한국어를 잘합니다.

그럼 혹시… 되나?

한국어 프롬프트를 다시 넣어봤습니다

지난 글에서 SDXL Turbo에 넣었던 문장 그대로입니다. 글자 하나 안 바꿨습니다.

진돗개, 흰색 털, 눈 오는 마당에 앉아있는 모습, 사진

한국어 프롬프트로 생성한 흰색 개 이미지로 배경에 눈이 없는 모습

진돗개가 나왔습니다.

같은 문장인데 SDXL Turbo에서는 아저씨가 나왔고, 이쪽에서는 진돗개가 나왔습니다.
텍스트 인코더가 CLIP에서 Qwen3로 바뀐 것만으로요.

지난 글 결론이 뒤집혔네요. 한국어 프롬프트가 안 되는 게 아니라, 모델에 따라 됩니다.

다만 완벽하진 않습니다.
눈이 안 옵니다. 배경이 그냥 흙바닥이에요. “마당”은 반영됐는데 “눈 오는”이 빠졌습니다.

어순을 바꿔봤습니다

같은 내용을 문장 구조만 바꿔서 다시 넣었습니다. 시드는 0 그대로입니다.

눈이 내리는 마당에 흰색 진돗개가 앉아있는 사진

어순을 바꾼 한국어 프롬프트로 생성한 눈밭에 앉은 흰 개 이미지

눈이 나왔습니다.

시드가 같으니 이건 확실히 프롬프트 구조 때문입니다.
“눈 오는 마당에”를 쉼표로 나열했을 때는 흘렸고, “눈이 내리는 마당에”로 문장 앞에 놓으니 반영됐습니다.

한국어가 되긴 하는데, 나열형보다 문장형으로 쓰는 게 나아 보입니다.
명사만 쉼표로 늘어놓는 영어식 프롬프트 습관이 오히려 방해가 되는 셈이네요.

영어로도 돌려봤습니다.

a Korean Jindo dog, white fur, pointed ears, curled tail, sitting in a snowy yard, photorealistic, sharp focus

영어 프롬프트로 생성한 눈밭에 앉은 흰색 진돗개 이미지

영어 쪽이 배경 디테일은 조금 더 풍부합니다.
나뭇가지에 쌓인 눈이나 담장 묘사가 살아 있네요. 그래도 한국어와 큰 차이는 아닙니다.

그리고 진돗개는 뭔가.. 흰 스피츠 느낌이 있습니다.
6GB 모델에서도, 19GB 모델에서도요. 모델을 세 배 키워도 이건 안 바뀌었습니다.
데이터가 없으면 크기로 해결되는 문제가 아닌 것 같습니다.

Z-Image-Turbo 모델, VRAM은 사용량은?

작업관리자를 켜두고 돌렸습니다.

RTX 3060 작업관리자 성능 탭에 전용 GPU 메모리 11.1GB와 공유 GPU 메모리 3.3GB가 표시된 화면
  • 전용 GPU 메모리 11.1 / 12.0GB
  • 공유 GPU 메모리 3.3GB
  • 시스템 RAM 19.2 / 31.6GB
  • GPU 사용률 91%, 온도 66도

답이 나왔습니다. 아슬아슬하게 안 들어갑니다.

11.1GB까지 채우고 넘친 3.3GB는 시스템 RAM으로 밀려났습니다.
오프로딩이 실제로 일어난 상태로 돌아간 겁니다.

그런데 GPU 사용률이 91%까지 붙어 있습니다.
병목이 메모리 전송이 아니라 GPU 연산 쪽이라는 뜻이라, 오프로딩 페널티가 생각보다 크지 않았던 것 같습니다.

참고로 제 램은 RAM 32GB입니다.
넘친 3.3GB를 받아줄 여유가 있어서 돌아간 거고, 16GB 환경이면 결과가 다를 수 있습니다.

Z-Image-Turbo, 스텝 수를 바꿔봤습니다

기본값이 8스텝인데, 낮추면 얼마나 빨라지는지 궁금했습니다.
시드 0 고정, 같은 영어 프롬프트로 세 번 돌렸습니다.

steps 1 5.66초

1스텝으로 생성해 털과 배경이 뭉개진 흰 개 이미지

빠르긴 한데 이건 못 쓰겠습니다.
털이 통짜 덩어리고 눈코가 그냥 점입니다. 인형 같아요.

steps 4 14.16초

4스텝으로 생성한 눈밭의 흰 개 이미지로 털 결과 배경이 선명한 모습

갑자기 정상이 됩니다. 털 결이 살아나고 눈밭에 발자국까지 보입니다.

steps 8 22초

기본값 8스텝으로 생성한 눈밭의 흰 개 이미지

4스텝보다 조금 나은거같네요.
발가락이나 목털 질감이 미세하게 좋아졌는데, 나란히 놓고 한참 봐야 보이는 수준입니다.

steps시간품질
15.66초뭉개짐. 못 씀
414.16초쓸 만함
822초가장 좋음

1과 4 사이 격차가 유독 큽니다.
점진적으로 좋아지는 게 아니라 어느 지점에서 갑자기 형태가 잡히는 느낌이네요.

같은 Turbo인데 SDXL Turbo는 1스텝에서도 멀쩡했습니다.
SDXL Turbo은 1스텝 전용으로 만들어진 모델이고
Z-Image-Turbo 모델 8스텝 기준이라 그런 것 같습니다.

정리하면

RTX 3060 12GB에서 Z-Image-Turbo, 돌아갑니다. 오프로딩까지 써서 아슬아슬하게요.

1. 모델 크기는 19GB가 아니고 파일 세 개로 나뉘어 있고 순서대로 쓰입니다. 실제 관건은 디퓨전 모델 11.46GB였고, 12GB에 딱 안 들어가서 3.3GB가 RAM으로 넘어갔습니다.

2. 한국어 프롬프트가 됩니다. 텍스트 인코더가 Qwen3 4B라 그렇습니다. 지난 글 결론을 정정합니다. 안 되는 게 아니라 모델에 따라 됩니다. 다만 나열형보다 문장형으로 쓰는 게 잘 먹힙니다.

3. 4스텝 14초가 적당합니다. 8스텝 22초와 차이가 크지 않습니다. 프롬프트 다듬을 땐 4스텝, 최종 결과물만 8스텝으로 쓰면 되겠네요.

4. 진돗개는 여전히 잘 못 그립니다. 6GB에서도 19GB에서도 흰 스피츠 처럼 나오는듯해요.
모델 크기로 해결되는 문제가 아니라 진돗개 학습 데이터가 부족한 것 같네요.

이상 글 마치겠습니다!

위로 스크롤