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 adalah model teks-ke-gambar dan pengeditan gambar dari ByteDance. Model ini menggabungkan 2D U-Net khusus (DreamLiteUNetModel) dengan encoder multimodal Qwen3-VL sebagai encoder prompt/instruksi gambar, dan menggunakan VAE AutoencoderTiny (gaya TAESD) untuk encode/decode laten yang cepat.

Dua pipeline yang tersedia:

PipelineModeCFGKasus penggunaan
DreamLitePipelineteks-ke-gambar dan pengeditan gambar (dipilih secara otomatis berdasarkan apakah image adalah None)3-branch dual CFG (guidance_scale pada cabang teks, image_guidance_scale pada cabang gambar, à la InstructPix2Pix)Kualitas tertinggi
DreamLiteMobilePipelineteks-ke-gambar dan pengeditan gambar (dipilih secara otomatis berdasarkan apakah image adalah None)Tidak ada — terdistil, satu forward UNet per langkahOn-device / latensi rendah

Checkpoint resmi:

Kedua pipeline secara otomatis mendeteksi mode teks-ke-gambar vs. pengeditan gambar berdasarkan apakah argumen image diberikan. Tidak ada kelas Img2Img yang terpisah.

Saat memuat gambar input untuk diedit, lebih disarankan menggunakan diffusers.utils.load_image(...) daripada PIL.Image.open(...) mentah. load_image memaksa konversi ke RGB dan menerapkan orientasi EXIF, keduanya diasumsikan oleh pipeline. Penggunaan Image.open biasa pada sumber RGBA / palet / berotasi EXIF akan secara diam-diam menghasilkan kondisioning laten yang berbeda dan menurunkan kualitas output.

Teks-ke-gambar (Dasar)

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

Pengeditan gambar (Dasar)

Lewatkan image untuk masuk ke mode edit. Baik guidance_scale (cabang teks) maupun image_guidance_scale (cabang gambar) aktif di sini.

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

Teks-ke-gambar (Mobile)

Pipeline mobile ini telah didistilkan dan sepenuhnya melewati CFG — hanya satu forward UNet per langkah. Pipeline ini menerima argumen prompt / height / width / num_inference_steps yang sama, tetapi mengabaikan guidance_scale dan image_guidance_scale jika diberikan (peringatan akan dicatat).

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

