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 — это модель генерации изображений по тексту и редактирования изображений от ByteDance. Она сочетает в себе собственный 2D U-Net (DreamLiteUNetModel) с мультимодальным энкодером Qwen3-VL, который используется как энкодер промптов и инструкций к изображению, а также применяет VAE AutoencoderTiny (в стиле TAESD) для быстрого кодирования и декодирования латентов.

Доступны два конвейера:

PipelineРежимыCFGСценарий использования
DreamLitePipelinetext-to-image и редактирование изображений (выбирается автоматически в зависимости от того, является ли image значением None)3-ветвевой двойной CFG (guidance_scale для текстовой ветви, image_guidance_scale для изображений, по образцу InstructPix2Pix)Наивысшее качество
DreamLiteMobilePipelinetext-to-image и редактирование изображений (выбирается автоматически в зависимости от того, является ли image значением None)None — дистиллированная, один прямой проход UNet на шагНа устройстве / низкая задержка

Официальные контрольные точки:

Оба конвейера автоматически определяют режим «текст в изображение» или «редактирование изображения» на основании того, передан ли аргумент image. Отдельного класса Img2Img нет.

При загрузке входного изображения для редактирования предпочитайте diffusers.utils.load_image(...) вместо «сырого» PIL.Image.open(...). load_image принудительно выполняет преобразование в RGB и применяет ориентацию EXIF, что предполагает пайплайн. Обычный Image.open для источника с RGBA / палитрой / поворотом EXIF молча приведёт к другому латентному условию и ухудшит качество результата.

