Diffusers documentation
En provenance de DiffusionPipeline
Commencer
Inférence
Utilisation des pipelines de diffusion
Adaptateurs et personnalisation
Optimiser et mettre à l'échelle
Performances de base
Vitesse et mémoire
Inférence distribuée
Quantification
Accélération spécifique au matériel
Méthodes de la communauté
Diffusers modulaires
AperçuDémarrage rapideEn provenance de DiffusionPipelineÉtatsModularPipelineBlocksSequentialPipelineBlocksLoopSequentialPipelineBlocksAutoPipelineBlocksModularPipelineGuidesComponentsManagerModèles de docstring et de paramètres automatiquesCréation de blocs personnalisésUtilisation de blocs personnalisés avec Mellon
Entraîner et affiner
Ressources
Contribuer
API
En provenance de DiffusionPipeline
Si vous êtes familier avec DiffusionPipeline et que vous travaillez pour la première fois avec un ModularPipeline, certaines choses fonctionnent différemment. Elles sont listées ici afin que vous les ayez en tête avant de parcourir le tutoriel d'introduction.
- Le chargement est paresseux et flexible. from_pretrained() construit le pipeline à partir du
modular_model_index.jsondu dépôt sans charger de poids. load_components() les charge ensuite, et ce n’est pas nécessairement d’un seul coup : par défaut, il charge tout, mais vous pouvez charger uniquement les composants que vous nommez avecnames, ou l’ensemble requis par un workflow donné avecworkflow. update_components() vous permet de réutiliser un composant que vous avez déjà, ou un composant qui diffère de la spécification du dépôt. Consultez Chargement des composants et Mise à jour des composants. - ModularPipeline lit un index différent,
modular_model_index.json, mais fonctionne également avec un dépôt ne contenant quemodel_index.json, à condition que le modèle dispose d’un pipeline modulaire. L’inverse n’est pas vrai : DiffusionPipeline et les classesAutoPipelinene fonctionnent pas avec un dépôt ne contenant quemodular_model_index.json. - Un appel renvoie l’état du pipeline, qui contient également les valeurs intermédiaires (
prompt_embeds,latents, …). Demandez ce dont vous avez besoin avec l’argumentoutput,output="images"ououtput=["images", "latents"], ou lisez un attribut de l’état, comme dans le tutoriel. Voir États. - Le guidage sans classifieur est pris en charge dans le composant
guider, et non via un argument d’appelguidance_scale:pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0)). Consultez le guide des guiders. - Il n’existe pas de
callback_on_step_end; toutefois, vous pouvez insérer un bloc dans la boucle de débruitage pour utiliser vos fonctions de rappel existantes. Consultez Modular pipelines dans le guide des callbacks. - Le pipeline est un graphe de blocs que vous pouvez modifier (supprimer, insérer, remplacer) avant de le construire avec init_pipeline() ;
pipe.blocksrenvoie une copie, modifiez donc d'abord les blocs. Consultez Composer de nouveaux workflows. - L’offloading est géré par un ComponentsManager, qui peut servir plusieurs pipelines partageant des composants. Consultez le guide ComponentsManager.