# 가이드

Guider는 Modular Diffusers에서 생성 중 확산 프로세스가 어떻게 유도되는지를 제어하는 구성 요소입니다. 생성 품질과 제어를 개선하기 위해 다양한 유도 기법을 구현합니다.

## BaseGuidance[[diffusers.BaseGuidance]]

#### diffusers.BaseGuidance[[diffusers.BaseGuidance]]

```python
diffusers.BaseGuidance(start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L38)

가이던스 기법을 구현하기 위한 골격을 제공하는 베이스 클래스.

#### cleanup_models[[diffusers.BaseGuidance.cleanup_models]]

```python
cleanup_models(denoiser: torch.nn.Module)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L160)

주어진 데이터 배치 이후 guidance 기법을 위한 모델들을 정리합니다. 이 메서드는 서브클래스에서 오버라이드하여 특정 모델 정리 로직을 구현해야 합니다. `prepare_models` 실행 중에 추가된 훅이나 기타 상태가 있는 수정 사항을 제거하는 데 유용합니다.

#### from_pretrained[[diffusers.BaseGuidance.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs = False, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L289)

**매개변수:**

pretrained_model_name_or_path (`str` 또는 `os.PathLike`, *선택 사항*) : 다음 중 하나일 수 있습니다. - Hub에 호스팅된 사전 학습 모델의 *모델 ID* 문자열(예: `google/ddpm-celebahq-256`). - [save_pretrained()](/docs/diffusers/main/ko/api/modular_diffusers/guiders#diffusers.BaseGuidance.save_pretrained)로 저장된 guider 구성이 포함된 *디렉터리* 경로(예: `./my_model_directory`).

subfolder (`str`, *선택 사항*) : Hub 또는 로컬의 더 큰 모델 저장소 내에서 모델 파일의 서브폴더 위치입니다.

return_unused_kwargs (`bool`, *선택 사항*, 기본값 `False`) : Python 클래스에서 소비되지 않는 kwargs를 반환할지 여부.

cache_dir (`str | os.PathLike`, *선택 사항*) : 표준 캐시를 사용하지 않을 경우, 다운로드된 사전 학습 모델 구성이 캐시되는 디렉터리의 경로입니다.

force_download (`bool`, *선택 사항*, 기본값 `False`) : 캐시된 버전이 존재하더라도 모델 가중치 및 구성 파일의 (재)다운로드를 강제할지 여부.

proxies (`dict[str, str]`, *선택 사항*) : 프로토콜 또는 엔드포인트별로 사용할 프록시 서버의 사전입니다. 예를 들어, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`와 같습니다. 각 요청에 프록시가 사용됩니다.

output_loading_info(`bool`, *선택 사항*, 기본값 `False`) : 누락된 키, 예상치 못한 키 및 오류 메시지가 포함된 사전도 함께 반환할지 여부.

local_files_only(`bool`, *선택 사항*, 기본값 `False`) : 로컬 모델 가중치 및 구성 파일만 로드할지 여부입니다. `True`로 설정하면 Hub에서 모델을 다운로드하지 않습니다.

token (`str` 또는 *bool*, *선택 사항*) : 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다. `True`인 경우, `diffusers-cli login`에서 생성된 토큰(`~/.huggingface`에 저장됨)이 사용됩니다.

revision (`str`, *선택 사항*, 기본값 `"main"`) : 사용할 특정 모델 버전입니다. Git에서 허용하는 브랜치 이름, 태그 이름, 커밋 ID 또는 기타 식별자일 수 있습니다.

로컬 디렉터리 또는 Hub 저장소의 사전 정의된 JSON 구성 파일에서 guider를 초기화합니다.

> [!TIP] > 비공개 또는 [게이트된 모델](https://huggingface.co/docs/hub/models-gated#gated-models)을 사용하려면 로그인하세요
`hf > auth login`을(를) 통해 수행할 수 있습니다. 또한 방화벽이 있는 환경에서 이 방법을 사용하려면 특수한 ["오프라인 모드"](https://huggingface.co/diffusers/installation.html#offline-mode)를 활성화할 수도 있습니다.

#### get_state[[diffusers.BaseGuidance.get_state]]

```python
get_state()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L106)

