Z-Image-Turbo 인페인팅 API: 마스크 워크플로우 및 아티팩트 수정
Z-Image-Turbo 인페인팅 완벽 가이드. 마스크 생성, 자연어 프롬프트, 자연스러운 블렌딩 기법, 일반 아티팩트 수정 방법을 알아보세요. $0.02/이미지.
안녕하세요, 저는 Dora입니다. 지난주에 사소한 문제에 걸렸습니다. 재사용해야 할 제품 사진에 빛 반사 자국이 있었거든요. 전체적인 리터칭 작업을 원했던 게 아니라, 그냥 살짝 수정만 하고 싶었습니다. 평소 쓰던 툴을 열다가 잠깐 멈췄습니다. Z-Image-Turbo Inpainting API 언급을 종종 봐왔던 터라, 5분짜리 수정을 프로젝트로 만들지 않고도 제 루틴에 자연스럽게 녹아들 수 있을지 궁금했습니다. 그래서 몇 가지 실제 작업에 걸쳐 천천히 시도해보면서 메모를 남겼습니다.
AI 인페인팅이란?
인페인팅은 이미지 편집의 청소부 역할입니다. 마스크로 영역을 가리고, 그 자리에 무엇을 원하는지(또는 아무것도 원하지 않는다는 것을) 설명하면, 모델이 나머지 이미지와 어울리도록 채워줍니다.
인페인팅이 마음에 드는 이유는 외과적인 느낌이 들기 때문입니다. 모델에게 전체 장면을 만들어 달라는 게 아니라, 이미 있는 장면을 존중해 달라는 거니까요. 잘 됐을 때는 편집 흔적이 사라집니다. 안 됐을 때는 이음새, 이상한 질감, 또는 패치가 있는 곳에 작은 “AI 안개”가 보이면서 너무 무리했다는 걸 알게 됩니다.
Z-Image-Turbo Inpaint 작동 방식
2026년 1~2월에 걸쳐 Z-Image-Turbo의 인페인팅을 몇 가지 작업에서 테스트했습니다: 빛 반사 제거, 배경 정리, 그리고 몇 가지 오브젝트 교체 작업이었습니다. 흐름은 표준적입니다: 이미지, 이진 마스크, 프롬프트를 Z-Image-Turbo Inpainting API에 전송합니다. 모델은 마스크된 영역만 편집하고 주변 맥락과 자연스럽게 혼합하려 합니다.
실제로 중요했던 두 가지 세부 사항이 있습니다:
- 마스크 가장자리: 부드러운 가장자리가 더 잘 혼합되었습니다. 날카로운 가장자리는 이음새를 만들었습니다.
- 프롬프트: 짧고 직관적인 프롬프트가 가장 잘 작동했습니다. 과도하게 설명하면 모델이 엉뚱한 추측을 했습니다.
속도 면에서는 결과가 몇 초 만에 돌아왔는데, 제 워크플로우의 비동기 작업으로는 충분히 빠른 편이었습니다. WaveSpeed 문서에 따르면 Z-Image-Turbo Inpaint는 낮은 지연 시간과 깔끔한 결과에 최적화되어 있어, 배치 처리와 빠른 반복 작업에 프로덕션 수준으로 적합합니다. 소규모에서 중간 규모 편집에서는 품질이 유지되었습니다. 더 크고 복잡한 교체 작업은 몇 번의 시도나 더 작은 마스크가 필요했습니다.
API 워크플로우
워크플로우는 단순하게 유지했습니다: 소스 이미지는 그대로 두고, 변경하고 싶은 부분만 마스킹하고, 평범한 언어로 프롬프트를 작성하는 것입니다.
필수 입력값: 이미지 + 마스크 + 프롬프트
다음은 반복적으로 사용한 최소 세트입니다:
- 이미지: PNG 또는 JPEG. 업/다운스케일링 아티팩트를 피하기 위해 원본 해상도를 유지했습니다.
- 마스크: 이미지와 동일한 너비와 높이. 흰색 = 편집 가능. 검정 = 보호. API 버전에 따라 이게 반전되는 경우, 대개 반전 플래그가 있습니다.
- 프롬프트: 한 문장으로 충분합니다. “조리대의 반사 제거.” 또는 “머그컵을 일반 흰색 세라믹 컵으로 교체.”
도움이 된 선택적 옵션들:
- 가이던스/강도: 미묘한 정리에는 낮게, 완전 교체에는 높게.
- 시드: 좋은 결과를 재현하려면 시드를 설정하세요.
- 스텝: 적당하게 유지했습니다. 스텝이 많다고 항상 더 좋은 건 아니었습니다.
마스크 형식 요구사항
이 부분이 품질에 가장 큰 차이를 만들었습니다:
- 이진 마스크(순수한 흰색과 검정)를 사용하세요. 부드러움이 필요하다면 가장자리를 약간 페더링하되, 전체 영역에 회색 뭉침이 생기는 것은 피하세요.
- 치수를 정확히 맞추세요. 마스크가 1픽셀이라도 어긋나면 API가 오류를 내거나 정렬이 맞지 않습니다.
- 마스크 영역을 좁게 유지하세요. 마스크가 작을수록 모델이 환각할 여지가 줄어듭니다.
- 얇은 디테일에 주의하세요. 머리카락이나 케이블의 경우, 면도날처럼 얇은 날카로운 마스크보다 약간 더 큰 부드러운 마스크가 더 잘 혼합되었습니다.
가장자리 근처를 편집할 때는 마스크를 경계 너머로 약간 확장하세요. 이음새 아래로 페인팅할 여지를 모델에게 주어 “스티커” 같은 느낌을 피할 수 있습니다.
Python 구현
이것을 전체 라이브러리로 만들지는 않았습니다. 작은 유틸리티 스크립트에서 짧은 요청을 사용했습니다. 요점은:
- multipart form data와 함께 Z-Image-Turbo Inpainting 엔드포인트로 POST 요청을 전송합니다.
- 첨부할 것들: 이미지 파일, 마스크 파일, 프롬프트 문자열, 그리고 필요에 따라 선택적 파라미터(가이던스, 스텝, 시드, 출력 크기).
- 응답 처리: base64 이미지 또는 가져올 URL. 파이프라인에 적용하기 전에 저장하고 미리보기로 확인합니다.
설정 시 실용적인 메모 몇 가지:
- 속도 제한에 주의하세요. 편집을 배치로 처리하고 재시도를 피하기 위해 백오프를 추가했습니다.
- 저장된 각 이미지와 함께 정확한 프롬프트, 시드, 파라미터를 기록하세요. 깔끔한 결과를 얻었을 때 이 덕분에 재현이 쉬웠습니다.
- UI를 구축하는 경우, 소스 이미지 위에 마스크 오버레이를 미리보기로 표시하세요. 요청을 보내기 전에 이 방법으로 마스크 정렬 오류 두 개를 발견했습니다.
효과적인 인페인트 프롬프트 작성법
대부분의 성공은 더 짧고 직관적인 프롬프트에서 왔습니다. 마스크가 대부분의 역할을 합니다. 프롬프트는 서술이 아닌 방향 제시여야 합니다.
제거 프롬프트 (“깨끗한 표면”)
무언가를 제거하기만 하면 될 때는, 부재와 원하는 마감 상태를 설명하는 프롬프트를 작성했습니다: “반사 제거: 무광택의 균일한 표면 유지” 또는 “먼지 제거: 나뭇결 보존.” 주변 질감을 언급했을 때 모델이 더 잘 존중해주었습니다.
작은 팁: 중요한 경우 조명을 명시하세요. “부드러운 오후 조명 유지”라고 하면 밝은 패치가 생기는 것을 방지했습니다.
교체 프롬프트 (새 콘텐츠 설명)
교체 작업에서는 구체적이면서도 간결하게 작성했습니다:
- “빨간 머그컵을 비슷한 크기의 일반 흰색 세라믹 컵으로 교체, 중성적인 조명.”
- “빈 공간을 일치하는 콘크리트 질감으로 채움: 패턴 없음.”
스타일을 연상시키는 형용사(예: “아름다운”, “영화적인”)는 피했습니다. 그런 단어들은 모델이 창작하도록 유도했습니다. 치수도 도움이 되었습니다. “비슷한 크기” 또는 “같은 각도”라고 하면 어색한 원근감 변화가 줄었습니다.
맥락 인식 프롬프팅
장면에 강한 느낌이 있을 때—따뜻한 빛, 부드러운 그림자, 얕은 심도—프롬프트에 그것을 명시했습니다. RunComfy의 커뮤니티 테스트에 따르면, Z-Image-Turbo Inpainting은 프롬프트가 기존 장면 맥락을 명시적으로 참조할 때 강한 질감 연속성, 사실적인 조명, 정확한 원근감 처리를 보여줍니다. Z-Image-Turbo Inpainting API는 그런 단서를 잘 활용하는 것 같았습니다. “왼쪽에 부드러운 그림자와 함께 기존의 따뜻한 빛에 맞춤”이 추상적인 “사실적인”보다 훨씬 효과적이었습니다.
주변 맥락이 약한 경우(복잡한 패턴, 낮은 디테일), 마스크를 줄이고 두 번에 나눠 작업했습니다: 먼저 구조(형태), 그다음 표면(질감/빛). 1분 정도 더 걸렸지만 최종 결과가 덜 AI스러웠습니다.
실용적인 활용 사례
다음은 Z-Image-Turbo Inpainting API가 제 일상에서 자리를 잡게 된 용도들입니다.
제품 사진 정리
테이블탑 촬영 사진들을 소규모 배치로 처리했습니다: 작은 흠집, 배경의 주름, 램프에서 생긴 이상한 핫스팟 등. 제거 프롬프트로 충분했습니다. 시간 면에서는 수동 복구 작업에 비해 이미지당 약 3~4분을 절약했습니다. 진짜 이점은 정신적 노력 절감—더 적은 미세 결정.
불필요한 오브젝트 제거
거리 사진으로 테스트했습니다: 상점 근처의 쓰레기통과 프레임 가장자리의 부분적인 행인. “벽돌 패턴 이어가기” 또는 “보도 질감 확장”이라는 메모와 함께 좁은 마스크를 사용했더니 채움이 잘 혼합되었습니다. 복잡한 질감에 걸친 대규모 제거는 여전히 몇 번의 시도가 필요했습니다.
배경 교체
전체 배경 교체는 더 까다롭습니다. 단순한 장면의 경우—종이 위의 책상 용품—오브젝트 주변이 아닌 아래를 마스킹하여 자연스러운 그림자를 유지하면서 배경을 단순한 그라데이션으로 교체할 수 있었습니다. 복잡한 배경 앞의 머리카락은 더 어려웠습니다. 마스크가 깔끔하고 새 배경이 단순한 경우에만 인페인팅을 시도할 것 같습니다.
일반적인 아티팩트 수정
결과가 “어색해” 보일 때는 보통 다음 중 하나였습니다.
마스크 가장자리의 보이는 이음새
증상: 패치가 원본과 만나는 곳에 희미한 윤곽선이 생깁니다.
도움이 된 것들:
- 마스크 가장자리를 약간 페더링하고 다시 실행합니다.
- 마스크 영역을 몇 픽셀 늘려서 모델이 이음새 아래로 페인팅할 여지를 줍니다.
- 채움이 단순한 장면에 비해 과도하게 스타일화된 경우 가이던스를 약간 낮춥니다.
색상/조명 불일치
증상: 패치의 형태는 맞는데 빛이 맞지 않습니다.
도움이 된 것들:
- 프롬프트에 빛의 방향과 따뜻함을 명시합니다: “오른쪽에서 오는 따뜻한 빛에 맞추고 부드러운 그림자.”
- 스텝을 약간 줄입니다. 과도한 샘플링이 색상을 이탈시키는 경우를 발견했습니다.
- 사진 전체에 색상 그레이딩이 적용된 경우, 그레이딩 전에 인페인팅을 하고 최종본에 그레이딩을 재적용합니다.
질감 불일치
증상: 표면이 번진 것처럼 보이거나 너무 균일합니다.
도움이 된 것들:
- 질감을 명시적으로 설명합니다(“고운 캔버스 질감”, “은은한 나뭇결”).
- 마스크를 줄이고 단계적으로 채웁니다: 먼저 구조, 그다음 질감.
- 이후에 노이즈나 그레인을 약간 추가하여 혼합합니다. 순수주의적이지는 않지만 효과적입니다.
인페인팅은 화려하지는 않지만, 작고 평범한 편집의 마찰을 줄여줍니다. Z-Image-Turbo Inpainting API는 제 작업 방식을 바꾸지 않았습니다—그 안에 스며들었습니다. 가벼운 정리 작업이나 가끔 오브젝트 교체를 많이 하고 마스크 그리기에 익숙하다면 잘 맞을 것입니다. 무거운 장면 재작성을 원한다면 마스크와 프롬프트를 다듬는 데 여전히 시간을 써야 합니다.
테스트에서 얻은 마지막 메모: 최상의 결과는 프롬프트를 무대 지시어처럼, 마스크를 경계처럼 취급했을 때 나왔습니다. 명확한 역할 분담. 모델은 그런 방식에서 잘 작동했습니다. 그리고 저는 여전히 트릭 있는 질감에서 작은 마스크로 얼마나 밀어붙일 수 있는지, 그 특유의 안개 없이—궁금합니다. 그게 다음 목록에 올라 있습니다. 여러분은 어떠신가요?





