cv.cm

AI · AI 이미지

이미지 투 이미지 AI는 어떻게 작동할까?

9분 분량

핵심 답변

이미지 투 이미지 AI는 순수한 노이즈가 아니라 내 그림에서 출발합니다. 정해진 만큼 노이즈를 더한 뒤 프롬프트를 따라 노이즈를 제거하므로, 강도가 낮으면 원본이 유지되고 높으면 많이 바뀝니다. 마스크는 변화를 한 영역(인페인팅)이나 새 가장자리(아웃페인팅)로 제한하고, 깊이 맵·포즈·윤곽 같은 제어 이미지는 스타일이 바뀌어도 레이아웃을 고정합니다.

깊이 맵 생성 열기

핵심 아이디어: 노이즈를 일부만 입히고 다시 제거

확산 모델은 보통 완전한 무작위 상태에서 시작해 노이즈를 제거하며 이미지를 만듭니다. 이미지 투 이미지는 그 여정의 앞부분을 건너뜁니다. 내 이미지를 가져와 그림이 일부 가려질 때까지 노이즈를 더한 다음, 남은 노이즈 제거 단계를 프롬프트와 함께 실행합니다. 이 방법은 SDEdit 논문에서 소개되었고, 확산 모델이 추가 학습 없이도 거친 스케치나 편집한 사진을 사실적인 이미지로 바꿀 수 있음을 보여 주었습니다.

노이즈의 양이 가장 중요한 설정입니다. 도구에 따라 강도(strength), 디노이즈(denoise), 이미지 가중치(image weight)라고 부릅니다. 노이즈가 적으면 미세한 질감만 바뀝니다. 노이즈가 많으면 형태가 대부분 사라져서 모델이 기존 색과 레이아웃을 느슨하게만 따르는 새 그림을 만들어 냅니다.

많은 구현에서 강도는 실제로 실행되는 스텝 수도 결정합니다. 도구가 50스텝, 강도 0.8로 설정되어 있다면 이미지에는 약 40스텝 분량의 노이즈가 더해지고 그 40스텝만큼 노이즈를 제거합니다.

강도 값 고르기

정확한 수치는 모델마다 다르지만, 0~1 스케일을 쓰는 도구라면 아래 범위가 좋은 출발점입니다. 이미지 가중치 스케일을 쓰는 도구는 반대인 경우가 많아서, 가중치가 높을수록 원본을 더 많이 유지합니다.

강도원본에서 남는 것적합한 용도
0.1~0.3거의 전부: 형태, 얼굴, 색가벼운 보정, 그레인 추가, 작은 질감 변화
0.3~0.5구도와 대부분의 디테일조명이나 색보정 변경, 약한 스타일 변화
0.5~0.7레이아웃과 주요 형태, 디테일은 새로 그려짐사진을 일러스트로, 스케치를 완성작으로
0.7~0.9대략적인 색 덩어리와 위치이미지를 느슨한 레이아웃 힌트로만 사용
1.0거의 없음텍스트 투 이미지와 같음

강도는 0.1 정도씩 조금씩 올리고, 시드는 고정해서 강도만의 효과를 확인하세요. 스타일이 충분히 바뀌기도 전에 인물의 얼굴이 너무 많이 바뀐다면 강도만으로는 안 되는 경우입니다. 제어 이미지를 추가하거나 배경에만 인페인팅을 사용하세요.

참조 이미지와 스타일 변환

모델에 주는 모든 이미지가 출발점은 아닙니다. 많은 도구는 노이즈를 입히지 않고 결과를 안내하는 참조 이미지도 받습니다. 참조 이미지는 특징으로 변환되어 텍스트 프롬프트와 함께 작동합니다. IP-Adapter가 잘 알려진 오픈 방식입니다. 고정된 텍스트 투 이미지 모델에 이미지 특징을 위한 별도의 어텐션 레이어를 가진 작은 모듈을 붙여서 이미지 프롬프트와 텍스트 프롬프트를 함께 줄 수 있게 합니다. 호스팅 도구에서는 이미지 프롬프트, 스타일 레퍼런스, 캐릭터 레퍼런스라고 부르는 경우가 많습니다.