가이던스 기법의 현재 상태를 딕셔너리로 반환합니다. 상태 변수는 __repr__ 메서드에 포함됩니다. 반환값: `dict[str, Any]`: 다음을 포함하는 현재 상태 변수의 딕셔너리:
- step: 현재 추론 단계
- num_inference_steps: 총 추론 단계 수
- timestep: 현재 timestep 텐서
- count_prepared: prepare_models가 호출된 횟수
- enabled: 가이던스가 활성화되어 있는지 여부
- num_conditions: 조건 수

#### 새로 추가[[diffusers.BaseGuidance.new]]

```python
new(**kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L69)

**매개변수:**

- ****kwargs** : 새 인스턴스에서 오버라이드할 구성 매개변수입니다. kwargs가 제공되지 않으면 동일한 구성을 가진 정확한 복사본을 반환합니다.

**반환값:**

동일한(또는 업데이트된) 구성을 가진 새로운 guider 인스턴스.

이 guider 인스턴스의 사본을 생성하며, 선택적으로 수정된 구성 매개변수를 포함할 수 있습니다.

예:
```python
# Create a CFG guider
guider = ClassifierFreeGuidance(guidance_scale=3.5)

# Create an exact copy
same_guider = guider.new()

# Create a copy with different start step, keeping other config the same
new_guider = guider.new(guidance_scale=5)
```

#### prepare_models[[diffusers.BaseGuidance.prepare_models]]

```python
prepare_models(denoiser: torch.nn.Module)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L153)

주어진 데이터 배치에 대해 guidance 기법을 적용하기 위해 모델을 준비합니다. 이 메서드는 서브클래스에서 오버라이드하여 특정 모델 준비 로직을 구현해야 합니다.

#### save_pretrained[[diffusers.BaseGuidance.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/guider_utils.py#L350)

**매개변수:**

save_directory (`str` 또는 `os.PathLike`) : 구성 JSON 파일을 저장할 디렉터리(존재하지 않으면 생성됨).

push_to_hub (`bool`, *선택 사항*, 기본값 `False`) : 모델을 저장한 후 Hugging Face Hub에 푸시할지 여부입니다. `repo_id`를 사용하여 푸시할 저장소를 지정할 수 있습니다(기본값은 네임스페이스의 `save_directory` 이름입니다).

kwargs (`dict[str, Any]`, *선택 사항*) : [push_to_hub()](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) 메서드에 함께 전달되는 추가 키워드 인자입니다.

