Buckets:

mishig's picture
|
download
raw
11.1 kB
# Bria Fibo
Các mô hình text-to-image đã làm chủ khả năng tưởng tượng - nhưng chưa làm chủ khả năng kiểm soát. FIBO thay đổi điều đó.
FIBO được huấn luyện trên các chú thích JSON có cấu trúc dài tới hơn 1.000 từ và được thiết kế để hiểu và kiểm soát các tham số thị giác khác nhau như ánh sáng, bố cục, màu sắc và cài đặt máy ảnh, cho phép tạo ra các kết quả chính xác và có thể tái lập.
Với chỉ 8 tỷ tham số, FIBO mang đến một cấp độ mới về chất lượng hình ảnh, khả năng tuân thủ prompt và kiểm soát chuyên nghiệp.
FIBO được huấn luyện hoàn toàn trên prompt có cấu trúc và sẽ không hoạt động với prompt văn bản tự do. Bạn có thể sử dụng mô hình [FIBO-VLM-prompt-to-JSON](https://huggingface.co/briaai/FIBO-VLM-prompt-to-JSON) hoặc [FIBO-gemini-prompt-to-JSON](https://huggingface.co/briaai/FIBO-gemini-prompt-to-JSON) để chuyển đổi prompt văn bản tự do của bạn thành prompt JSON có cấu trúc.
> [!NOTE]
> Tránh sử dụng các prompt văn bản tự do trực tiếp với FIBO vì nó không cho ra kết quả tốt nhất.
Tham khảo [trang](https://huggingface.co/briaai/FIBO) Bria Fibo trên Hugging Face để biết thêm chi tiết.
## Cách sử dụng
_Vì model được bảo vệ, trước khi sử dụng với diffusers, bạn cần truy cập [trang Hugging Face của Bria Fibo](https://huggingface.co/briaai/FIBO), điền biểu mẫu và chấp nhận điều kiện. Sau khi được cấp quyền, bạn cần đăng nhập để hệ thống xác nhận bạn đã chấp nhận điều kiện._
Sử dụng lệnh bên dưới để đăng nhập:
```bash
hf auth login
```
## BriaFiboPipeline[[diffusers.BriaFiboPipeline]]
#### diffusers.BriaFiboPipeline[[diffusers.BriaFiboPipeline]]
```python
diffusers.BriaFiboPipeline(transformer: BriaFiboTransformer2DModel, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_utils.KarrasDiffusionSchedulers, vae: AutoencoderKLWan, text_encoder: SmolLM3ForCausalLM, tokenizer: AutoTokenizer)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/bria_fibo/pipeline_bria_fibo.py#L76)
**Tham số:**
transformer (`BriaFiboTransformer2DModel`) : Mô hình transformer cho mô hình hóa khuếch tán 2D.
scheduler (`FlowMatchEulerDiscreteScheduler` hoặc `KarrasDiffusionSchedulers`) : Scheduler được sử dụng cùng với `transformer` để khử nhiễu các latents đã mã hóa.
vae (`AutoencoderKLWan`) : Mô hình Variational Auto-Encoder dùng để mã hóa và giải mã hình ảnh sang và từ các biểu diễn ẩn.
text_encoder (`SmolLM3ForCausalLM`) : Bộ mã hóa văn bản để xử lý các prompt đầu vào.
tokenizer (`AutoTokenizer`) : Tokenizer được sử dụng để xử lý các prompt văn bản đầu vào cho text_encoder.
#### __call__[[diffusers.BriaFiboPipeline.__call__]]
```python
__call__(prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 30, timesteps: list[int] = None, guidance_scale: float = 5, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, output_type: str | None = 'pil', return_dict: bool = True, joint_attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 3000, do_patching = False)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/bria_fibo/pipeline_bria_fibo.py#L435)
**Tham số:**
prompt (`str` hoặc `list[str]`) : Prompt hoặc các prompt để hướng dẫn việc tạo ảnh.
height (`int`, *optional*, mặc định là self.unet.config.sample_size * self.vae_scale_factor) : Chiều cao của hình ảnh được tạo ra, tính bằng pixel. Giá trị mặc định là 1024 để đạt kết quả tốt nhất.
width (`int`, *optional*, mặc định là self.unet.config.sample_size * self.vae_scale_factor) : Độ rộng tính bằng pixel của hình ảnh được tạo ra. Mặc định được đặt là 1024 để đạt kết quả tốt nhất.
num_inference_steps (`int`, *optional*, mặc định là 50) : Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn, với cái giá là suy luận chậm hơn.
timesteps (`list[int]`, *optional*) : Các bước thời gian (timesteps) tùy chỉnh để sử dụng cho quá trình khử nhiễu với các trình lập lịch (scheduler) hỗ trợ tham số `timesteps` trong phương thức `set_timesteps` của chúng. Nếu không được định nghĩa, hành vi mặc định khi `num_inference_steps` được truyền vào sẽ được sử dụng. Phải được sắp xếp theo thứ tự giảm dần.
guidance_scale (`float`, *optional*, mặc định là 5.0) : Thang độ dẫn hướng như được định nghĩa trong [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` được định nghĩa là `w` của phương trình 2. trong [Imagen Paper](https://huggingface.co/papers/2205.11487). Thang độ dẫn hướng được kích hoạt bằng cách đặt `guidance_scale > 1`. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với `prompt` văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
negative_prompt (`str` hoặc `list[str]`, *tùy chọn*) : Prompt hoặc các prompt không được dùng để hướng dẫn việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu `guidance_scale` nhỏ hơn `1`).
num_images_per_prompt (`int`, *tuỳ chọn*, mặc định là 1) : Số lượng hình ảnh cần tạo cho mỗi prompt.
generator (`torch.Generator` hoặc `list[torch.Generator]`, *tùy chọn*) : Một hoặc một danh sách [torch generator](https://pytorch.org/docs/stable/generated/torch.Generator.html) để đảm bảo quá trình sinh là tất định.
latents (`torch.FloatTensor`, *tùy chọn*) : Các latents nhiễu đã được tạo trước, được lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo ra bằng cách lấy mẫu sử dụng `generator` ngẫu nhiên được cung cấp.
output_type (`str`, *tùy chọn*, mặc định là `"pil"`) : Định dạng đầu ra của hình ảnh được tạo. Chọn giữa [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` hoặc `np.array`.
return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` thay vì một tuple thông thường hay không.
joint_attention_kwargs (`dict`, *tùy chọn*) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến `AttentionProcessor` như đã định nghĩa dưới `self.processor` trong [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
callback_on_step_end (`Callable`, *tùy chọn*) : Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` sẽ bao gồm một danh sách tất cả các tensor như được chỉ định bởi `callback_on_step_end_tensor_inputs`.
callback_on_step_end_tensor_inputs (`List`, *tùy chọn*) : Danh sách các đầu vào tensor cho hàm `callback_on_step_end`. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số `callback_kwargs`. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính `._callback_tensor_inputs` của lớp pipeline của bạn.
max_sequence_length (`int` mặc định là 3000) : Độ dài tối đa của chuỗi để sử dụng với `prompt`.
do_patching (`bool`, *tùy chọn*, mặc định là `False`) : Có sử dụng patching hay không.
**Trả về:** `~pipelines.flux.BriaFiboPipelineOutput` hoặc `tuple`
`~pipelines.flux.BriaFiboPipelineOutput` nếu `return_dict` là True, ngược lại là một `tuple`. Khi trả về tuple, phần tử đầu tiên là một danh sách chứa các hình ảnh đã tạo.
Hàm được gọi khi gọi pipeline cho việc sinh.
Ví dụ:
```python
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[[diffusers.BriaFiboPipeline.encode_prompt]]
```python
encode_prompt(prompt: str | list[str], device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, guidance_scale: float = 5, negative_prompt: str | list[str] | None = None, max_sequence_length: int = 3000, lora_scale: float | None = None)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/bria_fibo/pipeline_bria_fibo.py#L201)
**Tham số:**
prompt (`str` hoặc `list[str]`, *tùy chọn*) : prompt cần được mã hóa
device : (`torch.device`): thiết bị torch
num_images_per_prompt (`int`) : số lượng hình ảnh cần được tạo cho mỗi prompt
guidance_scale (`float`) : Thang độ dẫn hướng cho classifier free guidance.
negative_prompt (`str` hoặc `list[str]`, *tùy chọn*) : Prompt hoặc các prompt không được dùng để hướng dẫn việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu `guidance_scale` nhỏ hơn `1`).

Xet Storage Details

Size:
11.1 kB
·
Xet hash:
f2c4440f7387c74aba31a957493b93b54a84827c44121b4f3f7ab286d020f469

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.