Diffusers documentation
Bria Fibo
Bria Fibo
Модели text-to-image освоили воображение, но не контроль. FIBO меняет это.
FIBO обучается на структурированных JSON-описаниях объёмом более 1000 слов и предназначен для понимания и управления различными визуальными параметрами, такими как освещение, композиция, цвет и настройки камеры, что позволяет получать точные и воспроизводимые результаты.
Всего с 8 миллиардами параметров FIBO обеспечивает новый уровень качества изображений, соответствия промпту и профессионального контроля.
FIBO is trained exclusively on a structured prompt and will not work with freeform text prompts. you can use the FIBO-VLM-prompt-to-JSON model or the FIBO-gemini-prompt-to-JSON to convert your freeform text prompt to a structured JSON prompt.
Избегайте использования свободных текстовых промптов непосредственно с FIBO, так как это не даёт наилучших результатов.
См. страницу Bria Fibo на Hugging Face, чтобы узнать больше.
Использование
Поскольку модель доступна по запросу, перед её использованием с diffusers вам необходимо перейти на страницу Bria Fibo на Hugging Face, заполнить форму и принять условия доступа. После этого вам нужно выполнить вход, чтобы система знала, что вы приняли условия.
Используйте команду ниже для входа:
hf auth login
BriaFiboPipeline
класс diffusers.BriaFiboPipeline
< source >( transformer: BriaFiboTransformer2DModelscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulersvae: AutoencoderKLWantext_encoder: SmolLM3ForCausalLMtokenizer: AutoTokenizer )
Параметры
- transformer (
BriaFiboTransformer2DModel) — Модель трансформера для 2D-диффузионного моделирования. - scheduler (
FlowMatchEulerDiscreteSchedulerилиKarrasDiffusionSchedulers) — планировщик, используемый вместе сtransformerдля удаления шума из закодированных латентов. - vae (
AutoencoderKLWan) — Вариационный автоэнкодер для кодирования изображений в латентные представления и декодирования из них. - text_encoder (
SmolLM3ForCausalLM) — Текстовый энкодер для обработки входных промптов. - tokenizer (
AutoTokenizer) — Токенизатор, используемый для обработки входных текстовых промптов для text_encoder.
__call__
< source >( prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 30timesteps: list[int] = Noneguidance_scale: float = 5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truejoint_attention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 3000do_patching = False ) → ~pipelines.flux.BriaFiboPipelineOutput or tuple
Параметры
- prompt (
strилиlist[str]) — Промпт или промпты для управления генерацией изображения. - height (
int, необязательный, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) — Высота генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов. - width (
int, необязательный, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) — Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов. - num_inference_steps (
int, необязательный, по умолчанию 50) — Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода. - timesteps (
list[int], необязательный) — Пользовательские шаги для процесса удаления шума в планировщиках, поддерживающих аргументtimestepsв методеset_timesteps. Если не задан, будет использоваться поведение по умолчанию при передачеnum_inference_steps. Значения должны быть в порядке убывания. - guidance_scale (
float, необязательный, по умолчанию 5.0) — Масштаб руководства, как определено в Classifier-Free Diffusion Guidance.guidance_scaleопределяется какwиз уравнения 2 статьи Imagen Paper. Масштаб руководства включается при установкеguidance_scale > 1. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстомprompt, обычно за счёт снижения качества изображения. - negative_prompt (
strилиlist[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения. Игнорируется, если не используется направляющее влияние (то есть игнорируется, еслиguidance_scaleменьше1). - num_images_per_prompt (
int, необязательный, по умолчанию 1) — Количество изображений, генерируемых для каждого промпта. - generator (
torch.Generatorилиlist[torch.Generator], необязательный) — Один или список генераторов torch для обеспечения детерминированности генерации. - latents (
torch.FloatTensor, необязательный) — Предварительно сгенерированные зашумленные латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Можно использовать, чтобы корректировать одну и ту же генерацию с разными промптами. Если не заданы, тензор латентов будет сгенерирован путём выборки с использованием переданного случайногоgenerator. - output_type (
str, необязательный, по умолчанию"pil") — Формат вывода сгенерированного изображения. Выберите один из вариантов: PIL:PIL.Image.Imageилиnp.array. - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращать объект~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutputвместо простого кортежа. - joint_attention_kwargs (
dict, необязательный) — Словарь kwargs, который при указании передается вAttentionProcessor, определенный вself.processorв модуле diffusers.models.attention_processor. - callback_on_step_end (
Callable, необязательный) — Функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами:callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).callback_kwargsбудет содержать список всех тензоров, как указано вcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
List, необязательный) — Список тензорных входных данных для функцииcallback_on_step_end. Тензоры, указанные в списке, будут переданы в качестве аргументаcallback_kwargs. Вы сможете включать только переменные, перечисленные в атрибуте._callback_tensor_inputsвашего класса конвейера. - max_sequence_length (
int, по умолчанию 3000) — максимальная длина последовательности, используемая сprompt. - do_patching (
bool, необязательный, по умолчаниюFalse) — Использовать ли патчинг.
Возвращает
~pipelines.flux.BriaFiboPipelineOutput или tuple
~pipelines.flux.BriaFiboPipelineOutput, если
return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с
сгенерированными изображениями.
Функция, вызываемая при обращении к конвейеру для генерации.
Пример:
import torch
from diffusers import BriaFiboPipeline
from diffusers.modular_pipelines import ModularPipeline
torch.set_grad_enabled(False)
vlm_pipe = ModularPipeline.from_pretrained("briaai/FIBO-VLM-prompt-to-JSON", trust_remote_code=True)
pipe = BriaFiboPipeline.from_pretrained(
"briaai/FIBO",
trust_remote_code=True,
torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()
with torch.inference_mode():
# 1. Create a prompt to generate an initial image
output = vlm_pipe(prompt="a beautiful dog")
json_prompt_generate = output.values["json_prompt"]
# Generate the image from the structured json prompt
results_generate = pipe(prompt=json_prompt_generate, num_inference_steps=50, guidance_scale=5)
results_generate.images[0].save("image_generate.png")encode_prompt
< source >( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1guidance_scale: float = 5negative_prompt: str | list[str] | None = Nonemax_sequence_length: int = 3000lora_scale: float | None = None )
Параметры
- prompt (
strилиlist[str], необязательный) — промпт для кодирования - device — (
torch.device): устройство torch - num_images_per_prompt (
int) — количество изображений, которые должны быть сгенерированы для каждого промпта - guidance_scale (
float) — Масштаб направляющего сигнала для классификаторно-свободного направляющего сигнала (classifier free guidance). - negative_prompt (
strилиlist[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения. Игнорируется, если не используется направляющее влияние (то есть игнорируется, еслиguidance_scaleменьше1).