mô hình

Recraft: Recraft V4

Markdown · JSON

Recraft: Recraft V4

Recraft V4 tạo ảnh raster 1K với trọng tâm bố cục, quan hệ màu và định hướng sáng tạo chi tiết. Mô hình bao quát minh hoạ, cảnh chân thực và ý tưởng thiết kế đồ hoạ, với đầu vào phong cách tuỳ chọn và quy trình ảnh thành ảnh riê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 là mô hình raster tiêu chuẩn trong thế hệ V4 của Recraft. Nhà sản xuất nhấn mạnh phán đoán thiết kế: bố cục cân bằng, quan hệ màu thống nhất và chi tiết hỗ trợ ý đồ thị giác. Mô hình có thể làm việc với minh hoạ cách điệu, cảnh nhiếp ảnh và ý tưởng thiết kế đồ hoạ. Dùng khi bản yêu cầu cần ảnh kết hợp lựa chọn thẩm mỹ với độ chính xác câu lệnh, dù khám phá tâm trạng từ chỉ dẫn ngắn hay chỉ định chi tiết bố cục có chủ ý.

Mã mô hình cụ thể là recraftv4. Tài liệu tham chiếu của nhà sản xuất liệt kê đầu ra raster 1K ở WebP không mất dữ liệu hoặc PNG. Ảnh vuông là 1024 × 1024 pixel, 16:9 là 1344 × 768 và 2:3 là 832 × 1280; tỷ lệ được hỗ trợ khác dùng kích thước riêng. V4 Pro là phiên bản raster 2K riêng, còn V4 Vector và Pro Vector trả SVG có thể chỉnh sửa. Chọn đúng biến thể V4 cho sản phẩm bàn giao dự định thay vì kết hợp các thuộc tính đầu ra khác nhau đó.

Hướng dẫn nhà sản xuất phân biệt câu lệnh diễn giải ngắn với định hướng sáng tạo có cấu trúc. Cụm ngắn có thể chừa chỗ khám phá hình thức, tâm trạng và khung hình. Bản yêu cầu có cấu trúc có thể nêu chủ thể, bối cảnh, tư thế, chất liệu, yếu tố phụ, ánh sáng và thứ bậc thị giác. Với minh hoạ kể chuyện, mô tả người đạp xe qua cầu nhỏ, hình khối đơn giản mạnh, màu ấm dịu và chuyển động trái sang phải rõ. Các quyết định nội dung và bố cục này dễ thực hiện hơn danh sách dài tính từ phong cách không liên quan.

Phạm vi V4 gồm minh hoạ, hình ảnh có chiều sâu và hình ảnh chân thực. Hướng dẫn khuyến nghị mô tả logic nét vẽ cho minh hoạ và chất liệu, ánh sáng, máy quay cùng chiều sâu cho ảnh trông 3D. Loại sau vẫn là hình ảnh raster thay vì lưới có thể chỉnh sửa. Với ý tưởng áp phích hoặc bao bì, nêu chữ nào là chính, vị trí và cách ảnh cùng kiểu chữ tương tác. Nhà sản xuất nhấn mạnh chữ ngắn và dài vừa dễ đọc; kiểm tra nội dung và sắp xếp thực tế trong ảnh trả về trước khi dùng.

Tạo ảnh hỗ trợ câu lệnh tối đa 10,000 ký tự, seed ngẫu nhiên, từ một đến sáu đầu ra, màu ưu tiên và màu nền mong muốn. Phong cách tuỳ chỉnh tương thích và ảnh tham chiếu tuỳ chọn có thể định hướng cách thể hiện qua khớp linh hoạt hoặc chính xác. Chọn tham chiếu sạch hoặc bộ thuộc cùng thế giới thị giác, rồi để câu lệnh mô tả chủ thể và cảnh mới. Không bảo đảm khớp màu từ tham chiếu sang đầu ra, nên giữ bảng màu cần thiết rõ ràng và đối chiếu kết quả với nó. Với tạo ảnh theo phong cách tham chiếu, dùng từ một đến mười ảnh PNG, JPG hoặc WebP, tổng không quá 64 MB và mỗi ảnh dưới 20 MB. Mỗi tham chiếu cần cạnh ngắn ít nhất 256 pixel, cạnh dài không quá 4,096 pixel và độ phân giải không quá 16 megapixel. Dùng những tham chiếu này hoặc phong cách đã lưu tương thích, thay vì cả hai.

