Buckets:
Bria Fibo Edit
Fibo Edit — это модель image-to-image с 8 млрд параметров, которая вводит новую парадигму структурированного управления, работая с JSON-вводами в паре с исходными изображениями для обеспечения детерминированных и воспроизводимых рабочих процессов редактирования. Благодаря нативному маскированию для точной детализации, модель выходит за рамки простого prompt-based диффузионного подхода, предлагая явное и интерпретируемое управление, оптимизированное для производственных сред. Её лёгкая архитектура спроектирована для глубокой кастомизации, что позволяет исследователям создавать специализированные модели «Edit» для задач в конкретных областях, сохраняя при этом высочайшее эстетическое качество
См. страницу Bria Fibo Edit на Hugging Face, чтобы узнать больше. Доступен дистиллированный чекпоинт Fibo-Edit-1.5-turbo.
Использование
Модель доступна по запросу, поэтому перед её использованием с diffusers вам нужно перейти на страницу Bria Fibo Edit на Hugging Face, заполнить форму и принять условия доступа. После этого необходимо выполнить вход, чтобы система подтвердила, что вы приняли условия.
Используйте команду ниже для входа:
hf auth login
BriaFiboEditPipeline[[diffusers.BriaFiboEditPipeline]]
diffusers.BriaFiboEditPipeline[[diffusers.BriaFiboEditPipeline]]
diffusers.BriaFiboEditPipeline(transformer: BriaFiboTransformer2DModel, scheduler: typing.Union[diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler, diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulers], vae: AutoencoderKLWan, text_encoder: SmolLM3ForCausalLM, tokenizer: AutoTokenizer)
Параметры:
transformer (BriaFiboTransformer2DModel) : трансформерная модель для 2D-диффузионного моделирования.
scheduler (FlowMatchEulerDiscreteScheduler или KarrasDiffusionSchedulers) : планировщик, используемый вместе с transformer для удаления шума из закодированных латентов.
vae (AutoencoderKLWan) : вариационный автоэнкодер для кодирования изображений в латентные представления и декодирования из них.
text_encoder (SmolLM3ForCausalLM) : Текстовый энкодер для обработки входных промптов.
tokenizer (AutoTokenizer) : Токенизатор, используемый для обработки входных текстовых промптов для text_encoder.
call[[diffusers.BriaFiboEditPipeline.call]]
__call__(prompt: typing.Union[str, typing.List[str]] = None, image: typing.Union[PIL.Image.Image, typing.List[PIL.Image.Image], NoneType] = None, mask: typing.Union[torch.FloatTensor, PIL.Image.Image, typing.List[PIL.Image.Image], typing.List[torch.FloatTensor], numpy.ndarray, typing.List[numpy.ndarray], NoneType] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 30, timesteps: typing.List[int] = None, seed: int | None = None, guidance_scale: float = 5, negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, output_type: str = 'pil', return_dict: bool = True, joint_attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int, typing.Dict], NoneType]] = None, callback_on_step_end_tensor_inputs: typing.List[str] = ['latents'], max_sequence_length: int = 3000, do_patching = False, _auto_resize: bool = True)
Параметры:
prompt (str или List[str]) : Промпт или промпты для управления генерацией изображения.
image (PIL.Image.Image или List[PIL.Image.Image], необязательный) : Одно или несколько опорных изображений для управления генерацией изображения. Список интерпретируется как несколько опорных изображений (не как батч): каждое опорное изображение кодируется VAE с собственным соотношением сторон и размещается на собственной временной плоскости RoPE 1, 2, ... . Если не задано, конвейер генерирует изображение с нуля.
mask (PipelineMaskInput, необязательный) : Необязательная маска, определяющая область изображения image, подлежащую редактированию. Пиксели, покрытые маской, пересоздаются, тогда как остальная часть изображения сохраняется.
height (int, optional, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
width (int, optional, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
num_inference_steps (int, optional, по умолчанию 30) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.
seed (int, optional) : Значение, используемое для обеспечения детерминированности генерации.
timesteps (List[int], необязательный) : Пользовательские шаги для процесса удаления шума в планировщиках, поддерживающих аргумент timesteps в их методе set_timesteps. Если не задан, будет использоваться поведение по умолчанию при передаче num_inference_steps. Значения должны быть в порядке убывания.
guidance_scale (float, optional, по умолчанию 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, optional) : Предварительно сгенерированные зашумлённые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Позволяет корректировать одну и ту же генерацию с помощью разных промптов. Если не указаны, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного 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) : Использовать ли патчинг.
_auto_resize (bool, необязательный, по умолчанию True) : Нужно ли подгонять разрешение вывода по умолчанию (задаваемое на основе первого референсного изображения) к предпочтительным разрешениям.
Возвращает: ~pipelines.flux.BriaFiboPipelineOutput или tuple
~pipelines.flux.BriaFiboPipelineOutput, если return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с сгенерированными изображениями.
Функция, вызываемая при обращении к конвейеру для генерации.
Пример:
import torch
from PIL import Image
from diffusers import BriaFiboEditPipeline
from diffusers.modular_pipelines import ModularPipelineBlocks
# This prompt-to-JSON block calls Gemini and needs GEMINI_API_KEY in the environment.
vlm_pipe = ModularPipelineBlocks.from_pretrained("briaai/FIBO-edit-gemini-prompt-to-JSON", trust_remote_code=True)
vlm_pipe = vlm_pipe.init_pipeline()
pipe = BriaFiboEditPipeline.from_pretrained(
"briaai/Fibo-Edit-1.5-base",
torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
image = Image.open("owl.png")
json_prompt = vlm_pipe(image=image, prompt="Make the owl into a cat").values["json_prompt"]
result = pipe(prompt=json_prompt, image=image, num_inference_steps=30, guidance_scale=5)
# Multiple reference images: pass a list. Each reference conditions the edit at its
# own aspect ratio; the output resolution follows the first reference.
owl, forest = Image.open("owl.png"), Image.open("forest.png")
json_prompt = vlm_pipe(
image=[owl, forest], prompt="Place the owl from the first image in the forest from the second image"
).values["json_prompt"]
result = pipe(
prompt=json_prompt,
image=[owl, forest],
num_inference_steps=30,
guidance_scale=5,
)
# The distilled Turbo checkpoint edits in 4 steps without classifier-free guidance.
pipe = BriaFiboEditPipeline.from_pretrained("briaai/Fibo-Edit-1.5-turbo", torch_dtype=torch.bfloat16)
pipe.to("cuda")
result = pipe(prompt=json_prompt, image=[owl, forest], num_inference_steps=4, guidance_scale=1)
encode_prompt[[diffusers.BriaFiboEditPipeline.encode_prompt]]
encode_prompt(prompt: typing.Union[str, typing.List[str]], device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, guidance_scale: float = 5, negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, max_sequence_length: int = 3000, lora_scale: bool | None = None)
Параметры:
prompt (str или List[str], необязательный) : промпт для кодирования
device : (torch.device): устройство torch
num_images_per_prompt (int) : количество изображений, которые должны быть сгенерированы для каждого промпта
guidance_scale (float) : Масштаб руководства для классификаторного свободного руководства.
negative_prompt (str или List[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Игнорируется, если не используется направляющая (то есть игнорируется, если guidance_scale меньше 1).
prepare_reference_latents[[diffusers.BriaFiboEditPipeline.prepare_reference_latents]]
prepare_reference_latents(image: Image, num_channels_latents: int, dtype: dtype, device: device, do_patching: bool = False, reference_index: int = 1)
VAE-кодирование одного эталонного изображения PIL в его собственном размере и упаковка в поток токенов контекста редактирования.
Xet Storage Details
- Size:
- 17.1 kB
- Xet hash:
- d4ae4c1923216804054bc7cb563d09ce64ef3e4dbe252b4e05aef274ec29dd79
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.