텍스타일 패턴 이미지 생성 AI 개발 회고

dev_woo·2025년 6월 30일
post-thumbnail

생성형 AI를 활용하여 고화질 텍스타일 디자인 이미지를 만드는 프로젝트를 진행하면서 겪었던 문제점들과 이를 해결하기 위한 노력, 그리고 최종적으로 얻은 결과에 대해 정리해보겠습니다.

특히, 텍스타일 디자인 분야의 특성상 심리스(seamless) 패턴 생성과 원본 디자인의 유지 및 변형이라는 상반된 요구사항을 만족시키기 위한 과정에 집중했습니다.

텍스타일 디자인이란?
옷, 커튼, 소파 커버, 침구류, 벽지 등 다양한 천(직물) 제품에 사용될 무늬, 질감, 색상 등을 디자인하는 예술이자 기술을 말합니다. 쉽게 말해 '원단에 입히는 옷' 또는 '패턴'을 만드는 작업으로 특정 패턴이 끊김 없이 반복되어 연속적으로 이어지는 심리스(seamless) 특성 을 가지는 것이 매우 중요합니다.

1.프로젝트 목표 및 초기 문제점

1-1.초기 문제점

프로젝트는 크게 두 가지 문제점에 직면해있었습니다.

첫째, 생성된 결과물을 확대할 경우 심한 노이즈가 발생하여, 실제 텍스타일 제품에 적용하기 어려웠습니다.
텍스타일 디자인은 실제 원단에 고해상도로 인쇄되어야 하므로, 이러한 노이즈는 치명적인 문제였습니다.

둘째, 특정 스타일의 재현율이 현저히 떨어졌습니다. 꽃이나 추상적인 이미지 생성에는 문제가 없었지만, 캐릭터, 체크무늬, 타이다이와 같이 정형화된 패턴을 제대로 적용되지 않거나 왜곡되어 생성되는 문제가 있엇습니다.

1-2.초기 해결 방안과 한계

초기 프로젝트는 SD1.5 모델과 IP-Adapter만을 사용하여 이미지를 생성하고 있었습니다. 따라서 최신 모델, ControlNet, LoRA 등을 활용하면 충분히 문제를 해결할 수 있을 것이라고 예상했습니다.

하지만 문제는 의외의 곳에서 발생했습니다. 최신 모델인 SD3.5나 Flux 모델은 기존에 사용하던 Automatic1111 라이브러리에서 지원하지 않았습니다. 심지어 해당 라이브러리는 2024년 7월 이후로 업데이트가 없어 새로운 API 서버를 구축해야 하는 상황에 놓였습니다.

1-3.ComfyUI

새로운 라이브러리를 찾던 중, ComfyUI를 활용하여 엔드포인트 서버를 구축하기로 결정했습니다.
ComfyUI를 선택한 주된 이유는 다음과 같습니다.

  1. 최신 모델 지원: SD3.5, Flux 등 최신 모델을 지원하여 다양한 시도가 가능했습니다.

  2. 커스텀 노드를 활용한 자유로운 워크플로우: 특히 ControlNet과 IP-Adapter를 적극적으로 활용하여 이미지 디테일을 만들어야 하는 저희 서비스 특성상, 높은 자유도의 워크플로우는 매우 중요한 선택 기준이었습니다.

  3. 기본적인 API 서버 기능 제공: API 서버로서 활용 가능하여 기존 시스템과의 연동이 용이했습니다.

1-4.모델 선정

ComfyUI를 기반으로 서버를 구축한 후, 각 모델이 텍스타일 디자인 생성에 얼마나 적합한지 테스트를 진행했습니다.
모델 선정 기준은 상업적 이용 가능 여부, 생성 결과물의 품질, ControlNet 및 IP-Adapter 등 추가 모델 지원 여부, 현재 컴퓨터 사양으로 사용 가능 여부, 심리스 패턴 생성 가능 여부였습니다.

