Buckets:

mishig's picture
|
download
raw
36.6 kB
# 가이드
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`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).
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`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).
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`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).
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`를 참고하세요.

Xet Storage Details

Size:
36.6 kB
·
Xet hash:
008e6fc2ae250fb1e2a80731998474440b0f71da329f897349feb959dab586e6

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.