Diffusers documentation

DreamLite

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
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.

Note: batch_size is currently forced to 1; num_images_per_prompt is supported.

__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.

Note: batch_size is currently forced to 1; num_images_per_prompt is supported.

__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