Интеграция FLUX для генерации изображений
FLUX от Black Forest Labs (команда создателей Stable Diffusion) — текущий SOTA в генерации реалистичных изображений. FLUX.1 Dev и FLUX.1 Pro превосходят SDXL и сопоставимы с Midjourney v6 по качеству.
Варианты моделей
| Модель | Использование | Лицензия | Скорость |
|---|---|---|---|
| FLUX.1 Pro | API-only | Коммерческая | 15–30 сек |
| FLUX.1 Dev | Self-hosted / API | Non-commercial | 20–40 сек |
| FLUX.1 Schnell | Self-hosted | Apache 2.0 | 3–8 сек (4 шага) |
Replicate API интеграция
import replicate
import httpx
import asyncio
async def generate_flux(
prompt: str,
model: str = "flux-dev", # flux-pro, flux-dev, flux-schnell
aspect_ratio: str = "1:1",
output_format: str = "webp",
guidance: float = 3.5,
steps: int = 28
) -> bytes:
model_map = {
"flux-pro": "black-forest-labs/flux-pro",
"flux-dev": "black-forest-labs/flux-dev",
"flux-schnell": "black-forest-labs/flux-schnell"
}
output = await replicate.async_run(
model_map[model],
input={
"prompt": prompt,
"aspect_ratio": aspect_ratio,
"output_format": output_format,
"output_quality": 90,
"guidance": guidance,
"num_inference_steps": steps,
}
)
async with httpx.AsyncClient() as client:
response = await client.get(str(output[0]))
return response.content
Self-hosted с diffusers
from diffusers import FluxPipeline
import torch
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev",
torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload() # Для GPU < 24 GB
def generate(prompt: str, width: int = 1024, height: int = 1024) -> bytes:
import io
image = pipe(
prompt,
height=height,
width=width,
guidance_scale=3.5,
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]
buf = io.BytesIO()
image.save(buf, format="PNG")
return buf.getvalue()
FLUX.1 Schnell для быстрого прототипирования
# Schnell: Apache 2.0, 4 шага вместо 50
pipe_schnell = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-schnell",
torch_dtype=torch.bfloat16
)
image = pipe_schnell(
prompt="professional photo of a product on white background",
num_inference_steps=4, # 4 шага достаточно
guidance_scale=0.0, # Schnell не использует CFG
).images[0]
FLUX ControlNet позволяет управлять позой, глубиной, кантами (как ControlNet для SD). Сроки: интеграция Replicate API — 1 день. Self-hosted с очередью — 1 неделя.







