Buckets:
| # DreamLite | |
| DreamLite est un modèle de génération d’images à partir de texte et d’édition d’images de ByteDance. Il associe un U-Net 2D sur mesure (`DreamLiteUNetModel`) à l’encodeur multimodal `Qwen3-VL` en tant qu’encodeur de prompt / d’instruction d’image, et utilise un VAE `AutoencoderTiny` (de type TAESD) pour un encodage/décodage latent rapide. | |
| Deux pipelines sont exposés : | |
| | Pipeline | Modes | CFG | Cas d'usage | | |
| |---|---|---|---| | |
| | [DreamLitePipeline](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipeline) | text-to-image **et** édition d'image (sélection automatique selon que `image` est `None`) | CFG double à 3 branches (`guidance_scale` sur la branche texte, `image_guidance_scale` sur la branche image, à la InstructPix2Pix) | Qualité maximale | | |
| | [DreamLiteMobilePipeline](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLiteMobilePipeline) | text-to-image **et** édition d'image (sélection automatique selon que `image` est `None`) | Aucun — distillé, un seul passage avant UNet par étape | Sur l'appareil / faible latence | | |
| Points de contrôle officiels : | |
| * Modèle de base : [carlofkl/DreamLite-base](https://huggingface.co/carlofkl/DreamLite-base) | |
| * Modèle mobile distillé : [carlofkl/DreamLite-mobile](https://huggingface.co/carlofkl/DreamLite-mobile) | |
| > [!TIP] | |
| > Les deux pipelines détectent automatiquement le mode texte-vers-image ou édition d'image en fonction de la présence de l'argument `image`. Il n'existe pas de classe `Img2Img` distincte. | |
| > [!TIP] | |
| > Lors du chargement d'une image d'entrée pour l'édition, privilégiez `diffusers.utils.load_image(...)` par rapport à `PIL.Image.open(...)` brut. `load_image` impose une conversion en RGB et applique l'orientation EXIF, deux éléments que le pipeline suppose. Un simple `Image.open` d'une source RGBA / palette / avec rotation EXIF produira silencieusement un conditionnement latent différent et dégradera la qualité de la sortie. | |
| ## Texte vers image (Base) | |
| ```python | |
| import torch | |
| from diffusers import DreamLitePipeline | |
| pipe = DreamLitePipeline.from_pretrained("carlofkl/DreamLite-base", revision="diffusers", dtype=torch.bfloat16) | |
| pipe = pipe.to("cuda") # or "mps", "xpu", "cpu" | |
| image = pipe( | |
| prompt="a dog running on the grass", | |
| negative_prompt="", | |
| height=1024, | |
| width=1024, | |
| num_inference_steps=28, | |
| generator=torch.Generator("cpu").manual_seed(42), | |
| ).images[0] | |
| image.save("dreamlite_t2i.png") | |
| ``` | |
| ## Édition d'images (Base) | |
| Passez une `image` pour entrer en mode édition. Les deux paramètres `guidance_scale` (branche texte) et `image_guidance_scale` (branche image) sont actifs ici. | |
| ```python | |
| import torch | |
| from diffusers import DreamLitePipeline | |
| from diffusers.utils import load_image | |
| pipe = DreamLitePipeline.from_pretrained("carlofkl/DreamLite-base", revision="diffusers", dtype=torch.bfloat16) | |
| pipe = pipe.to("cuda") # or "mps", "xpu", "cpu" | |
| source = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png") | |
| image = pipe( | |
| prompt="turn the cat into a corgi", | |
| image=source, | |
| height=1024, | |
| width=1024, | |
| num_inference_steps=28, | |
| generator=torch.Generator("cpu").manual_seed(42), | |
| ).images[0] | |
| image.save("dreamlite_edit.png") | |
| ``` | |
| ## Texte vers image (Mobile) | |
| Le pipeline mobile est distillé et ignore entièrement le CFG — un seul passage avant de UNet par étape. Il accepte les mêmes arguments `prompt` / `height` / `width` / `num_inference_steps`, mais **ignore** `guidance_scale` et `image_guidance_scale` s'ils sont passés (un avertissement est journalisé). | |
| ```python | |
| import torch | |
| from diffusers import DreamLiteMobilePipeline | |
| pipe = DreamLiteMobilePipeline.from_pretrained("carlofkl/DreamLite-mobile", revision="diffusers", dtype=torch.bfloat16) | |
| pipe = pipe.to("cuda") # or "mps", "xpu", "cpu" | |
| image = pipe( | |
| prompt="a dog running on the grass", | |
| height=1024, | |
| width=1024, | |
| num_inference_steps=4, | |
| generator=torch.Generator("cpu").manual_seed(42), | |
| ).images[0] | |
| image.save("dreamlite_mobile_t2i.png") | |
| ``` | |
| ## Édition d'images (Mobile) | |
| ```python | |
| import torch | |
| from diffusers import DreamLiteMobilePipeline | |
| from diffusers.utils import load_image | |
| pipe = DreamLiteMobilePipeline.from_pretrained("carlofkl/DreamLite-mobile", revision="diffusers", dtype=torch.bfloat16) | |
| pipe = pipe.to("cuda") # or "mps", "xpu", "cpu" | |
| source = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png") | |
| image = pipe( | |
| prompt="turn the cat into a corgi", | |
| image=source, | |
| height=1024, | |
| width=1024, | |
| num_inference_steps=4, | |
| generator=torch.Generator("cpu").manual_seed(42), | |
| ).images[0] | |
| image.save("dreamlite_mobile_edit.png") | |
| ``` | |
| ## Notes et limitations | |
| * Les deux pipelines imposent `batch_size = 1` en interne ; `num_images_per_prompt` contrôle le nombre d'échantillons tirés d'un même prompt, plutôt que le lot parallèle. | |
| * L'encodeur de prompt est `Qwen3-VL`, un modèle multimodal. Le chargement du pipeline complet nécessite donc une mémoire GPU suffisante pour le U-Net et l'encodeur de texte Qwen3-VL (~4 Go + ~0,7 Go en bf16 pour la version de base). | |
| * Le VAE est `AutoencoderTiny` et expose `encoder_block_out_channels` ; `vae_scale_factor` est dérivé de celui-ci lors de l’initialisation du pipeline. | |
| ## DreamLitePipeline[[diffusers.DreamLitePipeline]] | |
| #### diffusers.DreamLitePipeline[[diffusers.DreamLitePipeline]] | |
| ```python | |
| diffusers.DreamLitePipeline(text_encoder: Qwen3VLForConditionalGeneration, tokenizer: AutoTokenizer, processor: Qwen3VLProcessor, vae: AutoencoderTiny, unet: DreamLiteUNetModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite.py#L155) | |
| Pipeline DreamLite pour la génération d'images à partir de texte et l'édition d'images basée sur des instructions. | |
| Le même pipeline prend en charge les deux modes ; le mode de fonctionnement est détecté automatiquement à partir des entrées : | |
| - `image is None` -> texte-vers-image (CFG unique sur le texte). | |
| - `image is not None` -> image-versus-image / édition par instruction (CFG double : texte + image). | |
| Composants : text_encoder ([*~transformers.Qwen3VLForConditionalGeneration*]) : encodeur texte/vision multimodal utilisé pour générer les embeddings de conditionnement. tokenizer ([*~transformers.AutoTokenizer*]) : tokeniseur pour le mode texte uniquement (generate). processor ([*~transformers.Qwen3VLProcessor*]) : processeur multimodal pour le mode édition (modèle texte + image). vae ([*~diffusers.AutoencoderTiny*]) : petit VAE adapté aux mobiles pour l'encodage/décodage latent. unet ([*~diffusers.DreamLiteUNetModel*]) : UNet DreamLite (GQA + qk_norm + convolutions séparables en profondeur). scheduler ([*~diffusers.FlowMatchEulerDiscreteScheduler*]) : planificateur Euler de flow-matching avec décalage dynamique. | |
| Note : `batch_size` est actuellement forcé à `1` ; `num_images_per_prompt` est pris en charge. | |
| #### __appel__[[diffusers.DreamLitePipeline.__call__]] | |
| ```python | |
| __call__(prompt: typing.Optional[str] = None, negative_prompt: typing.Optional[str] = None, image: typing.Optional[PIL.Image.Image] = None, height: typing.Optional[int] = None, width: typing.Optional[int] = None, guidance_scale: float = 3.5, image_guidance_scale: float = 1.5, num_inference_steps: int = 30, sigmas: typing.Optional[typing.List[float]] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, max_sequence_length: int = 200, text_pad_embedding: typing.Optional[torch.Tensor] = None) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite.py#L388) | |
| **Paramètres :** | |
| prompt : Invite de texte. | |
| negative_prompt : Prompt de texte négatif (valeur par défaut : chaîne vide). | |
| image : Image d'entrée facultative. Si fournie, le pipeline s'exécute en mode **édition / image-vers-image** avec un guidage sans classifieur double ; sinon, il s'exécute en mode **texte-vers-image**. | |
| height : Résolution de sortie (hauteur). La valeur par défaut est `default_sample_size * vae_scale_factor` (1024). La même valeur par défaut s'applique à la fois pour T2I et I2I ; passez une valeur explicite pour l'écraser. | |
| width : Résolution de sortie (largeur). La valeur par défaut est `default_sample_size * vae_scale_factor` (1024). La même valeur par défaut s'applique à la fois pour T2I et I2I ; passez une valeur explicite pour l'écraser. | |
| guidance_scale : échelle CFG sur la branche texte (les deux modes). | |
| image_guidance_scale : Échelle CFG supplémentaire sur la branche image (mode édition uniquement). | |
| num_inference_steps : Nombre d'étapes de débruitage. | |
| sigmas : Sigmas FlowMatch explicites facultatifs ; par défaut, un linspace uniforme est utilisé. | |
| num_images_per_prompt : Images de sortie par invite (remarque : `batch_size` est forcé à 1). | |
| generator : Générateur(s) aléatoire(s). | |
| output_type : `"pil"`, `"np"`, `"pt"` ou `"latent"`. | |
| return_dict : Si True, renvoie un [DreamLitePipelineOutput](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput) ; sinon, un tuple `(images,)`. | |
| max_sequence_length : Nombre maximal de jetons de l'invite utilisateur conservés après suppression du préfixe du modèle de discussion. S'applique uniquement au mode `generate` (le mode `edit` utilise le rembourrage natif du processeur multimodal). | |
| text_pad_embedding : Embedding appris optionnel pour les positions masquées. | |
| **Retourne :** | |
| [DreamLitePipelineOutput](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput) ou `tuple`. | |
| Exécutez le pipeline DreamLite. | |
| ## DreamLiteMobilePipeline[[diffusers.DreamLiteMobilePipeline]] | |
| #### diffusers.DreamLiteMobilePipeline[[diffusers.DreamLiteMobilePipeline]] | |
| ```python | |
| diffusers.DreamLiteMobilePipeline(text_encoder: Qwen3VLForConditionalGeneration, tokenizer: AutoTokenizer, processor: Qwen3VLProcessor, vae: AutoencoderTiny, unet: DreamLiteUNetModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite_mobile.py#L156) | |
| Pipeline **Mobile** de DreamLite : une variante distillée, sans guidance sans classifieur, de [DreamLitePipeline](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipeline) pour une inférence rapide en peu d'étapes (4 étapes par défaut). | |
| Le mode de fonctionnement est détecté automatiquement à partir des entrées (comme pour le pipeline de base) : | |
| - `image is None` -> texte-vers-image. | |
| - `image is not None` -> image-to-image / édition par instruction. | |
| Étant donné que le guidage sans classifieur est **distillé**, `guidance_scale` et `image_guidance_scale` sont acceptés pour la parité de l'API avec [DreamLitePipeline](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipeline) mais sont ignorés dans la boucle de débruitage. `negative_prompt` est intentionnellement absent. | |
| Components (identique au pipeline de base) : text_encoder ([*~transformers.Qwen3VLForConditionalGeneration*]) : encodeur texte/vision multimodal. tokenizer ([*~transformers.AutoTokenizer*]) : tokenizer pour le mode texte uniquement (generate). processor ([*~transformers.Qwen3VLProcessor*]) : processeur multimodal pour le mode édition. vae ([*~diffusers.AutoencoderTiny*]) : VAE miniature adapté aux mobiles. unet ([*~diffusers.DreamLiteUNetModel*]) : UNet DreamLite. scheduler ([*~diffusers.FlowMatchEulerDiscreteScheduler*]) : planificateur Euler de flow-matching avec décalage dynamique. | |
| Note : `batch_size` est actuellement forcé à `1` ; `num_images_per_prompt` est pris en charge. | |
| #### __appel__[[diffusers.DreamLiteMobilePipeline.__call__]] | |
| ```python | |
| __call__(prompt: typing.Union[str, typing.List[str]] = None, image: typing.Optional[PIL.Image.Image] = None, height: typing.Optional[int] = None, width: typing.Optional[int] = None, num_inference_steps: int = 4, guidance_scale: typing.Optional[float] = None, image_guidance_scale: typing.Optional[float] = None, sigmas: typing.Optional[typing.List[float]] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, max_sequence_length: int = 200, text_pad_embedding: typing.Optional[torch.Tensor] = None) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_dreamlite_mobile.py#L384) | |
| **Paramètres :** | |
| prompt : Invite de texte. | |
| image : Image d'entrée facultative. Si fournie, exécute en mode **édition / image-vers-image** ; sinon, exécute en mode **texte-vers-image**. | |
| height : Résolution de sortie (hauteur). Par défaut, `default_sample_size * vae_scale_factor` (1024). | |
| width : Résolution de sortie (largeur). Par défaut, `default_sample_size * vae_scale_factor` (1024). | |
| num_inference_steps : Nombre d'étapes de débruitage. Valeur par défaut : **4** (distillé). | |
| guidance_scale : Accepté pour la parité de l'API avec [DreamLitePipeline](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipeline) ; **ignoré** car le CFG a été distillé. | |
| image_guidance_scale : Accepté pour la parité de l'API avec [DreamLitePipeline](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipeline) ; **ignoré** car le CFG a été distillé. | |
| sigmas : Sigmas FlowMatch explicites facultatifs ; par défaut, un linspace uniforme est utilisé. | |
| num_images_per_prompt : Images de sortie par invite (remarque : `batch_size` est forcé à 1). | |
| generator : Générateur(s) aléatoire(s). | |
| output_type : `"pil"`, `"np"`, `"pt"` ou `"latent"`. | |
| return_dict : Si True, renvoie un [DreamLitePipelineOutput](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput) ; sinon `(images,)`. | |
| max_sequence_length : Nombre maximal de jetons de l'invite utilisateur conservés après suppression du préfixe du modèle de discussion. S'applique uniquement au mode `generate` (le mode `edit` utilise le rembourrage natif du processeur multimodal). | |
| text_pad_embedding : Embedding appris optionnel pour les positions masquées. | |
| **Retourne :** | |
| [DreamLitePipelineOutput](/docs/diffusers/main/fr/api/pipelines/dreamlite#diffusers.DreamLitePipelineOutput) ou `tuple`. | |
| Exécutez le pipeline DreamLite Mobile distillé. | |
| ## DreamLitePipelineOutput[[diffusers.DreamLitePipelineOutput]] | |
| #### diffusers.DreamLitePipelineOutput[[diffusers.DreamLitePipelineOutput]] | |
| ```python | |
| diffusers.DreamLitePipelineOutput(images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray]) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dreamlite/pipeline_output.py#L25) | |
| **Paramètres :** | |
| images (`List[PIL.Image.Image]` ou `np.ndarray`) : Liste d'images PIL débruitées de longueur `batch_size` ou tableau NumPy de forme `(batch_size, height, width, num_channels)`. Les images PIL ou le tableau NumPy présentent les images débruitées du pipeline de diffusion. | |
| Classe de sortie pour les pipelines DreamLite. | |
Xet Storage Details
- Size:
- 15.5 kB
- Xet hash:
- c70f73651c94723b8ec43623718aed0bdd49e1b0021b725759d45f166f5f61c1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.