Bria Product Holding (FIBO-Edit-1.5)
Intégrer
bria/fibo-edit-1.5/product-holding
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/bria/fibo-edit-1.5/product-holding?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bria/fibo-edit-1.5/product-holding?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bria/fibo-edit-1.5/product-holding", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/fr-CA/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "bria/fibo-edit-1.5/product-holding",
"input": {
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
}
}
Appelez le modèle Bria Product Holding (FIBO-Edit-1.5) (bria/fibo-edit-1.5/product-holding) par l’intermédiaire de Doitong API. Documentation pour les agents : https://doitong.com/fr-CA/developers/models/bria/fibo-edit-1.5/product-holding.md
POST https://api.doitong.ru/v1/run/bria/fibo-edit-1.5/product-holding?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
}
Si l’état de la réponse est "queued" ou "running", interrogez GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 jusqu’à ce qu’il soit "succeeded"; les fichiers se trouvent dans outputs[].url. POST https://api.doitong.ru/v1/quote/bria/fibo-edit-1.5/product-holding avec le même corps renvoie le prix exact avant l’exécution.
Cette requête: 0,04 $ 40 crédits API · ≈ 4,30 ₽ L’exécuter sur cette page
Votre nouvelle clé API. Elle est affichée uniquement maintenant et figure déjà dans le code et dans le champ de clé API ci-dessous. Gardez-la secrète : ne la mettez jamais dans du code qui s’exécute dans un navigateur.
Votre premier résultat apparaîtra ici
Créez une requête ci-dessous et exécutez-la avec votre clé API. Les sorties sont copiées dans notre stockage, conservées indéfiniment ou pendant 7 jours gratuitement.
Créer une requête
Les contrôles sont générés à partir du schéma du modèle. Le code et le prix se mettent à jour au fur et à mesure de vos modifications.
/run/bria/fibo-edit-1.5/product-holding?wait=20
devis → 0,04 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/bria/fibo-edit-1.5/product-holding?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bria/fibo-edit-1.5/product-holding?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bria/fibo-edit-1.5/product-holding", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "bria/fibo-edit-1.5/product-holding",
"input": {
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
},
"wait_seconds": 20
}
}
}
Exécuter cette requête
Votre clé reste dans ce navigateur : elle est envoyée uniquement au Doitong API et enregistrée dans localStorage uniquement si vous cochez Mémoriser. Obtenir une clé API
À propos de Bria Product Holding (FIBO-Edit-1.5)
Prend une photo d’une personne et des images de référence d’un produit, puis redessine le bras et la main afin que la personne le tienne. Le visage, les vêtements, la pose et l’arrière-plan restent inchangés. `person_image_url` et `product_image_urls` (1 à 3 images du même produit) sont obligatoires. Une `instruction` facultative peut préciser la direction de la main ou de l’étiquette, et `aspect_ratio` propose neuf rapports de 1:1 à 16:9; s’il n’est pas défini, le rapport de la photo de la personne est conservé.
Paramètres
person_image_urlrequis
product_image_urlsrequis
instructionfacultatif
aspect_ratiofacultatif
seedfacultatif
Les paramètres de fichier acceptent une URL publique https://, un URI data: jusqu’à 10 MB ou le file_url d’un téléversement. Fichiers
Sortie
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "bria/fibo-edit-1.5/product-holding",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 40,
"usd": "0.04",
"charged": 40,
"refunded": 0
},
"input": {
"person_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"product_image_urls": [
"https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
]
},
"output": {
"image": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768
},
"images": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768
}
],
"structured_instruction": {}
},
"outputs": [
{
"type": "image",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Champs de sortie
- image
- object {url, content_type, file_name, file_size, width, height}Résultat modifié dont les proportions suivent aspect_ratio lorsqu’il est défini, ou l’image source autrement.
- images
- array of object {url, content_type, file_name, file_size, width, height}Réponse rétrocompatible pour les clients utilisant l’ancienne route de l’API Fibo Edit : une liste dont l’unique élément est la même image.
- structured_instruction
- objectInterprétation développée du brief, renvoyée comme l’instruction structurée réellement exécutée. Elle intègre l’instruction intégrée et tout contenu fourni par `instruction`.
Autres variantes de Bria Fibo Edit 1.5
Plus de modèles : Modification d’image
Pour les agents IA : cette page en Markdown se trouve à https://doitong.com/fr-CA/developers/models/bria/fibo-edit-1.5/product-holding.md. Tous les modèles et guides : https://doitong.com/developers/llms.txt