Текст в изображение (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")

Редактирование изображений (Base)

Передайте image, чтобы перейти в режим редактирования. Здесь активны и guidance_scale (текстовая ветвь), и image_guidance_scale (изображение-ветвь).

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

Текст в изображение (мобильные устройства)

Мобильный конвейер является дистиллированным и полностью пропускает CFG — один прямой проход UNet на каждый шаг. Он принимает те же аргументы prompt / height / width / num_inference_steps, но игнорирует guidance_scale и image_guidance_scale, если они переданы (в журнал выводится предупреждение).

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

Редактирование изображений (мобильные устройства)

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

Заметки и ограничения

  • Оба конвейера внутренне принудительно устанавливают batch_size = 1; параметр num_images_per_prompt управляет количеством выборок, генерируемых из одного и того же промпта, а не параллельным батчингом.
  • Кодировщик промпта — это Qwen3-VL, мультимодальная модель. Поэтому для загрузки полного конвейера требуется достаточный объём памяти GPU как для U-Net, так и для текстового кодировщика Qwen3-VL (~4 ГБ + ~0,7 ГБ в bf16 для базовой версии).
  • VAE — это AutoencoderTiny, и он предоставляет encoder_block_out_channels; vae_scale_factor вычисляется из него при инициализации пайплайна.

DreamLitePipeline

класс diffusers.DreamLitePipeline

< >

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

DreamLite pipeline для генерации изображений по тексту и редактирования изображений по инструкциям.

Один и тот же конвейер поддерживает оба режима; режим работы определяется автоматически на основе входных данных:

  • image is None -> генерация изображения по тексту (один CFG по тексту).
  • image is not None -> image-to-image / редактирование по инструкции (двойной CFG: текст + изображение).

Компоненты: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Мультимодальный текстовый/визуальный энкодер, используемый для создания эмбеддингов для условного формирования. tokenizer ([~transformers.AutoTokenizer]): Токенизатор для режима только с текстом (generate). processor ([~transformers.Qwen3VLProcessor]): Мультимодальный процессор для режима редактирования (шаблон «текст + изображение»). vae ([~diffusers.AutoencoderTiny]): Компактный VAE для мобильных устройств, предназначенный для кодирования/декодирования латентов. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet (GQA + qk_norm + глубинно-отделимые свёртки). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Дискретный эйлеровский планировщик flow-matching с динамическим сдвигом.

Примечание: batch_size в настоящее время принудительно устанавливается в 1; поддерживается num_images_per_prompt.

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

Параметры

  • prompt — Текстовый промпт.
  • negative_prompt — Отрицательный текстовый промпт (по умолчанию — пустая строка).
  • image — Optional input image. If provided, the pipeline runs in edit / image-to-image mode with dual classifier-free guidance; otherwise it runs in text-to-image mode.
  • height — Разрешение вывода (высота). По умолчанию default_sample_size * vae_scale_factor (1024). Один и тот же параметр по умолчанию применяется как для T2I, так и для I2I; передайте явное значение для переопределения.
  • width — Разрешение вывода (ширина). По умолчанию default_sample_size * vae_scale_factor (1024). Один и тот же параметр по умолчанию используется как для T2I, так и для I2I; передайте явное значение для переопределения.
  • guidance_scale — масштаб CFG для текстовой ветви (в обоих режимах).
  • image_guidance_scale — Дополнительный масштаб CFG для ветки изображения (только в режиме редактирования).
  • num_inference_steps — Количество шагов денойзинга.
  • sigmas — Необязательные явные сигмы FlowMatch; по умолчанию используется равномерный linspace.
  • num_images_per_prompt — Количество выходных изображений на промпт (примечание: batch_size принудительно устанавливается в 1).
  • generator — Случайный генератор(ы).
  • output_type — "pil", "np", "pt" или "latent".
  • return_dict — Если True, возвращает DreamLitePipelineOutput; иначе кортеж (images,).
  • max_sequence_length — максимальное количество токенов пользовательского запроса, сохраняемых после удаления префикса шаблона чата. Применяется только в режиме generate (режим edit использует встроенное выравнивание мультимодального процессора).
  • text_pad_embedding — Необязательное обучаемое представление (embedding) для маскированных позиций.

Запустите конвейер DreamLite.

DreamLiteMobilePipeline

класс diffusers.DreamLiteMobilePipeline

< >

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

Пайплайн DreamLite Mobile: дистиллированный вариант DreamLitePipeline без classifier-free guidance для быстрого инференса за малое число шагов (по умолчанию 4 шага).

Режим работы определяется автоматически на основе входных данных (как в базовом конвейере):

  • image is None -> генерация изображения по тексту.
  • image is not None -> image-to-image / редактирование по инструкции.

Поскольку classifier-free guidance удалён в процессе дистилляции, параметры guidance_scale и image_guidance_scale принимаются для совместимости API с DreamLitePipeline, но игнорируются в цикле денойзинга. Параметр negative_prompt намеренно отсутствует.

Компоненты (идентичны базовому конвейеру): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Мультимодальный текстовый/визуальный энкодер. tokenizer ([~transformers.AutoTokenizer]): Токенизатор для режима только с текстом (generate). processor ([~transformers.Qwen3VLProcessor]): Мультимодальный процессор для режима редактирования. vae ([~diffusers.AutoencoderTiny]): Компактный VAE, оптимизированный для мобильных устройств. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Дискретный эйлеровский планировщик flow-matching с динамическим сдвигом.

Примечание: batch_size в настоящее время принудительно устанавливается в 1; поддерживается num_images_per_prompt.

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

Параметры

  • prompt — Текстовый промпт.
  • image — Необязательное входное изображение. Если указано, выполняется в режиме edit / image-to-image; иначе — в режиме text-to-image.
  • height — Разрешение вывода (высота). По умолчанию default_sample_size * vae_scale_factor (1024).
  • width — Разрешение вывода (ширина). По умолчанию default_sample_size * vae_scale_factor (1024).
  • num_inference_steps — Количество шагов денойзинга. По умолчанию 4 (дистиллированная модель).
  • guidance_scale — Принимается для соответствия API DreamLitePipeline; игнорируется, так как CFG был дистиллирован.
  • image_guidance_scale — принимается для соответствия API DreamLitePipeline; игнорируется, так как CFG был дистиллирован.
  • sigmas — Необязательные явные сигмы FlowMatch; по умолчанию используется равномерный linspace.
  • num_images_per_prompt — Количество выходных изображений на промпт (примечание: batch_size принудительно устанавливается в 1).
  • generator — Случайный генератор(ы).
  • output_type — "pil", "np", "pt" или "latent".
  • return_dict — Если True, возвращает DreamLitePipelineOutput; иначе (images,).
  • max_sequence_length — максимальное количество токенов пользовательского запроса, сохраняемых после удаления префикса шаблона чата. Применяется только в режиме generate (режим edit использует встроенное выравнивание мультимодального процессора).
  • text_pad_embedding — Необязательное обучаемое представление (embedding) для маскированных позиций.

Запустите дистиллированный пайплайн DreamLite Mobile.

DreamLitePipelineOutput

класс diffusers.DreamLitePipelineOutput

< >

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

Параметры

  • images (List[PIL.Image.Image] или np.ndarray) — Список денойзированных изображений PIL длиной batch_size или массив NumPy формы (batch_size, height, width, num_channels). Изображения PIL или массив NumPy представляют денойзированные изображения диффузионного конвейера.

Класс вывода для конвейеров DreamLite.

Update on GitHub