Buckets:
| # ComponentsManager | |
| > [!WARNING] | |
| > [ComponentsManager](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) est encore en cours de développement actif et son API peut évoluer. | |
| Le [ComponentsManager](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) est un système d’enregistrement et de gestion des modèles pour Modular Diffusers. Il ajoute et suit les modèles, stocke des métadonnées utiles (taille du modèle, placement sur l’appareil, adaptateurs) et prend en charge le déchargement (offloading). | |
| Ce guide vous montre comment utiliser [ComponentsManager](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) pour gérer les composants et la mémoire des appareils. | |
| ## Se connecter à un pipeline | |
| Créez un [ComponentsManager](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) et passez-le à un [ModularPipeline](/docs/diffusers/main/fr/api/modular_diffusers/pipeline#diffusers.ModularPipeline) via [from_pretrained()](/docs/diffusers/main/fr/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) ou [init_pipeline()](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks.init_pipeline). | |
| ```py | |
| from diffusers import ModularPipeline, ComponentsManager | |
| import torch | |
| manager = ComponentsManager() | |
| pipe = ModularPipeline.from_pretrained("Tongyi-MAI/Z-Image-Turbo", components_manager=manager) | |
| pipe.load_components(dtype=torch.bfloat16) | |
| ``` | |
| ```py | |
| from diffusers import ModularPipelineBlocks, ComponentsManager | |
| import torch | |
| manager = ComponentsManager() | |
| blocks = ModularPipelineBlocks.from_pretrained("diffusers/Florence2-image-Annotator", trust_remote_code=True) | |
| pipe= blocks.init_pipeline(components_manager=manager) | |
| pipe.load_components(dtype=torch.bfloat16) | |
| ``` | |
| Les composants chargés par le pipeline sont automatiquement enregistrés dans le gestionnaire. Vous pouvez les inspecter immédiatement. | |
| ## Inspecter les composants | |
| Affichez le [ComponentsManager](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) pour voir tous les composants enregistrés, y compris leur classe, leur emplacement sur l'appareil, leur dtype, leur taille mémoire et leur identifiant de chargement. | |
| La sortie ci-dessous correspond à l’exemple `from_pretrained` ci-dessus. | |
| ```py | |
| Components: | |
| ============================================================================================================================= | |
| Models: | |
| ----------------------------------------------------------------------------------------------------------------------------- | |
| Name_ID | Class | Device: act(exec) | Dtype | Size (GB) | Load ID | |
| ----------------------------------------------------------------------------------------------------------------------------- | |
| text_encoder_140458257514752 | Qwen3Model | cpu | torch.bfloat16 | 7.49 | Tongyi-MAI/Z-Image-Turbo|text_encoder|null|null | |
| vae_140458257515376 | AutoencoderKL | cpu | torch.bfloat16 | 0.16 | Tongyi-MAI/Z-Image-Turbo|vae|null|null | |
| transformer_140458257515616 | ZImageTransformer2DModel | cpu | torch.bfloat16 | 11.46 | Tongyi-MAI/Z-Image-Turbo|transformer|null|null | |
| ----------------------------------------------------------------------------------------------------------------------------- | |
| Other Components: | |
| ----------------------------------------------------------------------------------------------------------------------------- | |
| ID | Class | Collection | |
| ----------------------------------------------------------------------------------------------------------------------------- | |
| scheduler_140461023555264 | FlowMatchEulerDiscreteScheduler | N/A | |
| tokenizer_140458256346432 | Qwen2Tokenizer | N/A | |
| ----------------------------------------------------------------------------------------------------------------------------- | |
| ``` | |
| Le tableau présente les modèles (avec les informations sur l’appareil, le dtype et la mémoire) séparément des autres composants tels que les planificateurs et les tokenizers. Si des modèles ont des adaptateurs LoRA, des IP-Adapters ou une quantisation appliquée, ces informations sont affichées dans une section supplémentaire en bas. | |
| ## Offloading | |
| La méthode [enable_auto_cpu_offload()](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager.enable_auto_cpu_offload) est une stratégie de déchargement globale qui fonctionne sur tous les modèles, quel que soit le pipeline qui les utilise. Une fois activée, vous n'avez plus à vous soucier du placement sur les périphériques si vous ajoutez ou retirez des composants. | |
| ```py | |
| manager.enable_auto_cpu_offload(device="cuda") # or "mps", "xpu", "cpu" | |
| ``` | |
| Tous les modèles démarrent sur le CPU et [ComponentsManager](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) les déplace sur l'appareil approprié juste avant qu'ils soient nécessaires, et déplace les autres modèles vers le CPU lorsque la mémoire GPU est faible. | |
| Appel de [disable_auto_cpu_offload()](/docs/diffusers/main/fr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager.disable_auto_cpu_offload) pour désactiver le déchargement. | |
| ```py | |
| manager.disable_auto_cpu_offload() | |
| ``` | |
Xet Storage Details
- Size:
- 5.6 kB
- Xet hash:
- 62f13c9d489e606749575817b4d9313d7064e3ff27107cbb03522c7f6fec4e6a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.