최종적으로 Flux, SD3.5, SDXL 세 가지 모델을 비교했습니다.

  1. 상업적 라이선스: Flux는 결과물에 대한 상업적 이용이 무료였으며, SD 모델들은 연매출 10억 원 이하인 경우 상업적 이용이 가능하여 문제가 없었습니다.

  2. 생성 결과 품질: 세 모델 모두 기존 모델보다 좋은 결과를 보여주었습니다. 특히 Flux와 SD3.5의 경우 결과물의 퀄리티 자체가 다른 모델들에 비해 높았지만, 실사에 가깝게 생성되는 특성 때문에 레퍼런스 이미지와 유사한 모티브를 유지하며 변형해야 하는 저희 서비스에는 오히려 마이너스 요소로 작용했습니다.

  3. IP-Adapter 및 ControlNet 지원: 세 모델 모두 IP-Adapter와 ControlNet을 지원했지만, SD3.5 모델은 지원하는 ControlNet의 종류가 미흡했습니다.

  4. 심리스 디자인 생성: Flux는 LoRA를 지원했지만, 심리스가 깨지거나 기존 레퍼런스 이미지와 너무 다른 이미지를 생성하는 문제가 있었습니다. SD3.5는 심리스 디자인 생성을 지원하지 않았습니다. SDXL만이 심리스 디자인을 완벽하게 지원했습니다.

이러한 비교를 통해 최종적으로 SDXL 모델을 선택하게 되었습니다.

2. 상반된 요구사항에 대한 해결

SDXL 모델을 선정한 후, img2img, img2txt, ControlNet, IP-Adapter, LoRA 등을 중첩시켜 최적의 하이퍼파라미터를 찾기 위해 노력했습니다.
저희 서비스의 핵심은 원본의 느낌과 색상은 유지하면서도 형태와 배열이 변형되어야 한다는 것이었습니다.

하지만 여기서 또 다른 난관에 부딪혔습니다.

캐릭터나 체크무늬처럼 세밀한 표현이 필요한 패턴은 기존의 패턴을 유지해야 하는 반면, 꽃과 같은 추상적인 이미지는 원본의 느낌 정도만 가져오면서 배열이나 형태가 바뀌어야 했습니다.

이는 원본 이미지의 느낌과 형태를 유지하는 것 (IP-Adapter, LoRA)과 세밀한 표현을 통해 원본과 유사하게 유지하는 것 (ControlNet)이라는 상반된 요구사항이 충돌하는 지점이었습니다.

세밀하게 표현하면 원본과 너무 유사해지고, 원본과 다르게 변형하면 정형화된 캐릭터가 제대로 표현되지 않는 이도 저도 안 되는 상황이 반복되었습니다.

2-1. 스타일별 워크플로우 최적화

숱한 시도 끝에, 모든 스타일을 만족시키는 단일 설정은 불가능 하다는 결론에 도달했습니다. 특정 스타일이 잘나오면 다른 스타일이 제대로 나오지 않는 현상이 반복되었고, 특정 수치를 기준으로 스타일이 급격하게 변화하는 경향을 보였습니다.

따라서 모든 스타일별로 워크플로우 구성을 다르게하여 이미지를 생성하기로 결정했습니다.

이후 스타일별 최적화를 진행하면서, 각 스타일 특성에 맞는 Controlnet, IP-Apdater, LoRA의 조합 및 하이퍼파라미터를 세밀하게 조정하였습니다. 그 결과, 초기 프로젝트에서 가장 큰 문제였던 특정 스타일의 재현율 향상과 노이즈 문제를 동시에 해결 할 수 있었습니다.

3. 결론

이번 프로젝트를 통해 얻은 가장 큰 깨달음은 복잡한 문제를 해결하려 할수록 오히려 단순하게 접근해야한다는 점 이었습니다. 처음에는 상반된 요구사항들을 모두 만족시키기 위해 하나의 복잡한 해결책을 찾으려 했지만,
결국 복잡하게 얽힌 문제일수록 오히려 작고 단순하게 쪼개어 바라보는 시각이 필요했습니다.

각각의 문제점을 개별적으로 정의하고, 그에 맞는 최적의 해결책을 하나씩 찾아가는 과정을 통해 비로소 명확한 답을 발견 할 수 있었습니다. 모든 스타일을 만족시키는 하나의 워크플로우 대신, 각 스타일별로 최적화된 워크플로우를 구성한 것이 바로 이 단순화 전략의 결과라고 생각합니다.

profile
꾸준히 한걸음씩

0개의 댓글