guider 구성 객체를 디렉토리에 저장하여 [from_pretrained()](/docs/diffusers/main/ko/api/modular_diffusers/guiders#diffusers.BaseGuidance.from_pretrained) 클래스 메서드를 사용해 다시 로드할 수 있도록 합니다.

## ClassifierFreeGuidance[[diffusers.ClassifierFreeGuidance]]

#### diffusers.ClassifierFreeGuidance[[diffusers.ClassifierFreeGuidance]]

```python
diffusers.ClassifierFreeGuidance(guidance_scale: float = 7.5, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/classifier_free_guidance.py#L30)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : 이 guider가 후처리 단계에서 적용하는 CFG scale입니다. 값이 높을수록 프롬프트 조건화가 강해지지만 품질이 저하될 수 있습니다. 일반적인 범위: 1.0-20.0.

guidance_rescale (`float`, 기본값 `0.0`) : 높은 guidance scale로 인한 과노출을 방지하기 위한 재스케일링 계수입니다. [공통 디퓨전 노이즈 스케줄 및 샘플 스테프는 결함이 있습니다](https://huggingface.co/papers/2305.08891)에 기반합니다. 범위: 0.0(재스케일링 없음)에서 1.0(완전한 재스케일링)까지.

use_original_formulation (`bool`, 기본값 `False`) : `True`인 경우, 논문에서 제시한 원래의 CFG 수식을 사용합니다. `False`(기본값)인 경우, Imagen 논문에서 제시한 diffusers 네이티브 수식을 사용합니다.

start (`float`, 기본값 `0.0`) : CFG가 시작되는 디노이징 단계의 비율(0.0-1.0). 초기 디노이징 단계에서 CFG를 비활성화하려면 > 0.0을 사용하세요.

stop (`float`, 기본값 `1.0`) : CFG가 중단되는 디노이징 단계의 비율(0.0-1.0). 후기 디노이징 단계에서 CFG를 비활성화하려면 1.0보다 작은 값을 사용하세요.

enabled (`bool`, 기본값 `True`) : CFG가 활성화되어 있는지 여부입니다. CFG를 완전히 비활성화하려면 `False`로 설정하세요 (조건부 예측만 사용).

확산 모델에 Classifier-Free Guidance(CFG)를 구현합니다.

참고: https://huggingface.co/papers/2207.12598

CFG는 조건부 데이터와 무조건부 데이터 모두를 사용하여 모델을 함께 학습한 후, 추론 시 예측을 결합함으로써 생성 품질과 프롬프트 준수도를 향상시킵니다. 이를 통해 품질(높은 guidance)과 다양성(낮은 guidance) 사이의 트레이드오프를 조절할 수 있습니다.

**두 가지 CFG 공식:**

1. **원래 공식** (논문에서):
```
x_pred = x_cond + guidance_scale * (x_cond - x_uncond)
```

   무조건적 예측에서 조건부 예측을 더 멀리 이동시킵니다.

2. **Diffusers 네이티브 공식** (기본값, Imagen 논문에서 가져옴):
```
x_pred = x_uncond + guidance_scale * (x_cond - x_uncond)
```

   무조건적 예측을 조건부 예측으로 이동시켜, 부정적 특징(예: "낮은 품질", "워터마크")을 효과적으로 억제합니다. 이론적으로는 동등하지만 더 직관적입니다.

`use_original_formulation=True`를 사용하여 원래의 수식으로 전환합니다.

## ClassifierFreeZeroStarGuidance[[diffusers.ClassifierFreeZeroStarGuidance]]

#### diffusers.ClassifierFreeZeroStarGuidance[[diffusers.ClassifierFreeZeroStarGuidance]]

```python
diffusers.ClassifierFreeZeroStarGuidance(guidance_scale: float = 7.5, zero_init_steps: int = 1, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/classifier_free_zero_star_guidance.py#L30)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

zero_init_steps (`int`, 기본값 `1`) : 노이즈 예측을 0으로 설정하는 추론 단계 수 (4.2절 참조).

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.01`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `0.2`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

Classifier-free Zero* (CFG-Zero*): https://huggingface.co/papers/2503.18886

이것은 classifier-free guidance의 변형인 Classifier-Free Zero* guidance 기법의 구현입니다. 이 기법은 diffusion 과정의 초기 몇 단계에서 노이즈 예측값을 zero로 초기화하는 것을 제안하며, 노이즈 예측값에 대한 최적의 rescaling factor를 도입하여 생성된 이미지의 품질을 향상시키는 데 도움을 줄 수 있습니다.

해당 논문의 저자들은 추론 단계의 처음 4%에서 zero initialization을 설정하는 것을 제안합니다.

## SkipLayerGuidance[[diffusers.SkipLayerGuidance]]

#### diffusers.SkipLayerGuidance[[diffusers.SkipLayerGuidance]]

```python
diffusers.SkipLayerGuidance(guidance_scale: float = 7.5, skip_layer_guidance_scale: float = 2.8, skip_layer_guidance_start: float = 0.01, skip_layer_guidance_stop: float = 0.2, skip_layer_guidance_layers: int | list[int] | None = None, skip_layer_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/skip_layer_guidance.py#L32)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

skip_layer_guidance_scale (`float`, 기본값 `2.8`) : skip layer guidance의 scale 매개변수입니다. 값이 높을수록 해부학적 구조와 구조적 일관성이 향상될 수 있지만, 과도한 노출과 포화 현상을 유발할 수도 있습니다.

skip_layer_guidance_start (`float`, 기본값 `0.01`) : 전체 디노이징 단계 수 중 skip layer guidance가 시작되는 비율.

skip_layer_guidance_stop (`float`, 기본값 `0.2`) : 전체 디노이징 단계 수 중 skip layer guidance가 중단되는 비율.

skip_layer_guidance_layers (`int` 또는 `list[int]`, *선택 사항*) : skip layer guidance를 적용할 레이어 인덱스입니다. 단일 정수 또는 정수 목록일 수 있습니다. 제공되지 않으면 `skip_layer_config`를 제공해야 합니다. Stable Diffusion 3.5 Medium의 권장 값은 `[7, 8, 9]`입니다.

skip_layer_config (`LayerSkipConfig` 또는 `list[LayerSkipConfig]`, *선택*) : skip layer guidance에 대한 설정입니다. 단일 `LayerSkipConfig` 또는 `LayerSkipConfig` 목록일 수 있습니다. 제공되지 않으면 `skip_layer_guidance_layers`를 제공해야 합니다.

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.01`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `0.2`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

Skip Layer Guidance (SLG): https://github.com/Stability-AI/sd3.5

Spatio-Temporal Guidance (STG): https://huggingface.co/papers/2411.18664

SLG는 StabilityAI에 의해 생성된 이미지의 구조 및 해부학적 일관성을 개선하기 위해 도입되었습니다. 이는 이미 CFG([~guiders.classifier_free_guidance.ClassifierFreeGuidance])에서 사용 중인 조건부 및 무조건 배치 외에, 추가적인 조건부 데이터 배치에서 디노이징 과정 중 지정된 transformer 블록의 forward pass를 건너뛰는 방식으로 작동합니다. 그런 다음, 건너뛰지 않은 조건부 예측과 건너뛴 조건부 예측 간의 차이를 기반으로 CFG 예측을 스케일링 및 시프트합니다.

SLG의 직관은 조건부 분포 추정치의 더 나쁜 버전(레이어를 건너뛰는 것은 조건부 예측에 더 나쁜 버전의 모델을 사용하는 것과 동등하므로)으로부터 CFG 예측 분포 추정치를 더 멀리 이동시키는 것으로 이해할 수 있습니다.

STG는 비디오 확산 모델의 생성 품질을 개선하기 위해 SLG, PAG 및 유사한 기법의 아이디어를 결합한 개선 및 후속 작업입니다.

추가 참고 자료:
- [자기 자신의 나쁜 버전으로 Diffusion Model을 유도하기](https://huggingface.co/papers/2406.02507)

`skip_layer_guidance_scale`, `skip_layer_guidance_start`, `skip_layer_guidance_stop`의 값은 StabilityAI가 Stable Diffusion 3.5 Medium에 대해 권장하는 값으로 기본 설정됩니다.

## SmoothedEnergyGuidance[[diffusers.SmoothedEnergyGuidance]]

#### diffusers.SmoothedEnergyGuidance[[diffusers.SmoothedEnergyGuidance]]

```python
diffusers.SmoothedEnergyGuidance(guidance_scale: float = 7.5, seg_guidance_scale: float = 2.8, seg_blur_sigma: float = 9999999.0, seg_blur_threshold_inf: float = 9999.0, seg_guidance_start: float = 0.0, seg_guidance_stop: float = 1.0, seg_guidance_layers: int | list[int] | None = None, seg_guidance_config: SmoothedEnergyGuidanceConfig | list[SmoothedEnergyGuidanceConfig] = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/smoothed_energy_guidance.py#L32)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

seg_guidance_scale (`float`, 기본값 `3.0`) : smoothed energy guidance의 scale 매개변수입니다. 값이 높을수록 해부학적 구조와 구조적 일관성이 향상될 수 있지만, 과도한 노출과 포화 현상을 유발할 수도 있습니다.

seg_blur_sigma (`float`, 기본값 `9999999.0`) : attention weights를 흐리게 만드는 정도입니다. 이 값을 9999.0보다 크게 설정하면 무한한 블러가 발생하며, 이는 균일한 queries를 의미합니다. 지수적으로 제어하는 것이 경험적으로 효과적입니다.

seg_blur_threshold_inf (`float`, 기본값 `9999.0`) : 블러가 무한대로 간주되는 임계값.

seg_guidance_start (`float`, 기본값 `0.0`) : 전체 디노이징 단계 수 중, 매끄러운 에너지 가이던스가 시작되는 비율.

seg_guidance_stop (`float`, 기본값 `1.0`) : 전체 디노이징 단계 수 중, 매끄러운 에너지 가이던스가 중단되는 비율.

seg_guidance_layers (`int` 또는 `list[int]`, *선택 사항*) : smoothed energy guidance를 적용할 레이어 인덱스입니다. 단일 정수 또는 정수 목록으로 지정할 수 있습니다. 제공되지 않으면 `seg_guidance_config`를 제공해야 합니다. Stable Diffusion 3.5 Medium의 경우 권장 값은 `[7, 8, 9]`입니다.

seg_guidance_config (`SmoothedEnergyGuidanceConfig` 또는 `list[SmoothedEnergyGuidanceConfig]`, *선택 사항*) : smoothed energy layer guidance에 대한 설정입니다. 단일 `SmoothedEnergyGuidanceConfig` 또는 `SmoothedEnergyGuidanceConfig` 목록일 수 있습니다. 제공되지 않으면 `seg_guidance_layers`를 제공해야 합니다.

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.01`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `0.2`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

Smoothed Energy Guidance (SEG): https://huggingface.co/papers/2408.00760

SEG는 현재 실험적 프로토타입 기능으로만 지원되므로, 향후 사전 통보나 재현 가능성 보장 없이 구현이 변경될 수 있습니다. 이 구현은 다음을 가정합니다:
- 생성된 이미지는 정사각형(높이 == 너비)입니다
- 모델은 서로 다른 모달리티를 결합하지 않습니다(예: Flux와 달리 텍스트와 이미지 잠재 스트림을 함께 결합하지 않음).

## PerturbedAttentionGuidance[[diffusers.PerturbedAttentionGuidance]]

#### diffusers.PerturbedAttentionGuidance[[diffusers.PerturbedAttentionGuidance]]

```python
diffusers.PerturbedAttentionGuidance(guidance_scale: float = 7.5, perturbed_guidance_scale: float = 2.8, perturbed_guidance_start: float = 0.01, perturbed_guidance_stop: float = 0.2, perturbed_guidance_layers: int | list[int] | None = None, perturbed_guidance_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/perturbed_attention_guidance.py#L36)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

perturbed_guidance_scale (`float`, 기본값 `2.8`) : perturbed attention guidance의 scale 매개변수입니다.

perturbed_guidance_start (`float`, 기본값 `0.01`) : 전체 디노이징 단계 수 중, 교란된 어텐션 가이던스가 시작되는 비율.

perturbed_guidance_stop (`float`, 기본값 `0.2`) : 전체 디노이징 단계 수 중, 이 비율 이후에 perturbed attention guidance가 중단됩니다.

perturbed_guidance_layers (`int` 또는 `list[int]`, *선택 사항*) : Perturbed attention guidance를 적용할 레이어 인덱스입니다. 단일 정수 또는 정수 목록일 수 있습니다. 제공되지 않으면 `perturbed_guidance_config`를 제공해야 합니다.

perturbed_guidance_config (`LayerSkipConfig` 또는 `list[LayerSkipConfig]`, *선택 사항*) : perturbed attention guidance에 대한 설정입니다. 단일 `LayerSkipConfig` 또는 `LayerSkipConfig` 목록일 수 있습니다. 제공되지 않으면 `perturbed_guidance_layers`를 제공해야 합니다.

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.01`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `0.2`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

Perturbed Attention Guidance (PAG): https://huggingface.co/papers/2403.17377

PAG의 직관은 CFG가 예측한 분포 추정치를 조건부 분포 추정치의 더 나쁜 버전에서 더 멀리 이동시키는 것으로 이해할 수 있습니다. PAG는 노이즈 제거 과정에서 더 나은 자기 유도(self-guiding)를 위해 학습된 모델의 더 나쁜 버전을 사용하는 아이디어를 도입한 최초의 기법 중 하나였습니다. PAG는 선택적으로 선택된 레이어에서 점수 행렬을 항등 행렬로 대체하여 잠재 스트림의 어텐션 점수를 교란시킵니다.

추가 참고 자료:
- [자기 자신의 나쁜 버전으로 Diffusion Model을 유도하기](https://huggingface.co/papers/2406.02507)

PAG는 구성 매개변수와 구현 세부 사항이 SkipLayerGuidance와 겹치기 때문에 유사한 방식으로 구현됩니다.

## AdaptiveProjectedGuidance[[diffusers.AdaptiveProjectedGuidance]]

#### diffusers.AdaptiveProjectedGuidance[[diffusers.AdaptiveProjectedGuidance]]

```python
diffusers.AdaptiveProjectedGuidance(guidance_scale: float = 7.5, adaptive_projected_guidance_momentum: float | None = None, adaptive_projected_guidance_rescale: float = 15.0, adaptive_projected_guidance_norm_dim: int | tuple[int, ...] | None = None, eta: float = 1.0, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/adaptive_projected_guidance.py#L30)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

adaptive_projected_guidance_momentum (`float`, 기본값 `None`) : 적응형 투영 가이던스의 모멘텀 매개변수입니다. `None`으로 설정하면 비활성화됩니다.

adaptive_projected_guidance_rescale (`float`, 기본값 `15.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고

adaptive_projected_guidance_norm_dim (`int` 또는 `tuple[int]`, *선택 사항*) : APG 노름과 투영을 계산할 차원. 생략하면 원래 동작을 유지하면서 모든 배치 외 차원이 사용됩니다.

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.0`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `1.0`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

Adaptive Projected Guidance (APG): https://huggingface.co/papers/2410.02416

## AutoGuidance[[diffusers.AutoGuidance]]

#### diffusers.AutoGuidance[[diffusers.AutoGuidance]]

```python
diffusers.AutoGuidance(guidance_scale: float = 7.5, auto_guidance_layers: int | list[int] | None = None, auto_guidance_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = None, dropout: float | None = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/auto_guidance.py#L32)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

auto_guidance_layers (`int` 또는 `list[int]`, *선택 사항*) : skip layer guidance를 적용할 레이어 인덱스입니다. 단일 정수 또는 정수 목록일 수 있습니다. 제공되지 않으면 `skip_layer_config`를 제공해야 합니다.

auto_guidance_config (`LayerSkipConfig` 또는 `list[LayerSkipConfig]`, *선택*) : skip layer guidance에 대한 설정입니다. 단일 `LayerSkipConfig` 또는 `LayerSkipConfig` 목록일 수 있습니다. 제공되지 않으면 `skip_layer_guidance_layers`를 제공해야 합니다.

dropout (`float`, *선택 사항*) : 활성화된 스킵 레이어(즉, `auto_guidance_layers` 또는 `auto_guidance_config`를 통해 지정된 레이어)에 대한 autoguidance의 dropout 확률입니다. 값을 제공하지 않으면 dropout 확률은 1.0으로 설정됩니다.

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.0`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `1.0`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

AutoGuidance: https://huggingface.co/papers/2406.02507

## TangentialClassifierFreeGuidance[[diffusers.TangentialClassifierFreeGuidance]]

#### diffusers.TangentialClassifierFreeGuidance[[diffusers.TangentialClassifierFreeGuidance]]

```python
diffusers.TangentialClassifierFreeGuidance(guidance_scale: float = 7.5, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/tangential_classifier_free_guidance.py#L30)

**매개변수:**

guidance_scale (`float`, 기본값 `7.5`) : classifier-free guidance의 scale 매개변수입니다. 값이 높을수록 텍스트 프롬프트에 대한 조건화가 강해지고, 값이 낮을수록 생성에 더 많은 자유도가 부여됩니다. 값이 너무 높으면 포화 현상이 발생하거나 이미지 품질이 저하될 수 있습니다.

guidance_rescale (`float`, 기본값 `0.0`) : 노이즈 예측에 적용되는 재스케일 계수입니다. 이는 이미지 품질을 개선하고 과도한 노출을 수정하는 데 사용됩니다. [공통 확산 노이즈 스케줄 및 샘플 단계는 결함이 있습니다](https://huggingface.co/papers/2305.08891)의 3.4절을 기반으로 합니다.

use_original_formulation (`bool`, 기본값 `False`) : 논문에서 제안한 classifier-free guidance의 원래 수식을 사용할지 여부입니다. 기본적으로 코드베이스에 오랫동안 존재해 온 diffusers 네이티브 구현을 사용합니다. 자세한 내용은 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]를 참조하세요.

start (`float`, 기본값 `0.0`) : 전체 디노이징 단계 수 중 가이던스가 시작되는 비율.

stop (`float`, 기본값 `1.0`) : 전체 디노이징 단계 수 중 가이던스가 중단되는 비율.

Tangential Classifier Free Guidance (TCFG): https://huggingface.co/papers/2503.18137

## LTX2Guidance[[diffusers.LTX2Guidance]]

#### diffusers.LTX2Guidance[[diffusers.LTX2Guidance]]

```python
diffusers.LTX2Guidance(guidance_scale: float = 1.0, stg_scale: float = 0.0, modality_scale: float = 1.0, guidance_rescale: float = 0.0, spatio_temporal_guidance_blocks: list[int] | None = None, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/guiders/ltx2_guidance.py#L28)

**매개변수:**

guidance_scale (`float`, 기본값 `1.0`) : 해당 모달리티의 CFG scale입니다. `1.0`인 경우 CFG pass가 완전히 건너뜁니다.

stg_scale (`float`, 기본값 `0.0`) : 해당 모달리티의 시공간 가이던스 스케일입니다. `0.0`인 경우 STG 패스가 완전히 건너뜁니다.

modality_scale (`float`, 기본값 `1.0`) : 해당 모달리티의 모달리티 격리 가이던스 스케일입니다. `1.0`인 경우 해당 패스가 완전히 건너뜁니다.

guidance_rescale (`float`, 기본값 `0.0`) : 높은 guidance scale로 인한 과노출을 방지하기 위한 재스케일링 계수입니다. [공통 디퓨전 노이즈 스케줄 및 샘플 스테프는 결함이 있습니다](https://huggingface.co/papers/2305.08891)에 기반합니다. 범위: 0.0(재스케일링 없음)에서 1.0(완전한 재스케일링)까지.

spatio_temporal_guidance_blocks (`list[int]`, *선택 사항*) : STG 패스에서 교란할 Transformer 블록입니다. 값의 사용 방식은 denoiser 블록에 따라 달라집니다. LTX-2는 모든 모달리티를 공급하는 단일 forward에서 전체 블록을 교란하므로, 이 값을 video guider에서만 읽습니다. audio guider에 설정해도 효과가 없으며, 해당 guider는 자체 `stg_scale`을 통해 동일한 STG forward에 참여합니다.

start (`float`, 기본값 `0.0`) : 가이던스가 시작되는 디노이징 단계의 비율(0.0-1.0).

stop (`float`, 기본값 `1.0`) : 가이던스가 중단되는 디노이징 단계의 비율(0.0-1.0).

enabled (`bool`, 기본값 `True`) : 이 guider가 가이던스를 적용할지 여부입니다. `False`인 경우 조건부 패스만 실행됩니다.

LTX-2.X용 단일 모달리티 guider입니다. 델타 형식을 통해 최대 3개의 용어를 결합합니다:
- classifier-free guidance (CFG),
- 공간-시간 가이던스(STG), 즉 변형된 트랜스포머 블록 세트로 추가 패스를 수행하는 기법
- modality-isolation guidance, A2V/V2A cross-attention을 비활성화한 추가 패스

하나의 인스턴스가 하나의 모달리티를 처리하므로, 멀티모달 체크포인트에는 여러 인스턴스가 포함됩니다. LTX-2.X는 비디오 `guider`와 `audio_guider`를 페어링하며, 각각은 자체 스케일을 보유합니다. 최종 가이던스 추정값은 호출자가 입력하는 공간에서 계산됩니다. LTX-2 디노이저는 이 함수를 호출하기 전에 velocity->x0로 변환하고, 호출 후에는 다시 원래 공간으로 변환하므로 `forward`는 x0 예측값을 대상으로 동작합니다.

`SkipLayerGuidance`는 훅을 통해 교란을 적용하는 반면, `LTX2Guidance`는 비-CFG 교란이 모델의 forward 인수를 통해 구성되도록 기대합니다(`LTX2VideoTransformer3DModel`의 `spatio_temporal_guidance_blocks` 및 `isolate_modalities`). 호출하는 denoiser 블록이 패스별 식별자를 설정하는 책임을 집니다. 사용 예는 `LTX2LoopDenoiser`를 참고하세요.

