{
  "aboutHtml": "<p>Seedream 5.0 Pro là mô hình tạo ảnh đa phương thức của ByteDance Seed dành cho công việc hình ảnh chuyên nghiệp. Mô hình kết hợp tạo ảnh mới với chỉnh sửa dựa trên tham chiếu, chú trọng cấu trúc thiết kế lẫn diện mạo. Nhà sản xuất tổ chức phiên bản quanh bốn thế mạnh: đồ họa nhiều thông tin, chỉnh sửa tương tác, hình ảnh chân thực và tạo nội dung đa ngôn ngữ tự nhiên. Giao diện tạo ảnh được tài liệu mô tả trả về một ảnh hoàn chỉnh; chuỗi ảnh liên quan, tìm kiếm và đầu ra truyền dòng thuộc các quy trình phiên bản khác. Tối ưu lời nhắc có chế độ standard và fast, trong đó fast đánh đổi một phần chất lượng để giảm thời gian tạo.</p><p>Thông tin phức tạp trong một ảnh Pro có thể chuyển yêu cầu dài thành infographic, áp phích hoặc ý tưởng giao diện hình ảnh. Chuẩn bị nội dung thực tế trước chỉ dẫn phong cách: nhãn, giá trị, mối quan hệ đã duyệt và thứ tự đọc thông tin. Sau đó xác định bố cục, điểm tập trung chính, kiểu chữ và minh họa hỗ trợ. Với trưng bày bảo tàng, cung cấp tên hiện vật cùng ba mô tả đã duyệt, yêu cầu một minh họa bên cạnh mỗi mô tả và chỉ rõ tiêu đề nào nổi bật nhất. Đối chiếu thứ bậc và câu chữ hoàn thiện với yêu cầu, đặc biệt là phần chữ phụ nhỏ.</p><p>Đầu ra này hữu ích cho hình ảnh lớp học, giải thích kỹ thuật, hình minh họa thuyết trình và khám phá bố cục sản phẩm ban đầu. Ảnh giao diện được tạo giúp truyền đạt ý tưởng trực quan; giữ điều khiển và văn bản thực tế trong nguồn thiết kế có thể chỉnh sửa khi cần phát triển thành sản phẩm hoạt động. Với infographic, giữ bảng hoặc ghi chú gốc cùng ảnh để người thiết kế xác minh và sửa từng dữ kiện.</p><p>Hướng dẫn vị trí cho thay đổi cục bộ Chỉnh sửa tương tác thêm thông tin vị trí vào chỉ dẫn. Đánh dấu hoặc chọn vùng liên quan, nêu thay đổi và xác định đặc điểm xung quanh phải giữ. Nhà sản xuất mô tả điểm, vùng chọn lasso hoặc hộp và phác thảo là cách truyền đạt vị trí. Với ý tưởng nội thất, chỉ đánh dấu ghế và yêu cầu vật liệu khác trong khi giữ máy quay, sàn, tường và bóng đổ gần đó. Với ảnh sản phẩm, xác định vùng nhãn thay vì yêu cầu thiết kế lại cả vật thể trên diện rộng.</p><p>Khả năng chỉnh sửa của Pro gồm thay màu và vật liệu, thêm hoặc bỏ vật thể, dựng từ phác thảo và kết hợp yếu tố từ nhiều tham chiếu. Giao vai trò cho từng tham chiếu: bố cục nền, vật thể thay thế, vật liệu hoặc bảng màu. Ví dụ, cung cấp căn phòng, mẫu vải và tham chiếu ghế, rồi yêu cầu chiếc ghế tại vị trí đã đánh dấu với vải được áp dụng. So sánh kết quả với mọi tham chiếu, chú ý tỷ lệ, điểm gắn và chiếu sáng. Khi dùng phác thảo thô, gắn nhãn vùng và cho mô hình biết nét vẽ có nên giữ trong ảnh cuối không.</p><p>Tách và phối lại các yếu tố hình ảnh Nhà sản xuất minh họa tách ảnh thành lớp độc lập, với thành phần trong suốt và nội dung nền được phục hồi. Cách này hữu ích cho bố cục cần sắp xếp lại: xác định tiêu đề, chủ thể chính và trang trí cần tách, rồi kiểm tra từng yếu tố kết quả trong công cụ thiết kế. Giữ ảnh nền để so sánh. Xem mép, chi tiết thiếu và vùng nền từng bị chủ thể gốc che trước khi di chuyển hoặc thay thế các yếu tố. Tách lớp là quy trình xử lý ảnh riêng; yêu cầu nhiều ảnh hoàn chỉnh không liên quan là tác vụ khác. Trong quy trình lớp của nhà sản xuất, cần một ảnh JPEG hoặc PNG: tối đa 30 MB, 262,144–36,000,000 pixel và tỷ lệ từ 1:16–16:1. Kết quả có ảnh nền và tối đa 16 lớp PNG có alpha, kèm tên, mô tả, thứ tự xếp và hộp vị trí từng lớp. Kích thước lớp dùng 1K, 1.5K, 2K hoặc thiết lập tự động giữ tỷ lệ nguồn.</p><p>Ánh sáng, vật liệu và chân dung chân thực Pro chú trọng ảnh chụp và hình ảnh do máy tính tạo, gồm ánh sáng, cách bề mặt phản ứng và kết cấu da. Một yêu cầu hữu ích mô tả cảnh vật lý thay vì chỉ dùng tính từ: chủ thể, vị trí máy quay, ánh sáng chính, nền và vật liệu cần phản xạ hoặc truyền sáng. Với ý tưởng nội thất, chỉ rõ khung là kim loại xước, kính trong hay gỗ sơn, rồi giải thích ánh sáng. Với xử lý chân dung, mô tả thay đổi mong muốn và giữ đặc điểm khuôn mặt, tư thế quan trọng. Kiểm tra da, tay, phản chiếu và ranh giới vật liệu ở kích thước xem cuối. Tùy chọn nền trong suốt của nhà sản xuất áp dụng cho chỉnh sửa ảnh với đúng một đầu vào đã có kênh alpha; đầu ra trong suốt phải là PNG. Nó tách biệt với tạo ảnh nền không trong suốt thông thường.</p><p>Hình ảnh đa ngôn ngữ Mô hình hỗ trợ lời nhắc và chữ được hiển thị tự nhiên bằng nhiều ngôn ngữ phổ biến, gồm tiếng Trung, Anh, Pháp, Đức, Nga, Nhật, Hàn, Tây Ban Nha và Ả Rập. Cung cấp chính xác câu chữ đã duyệt, chỉ rõ ngôn ngữ và hướng đọc, đồng thời xác định vùng chứa chữ. Với áp phích bản địa hóa, giữ bố cục và hình ảnh nhất quán trong khi đưa tiêu đề và nội dung phụ riêng. Nhờ người đọc ngôn ngữ đó kiểm tra kết quả, gồm dấu, ký tự nối, ngắt dòng và nhãn nhỏ.</p><p>Chuẩn bị sản phẩm hữu ích Bắt đầu từ ảnh dự định: đồ họa giàu dữ liệu, áp phích bản địa hóa, ý tưởng hình ảnh hoặc ảnh nguồn được sửa chính xác. Cung cấp nội dung và tham chiếu cần cho đúng công việc, rồi đối chiếu kết quả với tài sản nguồn và thay đổi yêu cầu. Quy trình tạo của nhà sản xuất nhận tối đa 10 tham chiếu ở định dạng JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC hoặc HEIF, mỗi ảnh tối đa 30 MB, cả hai cạnh trên 14 pixel, tổng 196–36,000,000 pixel và tỷ lệ từ 1:16 đến 16:1. Đầu ra là JPEG hoặc PNG, có các lựa chọn 1K, 1.5K và 2K, mặc định 2K; kích thước tùy chỉnh cần tổng 921,600–4,624,220 pixel và cùng khoảng tỷ lệ. Kết quả ảnh có thể là dữ liệu mã hóa hoặc liên kết tải hết hạn trong 24 giờ. Nhà sản xuất xác định hiển thị chữ nhỏ và tính nhất quán của chỉnh sửa ở cấp pixel vẫn là những lĩnh vực cần cải thiện. Kiểm tra kỹ nhãn dày đặc và vùng không thay đổi, ngay cả khi bố cục tổng thể trông thuyết phục.</p>",
  "aboutText": "Seedream 5.0 Pro là mô hình tạo ảnh đa phương thức của ByteDance Seed dành cho công việc hình ảnh chuyên nghiệp. Mô hình kết hợp tạo ảnh mới với chỉnh sửa dựa trên tham chiếu, chú trọng cấu trúc thiết kế lẫn diện mạo. Nhà sản xuất tổ chức phiên bản quanh bốn thế mạnh: đồ họa nhiều thông tin, chỉnh sửa tương tác, hình ảnh chân thực và tạo nội dung đa ngôn ngữ tự nhiên. Giao diện tạo ảnh được tài liệu mô tả trả về một ảnh hoàn chỉnh; chuỗi ảnh liên quan, tìm kiếm và đầu ra truyền dòng thuộc các quy trình phiên bản khác. Tối ưu lời nhắc có chế độ standard và fast, trong đó fast đánh đổi một phần chất lượng để giảm thời gian tạo.\n\nThông tin phức tạp trong một ảnh\nPro có thể chuyển yêu cầu dài thành infographic, áp phích hoặc ý tưởng giao diện hình ảnh. Chuẩn bị nội dung thực tế trước chỉ dẫn phong cách: nhãn, giá trị, mối quan hệ đã duyệt và thứ tự đọc thông tin. Sau đó xác định bố cục, điểm tập trung chính, kiểu chữ và minh họa hỗ trợ. Với trưng bày bảo tàng, cung cấp tên hiện vật cùng ba mô tả đã duyệt, yêu cầu một minh họa bên cạnh mỗi mô tả và chỉ rõ tiêu đề nào nổi bật nhất. Đối chiếu thứ bậc và câu chữ hoàn thiện với yêu cầu, đặc biệt là phần chữ phụ nhỏ.\n\nĐầu ra này hữu ích cho hình ảnh lớp học, giải thích kỹ thuật, hình minh họa thuyết trình và khám phá bố cục sản phẩm ban đầu. Ảnh giao diện được tạo giúp truyền đạt ý tưởng trực quan; giữ điều khiển và văn bản thực tế trong nguồn thiết kế có thể chỉnh sửa khi cần phát triển thành sản phẩm hoạt động. Với infographic, giữ bảng hoặc ghi chú gốc cùng ảnh để người thiết kế xác minh và sửa từng dữ kiện.\n\nHướng dẫn vị trí cho thay đổi cục bộ\nChỉnh sửa tương tác thêm thông tin vị trí vào chỉ dẫn. Đánh dấu hoặc chọn vùng liên quan, nêu thay đổi và xác định đặc điểm xung quanh phải giữ. Nhà sản xuất mô tả điểm, vùng chọn lasso hoặc hộp và phác thảo là cách truyền đạt vị trí. Với ý tưởng nội thất, chỉ đánh dấu ghế và yêu cầu vật liệu khác trong khi giữ máy quay, sàn, tường và bóng đổ gần đó. Với ảnh sản phẩm, xác định vùng nhãn thay vì yêu cầu thiết kế lại cả vật thể trên diện rộng.\n\nKhả năng chỉnh sửa của Pro gồm thay màu và vật liệu, thêm hoặc bỏ vật thể, dựng từ phác thảo và kết hợp yếu tố từ nhiều tham chiếu. Giao vai trò cho từng tham chiếu: bố cục nền, vật thể thay thế, vật liệu hoặc bảng màu. Ví dụ, cung cấp căn phòng, mẫu vải và tham chiếu ghế, rồi yêu cầu chiếc ghế tại vị trí đã đánh dấu với vải được áp dụng. So sánh kết quả với mọi tham chiếu, chú ý tỷ lệ, điểm gắn và chiếu sáng. Khi dùng phác thảo thô, gắn nhãn vùng và cho mô hình biết nét vẽ có nên giữ trong ảnh cuối không.\n\nTách và phối lại các yếu tố hình ảnh\nNhà sản xuất minh họa tách ảnh thành lớp độc lập, với thành phần trong suốt và nội dung nền được phục hồi. Cách này hữu ích cho bố cục cần sắp xếp lại: xác định tiêu đề, chủ thể chính và trang trí cần tách, rồi kiểm tra từng yếu tố kết quả trong công cụ thiết kế. Giữ ảnh nền để so sánh. Xem mép, chi tiết thiếu và vùng nền từng bị chủ thể gốc che trước khi di chuyển hoặc thay thế các yếu tố. Tách lớp là quy trình xử lý ảnh riêng; yêu cầu nhiều ảnh hoàn chỉnh không liên quan là tác vụ khác. Trong quy trình lớp của nhà sản xuất, cần một ảnh JPEG hoặc PNG: tối đa 30 MB, 262,144–36,000,000 pixel và tỷ lệ từ 1:16–16:1. Kết quả có ảnh nền và tối đa 16 lớp PNG có alpha, kèm tên, mô tả, thứ tự xếp và hộp vị trí từng lớp. Kích thước lớp dùng 1K, 1.5K, 2K hoặc thiết lập tự động giữ tỷ lệ nguồn.\n\nÁnh sáng, vật liệu và chân dung chân thực\nPro chú trọng ảnh chụp và hình ảnh do máy tính tạo, gồm ánh sáng, cách bề mặt phản ứng và kết cấu da. Một yêu cầu hữu ích mô tả cảnh vật lý thay vì chỉ dùng tính từ: chủ thể, vị trí máy quay, ánh sáng chính, nền và vật liệu cần phản xạ hoặc truyền sáng. Với ý tưởng nội thất, chỉ rõ khung là kim loại xước, kính trong hay gỗ sơn, rồi giải thích ánh sáng. Với xử lý chân dung, mô tả thay đổi mong muốn và giữ đặc điểm khuôn mặt, tư thế quan trọng. Kiểm tra da, tay, phản chiếu và ranh giới vật liệu ở kích thước xem cuối. Tùy chọn nền trong suốt của nhà sản xuất áp dụng cho chỉnh sửa ảnh với đúng một đầu vào đã có kênh alpha; đầu ra trong suốt phải là PNG. Nó tách biệt với tạo ảnh nền không trong suốt thông thường.\n\nHình ảnh đa ngôn ngữ\nMô hình hỗ trợ lời nhắc và chữ được hiển thị tự nhiên bằng nhiều ngôn ngữ phổ biến, gồm tiếng Trung, Anh, Pháp, Đức, Nga, Nhật, Hàn, Tây Ban Nha và Ả Rập. Cung cấp chính xác câu chữ đã duyệt, chỉ rõ ngôn ngữ và hướng đọc, đồng thời xác định vùng chứa chữ. Với áp phích bản địa hóa, giữ bố cục và hình ảnh nhất quán trong khi đưa tiêu đề và nội dung phụ riêng. Nhờ người đọc ngôn ngữ đó kiểm tra kết quả, gồm dấu, ký tự nối, ngắt dòng và nhãn nhỏ.\n\nChuẩn bị sản phẩm hữu ích\nBắt đầu từ ảnh dự định: đồ họa giàu dữ liệu, áp phích bản địa hóa, ý tưởng hình ảnh hoặc ảnh nguồn được sửa chính xác. Cung cấp nội dung và tham chiếu cần cho đúng công việc, rồi đối chiếu kết quả với tài sản nguồn và thay đổi yêu cầu. Quy trình tạo của nhà sản xuất nhận tối đa 10 tham chiếu ở định dạng JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC hoặc HEIF, mỗi ảnh tối đa 30 MB, cả hai cạnh trên 14 pixel, tổng 196–36,000,000 pixel và tỷ lệ từ 1:16 đến 16:1. Đầu ra là JPEG hoặc PNG, có các lựa chọn 1K, 1.5K và 2K, mặc định 2K; kích thước tùy chỉnh cần tổng 921,600–4,624,220 pixel và cùng khoảng tỷ lệ. Kết quả ảnh có thể là dữ liệu mã hóa hoặc liên kết tải hết hạn trong 24 giờ. Nhà sản xuất xác định hiển thị chữ nhỏ và tính nhất quán của chỉnh sửa ở cấp pixel vẫn là những lĩnh vực cần cải thiện. Kiểm tra kỹ nhãn dày đặc và vùng không thay đổi, ngay cả khi bố cục tổng thể trông thuyết phục.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "966fc75a432a6b23fe2d95c68c2cb7a650fda9e1c331170fdf684b9bdf1cb0f1",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "vi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance Seed: Seedream 5.0 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>ByteDance Seed /</span><code>bytedance-seed/seedream-5-0-pro</code><button type=\"button\" id=\"copy-id\">Sao chép ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Các phần của thẻ mô hình\"><button type=\"button\" data-card-jump=\"overview\">Bắt đầu</button><button type=\"button\" data-card-jump=\"methods\">Đầu vào &amp; phương thức</button><button type=\"button\" data-card-jump=\"pricing\">Bảng giá</button><button type=\"button\" data-card-jump=\"examples\">Ví dụ</button><button type=\"button\" data-card-jump=\"results\">Kết quả</button><button type=\"button\" data-card-jump=\"aliases\">Bí danh</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Phương thức API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|images|/v1/images/generations|bytedance-seed%2Fseedream-5-0-pro\">Ảnh</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Bắt đầu</h3><p class=\"mdesc-full\">Seedream 5.0 Pro tạo và chỉnh sửa ảnh với bố cục đồ hoạ thông tin dày đặc, thay đổi cục bộ được định hướng theo không gian, tách lớp và kết cấu nhiếp ảnh chân thực. Khả năng tạo ảnh đa ngôn ngữ gốc hỗ trợ áp phích bản địa hoá và ý tưởng thiết kế có nhiều chữ trên ảnh.</p><dl class=\"card-io\" data-card-io><div><dt>Đầu vào được chấp nhận</dt><dd>Văn bản · Ảnh</dd></div><div><dt>Kết quả</dt><dd>Ảnh</dd></div></dl><details class=\"card-about\"><summary>Về mô hình</summary><p class=\"note-s\" data-model-method-boundary>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.</p><div class=\"mabout\" id=\"m-about\"><p>Seedream 5.0 Pro là mô hình tạo ảnh đa phương thức của ByteDance Seed dành cho công việc hình ảnh chuyên nghiệp. Mô hình kết hợp tạo ảnh mới với chỉnh sửa dựa trên tham chiếu, chú trọng cấu trúc thiết kế lẫn diện mạo. Nhà sản xuất tổ chức phiên bản quanh bốn thế mạnh: đồ họa nhiều thông tin, chỉnh sửa tương tác, hình ảnh chân thực và tạo nội dung đa ngôn ngữ tự nhiên. Giao diện tạo ảnh được tài liệu mô tả trả về một ảnh hoàn chỉnh; chuỗi ảnh liên quan, tìm kiếm và đầu ra truyền dòng thuộc các quy trình phiên bản khác. Tối ưu lời nhắc có chế độ standard và fast, trong đó fast đánh đổi một phần chất lượng để giảm thời gian tạo.</p><p>Thông tin phức tạp trong một ảnh Pro có thể chuyển yêu cầu dài thành infographic, áp phích hoặc ý tưởng giao diện hình ảnh. Chuẩn bị nội dung thực tế trước chỉ dẫn phong cách: nhãn, giá trị, mối quan hệ đã duyệt và thứ tự đọc thông tin. Sau đó xác định bố cục, điểm tập trung chính, kiểu chữ và minh họa hỗ trợ. Với trưng bày bảo tàng, cung cấp tên hiện vật cùng ba mô tả đã duyệt, yêu cầu một minh họa bên cạnh mỗi mô tả và chỉ rõ tiêu đề nào nổi bật nhất. Đối chiếu thứ bậc và câu chữ hoàn thiện với yêu cầu, đặc biệt là phần chữ phụ nhỏ.</p><p>Đầu ra này hữu ích cho hình ảnh lớp học, giải thích kỹ thuật, hình minh họa thuyết trình và khám phá bố cục sản phẩm ban đầu. Ảnh giao diện được tạo giúp truyền đạt ý tưởng trực quan; giữ điều khiển và văn bản thực tế trong nguồn thiết kế có thể chỉnh sửa khi cần phát triển thành sản phẩm hoạt động. Với infographic, giữ bảng hoặc ghi chú gốc cùng ảnh để người thiết kế xác minh và sửa từng dữ kiện.</p><p>Hướng dẫn vị trí cho thay đổi cục bộ Chỉnh sửa tương tác thêm thông tin vị trí vào chỉ dẫn. Đánh dấu hoặc chọn vùng liên quan, nêu thay đổi và xác định đặc điểm xung quanh phải giữ. Nhà sản xuất mô tả điểm, vùng chọn lasso hoặc hộp và phác thảo là cách truyền đạt vị trí. Với ý tưởng nội thất, chỉ đánh dấu ghế và yêu cầu vật liệu khác trong khi giữ máy quay, sàn, tường và bóng đổ gần đó. Với ảnh sản phẩm, xác định vùng nhãn thay vì yêu cầu thiết kế lại cả vật thể trên diện rộng.</p><p>Khả năng chỉnh sửa của Pro gồm thay màu và vật liệu, thêm hoặc bỏ vật thể, dựng từ phác thảo và kết hợp yếu tố từ nhiều tham chiếu. Giao vai trò cho từng tham chiếu: bố cục nền, vật thể thay thế, vật liệu hoặc bảng màu. Ví dụ, cung cấp căn phòng, mẫu vải và tham chiếu ghế, rồi yêu cầu chiếc ghế tại vị trí đã đánh dấu với vải được áp dụng. So sánh kết quả với mọi tham chiếu, chú ý tỷ lệ, điểm gắn và chiếu sáng. Khi dùng phác thảo thô, gắn nhãn vùng và cho mô hình biết nét vẽ có nên giữ trong ảnh cuối không.</p><p>Tách và phối lại các yếu tố hình ảnh Nhà sản xuất minh họa tách ảnh thành lớp độc lập, với thành phần trong suốt và nội dung nền được phục hồi. Cách này hữu ích cho bố cục cần sắp xếp lại: xác định tiêu đề, chủ thể chính và trang trí cần tách, rồi kiểm tra từng yếu tố kết quả trong công cụ thiết kế. Giữ ảnh nền để so sánh. Xem mép, chi tiết thiếu và vùng nền từng bị chủ thể gốc che trước khi di chuyển hoặc thay thế các yếu tố. Tách lớp là quy trình xử lý ảnh riêng; yêu cầu nhiều ảnh hoàn chỉnh không liên quan là tác vụ khác. Trong quy trình lớp của nhà sản xuất, cần một ảnh JPEG hoặc PNG: tối đa 30 MB, 262,144–36,000,000 pixel và tỷ lệ từ 1:16–16:1. Kết quả có ảnh nền và tối đa 16 lớp PNG có alpha, kèm tên, mô tả, thứ tự xếp và hộp vị trí từng lớp. Kích thước lớp dùng 1K, 1.5K, 2K hoặc thiết lập tự động giữ tỷ lệ nguồn.</p><p>Ánh sáng, vật liệu và chân dung chân thực Pro chú trọng ảnh chụp và hình ảnh do máy tính tạo, gồm ánh sáng, cách bề mặt phản ứng và kết cấu da. Một yêu cầu hữu ích mô tả cảnh vật lý thay vì chỉ dùng tính từ: chủ thể, vị trí máy quay, ánh sáng chính, nền và vật liệu cần phản xạ hoặc truyền sáng. Với ý tưởng nội thất, chỉ rõ khung là kim loại xước, kính trong hay gỗ sơn, rồi giải thích ánh sáng. Với xử lý chân dung, mô tả thay đổi mong muốn và giữ đặc điểm khuôn mặt, tư thế quan trọng. Kiểm tra da, tay, phản chiếu và ranh giới vật liệu ở kích thước xem cuối. Tùy chọn nền trong suốt của nhà sản xuất áp dụng cho chỉnh sửa ảnh với đúng một đầu vào đã có kênh alpha; đầu ra trong suốt phải là PNG. Nó tách biệt với tạo ảnh nền không trong suốt thông thường.</p><p>Hình ảnh đa ngôn ngữ Mô hình hỗ trợ lời nhắc và chữ được hiển thị tự nhiên bằng nhiều ngôn ngữ phổ biến, gồm tiếng Trung, Anh, Pháp, Đức, Nga, Nhật, Hàn, Tây Ban Nha và Ả Rập. Cung cấp chính xác câu chữ đã duyệt, chỉ rõ ngôn ngữ và hướng đọc, đồng thời xác định vùng chứa chữ. Với áp phích bản địa hóa, giữ bố cục và hình ảnh nhất quán trong khi đưa tiêu đề và nội dung phụ riêng. Nhờ người đọc ngôn ngữ đó kiểm tra kết quả, gồm dấu, ký tự nối, ngắt dòng và nhãn nhỏ.</p><p>Chuẩn bị sản phẩm hữu ích Bắt đầu từ ảnh dự định: đồ họa giàu dữ liệu, áp phích bản địa hóa, ý tưởng hình ảnh hoặc ảnh nguồn được sửa chính xác. Cung cấp nội dung và tham chiếu cần cho đúng công việc, rồi đối chiếu kết quả với tài sản nguồn và thay đổi yêu cầu. Quy trình tạo của nhà sản xuất nhận tối đa 10 tham chiếu ở định dạng JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC hoặc HEIF, mỗi ảnh tối đa 30 MB, cả hai cạnh trên 14 pixel, tổng 196–36,000,000 pixel và tỷ lệ từ 1:16 đến 16:1. Đầu ra là JPEG hoặc PNG, có các lựa chọn 1K, 1.5K và 2K, mặc định 2K; kích thước tùy chỉnh cần tổng 921,600–4,624,220 pixel và cùng khoảng tỷ lệ. Kết quả ảnh có thể là dữ liệu mã hóa hoặc liên kết tải hết hạn trong 24 giờ. Nhà sản xuất xác định hiển thị chữ nhỏ và tính nhất quán của chỉnh sửa ở cấp pixel vẫn là những lĩnh vực cần cải thiện. Kiểm tra kỹ nhãn dày đặc và vùng không thay đổi, ngay cả khi bố cục tổng thể trông thuyết phục.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Có trên Ailoot · đầu vào &amp; phương thức</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Ảnh</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Đầu vào</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Đầu ra</dt><dd><code>image</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Trường</th><th>Loại</th><th>Yêu cầu</th><th>Giá trị &amp; giới hạn</th><th>Mặc định</th></tr></thead><tbody><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>bytedance-seed/seedream-5-0-pro</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>Độ dài tối thiểu: 1</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>1K, 2K</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>1:1, 1:2, 2:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 9:19.5, 19.5:9, 9:20, 20:9, 9:21, 21:9, auto</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">n</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>integer</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>Tối thiểu: 1</div><div>Tối đa: 1</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>array</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>Số mục tối thiểu: 0</div><div>Số mục tối đa: 14</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Tham số phương thức và vòng đời</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Tham số</th><th>Hợp đồng</th></tr></thead><tbody><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>content_type</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>application/json</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>required</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>model, prompt</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>material_types</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>text, image</td></tr></tbody></table></div><p>Vòng đời: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · 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</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Bảng giá</h3><div class=\"card-result-process\" data-billing-basis><h5>Cách tính phí cuối cùng</h5><p class=\"note-s\">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í.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>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.</p><dl data-price-conditions><dt>Chế độ nhanh</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ nhanh</span></dd><dt>Chế độ Flex</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ flex</span></dd><dt>Mức độ suy luận tối đa</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa</span></dd></dl></div><div data-declared-tariff-pricing><h4>Mức phí ước tính để so sánh</h4><h4>Giá theo cấu hình</h4><p class=\"note-s\">Đố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ế.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Số lượng dự báo</th><th>Đơn vị tính phí</th><th>Phí</th></tr></thead><tbody><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Giá cơ sở cho token</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>Mức phí cơ bản</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>—</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>—</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Token đầu vào · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>ảnh đầu vào</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>—</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>mỗi ảnh đầu vào</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · ảnh đầu vào · Ước tính chỉ để so sánh</span> <b>$0.006</b> <span class=\"price-unit\">mỗi ảnh đầu vào</span></div></td></tr><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>ảnh đầu ra</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>—</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>mỗi ảnh đầu ra</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu ra · ảnh đầu ra · Ước tính chỉ để so sánh</span> <b>$0.09</b> <span class=\"price-unit\">mỗi ảnh đầu ra</span></div></td></tr><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Chi phí tạo ước tính</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>ước tính cho một lần tạo</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>—</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh</span> <b>$0.09</b> <span class=\"price-unit\">ước tính trước khi tạo</span></div><p class=\"note-s\">Ướ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.</p></td></tr></tbody></table></div></div><p class=\"note-s\">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. <a href=\"/docs/vi/billing/reserve/\">Cách hoạt động của cơ chế tạm giữ và quyết toán →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Ví dụ yêu cầu</h3><h4>Ailoot Ultra · Ảnh</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Các phiên bản mã\"><button class=\"cg-tab\" id=\"model-code-1126-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1126-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1126-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1126-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np={&#39;model&#39;: &#39;bytedance-seed/seedream-5-0-pro&#39;, &#39;prompt&#39;: &#39;a red panda astronaut floating in space, studio lighting&#39;}\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(&quot;No completed images; retain the full response&quot;)\n    for index, item in enumerate(items):\n        encoded=item.get(&quot;b64_json&quot;)\n        uri=item.get(&quot;url&quot;, &quot;&quot;)\n        if not encoded and uri.startswith(&quot;data:image/&quot;):\n            header, separator, encoded=uri.partition(&quot;,&quot;)\n            if not separator or &quot;;base64&quot; not in header: raise SystemExit(&quot;Unsupported image data URI&quot;)\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(&quot;https://api.ailoot.ai&quot;,uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=&quot;https&quot; or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(&quot;Invalid returned image URL&quot;)\n            owned=parsed.netloc==&quot;api.ailoot.ai&quot; and parsed.path.startswith(&quot;/v1/media/assets/&quot;) and parsed.path.endswith(&quot;/content&quot;)\n            args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,uri]\n            if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n            temporary=Path(f&quot;image-{index}.bin&quot;)\n            subprocess.run(args+[&quot;-o&quot;,str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(&quot;Image has neither bytes nor URL&quot;)\n        if not raw: raise SystemExit(&quot;Empty image result&quot;)\n        ext=&quot;png&quot; if raw.startswith(b&quot;\\x89PNG&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;svg&quot; if raw.lstrip().startswith((b&quot;&lt;svg&quot;,b&quot;&lt;?xml&quot;)) else &quot;bin&quot;\n        Path(f&quot;image-{index}.{ext}&quot;).write_bytes(raw)\n    print(&quot;Every returned image saved; complete response metadata retained&quot;)\nsave_images(json.loads(Path(&quot;result.json&quot;).read_text())[&quot;data&quot;])\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Nhận và lưu kết quả</h3><h4>Ailoot Ultra · Ảnh</h4><p class=\"note-s\">Tải xuống từng ảnh trả về hoặc lưu nội dung Base64 của ảnh</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Lượt đọc nội dung khác</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Các phiên bản mã\"><button class=\"cg-tab\" id=\"model-code-1127-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1127-panel-0\" aria-selected=\"true\" tabindex=\"0\">Đọc tài nguyên hiện có thuộc về bạn</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1127-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1127-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Lưu tất cả kết quả đã hoàn tất</h5><p class=\"note-s\">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.</p><p class=\"note-s\">Giữ lại toàn bộ phản hồi và các header, mọi đầu ra thực tế, các định danh gốc đã trả về và mọi trường usage. Khôi phục thao tác gốc mà không gửi lại yêu cầu tạo.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Nếu cần kiểm tra phản hồi gốc</h5><p class=\"note-s\">Giữ lại X-Client-Request-ID đã trả về để đối soát. Chỉ truy xuất theo các giá trị task_id/asset_id thực tế đã trả về hoặc từ thư viện nội dung đa phương tiện thuộc quyền sở hữu của bạn; tuyệt đối không tạo URL tác vụ từ ID thao tác và không gửi lại yêu cầu tạo.</p></div><details class=\"card-about\" data-output-fields><summary>Trường phản hồi</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Trường</th><th>Loại</th></tr></thead><tbody><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">created</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Bí danh</h3><h4>Bí danh mô hình</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=bytedance-seed%2Fseedream-5-0-pro&amp;route=Ultra&amp;caller=bytedance-seed%2Fseedream-5-0-pro&amp;fmt=images\"><code>bytedance-seed/seedream-5-0-pro</code></a></span></p><h4>Bí danh đường dẫn phương thức</h4><p class=\"note-s\"><code>/v1/images</code></p><h4>ID gọi liên quan</h4><p class=\"note-s\"><a href=\"#m=bytedance-seed%2Fseedream-5-0-pro&amp;route=Ultra&amp;caller=bytedance-seed%2Fseedream-5-0-pro&amp;fmt=images\"><code>bytedance-seed/seedream-5-0-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance-seed/seedream-5-0-pro",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "bytedance-seed/seedream-5-0-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|bytedance-seed%2Fseedream-5-0-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "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í.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại X-Client-Request-ID đã trả về để đối soát. Chỉ truy xuất theo các giá trị task_id/asset_id thực tế đã trả về hoặc từ thư viện nội dung đa phương tiện thuộc quyền sở hữu của bạn; tuyệt đối không tạo URL tác vụ từ ID thao tác và không gửi lại yêu cầu tạo."
            },
            "outputs": {
              "all_results": "Giữ lại toàn bộ phản hồi và các header, mọi đầu ra thực tế, các định danh gốc đã trả về và mọi trường usage. Khôi phục thao tác gốc mà không gửi lại yêu cầu tạo.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "bytedance-seed/seedream-5-0-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K",
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "1:2",
                  "2:1",
                  "2:3",
                  "3:2",
                  "3:4",
                  "4:3",
                  "4:5",
                  "5:4",
                  "9:16",
                  "16:9",
                  "9:19.5",
                  "19.5:9",
                  "9:20",
                  "20:9",
                  "9:21",
                  "21:9",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 14,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "1:2",
                    "2:1",
                    "2:3",
                    "3:2",
                    "3:4",
                    "4:3",
                    "4:5",
                    "5:4",
                    "9:16",
                    "16:9",
                    "9:19.5",
                    "19.5:9",
                    "9:20",
                    "20:9",
                    "9:21",
                    "21:9",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 14,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "bytedance-seed/seedream-5-0-pro"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                },
                "resolution": {
                  "enum": [
                    "1K",
                    "2K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "bytedance-seed/seedream-5-0-pro",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "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",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "ảnh đầu vào",
            "units": [
              {
                "amount": "0.006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.006",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Ướ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.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Chi phí tạo ước tính",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'bytedance-seed/seedream-5-0-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        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\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Ảnh",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0.006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.006",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "bytedance-seed/seedream-5-0-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input",
            "label": "input image",
            "native_amount_usd_per_unit": "0.006",
            "native_quantity": 1,
            "public_unit_label": "per input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.09",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.09",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.09",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.09",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "bytedance-seed/seedream-5-0-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "e189743e5acdddb03d4072106b581b7588e13c9e8a4e0fee6bec65de3ae363e9",
    "input_html_sha256": "cb17a4e99b0de6930db5acb41366ea3c940e19cee660102cc2c3c1b01836e3da",
    "private_audit_sha256": "58da6d8773a327effc2914d46ee0f9c73ddb5db8f4e25ed2113e23dfd38b52e7",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/bytedance-seed-seedream-5-0-pro/",
    "description": "Seedream 5.0 Pro tạo và chỉnh sửa ảnh với bố cục đồ hoạ thông tin dày đặc, thay đổi cục bộ được định hướng theo không gian, tách lớp và kết cấu nhiếp ảnh chân thực. Khả năng tạo ảnh đa ngôn ngữ gốc hỗ trợ áp phích bản địa hoá và ý tưởng thiết kế có nhiều chữ trên ảnh.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/bytedance-seed-seedream-5-0-pro/index.md",
    "title": "ByteDance Seed: Seedream 5.0 Pro — Ailoot",
    "url": "https://ailoot.ai/models/vi/bytedance-seed-seedream-5-0-pro/"
  },
  "rawModel": {
    "about": "Seedream 5.0 Pro là mô hình tạo ảnh đa phương thức của ByteDance Seed dành cho công việc hình ảnh chuyên nghiệp. Mô hình kết hợp tạo ảnh mới với chỉnh sửa dựa trên tham chiếu, chú trọng cấu trúc thiết kế lẫn diện mạo. Nhà sản xuất tổ chức phiên bản quanh bốn thế mạnh: đồ họa nhiều thông tin, chỉnh sửa tương tác, hình ảnh chân thực và tạo nội dung đa ngôn ngữ tự nhiên. Giao diện tạo ảnh được tài liệu mô tả trả về một ảnh hoàn chỉnh; chuỗi ảnh liên quan, tìm kiếm và đầu ra truyền dòng thuộc các quy trình phiên bản khác. Tối ưu lời nhắc có chế độ standard và fast, trong đó fast đánh đổi một phần chất lượng để giảm thời gian tạo.\n\nThông tin phức tạp trong một ảnh\nPro có thể chuyển yêu cầu dài thành infographic, áp phích hoặc ý tưởng giao diện hình ảnh. Chuẩn bị nội dung thực tế trước chỉ dẫn phong cách: nhãn, giá trị, mối quan hệ đã duyệt và thứ tự đọc thông tin. Sau đó xác định bố cục, điểm tập trung chính, kiểu chữ và minh họa hỗ trợ. Với trưng bày bảo tàng, cung cấp tên hiện vật cùng ba mô tả đã duyệt, yêu cầu một minh họa bên cạnh mỗi mô tả và chỉ rõ tiêu đề nào nổi bật nhất. Đối chiếu thứ bậc và câu chữ hoàn thiện với yêu cầu, đặc biệt là phần chữ phụ nhỏ.\n\nĐầu ra này hữu ích cho hình ảnh lớp học, giải thích kỹ thuật, hình minh họa thuyết trình và khám phá bố cục sản phẩm ban đầu. Ảnh giao diện được tạo giúp truyền đạt ý tưởng trực quan; giữ điều khiển và văn bản thực tế trong nguồn thiết kế có thể chỉnh sửa khi cần phát triển thành sản phẩm hoạt động. Với infographic, giữ bảng hoặc ghi chú gốc cùng ảnh để người thiết kế xác minh và sửa từng dữ kiện.\n\nHướng dẫn vị trí cho thay đổi cục bộ\nChỉnh sửa tương tác thêm thông tin vị trí vào chỉ dẫn. Đánh dấu hoặc chọn vùng liên quan, nêu thay đổi và xác định đặc điểm xung quanh phải giữ. Nhà sản xuất mô tả điểm, vùng chọn lasso hoặc hộp và phác thảo là cách truyền đạt vị trí. Với ý tưởng nội thất, chỉ đánh dấu ghế và yêu cầu vật liệu khác trong khi giữ máy quay, sàn, tường và bóng đổ gần đó. Với ảnh sản phẩm, xác định vùng nhãn thay vì yêu cầu thiết kế lại cả vật thể trên diện rộng.\n\nKhả năng chỉnh sửa của Pro gồm thay màu và vật liệu, thêm hoặc bỏ vật thể, dựng từ phác thảo và kết hợp yếu tố từ nhiều tham chiếu. Giao vai trò cho từng tham chiếu: bố cục nền, vật thể thay thế, vật liệu hoặc bảng màu. Ví dụ, cung cấp căn phòng, mẫu vải và tham chiếu ghế, rồi yêu cầu chiếc ghế tại vị trí đã đánh dấu với vải được áp dụng. So sánh kết quả với mọi tham chiếu, chú ý tỷ lệ, điểm gắn và chiếu sáng. Khi dùng phác thảo thô, gắn nhãn vùng và cho mô hình biết nét vẽ có nên giữ trong ảnh cuối không.\n\nTách và phối lại các yếu tố hình ảnh\nNhà sản xuất minh họa tách ảnh thành lớp độc lập, với thành phần trong suốt và nội dung nền được phục hồi. Cách này hữu ích cho bố cục cần sắp xếp lại: xác định tiêu đề, chủ thể chính và trang trí cần tách, rồi kiểm tra từng yếu tố kết quả trong công cụ thiết kế. Giữ ảnh nền để so sánh. Xem mép, chi tiết thiếu và vùng nền từng bị chủ thể gốc che trước khi di chuyển hoặc thay thế các yếu tố. Tách lớp là quy trình xử lý ảnh riêng; yêu cầu nhiều ảnh hoàn chỉnh không liên quan là tác vụ khác. Trong quy trình lớp của nhà sản xuất, cần một ảnh JPEG hoặc PNG: tối đa 30 MB, 262,144–36,000,000 pixel và tỷ lệ từ 1:16–16:1. Kết quả có ảnh nền và tối đa 16 lớp PNG có alpha, kèm tên, mô tả, thứ tự xếp và hộp vị trí từng lớp. Kích thước lớp dùng 1K, 1.5K, 2K hoặc thiết lập tự động giữ tỷ lệ nguồn.\n\nÁnh sáng, vật liệu và chân dung chân thực\nPro chú trọng ảnh chụp và hình ảnh do máy tính tạo, gồm ánh sáng, cách bề mặt phản ứng và kết cấu da. Một yêu cầu hữu ích mô tả cảnh vật lý thay vì chỉ dùng tính từ: chủ thể, vị trí máy quay, ánh sáng chính, nền và vật liệu cần phản xạ hoặc truyền sáng. Với ý tưởng nội thất, chỉ rõ khung là kim loại xước, kính trong hay gỗ sơn, rồi giải thích ánh sáng. Với xử lý chân dung, mô tả thay đổi mong muốn và giữ đặc điểm khuôn mặt, tư thế quan trọng. Kiểm tra da, tay, phản chiếu và ranh giới vật liệu ở kích thước xem cuối. Tùy chọn nền trong suốt của nhà sản xuất áp dụng cho chỉnh sửa ảnh với đúng một đầu vào đã có kênh alpha; đầu ra trong suốt phải là PNG. Nó tách biệt với tạo ảnh nền không trong suốt thông thường.\n\nHình ảnh đa ngôn ngữ\nMô hình hỗ trợ lời nhắc và chữ được hiển thị tự nhiên bằng nhiều ngôn ngữ phổ biến, gồm tiếng Trung, Anh, Pháp, Đức, Nga, Nhật, Hàn, Tây Ban Nha và Ả Rập. Cung cấp chính xác câu chữ đã duyệt, chỉ rõ ngôn ngữ và hướng đọc, đồng thời xác định vùng chứa chữ. Với áp phích bản địa hóa, giữ bố cục và hình ảnh nhất quán trong khi đưa tiêu đề và nội dung phụ riêng. Nhờ người đọc ngôn ngữ đó kiểm tra kết quả, gồm dấu, ký tự nối, ngắt dòng và nhãn nhỏ.\n\nChuẩn bị sản phẩm hữu ích\nBắt đầu từ ảnh dự định: đồ họa giàu dữ liệu, áp phích bản địa hóa, ý tưởng hình ảnh hoặc ảnh nguồn được sửa chính xác. Cung cấp nội dung và tham chiếu cần cho đúng công việc, rồi đối chiếu kết quả với tài sản nguồn và thay đổi yêu cầu. Quy trình tạo của nhà sản xuất nhận tối đa 10 tham chiếu ở định dạng JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC hoặc HEIF, mỗi ảnh tối đa 30 MB, cả hai cạnh trên 14 pixel, tổng 196–36,000,000 pixel và tỷ lệ từ 1:16 đến 16:1. Đầu ra là JPEG hoặc PNG, có các lựa chọn 1K, 1.5K và 2K, mặc định 2K; kích thước tùy chỉnh cần tổng 921,600–4,624,220 pixel và cùng khoảng tỷ lệ. Kết quả ảnh có thể là dữ liệu mã hóa hoặc liên kết tải hết hạn trong 24 giờ. Nhà sản xuất xác định hiển thị chữ nhỏ và tính nhất quán của chỉnh sửa ở cấp pixel vẫn là những lĩnh vực cần cải thiện. Kiểm tra kỹ nhãn dày đặc và vùng không thay đổi, ngay cả khi bố cục tổng thể trông thuyết phục.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance Seed",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.09",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.09",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Giá theo cấu hình được trình bày đầy đủ trong phần chi tiết."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "bytedance-seed/seedream-5-0-pro",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "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í.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại X-Client-Request-ID đã trả về để đối soát. Chỉ truy xuất theo các giá trị task_id/asset_id thực tế đã trả về hoặc từ thư viện nội dung đa phương tiện thuộc quyền sở hữu của bạn; tuyệt đối không tạo URL tác vụ từ ID thao tác và không gửi lại yêu cầu tạo."
            },
            "outputs": {
              "all_results": "Giữ lại toàn bộ phản hồi và các header, mọi đầu ra thực tế, các định danh gốc đã trả về và mọi trường usage. Khôi phục thao tác gốc mà không gửi lại yêu cầu tạo.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "bytedance-seed/seedream-5-0-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K",
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "1:2",
                  "2:1",
                  "2:3",
                  "3:2",
                  "3:4",
                  "4:3",
                  "4:5",
                  "5:4",
                  "9:16",
                  "16:9",
                  "9:19.5",
                  "19.5:9",
                  "9:20",
                  "20:9",
                  "9:21",
                  "21:9",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 14,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "1:2",
                    "2:1",
                    "2:3",
                    "3:2",
                    "3:4",
                    "4:3",
                    "4:5",
                    "5:4",
                    "9:16",
                    "16:9",
                    "9:19.5",
                    "19.5:9",
                    "9:20",
                    "20:9",
                    "9:21",
                    "21:9",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 14,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "bytedance-seed/seedream-5-0-pro"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                },
                "resolution": {
                  "enum": [
                    "1K",
                    "2K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "bytedance-seed/seedream-5-0-pro",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "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",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "ảnh đầu vào",
            "units": [
              {
                "amount": "0.006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.006",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Ướ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.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Chi phí tạo ước tính",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'bytedance-seed/seedream-5-0-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        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\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Ảnh",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0.006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.006",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.09",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.09",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "bytedance-seed/seedream-5-0-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input",
            "label": "input image",
            "native_amount_usd_per_unit": "0.006",
            "native_quantity": 1,
            "public_unit_label": "per input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.09",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.09",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.09",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.09",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "bytedance-seed/seedream-5-0-pro",
        "request_model_id": "bytedance-seed/seedream-5-0-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance Seed: Seedream 5.0 Pro",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.09,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.09,
      "varies": false
    },
    "short": "Seedream 5.0 Pro tạo và chỉnh sửa ảnh với bố cục đồ hoạ thông tin dày đặc, thay đổi cục bộ được định hướng theo không gian, tách lớp và kết cấu nhiếp ảnh chân thực. Khả năng tạo ảnh đa ngôn ngữ gốc hỗ trợ áp phích bản địa hoá và ý tưởng thiết kế có nhiều chữ trên ảnh."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Seedream 5.0 Pro tạo và chỉnh sửa ảnh với bố cục đồ hoạ thông tin dày đặc, thay đổi cục bộ được định hướng theo không gian, tách lớp và kết cấu nhiếp ảnh chân thực. Khả năng tạo ảnh đa ngôn ngữ gốc hỗ trợ áp phích bản địa hoá và ý tưởng thiết kế có nhiều chữ trên ảnh.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d4089ad6ebeb1daaa6278c314583e160cee8ce0127f51f7dee96781387a68df4",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "5bd1362b43fc66265ca7567cf21f6530e9512ab710b9cfa6731d30e6c4b5fefa"
}
