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 de Katherine Crowson 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 | |
| DPM++ 2M Karras | DPMSolverMultistepScheduler | inicialize com use_karras_sigmas=True |
| DPM++ 2M SDE | DPMSolverMultistepScheduler | inicialize com algorithm_type="sde-dpmsolver++" |
| DPM++ 2M SDE Karras | 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 | |
| DPM++ SDE Karras | DPMSolverSinglestepScheduler | inicialize com use_karras_sigmas=True |
| DPM2 | KDPM2DiscreteScheduler | |
| DPM2 Karras | KDPM2DiscreteScheduler | inicialize com use_karras_sigmas=True |
| DPM2 a | KDPM2AncestralDiscreteScheduler | |
| DPM2 a Karras | KDPM2AncestralDiscreteScheduler | inicialize com use_karras_sigmas=True |
| DPM adaptativo | N/A | |
| DPM rápido | N/A | |
| Euler | EulerDiscreteScheduler | |
| Euler a | EulerAncestralDiscreteScheduler | |
| Heun | HeunDiscreteScheduler | |
| LMS | LMSDiscreteScheduler | |
| LMS Karras | LMSDiscreteScheduler | inicialize com use_karras_sigmas=True |
| N/A | DEISMultistepScheduler | |
| N/A | 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, que implementa utilitários de baixo nível compartilhados por todos os agendadores.
SchedulerMixin[[diffusers.SchedulerMixin]]
diffusers.SchedulerMixin[[diffusers.SchedulerMixin]]
diffusers.SchedulerMixin()
Classe base para todos os agendadores.
SchedulerMixin contém funções comuns compartilhadas por todos os agendadores, como funcionalidades gerais de carregamento e salvamento.
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() para carregar uma classe de agendador compatível diferente (deve ser sobrescrita pela classe pai).
from_pretrained[[diffusers.SchedulerMixin.from_pretrained]]
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs: bool = False, **kwargs: Any)
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().
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 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.
> Para usar modelos privados ou gated models, faça login com
hf > auth login. Você também pode ativar o modo especial > "offline-mode" para usar este método em um > ambiente com firewall.
save_pretrained[[diffusers.SchedulerMixin.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any)
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().
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().
SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]]
diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]]
diffusers.schedulers.scheduling_utils.SchedulerOutput(prev_sample: Tensor)
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.
PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin()
Um Mixin para enviar um modelo, agendador ou pipeline para o Hugging Face Hub.
push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]]
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)
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:
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.