# FLUX.1 [dev] with Controlnets and Loras · Differential Diffusion API

> FLUX.1 [dev] attēlu rediģēšana ar izmaiņu karti, kas nosaka katra apgabala pārveidošanas stiprumu

Pārveido avota attēlu pa apgabaliem, izmantojot izmaiņu karti, kas kontrolē katras zonas pārveidošanas apjomu. Nepieciešami `prompt`, `image_url` un `change_map_image_url`. Atbalsta arī LoRA, ControlNet, IP-Adapter un atsauces attēlu. `num_inference_steps` ir no 1 līdz 50, `num_images` — līdz 10, ar png vai jpeg izvadi.

- Model id: `flux-general/differential-diffusion`
- Made by: Black Forest Labs
- Category: Image Editing
- Output: image
- Estimated price per run: $0.138 / image (cheapest run $0.138 (138 API credits))
- Run: `POST https://api.doitong.ru/v1/run/flux-general/differential-diffusion`
- Quote: `POST https://api.doitong.ru/v1/quote/flux-general/differential-diffusion`
- Docs page: https://doitong.com/lv/developers/models/flux-general/differential-diffusion

## Pricing

Price: **$0.138 / image**. Estimated from the typical cost of one run, per output (`num_images`). The quote is exactly what the run charges.

