Buckets:
| # Agendadores | |
| 🤗 O Diffusers fornece muitas funções de agendador para o processo de difusão. Um agendador recebe a saída de um modelo (a amostra na qual o processo de difusão está iterando) e um timestep para retornar uma amostra sem ruído. O timestep é importante porque determina em que ponto do processo de difusão a etapa está; os dados são gerados iterando para frente *n* timesteps e a inferência ocorre propagando para trás pelos timesteps. Com base no timestep, um agendador pode ser *discreto*, no qual o timestep é um `int`, ou *contínuo*, no qual o timestep é um `float`. | |
| Dependendo do contexto, um scheduler define como adicionar ruído iterativamente a uma imagem ou como atualizar uma amostra com base na saída de um modelo: | |
| - durante o *treinamento*, um agendador adiciona ruído (existem diferentes algoritmos para a forma de adicionar ruído) a uma amostra para treinar um modelo de difusão | |
| - durante a *inferência*, um agendador define como atualizar uma amostra com base na saída de um modelo pré-treinado | |
| Muitos agendadores são implementados a partir da biblioteca [k-diffusion](https://github.com/crowsonkb/k-diffusion) de [Katherine Crowson](https://github.com/crowsonkb/) e também são amplamente utilizados no A1111. Para ajudá-lo a mapear os agendadores do k-diffusion e do A1111 para os agendadores no 🤗 Diffusers, veja a tabela abaixo: | |
| | A1111/k-diffusion | 🤗 Diffusers | Uso | | |
| |---------------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------| | |
| | DPM++ 2M | [DPMSolverMultistepScheduler](/docs/diffusers/main/pt/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | | | |
| | DPM++ 2M Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/pt/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | inicialize com `use_karras_sigmas=True` | | |
| | DPM++ 2M SDE | [DPMSolverMultistepScheduler](/docs/diffusers/main/pt/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | inicialize com `algorithm_type="sde-dpmsolver++"` | | |
| | DPM++ 2M SDE Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/pt/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | inicialize com `use_karras_sigmas=True` e `algorithm_type="sde-dpmsolver++"` | | |
| | DPM++ 2S a | N/A | muito semelhante a `DPMSolverSinglestepScheduler` | | |
| | DPM++ 2S a Karras | N/A | muito semelhante a `DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)` | | |
| | DPM++ SDE | [DPMSolverSinglestepScheduler](/docs/diffusers/main/pt/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | | | |
| | DPM++ SDE Karras | [DPMSolverSinglestepScheduler](/docs/diffusers/main/pt/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | inicialize com `use_karras_sigmas=True` | | |
| | DPM2 | [KDPM2DiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | | | |
| | DPM2 Karras | [KDPM2DiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | inicialize com `use_karras_sigmas=True` | | |
| | DPM2 a | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | | | |
| | DPM2 a Karras | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | inicialize com `use_karras_sigmas=True` | | |
| | DPM adaptativo | N/A | | | |
| | DPM rápido | N/A | | | |
| | Euler | [EulerDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/euler#diffusers.EulerDiscreteScheduler) | | | |
| | Euler a | [EulerAncestralDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/euler_ancestral#diffusers.EulerAncestralDiscreteScheduler) | | | |
| | Heun | [HeunDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/heun#diffusers.HeunDiscreteScheduler) | | | |
| | LMS | [LMSDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | | | |
| | LMS Karras | [LMSDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | inicialize com `use_karras_sigmas=True` | | |
| | N/A | [DEISMultistepScheduler](/docs/diffusers/main/pt/api/schedulers/deis#diffusers.DEISMultistepScheduler) | | | |
| | N/A | [UniPCMultistepScheduler](/docs/diffusers/main/pt/api/schedulers/unipc#diffusers.UniPCMultistepScheduler) | | | |
| ## Agendamentos de ruído e tipos de agendamento | |
| | A1111/k-diffusion | 🤗 Diffusers | | |
| |--------------------------|----------------------------------------------------------------------------| | |
| | Karras | inicialize com `use_karras_sigmas=True` | | |
| | sgm_uniform | inicializar com `timestep_spacing="trailing"` | | |
| | simples | inicializar com `timestep_spacing="trailing"` | | |
| | exponencial | inicialize com `timestep_spacing="linspace"`, `use_exponential_sigmas=True` | | |
| | beta | inicializar com `timestep_spacing="linspace"`, `use_beta_sigmas=True` | | |
| Todos os agendadores são construídos a partir da classe base [SchedulerMixin](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.SchedulerMixin), que implementa utilitários de baixo nível compartilhados por todos os agendadores. | |
| ## SchedulerMixin[[diffusers.SchedulerMixin]] | |
| #### diffusers.SchedulerMixin[[diffusers.SchedulerMixin]] | |
| ```python | |
| diffusers.SchedulerMixin() | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L79) | |
| Classe base para todos os agendadores. | |
| [SchedulerMixin](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.SchedulerMixin) contém funções comuns compartilhadas por todos os agendadores, como funcionalidades gerais de carregamento e salvamento. | |
| [ConfigMixin](/docs/diffusers/main/pt/api/configuration#diffusers.ConfigMixin) cuida de armazenar os atributos de configuração (como `num_train_timesteps`) que são passados para a função `__init__` do scheduler, e os atributos podem ser acessados por `scheduler.config.num_train_timesteps`. | |
| Atributos de classe: | |
| - **_compatibles** (`list[str]`) -- Uma lista de classes de agendadores compatíveis com a classe de agendador pai. Use [from_config()](/docs/diffusers/main/pt/api/configuration#diffusers.ConfigMixin.from_config) para carregar uma classe de agendador compatível diferente (deve ser sobrescrita pela classe pai). | |
| #### from_pretrained[[diffusers.SchedulerMixin.from_pretrained]] | |
| ```python | |
| from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs: bool = False, **kwargs: Any) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L99) | |
| **Parâmetros:** | |
| pretrained_model_name_or_path (`str` ou `os.PathLike`, *opcional*) : Pode ser: - Uma string, o *model id* (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 scheduler salva com [save_pretrained()](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.SchedulerMixin.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` ou `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`) : 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 ou não. 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. | |
| **Retorna:** [SchedulerMixin](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.SchedulerMixin) ou `tuple[SchedulerMixin, dict[str, Any]]` | |
| O agendador instanciado a partir da configuração. Se `return_unused_kwargs` for `True`, uma tupla é retornada, onde o segundo elemento é um dicionário de argumentos de palavra-chave não utilizados. | |
| Instancie um agendador 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. | |
| #### save_pretrained[[diffusers.SchedulerMixin.save_pretrained]] | |
| ```python | |
| save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L164) | |
| **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 agendador em um diretório para que ele possa ser recarregado usando o método de classe [from_pretrained()](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained). | |
| ## SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]] | |
| #### diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]] | |
| ```python | |
| diffusers.schedulers.scheduling_utils.SchedulerOutput(prev_sample: Tensor) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L66) | |
| **Parâmetros:** | |
| prev_sample (`torch.Tensor` de forma `(batch_size, num_channels, height, width)` para imagens) : Amostra calculada `(x_{t-1})` do passo anterior. `prev_sample` deve ser usado como entrada do próximo modelo no loop de remoção de ruído. | |
| Classe base para a saída da função `step` de um agendador. | |
| ## KarrasDiffusionSchedulers | |
| `KarrasDiffusionSchedulers` são uma generalização ampla dos agendadores no 🤗 Diffusers. Os agendadores desta classe se distinguem em alto nível pela estratégia de amostragem de ruído, pelo tipo de rede e escalonamento, pela estratégia de treinamento e pela forma como a perda é ponderada. | |
| Os diferentes agendadores desta classe, dependendo do tipo de solucionador de equações diferenciais ordinárias (ODE), se enquadram na taxonomia acima e fornecem uma boa abstração para o design dos principais agendadores implementados no 🤗 Diffusers. Os agendadores desta classe estão disponíveis [aqui](https://github.com/huggingface/diffusers/blob/a69754bb879ed55b9b6dc9dd0b3cf4fa4124c765/src/diffusers/schedulers/scheduling_utils.py#L32). | |
| ## PushToHubMixin[[diffusers.utils.PushToHubMixin]] | |
| #### diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]] | |
| ```python | |
| diffusers.utils.PushToHubMixin() | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L491) | |
| Um Mixin para enviar um modelo, agendador ou pipeline para o Hugging Face Hub. | |
| #### push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]] | |
| ```python | |
| push_to_hub(repo_id: str, commit_message: str | None = None, private: bool | None = None, token: str | None = None, create_pr: bool = False, safe_serialization: bool = True, variant: str | None = None, subfolder: str | None = None) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L526) | |
| **Parâmetros:** | |
| repo_id (`str`) : O nome do repositório para o qual você deseja enviar os arquivos do seu modelo, agendador ou pipeline. Deve conter o nome da sua organização ao enviar para uma organização. `repo_id` também pode ser um caminho para um diretório local. | |
| commit_message (`str`, *opcional*) : Mensagem para commit ao fazer push. Padrão é `"Upload {object}"`. | |
| private (`bool`, *opcional*) : Se deve tornar o repositório privado. Se `None` (padrão), o repositório será público, a menos que o padrão da organização seja privado. Este valor é ignorado se o repositório já existir. | |
| token (`str`, *opcional*) : O token a ser usado como autorização de bearer HTTP para arquivos remotos. O token gerado ao executar `hf auth login` (armazenado em `~/.huggingface`). | |
| create_pr (`bool`, *opcional*, padrão `False`) : Se deve ou não criar um PR com os arquivos enviados ou fazer o commit diretamente. | |
| safe_serialization (`bool`, *opcional*, padrão `True`) : Se os pesos do modelo devem ou não ser convertidos para o formato `safetensors`. | |
| variant (`str`, *opcional*) : Se especificado, os pesos são salvos no formato `pytorch_model.<variant>.bin`. | |
| Envie arquivos de modelo, agendador ou pipeline para o 🤗 Hugging Face Hub. | |
| Exemplos: | |
| ```python | |
| from diffusers import UNet2DConditionModel | |
| unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2", subfolder="unet") | |
| # Push the `unet` to your namespace with the name "my-finetuned-unet". | |
| unet.push_to_hub("my-finetuned-unet") | |
| # Push the `unet` to an organization with the name "my-finetuned-unet". | |
| unet.push_to_hub("your-org/my-finetuned-unet") | |
| ``` | |
Xet Storage Details
- Size:
- 17.5 kB
- Xet hash:
- f99a84b2b4020a6a3d62d9044b0c77514a7f71f2f52200054386f96f9622e0ac
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.