본문 바로가기

AI

스테이블디퓨전 프롬프트 기본 사항

스테이블디퓨전  프롬프트 기본 사항

먼저 프롬프트의 구조를 이해해 봅시다.

(subject)(style), (action/scene), (artist), (filters)

이 기본 규칙에 따라 일부 하강 이미지를 생성할 수 있습니다.

(주제)

이것은 모든 프롬프트의 기본 빌딩 블록입니다. 소위 원시 프롬프트. 예: a black horse.

(스타일)

스타일은 프롬프트의 중요한 부분입니다. 지정된 스타일이 누락된 경우 AI는 일반적으로 관련 이미지에서 가장 많이 본 스타일을 선택합니다. 예를 들어 풍경을 생성한 경우 사실적이거나 유화처럼 보이는 이미지를 생성할 것입니다. 잘 선택한 스타일 + 원시 프롬프트가 있는 경우 스타일이 원시 프롬프트 직후에 이미지에 영향을 미치므로 때로는 충분합니다.

(액션/장면)

액션은 피사체가 실제로 무엇을 하고 있는지 설명하고 장면은 어디에 있는지 설명합니다.
예:jumping in the forest

(필터)

필터는 원하는 대로 표시하기 위해 프롬프트에 추가하는 추가 소스입니다. 예를 들어 이미지를 더 예술적으로 만들고 싶다면 “trending on artstation”을 추가하세요. 보다 사실적인 조명을 추가하고 싶다면 "Unreal Engine"을 추가하세요. 창의적으로 원하는 필터를 추가할 수 있지만 다음은 몇 가지 예입니다.

Highly detailed, surrealism, trending on art station, triadic color scheme, smooth, sharp focus, matte, elegant, the most beautiful image ever seen, illustration, digital paint, dark, gloomy, octane render, 8k, 4k, washed colours, sharp, dramatic lighting, beautiful, post processing, picture of the day, ambient lighting, epic composition

다음은 이 기본 규칙을 사용하는 마지막 예입니다.

realistic art of a black horse, in the forest, by marc simonetti, fog, centered, symmetry, painted, intricate, volumetric lighting, beautiful, rich deep colours, masterpiece, sharp focus, ultra detailed, 4k

씨앗

시드는 안정적인 확산 모델의 잠재 공간에 있는 특정 영역입니다. 좌표라고 생각하시면 됩니다.

Stable Diffusion은 두 가지 기본 입력을 받아 모델의 잠재 공간에서 고정된 지점으로 변환합니다.

  1. 시드  정수  _
  2. 텍스트  프롬프트

동일한 버전의 Stable Diffusion에 동일한 시드와 동일한 프롬프트가 제공되면  매번 동일한 이미지가 출력 됩니다 . 즉, 다음 관계가 고정됩니다.

seed + prompt = image

Stable Diffusion을 사용한 실험 결과 동일한 프롬프트에 대해 다른 이미지가 표시되는 경우(아마도 그럴 것입니다) 프롬프트를 제출할 때마다 임의의 시드 정수를 사용했기 때문입니다.

마음에 드는 이미지를 생성한 경우 해당 이미지의 시드를 지정하고 프롬프트를 조정하여 원본 이미지의 일관된 변형을 가질 수 있습니다. 프롬프트를 변경하지 않으면 프롬프트와 시드의 고정된 관계로 인해 정확히 동일한 결과를 얻게 됩니다.

너비 및 높이

이 설정은 이미지의 종횡비를 정의합니다. 너비/높이를 원하는 만큼 실험할 수 있지만 기억하십시오. Stable Diffusion은 512×512 너비 및 높이에 최적화되어 있습니다. 이 설정을 변경하면 생성 시간과 메모리 소비가 크게 증가할 수 있습니다.

프로 팁:

고해상도 이미지를 생성하지 마십시오. 대신 단계 수를 늘리고(곧 설명할 예정) 업스케일러를 사용하여 이미지를 업스케일링합니다.

이것을 변경하면 구성이 변경되고 추가 크레딧이 필요하다는 점을 명심하십시오.

다음은 종횡비의 몇 가지 예입니다.

CFG 규모

이 용어는 Classifier Free Guidance Scale의 약자이며 표시할 관련 이미지를 찾을 때 모델이 프롬프트에 얼마나 근접하기를 원하는지에 대한 척도입니다. Cfg Scale 값이 0이면 기본적으로 시드를 기반으로 하는 무작위 이미지를 제공하며, Cfg Scale이 20(SD의 최대값)이면 모델이 생성할 수 있는 프롬프트에 가장 근접한 일치를 제공합니다. 아래 비교에서 CFG 스케일을 15 이상으로 늘리면 대부분의 샘플러에서 더 나은 결과를 얻지 못하고 일부 샘플러에 아티팩트가 추가되기 시작한다는 것을 알 수 있습니다. 스위트 스폿은 7~13 사이입니다.

단계

단계의 양을 늘리면 Stable Diffusion에 최종 결과를 생성하는 데 더 많은 단계를 거쳐 이미지의 세부 정보를 증가시킬 수 있음을 알려줍니다. 더 높은 단계가 항상 더 나은 결과와 같지는 않습니다. 특히 100-150 또는 그 이상과 같이 엄청난 양을 사용하는 경우. CFG 스케일과 마찬가지로 프롬프트에 따라 다르지만 단계가 너무 높으면 최종 결과에 인공물이 생길 수 있습니다.