The full example input below costs $0.138 = 138 API credits (1 image × 138 API credits).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.ru/v1/quote/flux-general/differential-diffusion` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `prompt` |  | string | yes |  |  | Uzvedne, kas vada attēla ģenerēšanu. |
| `image_size` |  | object {width, height} \| enum (string) | no |  | `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` | Ģenerētā attēla dimensijas. |
| `num_inference_steps` |  | integer | no | `28` | 1 – 50 | Veicamo secināšanas darbību skaits. |
| `seed` |  | integer \| null | no |  |  | Sēkla reproducējamiem attēliem: identiska uzvedne un sēkla rada identisku attēlu, ja modeļa versija nav mainīta. |
| `loras` |  | array of object {path, scale} | no | `[]` |  | LoRA, kuru kopējais efekts veido ģenerēto attēlu; piegādājamo LoRA skaitam nav ierobežojuma. |
| `loras[].path` |  | string | yes |  |  | LoRA svaru atrašanās vieta, norādīta kā URL vai ceļš. |
| `loras[].scale` |  | object \| number | no | `1` |  | LoRA svaru mērogošana pirms to sapludināšanas ar bāzes modeli. Lai iestatītu atsevišķu slāņu mērogu, norādiet formas {"layer_name":layer_scale} vārdnīcu; nenorādītajiem slāņiem tiek izmantots 1.0. |
| `control_loras` |  | array of object {path, scale, control_image_url, preprocess} | no | `[]` |  | Vadības attēlu LoRA, kas sapludinātas kopīgā konfigurācijā galīgā attēla ģenerēšanai; norādītais skaits nav ierobežots. |
| `control_loras[].path` |  | string | yes |  |  | LoRA svaru atrašanās vieta, norādīta kā URL vai ceļš. |
| `control_loras[].scale` |  | object \| number | no | `1` |  | LoRA svaru mērogošana pirms to sapludināšanas ar bāzes modeli. Lai iestatītu atsevišķu slāņu mērogu, norādiet formas {"layer_name":layer_scale} vārdnīcu; nenorādītajiem slāņiem tiek izmantots 1.0. |
| `control_loras[].control_image_url` |  | string (image URL) | yes |  |  | Attēla URL, kas nodrošina vadības attēlu. |
| `control_loras[].preprocess` |  | enum (string) | no | `None` | `canny`, `depth`, `None` | Norādītajam attēlam piemērojamā priekšapstrādes metode. |
| `controlnets` |  | array of object {path, config_url, variant, control_image_url, mask_image_url, mask_threshold, conditioning_scale, start_percentage, end_percentage} | no | `[]` |  | ControlNet konfigurācija attēla ģenerēšanai; pašlaik atļauts tikai viens ControlNet. |
| `controlnets[].path` |  | string | yes |  |  | ControlNet svaru atrašanās vieta, kas norādīta kā URL vai ceļš. |
| `controlnets[].config_url` |  | string \| null | no |  |  | Neobligāts URL, kas norāda uz ControlNet config.json failu. |
| `controlnets[].variant` |  | string \| null | no |  |  | Neobligāts variants lietošanai ar Hugging Face repozitorija atslēgu. |
| `controlnets[].control_image_url` |  | string (image URL) | yes |  |  | Attēla URL, kas nodrošina vadības attēlu. |
| `controlnets[].mask_image_url` |  | string (image URL) | no |  |  | Maskas URL, kas saistīts ar vadības attēlu. |
| `controlnets[].mask_threshold` |  | number | no | `0.5` | 0.01 – 0.99 | Maskas sliekšņa vērtība. |
| `controlnets[].conditioning_scale` |  | number | no | `1` | 0 – 2 | ControlNet svaru mērogošana pirms to sapludināšanas ar bāzes modeli. |
| `controlnets[].start_percentage` |  | number | no | `0` | 0 – 1 | Procentuālā daļa no kopējā laika soļu skaita, kurā ControlNet sāk ietekmēt attēla ģenerēšanu. |
| `controlnets[].end_percentage` |  | number | no | `1` | 0 – 1 | Procentuālā daļa no kopējā laika soļu skaita, kurā ControlNet pārstāj ietekmēt attēla ģenerēšanu. |
| `controlnet_unions` |  | array of object {path, config_url, variant, controls} | no | `[]` |  | ControlNet union konfigurācija attēla ģenerēšanai, ievērojot pašreizējo viena ControlNet ierobežojumu. |
| `controlnet_unions[].path` |  | string | yes |  |  | ControlNet svaru atrašanās vieta, kas norādīta kā URL vai ceļš. |
| `controlnet_unions[].config_url` |  | string \| null | no |  |  | Neobligāts URL, kas norāda uz ControlNet config.json failu. |
| `controlnet_unions[].variant` |  | string \| null | no |  |  | Neobligāts variants lietošanai ar Hugging Face repozitorija atslēgu. |
| `controlnet_unions[].controls` |  | array of object {control_image_url, mask_image_url, control_mode, conditioning_scale, mask_threshold, start_percentage, end_percentage} | yes |  |  | ControlNet nodrošinātie vadības attēli un saistītie režīmi. |
| `controlnet_unions[].controls[].control_image_url` |  | string (image URL) | yes |  |  | Attēla URL, kas nodrošina vadības attēlu. |
| `controlnet_unions[].controls[].mask_image_url` |  | string (image URL) | no |  |  | Maskas URL, kas saistīts ar vadības attēlu. |
| `controlnet_unions[].controls[].control_mode` |  | enum (string) | yes |  | `canny`, `tile`, `depth`, `blur`, `pose`, `gray`, `low-quality` | Vadības režīms, ko izmanto Flux Controlnet Union. Opcijas: canny vada ģenerēšanu ar malām; tile vada to ar flīzēm; depth vada to ar pelēktoņu dziļuma karti; blur aizmiglo attēlu; pose vada ģenerēšanu ar attēla pozu; gray pārveido attēlu pelēktoņu attēlā; low-quality izveido attēla zemas kvalitātes versiju. |
| `controlnet_unions[].controls[].conditioning_scale` |  | number | no | `1` | 0 – 2 | ControlNet svaru mērogošana pirms to sapludināšanas ar bāzes modeli. |
| `controlnet_unions[].controls[].mask_threshold` |  | number | no | `0.5` | 0.01 – 0.99 | Maskas sliekšņa vērtība. |
| `controlnet_unions[].controls[].start_percentage` |  | number | no | `0` | 0 – 1 | Procentuālā daļa no kopējā laika soļu skaita, kurā ControlNet sāk ietekmēt attēla ģenerēšanu. |
| `controlnet_unions[].controls[].end_percentage` |  | number | no | `1` | 0 – 1 | Procentuālā daļa no kopējā laika soļu skaita, kurā ControlNet pārstāj ietekmēt attēla ģenerēšanu. |
| `ip_adapters` |  | array of object {path, subfolder, weight_name, image_encoder_path, image_encoder_subfolder, image_encoder_weight_name, image_url, mask_image_url, mask_threshold, scale} | no | `[]` |  | Attēla ģenerēšanas laikā piemērojamais IP-Adapter. |
| `ip_adapters[].path` |  | string | yes |  |  | IP-Adapter atrašanās vieta Hugging Face. |
| `ip_adapters[].subfolder` |  | string \| null | no |  |  | Apakšmape, kurā atrodas ip_adapter svari. |
| `ip_adapters[].weight_name` |  | string \| null | no |  |  | Safetensors faila nosaukums IP-Adapter svariem. |
| `ip_adapters[].image_encoder_path` |  | string | yes |  |  | IP-Adapter attēlu kodētāja atrašanās vieta, piemēram, 'openai/clip-vit-large-patch14'. |
| `ip_adapters[].image_encoder_subfolder` |  | string \| null | no |  |  | Apakšmape, kurā atrodas attēlu kodētāja svari. |
| `ip_adapters[].image_encoder_weight_name` |  | string \| null | no |  |  | Attēlu kodētāja nosaukums. |
| `ip_adapters[].image_url` |  | string (image URL) | yes |  |  | IP-Adapter nodrošinātais nosacījumu attēla URL. |
| `ip_adapters[].mask_image_url` |  | string (image URL) \| null | no |  |  | Maskas URL, kas saistīts ar vadības attēlu. |
| `ip_adapters[].mask_threshold` |  | number | no | `0.5` | 0.01 – 0.99 | Maskas sliekšņa vērtība. |
| `ip_adapters[].scale` |  | number | yes |  |  | IP-Adapter mērogošanas koeficients. |
| `easycontrols` |  | array of object {control_method_url, scale, image_url, image_control_type} | no | `[]` |  | EasyControl ievades, kas tiek lietotas attēla ģenerēšanas laikā. |
| `easycontrols[].control_method_url` |  | string | yes |  |  | Vadības metodes safetensor svaru URL vai atbalstīts identifikators: `canny`, `depth`, `hedsketch`, `inpainting`, `pose`, `seg`, `subject`, `ghibli`. |
| `easycontrols[].scale` |  | number | no | `1` | 0 – 2 | Vadības metodes mērogošanas koeficients. |
| `easycontrols[].image_url` |  | string (image URL) | yes |  |  | Attēla URL, kas nodrošina vadības ievadi. |
| `easycontrols[].image_control_type` |  | enum (string) | yes |  | `subject`, `spatial` | Attēla vadības režīms; pieņem `spatial` vai `subject`. |
| `fill_image` |  | object {fill_image_url} \| null | no |  |  | Ievades attēls, kas vada ģenerēšanu un var nodrošināt saturu maskētajiem apgabaliem. |
| `fill_image.fill_image_url` |  | string (image URL) \| array of image URL | no | `[]` |  | Attēlu URL aizpildīšanai, izmantojot redux uzvednes. |
| `guidance_scale` |  | number | no | `3.5` | 0 – 20 | Uzvednes ievērošanas stiprums attēlu atlasē, izteikts kā CFG (Classifier Free Guidance). |
| `real_cfg_scale` |  | number | no | `3.5` | 0 – 5 | Uzvednes ievērošanas stiprums attēlu atlasē, izteikts kā CFG (Classifier Free Guidance). |
| `use_real_cfg` |  | boolean | no | `false` |  | Klasiskais CFG slēdzis, kas automātiski iespējots ar XLabs IP-Adapter v1. Vadības darbība atbilst tādu modeļu kā SD1.5 un SDXL darbībai. |
| `use_cfg_zero` |  | boolean | no | `false` |  | Iespējo CFG-zero inicializācijas paraugošanu, kas aprakstīta vietnē https://arxiv.org/abs/2503.18886. |
| `num_images` | `num_outputs` | integer | no | `1` | 1 – 10 | Iestatiet ģenerējamo attēlu skaitu; ja izvade tiek straumēta, šī izvēle vienmēr ir 1. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Drošības pārbaude, kas nedrošu attēlu vietā atgriež melnus attēlus. true iespējo pārbaudi; false to atspējo tikai autorizētiem kontiem, bet pieprasījumi bez autorizācijas tiek pārbaudīti neatkarīgi no iestatījuma. |
| `reference_image_url` |  | string (image URL) | no |  |  | Attēla URL, ko izmanto Reference-Only vadībai. |
| `reference_strength` |  | number | no | `0.65` | -3 – 3 | Atsauces attēla ietekme reference_only ģenerēšanas laikā; bez norādīta atsauces attēla šis stipruma iestatījums neietekmē rezultātu. |
| `reference_start` |  | number | no | `0` | 0 – 1 | Atsauces vadības sākumpunkts, izteikts procentos no visiem laika soļiem. |
| `reference_end` |  | number | no | `1` | 0 – 1 | Atsauces vadības beigu punkts, izteikts procentos no visiem laika soļiem. |
| `base_shift` |  | number | no | `0.5` | 0.01 – 5 | Plānotajiem laika soļiem piemērojamā sākuma nobīde. |
| `max_shift` |  | number | no | `1.15` | 0.01 – 5 | Plānotajiem laika soļiem piemērojamā maksimālā nobīde. |
| `output_format` |  | enum (string) | no | `png` | `jpeg`, `png` | Iegūtā attēla faila formāts. |
| `use_beta_schedule` |  | boolean | no | `false` |  | Nosaka, vai izmantot beta sigmas. |
| `sigma_schedule` |  | string \| null | no |  |  | Trokšņa noņemšanas laikā izmantotais sigma grafiks. |
| `scheduler` |  | enum (string) | no | `euler` | `euler`, `dpmpp_2m` | Trokšņa noņemšanas laikā izmantotais plānotājs. |
| `negative_prompt` |  | string | no | `` |  | Negatīva uzvedne, ko pēc noklusējuma apstrādā NAG, lai atturētu no norādīto nevēlamo pazīmju parādīšanās ģenerētajos attēlos. |
| `nag_scale` |  | number | no | `3` | ≤ 10, > 1 | Negatīvās uzvednes novēršana, ko kontrolē NAG mērogs: to palielinot, ģenerētais attēls mazāk līdzinās negatīvajam aprakstam. |
| `nag_tau` |  | number | no | `2.5` | > 0 | NAG tau iestatījums slēptā stāvokļa normalizācijai; ieteicams to nemainīt. Palielināšana vājina normalizāciju un var radīt neparedzētas novirzes no oriģinālā attēla. |
| `nag_alpha` |  | number | no | `0.25` | ≤ 1, > 0 | NAG alpha nosaka, cik lielā mērā pozitīvā uzvedne novirza normalizēto vadību, apvienojot pozitīvo un negatīvo uzvedni. Šis galīgais svars piešķir pozitīvajai uzvednei lielāku ietekmi pie zemākām vērtībām un samazina novirzīšanu pie augstākām. |
| `nag_end` |  | number | no | `0.25` | ≤ 1, > 0 | NAG nogriešanas punkts, izteikts kā ģenerēšanas soļu proporcija. Pēc tam, kad NAG ir darbojies šo sākotnējo proporciju, pārņem FLUX sākotnējie uzmanības procesori. |
| `image_url` | `image` | string (image URL) | yes |  |  | Attēla URL, kas nodrošina sākotnējo attēlu. |
| `change_map_image_url` |  | string (image URL) | yes |  |  | URL, kas norāda uz izmaiņu karti. |
| `strength` |  | number | no | `0.85` | 0.01 – 1 | Diferenciālās difūzijas stiprums: no oriģināla saglabāšanas pie 0.0 līdz pilnīgai pārveidei pie 1.0. |

File parameters (`reference_image_url`, `image`, `change_map_image_url`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```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",
  "change_map_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