그림의 스타일을 바꾸는 흔한 방법은 두 가지입니다.

  • 스타일 프롬프트를 쓰는 이미지 투 이미지. 내 사진이 시작 이미지이고 프롬프트에 새 스타일을 적습니다. 예: watercolor illustration, loose brush strokes, white paper. 간단하지만 강도가 높아지면 얼굴과 작은 디테일이 변합니다.
  • 구조는 한 이미지에서, 스타일은 다른 이미지에서. 제어 이미지(깊이 또는 윤곽)가 사진의 레이아웃을 유지하고, 스타일 참조나 프롬프트가 룩을 정합니다. 강도가 높아도 구도가 안정적으로 유지됩니다.
Start image: photo of a street market at dusk
Strength:    0.55
Prompt:      gouache painting of a street market at dusk, flat shapes,
             warm lantern light, limited palette of orange, teal and cream
Negative:    photo, text, watermark

이미지를 지시문이 아니라 완성되었을 때의 모습으로 묘사하세요. 프롬프트는 명령으로 실행되는 것이 아니라 이미지 캡션과 대조되기 때문에, make this a painting보다 Gouache painting of a street market이 더 잘 작동합니다. 편집 쌍으로 학습된 최신 모델 중에는 지시문을 이해하는 것도 있으니 도구가 무엇을 기대하는지 확인하세요.

인페인팅과 아웃페인팅

인페인팅은 마스크로 지정한 영역만 바꿉니다. 바꿀 영역에 마스크를 칠하면(보통 흰색이 변경, 검은색이 유지) 모델이 프롬프트와 주변 픽셀에 모두 맞게 채웁니다. RePaint는 일반 확산 모델도 노이즈 제거 단계마다 알려진 픽셀을 되돌려 놓는 방식으로 인페인팅할 수 있음을 보여 주었고, 마스크로 학습한 전용 인페인팅 모델은 보통 더 자연스럽게 섞입니다.

  1. 마스크를 물체보다 조금 크게 칠해서 모델이 가장자리를 섞을 여유를 주세요.
  2. 마스크 가장자리를 부드럽게(페더 또는 블러) 해서 이음새가 눈에 띄지 않게 하세요.
  3. 단순히 remove person이 아니라 empty wooden bench in a park처럼 마스크 영역과 그 주변 맥락을 함께 프롬프트로 쓰세요.
  4. 교체에는 중간~높은 강도를, 복구에는 낮은 강도를 사용하세요.
  5. 큰 이미지에서 영역이 작다면 크롭 후 업스케일 옵션(only masked, mask crop 등으로 불립니다)을 써서 모델이 더 높은 해상도로 작업하게 하세요.

아웃페인팅은 이미지를 가장자리 밖으로 확장합니다. 캔버스를 키우고 새로 생긴 빈 영역을 마스크한 뒤, 모델이 장면을 이어서 채웁니다. 정사각형 사진을 16:9 배너로 바꿀 때 유용합니다. 한 번에 이미지의 4분의 1에서 절반 정도씩 단계적으로 확장하세요. 한꺼번에 크게 늘리면 물체가 반복되거나 원근이 무너지기 쉽습니다.

ControlNet 방식 제어: 깊이, 포즈, 윤곽

ControlNet은 고정된 이미지 모델의 일부를 학습 가능한 복사본으로 붙여 추가 제어 이미지를 읽게 하는 방식입니다. 제어 이미지가 구조를 고정하고, 프롬프트가 그 구조를 무엇으로 채울지 정합니다. 원 논문은 윤곽, 깊이, 세그멘테이션 맵, 사람의 포즈로 제어하는 방법을 보여 주었고, 지금은 많은 모델 계열에 같은 아이디어가 있습니다.

제어 유형입력고정되는 것일반적인 용도
윤곽(Canny, 라인 아트)흑백 윤곽선 이미지외곽선과 세부 형태제품이나 건물을 그대로 유지하며 재질과 빛을 바꿈
깊이(Depth)가까운 곳이 밝고 먼 곳이 어두운 회색조 깊이 맵3D 레이아웃과 앞뒤 관계공간은 유지하면서 방이나 풍경의 스타일을 바꿈
포즈(OpenPose 방식)관절을 이은 스틱 피겨 골격몸의 자세, 팔다리, 머리 방향새 캐릭터를 정확한 포즈로 배치
세그멘테이션(Segmentation)클래스마다 색이 다른 영역하늘, 도로, 사람, 사물이 놓일 위치영역 단위로 장면 배치
낙서 / 스케치(Scribble / sketch)손으로 그린 대략적인 그림느슨한 구도낙서를 완성작으로 바꿈

