Buckets:
| # Adapter un modèle à une nouvelle tâche | |
| De nombreux systèmes de diffusion partagent les mêmes composants, ce qui vous permet d’adapter un modèle préentraîné pour une tâche à une tâche entièrement différente. | |
| Ce guide vous montre comment adapter un modèle de texte vers image pré-entraîné pour l'inpainting en initialisant et en modifiant l'architecture d'un [UNet2DConditionModel](/docs/diffusers/main/fr/api/models/unet2d-cond#diffusers.UNet2DConditionModel) pré-entraîné. | |
| ## Configurer les paramètres de UNet2DConditionModel | |
| Par défaut, un [UNet2DConditionModel](/docs/diffusers/main/fr/api/models/unet2d-cond#diffusers.UNet2DConditionModel) accepte 4 canaux en [entrée](https://huggingface.co/docs/diffusers/v0.16.0/en/api/models#diffusers.UNet2DConditionModel.in_channels). Par exemple, chargez un modèle texte-vers-image préentraîné comme [`stable-diffusion-v1-5/stable-diffusion-v1-5`](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) et vérifiez le nombre de `in_channels` : | |
| ```py | |
| from diffusers import StableDiffusionPipeline | |
| pipeline = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", use_safetensors=True) | |
| pipeline.unet.config["in_channels"] | |
| 4 | |
| ``` | |
| L'inpainting nécessite 9 canaux dans l'échantillon d'entrée. Vous pouvez vérifier cette valeur dans un modèle d'inpainting préentraîné comme [`stable-diffusion-v1-5/stable-diffusion-inpainting`](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-inpainting) : | |
| ```py | |
| from diffusers import StableDiffusionPipeline | |
| pipeline = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-inpainting", use_safetensors=True) | |
| pipeline.unet.config["in_channels"] | |
| 9 | |
| ``` | |
| Pour adapter votre modèle de texte vers image à l'inpainting, vous devez modifier le nombre de `in_channels` de 4 à 9. | |
| Initialisez un [UNet2DConditionModel](/docs/diffusers/main/fr/api/models/unet2d-cond#diffusers.UNet2DConditionModel) avec les poids du modèle texte-vers-image pré-entraîné, et modifiez `in_channels` en 9. Modifier le nombre de `in_channels` implique de définir `ignore_mismatched_sizes=True` et `low_cpu_mem_usage=False` pour éviter une erreur de correspondance des tailles, car la forme est désormais différente. | |
| ```py | |
| from diffusers import AutoModel | |
| model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5" | |
| unet = AutoModel.from_pretrained( | |
| model_id, | |
| subfolder="unet", | |
| in_channels=9, | |
| low_cpu_mem_usage=False, | |
| ignore_mismatched_sizes=True, | |
| use_safetensors=True, | |
| ) | |
| ``` | |
| Les poids préentraînés des autres composants du modèle texte-vers-image sont initialisés à partir de leurs points de contrôle, mais les poids des canaux d'entrée (`conv_in.weight`) du `unet` sont initialisés aléatoirement. Il est important d'ajuster finement le modèle pour l'inpainting, car sinon le modèle renvoie du bruit. | |
Xet Storage Details
- Size:
- 2.92 kB
- Xet hash:
- 3047124938c5443df6bf2c3c17af5db80b650c154b0be889b312e17ea0230e27
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.