FLUX.1 [dev] with Controlnets and Loras
Intégrer
flux-general
# 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/flux-general?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# 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/flux-general?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
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 = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/flux-general", 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-FR/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": "flux-general",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
}
Appelez le modèle FLUX.1 [dev] with Controlnets and Loras (flux-general) via la Doitong API. Documentation pour les agents : https://doitong.com/fr-FR/developers/models/flux-general.md
POST https://api.doitong.ru/v1/run/flux-general?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
Si le statut 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/flux-general avec le même corps renvoie le prix exact avant l'exécution.
Cette requête: ≈0,30 $ 300 crédits API · ≈ 31,64 ₽ L'exécuter sur cette page
Votre nouvelle clé API. Elle ne s'affiche que 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 exécuté dans un navigateur.
Créé sur Doitong
Créations publiques réalisées avec FLUX.1 [dev] with Controlnets and Loras par la communauté Doitong. Réutilisez une invite en un clic.
Close-up portrait seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi...
Close-up portrait seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi...
Prompt Details Seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi...
Seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi wajahnya. Ia memeluk...
"Potret sinematik ultra-realistis close-up seorang anak laki-laki kecil (balita) yang sangat menggemaskan dengan mata cokelat besar yang ekspresif, rambut hitam berantakan yang tebal, mengenakan kaus putih kerah henley. Dia berpose dengan kedua tangan terkatup di depan dada, menunjukkan senyum...
"Potret sinematik ultra-realistis close-up seorang anak laki-laki kecil (balita) yang sangat menggemaskan dengan mata cokelat besar yang ekspresif, rambut hitam berantakan yang tebal, mengenakan kaus putih kerah henley. Dia berpose dengan kedua tangan terkatup di depan dada, menunjukkan senyum...
"Potret sinematik ultra-realistis close-up seorang anak laki-laki kecil (balita) yang sangat menggemaskan dengan mata cokelat besar yang ekspresif, rambut hitam berantakan yang tebal, mengenakan kaus putih kerah henley. Dia berpose dengan kedua tangan terkatup di depan dada, menunjukkan senyum...
Foto sinematik hiper-realistis resolusi tinggi menampilkan seorang pria muda Indonesia dengan tubuh ramping dan proporsional, rambut hitam pendek agak acak, mengenakan jaket kulit hitam, celana riding fit, dan sepatu motor. Ia sedang melakukan aksi freestyle ekstrem dengan motor sport 500cc...
Foto sinematik hiper-realistis resolusi tinggi menampilkan seorang pria muda Indonesia dengan tubuh ramping dan proporsional, rambut hitam pendek agak acak, mengenakan jaket kulit hitam dan celana riding fit. Ia sedang bersiap melakukan freestyle menggunakan motor sport 500cc berwarna merah,...
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 lorsque vous les modifiez.
/run/flux-general?wait=20
devis → 0,30 $
# 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/flux-general?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# 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/flux-general?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
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 = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/flux-general", 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": "flux-general",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"wait_seconds": 20
}
}
}
Exécuter cette requête
Votre clé reste dans ce navigateur : elle est envoyée uniquement à la Doitong API et enregistrée dans localStorage uniquement si vous cochez Mémoriser. Obtenir une clé API
À propos de FLUX.1 [dev] with Controlnets and Loras
Génère des images à partir d'un `prompt` avec plusieurs méthodes de conditionnement : `loras`, `control_loras`, `controlnets`, `controlnet_unions`, `ip_adapters` et `easycontrols`, ainsi que `fill_image` pour les zones masquées. Accepte également un `reference_image_url`, des invites négatives et un choix de planificateur euler ou dpmpp_2m. Jusqu'à 10 images par appel, en png ou jpeg.
Paramètres
Envoyez soit le nom canonique, soit le nom natif, mais pas les deux. Noms canoniques
promptobligatoire
image_sizefacultatif
num_inference_stepsfacultatif
seedfacultatif
lorasfacultatif
loras[].pathobligatoire
loras[].scalefacultatif
control_lorasfacultatif
control_loras[].pathobligatoire
control_loras[].scalefacultatif
control_loras[].control_image_urlobligatoire
control_loras[].preprocessfacultatif
controlnetsfacultatif
controlnets[].pathobligatoire
controlnets[].config_urlfacultatif
controlnets[].variantfacultatif
controlnets[].control_image_urlobligatoire
controlnets[].mask_image_urlfacultatif
controlnets[].mask_thresholdfacultatif
controlnets[].conditioning_scalefacultatif
controlnets[].start_percentagefacultatif
controlnets[].end_percentagefacultatif
controlnet_unionsfacultatif
controlnet_unions[].pathobligatoire
controlnet_unions[].config_urlfacultatif
controlnet_unions[].variantfacultatif
controlnet_unions[].controlsobligatoire
controlnet_unions[].controls[].control_image_urlobligatoire
controlnet_unions[].controls[].mask_image_urlfacultatif
controlnet_unions[].controls[].control_modeobligatoire
controlnet_unions[].controls[].conditioning_scalefacultatif
controlnet_unions[].controls[].mask_thresholdfacultatif
controlnet_unions[].controls[].start_percentagefacultatif
controlnet_unions[].controls[].end_percentagefacultatif
ip_adaptersfacultatif
ip_adapters[].pathobligatoire
ip_adapters[].subfolderfacultatif
ip_adapters[].weight_namefacultatif
ip_adapters[].image_encoder_pathobligatoire
ip_adapters[].image_encoder_subfolderfacultatif
ip_adapters[].image_encoder_weight_namefacultatif
ip_adapters[].image_urlobligatoire
ip_adapters[].mask_image_urlfacultatif
ip_adapters[].mask_thresholdfacultatif
ip_adapters[].scaleobligatoire
easycontrolsfacultatif
easycontrols[].control_method_urlobligatoire
easycontrols[].scalefacultatif
easycontrols[].image_urlobligatoire
easycontrols[].image_control_typeobligatoire
fill_imagefacultatif
fill_image.fill_image_urlfacultatif
guidance_scalefacultatif
real_cfg_scalefacultatif
use_real_cfgfacultatif
use_cfg_zerofacultatif
num_imagesfacultatif
num_outputs
enable_safety_checkerfacultatif
reference_image_urlfacultatif
reference_strengthfacultatif
reference_startfacultatif
reference_endfacultatif
base_shiftfacultatif
max_shiftfacultatif
output_formatfacultatif
use_beta_schedulefacultatif
sigma_schedulefacultatif
schedulerfacultatif
negative_promptfacultatif
nag_scalefacultatif
nag_taufacultatif
nag_alphafacultatif
nag_endfacultatif
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": "flux-general",
"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": 300,
"usd": "0.30",
"charged": 300,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"output": {
"images": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"width": 1024,
"height": 768,
"content_type": "image/jpeg"
}
],
"timings": {},
"seed": 42,
"has_nsfw_concepts": [
false
],
"prompt": "string"
},
"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
- images
- array of object {url, width, height, content_type}Informations sur les fichiers des images générées.
- timings
- object
- seed
- integerGraine de génération d'image, incluant la valeur choisie aléatoirement si l'entrée ne fournissait pas de graine ; sinon, elle répète la valeur fournie.
- has_nsfw_concepts
- array of booleanIndique si des concepts NSFW apparaissent dans les images générées.
- prompt
- stringInvite utilisée pendant la génération d'image.
Autres variantes FLUX.1 [dev] with Controlnets and Loras
Plus de modèles : Texte vers image
Pour les agents IA : cette page au format Markdown est disponible à l'adresse https://doitong.com/fr-FR/developers/models/flux-general.md. Tous les modèles et guides : https://doitong.com/developers/llms.txt







