Black Forest Labs: FLUX.2 Klein 4B
FLUX.2 [klein] 4B est le modèle d’image compact de Black Forest Labs, distillé en nombre d’étapes, pour la création à partir de texte et la retouche avec jusqu’à quatre références. Sa conception en quatre étapes convient au travail visuel interactif, tout en restant distincte de l’édition Base 4B non distillée.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
FLUX.2 [klein] 4B est le modèle compact de Black Forest Labs pour créer une image à partir d’une description textuelle et retoucher des images avec des références visuelles. Son transformeur à flux rectifié de quatre milliards de paramètres réunit génération et retouche dans une même architecture. L’édition nommée 4B est distillée en nombre d’étapes, et l’exemple de référence du fabricant utilise quatre étapes d’inférence.
Le modèle sert à réaliser un brouillon visuel ou une révision de manière interactive : explorer une scène produit, changer les vêtements d’un personnage, associer un sujet à un décor ou affiner l’apparence d’une illustration. Commencez par l’événement ou la composition qui compte, puis décrivez le sujet, le matériau, la lumière et le point de vue. Un brief concret pourrait placer une tasse en céramique bleu mat sur une table en chêne clair, en gros plan éclairé de côté pour garder l’anse et l’émail visibles. Le résultat est une image à examiner au regard de ces décisions.
Retoucher avec un petit ensemble de références
Le profil 4B documenté accepte jusqu’à quatre images d’entrée. Attribuez à chacune un rôle clair : apparence du produit, personnage, décor ou style. Si une image est la scène à retoucher, identifiez-la et indiquez à la fois le changement et les détails à préserver. Par exemple, conservez la silhouette et la surface de la tasse de la première image, utilisez la pièce de la deuxième et remplacez uniquement le revêtement de la table. L’ordre des références et une consigne précise donnent à la révision une cible plus claire qu’une demande d’amélioration générale.
Le fabricant distingue ce budget de références compact de celui des variantes FLUX.2 plus grandes. Il précise aussi que [klein] n’enrichit pas les prompts. Fournissez vous-même les informations descriptives importantes, y compris les relations entre les objets référencés, plutôt que de compter sur l’expansion automatique d’un court libellé. Pour une série, conservez la même référence de sujet et les mêmes exigences visuelles tout en modifiant une décision de scène à la fois.
Réglages de sortie et frontières entre éditions
Le profil exact 4B du producteur propose JPEG, PNG et WebP, JPEG étant le format par défaut. Les valeurs explicites de largeur et de hauteur sont documentées avec un minimum de 64 pixels chacune ; l’exemple de la fiche du modèle utilise une image de 1024×1024. Cet exemple est une configuration d’échantillonnage, pas une affirmation que toute tâche doit être carrée ou que 1024 pixels constituent le maximum du modèle. Choisissez le recadrage et la forme d’affichage prévus avant de préparer le brief visuel, puis comparez les petits caractères et les détails fins à cette taille.
L’exemple publié en quatre étapes utilise guidance_scale 1.0. Distinguez cette édition distillée de FLUX.2 [klein] Base 4B, dont le signal d’entraînement non distillé vise l’adaptation, l’entraînement LoRA et la recherche. Base 4B et les modèles 9B sont des choix distincts, avec des considérations de préparation et d’échantillonnage différentes. Les commandes standard du modèle compact diffèrent aussi des étapes et du guidage réglables de [flex] ; [max] possède sa propre capacité de recherche d’ancrage.
Détails à vérifier dans l’image
La fiche exacte du modèle indique qu’il ne constitue pas une source d’information factuelle. Le texte inscrit dans une image peut être inexact ou déformé, et la scène générée peut s’écarter de la demande. Le style du prompt influence fortement le respect des consignes. Vérifiez l’orthographe, les quantités, les étiquettes, l’identité du sujet et les objets précis à conserver ; une composition attrayante ne prouve pas qu’une caractéristique de produit ou un fait illustré est correct. Le fabricant note aussi que les sorties statistiques peuvent refléter les biais des données d’entraînement.
Pour un visuel vérifié, conservez les références sources, le texte final et l’identité du modèle choisi avec l’image. La documentation de publication distingue le filigranage au niveau des pixels montré dans le code de référence des métadonnées de provenance C2PA appliquées dans le processus de sortie hébergé du fabricant. Conserver la provenance renvoyée aide à expliquer l’origine du visuel ; cela reste distinct de la vérification de la réussite de la modification visuelle demandée.
Ailoot Ultra · Génération d’images POST /v1/images/generations black-forest-labs/flux.2-klein-4b
black-forest-labs/flux.2-klein-4b
black-forest-labs/flux.2-klein-4bPremiers pas
FLUX.2 [klein] 4B est le modèle d’image compact de Black Forest Labs, distillé en nombre d’étapes, pour la création à partir de texte et la retouche avec jusqu’à quatre références. Sa conception en quatre étapes convient au travail visuel interactif, tout en restant distincte de l’édition Base 4B non distillée.
- Entrées acceptées
- Texte · Images
- Résultats
- Images
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Génération d’images POST /v1/images/generations
- Entrée
text,image- Sortie
image
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites black-forest-labs/flux.2-klein-4b | Par défaut— |
Champprompt | Typestring | ExigenceObligatoire | Valeurs et limites Longueur minimale: 1 | Par défaut— |
Champaspect_ratio | Typestring | ExigenceFacultatif | Valeurs et limites 1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9, auto | Par défaut— |
Champoutput_format | Typestring | ExigenceFacultatif | Valeurs et limites png, jpeg | Par défaut— |
Champn | Typeinteger | ExigenceFacultatif | Valeurs et limites Minimum: 1 Maximum: 1 | Par défaut— |
Champinput_references | Typearray | ExigenceFacultatif | Valeurs et limites Nombre minimal d’éléments: 0 Nombre maximal d’éléments: 4 | Par défaut— |
Champprovider | Typeobject | ExigenceFacultatif | Valeurs et limites | Par défaut— |
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, prompt |
Paramètrematerial_types | Contrattext, image |
Cycle de vie : synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Tarifs
Calcul du coût final
Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs estimés à des fins de comparaison
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité prévisionnelle | Unité de facturation | Coût |
|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | Unité de facturation— | Coût Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens |
| Configurationmégapixel d’image en sortie | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar mégapixel d’image en sortie | Coût Sortie · mégapixel d’image en sortie · Estimation à des fins de comparaison uniquement $0.028 par mégapixel d’image en sortie |
| ConfigurationCoût estimé de la génération | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Unité de facturation— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.028 estimation avant génération Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée. |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Génération d’images
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'black-forest-labs/flux.2-klein-4b', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
Recevoir et enregistrer les résultats
Ailoot Ultra · Génération d’images
Téléchargez chaque image renvoyée ou enregistrez son contenu Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Autres lectures de contenu
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
Conserver tous les résultats terminés
Enregistrez chaque image terminée ; récupérez chaque URL renvoyée ou décodez son contenu Base64.
Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.
Si la réponse d’origine doit être vérifiée
Conservez le X-Client-Request-ID renvoyé pour le rapprochement. Consultez uniquement les valeurs task_id/asset_id effectivement renvoyées ou votre bibliothèque multimédia ; ne construisez jamais une URL de tâche à partir de l’identifiant de l’opération et ne soumettez jamais à nouveau la création.
Champs de la réponse
| Champ | Type |
|---|---|
Champcreated | Type |
Champdata[].url | Type |
Champdata[].b64_json | Type |
Champusage | Type |
Alias
Alias du modèle
Ailoot Ultra black-forest-labs/flux.2-klein-4b
Alias des chemins de méthode
/v1/images
ID d’appel associés
FAQ · Black Forest Labs: FLUX.2 Klein 4B
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/images/generations·black-forest-labs/flux.2-klein-4b:text,image→image- Quels champs la requête utilise-t-elle ?
POST /v1/images/generations·black-forest-labs/flux.2-klein-4b:model,prompt,aspect_ratio,output_format,n,input_references,provider- Quelles limites s’appliquent ?
POST /v1/images/generations·black-forest-labs/flux.2-klein-4b:n.minimum:1;n.maximum:1