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

> Chỉnh sửa ảnh FLUX.1 [dev] bằng bản đồ thay đổi xác định mức độ biến đổi từng vùng

Biến đổi ảnh nguồn theo từng vùng, dùng ảnh bản đồ thay đổi để kiểm soát mức chỉnh sửa từng khu vực. Yêu cầu `prompt`, `image_url` và `change_map_image_url`. Ngoài ra hỗ trợ LoRA, ControlNet, IP-Adapter và ảnh tham chiếu. `num_inference_steps` chạy từ 1 đến 50 và `num_images` tối đa 10, với đầu ra png hoặc jpeg.

- 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.com/v1/run/flux-general/differential-diffusion`
- Quote: `POST https://api.doitong.com/v1/quote/flux-general/differential-diffusion`
- Docs page: https://doitong.com/vi/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.com/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 |  |  | Lời nhắc định hướng việc tạo sinh hình ảnh. |
| `image_size` |  | object {width, height} \| enum (string) | no |  | `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` | Kích thước hình ảnh được tạo. |
| `num_inference_steps` |  | integer | no | `28` | 1 – 50 | Số bước suy luận cần chạy. |
| `seed` |  | integer \| null | no |  |  | Seed cho hình ảnh có thể tái tạo: lời nhắc và seed giống hệt nhau sẽ tạo ra hình ảnh giống hệt khi phiên bản mô hình không đổi. |
| `loras` |  | array of object {path, scale} | no | `[]` |  | Các LoRA có tác động kết hợp tạo ra hình ảnh được tạo, không giới hạn số lượng cung cấp. |
| `loras[].path` |  | string | yes |  |  | Vị trí trọng số LoRA, được chỉ định bằng URL hoặc đường dẫn. |
| `loras[].scale` |  | object \| number | no | `1` |  | Tỷ lệ áp dụng cho trọng số LoRA trước khi hợp nhất vào mô hình cơ sở. Cung cấp một từ điển dạng {"layer_name":layer_scale} để đặt tỷ lệ cho từng lớp; các lớp không chỉ định sẽ sử dụng 1.0. |
| `control_loras` |  | array of object {path, scale, control_image_url, preprocess} | no | `[]` |  | Các LoRA hình ảnh điều khiển được hợp nhất thành một cấu hình kết hợp để tạo hình ảnh cuối cùng; số lượng cung cấp không bị giới hạn. |
| `control_loras[].path` |  | string | yes |  |  | Vị trí trọng số LoRA, được chỉ định bằng URL hoặc đường dẫn. |
| `control_loras[].scale` |  | object \| number | no | `1` |  | Tỷ lệ áp dụng cho trọng số LoRA trước khi hợp nhất vào mô hình cơ sở. Cung cấp một từ điển dạng {"layer_name":layer_scale} để đặt tỷ lệ cho từng lớp; các lớp không chỉ định sẽ sử dụng 1.0. |
| `control_loras[].control_image_url` |  | string (image URL) | yes |  |  | URL hình ảnh cung cấp hình ảnh điều khiển. |
| `control_loras[].preprocess` |  | enum (string) | no | `None` | `canny`, `depth`, `None` | Phương thức tiền xử lý áp dụng cho hình ảnh được cung cấp. |
| `controlnets` |  | array of object {path, config_url, variant, control_image_url, mask_image_url, mask_threshold, conditioning_scale, start_percentage, end_percentage} | no | `[]` |  | Cấu hình ControlNet cho tạo sinh hình ảnh, hiện giới hạn ở một ControlNet. |
| `controlnets[].path` |  | string | yes |  |  | Vị trí trọng số ControlNet, được chỉ định dưới dạng URL hoặc đường dẫn. |
| `controlnets[].config_url` |  | string \| null | no |  |  | URL tùy chọn trỏ đến tệp config.json của ControlNet. |
| `controlnets[].variant` |  | string \| null | no |  |  | Biến thể tùy chọn để sử dụng với khóa kho lưu trữ Hugging Face. |
| `controlnets[].control_image_url` |  | string (image URL) | yes |  |  | URL hình ảnh cung cấp hình ảnh điều khiển. |
| `controlnets[].mask_image_url` |  | string (image URL) | no |  |  | URL mặt nạ liên kết với hình ảnh điều khiển. |
| `controlnets[].mask_threshold` |  | number | no | `0.5` | 0.01 – 0.99 | Giá trị ngưỡng mặt nạ. |
| `controlnets[].conditioning_scale` |  | number | no | `1` | 0 – 2 | Tỷ lệ áp dụng cho trọng số ControlNet trước khi hợp nhất vào mô hình cơ sở. |
| `controlnets[].start_percentage` |  | number | no | `0` | 0 – 1 | Phần trăm tổng số bước thời gian tại đó ControlNet bắt đầu ảnh hưởng đến quá trình tạo sinh hình ảnh. |
| `controlnets[].end_percentage` |  | number | no | `1` | 0 – 1 | Phần trăm tổng số bước thời gian tại đó ControlNet ngừng ảnh hưởng đến quá trình tạo sinh hình ảnh. |
| `controlnet_unions` |  | array of object {path, config_url, variant, controls} | no | `[]` |  | Cấu hình ControlNet union cho tạo sinh hình ảnh, tuân theo giới hạn hiện tại là một ControlNet. |
| `controlnet_unions[].path` |  | string | yes |  |  | Vị trí trọng số ControlNet, được chỉ định dưới dạng URL hoặc đường dẫn. |
| `controlnet_unions[].config_url` |  | string \| null | no |  |  | URL tùy chọn trỏ đến tệp config.json của ControlNet. |
| `controlnet_unions[].variant` |  | string \| null | no |  |  | Biến thể tùy chọn để sử dụng với khóa kho lưu trữ Hugging Face. |
| `controlnet_unions[].controls` |  | array of object {control_image_url, mask_image_url, control_mode, conditioning_scale, mask_threshold, start_percentage, end_percentage} | yes |  |  | Các hình ảnh điều khiển và chế độ liên quan được cung cấp cho ControlNet. |
| `controlnet_unions[].controls[].control_image_url` |  | string (image URL) | yes |  |  | URL hình ảnh cung cấp hình ảnh điều khiển. |
| `controlnet_unions[].controls[].mask_image_url` |  | string (image URL) | no |  |  | URL mặt nạ liên kết với hình ảnh điều khiển. |
| `controlnet_unions[].controls[].control_mode` |  | enum (string) | yes |  | `canny`, `tile`, `depth`, `blur`, `pose`, `gray`, `low-quality` | Chế độ điều khiển được Flux Controlnet Union sử dụng. Các tùy chọn: canny định hướng tạo sinh bằng cạnh; tile định hướng bằng ô; depth định hướng bằng bản đồ độ sâu thang xám; blur làm mờ hình ảnh; pose định hướng tạo sinh bằng tư thế của hình ảnh; gray chuyển hình ảnh thành thang xám; low-quality tạo phiên bản chất lượng thấp của hình ảnh. |
| `controlnet_unions[].controls[].conditioning_scale` |  | number | no | `1` | 0 – 2 | Tỷ lệ áp dụng cho trọng số ControlNet trước khi hợp nhất vào mô hình cơ sở. |
| `controlnet_unions[].controls[].mask_threshold` |  | number | no | `0.5` | 0.01 – 0.99 | Giá trị ngưỡng mặt nạ. |
| `controlnet_unions[].controls[].start_percentage` |  | number | no | `0` | 0 – 1 | Phần trăm tổng số bước thời gian tại đó ControlNet bắt đầu ảnh hưởng đến quá trình tạo sinh hình ảnh. |
| `controlnet_unions[].controls[].end_percentage` |  | number | no | `1` | 0 – 1 | Phần trăm tổng số bước thời gian tại đó ControlNet ngừng ảnh hưởng đến quá trình tạo sinh hình ảnh. |
| `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 | `[]` |  | IP-Adapter được áp dụng trong quá trình tạo sinh hình ảnh. |
| `ip_adapters[].path` |  | string | yes |  |  | Vị trí IP-Adapter trên Hugging Face. |
| `ip_adapters[].subfolder` |  | string \| null | no |  |  | Thư mục con chứa trọng số ip_adapter. |
| `ip_adapters[].weight_name` |  | string \| null | no |  |  | Tên tệp safetensors chứa trọng số của IP-Adapter. |
| `ip_adapters[].image_encoder_path` |  | string | yes |  |  | Vị trí bộ mã hóa hình ảnh của IP-Adapter, chẳng hạn như 'openai/clip-vit-large-patch14'. |
| `ip_adapters[].image_encoder_subfolder` |  | string \| null | no |  |  | Thư mục con chứa trọng số cho bộ mã hóa hình ảnh. |
| `ip_adapters[].image_encoder_weight_name` |  | string \| null | no |  |  | Tên bộ mã hóa hình ảnh. |
| `ip_adapters[].image_url` |  | string (image URL) | yes |  |  | URL hình ảnh điều kiện cung cấp cho IP-Adapter. |
| `ip_adapters[].mask_image_url` |  | string (image URL) \| null | no |  |  | URL mặt nạ liên kết với hình ảnh điều khiển. |
| `ip_adapters[].mask_threshold` |  | number | no | `0.5` | 0.01 – 0.99 | Giá trị ngưỡng mặt nạ. |
| `ip_adapters[].scale` |  | number | yes |  |  | Hệ số tỷ lệ IP-Adapter. |
| `easycontrols` |  | array of object {control_method_url, scale, image_url, image_control_type} | no | `[]` |  | Các đầu vào EasyControl được áp dụng trong quá trình tạo sinh hình ảnh. |
| `easycontrols[].control_method_url` |  | string | yes |  |  | URL trọng số safetensor của phương thức điều khiển hoặc mã định danh được hỗ trợ: `canny`, `depth`, `hedsketch`, `inpainting`, `pose`, `seg`, `subject`, `ghibli`. |
| `easycontrols[].scale` |  | number | no | `1` | 0 – 2 | Hệ số tỷ lệ của phương thức điều khiển. |
| `easycontrols[].image_url` |  | string (image URL) | yes |  |  | URL hình ảnh cung cấp đầu vào điều khiển. |
| `easycontrols[].image_control_type` |  | enum (string) | yes |  | `subject`, `spatial` | Chế độ điều khiển hình ảnh; chấp nhận `spatial` hoặc `subject`. |
| `fill_image` |  | object {fill_image_url} \| null | no |  |  | Hình ảnh đầu vào định hướng quá trình tạo sinh và có thể cung cấp nội dung cho các vùng được che. |
| `fill_image.fill_image_url` |  | string (image URL) \| array of image URL | no | `[]` |  | URL hình ảnh để lấp đầy bằng redux prompting. |
| `guidance_scale` |  | number | no | `3.5` | 0 – 20 | Mức độ tuân thủ lời nhắc khi chọn hình ảnh, được biểu thị bằng CFG (Classifier Free Guidance). |
| `real_cfg_scale` |  | number | no | `3.5` | 0 – 5 | Mức độ tuân thủ lời nhắc khi chọn hình ảnh, được biểu thị bằng CFG (Classifier Free Guidance). |
| `use_real_cfg` |  | boolean | no | `false` |  | Công tắc CFG cổ điển, tự động bật với XLabs IP-Adapter v1. Hành vi hướng dẫn tương ứng với các mô hình như SD1.5 và SDXL. |
| `use_cfg_zero` |  | boolean | no | `false` |  | Bật lấy mẫu khởi tạo CFG-zero, được mô tả tại https://arxiv.org/abs/2503.18886. |
| `num_images` | `num_outputs` | integer | no | `1` | 1 – 10 | Đặt số hình ảnh cần tạo; lựa chọn này cố định ở 1 khi đầu ra được truyền trực tiếp. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Kiểm tra an toàn, trả về hình ảnh màu đen thay cho mọi hình ảnh bị đánh dấu không an toàn. Giá trị true bật kiểm tra; false chỉ tắt kiểm tra đối với tài khoản được cấp quyền, còn các yêu cầu không được cấp quyền vẫn luôn được kiểm tra. |
| `reference_image_url` |  | string (image URL) | no |  |  | URL hình ảnh được sử dụng cho hướng dẫn Reference-Only. |
| `reference_strength` |  | number | no | `0.65` | -3 – 3 | Mức ảnh hưởng của hình ảnh tham chiếu trong quá trình tạo Reference-Only; khi không cung cấp hình ảnh tham chiếu, cài đặt cường độ này không có tác dụng. |
| `reference_start` |  | number | no | `0` | 0 – 1 | Điểm bắt đầu hướng dẫn tham chiếu, tính theo phần trăm của toàn bộ bước thời gian. |
| `reference_end` |  | number | no | `1` | 0 – 1 | Điểm kết thúc hướng dẫn tham chiếu, tính theo phần trăm của toàn bộ bước thời gian. |
| `base_shift` |  | number | no | `0.5` | 0.01 – 5 | Độ dịch cơ sở áp dụng cho các bước thời gian đã lập lịch. |
| `max_shift` |  | number | no | `1.15` | 0.01 – 5 | Độ dịch tối đa áp dụng cho các bước thời gian đã lập lịch. |
| `output_format` |  | enum (string) | no | `png` | `jpeg`, `png` | Định dạng tệp của hình ảnh kết quả. |
| `use_beta_schedule` |  | boolean | no | `false` |  | Kiểm soát việc có sử dụng beta sigmas hay không. |
| `sigma_schedule` |  | string \| null | no |  |  | Lịch sigma được sử dụng trong quá trình khử nhiễu. |
| `scheduler` |  | enum (string) | no | `euler` | `euler`, `dpmpp_2m` | Bộ lập lịch được sử dụng trong quá trình khử nhiễu. |
| `negative_prompt` |  | string | no | `` |  | Lời nhắc phủ định được xử lý bằng NAG theo mặc định để hạn chế các đặc điểm không mong muốn được chỉ định trong hình ảnh tạo ra. |
| `nag_scale` |  | number | no | `3` | ≤ 10, > 1 | Mức tránh lời nhắc phủ định được điều khiển bởi tỷ lệ NAG: tăng giá trị này khiến hình ảnh tạo ra ít giống mô tả phủ định hơn. |
| `nag_tau` |  | number | no | `2.5` | > 0 | Cài đặt NAG tau để chuẩn hóa trạng thái ẩn; nên giữ nguyên giá trị này. Tăng giá trị sẽ làm yếu quá trình chuẩn hóa và có nguy cơ khiến hình ảnh lệch khỏi hình ảnh gốc ngoài dự kiến. |
| `nag_alpha` |  | number | no | `0.25` | ≤ 1, > 0 | NAG alpha xác định mức độ lời nhắc tích cực điều hướng lại hướng dẫn đã chuẩn hóa kết hợp lời nhắc tích cực và phủ định. Trọng số cuối này giúp lời nhắc tích cực có ảnh hưởng lớn hơn ở các cài đặt thấp và giảm điều hướng lại ở các cài đặt cao. |
| `nag_end` |  | number | no | `0.25` | ≤ 1, > 0 | NAG cutoff được biểu thị dưới dạng tỷ lệ của các bước tạo sinh. Bộ xử lý attention gốc của FLUX sẽ tiếp quản sau khi NAG chạy trong tỷ lệ ban đầu đó. |
| `image_url` | `image` | string (image URL) | yes |  |  | URL hình ảnh cung cấp hình ảnh ban đầu. |
| `change_map_image_url` |  | string (image URL) | yes |  |  | URL trỏ đến bản đồ thay đổi. |
| `strength` |  | number | no | `0.85` | 0.01 – 1 | Cường độ khuếch tán vi phân, từ bảo toàn hình ảnh gốc ở 0.0 đến tái tạo hoàn toàn ở 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.com/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.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.com/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.com/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.com/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.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `images` | array of object {url, width, height, content_type} | Thông tin tệp của các hình ảnh được tạo. |
| `timings` | object |  |
| `seed` | integer | Seed tạo sinh hình ảnh, bao gồm giá trị được chọn ngẫu nhiên nếu đầu vào không cung cấp seed; nếu không, lặp lại giá trị đã cung cấp. |
| `has_nsfw_concepts` | array of boolean | Cho biết các khái niệm NSFW có xuất hiện trong hình ảnh được tạo sinh hay không. |
| `prompt` | string | Lời nhắc được sử dụng trong quá trình tạo sinh hình ảnh. |

## 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.com/v1/models/flux-general/differential-diffusion
