최근 ComfyUI for Desktop을 설치했습니다. 생성형 인공지능을 사용해서 원하는 이미지를 생성할 수 있는데, 결국은 Node를 잘 짜고, pormpt를 정확하게 입력하는 것이 핵심입니다. Node나 prompt를 공개하신 분들은 많지만 어떻게 사용하는지 방법을 모르면 사실상 open sorce도 사용하기가 만만하지는 않습니다.
오늘은 영상을 생성하는 과정에서 KSmapler에서 설정하는 부분 중 cfg에 관해 정리해보려고 합니다. 내용 중 일부는 영문이 우리말로 번역되어서 다소 어색할 수 있지만 참고해서 읽어주세요.
CFG Scale(Classifier-Free Guidance Scale)
AI 이미지 생성의 CFG Scale(Classifier-Free Guidance Scale)은 모델이 프롬프트(긍정적 및 부정적)를 얼마나 밀접하게 준수하는지와 고유한 창의성 또는 무작위성 사이의 균형을 제어합니다. CFG 값에 따라 이미지가 높은 것부터 낮은 것까지 어떻게 변하는지는 다음과 같습니다.
높은 CFG 규모(12~15)
행동:
모델은 프롬프트를 강력히 준수합니다.
긍정적인 메시지와 부정적인 메시지 모두에 대해 매우 엄격한 해석.
창의적이거나 예상치 못한 요소가 적습니다.
장점:
귀하의 프롬프트에 매우 상세하고 정확합니다.
정확한 결과가 필요한 구체적이고 잘 정의된 프롬프트에 유용합니다.
단점:
이미지는 과도하게 가공되었거나 인위적으로 보일 수 있습니다.
모델이 프롬프트에 "과잉 적합" 되므로 인공물이나 오류가 발생할 위험이 더 높습니다.
중간 CFG 규모(7~11)
행동:
신속성과 창의적 유연성을 균형 있게 준수합니다.
모델은 약간의 변형을 허용하면서 프롬프트를 해석합니다.
장점:
자연스러운 모습으로 최고 품질의 이미지를 생성하는 경우가 많습니다.
복잡하거나 예술적인 메시지를 효과적으로 처리합니다.
단점:
일부 작은 프롬프트 세부 정보는 약간 무시될 수 있습니다.
낮은 CFG 규모(3~6)
행동:
더 많은 무작위성과 창의적인 해석으로 프롬프트에 대한 느슨한 준수.
모델 고유의 편견이나 기본 스타일이 출력에 더 많은 영향을 미칩니다.
장점:
탐구 또는 예술적 목적에 적합합니다.
행복한 사고와 독특한 출력을 허용합니다.
단점:
이미지 내용에 대한 통제력이 떨어집니다.
프롬프트 세부 정보는 대부분 무시될 수 있습니다.
매우 낮은 CFG 규모(1–2)
행동:
거의 완전히 무작위입니다.
프롬프트에 대한 최소한의 연결입니다.
장점:
실험적이며 추상적이거나 예상치 못한 예술 작품을 생성하는 데 유용합니다.
단점:
생성된 이미지에는 메시지가 거의 반영되지 않을 수 있습니다.
예측 불가능성이 높습니다.
권장 사용법
정밀도를 원하는 경우: 대부분의 작업에 대해 8~10의 CFG로 시작하세요.
이미지가 프롬프트와 일치하지 않는 경우: CFG를 12~14로 점진적으로 늘려 강제로 준수합니다.
결과가 부자연스럽거나 과적합 해 보이는 경우: 보다 유기적인 모양을 위해 CFG를 6~8로 낮춥니다.
탐구 중이거나 놀라움을 원하는 경우: 유연성을 위해 4~6을 사용하세요.
개인적인 경험을 더 이야기하자면, 최적의 CFG 규모를 찾기 위해 프로젝트마다 실험이 필요할 수 있으므로 중간 범위에서 시작하여 결과에 따라 조정하면 됩니다. 저의 경우에는 높은 CFG를 설정한다고 해서 더 좋은 결과를 얻을 수 있는 것은 아닙니다. 영문 프롬프트이기 때문에 언어적 장벽으로 어휘의 의미를 정확히 이해하지 못하기 때문이기도 하겠지만, 모든 내용을 자세하게 묘사하는 prompt를 사용한다는 것은 사실상 불가능한 것이 가장 큰 원인이 아닐까 싶네요.
프롬프트(긍정적 및 부정적)를 얼마나 밀접하게 준수하는지와 고유한 창의성 또는 무작위성 사이의 균형을 제어 한다는 것이 핵심입니다. 입력하는 positive & negative encode의 내용에 충실하기를 원한다면 높은 숫자를 설정하면 됩니다. 이렇게 할 경우 누락된 부분이나 미처 예측하지 못해서 입력하지 못한 부분이 hallucination을 포함하여 이미지가 이상하게 생성되는 현상이 나타납니다. 반대로 너무 낮은 숫자를 입력하면 계획했던 이미지가 아닌 다른 결과물이 생성되기도 합니다. 결론적으로 중간에서 시작해서 숫자를 올리거나 내리면서 적절히 응용하면 된답니다.
혹시 저처럼 초보 사용자라면 8 정도의 숫자로 시작해서 올리거나 내리면 도움이 될꺼에요.
댓글