지난 글에 이어 이번에는 steps 설정에 관해 이야기해보려고 합니다. 이건 뭐 딱히 숫자를 만져도 크게 바뀌는 것이 없어 보여서 답답하고 그렇죠. 숫자를 낮추면 렌더링이 빨라지고 숫자를 올리면 세월아 네월아 시간을 너무 많이 잡아먹어요. 어떻게 해야 할까? 고민 고민...
자! 우선 steps의 숫자는 이미지의 모양이나 배치와는 크게 상관없다는 것을 먼저 이해할 필요가 있어요. 극단적으로 말하자면 이미지의 품질과 더 많은 관련이 있지요. 그러면 숫자를 낮춰도 상관없나요? 꼭 그렇지는 않지요.
예를 들어 이미지의 모양이나 배치는 적당히 맞지만 왜곡이 발생한 경우 steps의 숫자를 올리면 왜곡이 줄어들거나 없어지고 괜찮은 결과물을 얻을 수 있습니다. 그 이유는 prompt로 명령하지 않은 요소들을 생성형 인공지능이 통계에 의해 가장 적절한 이미지로 찾아서 바꿔주기 때문이랍니다. 숫자는 렌더링 하는 횟수 정도로 이해하면 이해가 빠르겠네요. 그래서 처음 시도에서는 20~30 정도의 숫자로 시작하다가 왜곡이 발견되면 숫자를 올려가면서 조절하면 좋은 결과물을 얻게 됩니다.
하지만, 아무리 숫자를 올린다고 해도 encoding에서 잘못 입력된 prompt를 되돌릴 수는 없습니다. 그래서 steps의 숫자를 50까지 올려봐도 큰 변화가 없이 여전히 왜곡이 발생하면 steps의 문제는 아니니 공연히 여기서 시간을 낭비하면 안 됩니다. 이해하시겠죠? 그럼 이제 학술적인 의미의 steps 매개변수에 대해 정리해 보겠습니다.
ComfyUI에서 steps 매개변수 설정에 관해
KSampler(Stable Diffusion을 위한 ComfyUI와 같은 도구에 사용됨)에서 steps 매개변수는 확산 모델이 이미지를 생성하는 데 걸리는 반복 횟수 또는 단계를 나타냅니다.
이 매개변수는 생성된 이미지의 품질, 세부 묘사 및 렌더링 시간에 큰 영향을 미칩니다.
KSampler의 단계에 대한 주요 세부 정보
1. 단계란 무엇입니까?
단계는 잡음 제거 프로세스 중에 모델이 잡음을 다듬는 횟수를 결정합니다.
단계가 높을수록 일반적으로 더 자세하고 세련된 이미지가 생성되지만 계산 시간이 더 많이 필요합니다.
2. 권장 단계 범위:
낮은 단계(예: 10-20):
더 빠른 이미지 생성.
빠른 미리 보기나 테스트에 적합합니다.
디테일이 부족하거나 인공물이 있을 수 있습니다.
중간 단계(예: 20-40):
균형 잡힌 품질과 성능.
대부분의 사용 사례에 적합합니다.
높은 단계(예: 50-100 이상):
매우 상세한 이미지를 생성합니다.
복잡한 장면이나 미세한 디테일이 중요한 경우에 유용합니다.
렌더링 시간이 많이 늘어납니다.
3. 단계 선택 방법:
30과 같은 적당한 값으로 시작하세요.
이미지의 세부 묘사가 부족하거나 눈에 띄는 노이즈가 있는 경우 단계를 늘립니다.
렌더링 속도를 높이거나 이미지가 지나치게 다듬어지거나 질감이 부족한 경우 단계를 줄이세요.
결국 stpes는 노이즈 제거를 몇 번에 걸쳐서 할지 그 횟수를 정하는 거예요. 30 steps는 노이즈 제거를 30번 한다는 뜻이죠. 너무 적으면 노이즈가 덜 제거되어 불명확한 이미지가 생성되고, 너무 많으면 충분히 노이즈를 제거한 후에도 필요 없는 작업을 계속하게 된답니다. 일정한 steps 이후에는 큰 차이가 없는 이유가 바로 이것 때문이랍니다.
4. 프로 팁:
최적의 단계 수는 샘플러 유형(예: 오일러, DPM++, DDIM)에 따라 달라질 수도 있습니다.
예를 들어:
오일러 a는 종종 낮은 걸음 수(20-30)에서 잘 작동합니다.
DPM++ 2M Karras는 미세한 세부 묘사를 위해 더 높은 단계(30-50 이상)의 이점을 제공합니다.
어때요? 도움이 좀 되셨을까요? 처음 접하는 ComfyUI. 혼자서 끙끙대며 자료 찾고, 테스트해 보고 재미는 있는데 시간이 너무 많이 걸리네요. 다음에 또 함께 나눌 정보가 있으면 글을 남기겠습니다.
날마다 메리크리스마스 ~
댓글