FLUX.1 [dev] with Controlnets and Loras · Rf Inversion
Integra
flux-general/rf-inversion
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/flux-general/rf-inversion?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",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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/rf-inversion?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",
"image": "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://vit.doitong.com/api/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",
"image": "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/flux-general/rf-inversion", 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/it/developers/docs/mcp)
claude mcp add --transport http doitong-models https://vit.doitong.com/api/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "flux-general/rf-inversion",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
}
Chiama il modello FLUX.1 [dev] with Controlnets and Loras · Rf Inversion (flux-general/rf-inversion) tramite Doitong API. Documentazione per gli agenti: https://doitong.com/it/developers/models/flux-general/rf-inversion.md
POST https://vit.doitong.com/api/v1/run/flux-general/rf-inversion?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",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
Se lo stato della risposta è "queued" o "running", interroga GET https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20 finché non diventa "succeeded"; i file si trovano in outputs[].url. POST https://vit.doitong.com/api/v1/quote/flux-general/rf-inversion con lo stesso body restituisce il prezzo esatto prima dell'esecuzione.
Questa richiesta: ≈0,025 $ 25 crediti API Esegui in questa pagina
La tua nuova chiave API. Viene mostrata solo ora ed è già presente nel codice e nel campo della chiave API qui sotto. Mantienila segreta: non inserirla mai nel codice eseguito in un browser.
Il tuo primo risultato apparirà qui
Crea una richiesta qui sotto ed eseguila con la tua chiave API. Gli output vengono copiati nella nostra archiviazione, conservati per sempre oppure 7 giorni gratuitamente.
Crea una richiesta
I controlli vengono generati dallo schema del modello. Il codice e il prezzo si aggiornano mentre li modifichi.
/run/flux-general/rf-inversion?wait=20
preventivo → 0,025 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/flux-general/rf-inversion?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",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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/rf-inversion?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",
"image": "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://vit.doitong.com/api/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",
"image": "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/flux-general/rf-inversion", 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/rf-inversion",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"wait_seconds": 20
}
}
}
Esegui questa richiesta
La tua chiave rimane in questo browser: viene inviata solo al Doitong API e salvata in localStorage solo se selezioni Ricorda. Ottieni una chiave API
Informazioni su FLUX.1 [dev] with Controlnets and Loras · Rf Inversion
Modifica l'immagine in `image_url` in base a un `prompt` usando la pipeline RF-Inversion, che lavora dall'immagine originale invece di partire dal rumore. È possibile aggiungere LoRA, control LoRA, ControlNet e un'immagine di riferimento; le impostazioni NAG (`nag_scale`, `nag_tau`, `nag_alpha`, `nag_end`) regolano la guida del prompt negativo.
Parametri
Invia il nome canonico oppure il nome nativo, non entrambi. Nomi canonici
promptobbligatorio
image_sizefacoltativo
num_inference_stepsfacoltativo
seedfacoltativo
lorasfacoltativo
loras[].pathobbligatorio
loras[].scalefacoltativo
control_lorasfacoltativo
control_loras[].pathobbligatorio
control_loras[].scalefacoltativo
control_loras[].control_image_urlobbligatorio
control_loras[].preprocessfacoltativo
controlnetsfacoltativo
controlnets[].pathobbligatorio
controlnets[].config_urlfacoltativo
controlnets[].variantfacoltativo
controlnets[].control_image_urlobbligatorio
controlnets[].mask_image_urlfacoltativo
controlnets[].mask_thresholdfacoltativo
controlnets[].conditioning_scalefacoltativo
controlnets[].start_percentagefacoltativo
controlnets[].end_percentagefacoltativo
controlnet_unionsfacoltativo
controlnet_unions[].pathobbligatorio
controlnet_unions[].config_urlfacoltativo
controlnet_unions[].variantfacoltativo
controlnet_unions[].controlsobbligatorio
controlnet_unions[].controls[].control_image_urlobbligatorio
controlnet_unions[].controls[].mask_image_urlfacoltativo
controlnet_unions[].controls[].control_modeobbligatorio
controlnet_unions[].controls[].conditioning_scalefacoltativo
controlnet_unions[].controls[].mask_thresholdfacoltativo
controlnet_unions[].controls[].start_percentagefacoltativo
controlnet_unions[].controls[].end_percentagefacoltativo
easycontrolsfacoltativo
easycontrols[].control_method_urlobbligatorio
easycontrols[].scalefacoltativo
easycontrols[].image_urlobbligatorio
easycontrols[].image_control_typeobbligatorio
fill_imagefacoltativo
fill_image.fill_image_urlfacoltativo
guidance_scalefacoltativo
use_cfg_zerofacoltativo
num_imagesfacoltativo
num_outputs
enable_safety_checkerfacoltativo
reference_image_urlfacoltativo
reference_strengthfacoltativo
reference_startfacoltativo
reference_endfacoltativo
base_shiftfacoltativo
max_shiftfacoltativo
output_formatfacoltativo
use_beta_schedulefacoltativo
sigma_schedulefacoltativo
schedulerfacoltativo
negative_promptfacoltativo
nag_scalefacoltativo
nag_taufacoltativo
nag_alphafacoltativo
nag_endfacoltativo
image_urlobbligatorio
image
controller_guidance_forwardfacoltativo
controller_guidance_reversefacoltativo
reverse_guidance_startfacoltativo
reverse_guidance_endfacoltativo
reverse_guidance_schedulefacoltativo
I parametri file accettano un URL pubblico https://, un URI data: fino a 10 MB oppure il file_url di un caricamento. File
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "flux-general/rf-inversion",
"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": 25,
"usd": "0.025",
"charged": 25,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"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://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Campi dell'output
- images
- array of object {url, width, height, content_type}Informazioni sui file delle immagini generate.
- timings
- object
- seed
- integerSeed della generazione di immagini, incluso il valore scelto casualmente se l'input non forniva un seed; altrimenti ripete il valore fornito.
- has_nsfw_concepts
- array of booleanIndica se nelle immagini generate compaiono concetti NSFW.
- prompt
- stringPrompt usato durante la generazione di immagini.
Altre varianti di FLUX.1 [dev] with Controlnets and Loras
Altri modelli: Modifica immagini
Per gli agenti AI: questa pagina in Markdown è disponibile all'indirizzo https://doitong.com/it/developers/models/flux-general/rf-inversion.md. Tutti i modelli e le guide: https://doitong.com/developers/llms.txt






