사진에서 벽돌 디자인으로: 2D 모자이크, 3D 모델 및 제작 가능성
요약
본 글은 사진이나 일러스트레이션을 벽돌(레고 스타일) 디자인으로 변환하는 2D 모자이크 및 3D 모델 제작 가능성에 대해 다룹니다. 특히, 생성형 AI가 전체 결과물을 상상하게 하는 것보다 작고 결정론적인 파이프라인을 사용하는 것이 더 신뢰할 수 있는 결과를 얻는다고 강조합니다.
핵심 포인트
- AI를 활용하여 사진을 벽돌 디자인으로 변환하는 방법 제시
- 전체 이미지 대신 작은 그리드 단위로 접근해야 재현성이 높음
- Python 기반의 로컬 파이프라인은 이미지를 모자이크 패턴과 부품 개수로 변환함
- 2D 기준선(baseline) 구축 후 3D 워크플로우를 별도로 진행할 것을 권장
고지 사항: 이 글은 AI 어시스턴트가 작성했으며 연결된 소스 코드와 로컬 테스트 실행을 통해 검토되었습니다. 오픈 소스 2D 모자이크 저장소와 별도의 브라우저 기반 3D 웹사이트는 서로 다른 프로젝트입니다.


이것들은 주제 아이디어를 위한 원본 컨셉 일러스트레이션이며, 생성된 출력의 스크린샷이나 검증된 실제 제작물은 아닙니다.
강아지 사진, 인물 초상화, 도시 거리, 풍경 또는 상상의 기계 스케치 모두 벽돌 디자인을 시작하는 출발점이 될 수 있습니다. 하지만 흥미로운 공학적 질문은
따라서 “거의 모든 주제로 프로세스를 시작할 수 있다”는 것은 창의적인 제안일 뿐, 모든 입력이 조립 가능한 세트를 생성한다는 주장은 아닙니다. 이 구분을 명확히 하기 위해 아래에 작고 감사(auditable)할 수 있는 2D 모자이크 파이프라인을 사용한 후, 별도의 3D 워크플로우와 여전히 필요한 검사 사항들을 설명하겠습니다.
재현 가능한 2D 기준선 (baseline)
벽돌 모양의 이미지와 실제로 사용할 수 있는 벽돌 계획은 서로 다른 것입니다. 이미지 모델은 어떤 그리드 셀이 점유되었는지, 몇 개의 부품이 필요한지, 또는 특정 색상을 실제로 구매할 수 있는지 알려주지 않으면서도 그럴듯한 스터드(studs)를 그려낼 수는 있습니다. 평면 모자이크의 경우, 생성형 모델에게 전체 결과를 상상하도록 요청하는 것보다 작고 결정론적인 파이프라인이 더 나은 시작점이 되는 경우가 많습니다.
이 로컬 우선 방식의 Python 구현체는 이미지를 그리드, 미리보기, 인쇄 가능한 패턴, 그리고 근사치 부품 개수로 변환합니다. 이는 물리적으로 검증된 빌드를 생성한다고 주장하지 않습니다.
재현 가능한 예시
저장소에는 로켓 일러스트레이션과 생성된 모자이크가 포함되어 있습니다:

