나노바나나로 누끼 따기가 어렵다면? 물체 추출 전략 정복하기

2026년 2월 11일물체 추출이미지 편집프롬프팅 전략AI 이미지

1. 나노바나나로 물체 추출하기

배경을 지우고 물체를 원형 그대로 추출하는 작업은 상품 이미지 제작, 인물 사진 편집 등 다양한 분야에서 수행됩니다. 2025년 등장한 나노바나는 물체 추출 작업의 방식을 완전히 바꾸어 놓았습니다.

브러시로 한 땀 한 땀 제거할 배경을 색칠하던 기존 방법 대신, 대화하듯 추출할 물체를 설명하는 것만으로 추출이 가능해진 것입니다. 이 접근법에는 두 가지 핵심적인 장점이 있습니다.

  • 개별 물체를 분리할 수 있습니다 — 이미지 안에 여러 물체가 있을 때, 원하는 하나의 물체만 골라서 추출할 수 있습니다.
  • 추출과 함께 왜곡까지 복원됩니다 — 가려지거나 흐릿한 부분을 추출과 함께 자연스럽게 복원해줍니다.

하지만 실제로 나노바나나를 사용해 보면, 이미지에서 원하는 물체만 깔끔하게 추출하는 직관적인 작업이, AI에게는 놀라울 정도로 어려운 작업이라는 것을 알게 됩니다.

2. 문제: 왜 나노바나나는 무엇이 배경이고 무엇이 물체인지 구분하지 못할까?

일반적으로 다음의 문제들이 발생하게 되는데요:

  • 주변 물체가 함께 추출됩니다 — 물건을 잡고 있는 손이나, 연결되어 있는 물체가 함께 추출됩니다.
  • 크기와 위치가 바뀝니다 — 작은 물체의 크기가 커지거나, 각도나 위치가 변하거나, 심지어는 세세한 모양이 변형됩니다.

직접 확인해 보겠습니다

아래 이미지들의 프롬프트와 물체를 분리해 봅시다:

example-1
예시 인물 이미지

인물 손에 들려있는 캠코더를 추출해줘.

example-2
예시 인포그래픽 이미지

중간 오른쪽에 '번아웃 왔을 때 -> 침대에 눕기' 위의 아이가 누워있는 그림 추출해줘.

결과물을 살펴보면:

fail-1
실패: 캠코더를 잡고 있는 손이 함께 추출됨
fail-2
실패: 크기와 모양이 변형됨

생각했던 것보다 AI가 물체 추출에 어려움을 겪고 있는 모습을 금방 보게 됩니다. 약 40%의 이미지에 대해서 반복적인 작업 실패가 관측되며, 이미지가 복잡하거나 공간감이 많을수록 성공이 관측되지 않는 경우가 많아집니다.


3. 전략: "자르고, 제외하고, 추출해라."

핵심 아이디어는 간단합니다:

AI에게 이미지 전체를 던지지 말고, 대상 주변만 잘라서 보여주자.

이 전략은 3단계로 이루어집니다:

  1. Bbox 탐지 + 마스킹 — VLM으로 대상의 위치를 탐지한 뒤, 1.5배 확장한 영역만 남기고 나머지를 흰색으로 마스킹합니다.
  2. 네거티브 캡셔닝 — 마스킹된 이미지에서 대상이 아닌 잔여 요소를 VLM으로 감지합니다.
  3. 추출 — 마스킹된 이미지 + 네거티브 캡션을 결합하여, 이미지 생성 모델에게 최종 추출을 요청합니다.

4. 결과: 안정적인 물체 분리

위 전략을 적용하면, 동일한 이미지에서 이런 결과를 얻을 수 있습니다:

성공 예시
성공: 캠코더가 깔끔하게 추출됨
성공 예시
성공: 짱구 그래픽이 정확하게 추출됨

주변 물체가 함께 분리되거나, 크기와 형태가 변형되면서 사용할 수 없었던 결과물들이, 바로 활용 가능한 수준으로 바뀌었습니다.

어떻게 이런 결과를 만들 수 있는지, 각 단계를 하나씩 살펴보겠습니다.


5. 단계별 상세 설명

1

Bbox 탐지 + 1.5x 확장 마스킹

첫 번째 단계는 대상 오브젝트의 위치를 특정하고, 주변을 마스킹하는 것입니다. VLM(gemini-3-flash-preview)에게 원본 이미지와 추출 대상 설명을 전달하면, 모델이 대상의 bounding box 좌표를 실시간으로 탐지합니다.

You are an expert object detection AI.
Given an image and a target object description,
return the bounding box coordinates of the target object.

Target Object: The handheld camcorder held in the person's hand

Response Format:
{"y_min": <number>, "x_min": <number>,
 "y_max": <number>, "x_max": <number>}

All values should be integers between 0 and 1000.

모델이 반환한 좌표는 0-1000 정규화된 값입니다. 이 bbox를 그대로 사용하면 오브젝트가 잘릴 수 있으므로, bbox를 중심 기준으로 1.5배 확장한 후, 해당 영역만 잘라서 동일 크기의 흰색 캔버스 위에 합성합니다.

원본 이미지
원본: 인물 전체 사진
마스킹된 이미지
마스킹 후: 캠코더 주변만 남기고 나머지는 흰색

이 전처리의 효과는 극적입니다. 모델이 처리해야 할 시각 정보가 대폭 줄어들어, "어디까지가 대상이고 어디부터가 배경인지"를 훨씬 쉽게 판단할 수 있게 됩니다.

