Buckets:
| # Planificadores | |
| 馃 Diffusers ofrece muchas funciones de programador para el proceso de difusi贸n. Un programador toma la salida de un modelo (la muestra sobre la que el proceso de difusi贸n est谩 iterando) y un paso de tiempo para devolver una muestra desruidada. El paso de tiempo es importante porque determina en qu茅 punto del proceso de difusi贸n se encuentra el paso; los datos se generan iterando hacia adelante *n* pasos de tiempo y la inferencia se produce propagando hacia atr谩s a trav茅s de los pasos de tiempo. En funci贸n del paso de tiempo, un programador puede ser *discreto*, en cuyo caso el paso de tiempo es un `int`, o *continuo*, en cuyo caso el paso de tiempo es un `float`. | |
| Seg煤n el contexto, un scheduler define c贸mo a帽adir ruido de forma iterativa a una imagen o c贸mo actualizar una muestra en funci贸n de la salida de un modelo: | |
| - durante el *entrenamiento*, un programador a帽ade ruido (existen diferentes algoritmos para a帽adir ruido) a una muestra para entrenar un modelo de difusi贸n | |
| - durante la *inferencia*, un programador define c贸mo actualizar una muestra en funci贸n de la salida de un modelo preentrenado | |
| Muchos de los programadores est谩n implementados a partir de la biblioteca [k-diffusion](https://github.com/crowsonkb/k-diffusion) de [Katherine Crowson](https://github.com/crowsonkb/) y tambi茅n se utilizan ampliamente en A1111. Para ayudarte a asociar los programadores de k-diffusion y A1111 con los programadores de 馃 Diffusers, consulta la siguiente tabla: | |
| | A1111/k-diffusion | 馃 Diffusers | Uso | | |
| |---------------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------| | |
| | DPM++ 2M | [DPMSolverMultistepScheduler](/docs/diffusers/main/es/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | | | |
| | DPM++ 2M Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/es/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | inicializar con `use_karras_sigmas=True` | | |
| | DPM++ 2M SDE | [DPMSolverMultistepScheduler](/docs/diffusers/main/es/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | inicializar con `algorithm_type="sde-dpmsolver++"` | | |
| | DPM++ 2M SDE Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/es/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | inicializar con `use_karras_sigmas=True` y `algorithm_type="sde-dpmsolver++"` | | |
| | DPM++ 2S a | N/A | muy similar a `DPMSolverSinglestepScheduler` | | |
| | DPM++ 2S a Karras | N/A | muy similar a `DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)` | | |
| | DPM++ SDE | [DPMSolverSinglestepScheduler](/docs/diffusers/main/es/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | | | |
| | DPM++ SDE Karras | [DPMSolverSinglestepScheduler](/docs/diffusers/main/es/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | inicializar con `use_karras_sigmas=True` | | |
| | DPM2 | [KDPM2DiscreteScheduler](/docs/diffusers/main/es/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | | | |
| | DPM2 Karras | [KDPM2DiscreteScheduler](/docs/diffusers/main/es/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | inicializar con `use_karras_sigmas=True` | | |
| | DPM2 a | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | | | |
| | DPM2 a Karras | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | inicializar con `use_karras_sigmas=True` | | |
| | DPM adaptativo | N/A | | | |
| | DPM r谩pido | N/A | | | |
| | Euler | [EulerDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/euler#diffusers.EulerDiscreteScheduler) | | | |
| | Euler a | [EulerAncestralDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/euler_ancestral#diffusers.EulerAncestralDiscreteScheduler) | | | |
| | Heun | [HeunDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/heun#diffusers.HeunDiscreteScheduler) | | | |
| | LMS | [LMSDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | | | |
| | LMS Karras | [LMSDiscreteScheduler](/docs/diffusers/main/es/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | inicializar con `use_karras_sigmas=True` | | |
| | N/A | [DEISMultistepScheduler](/docs/diffusers/main/es/api/schedulers/deis#diffusers.DEISMultistepScheduler) | | | |
| | N/A | [UniPCMultistepScheduler](/docs/diffusers/main/es/api/schedulers/unipc#diffusers.UniPCMultistepScheduler) | | | |
| ## Programas de ruido y tipos de programa | |
| | A1111/k-diffusion | 馃 Diffusers | | |
| |--------------------------|----------------------------------------------------------------------------| | |
| | Karras | inicializar con `use_karras_sigmas=True` | | |
| | sgm_uniform | inicializar con `timestep_spacing="trailing"` | | |
| | simple | inicializar con `timestep_spacing="trailing"` | | |
| | exponencial | inicializar con `timestep_spacing="linspace"`, `use_exponential_sigmas=True` | | |
| | beta | inicializar con `timestep_spacing="linspace"`, `use_beta_sigmas=True` | | |
| Todos los programadores se construyen a partir de la clase base [SchedulerMixin](/docs/diffusers/main/es/api/schedulers/overview#diffusers.SchedulerMixin), que implementa utilidades de bajo nivel compartidas por todos los programadores. | |
| ## SchedulerMixin[[diffusers.SchedulerMixin]] | |
| #### diffusers.SchedulerMixin[[diffusers.SchedulerMixin]] | |
| ```python | |
| diffusers.SchedulerMixin() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L79) | |
| Clase base para todos los programadores. | |
| [SchedulerMixin](/docs/diffusers/main/es/api/schedulers/overview#diffusers.SchedulerMixin) contiene funciones comunes compartidas por todos los programadores, como las funcionalidades generales de carga y guardado. | |
| [ConfigMixin](/docs/diffusers/main/es/api/configuration#diffusers.ConfigMixin) se encarga de almacenar los atributos de configuraci贸n (como `num_train_timesteps`) que se pasan a la funci贸n `__init__` del programador, y los atributos se pueden acceder mediante `scheduler.config.num_train_timesteps`. | |
| Atributos de clase: | |
| - **_compatibles** (`list[str]`) -- Una lista de clases de programadores compatibles con la clase de programador principal. Utilice [from_config()](/docs/diffusers/main/es/api/configuration#diffusers.ConfigMixin.from_config) para cargar una clase de programador compatible diferente (debe ser sobrescrita por la clase principal). | |
| #### 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L99) | |
| **Par谩metros:** | |
| pretrained_model_name_or_path (`str` o `os.PathLike`, *opcional*) : Puede ser: - Una cadena, el *model id* (por ejemplo `google/ddpm-celebahq-256`) de un modelo preentrenado alojado en el Hub. - Una ruta a un *directorio* (por ejemplo `./my_model_directory`) que contiene la configuraci贸n del programador guardada con [save_pretrained()](/docs/diffusers/main/es/api/schedulers/overview#diffusers.SchedulerMixin.save_pretrained). | |
| subfolder (`str`, *opcional*) : La ubicaci贸n de la subcarpeta de un archivo de modelo dentro de un repositorio de modelos m谩s grande en el Hub o localmente. | |
| return_unused_kwargs (`bool`, *opcional*, por defecto `False`) : Si los kwargs que no son consumidos por la clase de Python deben devolverse o no. | |
| cache_dir (`str` o `os.PathLike`, *opcional*) : Ruta a un directorio donde se almacena en cach茅 la configuraci贸n de un modelo preentrenado descargado si no se utiliza la cach茅 est谩ndar. | |
| force_download (`bool`, *opcional*, valor predeterminado `False`) : Indica si se debe forzar la (re)descarga de los pesos del modelo y los archivos de configuraci贸n, reemplazando las versiones en cach茅 si existen. | |
| proxies (`dict[str, str]`, *opcional*) : Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, por ejemplo, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Los proxies se utilizan en cada solicitud. | |
| output_loading_info (`bool`, *opcional*, por defecto `False`) : Si se debe devolver tambi茅n un diccionario que contenga las claves faltantes, las claves inesperadas y los mensajes de error. | |
| local_files_only (`bool`, *opcional*, valor predeterminado `False`) : Indica si se deben cargar 煤nicamente los pesos y archivos de configuraci贸n del modelo localmente. Si se establece en `True`, el modelo no se descargar谩 desde el Hub. | |
| token (`str` o `bool`, *opcional*) : El token que se usar谩 como autorizaci贸n HTTP bearer para archivos remotos. Si es `True`, se utiliza el token generado desde `diffusers-cli login` (almacenado en `~/.huggingface`). | |
| revision (`str`, *opcional*, valor predeterminado `"main"`) : La versi贸n espec铆fica del modelo que se va a utilizar. Puede ser el nombre de una rama, el nombre de una etiqueta, un id de commit o cualquier identificador permitido por Git. | |
| **Devuelve:** [SchedulerMixin](/docs/diffusers/main/es/api/schedulers/overview#diffusers.SchedulerMixin) o `tuple[SchedulerMixin, dict[str, Any]]` | |
| El programador instanciado a partir de la configuraci贸n. Si `return_unused_kwargs` es `True`, se devuelve una tupla donde el segundo elemento es un diccionario de argumentos de palabra clave no utilizados. | |
| Instanciar un programador desde un archivo de configuraci贸n JSON predefinido en un directorio local o un repositorio de Hub. | |
| > [!TIP] > Para usar modelos privados o [con acceso restringido](https://huggingface.co/docs/hub/models-gated#gated-models), inicia sesi贸n | |
| con `hf > auth login`. Tambi茅n puedes activar el modo especial > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode) para usar este m茅todo en un > entorno con cortafuegos. | |
| #### save_pretrained[[diffusers.SchedulerMixin.save_pretrained]] | |
| ```python | |
| save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L164) | |
| **Par谩metros:** | |
| save_directory (`str` o `os.PathLike`) : Directorio donde se guardar谩 el archivo JSON de configuraci贸n (se crear谩 si no existe). | |
| push_to_hub (`bool`, *opcional*, por defecto `False`) : Si se sube o no el modelo al Hugging Face Hub despu茅s de guardarlo. Puede especificar el repositorio al que desea subirlo con `repo_id` (por defecto, usar谩 el nombre de `save_directory` en su espacio de nombres). | |
| kwargs (`dict[str, Any]`, *opcional*) : Argumentos de palabra clave adicionales que se pasan al m茅todo [push_to_hub()](/docs/diffusers/main/es/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub). | |
| Guarde un objeto de configuraci贸n de programador en un directorio para que pueda recargarse mediante el m茅todo de clase [from_pretrained()](/docs/diffusers/main/es/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) | |
| ``` | |
| [Fuente](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 im谩genes) : Muestra `(x_{t-1})` calculada del paso de tiempo anterior. `prev_sample` debe usarse como entrada del modelo en la siguiente iteraci贸n del bucle de desruido. | |
| Clase base para la salida de la funci贸n `step` de un programador. | |
| ## KarrasDiffusionSchedulers | |
| `KarrasDiffusionSchedulers` son una generalizaci贸n amplia de los programadores en 馃 Diffusers. Los programadores de esta clase se distinguen a un nivel alto por su estrategia de muestreo de ruido, el tipo de red y escalado, la estrategia de entrenamiento y c贸mo se pondera la p茅rdida. | |
| Los distintos programadores de esta clase, seg煤n el tipo de solver de ecuaciones diferenciales ordinarias (ODE), encajan en la taxonom铆a anterior y proporcionan una buena abstracci贸n para el dise帽o de los programadores principales implementados en 馃 Diffusers. Los programadores de esta clase se encuentran [aqu铆](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() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L491) | |
| Un Mixin para subir un modelo, un programador o un pipeline al 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L526) | |
| **Par谩metros:** | |
| repo_id (`str`) : El nombre del repositorio al que deseas subir tus archivos de modelo, programador o pipeline. Debe incluir el nombre de tu organizaci贸n cuando subas a una organizaci贸n. `repo_id` tambi茅n puede ser una ruta a un directorio local. | |
| commit_message (`str`, *opcional*) : Mensaje para el commit al hacer push. El valor predeterminado es `"Upload {object}"`. | |
| private (`bool`, *opcional*) : Si se debe hacer el repositorio privado. Si es `None` (predeterminado), el repositorio ser谩 p煤blico a menos que el valor predeterminado de la organizaci贸n sea privado. Este valor se ignora si el repositorio ya existe. | |
| token (`str`, *opcional*) : El token que se usar谩 como autorizaci贸n HTTP bearer para archivos remotos. El token generado al ejecutar `hf auth login` (guardado en `~/.huggingface`). | |
| create_pr (`bool`, *opcional*, por defecto `False`) : Si se debe crear una PR con los archivos subidos o realizar el commit directamente. | |
| safe_serialization (`bool`, *opcional*, por defecto `True`) : Si se deben convertir o no los pesos del modelo al formato `safetensors`. | |
| variant (`str`, *opcional*) : Si se especifica, los pesos se guardan en el formato `pytorch_model.<variant>.bin`. | |
| Sube archivos de modelo, programador o pipeline al 馃 Hugging Face Hub. | |
| Ejemplos: | |
| ```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.9 kB
- Xet hash:
- 67490a0834046a7b22f6e54697e7dfd71661c120c46135fd70472eae0679b8bf
路
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.