대부분의 도구는 제어마다 가중치(예: conditioning scale)를 주고, 때로는 노이즈 제거 스텝에서 적용을 시작하고 끝내는 지점도 정할 수 있습니다. 가중치가 너무 높으면 제어 이미지를 지나치게 그대로 따라 윤곽선의 노이즈가 딱딱한 선이 되고, 너무 낮으면 무시됩니다. 명확한 제어 이미지와 중간 정도의 값이 보통 가장 좋습니다. 깊이와 포즈처럼 두 가지 제어를 함께 쓸 수도 있는데, 이때는 각각 가중치를 낮게 주세요.

사진에서 깊이 맵을 만들려면 깊이 추정 모델을 쓰면 됩니다. 예를 들어 cv.cm의 깊이 맵 도구는 브라우저에서 사진을 회색조 깊이 이미지로 바꿔 주고, 이를 깊이 제어 이미지로 쓸 수 있습니다.

흔한 문제와 해결법

  • 얼굴이 다른 사람처럼 바뀐다. 강도를 낮추거나, 배경에만 인페인팅하거나, 얼굴·캐릭터 참조를 사용하세요.
  • 강도를 높여도 색이 원본과 너무 비슷하다. 시작 이미지가 전체 색조를 그대로 가지고 있기 때문입니다. 먼저 편집기에서 색을 바꾸거나, 제어 이미지와 더 높은 강도를 사용하세요.
  • 인페인팅 후 이음새가 보인다. 마스크를 키우고 가장자리를 부드럽게 하며, 프롬프트에 주변 맥락을 조금 넣으세요.
  • 아웃페인팅 후 물체가 두 개로 겹치거나 일그러진다. 더 작은 단계로 확장하고 프롬프트에 장면 묘사를 반복하세요.
  • 결과가 흐릿하다. 디테일을 더하기엔 강도가 너무 낮거나 이미지가 너무 작을 수 있습니다. 먼저 업스케일하거나 마스크 크롭 옵션을 사용하세요.
  • 권리 문제. 내 것이 아닌 사진의 스타일을 바꿔도 내 것이 되지는 않습니다. 원본의 권리는 그대로 유지됩니다.

자주 묻는 질문

이미지 투 이미지에서 디노이징 강도란 무엇인가요?

모델이 그림을 다시 그리기 전에 내 이미지에 더하는 노이즈의 양입니다. 강도가 낮으면 원본이 거의 그대로 남고, 높으면 모델이 대부분을 바꿔 버립니다.

이미지 투 이미지와 인페인팅은 어떻게 다른가요?

이미지 투 이미지는 그림 전체를 바꿀 수 있습니다. 인페인팅은 마스크한 영역만 바꾸고 나머지는 그대로 두려고 합니다.

스타일 변환에 ControlNet이 꼭 필요한가요?

낮거나 중간 강도의 간단한 스타일 변경에는 필요 없습니다. 강하게 스타일을 바꾸면서 정확한 레이아웃, 포즈, 윤곽을 유지해야 할 때 제어 이미지가 도움이 됩니다.

아웃페인팅이 왜 가장자리에서 물체를 반복하나요?

모델이 새 공간을 경계 옆에 가장 있을 법한 것, 즉 같은 것의 반복으로 채우기 때문입니다. 더 작은 단계로 확장하고 새 영역에 나타날 것을 묘사하세요.

실제 사람의 사진을 이미지 투 이미지 입력으로 써도 되나요?

기술적으로는 가능하지만 사진을 사용할 권리가 있어야 하고 많은 지역에서는 당사자의 동의도 필요합니다. 오해를 부르거나 해를 끼칠 수 있는 실존 인물 편집은 막아 두는 서비스도 많습니다.

AI 튜토리얼 전체