A fuller example:

```json
{
  "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",
  "change_map_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# 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/differential-diffusion?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_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
    "change_map_image_url": "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"
```

### JavaScript

```javascript
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/differential-diffusion?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_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
    "change_map_image_url": "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 + ")");
```

### Python

```python
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",
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
    "change_map_image_url": "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/differential-diffusion", 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"])
```

### MCP

The MCP server at `https://api.doitong.ru/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "flux-general/differential-diffusion",
      "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",
        "change_map_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux-general/differential-diffusion",
  "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": 138,
    "usd": "0.138",
    "charged": 138,
    "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",
    "change_map_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://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `images` | array of object {url, width, height, content_type} | Ģenerēto attēlu failu informācija. |
| `timings` | object |  |
| `seed` | integer | Attēla ģenerēšanas sēkla, tostarp nejauši izvēlētā vērtība, ja ievadē sēkla nebija norādīta; pretējā gadījumā atkārto norādīto vērtību. |
| `has_nsfw_concepts` | array of boolean | Norāda, vai ģenerētajos attēlos parādās NSFW koncepcijas. |
| `prompt` | string | Attēla ģenerēšanas laikā izmantotā uzvedne. |

## Related models

- [FLUX.1 \[dev\] with Controlnets and Loras](https://doitong.com/developers/models/flux-general.md) (`flux-general`): $0.30 / image
- [FLUX.1 \[dev\] with Controlnets and Loras · Image to Image](https://doitong.com/developers/models/flux-general/image-to-image.md) (`flux-general/image-to-image`): $0.15 / image
- [FLUX.1 \[dev\] with Controlnets and Loras · Inpainting](https://doitong.com/developers/models/flux-general/inpainting.md) (`flux-general/inpainting`): $0.192 / image
- [FLUX.1 \[dev\] with Controlnets and Loras · Rf Inversion](https://doitong.com/developers/models/flux-general/rf-inversion.md) (`flux-general/rf-inversion`): $0.025 / image
- [FLUX.1 Kontext \[pro\]](https://doitong.com/developers/models/flux-pro/kontext.md) (`flux-pro/kontext`): $0.04 / image
- [GPT Image 2.5 Edit](https://doitong.com/developers/models/openai/gpt-image-2.5/flare/edit.md) (`openai/gpt-image-2.5/flare/edit`): from $0.12 / image
- [Nano Banana 2 Edit](https://doitong.com/developers/models/nano-banana-2/edit.md) (`nano-banana-2/edit`): from $0.06 / image
- [Nano Banana Pro Edit](https://doitong.com/developers/models/nano-banana-pro/edit.md) (`nano-banana-pro/edit`): from $0.15 / image

## Links

- HTML page: https://doitong.com/developers/models/flux-general/differential-diffusion
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=flux-general/differential-diffusion
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/flux-general/differential-diffusion
