Train Flux LoRA
ผสานการทำงาน
flux-lora-fast-training
# 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-lora-fast-training?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"images_data_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"
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-lora-fast-training?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"images_data_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 + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"images_data_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-lora-fast-training", 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/th/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "flux-lora-fast-training",
"input": {
"images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
}
เรียกใช้โมเดล Train Flux LoRA (flux-lora-fast-training) ผ่าน Doitong API เอกสารสำหรับเอเจนต์: https://doitong.com/th/developers/models/flux-lora-fast-training.md
POST https://api.doitong.com/v1/run/flux-lora-fast-training?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
หากสถานะการตอบกลับเป็น "queued" หรือ "running" ให้ส่งคำขอแบบสำรวจ GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 จนกว่าจะเป็น "succeeded" ไฟล์อยู่ใน outputs[].url การส่ง POST https://api.doitong.com/v1/quote/flux-lora-fast-training ด้วยบอดี้เดียวกันจะแสดงราคาที่แน่นอนก่อนเรียกใช้
ไฟล์เช่นเดียวกับตัวอย่าง: $2.00 2,000 เครดิต API ไฟล์ของคุณจะถูกวัดก่อนเรียกใช้ เรียกใช้ในหน้านี้
คีย์ API ใหม่ของคุณ คีย์นี้จะแสดงเฉพาะตอนนี้ และมีอยู่ในโค้ดและช่องคีย์ API ด้านล่างแล้ว เก็บเป็นความลับ: อย่าใส่คีย์นี้ไว้ในโค้ดที่ทำงานบนเบราว์เซอร์
สร้างบน Doitong
ผลงานสาธารณะที่สร้างด้วย Train Flux LoRA โดยชุมชน Doitong นำพรอมต์กลับมาใช้ได้ในคลิกเดียว
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,...
สร้างคำขอ
ตัวควบคุมสร้างจากสคีมาของโมเดล โค้ดและราคาจะอัปเดตเมื่อคุณเปลี่ยนค่า
/run/flux-lora-fast-training?wait=20
ใบเสนอราคา → $2.00
# 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-lora-fast-training?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"images_data_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"
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-lora-fast-training?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"images_data_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 + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"images_data_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-lora-fast-training", 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-lora-fast-training",
"input": {
"images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"wait_seconds": 20
}
}
}
เรียกใช้คำขอนี้
คีย์ของคุณจะอยู่ในเบราว์เซอร์นี้ โดยส่งไปยัง Doitong API เท่านั้น และจะบันทึกใน localStorage ก็ต่อเมื่อคุณเลือกจดจำ รับคีย์ API
เกี่ยวกับ Train Flux LoRA
ปรับแต่งละเอียด LoRA จากไฟล์ zip ของรูปภาพ (`images_data_url`) ซึ่งอาจมีไฟล์ข้อความคำบรรยายที่ตรงกัน ใช้ `trigger_word` เพื่อตั้งชื่อแนวคิด และใช้ `is_style` สำหรับการฝึกสไตล์ ซึ่งจะปิดการแบ่งส่วนและการสร้างคำบรรยาย `create_masks` จะให้น้ำหนักการสูญเสียไปยังวัตถุ และ `steps` รองรับค่าตั้งแต่ 1 ถึง 10000 ส่งคืนค่าน้ำหนัก LoRA ของ diffusers พร้อมไฟล์การกำหนดค่า
พารามิเตอร์
images_data_urlจำเป็น
trigger_wordไม่บังคับ
create_masksไม่บังคับ
stepsไม่บังคับ
is_styleไม่บังคับ
is_input_format_already_preprocessedไม่บังคับ
data_archive_formatไม่บังคับ
เอาต์พุต
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "flux-lora-fast-training",
"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": 2000,
"usd": "2.00",
"charged": 2000,
"refunded": 0
},
"input": {
"images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"output": {
"diffusers_lora_file": {
"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
},
"config_file": {
"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
},
"debug_preprocessed_output": {
"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
}
},
"outputs": [
{
"type": "file",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"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"
}
}
ฟิลด์ของเอาต์พุต
- diffusers_lora_file
- object {url, content_type, file_name, file_size}URL ที่ชี้ไปยังน้ำหนัก LoRA ที่ฝึกแล้วในรูปแบบ diffusers
- config_file
- object {url, content_type, file_name, file_size}URL ของไฟล์การกำหนดค่าการฝึก
- debug_preprocessed_output
- object {url, content_type, file_name, file_size} | nullURL ที่ใช้ค้นหารูปภาพหลังการประมวลผลล่วงหน้า
โมเดลเพิ่มเติม: การฝึกโมเดล
สำหรับเอเจนต์ AI: หน้า Markdown นี้อยู่ที่ https://doitong.com/th/developers/models/flux-lora-fast-training.md. โมเดลและคู่มือทั้งหมด: https://doitong.com/developers/llms.txt