# Guias

Os guiders são componentes do Modular Diffusers que controlam como o processo de difusão é guiado durante a geração. Eles implementam diversas técnicas de orientação para melhorar a qualidade e o controle da geração.

## BaseGuidance[[diffusers.BaseGuidance]]

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

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

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

Classe base que fornece o esqueleto para a implementação de técnicas de orientação.

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

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

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

Limpa os modelos para a técnica de orientação após um lote de dados dado. Este método deve ser sobrescrito em subclasses para implementar a lógica específica de limpeza dos modelos. É útil para remover ganchos ou outras modificações com estado feitas durante `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)
```

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

**Parâmetros:**

pretrained_model_name_or_path (`str` ou `os.PathLike`, *opcional*) : Pode ser:  - Uma string, o *id do modelo* (por exemplo `google/ddpm-celebahq-256`) de um modelo pré-treinado hospedado no Hub. - Um caminho para um *diretório* (por exemplo `./my_model_directory`) contendo a configuração do guider salva com [save_pretrained()](/docs/diffusers/main/pt/api/modular_diffusers/guiders#diffusers.BaseGuidance.save_pretrained).

subfolder (`str`, *opcional*) : A localização da subpasta de um arquivo de modelo dentro de um repositório de modelo maior no Hub ou localmente.

return_unused_kwargs (`bool`, *opcional*, padrão `False`) : Se os kwargs que não são consumidos pela classe Python devem ser retornados ou não.

cache_dir (`str | os.PathLike`, *opcional*) : Caminho para um diretório onde a configuração de um modelo pré-treinado baixado é armazenada em cache, caso o cache padrão não seja utilizado.

force_download (`bool`, *opcional*, padrão `False`) : Se deve forçar o (re-)download dos pesos do modelo e dos arquivos de configuração, sobrescrevendo as versões em cache, caso existam.

proxies (`dict[str, str]`, *opcional*) : Um dicionário de servidores proxy a serem usados por protocolo ou endpoint, por exemplo, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Os proxies são usados em cada solicitação.

output_loading_info(`bool`, *opcional*, padrão `False`) : Indica se deve ou não retornar também um dicionário contendo chaves ausentes, chaves inesperadas e mensagens de erro.

local_files_only(`bool`, *opcional*, padrão `False`) : Se deve carregar apenas os pesos e os arquivos de configuração do modelo localmente. Se definido como `True`, o modelo não será baixado do Hub.

token (`str` ou *bool*, *opcional*) : O token a ser usado como autorização HTTP bearer para arquivos remotos. Se `True`, o token gerado por `diffusers-cli login` (armazenado em `~/.huggingface`) é utilizado.

revision (`str`, *opcional*, padrão `"main"`) : A versão específica do modelo a ser usada. Pode ser o nome de um branch, o nome de uma tag, um id de commit ou qualquer identificador permitido pelo Git.

Instancie um guider a partir de um arquivo de configuração JSON predefinido em um diretório local ou em um repositório do Hub.

> [!TIP] > Para usar modelos privados ou [gated models](https://huggingface.co/docs/hub/models-gated#gated-models), faça login
com `hf > auth login`. Você também pode ativar o modo especial > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode) para usar este método em um > ambiente com firewall.

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

```python
get_state()
```

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

Retorna o estado atual da técnica de orientação como um dicionário. As variáveis de estado serão incluídas no método __repr__. Retorna: `dict[str, Any]`: Um dicionário contendo as variáveis de estado atuais, incluindo:
- step: Etapa de inferência atual
- num_inference_steps: Número total de etapas de inferência
- timestep: tensor do timestep atual
- count_prepared: Número de vezes que prepare_models foi chamado
- enabled: se a orientação está habilitada
- num_conditions: Número de condições

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

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

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

**Parâmetros:**

- ****kwargs** : Parâmetros de configuração para substituir na nova instância. Se nenhum kwarg for fornecido, retorna uma cópia exata com a mesma configuração.

**Retorna:**

Uma nova instância de guider com a mesma (ou atualizada) configuração.

Cria uma cópia desta instância de guider, opcionalmente com parâmetros de configuração modificados.

Exemplo:
```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)
```

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

Prepara os modelos para a técnica de orientação em um lote de dados específico. Este método deve ser sobrescrito em subclasses para implementar a lógica específica de preparação do modelo.

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

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

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

**Parâmetros:**

save_directory (`str` ou `os.PathLike`) : Diretório onde o arquivo JSON de configuração será salvo (será criado se não existir).

push_to_hub (`bool`, *opcional*, padrão `False`) : Se deve ou não enviar seu modelo para o Hugging Face Hub após salvá-lo. Você pode especificar o repositório para o qual deseja enviar com `repo_id` (o padrão será o nome de `save_directory` no seu namespace).

kwargs (`dict[str, Any]`, *opcional*) : Argumentos de palavra-chave adicionais passados ao método [push_to_hub()](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub).

Salve um objeto de configuração de guider em um diretório para que ele possa ser recarregado usando o método de classe [from_pretrained()](/docs/diffusers/main/pt/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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : escala de CFG aplicada por este guider durante o pós-processamento. Valores mais altos = condicionamento de prompt mais forte, mas podem reduzir a qualidade. Faixa típica: 1.0-20.0.

guidance_rescale (`float`, padrão `0.0`) : Fator de reescala para evitar superexposição em altas escalas de orientação. Baseado em [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Intervalo: 0.0 (sem reescala) a 1.0 (reescala completa).

use_original_formulation (`bool`, padrão `False`) : Se `True`, usa a formulação original de CFG do artigo. Se `False` (padrão), usa a formulação nativa do diffusers do artigo Imagen.

start (`float`, padrão `0.0`) : Fração dos passos de desruido (0.0-1.0) após a qual o CFG começa. Use > 0.0 para desativar o CFG nos primeiros passos de desruido.

stop (`float`, padrão `1.0`) : Fração dos passos de desruido (0.0-1.0) após a qual o CFG é desativado. Use < 1.0 para desativar o CFG nos passos finais de desruido.

enabled (`bool`, padrão `True`) : Se o CFG está habilitado. Defina como `False` para desabilitar o CFG completamente (usa apenas previsões condicionais).

Implementa o Classifier-Free Guidance (CFG) para modelos de difusão.

Referência: https://huggingface.co/papers/2207.12598

O CFG melhora a qualidade da geração e a aderência ao prompt ao treinar modelos conjuntamente em dados condicionais e incondicionais e, em seguida, combinar as previsões durante a inferência. Isso permite equilibrar qualidade (alta orientação) e diversidade (baixa orientação).

**Duas formulações de CFG:**

1. **Formulação original** (do artigo):
```
x_pred = x_cond + guidance_scale * (x_cond - x_uncond)
```

   Afasta as previsões condicionais das previsões incondicionais.

2. **Formulação nativa do Diffusers** (padrão, do paper do Imagen):
```
x_pred = x_uncond + guidance_scale * (x_cond - x_uncond)
```

   Move as previsões incondicionais para as condicionais, suprimindo efetivamente os recursos negativos (por exemplo, "má qualidade", "marcas d'água"). Equivalente em teoria, mas mais intuitivo.

Use `use_original_formulation=True` para alternar para a formulação original.

## 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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

zero_init_steps (`int`, padrão `1`) : O número de etapas de inferência para as quais as previsões de ruído são zeradas (veja a Seção 4.2).

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.01`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `0.2`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

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

Esta é uma implementação da técnica de orientação Classifier-Free Zero*, que é uma variante da orientação sem classificador. Ela propõe a inicialização em zero das previsões de ruído para os primeiros passos do processo de difusão e também introduz um fator de reescalonamento ótimo para as previsões de ruído, o que pode ajudar a melhorar a qualidade das imagens geradas.

Os autores do artigo sugerem definir a inicialização em zero nos primeiros 4% das etapas de inferência.

## 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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

skip_layer_guidance_scale (`float`, padrão `2.8`) : O parâmetro de escala para o skip layer guidance. A anatomia e a coerência estrutural podem melhorar com valores mais altos, mas isso também pode levar a superexposição e saturação.

skip_layer_guidance_start (`float`, padrão `0.01`) : A fração do número total de etapas de desruido após a qual o skip layer guidance começa.

skip_layer_guidance_stop (`float`, padrão `0.2`) : A fração do número total de etapas de desruido após a qual a orientação de camada de salto é interrompida.

skip_layer_guidance_layers (`int` ou `list[int]`, *opcional*) : Os índices das camadas para aplicar o skip layer guidance. Pode ser um único inteiro ou uma lista de inteiros. Se não for fornecido, `skip_layer_config` deve ser fornecido. Os valores recomendados são `[7, 8, 9]` para o Stable Diffusion 3.5 Medium.

skip_layer_config (`LayerSkipConfig` ou `list[LayerSkipConfig]`, *opcional*) : A configuração para o skip layer guidance. Pode ser um único `LayerSkipConfig` ou uma lista de `LayerSkipConfig`. Se não for fornecida, `skip_layer_guidance_layers` deve ser fornecida.

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.01`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `0.2`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

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

Orientação Espacial-Temporal (STG): https://huggingface.co/papers/2411.18664

O SLG foi introduzido pela StabilityAI para melhorar a coerência de estrutura e anatomia em imagens geradas. Ele funciona pulando a passagem direta dos blocos de transformador especificados durante o processo de desruidamento em um lote condicional adicional de dados, além dos lotes condicional e incondicional já usados no CFG ([~guiders.classifier_free_guidance.ClassifierFreeGuidance]), e, em seguida, escalando e deslocando as previsões do CFG com base na diferença entre as previsões condicionais sem pulo e as previsões condicionais com pulo.

A intuição por trás do SLG pode ser pensada como mover as estimativas da distribuição prevista pelo CFG ainda mais longe das versões piores das estimativas da distribuição condicional (pois pular camadas é equivalente a usar uma versão pior do modelo para a previsão condicional).

STG é uma melhoria e um trabalho de continuação que combina ideias de SLG, PAG e técnicas semelhantes para melhorar a qualidade da geração em modelos de difusão de vídeo.

Leituras adicionais:
- [Guiando um Modelo de Difusão com uma Versão Pior Dele Mesmo](https://huggingface.co/papers/2406.02507)

Os valores de `skip_layer_guidance_scale`, `skip_layer_guidance_start` e `skip_layer_guidance_stop` são definidos por padrão de acordo com as recomendações da StabilityAI para o 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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

seg_guidance_scale (`float`, padrão `3.0`) : O parâmetro de escala para o guia de energia suavizado. A anatomia e a coerência estrutural podem melhorar com valores mais altos, mas isso também pode levar a superexposição e saturação.

seg_blur_sigma (`float`, padrão `9999999.0`) : A quantidade pela qual desfocamos os pesos de atenção. Definir esse valor maior que 9999.0 resulta em desfoque infinito, o que significa consultas uniformes. Controlá-lo exponencialmente é empiricamente eficaz.

seg_blur_threshold_inf (`float`, padrão `9999.0`) : O limite acima do qual o desfoque é considerado infinito.

seg_guidance_start (`float`, padrão `0.0`) : A fração do número total de etapas de desruido após a qual o guia de energia suavizada começa.

seg_guidance_stop (`float`, padrão `1.0`) : A fração do total de etapas de desruido após a qual a orientação de energia suavizada é interrompida.

seg_guidance_layers (`int` ou `list[int]`, *opcional*) : Os índices das camadas para aplicar o guia de energia suavizada. Pode ser um único inteiro ou uma lista de inteiros. Se não for fornecido, `seg_guidance_config` deve ser fornecido. Os valores recomendados são `[7, 8, 9]` para o Stable Diffusion 3.5 Medium.

seg_guidance_config (`SmoothedEnergyGuidanceConfig` ou `list[SmoothedEnergyGuidanceConfig]`, *opcional*) : A configuração para o guia da camada de energia suavizada. Pode ser um único `SmoothedEnergyGuidanceConfig` ou uma lista de `SmoothedEnergyGuidanceConfig`. Se não for fornecida, `seg_guidance_layers` deve ser fornecido.

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.01`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `0.2`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

Guia de Energia Suavizada (SEG): https://huggingface.co/papers/2408.00760

O SEG é suportado apenas como um recurso experimental de protótipo por enquanto, portanto, a implementação pode ser modificada no futuro sem aviso prévio ou garantia de reprodutibilidade. Esta implementação pressupõe:
- As imagens geradas são quadradas (altura == largura)
- O modelo não combina diferentes modalidades (por exemplo, os fluxos latentes de texto e imagem não são combinados, como no 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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

perturbed_guidance_scale (`float`, padrão `2.8`) : O parâmetro de escala para o guia de atenção perturbada.

perturbed_guidance_start (`float`, padrão `0.01`) : A fração do número total de etapas de desruido após a qual o guia de atenção perturbada começa.

perturbed_guidance_stop (`float`, padrão `0.2`) : A fração do número total de etapas de desruido após a qual a orientação de atenção perturbada é interrompida.

perturbed_guidance_layers (`int` ou `list[int]`, *opcional*) : Os índices das camadas para aplicar a orientação de atenção perturbada. Pode ser um único inteiro ou uma lista de inteiros. Se não for fornecido, `perturbed_guidance_config` deve ser fornecido.

perturbed_guidance_config (`LayerSkipConfig` ou `list[LayerSkipConfig]`, *opcional*) : A configuração para o guia de atenção perturbada. Pode ser um único `LayerSkipConfig` ou uma lista de `LayerSkipConfig`. Se não for fornecida, `perturbed_guidance_layers` deve ser fornecido.

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.01`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `0.2`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

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

A intuição por trás do PAG pode ser pensada como mover as estimativas da distribuição prevista pelo CFG ainda mais longe de versões piores das estimativas da distribuição condicional. O PAG foi uma das primeiras técnicas a introduzir a ideia de usar uma versão pior do modelo treinado para orientar melhor a si mesmo no processo de remoção de ruído. Ele perturba as pontuações de atenção do fluxo latente substituindo a matriz de pontuações por uma matriz identidade para camadas selecionadas seletivamente.

Leituras adicionais:
- [Guiando um Modelo de Difusão com uma Versão Pior Dele Mesmo](https://huggingface.co/papers/2406.02507)

O PAG é implementado com uma abordagem semelhante à do SkipLayerGuidance, devido à sobreposição nos parâmetros de configuração e nos detalhes de implementação.

## 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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

adaptive_projected_guidance_momentum (`float`, padrão `None`) : O parâmetro de momentum para o guia projetado adaptativo. Desativado se definido como `None`.

adaptive_projected_guidance_rescale (`float`, padrão `15.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir

adaptive_projected_guidance_norm_dim (`int` ou `tuple[int]`, *opcional*) : Dimensão(ões) sobre as quais calcular a norma e a projeção APG. Se omitido, todas as dimensões não de lote são usadas, preservando o comportamento original.

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.0`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `1.0`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

auto_guidance_layers (`int` ou `list[int]`, *opcional*) : Os índices das camadas para aplicar o skip layer guidance. Pode ser um único inteiro ou uma lista de inteiros. Se não for fornecido, `skip_layer_config` deve ser fornecido.

auto_guidance_config (`LayerSkipConfig` ou `list[LayerSkipConfig]`, *opcional*) : A configuração para o skip layer guidance. Pode ser um único `LayerSkipConfig` ou uma lista de `LayerSkipConfig`. Se não for fornecida, `skip_layer_guidance_layers` deve ser fornecida.

dropout (`float`, *opcional*) : A probabilidade de dropout para autoguidance nas camadas de skip habilitadas (seja com `auto_guidance_layers` ou `auto_guidance_config`). Se não for fornecida, a probabilidade de dropout será definida como 1.0.

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.0`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `1.0`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `7.5`) : O parâmetro de escala para classifier-free guidance. Valores mais altos resultam em uma condicionamento mais forte no prompt de texto, enquanto valores mais baixos permitem mais liberdade na geração. Valores mais altos podem levar à saturação e à deterioração da qualidade da imagem.

guidance_rescale (`float`, padrão `0.0`) : O fator de reescala aplicado às previsões de ruído. Isso é usado para melhorar a qualidade da imagem e corrigir a superexposição. Baseado na Seção 3.4 de [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`, padrão `False`) : Se deve usar a formulação original de classifier-free guidance proposta no artigo. Por padrão, usamos a implementação nativa do diffusers que está no codebase há muito tempo. Veja [~guiders.classifier_free_guidance.ClassifierFreeGuidance] para mais detalhes.

start (`float`, padrão `0.0`) : A fração do número total de etapas de desruido após a qual o direcionamento começa.

stop (`float`, padrão `1.0`) : A fração do número total de etapas de desruido após a qual a orientação é interrompida.

Classificador Tangencial com Orientação Livre (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)
```

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

**Parâmetros:**

guidance_scale (`float`, padrão `1.0`) : escala de CFG para esta modalidade. A passagem de CFG é totalmente ignorada em `1.0`.

stg_scale (`float`, padrão `0.0`) : Escala de orientação espaço-temporal para esta modalidade. A passagem de STG é totalmente ignorada em `0.0`.

modality_scale (`float`, padrão `1.0`) : Escala de orientação de isolamento de modalidade para esta modalidade. Essa passagem é totalmente ignorada em `1.0`.

guidance_rescale (`float`, padrão `0.0`) : Fator de reescala para evitar superexposição em altas escalas de orientação. Baseado em [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Intervalo: 0.0 (sem reescala) a 1.0 (reescala completa).

spatio_temporal_guidance_blocks (`list[int]`, *opcional*) : Blocos de Transformer a serem perturbados na passagem STG. A forma como o valor é consumido depende do bloco de denoiser: o LTX-2 perturba blocos inteiros em um único forward que alimenta todas as modalidades, portanto lê isso apenas do guider de vídeo — configurá-lo no guider de áudio não tem efeito, e esse guider se junta ao mesmo forward STG através do seu próprio `stg_scale`.

start (`float`, padrão `0.0`) : Fração dos passos de desruido (0.0-1.0) após a qual o guia começa.

stop (`float`, padrão `1.0`) : Fração dos passos de desruido (0.0-1.0) após a qual a orientação é interrompida.

enabled (`bool`, padrão `True`) : Se este guia aplica orientação. Quando `False`, apenas a passagem condicional é executada.

Guia de modalidade única para LTX-2.X. Combina até três termos por meio da formulação delta:
- orientação sem classificador (CFG),
- orientação espaço-temporal (STG), uma passagem extra com um conjunto de blocos de transformer perturbados,
- orientação de isolamento de modalidade, uma passagem extra com a atenção cruzada A2V/V2A desativada.

Uma instância controla uma modalidade, portanto um checkpoint multimodal carrega várias: o LTX-2.X associa um `guider` de vídeo a um `audio_guider`, cada um mantendo suas próprias escalas. A estimativa final de guidance é calculada no espaço que o chamador fornece — o denoiser do LTX-2 converte de velocity->x0 antes de chamar isso e de volta depois, de modo que `forward` opera sobre previsões de x0.

Diferentemente de `SkipLayerGuidance`, que aplica suas perturbações com hooks, `LTX2Guidance` espera que suas perturbações não-CFG sejam configuráveis por meio dos argumentos do forward do modelo (`spatio_temporal_guidance_blocks` e `isolate_modalities` em `LTX2VideoTransformer3DModel`). O bloco de denoiser que faz a chamada é responsável por definir esses identificadores por passagem; veja `LTX2LoopDenoiser` para um exemplo de uso.