Thao tác ảnh thành ảnh được công bố kết hợp ảnh có sẵn và câu lệnh, với strength từ 0 đến 1 xác định mức đầu ra mới khác nguồn. Thao tác không nhận tuỳ chọn phong cách V4 trong quy trình đó. Tài liệu tham chiếu tạo ảnh hiện hành cũng loại trừ tên phong cách tuyển chọn, negative_prompt, text_layout, artistic_level và no_text. Chuẩn bị mô tả khẳng định kết quả mong muốn và đánh giá tài nguyên trong bố cục đích. V4 tiêu chuẩn cung cấp diễn giải thiết kế raster tập trung, với phiên bản, định dạng và kích thước đầu ra cụ thể. Với ảnh thành ảnh, cung cấp PNG, JPG, WebP hoặc SVG dưới 20 MB, không quá 16 megapixel, hai cạnh từ 256 đến 4,096 pixel.

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

recraft/recraft-v4

Recraft /recraft/recraft-v4

Bắt đầu

Recraft V4 tạo ảnh raster 1K với trọng tâm bố cục, quan hệ màu và định hướng sáng tạo chi tiết. Mô hình bao quát minh hoạ, cảnh chân thực và ý tưởng thiết kế đồ hoạ, với đầu vào phong cách tuỳ chọn và quy trình ảnh thành ảnh riêng.

Đầu vào được chấp nhận
Văn bản · Ảnh
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, image
Đầu ra
image
Định dạng đầu ra
Tệp ảnh
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
Mặc định—
TrườngpromptLoạistringYêu cầuBắt buộcGiá trị & giới hạn
Độ dài tối thiểu: 1
Mặc định—
TrườngnLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
Tối thiểu: 1
Tối đa: 6
Mặc định—
Trườngaspect_ratioLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
1:1, 4:3, 3:4, 16:9, 9:16, auto
Mặc định—
Trườnginput_referencesLoạiarrayYêu cầuKhông bắt buộcGiá trị & giới hạn
Số mục tối thiểu: 0
Số mục tối đa: 1
Mặc định—
Tổ hợp tư liệu đầu vào

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

reference_guided_image · Bắt buộc: prompt, actual image reference

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, image
Tham sốoptional_controlsHợp đồngn, aspect_ratio, input_references
Tham sốnHợp đồng{"minimum":1,"maximum":6}
Tham sốreference_imagesHợp đồng{"minimum":0,"maximum":1,"source":"nội dung thực tế do khách hàng cung cấp"}
Tham sốprovider_specific_optionsHợp đồngChỉ dùng style/controls/text_layout theo danh sách cho phép chính xác của điểm cuối đã lưu; không tự đoán cấu trúc.

Bí danh phương thức: /v1/images

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}

Ví dụ chỉ dùng câu lệnh giữ nguyên cấu trúc ImageGenerationRequest chính thức.

Giữ lại mọi ảnh được trả về và toàn bộ phản hồi; số lượng đầu ra là số lượng thực tế, không phải n được yêu cầu.

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 · ảnh đầu ra · Ước tính chỉ để so sánh $0.08 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.08 ướ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.08 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={'model': 'recraft/recraft-v4', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

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', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
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", "prompt": "a red panda astronaut floating in space, studio lighting"};
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.

Giữ lại mọi mục dữ liệu và toàn bộ mức sử dụng; tiếp nhận quyền sở hữu và lưu tất cả ảnh thực tế được trả về. Không tự tạo URL hoặc ID.

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

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

/v1/images

ID gọi liên quan

recraft/recraft-v4

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

POST /v1/images/generations · recraft/recraft-v4: text, image → image

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

POST /v1/images/generations · recraft/recraft-v4: model, prompt, n, aspect_ratio, input_references

Áp dụng những giới hạn nào?

POST /v1/images/generations · recraft/recraft-v4: n.minimum: 1; n.maximum: 6

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