Diffusers documentation

DreamLite

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

DreamLite

DreamLite é um modelo de texto para imagem e edição de imagem da ByteDance. Ele combina um U-Net 2D personalizado (DreamLiteUNetModel) com o codificador multimodal Qwen3-VL como codificador de prompt/instrução de imagem e utiliza um VAE AutoencoderTiny (estilo TAESD) para codificação/decodificação latente rápida.

Dois pipelines são expostos:

PipelineModosCFGCaso de uso
DreamLitePipelinetexto-para-imagem e edição de imagem (selecionado automaticamente com base em image ser None)CFG duplo de 3 ramos (guidance_scale no ramo de texto, image_guidance_scale no ramo de imagem, à la InstructPix2Pix)Maior qualidade
DreamLiteMobilePipelinetexto-para-imagem e edição de imagem (selecionado automaticamente com base em image ser None)Nenhum — destilado, um único forward do UNet por etapaNo dispositivo / baixa latência

Pontos de verificação oficiais:

Ambos os pipelines detectam automaticamente o modo de texto-para-imagem versus edição de imagem com base em se o argumento image é fornecido. Não existe uma classe separada Img2Img.

Ao carregar uma imagem de entrada para edição, prefira diffusers.utils.load_image(...) em vez do bruto PIL.Image.open(...). load_image impõe uma conversão para RGB e aplica a orientação EXIF, ambas as quais o pipeline pressupõe. Um simples Image.open de uma fonte RGBA / paleta / rotacionada por EXIF produzirá silenciosamente um condicionamento latente diferente e degradará a qualidade da saída.

Texto para imagem (Base)

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")

Edição de imagens (Base)

Passe uma image para entrar no modo de edição. Tanto o guidance_scale (ramo de texto) quanto o image_guidance_scale (ramo de imagem) estão ativos aqui.

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")

Texto para imagem (Mobile)

O pipeline mobile é destilado e ignora completamente o CFG — uma única passagem do UNet por etapa. Ele aceita os mesmos argumentos prompt / height / width / num_inference_steps, mas ignora guidance_scale e image_guidance_scale se forem passados (um aviso é registrado).

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")

Edição de imagens (Mobile)

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")

Observações e limitações

  • Ambos os pipelines forçam batch_size = 1 internamente; num_images_per_prompt controla quantas amostras são extraídas do mesmo prompt, em vez de loteamento paralelo.
  • O codificador de prompt é Qwen3-VL, que é um modelo multimodal. Carregar o pipeline completo, portanto, requer memória de GPU suficiente para o U-Net e o codificador de texto Qwen3-VL (~4 GB + ~0,7 GB em bf16 para a versão base).
  • O VAE é AutoencoderTiny e expõe encoder_block_out_channels; vae_scale_factor é derivado dele no momento da inicialização do pipeline.

DreamLitePipeline

classe diffusers.DreamLitePipeline

< >

( text_encoder: Qwen3VLForConditionalGenerationtokenizer: AutoTokenizerprocessor: Qwen3VLProcessorvae: AutoencoderTinyunet: DreamLiteUNetModelscheduler: FlowMatchEulerDiscreteScheduler )

Pipeline DreamLite para geração de imagem a partir de texto e edição de imagem baseada em instruções.

O mesmo pipeline suporta ambos os modos; o modo de operação é detectado automaticamente a partir das entradas:

  • image is None -> texto-para-imagem (CFG único no texto).
  • image is not None -> imagem-para-imagem / edição por instrução (CFG duplo: texto + imagem).

Componentes: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Codificador de texto/visão multimodal usado para produzir embeddings de condicionamento. tokenizer ([~transformers.AutoTokenizer]): Tokenizador para o modo apenas texto (generate). processor ([~transformers.Qwen3VLProcessor]): Processador multimodal para o modo de edição (modelo de texto + imagem). vae ([~diffusers.AutoencoderTiny]): VAE minúsculo compatível com dispositivos móveis para codificação/decodificação latente. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet (GQA + qk_norm + convoluções separáveis em profundidade). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Agendador Euler de flow-matching com deslocamento dinâmico.

Nota: batch_size é atualmente forçado para 1; num_images_per_prompt é compatível.

__call__

< >

( prompt: typing.Optional[str] = Nonenegative_prompt: typing.Optional[str] = Noneimage: typing.Optional[PIL.Image.Image] = Noneheight: typing.Optional[int] = Nonewidth: typing.Optional[int] = Noneguidance_scale: float = 3.5image_guidance_scale: float = 1.5num_inference_steps: int = 30sigmas: typing.Optional[typing.List[float]] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = Noneoutput_type: typing.Optional[str] = 'pil'return_dict: bool = Truemax_sequence_length: int = 200text_pad_embedding: typing.Optional[torch.Tensor] = None )

