3D 장면 준비 및 Blender 설정
가장 먼저 AI가 렌더링할 3D 장면이 필요합니다. 초보자를 위해 모든 설정이 완료된 샘플 장면을 제공합니다. 이는 학습 과정을 간소화하고, 바로 실습을 시작할 수 있도록 돕습니다. 또한, Patreon에서는 더 자세한 튜토리얼도 제공합니다. 기존에 만들어둔 장면을 재사용하는 것도 좋은 방법입니다. 예를 들어, TikTok용으로 제작한 Zelda 팬 애니메이션을 활용할 수 있습니다.
16:9 비율로 장면을 설정하고, 기본 3D 환경을 만듭니다. 이 과정에서 장면의 모든 재료와 조명을 제거해야 합니다. AI가 이러한 요소를 처리하므로 기존 조명이나 재료 설정은 필요하지 않습니다. 3D 모델, 배경, 그리고 렌더링 설정을 포함한 완벽한 Blender 장면 설정 튜토리얼은 Patreon에서 확인할 수 있습니다. 이러한 설정을 통해 AI 렌더링의 기본 토대를 마련할 수 있습니다.
핵심:
- 16:9 비율로 장면 설정
- 장면 내 모든 재료 및 조명 제거
- Patreon에서 제공하는 Blender 장면 설정 튜토리얼 활용
렌더 패스(Render Passes)의 이해와 활용
렌더 패스는 전통적인 VFX 워크플로우에서 최종 이미지를 생성하는 데 사용되는 레이어를 개별적으로 렌더링하는 기술입니다. 이를 통해 이미지의 반사율과 같은 모든 측면을 재 렌더링 없이 제어할 수 있습니다. 이러한 렌더 패스는 AI 이미지 생성을 제어하는 데에도 활용될 수 있습니다.
ControlNet은 이미지의 구성을 유지하면서 새로운 이미지를 생성하는 데 사용되는 기술입니다. 특정 이미지의 구도를 선호하는 경우, AI 전처리기를 사용하여 이미지의 깊이를 추정하고, 해당 깊이 정보를 기반으로 새로운 이미지를 생성할 수 있습니다. AI 전처리기는 이미지 시퀀스에서 특히 유용하며, 이미지의 일관성을 유지하는 데 도움이 됩니다.
Blender에서 Z 렌더 패스를 활성화하고 뷰어 노드를 사용하여 깊이 정보를 시각화할 수 있습니다. 맵 범위 노드를 사용하여 깊이 값을 0과 1 사이로 조정하고, 반전을 통해 검은색 픽셀이 멀리, 흰색 픽셀이 가깝게 표현되도록 설정합니다. 커브 노드를 사용하면 값을 더욱 세밀하게 조정하여 이미지의 분리를 개선할 수 있습니다. 마지막으로 파일 출력 노드를 추가하여 결과를 저장합니다.
핵심:
- 렌더 패스를 사용하여 이미지의 모든 측면 제어
- ControlNet으로 이미지 구성 유지
- Blender에서 Z 렌더 패스 활성화 및 깊이 정보 시각화
Canny Edge를 활용한 라인 아트 생성
ControlNet에서 자주 사용되는 기능 중 하나는 Canny Edge입니다. 이 기능은 이미지의 윤곽선을 추출하여 이미지 생성을 안내합니다. 기존에는 AI 전처리기를 사용해야 했지만, 3D 지오메트리가 있다면 Blender의 Freestyle 도구를 활용하여 더욱 정확한 윤곽선을 얻을 수 있습니다.
Freestyle 도구를 활성화하고, 렌더 패스로 설정하여 흰색 윤곽선을 생성합니다. 알파 오버 노드를 사용하여 렌더 레이어를 결합하고, 파일 출력 노드를 통해 최종 이미지를 저장합니다. 이를 통해 AI가 이미지의 구성을 더 잘 이해하고, 일관성 있는 결과물을 생성할 수 있습니다.
핵심:
- Canny Edge를 활용하여 이미지의 윤곽선 추출
- Blender Freestyle 도구를 사용하여 더욱 정확한 윤곽선 생성
- 알파 오버 노드를 사용하여 렌더 레이어 결합
개별 프롬프트를 위한 마스크 생성
마지막으로, 이미지의 개별 영역에 대한 프롬프트를 분리하려면 마스크를 생성해야 합니다. Crytomatte 렌더 패스가 있지만, 아직 AI 도구와 호환되지 않으므로 자체 버전을 만들어야 합니다. 이를 위해 각 객체에 단순한 Emission 셰이더를 할당하고 임의의 색상을 지정합니다.
이렇게 생성된 색상 마스크를 ComfyUI에서 사용하여 각 색상에 개별 프롬프트를 할당할 수 있습니다. 이 방법을 사용하면 이미지의 각 부분에 대한 AI 생성을 세밀하게 제어할 수 있습니다.
핵심:
- 개별 프롬프트를 위한 마스크 생성
- 각 객체에 Emission 셰이더를 할당하고 임의의 색상 지정
- ComfyUI에서 색상 마스크를 사용하여 개별 프롬프트 할당