1.5배 마진이 핵심입니다. 1.0배(딱 맞는 bbox)는 오브젝트 경계가 잘리고, 2.0배 이상은 불필요한 배경이 너무 많이 포함됩니다. 1.5배는 실험적으로 찾은 최적값입니다.

2

네거티브 캡셔닝

마스킹된 이미지를 VLM(gemini-3-flash-preview)에게 보여주고, 대상 오브젝트를 제외한 모든 잔여 요소를 감지하게 합니다.

프롬프트의 핵심은 이렇습니다:

You are an expert image analysis AI.

This image has been pre-processed: a bounding box
has been applied to focus on a target object,
with the area outside the bounding box replaced
with white. However, some non-target elements may
remain within the bounding box area.

Given the target object description below,
identify and list every visible element in this
image that is NOT part of the target object:

- Background patterns, textures, or colors
- Lines, grids, borders, or dividers
- Text or labels not belonging to the target
- Shadows, gradients, or artifacts
- Parts of other objects or people

Output ONLY a JSON array of strings.

Target Object (EXCLUDE this):
The handheld camcorder held in the person's hand.

전처리된 이미지라는 컨텍스트를 프롬프트에 명시하는 것이 핵심입니다. 이를 통해 VLM이 흰색 영역을 마스킹 결과로 인식하고, bbox 내부에 남은 잔여 요소만 정확히 감지할 수 있게 됩니다.

gemini-3-flash-preview는 마스킹된 이미지 안에 남은 비대상 요소들을 감지합니다. character-1에서는 다음과 같은 잔여 요소를 반환했습니다:

[
  "person's right hand gripping the camcorder",
  "person's left arm and sleeve near the camcorder",
  "beige/olive jacket fabric surrounding the hands",
  "stone pavement ground visible below",
  "faint shadow on the ground"
]

이 캡션들은 다음 단계에서 추출 프롬프트에 "제거해야 할 요소"로 삽입됩니다.

3

추출

마스킹된 이미지와 네거티브 캡션을 결합하여, gemini-3-pro-image-preview에게 최종 추출을 요청합니다.

프롬프트 구조는 이렇습니다:

You are an expert image editing AI.
Your task is to extract a specific object from
the provided image.

Instructions:
1. Extract the requested element and place it on
   a pure white background (#FFFFFF).
2. CRITICAL: Maintain the exact original size,
   position, and orientation.
3. Remove all other elements completely.

Specifically, make sure to completely remove:
- person's right hand gripping the camcorder
- person's left arm and sleeve near the camcorder
- beige/olive jacket fabric surrounding the hands
- stone pavement ground visible below
- faint shadow on the ground

4. CRITICAL: Every pixel not part of the target
   must be exactly #FFFFFF pure white.
5. Ensure clean, sharp edges.

Target Object to Extract:
The handheld camcorder held in the person's hand.

프롬프트 구조를 보면, "제거해야 할 것"과 "추출해야 할 것"이 함께 명시되어 있습니다. 네거티브 캡셔닝의 결과가 "Specifically, make sure to completely remove" 섹션에 그대로 삽입됩니다.

다시 결과를 보겠습니다:

fail-1
실패: 캠코더를 잡고 있는 손이 함께 추출됨
fail-2
실패: 크기와 모양이 변형됨

6. NBskills에서 물체 추출을 간편하게

위 과정을 직접 수행하려면 상당한 개발 작업이 필요합니다 — Bbox 탐지, 이미지 마스킹, 모델 API 호출, 결과 검증까지. NBskills는 이 모든 과정을 자동화합니다.

자동 Bbox 탐지 + 최적 마스킹

이미지와 추출 대상을 지정하면, VLM이 자동으로 Bbox를 탐지하고 1.5배 확장 마스킹을 수행합니다. 직접 좌표를 지정하거나 이미지 전처리 코드를 작성할 필요가 없습니다.

반복 실험으로 검증된 추출 프롬프트

단순히 "추출해줘"가 아닌, 반복 실험을 통해 최적화된 프롬프트 전략이 내장되어 있습니다. 네거티브 캡셔닝과 결합된 구조화 프롬프트가 자동으로 적용되어, 배경 제거 정확도를 높입니다.

다양한 이미지 유형 대응

인테리어 사진, 포스터, 인포그래픽, 캐릭터 일러스트 등 다양한 유형의 이미지에서 물체 추출이 가능합니다. Bbox 마스킹으로 복잡한 배경을 자동 제거하기 때문에, 이미지가 복잡할수록 효과가 극적입니다.

최신 AI 모델 자동 라우팅

NBskills는 작업 유형에 따라 최적의 AI 모델을 자동으로 선택합니다. 물체 추출, 텍스트 렌더링, 이미지 생성 등 각 태스크에 가장 적합한 모델이 자동 적용됩니다.


7. 마치며

AI 이미지에서 오브젝트를 추출하는 것은 단순한 "자르기"가 아닙니다. 배경 제거, 형태 보존, 깨끗한 경계선 — 각각이 독립적인 도전 과제입니다.

이 글에서 소개한 전략의 핵심 교훈은 이것입니다:

프롬프트에 정보를 추가하는 것보다, 입력 이미지에서 불필요한 정보를 제거하는 것이 더 효과적이다.

Bbox 마스킹으로 시각 정보를 줄이고, 네거티브 캡셔닝으로 잔여 요소를 명시하는 것 — 이 조합이 물체 추출 성공률을 크게 높였습니다. 이 원칙은 물체 추출뿐 아니라, AI 프롬프팅 전반에 적용되는 보편적인 교훈이기도 합니다.

NBskills에서 이 모든 노하우를 자동화하여, 누구나 최적의 물체 추출 결과를 얻을 수 있도록 만들었습니다.