{
  "aboutHtml": "<p>HY Image 3.5 Preview là mô hình tạo và chỉnh sửa ảnh hợp nhất của Tencent. Mô hình nhận bản yêu cầu viết với ảnh tham chiếu tuỳ chọn và hỗ trợ tiếp tục cùng tác vụ thị giác qua nhiều lượt. Kết quả là ảnh cho cảnh, bố cục hoặc chỉnh sửa đã xác định. Ví dụ của Tencent gồm ảnh sản phẩm, áp phích chiến dịch, hình ảnh thiết kế giao diện và ý tưởng chất liệu. Chọn tác vụ cần ảnh mới, bố cục có tham chiếu định hướng hay thay đổi có trọng tâm trên kết quả có sẵn.</p><p>Nhà sản xuất xác định phiên bản là hy-image-v3.5-preview và công bố giới hạn câu lệnh 100K token. Đầu vào là hội thoại theo trình tự thời gian chứa văn bản và ảnh, với tin nhắn cuối cùng của người dùng cung cấp chỉ dẫn hiện tại. Tin nhắn trước cung cấp ngữ cảnh cho chỉnh sửa lặp lại. Điều này khác quy trình một câu lệnh của HY Image 3.0 và giới hạn đầu vào riêng của nó. Với tác vụ thiết kế liên tục, giữ bản yêu cầu liên quan, vai trò tham chiếu và ảnh đã chọn để chỉ dẫn tiếp theo phát triển từ trạng thái thị giác dự định.</p><p>Chuẩn bị ảnh tham chiếu PNG hoặc JPEG/JPG. Đầu vào tham chiếu có thể chứa tối đa 20 ảnh, mỗi ảnh không lớn hơn 20 MB trong quy trình được công bố. Có thể cung cấp ảnh dưới dạng tài nguyên được tham chiếu hoặc đã mã hoá. Nếu hội thoại mang quá nhiều ảnh, hướng dẫn nhà sản xuất mô tả cắt bỏ ảnh cũ trước. Giữ bộ tham chiếu đang dùng có trọng tâm thay vì dựa vào mọi ảnh lịch sử còn trong ngữ cảnh. Tuỳ chọn đổi kích thước đầu vào giữ ảnh nhỏ hơn và thu phóng ảnh lớn theo tỷ lệ về diện tích điểm ảnh đích; đích mặc định là 1,048,576 pixel. Giữ đủ chi tiết nhìn thấy cho sản phẩm, chất liệu hoặc bố cục cần định hướng kết quả.</p><p>Kích thước đầu ra có hai cách chuẩn bị riêng. Với tự chọn kích thước, generate_max_pixels đặt diện tích đích: 1,048,576 pixel cho mức 1K, 2,359,296 cho mức 1.5K mặc định hoặc 4,194,304 cho 2K. FAQ của nhà sản xuất nêu thiết lập diện tích đích được cung cấp một mình mặc định tỷ lệ vuông. Khi bỏ qua cả hai tuỳ chọn kích thước, mô hình dùng bản yêu cầu và mức 1.5K mặc định. Các mức đó không tạo thiết lập 4K tự động. Dùng mức diện tích khi ảnh vuông phù hợp tác vụ. Để bản yêu cầu định hướng tỷ lệ ở mức 1.5K mặc định, bỏ cả hai tuỳ chọn kích thước; yêu cầu kích thước rõ khi bố cục cần cỡ dọc hoặc rộng cụ thể.</p><p>Với kích thước chỉ định, nhà sản xuất cho phép các cạnh là số nguyên dương từ 256 đến 8192 pixel, với tổng diện tích không lớn hơn 16,777,216 pixel. Hình vuông 4096 × 4096 đáp ứng giới hạn đó. Khoảng chiều dài cạnh và trần diện tích cùng áp dụng, nên cạnh 8192 pixel không cho phép ảnh 8192 × 8192. Yêu cầu chiều rộng và chiều cao cần thiết rõ ràng khi bố cục cuối cần kích thước cụ thể, thay vì mặc định mức diện tích đích xác định cùng kích thước. Giữ chi tiết dễ bị ảnh hưởng khi cắt và khoảng trống cần có rõ trong câu lệnh.</p><p>Mô hình hỗ trợ chỉnh sửa nhiều lượt qua lịch sử hội thoại trả về. Tencent phân biệt ảnh cuối bàn giao với ảnh trung gian dùng làm ngữ cảnh lần sửa tiếp theo, và ví dụ giữ suy luận của trợ lý, yêu cầu công cụ và kết quả ảnh được tạo khi tiếp tục. Với bố cục sản phẩm, trước tiên xác lập chủ thể và khung hình; rồi yêu cầu đổi ánh sáng hoặc nền mới trong khi chỉ rõ phần cần giữ diện mạo. Lưu kết quả đã chọn cùng lịch sử để lượt tiếp theo làm việc trên ảnh đó thay vì biến thể đã bỏ. Trong quy trình được Tencent công bố, cả liên kết ảnh cuối lẫn ảnh lịch sử hết hạn sau 12 giờ, nên lưu tài nguyên ảnh trước khi dựa vào chúng cho lần sửa về sau.</p><p>Các tuỳ chọn được công bố gồm seed, chú thích thuỷ vân tuỳ chỉnh tối đa 16 ký tự và tăng cường bằng tìm kiếm bên ngoài tuỳ chọn, mặc định tắt. Seed là số nguyên không âm; bằng không hoặc bỏ qua sẽ để nhà sản xuất chọn ngẫu nhiên. Những tuỳ chọn này có mục đích khác chính bản yêu cầu. Với hình ảnh sản phẩm dựa trên tham chiếu, mô tả diện mạo sản phẩm, góc máy, bề mặt, ánh sáng và bố cục dự định, rồi dùng tham chiếu để định hướng chi tiết nhận diện. Với áp phích, đưa thứ bậc và nội dung chính xác thay vì để thông điệp được tự bịa.</p><p>Hướng dẫn thực tế của Tencent khuyến nghị kiểm tra chữ và bố cục, nhất là khi thông số sản phẩm, tên tổ chức hoặc nội dung mang tính dữ kiện khác quan trọng. Kiểm tra ảnh hoàn chỉnh về chủ thể, tỷ lệ, chất liệu, vùng cắt và chữ. Lưu tài nguyên cuối cùng với bản yêu cầu và thiết lập, rồi dùng chỉ dẫn cụ thể gắn với vấn đề nhìn thấy cho lần sửa tiếp theo.</p>",
  "aboutText": "HY Image 3.5 Preview là mô hình tạo và chỉnh sửa ảnh hợp nhất của Tencent. Mô hình nhận bản yêu cầu viết với ảnh tham chiếu tuỳ chọn và hỗ trợ tiếp tục cùng tác vụ thị giác qua nhiều lượt. Kết quả là ảnh cho cảnh, bố cục hoặc chỉnh sửa đã xác định. Ví dụ của Tencent gồm ảnh sản phẩm, áp phích chiến dịch, hình ảnh thiết kế giao diện và ý tưởng chất liệu. Chọn tác vụ cần ảnh mới, bố cục có tham chiếu định hướng hay thay đổi có trọng tâm trên kết quả có sẵn.\n\nNhà sản xuất xác định phiên bản là hy-image-v3.5-preview và công bố giới hạn câu lệnh 100K token. Đầu vào là hội thoại theo trình tự thời gian chứa văn bản và ảnh, với tin nhắn cuối cùng của người dùng cung cấp chỉ dẫn hiện tại. Tin nhắn trước cung cấp ngữ cảnh cho chỉnh sửa lặp lại. Điều này khác quy trình một câu lệnh của HY Image 3.0 và giới hạn đầu vào riêng của nó. Với tác vụ thiết kế liên tục, giữ bản yêu cầu liên quan, vai trò tham chiếu và ảnh đã chọn để chỉ dẫn tiếp theo phát triển từ trạng thái thị giác dự định.\n\nChuẩn bị ảnh tham chiếu PNG hoặc JPEG/JPG. Đầu vào tham chiếu có thể chứa tối đa 20 ảnh, mỗi ảnh không lớn hơn 20 MB trong quy trình được công bố. Có thể cung cấp ảnh dưới dạng tài nguyên được tham chiếu hoặc đã mã hoá. Nếu hội thoại mang quá nhiều ảnh, hướng dẫn nhà sản xuất mô tả cắt bỏ ảnh cũ trước. Giữ bộ tham chiếu đang dùng có trọng tâm thay vì dựa vào mọi ảnh lịch sử còn trong ngữ cảnh. Tuỳ chọn đổi kích thước đầu vào giữ ảnh nhỏ hơn và thu phóng ảnh lớn theo tỷ lệ về diện tích điểm ảnh đích; đích mặc định là 1,048,576 pixel. Giữ đủ chi tiết nhìn thấy cho sản phẩm, chất liệu hoặc bố cục cần định hướng kết quả.\n\nKích thước đầu ra có hai cách chuẩn bị riêng. Với tự chọn kích thước, generate_max_pixels đặt diện tích đích: 1,048,576 pixel cho mức 1K, 2,359,296 cho mức 1.5K mặc định hoặc 4,194,304 cho 2K. FAQ của nhà sản xuất nêu thiết lập diện tích đích được cung cấp một mình mặc định tỷ lệ vuông. Khi bỏ qua cả hai tuỳ chọn kích thước, mô hình dùng bản yêu cầu và mức 1.5K mặc định. Các mức đó không tạo thiết lập 4K tự động. Dùng mức diện tích khi ảnh vuông phù hợp tác vụ. Để bản yêu cầu định hướng tỷ lệ ở mức 1.5K mặc định, bỏ cả hai tuỳ chọn kích thước; yêu cầu kích thước rõ khi bố cục cần cỡ dọc hoặc rộng cụ thể.\n\nVới kích thước chỉ định, nhà sản xuất cho phép các cạnh là số nguyên dương từ 256 đến 8192 pixel, với tổng diện tích không lớn hơn 16,777,216 pixel. Hình vuông 4096 × 4096 đáp ứng giới hạn đó. Khoảng chiều dài cạnh và trần diện tích cùng áp dụng, nên cạnh 8192 pixel không cho phép ảnh 8192 × 8192. Yêu cầu chiều rộng và chiều cao cần thiết rõ ràng khi bố cục cuối cần kích thước cụ thể, thay vì mặc định mức diện tích đích xác định cùng kích thước. Giữ chi tiết dễ bị ảnh hưởng khi cắt và khoảng trống cần có rõ trong câu lệnh.\n\nMô hình hỗ trợ chỉnh sửa nhiều lượt qua lịch sử hội thoại trả về. Tencent phân biệt ảnh cuối bàn giao với ảnh trung gian dùng làm ngữ cảnh lần sửa tiếp theo, và ví dụ giữ suy luận của trợ lý, yêu cầu công cụ và kết quả ảnh được tạo khi tiếp tục. Với bố cục sản phẩm, trước tiên xác lập chủ thể và khung hình; rồi yêu cầu đổi ánh sáng hoặc nền mới trong khi chỉ rõ phần cần giữ diện mạo. Lưu kết quả đã chọn cùng lịch sử để lượt tiếp theo làm việc trên ảnh đó thay vì biến thể đã bỏ. Trong quy trình được Tencent công bố, cả liên kết ảnh cuối lẫn ảnh lịch sử hết hạn sau 12 giờ, nên lưu tài nguyên ảnh trước khi dựa vào chúng cho lần sửa về sau.\n\nCác tuỳ chọn được công bố gồm seed, chú thích thuỷ vân tuỳ chỉnh tối đa 16 ký tự và tăng cường bằng tìm kiếm bên ngoài tuỳ chọn, mặc định tắt. Seed là số nguyên không âm; bằng không hoặc bỏ qua sẽ để nhà sản xuất chọn ngẫu nhiên. Những tuỳ chọn này có mục đích khác chính bản yêu cầu. Với hình ảnh sản phẩm dựa trên tham chiếu, mô tả diện mạo sản phẩm, góc máy, bề mặt, ánh sáng và bố cục dự định, rồi dùng tham chiếu để định hướng chi tiết nhận diện. Với áp phích, đưa thứ bậc và nội dung chính xác thay vì để thông điệp được tự bịa.\n\nHướng dẫn thực tế của Tencent khuyến nghị kiểm tra chữ và bố cục, nhất là khi thông số sản phẩm, tên tổ chức hoặc nội dung mang tính dữ kiện khác quan trọng. Kiểm tra ảnh hoàn chỉnh về chủ thể, tỷ lệ, chất liệu, vùng cắt và chữ. Lưu tài nguyên cuối cùng với bản yêu cầu và thiết lập, rồi dùng chỉ dẫn cụ thể gắn với vấn đề nhìn thấy cho lần sửa tiếp theo.\n\n",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "fd7dd5c8875cd87cfb3362774ce54a6c0103d0b0c1638a255dde8d7b91a421e2",
    "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\">Tencent: Hy Image 3.5 Preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Tencent /</span><code>tencent/hy-image-v3.5-preview</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|tencent%2Fhy-image-v3.5-preview\">Ả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\">HY Image 3.5 Preview kết hợp tạo ảnh từ văn bản, tạo dựa trên tham chiếu và chỉnh sửa nhiều lượt. Tencent công bố tối đa 20 ảnh tham chiếu, tự chọn kích thước và kích thước đầu ra chỉ định tối đa ảnh 4096 × 4096 cho công việc hình ảnh chi tiết.</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>HY Image 3.5 Preview là mô hình tạo và chỉnh sửa ảnh hợp nhất của Tencent. Mô hình nhận bản yêu cầu viết với ảnh tham chiếu tuỳ chọn và hỗ trợ tiếp tục cùng tác vụ thị giác qua nhiều lượt. Kết quả là ảnh cho cảnh, bố cục hoặc chỉnh sửa đã xác định. Ví dụ của Tencent gồm ảnh sản phẩm, áp phích chiến dịch, hình ảnh thiết kế giao diện và ý tưởng chất liệu. Chọn tác vụ cần ảnh mới, bố cục có tham chiếu định hướng hay thay đổi có trọng tâm trên kết quả có sẵn.</p><p>Nhà sản xuất xác định phiên bản là hy-image-v3.5-preview và công bố giới hạn câu lệnh 100K token. Đầu vào là hội thoại theo trình tự thời gian chứa văn bản và ảnh, với tin nhắn cuối cùng của người dùng cung cấp chỉ dẫn hiện tại. Tin nhắn trước cung cấp ngữ cảnh cho chỉnh sửa lặp lại. Điều này khác quy trình một câu lệnh của HY Image 3.0 và giới hạn đầu vào riêng của nó. Với tác vụ thiết kế liên tục, giữ bản yêu cầu liên quan, vai trò tham chiếu và ảnh đã chọn để chỉ dẫn tiếp theo phát triển từ trạng thái thị giác dự định.</p><p>Chuẩn bị ảnh tham chiếu PNG hoặc JPEG/JPG. Đầu vào tham chiếu có thể chứa tối đa 20 ảnh, mỗi ảnh không lớn hơn 20 MB trong quy trình được công bố. Có thể cung cấp ảnh dưới dạng tài nguyên được tham chiếu hoặc đã mã hoá. Nếu hội thoại mang quá nhiều ảnh, hướng dẫn nhà sản xuất mô tả cắt bỏ ảnh cũ trước. Giữ bộ tham chiếu đang dùng có trọng tâm thay vì dựa vào mọi ảnh lịch sử còn trong ngữ cảnh. Tuỳ chọn đổi kích thước đầu vào giữ ảnh nhỏ hơn và thu phóng ảnh lớn theo tỷ lệ về diện tích điểm ảnh đích; đích mặc định là 1,048,576 pixel. Giữ đủ chi tiết nhìn thấy cho sản phẩm, chất liệu hoặc bố cục cần định hướng kết quả.</p><p>Kích thước đầu ra có hai cách chuẩn bị riêng. Với tự chọn kích thước, generate_max_pixels đặt diện tích đích: 1,048,576 pixel cho mức 1K, 2,359,296 cho mức 1.5K mặc định hoặc 4,194,304 cho 2K. FAQ của nhà sản xuất nêu thiết lập diện tích đích được cung cấp một mình mặc định tỷ lệ vuông. Khi bỏ qua cả hai tuỳ chọn kích thước, mô hình dùng bản yêu cầu và mức 1.5K mặc định. Các mức đó không tạo thiết lập 4K tự động. Dùng mức diện tích khi ảnh vuông phù hợp tác vụ. Để bản yêu cầu định hướng tỷ lệ ở mức 1.5K mặc định, bỏ cả hai tuỳ chọn kích thước; yêu cầu kích thước rõ khi bố cục cần cỡ dọc hoặc rộng cụ thể.</p><p>Với kích thước chỉ định, nhà sản xuất cho phép các cạnh là số nguyên dương từ 256 đến 8192 pixel, với tổng diện tích không lớn hơn 16,777,216 pixel. Hình vuông 4096 × 4096 đáp ứng giới hạn đó. Khoảng chiều dài cạnh và trần diện tích cùng áp dụng, nên cạnh 8192 pixel không cho phép ảnh 8192 × 8192. Yêu cầu chiều rộng và chiều cao cần thiết rõ ràng khi bố cục cuối cần kích thước cụ thể, thay vì mặc định mức diện tích đích xác định cùng kích thước. Giữ chi tiết dễ bị ảnh hưởng khi cắt và khoảng trống cần có rõ trong câu lệnh.</p><p>Mô hình hỗ trợ chỉnh sửa nhiều lượt qua lịch sử hội thoại trả về. Tencent phân biệt ảnh cuối bàn giao với ảnh trung gian dùng làm ngữ cảnh lần sửa tiếp theo, và ví dụ giữ suy luận của trợ lý, yêu cầu công cụ và kết quả ảnh được tạo khi tiếp tục. Với bố cục sản phẩm, trước tiên xác lập chủ thể và khung hình; rồi yêu cầu đổi ánh sáng hoặc nền mới trong khi chỉ rõ phần cần giữ diện mạo. Lưu kết quả đã chọn cùng lịch sử để lượt tiếp theo làm việc trên ảnh đó thay vì biến thể đã bỏ. Trong quy trình được Tencent công bố, cả liên kết ảnh cuối lẫn ảnh lịch sử hết hạn sau 12 giờ, nên lưu tài nguyên ảnh trước khi dựa vào chúng cho lần sửa về sau.</p><p>Các tuỳ chọn được công bố gồm seed, chú thích thuỷ vân tuỳ chỉnh tối đa 16 ký tự và tăng cường bằng tìm kiếm bên ngoài tuỳ chọn, mặc định tắt. Seed là số nguyên không âm; bằng không hoặc bỏ qua sẽ để nhà sản xuất chọn ngẫu nhiên. Những tuỳ chọn này có mục đích khác chính bản yêu cầu. Với hình ảnh sản phẩm dựa trên tham chiếu, mô tả diện mạo sản phẩm, góc máy, bề mặt, ánh sáng và bố cục dự định, rồi dùng tham chiếu để định hướng chi tiết nhận diện. Với áp phích, đưa thứ bậc và nội dung chính xác thay vì để thông điệp được tự bịa.</p><p>Hướng dẫn thực tế của Tencent khuyến nghị kiểm tra chữ và bố cục, nhất là khi thông số sản phẩm, tên tổ chức hoặc nội dung mang tính dữ kiện khác quan trọng. Kiểm tra ảnh hoàn chỉnh về chủ thể, tỷ lệ, chất liệu, vùng cắt và chữ. Lưu tài nguyên cuối cùng với bản yêu cầu và thiết lập, rồi dùng chỉ dẫn cụ thể gắn với vấn đề nhìn thấy cho lần sửa tiếp theo.</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>tencent/hy-image-v3.5-preview</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, 1.5K, 2K, 4K</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, 1:4, 2:1, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 9:16, 16:9</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: 20</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>Token ả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>/ 1K token hình ảnh</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu ra · Token ảnh đầu ra · Ước tính chỉ để so sánh</span> <b>$0.0032</b> <span class=\"price-unit\">/ 1K token hình ảnh</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.0131072</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-2641-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2641-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-2641-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2641-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;tencent/hy-image-v3.5-preview&#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-2642-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2642-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-2642-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2642-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=tencent%2Fhy-image-v3.5-preview&amp;route=Ultra&amp;caller=tencent%2Fhy-image-v3.5-preview&amp;fmt=images\"><code>tencent/hy-image-v3.5-preview</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=tencent%2Fhy-image-v3.5-preview&amp;route=Ultra&amp;caller=tencent%2Fhy-image-v3.5-preview&amp;fmt=images\"><code>tencent/hy-image-v3.5-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "tencent/hy-image-v3.5-preview",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "tencent/hy-image-v3.5-preview",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|tencent%2Fhy-image-v3.5-preview",
      "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": [
                  "tencent/hy-image-v3.5-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K",
                  "1.5K",
                  "2K",
                  "4K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "1:2",
                  "1:4",
                  "2:1",
                  "2:3",
                  "3:2",
                  "3:4",
                  "4:1",
                  "4:3",
                  "4:5",
                  "5:4",
                  "9:16",
                  "16:9"
                ],
                "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": 20,
                "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",
                    "1:4",
                    "2:1",
                    "2:3",
                    "3:2",
                    "3:4",
                    "4:1",
                    "4:3",
                    "4:5",
                    "5:4",
                    "9:16",
                    "16:9"
                  ],
                  "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": 20,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "tencent/hy-image-v3.5-preview"
                  ],
                  "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",
                    "1.5K",
                    "2K",
                    "4K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "tencent/hy-image-v3.5-preview",
                "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": "/ 1K image tokens"
            },
            "label": "image output token",
            "units": [
              {
                "amount": "0.0032000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_token",
                "label": "image output token",
                "native_amount_usd_per_unit": "0.0000032",
                "native_quantity": 1,
                "native_unit": "image_output_token",
                "public_unit_label": "/ 1K image tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_token"
              }
            ]
          },
          {
            "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.0131072",
                "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.0131072",
                "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': 'tencent/hy-image-v3.5-preview', '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": "/ 1K image tokens"
            },
            "label": "image output token",
            "units": [
              {
                "amount": "0.0032000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_token",
                "label": "image output token",
                "native_amount_usd_per_unit": "0.0000032",
                "native_quantity": 1,
                "native_unit": "image_output_token",
                "public_unit_label": "/ 1K image tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_token"
              }
            ]
          },
          {
            "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.0131072",
                "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.0131072",
                "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": "tencent/hy-image-v3.5-preview",
        "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.0032000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output_token",
            "label": "image output token",
            "native_amount_usd_per_unit": "0.0000032",
            "native_quantity": 1,
            "native_unit": "image_output_token",
            "public_unit_label": "/ 1K image tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output_token"
          },
          {
            "amount": "0.0131072",
            "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.0131072",
            "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": "tencent/hy-image-v3.5-preview",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4e52e15ea1456ae04f8fb256e94f1be3938d3c11995b503c1e34ec227aab1bc2",
    "input_html_sha256": "e4296d0b19807db421a49ae5a2e788158e53fb33294211e2b105fae39233203d",
    "private_audit_sha256": "75519050ad5e902f2be8e72667ca33b4975e7cf18c95c572373d95c72bad6dac",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/tencent-hy-image-v3-5-preview/",
    "description": "HY Image 3.5 Preview kết hợp tạo ảnh từ văn bản, tạo dựa trên tham chiếu và chỉnh sửa nhiều lượt. Tencent công bố tối đa 20 ảnh tham chiếu, tự chọn kích thước và kích thước đầu ra chỉ định tối đa ảnh 4096 × 4096 cho công việc hình ảnh chi tiết.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/tencent-hy-image-v3-5-preview/index.md",
    "title": "Tencent: Hy Image 3.5 Preview — Ailoot",
    "url": "https://ailoot.ai/models/vi/tencent-hy-image-v3-5-preview/"
  },
  "rawModel": {
    "about": "HY Image 3.5 Preview là mô hình tạo và chỉnh sửa ảnh hợp nhất của Tencent. Mô hình nhận bản yêu cầu viết với ảnh tham chiếu tuỳ chọn và hỗ trợ tiếp tục cùng tác vụ thị giác qua nhiều lượt. Kết quả là ảnh cho cảnh, bố cục hoặc chỉnh sửa đã xác định. Ví dụ của Tencent gồm ảnh sản phẩm, áp phích chiến dịch, hình ảnh thiết kế giao diện và ý tưởng chất liệu. Chọn tác vụ cần ảnh mới, bố cục có tham chiếu định hướng hay thay đổi có trọng tâm trên kết quả có sẵn.\n\nNhà sản xuất xác định phiên bản là hy-image-v3.5-preview và công bố giới hạn câu lệnh 100K token. Đầu vào là hội thoại theo trình tự thời gian chứa văn bản và ảnh, với tin nhắn cuối cùng của người dùng cung cấp chỉ dẫn hiện tại. Tin nhắn trước cung cấp ngữ cảnh cho chỉnh sửa lặp lại. Điều này khác quy trình một câu lệnh của HY Image 3.0 và giới hạn đầu vào riêng của nó. Với tác vụ thiết kế liên tục, giữ bản yêu cầu liên quan, vai trò tham chiếu và ảnh đã chọn để chỉ dẫn tiếp theo phát triển từ trạng thái thị giác dự định.\n\nChuẩn bị ảnh tham chiếu PNG hoặc JPEG/JPG. Đầu vào tham chiếu có thể chứa tối đa 20 ảnh, mỗi ảnh không lớn hơn 20 MB trong quy trình được công bố. Có thể cung cấp ảnh dưới dạng tài nguyên được tham chiếu hoặc đã mã hoá. Nếu hội thoại mang quá nhiều ảnh, hướng dẫn nhà sản xuất mô tả cắt bỏ ảnh cũ trước. Giữ bộ tham chiếu đang dùng có trọng tâm thay vì dựa vào mọi ảnh lịch sử còn trong ngữ cảnh. Tuỳ chọn đổi kích thước đầu vào giữ ảnh nhỏ hơn và thu phóng ảnh lớn theo tỷ lệ về diện tích điểm ảnh đích; đích mặc định là 1,048,576 pixel. Giữ đủ chi tiết nhìn thấy cho sản phẩm, chất liệu hoặc bố cục cần định hướng kết quả.\n\nKích thước đầu ra có hai cách chuẩn bị riêng. Với tự chọn kích thước, generate_max_pixels đặt diện tích đích: 1,048,576 pixel cho mức 1K, 2,359,296 cho mức 1.5K mặc định hoặc 4,194,304 cho 2K. FAQ của nhà sản xuất nêu thiết lập diện tích đích được cung cấp một mình mặc định tỷ lệ vuông. Khi bỏ qua cả hai tuỳ chọn kích thước, mô hình dùng bản yêu cầu và mức 1.5K mặc định. Các mức đó không tạo thiết lập 4K tự động. Dùng mức diện tích khi ảnh vuông phù hợp tác vụ. Để bản yêu cầu định hướng tỷ lệ ở mức 1.5K mặc định, bỏ cả hai tuỳ chọn kích thước; yêu cầu kích thước rõ khi bố cục cần cỡ dọc hoặc rộng cụ thể.\n\nVới kích thước chỉ định, nhà sản xuất cho phép các cạnh là số nguyên dương từ 256 đến 8192 pixel, với tổng diện tích không lớn hơn 16,777,216 pixel. Hình vuông 4096 × 4096 đáp ứng giới hạn đó. Khoảng chiều dài cạnh và trần diện tích cùng áp dụng, nên cạnh 8192 pixel không cho phép ảnh 8192 × 8192. Yêu cầu chiều rộng và chiều cao cần thiết rõ ràng khi bố cục cuối cần kích thước cụ thể, thay vì mặc định mức diện tích đích xác định cùng kích thước. Giữ chi tiết dễ bị ảnh hưởng khi cắt và khoảng trống cần có rõ trong câu lệnh.\n\nMô hình hỗ trợ chỉnh sửa nhiều lượt qua lịch sử hội thoại trả về. Tencent phân biệt ảnh cuối bàn giao với ảnh trung gian dùng làm ngữ cảnh lần sửa tiếp theo, và ví dụ giữ suy luận của trợ lý, yêu cầu công cụ và kết quả ảnh được tạo khi tiếp tục. Với bố cục sản phẩm, trước tiên xác lập chủ thể và khung hình; rồi yêu cầu đổi ánh sáng hoặc nền mới trong khi chỉ rõ phần cần giữ diện mạo. Lưu kết quả đã chọn cùng lịch sử để lượt tiếp theo làm việc trên ảnh đó thay vì biến thể đã bỏ. Trong quy trình được Tencent công bố, cả liên kết ảnh cuối lẫn ảnh lịch sử hết hạn sau 12 giờ, nên lưu tài nguyên ảnh trước khi dựa vào chúng cho lần sửa về sau.\n\nCác tuỳ chọn được công bố gồm seed, chú thích thuỷ vân tuỳ chỉnh tối đa 16 ký tự và tăng cường bằng tìm kiếm bên ngoài tuỳ chọn, mặc định tắt. Seed là số nguyên không âm; bằng không hoặc bỏ qua sẽ để nhà sản xuất chọn ngẫu nhiên. Những tuỳ chọn này có mục đích khác chính bản yêu cầu. Với hình ảnh sản phẩm dựa trên tham chiếu, mô tả diện mạo sản phẩm, góc máy, bề mặt, ánh sáng và bố cục dự định, rồi dùng tham chiếu để định hướng chi tiết nhận diện. Với áp phích, đưa thứ bậc và nội dung chính xác thay vì để thông điệp được tự bịa.\n\nHướng dẫn thực tế của Tencent khuyến nghị kiểm tra chữ và bố cục, nhất là khi thông số sản phẩm, tên tổ chức hoặc nội dung mang tính dữ kiện khác quan trọng. Kiểm tra ảnh hoàn chỉnh về chủ thể, tỷ lệ, chất liệu, vùng cắt và chữ. Lưu tài nguyên cuối cùng với bản yêu cầu và thiết lập, rồi dùng chỉ dẫn cụ thể gắn với vấn đề nhìn thấy cho lần sửa tiếp theo.\n\n",
    "alias_of": null,
    "aliases": [],
    "author": "Tencent",
    "capabilities": {
      "context_length": 100000,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0131072",
            "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.0131072",
            "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": "tencent/hy-image-v3.5-preview",
    "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": [
                  "tencent/hy-image-v3.5-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K",
                  "1.5K",
                  "2K",
                  "4K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "1:2",
                  "1:4",
                  "2:1",
                  "2:3",
                  "3:2",
                  "3:4",
                  "4:1",
                  "4:3",
                  "4:5",
                  "5:4",
                  "9:16",
                  "16:9"
                ],
                "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": 20,
                "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",
                    "1:4",
                    "2:1",
                    "2:3",
                    "3:2",
                    "3:4",
                    "4:1",
                    "4:3",
                    "4:5",
                    "5:4",
                    "9:16",
                    "16:9"
                  ],
                  "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": 20,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "tencent/hy-image-v3.5-preview"
                  ],
                  "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",
                    "1.5K",
                    "2K",
                    "4K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "tencent/hy-image-v3.5-preview",
                "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": "/ 1K image tokens"
            },
            "label": "image output token",
            "units": [
              {
                "amount": "0.0032000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_token",
                "label": "image output token",
                "native_amount_usd_per_unit": "0.0000032",
                "native_quantity": 1,
                "native_unit": "image_output_token",
                "public_unit_label": "/ 1K image tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_token"
              }
            ]
          },
          {
            "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.0131072",
                "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.0131072",
                "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': 'tencent/hy-image-v3.5-preview', '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": "/ 1K image tokens"
            },
            "label": "image output token",
            "units": [
              {
                "amount": "0.0032000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_token",
                "label": "image output token",
                "native_amount_usd_per_unit": "0.0000032",
                "native_quantity": 1,
                "native_unit": "image_output_token",
                "public_unit_label": "/ 1K image tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_token"
              }
            ]
          },
          {
            "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.0131072",
                "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.0131072",
                "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": "tencent/hy-image-v3.5-preview",
        "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.0032000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output_token",
            "label": "image output token",
            "native_amount_usd_per_unit": "0.0000032",
            "native_quantity": 1,
            "native_unit": "image_output_token",
            "public_unit_label": "/ 1K image tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output_token"
          },
          {
            "amount": "0.0131072",
            "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.0131072",
            "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": "tencent/hy-image-v3.5-preview",
        "request_model_id": "tencent/hy-image-v3.5-preview",
        "route_label": "Ultra"
      }
    ],
    "name": "Tencent: Hy Image 3.5 Preview",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.0131072,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.0131072,
      "varies": false
    },
    "short": "HY Image 3.5 Preview kết hợp tạo ảnh từ văn bản, tạo dựa trên tham chiếu và chỉnh sửa nhiều lượt. Tencent công bố tối đa 20 ảnh tham chiếu, tự chọn kích thước và kích thước đầu ra chỉ định tối đa ảnh 4096 × 4096 cho công việc hình ảnh chi tiết."
  },
  "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": "HY Image 3.5 Preview kết hợp tạo ảnh từ văn bản, tạo dựa trên tham chiếu và chỉnh sửa nhiều lượt. Tencent công bố tối đa 20 ảnh tham chiếu, tự chọn kích thước và kích thước đầu ra chỉ định tối đa ảnh 4096 × 4096 cho công việc hình ảnh chi tiết.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "39b01d4130aeba865afb2600d292585fe0919f35ae53618bcade191c32424fd1",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "6486df5d12403d5d59956303f962092f97773e32da0bfbae04574629091cd2a8"
}
