mô hình

Recraft: Recraft V4.1 Flash

Markdown · JSON

Recraft: Recraft V4.1 Flash

Recraft V4.1 Flash tạo ảnh raster 1K từ văn bản để lặp lại ý tưởng hình ảnh nhanh chóng. Mô hình hỗ trợ nhiếp ảnh, chân dung, cảnh phức tạp và ý tưởng logo, với đầu ra PNG hoặc WebP không mất dữ liệu cùng lựa chọn màu ưu tiên rõ ràng.

Về mô hình

Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.

Recraft V4.1 Flash là mô hình văn bản thành ảnh của Recraft cho lặp lại nhanh và công việc hình ảnh khối lượng lớn. Nhà sản xuất xác định nhiếp ảnh, chân dung, không khí, cảnh phức tạp, chất liệu hỗn hợp và ý tưởng logo là ứng dụng mạnh. Bản yêu cầu viết trở thành ảnh raster có thể so sánh với định hướng sáng tạo khác trước khi phát triển tài nguyên cuối cùng. Flash là thành viên cụ thể của dòng V4.1, với kích thước đầu ra và tuỳ chọn hỗ trợ riêng.

Đầu ra gốc thuộc nhóm ảnh raster 1K của Recraft. Chọn khung vẽ theo vị trí sử dụng dự định: minh hoạ ngang cho đầu trang, chân dung dọc hoặc hình ảnh vuông cho thẻ gọn. Định dạng đầu ra là WebP không mất dữ liệu và PNG.

Bắt đầu bản yêu cầu bằng chủ thể chính và mục đích thị giác, rồi mô tả khung hình, bối cảnh, ánh sáng và chất liệu nghệ thuật. Với ý tưởng sản phẩm, chỉ dẫn hữu ích là: “Radio nhỏ màu kem trên bàn gỗ óc chó, góc nhìn ba phần tư từ phía trước, ánh sáng cửa sổ dịu, ảnh biên tập yên tĩnh, khoảng trống rộng bên trái.” Với minh hoạ, xác định ngôn ngữ hình khối, bảng màu và quan hệ giữa các yếu tố. Giữ chi tiết xác định ý tưởng rõ ràng thay vì thêm tính từ không liên quan. Hạn mức câu lệnh được công bố của Flash là tối đa 10,000 ký tự, nên có thể mô tả cảnh chi tiết khi tác vụ cần.

Các tuỳ chọn của nhà sản xuất gồm màu ưu tiên và màu nền mong muốn. Có thể cung cấp seed để có kết quả tái lập, và giao diện tạo ảnh công bố từ một đến sáu ảnh trong yêu cầu. Những tuỳ chọn này hỗ trợ tác vụ so sánh hữu ích: giữ chủ thể và bố cục ổn định, đổi một định hướng thị giác và kiểm tra ảnh kết quả theo bố cục dự định. Màu ưu tiên mô tả kết quả yêu cầu; đối chiếu màu thương hiệu quan trọng với tài nguyên hoàn thiện trước khi kết hợp vào hệ thống thiết kế có sẵn.

Flash tạo đồ hoạ raster. Ý tưởng logo có thể giúp chọn hình dáng, tâm trạng hoặc cách sắp xếp, còn đường dẫn có thể chỉnh sửa thuộc các mô hình Vector được nêu tên riêng. Flash cũng không có biến thể Pro. Toàn bộ dòng V4.1 cung cấp các lựa chọn riêng đó khi chỉnh sửa vector hoặc chi tiết độ phân giải cao hơn là trọng tâm sản phẩm bàn giao. Nhà sản xuất mô tả bước tinh chỉnh về sau để đưa bản nháp đã chọn tới ảnh chi tiết hơn; bước đó là thao tác riêng thay vì kích thước đầu ra gốc Flash khác.

Phiên bản này không hỗ trợ đầu vào ảnh thành ảnh, phong cách tuỳ chỉnh, mã định danh phong cách, khớp phong cách hoặc ảnh tham chiếu phong cách. Giao diện được công bố cũng loại trừ câu lệnh phủ định và tuỳ chọn bố cục chữ rõ ràng. Đưa diện mạo và bố cục yêu cầu vào bản yêu cầu khẳng định. Khi chữ là phần của ý tưởng, đặt nội dung dự định trong dấu ngoặc kép và kiểm tra chữ được kết xuất; dùng bước dàn trang riêng khi kiểu chữ và vị trí chính xác là thiết yếu.