이 애니메이션은 저장소의 실제 입력 일러스트레이션과 2D 모자이크를 사용한 것이며, 3D 제품 데모는 아닙니다.
본 게시물에서는 포함된 CLI를 해당 소스 이미지에 실행했습니다:
brickmosaic examples/rocket.png --width 32 --max-colors 10 -o output
실행 결과는 32 × 32 그리드에 1,024개의 채워진 셀과 10가지 색상을 보고했습니다. 이 1,024라는 수치는 불투명한 예시 이미지에 대한 설명이며, 배경이 투명한 사진의 일반적인 결과는 아닙니다. 프로젝트의 11개 자동화 테스트도 로컬 환경에서 통과했습니다.
출력을 검사 가능하게 만드는 네 가지 결정 사항
1. 이미지를 정규화하고 샘플링하기
로더(loader)는 EXIF 방향을 적용한 후 RGBA로 변환합니다. 그런 다음 Pillow의 BOX 리샘플링을 사용하여 요청된 그리드 크기로 이미지 크기를 조정합니다. 높이가 생략되면 원본 종횡비를 따릅니다. 너비와 높이는 각각 1–128 스터드(studs)로 제한되어, 실수로 입력하여 거대한 패턴이 생성되는 것을 방지합니다.
2. 투명도를 빈 셀로 처리하기
설정 가능한 알파 임계값(alpha threshold) 아래의 셀은 그리드에서 None이 됩니다. 사소하게 들릴 수 있지만, 이는 투명한 PNG가 단단한 직사각형 배경 대신 모양을 갖춘 모자이크를 생성할 수 있다는 것을 의미합니다. 사진에 대한 선택적 로컬 배경 제거 기능이 제공되지만, 분할(segmentation)은 오류가 있을 수 있습니다: 모델은 얇은 안테나를 제거하거나 배경의 일부를 남겨둘 수 있습니다. 깨끗하게 잘려 나간 투명 이미지가 더 예측 가능한 입력입니다.
3. Lab 공간에서 색상을 일치시키고, 그 다음 팔레트를 제한하기
순수 RGB 거리는 인지된 색상 차이를 나타내는 좋지 않은 대리 지표(poor proxy)입니다. 이 구현은 sRGB를 CIE Lab (D65)로 변환하고 제곱 델타 E 1976 거리(squared Delta E 1976 distance)를 사용하여 가장 가까운 팔레트 항목을 선택합니다. 먼저 각 불투명 셀에 전체 팔레트를 할당하고, 가장 빈번한 max_colors 항목을 선택한 다음, 그 더 작은 세트 내의 모든 불투명 셀을 재할당합니다.
이 두 단계 과정은 중요합니다: 단순히 덜 빈번한 색상을 버리는 것만으로는 구멍이나 일관되지 않은 개수를 남길 것입니다. 이 팔레트는 제조사 부품/색상 조합에 대한 인증된 카탈로그가 아니라, 근사적인 시각적 참고 자료입니다.
4. 미리보기와 함께 데이터를 내보내기
파이프라인은 mosaic.png, pattern.svg, parts.csv 및 plan.json을 작성합니다. PNG는 빠른 확인용이며, 번호가 매겨진 SVG가 작업대에서 더 유용합니다. CSV와 JSON은 총계를 검사하고 자체 다운스트림 도구를 구축할 수 있게 해줍니다. 테스트는 CSV 개수와 JSON 총계가 그리드와 일치하는지 확인합니다.
AI가 도움을 주는 부분과 그렇지 않은 부분
선택적인 AI 배경 제거는 U²-Net의 u2netp 변형을 통해 로컬에서 실행됩니다. 첫 번째 AI 실행 시 모델 가중치가 다운로드되며, 입력 이미지는 사용자의 장치에서 처리됩니다. 분할 결과는 마스크일 뿐이며, 벽돌이나 부품의 정확한 유무를 증명하는 것은 아닙니다. 핵심 크기 조정, 색상 할당 및 내보내기는 결정론적(deterministic)이며 AI 추가 기능 없이 작동합니다.
평면적인 1×1 스터드 그리드는 여전히 적절한 베이스, 실제 색상/부품 가용성 확인, 그리고 인간의 검토가 필요합니다. 이는 3D 객체의 법적 연결, 하중 지지 지원 또는 조립 순서에 대해서는 아무것도 말해주지 않습니다. 그러한 주장은 모든 벽돌 스타일 이미지를 “조립 가능”하다고 부르기보다는 별도로 유지되어야 합니다.
3D 제안으로의 전환
2D 그리드는 보이는 셀을 기록합니다. 3D 디자인은 추가적으로 깊이, 숨겨진 표면, 연결, 지지, 부품 및 조립 순서를 결정해야 합니다. 이러한 선택은 주제에 따라 다릅니다: 반려동물은 포즈와 지원이 필요하고; 건물은 벽과 지붕이 필요하며; 풍경은 읽을 수 있는 지형 레이어가 필요합니다. 단일 이미지만으로는 모든 보이지 않는 표면을 확립할 수 없습니다.
별도의 Image2LEGO 브라우저 워크플로우는 참조 이미지를 받아 편집 가능한 3D 벽돌 모델 제안을 제시하며, 여기에는 모델 검사, 단계, 부품 보기 및 내보내기 옵션이 포함됩니다. 이는 초상화, 반려동물, 건축물, 풍경 및 오리지널 콘셉트를 위한 더 광범위한 시작점이 됩니다. 이것이 모든 제안된 연결이 법적이고, 안정적이거나, 실제 색상으로 재고가 있다는 것을 의미하지는 않습니다. 구매하기 전에 모델과 부품을 검토하십시오.
오픈 소스 2D 구현체(open-source 2D implementation)에는 CLI, 예시 이미지 및 테스트가 포함되어 있습니다. 별도의 브라우저 기반 3D 제안 워크플로우는 photo-to-bricks 가이드를 참고하세요. 해당 웹사이트는 2D 리포지토리의 소스 코드가 아니며, 이곳에서 나온 디지털 제안 역시 누군가 부품을 구매하기 전에 수동으로 제작 가능성 검사가 필요합니다.
어떤 주제부터 시도해 보시겠습니까? 그리고 그 디지털 제안이 실제 제작 가능하다는 것을 확인하려면 무엇을 검증해야 할까요?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