Parâmetros

  • prompt — Prompt de texto.
  • negative_prompt — Prompt de texto negativo (padrão: string vazia).
  • image — Imagem de entrada opcional. Se fornecida, o pipeline é executado no modo edit / image-to-image com orientação livre de classificador dupla; caso contrário, é executado no modo text-to-image.
  • height — Resolução de saída (altura). O padrão é default_sample_size * vae_scale_factor (1024). O mesmo padrão se aplica tanto em T2I quanto em I2I; passe um valor explícito para sobrescrever.
  • width — Resolução de saída (largura). O padrão é default_sample_size * vae_scale_factor (1024). O mesmo padrão se aplica tanto em T2I quanto em I2I; passe um valor explícito para sobrescrever.
  • guidance_scale — escala de CFG no ramo de texto (ambos os modos).
  • image_guidance_scale — Escala CFG adicional no ramo de imagem (somente no modo de edição).
  • num_inference_steps — Número de etapas de desruido.
  • sigmas — Sigmas explícitos opcionais de FlowMatch; o padrão é um linspace uniforme.
  • num_images_per_prompt — Imagens de saída por prompt (observação: batch_size é forçado para 1).
  • generator — Gerador(es) aleatório(s).
  • output_type — "pil", "np", "pt" ou "latent".
  • return_dict — Se True, retorna um DreamLitePipelineOutput; caso contrário, uma tupla (images,).
  • max_sequence_length — Número máximo de tokens do prompt do usuário mantidos após a remoção do prefixo do template de chat. Aplica-se apenas ao modo generate (o modo edit usa o padding nativo do processador multimodal).
  • text_pad_embedding — Embedding aprendido opcional para posições mascaradas.

Execute o pipeline DreamLite.

DreamLiteMobilePipeline

classe diffusers.DreamLiteMobilePipeline

< >

( text_encoder: Qwen3VLForConditionalGenerationtokenizer: AutoTokenizerprocessor: Qwen3VLProcessorvae: AutoencoderTinyunet: DreamLiteUNetModelscheduler: FlowMatchEulerDiscreteScheduler )

Pipeline Mobile do DreamLite: uma variante destilada, sem classifier-free guidance, do DreamLitePipeline para inferência rápida em poucas etapas (padrão: 4 etapas).

O modo de operação é detectado automaticamente a partir das entradas (da mesma forma que no pipeline base):

  • image is None -> texto para imagem.
  • image is not None -> imagem-para-imagem / edição por instrução.

Como o classifier-free guidance é destilado, guidance_scale e image_guidance_scale são aceitos por paridade de API com DreamLitePipeline, mas são ignorados no loop de desruidamento. negative_prompt está intencionalmente ausente.

Componentes (idênticos ao pipeline base): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Codificador de texto/visão multimodal. tokenizer ([~transformers.AutoTokenizer]): Tokenizador para o modo apenas texto (generate). processor ([~transformers.Qwen3VLProcessor]): Processador multimodal para o modo de edição. vae ([~diffusers.AutoencoderTiny]): VAE minúsculo compatível com dispositivos móveis. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Agendador Euler de flow-matching com deslocamento dinâmico.

Nota: batch_size é atualmente forçado para 1; num_images_per_prompt é compatível.

__call__

< >

( prompt: typing.Union[str, typing.List[str]] = Noneimage: typing.Optional[PIL.Image.Image] = Noneheight: typing.Optional[int] = Nonewidth: typing.Optional[int] = Nonenum_inference_steps: int = 4guidance_scale: typing.Optional[float] = Noneimage_guidance_scale: typing.Optional[float] = Nonesigmas: typing.Optional[typing.List[float]] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = Noneoutput_type: typing.Optional[str] = 'pil'return_dict: bool = Truemax_sequence_length: int = 200text_pad_embedding: typing.Optional[torch.Tensor] = None )

Parâmetros

  • prompt — Prompt de texto.
  • image — Imagem de entrada opcional. Se fornecida, executa no modo edit / image-to-image; caso contrário, executa no modo text-to-image.
  • height — Resolução de saída (altura). O padrão é default_sample_size * vae_scale_factor (1024).
  • width — Resolução de saída (largura). O padrão é default_sample_size * vae_scale_factor (1024).
  • num_inference_steps — Número de etapas de desruido. O padrão é 4 (destilado).
  • guidance_scale — Aceito para paridade de API com DreamLitePipeline; ignorado porque o CFG foi destilado.
  • image_guidance_scale — Aceito por paridade de API com DreamLitePipeline; ignorado porque o CFG foi destilado.
  • sigmas — Sigmas explícitos opcionais de FlowMatch; o padrão é um linspace uniforme.
  • num_images_per_prompt — Imagens de saída por prompt (observação: batch_size é forçado para 1).
  • generator — Gerador(es) aleatório(s).
  • output_type — "pil", "np", "pt" ou "latent".
  • return_dict — Se True, retorna um DreamLitePipelineOutput; caso contrário, (images,).
  • max_sequence_length — Número máximo de tokens do prompt do usuário mantidos após a remoção do prefixo do template de chat. Aplica-se apenas ao modo generate (o modo edit usa o padding nativo do processador multimodal).
  • text_pad_embedding — Embedding aprendido opcional para posições mascaradas.

Execute o pipeline DreamLite Mobile destilado.

DreamLitePipelineOutput

classe diffusers.DreamLitePipelineOutput

< >

( images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray] )

Parâmetros

  • images (List[PIL.Image.Image] ou np.ndarray) — Lista de imagens PIL desruidas de comprimento batch_size ou array NumPy de forma (batch_size, height, width, num_channels). As imagens PIL ou o array NumPy apresentam as imagens desruidas do pipeline de difusão.

Classe de saída para pipelines do DreamLite.

Update on GitHub