상세 컨텐츠

본문 제목

이미지 품질은 유지하고 출력시간 줄이기

Stable Diffusion

by dfus1on 2023. 4. 29. 18:32

본문

Stable Diffusion은 시드 숫자(seed number)에 기반한 잡음처럼 보이는 이미지를 먼저 생성하는 알고리즘을 사용합니다. 초기 잡음 이미지에서 텍스트 프롬프트와 일치하는 객체, 패턴, 색상 등을 인식하고 이미지를 약간 개선하려고 시도합니다. 그런 다음 인식 프로세스를 다시 실행합니다. 이 과정이 반복되며 충분한 반복 후에는 사람 눈에 인식 가능한 이미지가 됩니다.

 

이렇게 작업하는 것이 바로 샘플링 단계입니다. 아래 이미지 시리즈에서 CFG 척도가 8으로 설정된 DPM++ 2M Karras 샘플러 방법을 사용하여 이 과정을 보여줍니다.

 

스텝 80은 스텝 20에 비해 4배나 많은 시간이 걸리지만 디테일 증가가 없고, 심지어 다리가 하나 더 생기는 등의 부작용도 나타났다

높은 샘플링 스텝 값의 문제점

더 많은 스텝이 더 많은 세부 사항과 더 높은 출력 이미지 품질을 가져올 것이라고 생각하여 샘플링 스텝 수를 매우 높게 설정하려고 할 수도 있습니다. 하지만 그렇지 않을 수도 있습니다. 샘플링 스텝 값을 설정할 때 고려해야 할 몇 가지 요소가 있습니다: 높은 샘플링 스텝은 이미지 당 더 높은 처리 시간을 가져옵니다.

 

많은 샘플링 스텝을 사용하여 이미지를 생성하는 것은 더 높은 처리 성능과 VRAM이 필요할 수도 있으며, 이는 시스템의 그래픽 카드(GPU) 사양에 직접적으로 연결됩니다. 일정한 한계에서 이미지에 추가되는 세부 정보의 양이 정점에 도달하며, 이 값 이상의 추가 샘플링 스텝은 오히려 이미지 품질을 저하시킬 수 있습니다.

 

일정한 샘플링 스텝 수 이상에서는 세부 정보가 더 이상 증가하지 않고 오히려 감소할 수 있습니다. 샘플링 스텝 최적화 및 처리 시간 줄이기 샘플링 스텝이 처리 시간과 직접적인 관련이 있기 때문에, 여전히 원하는 출력 이미지 품질과 세부 정보를 얻으면서 샘플링 스텝을 최소화하는 방법에 관심이 있을 수 있습니다.

 

이미지 생성시간 줄이기

처리 시간을 줄이는 것은 샘플링 스텝이나 GPU 대여료를 기준으로 요금을 부과하는 서비스를 사용하는 경우 특히 중요합니다. 따라서 처리 시간을 줄이기 위한 몇 가지 팁을 공유합니다.

  1. 낮은 스텝에서 시작하여 높여 나갑니다. 초기 생성에는 낮은 스텝 수를 사용하여 텍스트 프롬프트와 시드가 원하는 이미지 구성에 가까운 결과를 반환하는지 확인합니다. 프롬프트와 시드를 좋아한다면 스텝 수를 늘려 이미지에 더 많은 세부 사항을 추가할 수 있습니다.
  2. 작은 이미지를 생성한 후 업스케일합니다. 샘플링 스텝 외에도 처리 시간의 주요 영향 요소는 출력 이미지의 높이와 너비입니다. 최종 이미지 크기를 2048 x 2048로 원한다고 가정해 보겠습니다. 처리 시간을 줄이거나 동일한 처리 시간 내에 더 많은 샘플링 스텝을 허용하기 위해 512 x 512 크기의 이미지로 이미지 생성을 수행할 수 있습니다. 원하는 결과를 얻으면 4배로 업스케일하여 2048 x 2048로 변환할 수 있습니다. 이를 Stable Diffusion 내에서 수행하거나 무료 타사 업스케일러를 사용할 수 있습니다.
  3. 텍스트 프롬프트를 최적화합니다. 일정한 샘플링 스텝 값 이상에서 이미지 출력이 반드시 저하되지는 않지만 동일한 구성의 다른 변형으로 나타납니다. 높은 스텝 수로 그 모습을 달성하는 대신 텍스트 프롬프트에 키워드를 추가하여 그 모습을 달성해 보십시오. 그렇게 하는 방법에 대한 아이디어를 얻으려면 텍스트 프롬프트를 사용하여 이미지에 더 많은 색상과 포화도를 추가하는 방법에 대한 가이드를 참조하세요.
  4. CFG 스케일을 줄입니다. 이 설정은 Stable Diffusion이 텍스트 프롬프트를 얼마나 밀접하게 따르도록 할지를 조절합니다. 많은 사용자들은 출력 이미지에 대한 통제력을 높이기 위해 CFG를 높이는 실수를 합니다. 하지만 일정 수준까지는 그렇게 될 수 있지만, CFG는 높은 값에서 출력 이미지 품질이 저하되는 것으로 알려져 있습니다.
  5. 다른 샘플러 방법을 시도해보세요. 다른 샘플러 방법은 샘플링 스텝 수에 따라 더 나쁘거나 더 좋게 작동합니다. 예를 들어, UniPC와 DPM++ 2M Karras는 샘플링 스텝이 5 정도에서도 괜찮은 이미지 결과를 반환할 수 있지만, 일반적으로 DDIM은 최소한 10 단계가 필요합니다. 이렇게하면 왜곡되지 않은 이미지가 반환됩니다.

다음 시간에는 샘플러 별 특징과 최적 CFG Scale, 샘플링 스텝 수에 대해 알아보도록 하겠습니다.

 

반응형

관련글 더보기

댓글 영역