Kết quả thực tế từ Flash là định hướng thị giác đã chọn với bản yêu cầu rõ, tỷ lệ khung hình phù hợp và tệp raster dùng được. Đối chiếu chủ thể, khung hình, nền và chi tiết quan trọng ở kích thước ảnh sẽ xuất hiện. Lưu câu lệnh thành công và tệp đã chọn cùng nhau để bước sáng tạo tiếp theo theo đúng định hướng đã chọn. Lặp lại nhanh giúp khám phá thiết kế; đầu ra vector gốc, khớp phong cách tham chiếu và độ phân giải của phiên bản V4.1 khác vẫn là lựa chọn mô hình riêng.

Ailoot Ultra · Ảnh POST /v1/images/generations recraft/recraft-v4.1-flash

recraft/recraft-v4.1-flash

Recraft /recraft/recraft-v4.1-flash

Bắt đầu

Recraft V4.1 Flash tạo ảnh raster 1K từ văn bản để lặp lại ý tưởng hình ảnh nhanh chóng. Mô hình hỗ trợ nhiếp ảnh, chân dung, cảnh phức tạp và ý tưởng logo, với đầu ra PNG hoặc WebP không mất dữ liệu cùng lựa chọn màu ưu tiên rõ ràng.

Đầu vào được chấp nhận
Văn bản
Kết quả
Ảnh

Có trên Ailoot · đầu vào & phương thức

Ailoot Ultra · Ảnh POST /v1/images/generations
Đầu vào
text
Đầu ra
image
Định dạng đầu ra
Tệp ảnh
Số đầu ra
1 đầu ra
TrườngLoạiYêu cầuGiá trị & giới hạnMặc định
TrườngmodelLoạistringYêu cầuBắt buộcGiá trị & giới hạn
recraft/recraft-v4.1-flash
Mặc định—
TrườngpromptLoạistringYêu cầuBắt buộcGiá trị & giới hạn
Độ dài tối thiểu: 1
Điều kiện: Câu lệnh UTF8 không rỗng. Không tự đặt giới hạn ký tự chung cho toàn bộ sản phẩm của nhà sản xuất.
Mặc định—
TrườngnLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
1
Mặc định1
Trườngresponse_formatLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
url, b64_json
Mặc định—
TrườngstreamLoạibooleanYêu cầuKhông bắt buộcGiá trị & giới hạn
false
Mặc địnhfalse
Tổ hợp tư liệu đầu vào

Văn bản thành ảnh · Bắt buộc: prompt

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốcontent_typeHợp đồngapplication/json
Tham sốrequiredHợp đồngmodel, prompt
Tham sốmaterial_typesHợp đồngtext
Tham sốoptionalHợp đồngn, response_format, stream
Tham sốnHợp đồng1
Tham sốstreamHợp đồngfalse
Tham sốresponse_formatHợp đồngurl, b64_json
Tham sốreference_imagesHợp đồngfalse
Tham sốeditHợp đồngfalse
Tham sốoutput_format_optionalHợp đồng
Tham sốresolution_controlHợp đồngnull
Tham sốaspect_ratio_controlHợp đồngnull
Tham sốother_fieldsHợp đồngbị từ chối, trừ định tuyến nội bộ chính xác của nhà cung cấp đã cố định

Vòng đời: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tạo một ảnh từ câu lệnh.

Lưu mọi mục dữ liệu; url/b64_json là các dạng mã hóa kết quả.

Bảng giá

Cách tính phí cuối cùng

Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.

Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.

Chế độ nhanh
Chưa chỉ định Khi chọn chế độ nhanh
Chế độ Flex
Chưa chỉ định Khi chọn chế độ flex
Mức độ suy luận tối đa
Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa

Mức phí ước tính để so sánh

Giá theo cấu hình

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

Cấu hìnhBiểu mức phíSố lượng dự báoĐơn vị tính phíPhí
Cấu hìnhGiá cơ sở cho tokenBiểu mức phíMức phí cơ bảnSố lượng dự báo—Đơn vị tính phí—Phí
Đầu vào · Token đầu vào · Ước tính chỉ để so sánh — / 1K token
Đầu ra · Token đầu ra · Ước tính chỉ để so sánh — / 1K token
Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token
Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh — / 1K token
Cấu hìnhUltraBiểu mức phí—Số lượng dự báo—Đơn vị tính phímỗi ảnh đầu raPhí
Đầu ra · Đầu ra hình ảnh · Ước tính chỉ để so sánh $0.014 mỗi ảnh đầu ra
Cấu hìnhChi phí tạo ước tínhBiểu mức phí—Số lượng dự báoước tính cho một lần tạoĐơn vị tính phí—Phí
Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh $0.014 ước tính trước khi tạo

Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất.

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →

Chi tiết giá cước tham chiếu