Pengeditan gambar (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")

Catatan dan batasan

  • Kedua pipeline memaksa batch_size = 1 secara internal; num_images_per_prompt mengontrol berapa banyak sampel yang diambil dari prompt yang sama, bukan batching paralel.
  • Prompt encoder adalah Qwen3-VL, yaitu model multimodal. Memuat pipeline lengkap karenanya memerlukan memori GPU yang cukup untuk U-Net dan text encoder Qwen3-VL (~4 GB + ~0,7 GB dalam bf16 untuk rilis dasar).
  • VAE adalah AutoencoderTiny dan mengekspos encoder_block_out_channels; vae_scale_factor diturunkan darinya pada saat inisialisasi pipeline.

DreamLitePipeline

kelas diffusers.DreamLitePipeline

< >

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

DreamLite pipeline untuk text-to-image dan pengeditan gambar berbasis instruksi.

Pipeline yang sama mendukung kedua mode; mode operasi dideteksi secara otomatis dari input:

  • image is None -> teks-ke-gambar (CFG tunggal pada teks).
  • image is not None -> image-to-image / instruksi edit (dual CFG: teks + gambar).

Komponen: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Encoder teks/visi multimodal yang digunakan untuk menghasilkan embedding kondisional. tokenizer ([~transformers.AutoTokenizer]): Tokenizer untuk mode teks saja (generate). processor ([~transformers.Qwen3VLProcessor]): Pemroses multimodal untuk mode edit (template teks + gambar). vae ([~diffusers.AutoencoderTiny]): VAE kecil yang ramah perangkat mobile untuk encode/decode laten. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet (GQA + qk_norm + konvolusi depthwise-separable). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Scheduler Euler flow-matching dengan pergeseran dinamis.

Catatan: batch_size saat ini dipaksa menjadi 1; num_images_per_prompt didukung.

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

Parameter

  • prompt — Prompt teks.
  • negative_prompt — Prompt teks negatif (defaultnya string kosong).
  • image — Gambar input opsional. Jika disediakan, pipeline berjalan dalam mode edit / image-to-image dengan dual classifier-free guidance; jika tidak, berjalan dalam mode text-to-image.
  • height — Resolusi output (tinggi). Nilainya secara default adalah default_sample_size * vae_scale_factor (1024). Nilai default yang sama berlaku untuk T2I dan I2I; berikan nilai eksplisit untuk menimpanya.
  • width — Resolusi output (lebar). Nilainya secara default adalah default_sample_size * vae_scale_factor (1024). Default yang sama berlaku untuk T2I dan I2I; berikan nilai eksplisit untuk menimpa.
  • guidance_scale — skala CFG pada cabang teks (kedua mode).
  • image_guidance_scale — Skala CFG tambahan pada cabang gambar (hanya mode edit).
  • num_inference_steps — Jumlah langkah denoising.
  • sigmas — Sigmas FlowMatch eksplisit opsional; secara default menggunakan linspace seragam.
  • num_images_per_prompt — Gambar output per prompt (catatan: batch_size dipaksa menjadi 1).
  • generator — Generator acak.
  • output_type — "pil", "np", "pt" atau "latent".
  • return_dict — Jika True, mengembalikan DreamLitePipelineOutput; jika tidak, tuple (images,).
  • max_sequence_length — Jumlah maksimum token prompt pengguna yang dipertahankan setelah membuang prefiks template chat. Hanya berlaku untuk mode generate (mode edit menggunakan padding asli dari pemroses multimodal).
  • text_pad_embedding — Embedding pad yang dipelajari secara opsional untuk posisi yang dimasker.

Jalankan pipeline DreamLite.

DreamLiteMobilePipeline

kelas diffusers.DreamLiteMobilePipeline

< >

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

Pipeline Mobile DreamLite: varian terdistilasi tanpa classifier-free-guidance dari DreamLitePipeline untuk inferensi cepat dengan sedikit langkah (default 4 langkah).

Mode operasi dideteksi secara otomatis dari input (sama seperti pipeline dasar):

  • image is None -> teks-ke-gambar.
  • image is not None -> gambar-ke-gambar / instruksi edit.

Karena classifier-free guidance dihilangkan, guidance_scale dan image_guidance_scale diterima untuk kesetaraan API dengan DreamLitePipeline tetapi diabaikan dalam loop denoising. negative_prompt sengaja tidak ada.

Komponen (identik dengan pipeline dasar): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Encoder teks/visi multimodal. tokenizer ([~transformers.AutoTokenizer]): Tokenizer untuk mode teks saja (generate). processor ([~transformers.Qwen3VLProcessor]): Processor multimodal untuk mode edit. vae ([~diffusers.AutoencoderTiny]): VAE kecil yang ramah perangkat mobile. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Scheduler Euler flow-matching dengan pergeseran dinamis.

Catatan: batch_size saat ini dipaksa menjadi 1; num_images_per_prompt didukung.

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

Parameter

  • prompt — Prompt teks.
  • image — Gambar input opsional. Jika disediakan, berjalan dalam mode edit / image-to-image; jika tidak, berjalan dalam mode text-to-image.
  • height — Resolusi output (tinggi). Bawaan adalah default_sample_size * vae_scale_factor (1024).
  • width — Resolusi output (lebar). Bawaan adalah default_sample_size * vae_scale_factor (1024).
  • num_inference_steps — Jumlah langkah denoising. Defaultnya adalah 4 (distilled).
  • guidance_scale — Diterima untuk kesetaraan API dengan DreamLitePipeline; diabaikan karena CFG telah dihilangkan melalui distilasi.
  • image_guidance_scale — Diterima untuk kesetaraan API dengan DreamLitePipeline; diabaikan karena CFG telah dihilangkan melalui distilasi.
  • sigmas — Sigmas FlowMatch eksplisit opsional; secara default menggunakan linspace seragam.
  • num_images_per_prompt — Gambar output per prompt (catatan: batch_size dipaksa menjadi 1).
  • generator — Generator acak.
  • output_type — "pil", "np", "pt" atau "latent".
  • return_dict — Jika True, mengembalikan DreamLitePipelineOutput; jika tidak, (images,).
  • max_sequence_length — Jumlah maksimum token prompt pengguna yang dipertahankan setelah membuang prefiks template chat. Hanya berlaku untuk mode generate (mode edit menggunakan padding asli dari pemroses multimodal).
  • text_pad_embedding — Embedding pad yang dipelajari secara opsional untuk posisi yang dimasker.

Jalankan pipeline DreamLite Mobile yang telah di-distil.

DreamLitePipelineOutput

kelas diffusers.DreamLitePipelineOutput

< >

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

Parameter

  • images (List[PIL.Image.Image] atau np.ndarray) — Daftar gambar PIL yang telah didenoise dengan panjang batch_size atau array NumPy dengan bentuk (batch_size, height, width, num_channels). Gambar PIL atau array NumPy menyajikan gambar-gambar yang telah didenoise dari pipeline difusi.

Kelas output untuk pipeline DreamLite.

Update on GitHub