항상 최대 단계 수로 실행하는 것이 논리적으로 보일 수 있지만 이것이 항상 좋은 생각은 아닙니다. 종종 프롬프트에 따라 70-100보다 높은 단계를 실행할 때 큰 차이를 보지 못합니다. 그리고 대부분의 경우 간단한 이미지의 경우 아래 비교에서 볼 수 있듯이 대부분의 샘플러에서 50이면 충분합니다.

샘플러

샘플링 방법은 일종의 기술이므로 내부에서 실제로 수행하는 작업에 대해서는 설명하지 않겠습니다. 기본적으로 샘플러는 Stable Diffusion이 최종 결과를 생성하는 방법을 결정하는 데 사용하는 것입니다. 이 설정을 변경하여 직접 사용해 볼 수 있지만 샘플러 간의 차이는 종종 매우 작습니다. 그러나 다시 말하지만 프롬프트에 따라 약간 다릅니다. 자유롭게 실험해 보십시오.

다음은 가장 많이 사용되는 샘플러와 그 특성 중 일부입니다.

k_lms – 대부분의 경우 기본값

50단계의 k_lms는 프롬프트가 좋은 경우 대부분의 경우 훌륭한 생성을 제공합니다. k_lms는 매우 빠르게 실행되므로 결과도 좋은 속도로 나타납니다. CFG 7-8에서 이 설정을 영원히 고수하고 괜찮을 수 있습니다. 상황이 약간 좋지 않은 것처럼 보이면 80과 같이 더 높은 단계 값을 시도할 수 있습니다. 그러나 일반적으로  더 높은 단계 값이 실제로 이점을 얻고 있는지 확인하고 시간 . 시드 및 기타 설정을 안정적으로 유지하고 걸음 수를 위아래로 변경하여 이를 확인할 수 있습니다. 적은 걸음 수로 할 수 있는 일에 충격을 받을 수도 있습니다. 나는 모든 세대가 150보라고 말하는 사람들에 대해 매우 회의적입니다.

DDIM – 간단한 이미지를 위한 빠른 속도

8단계의 DDIM( 맞습니다. 8단계 )을 사용하면 눈부시게 빠른 속도로 훌륭한 결과를 얻을 수 있습니다. 많은 이미지를 빠르게 생성할 수 있는 훌륭한 설정입니다. 새로운 프롬프트 아이디어를 테스트할 때 DDIM을 8단계로 설정하고 4-9개의 이미지 배치를 생성합니다. 이것은 당신에게  환상적인 프롬프트가 여러 시드에서 수행되는 방식을 새 눈으로 볼 수 있습니다. 신속한 프롬프트 수정을 위한 훌륭한 설정입니다. DDIM:8에서 프롬프트에 한 단어를 추가하고 5초 이내에 시드 전반에 걸쳐 출력에 어떤 영향을 미치는지 확인할 수 있습니다(그래픽 카드에 따라 다름). 더 복잡한 프롬프트의 경우 DDIM에 더 많은 도움이 필요할 수 있습니다. 출력이 여전히 왜곡되어 표시되는 경우(또는 프롬프트가 문제입니까??) 15, 25 또는 35까지 자유롭게 올리십시오. 결국 걸음 수를 늘리는 것이 언제 도움이 되는지에 대한 안목을 갖게 될 것입니다. 그러나 위와 동일한 규칙이 적용됩니다. 자신의 시간을 낭비하지 마십시오. 때때로 모든 단계가 필요한지 확인하십시오.

k_euler_a – 크리에이티브

DDIM에 적용되는 모든 것이 여기에도 적용됩니다. 이 샘플러는 또한 매우 빠르며 매우 낮은 단계 수(8-16단계)에서도 훌륭한 결과를 얻습니다. 그러나 그것은 또한 세대 스타일을 훨씬 더 많이 변화시킵니다. 걸음 수가 15인 세대는 걸음 수가 16인 세대와 매우 다르게 보일 수 있습니다. 그리고 둘 다 걸음 수 30과 매우 다르게 보일 수 있습니다. 그리고 그것은 걸음 수 65와 매우 다를 수 있습니다. 이 샘플러는 야생입니다. 일반적으로 여기에서 주목할 가치가 있습니다.  결과는  사용하는 샘플러에 따라 완전히 다르게 보입니다  . 실험을 두려워하지 마십시오. k_euler_a에서 이미 마음에 드는 결과가 있으면 DDIM에 넣습니다(또는 그 반대).

k_dpm_2_a – 느리지만 견고함

제 생각에는 이 샘플러가 가장 좋은 샘플러일 수 있지만 심각한 장단점이 있습니다.  위에서 살펴본 것과 비교하면 매우 느 립니다  . 그러나 내 돈으로는 30-80 단계 범위의 k_dpm_2_a가 매우 좋습니다. 실험하기에는 좋지 않은 샘플러이지만 이미 마음에 드는 프롬프트가 있다면 그대로 두십시오. 기다릴 준비만 하세요. 그리고 기다려. 그래도 프롬프트에서 용어를 추가하고 제거하는 단계에 있다면 더 낮은 단계 수에서 k_euler_a 또는 DDIM을 고수해야 합니다.

샘플러 연구

아래 이미지에서 Stable Diffusion 샘플러 비교를 볼 수 있습니다.