Biểu tham chiếu cấp mô hình không thay đổi việc chọn phương thức, báo giá hoặc khoản phí. Khoản phí đang áp dụng dùng mức phí phương thức Ailoot đã chọn.

Các cấu hình giá ảnh

Giá theo cấu hình

Cấu hìnhĐiều kiện tính phíPhí
Cấu hìnhẢnh đầu raĐiều kiện tính phíKhông khai báo biến thể giá.Phí
Đầu ra · Ảnh đầu ra $0.014 mỗi ảnh

Các mục niêm yết tương đương mô tả cùng một khoản phí; không cộng thêm phí thứ hai.

Ví dụ yêu cầu

Ailoot Ultra · Ảnh

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "recraft/recraft-v4.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

request={'model': 'recraft/recraft-v4.1-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "recraft/recraft-v4.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"};
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

Nhận và lưu kết quả

Ailoot Ultra · Ảnh

Tải xuống từng ảnh trả về hoặc lưu nội dung Base64 của ảnh

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Lưu tất cả kết quả đã hoàn tất

Lưu mọi ảnh đã hoàn tất; truy xuất từng URL trả về hoặc giải mã nội dung Base64 của ảnh.

Lưu mọi phần tử dữ liệu. Giải mã từng b64_json hoặc tải xuống từ mọi URL có chữ ký đã trả về. Chọn phần mở rộng tệp dựa trên MIME/nội dung byte thực tế.

Nếu cần kiểm tra phản hồi gốc

Nếu kết quả tạo hoặc chỉnh sửa ảnh cần được kiểm tra, giữ lại operation_id/X-Client-Request-ID gốc và thông tin kết quả đã trả về. Khôi phục các kết quả hiện có thuộc quyền sở hữu của bạn qua thư viện nội dung đa phương tiện bằng các giá trị task_id hoặc asset_id thực tế. Không gửi lại yêu cầu tạo/chỉnh sửa ảnh hoặc tạo URL truy vấn trạng thái từ operation_id.

Trường phản hồi
TrườngLoại
TrườngcreatedLoạiinteger
Trườngdata[].urlLoạistring
Trườngdata[].b64_jsonLoạibase64 string
TrườngusageLoạiobject
Lỗi và bước tiếp theo
Phản hồiĐiều kiệnBước tiếp theo
Phản hồi400 · invalid_request_errorĐiều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệBước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.
Phản hồiserver_errorĐiều kiệnPhản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm traBước tiếp theoGiữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo.

Bí danh

Bí danh mô hình

Ailoot Ultra recraft/recraft-v4.1-flash

Bí danh đường dẫn phương thức

Dùng các đường dẫn phương thức hiển thị ở trên.

ID gọi liên quan

recraft/recraft-v4.1-flash

FAQ · Recraft: Recraft V4.1 Flash
Có những đầu vào và kết quả nào?

POST /v1/images/generations · recraft/recraft-v4.1-flash: text → image

Yêu cầu sử dụng những trường nào?

POST /v1/images/generations · recraft/recraft-v4.1-flash: model, prompt, n, response_format, stream

Xem thêm chi tiết

Kết nối Ailoot với Claude Code, OpenCode, Hermes hoặc ứng dụng của bạn.

Công ty và danh mục dự án của công ty

Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.

Mua token với giá ưu đãi.

Ưu đãi thuê bao cho nhu cầu thường xuyên. Mã khuyến mãi giảm đến 50% khi mua token.

Thuê bao
Chọn gói ưu đãi cho các yêu cầu thường xuyên của bạn.
Mã giảm đến 50%
Nhập mã khi mua. Giá được tính lại theo chương trình đang áp dụng.
Chi phí trong lịch sử
Mô hình, token và số tiền được lưu cho mỗi yêu cầu.

Chọn gói thuê bao · Xem giá mô hình

Kết nối API vào sản phẩm bạn đang bán.

SaaS, ứng dụng và bot — theo đề nghị giao kết chính thức và thỏa thuận cấp phép Ailoot. Muốn bán lại, hãy yêu cầu giấy phép bán lại.

Ứng dụng thương mại
Tích hợp tạo văn bản, ảnh, video và âm thanh vào các tính năng trả phí của dịch vụ.
Giấy phép bán lại
Gửi mô tả dự án và cách cung cấp quyền truy cập. Yêu cầu điều khoản sử dụng và bán lại bằng văn bản.
Tài liệu trên website
Đề nghị giao kết, thỏa thuận cấp phép và chính sách xử lý dữ liệu có sẵn trước khi kết nối.

Yêu cầu giấy phép bán lại · Đề nghị giao kết và thỏa thuận cấp phép