{
  "aboutHtml": "<h4>Tính chân thực giàu biểu cảm</h4><p>Krea 2 Large là mô hình lớn hơn trong hai mô hình hình ảnh Krea 2 nguyên bản của Krea, được huấn luyện từ đầu cho phạm vi thị giác rộng. Krea mô tả Large có kích thước hơn gấp đôi Medium và hậu huấn luyện nhẹ hơn: giữ cá tính thô, giàu kết cấu hơn và linh hoạt hơn về phong cách nhiếp ảnh. Thế mạnh dự định gồm ảnh có hạt phim, nhoè chuyển động và dải tương phản được giới hạn có chủ ý, bên cạnh nhiếp ảnh trong trẻo hơn.</p><p>Dùng mô hình cho ý tưởng ảnh biên tập, cảnh sản phẩm, định hướng mỹ thuật chiến dịch và phát triển hình ảnh nơi cá tính ảnh quan trọng ngang chủ thể. Bản yêu cầu hữu ích chỉ định chủ thể, bối cảnh, khung hình, ánh sáng, chất liệu và cách thể hiện nhiếp ảnh. Ví dụ: “Đèn bàn đồng thau xước cạnh sổ vải lanh đóng, nắng chiều thấp, góc cận ba phần tư, hạt nhẹ, tông ấm tiết chế.” Đây là bản yêu cầu hình ảnh; đầu ra là ảnh tĩnh thay vì chuỗi video.</p><h4>Văn bản, ảnh nguồn và tham chiếu thị giác</h4><p>Yêu cầu tạo ảnh cần câu lệnh văn bản, tỷ lệ khung hình và độ phân giải. Ảnh nguồn tuỳ chọn cho phép tạo ảnh từ ảnh: mô hình bắt đầu từ ảnh đó thay vì nhiễu thuần. Cường độ khử nhiễu riêng từ 0 đến 1; 0 giữ đầu vào và 1 thay hoàn toàn, trong khi mặc định được công bố là 0.99. Chuẩn bị ảnh nguồn theo bố cục và nội dung muốn tiếp tục giữ, rồi mô tả biến đổi dự định. Tuỳ chọn này tách biệt với ảnh hưởng của tham chiếu phong cách.</p><p>Tham chiếu phong cách định hướng diện mạo qua ảnh được cung cấp. Lược đồ yêu cầu mô hình nhận tối đa mười tham chiếu, mỗi ảnh có cường độ từ 0 đến 1 và mặc định 0.5. Chọn tham chiếu có mục đích thị giác rõ — như ánh sáng của một ảnh chụp hoặc cách thể hiện bề mặt của ảnh khác — và tránh trộn định hướng không tương thích nếu không nêu thứ bậc rõ. Có thể cung cấp tham chiếu qua địa chỉ ảnh, dữ liệu ảnh đã mã hoá hoặc tài nguyên đã tải lên trước. Lược đồ riêng của mô hình giới hạn chuỗi URI ảnh nguồn và tham chiếu phong cách ở 1,024 ký tự.</p><p>Moodboard gom định hướng thị giác thống nhất thành một tham chiếu dùng lại được. Quy trình của Krea tạo moodboard trước rồi dùng mã định danh đã có khi tạo ảnh; mỗi yêu cầu tạo ảnh nhận một moodboard. Lược đồ dùng ảnh hưởng từ 0 đến 1, mặc định 0.23. Phong cách đã huấn luyện, thường là LoRA, tạo thành tuỳ chọn khác: mỗi phong cách có mã định danh và cường độ từ -2 đến 2. Tham chiếu ảnh, moodboard và phong cách đã huấn luyện là đầu vào riêng, nên chuẩn bị từng loại theo vai trò dự định.</p><h4>Diễn giải câu lệnh và tuỳ chọn hình ảnh</h4><p>Creativity chi phối mở rộng câu lệnh. Thiết lập raw tắt mở rộng; low, medium và high lần lượt thay đổi mức diễn giải được thêm vào bản yêu cầu viết. Lược đồ yêu cầu riêng của mô hình mặc định là low. Dùng raw khi chính nội dung phải mang toàn bộ định hướng, hoặc tăng diễn giải khi khám phá ý tưởng thoáng hơn.</p><p>Intensity, Complexity và Movement là các tuỳ chọn số nguyên độc lập từ -100 đến 100, với 0 trung tính. Intensity thấp tạo cách thể hiện dịu hơn; intensity cao đẩy phong cách mạnh hơn. Complexity thấp ưu tiên bố cục đơn giản hơn, còn complexity cao thêm mật độ. Movement thay đổi năng lượng thị giác, tư thế và chuyển động gợi ra. Nó có thể gợi chuyển động hoặc nhoè trong ảnh tĩnh; không biến yêu cầu thành tạo video. Các tuỳ chọn này không thay đổi hành vi mở rộng câu lệnh của thiết lập creativity.</p><p>Để so sánh có kiểm soát, giữ bản yêu cầu, bộ tham chiếu và seed tuỳ chọn ổn định, mỗi lần đổi một tuỳ chọn hình ảnh. Trình tự thực tế là xác lập bố cục, chọn cách thể hiện nhiếp ảnh, điều chỉnh kết cấu hoặc năng lượng, rồi kiểm tra chi tiết chủ thể. Coi seed là đầu vào tạo ảnh được ghi lại cùng thiết lập đầy đủ, thay vì thay thế việc lưu ảnh hoàn chỉnh.</p><h4>Lựa chọn khung và kết quả hoàn tất</h4><p>Lược đồ tạo ảnh riêng của mô hình cung cấp mức độ phân giải 1K và chín tỷ lệ khung hình: 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, 3:4, 2:3 và 9:16. Chọn tỷ lệ theo vị trí sử dụng dự định trước khi tạo — chẳng hạn bố cục chiến dịch rộng hoặc câu chuyện sản phẩm dọc. Mức 1K là thiết lập tạo ảnh; xuất nâng cao là thao tác đầu ra riêng.</p><p>Quy trình tạo ảnh được công bố của Krea trả tác vụ có thể còn pending. Lấy trạng thái cho đến khi hoàn tất, rồi thu thập các địa chỉ ảnh kết quả. Lưu ảnh cuối cùng với câu lệnh, tham chiếu và thiết lập để tiếp tục phát triển định hướng đã chọn. Kiểm tra chi tiết nhỏ, chữ nhìn thấy, hình học vật thể và mức khớp bản yêu cầu trước khi dùng kết quả trong bố cục hoàn thiện.</p><p>Trọng tâm nhiếp ảnh của Large là đặc tính phiên bản, không phải bảo đảm mọi câu lệnh tạo ra một thẩm mỹ cụ thể. Ảnh hưởng phong cách không khoá chính xác danh tính chủ thể hoặc bố cục, và biến đổi ảnh thành ảnh mạnh có thể thay phần lớn nguồn. Với tài nguyên sản xuất, nêu rõ bố cục và chữ bắt buộc, đối chiếu kết quả hoàn chỉnh với bản yêu cầu và thực hiện sửa bố cục hoặc chữ cuối cùng trong trình biên tập phù hợp.</p>",
  "aboutText": "### Tính chân thực giàu biểu cảm\n\nKrea 2 Large là mô hình lớn hơn trong hai mô hình hình ảnh Krea 2 nguyên bản của Krea, được huấn luyện từ đầu cho phạm vi thị giác rộng. Krea mô tả Large có kích thước hơn gấp đôi Medium và hậu huấn luyện nhẹ hơn: giữ cá tính thô, giàu kết cấu hơn và linh hoạt hơn về phong cách nhiếp ảnh. Thế mạnh dự định gồm ảnh có hạt phim, nhoè chuyển động và dải tương phản được giới hạn có chủ ý, bên cạnh nhiếp ảnh trong trẻo hơn.\n\nDùng mô hình cho ý tưởng ảnh biên tập, cảnh sản phẩm, định hướng mỹ thuật chiến dịch và phát triển hình ảnh nơi cá tính ảnh quan trọng ngang chủ thể. Bản yêu cầu hữu ích chỉ định chủ thể, bối cảnh, khung hình, ánh sáng, chất liệu và cách thể hiện nhiếp ảnh. Ví dụ: “Đèn bàn đồng thau xước cạnh sổ vải lanh đóng, nắng chiều thấp, góc cận ba phần tư, hạt nhẹ, tông ấm tiết chế.” Đây là bản yêu cầu hình ảnh; đầu ra là ảnh tĩnh thay vì chuỗi video.\n\n### Văn bản, ảnh nguồn và tham chiếu thị giác\n\nYêu cầu tạo ảnh cần câu lệnh văn bản, tỷ lệ khung hình và độ phân giải. Ảnh nguồn tuỳ chọn cho phép tạo ảnh từ ảnh: mô hình bắt đầu từ ảnh đó thay vì nhiễu thuần. Cường độ khử nhiễu riêng từ 0 đến 1; 0 giữ đầu vào và 1 thay hoàn toàn, trong khi mặc định được công bố là 0.99. Chuẩn bị ảnh nguồn theo bố cục và nội dung muốn tiếp tục giữ, rồi mô tả biến đổi dự định. Tuỳ chọn này tách biệt với ảnh hưởng của tham chiếu phong cách.\n\nTham chiếu phong cách định hướng diện mạo qua ảnh được cung cấp. Lược đồ yêu cầu mô hình nhận tối đa mười tham chiếu, mỗi ảnh có cường độ từ 0 đến 1 và mặc định 0.5. Chọn tham chiếu có mục đích thị giác rõ — như ánh sáng của một ảnh chụp hoặc cách thể hiện bề mặt của ảnh khác — và tránh trộn định hướng không tương thích nếu không nêu thứ bậc rõ. Có thể cung cấp tham chiếu qua địa chỉ ảnh, dữ liệu ảnh đã mã hoá hoặc tài nguyên đã tải lên trước. Lược đồ riêng của mô hình giới hạn chuỗi URI ảnh nguồn và tham chiếu phong cách ở 1,024 ký tự.\n\nMoodboard gom định hướng thị giác thống nhất thành một tham chiếu dùng lại được. Quy trình của Krea tạo moodboard trước rồi dùng mã định danh đã có khi tạo ảnh; mỗi yêu cầu tạo ảnh nhận một moodboard. Lược đồ dùng ảnh hưởng từ 0 đến 1, mặc định 0.23. Phong cách đã huấn luyện, thường là LoRA, tạo thành tuỳ chọn khác: mỗi phong cách có mã định danh và cường độ từ -2 đến 2. Tham chiếu ảnh, moodboard và phong cách đã huấn luyện là đầu vào riêng, nên chuẩn bị từng loại theo vai trò dự định.\n\n### Diễn giải câu lệnh và tuỳ chọn hình ảnh\n\nCreativity chi phối mở rộng câu lệnh. Thiết lập raw tắt mở rộng; low, medium và high lần lượt thay đổi mức diễn giải được thêm vào bản yêu cầu viết. Lược đồ yêu cầu riêng của mô hình mặc định là low. Dùng raw khi chính nội dung phải mang toàn bộ định hướng, hoặc tăng diễn giải khi khám phá ý tưởng thoáng hơn.\n\nIntensity, Complexity và Movement là các tuỳ chọn số nguyên độc lập từ -100 đến 100, với 0 trung tính. Intensity thấp tạo cách thể hiện dịu hơn; intensity cao đẩy phong cách mạnh hơn. Complexity thấp ưu tiên bố cục đơn giản hơn, còn complexity cao thêm mật độ. Movement thay đổi năng lượng thị giác, tư thế và chuyển động gợi ra. Nó có thể gợi chuyển động hoặc nhoè trong ảnh tĩnh; không biến yêu cầu thành tạo video. Các tuỳ chọn này không thay đổi hành vi mở rộng câu lệnh của thiết lập creativity.\n\nĐể so sánh có kiểm soát, giữ bản yêu cầu, bộ tham chiếu và seed tuỳ chọn ổn định, mỗi lần đổi một tuỳ chọn hình ảnh. Trình tự thực tế là xác lập bố cục, chọn cách thể hiện nhiếp ảnh, điều chỉnh kết cấu hoặc năng lượng, rồi kiểm tra chi tiết chủ thể. Coi seed là đầu vào tạo ảnh được ghi lại cùng thiết lập đầy đủ, thay vì thay thế việc lưu ảnh hoàn chỉnh.\n\n### Lựa chọn khung và kết quả hoàn tất\n\nLược đồ tạo ảnh riêng của mô hình cung cấp mức độ phân giải 1K và chín tỷ lệ khung hình: 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, 3:4, 2:3 và 9:16. Chọn tỷ lệ theo vị trí sử dụng dự định trước khi tạo — chẳng hạn bố cục chiến dịch rộng hoặc câu chuyện sản phẩm dọc. Mức 1K là thiết lập tạo ảnh; xuất nâng cao là thao tác đầu ra riêng.\n\nQuy trình tạo ảnh được công bố của Krea trả tác vụ có thể còn pending. Lấy trạng thái cho đến khi hoàn tất, rồi thu thập các địa chỉ ảnh kết quả. Lưu ảnh cuối cùng với câu lệnh, tham chiếu và thiết lập để tiếp tục phát triển định hướng đã chọn. Kiểm tra chi tiết nhỏ, chữ nhìn thấy, hình học vật thể và mức khớp bản yêu cầu trước khi dùng kết quả trong bố cục hoàn thiện.\n\nTrọng tâm nhiếp ảnh của Large là đặc tính phiên bản, không phải bảo đảm mọi câu lệnh tạo ra một thẩm mỹ cụ thể. Ảnh hưởng phong cách không khoá chính xác danh tính chủ thể hoặc bố cục, và biến đổi ảnh thành ảnh mạnh có thể thay phần lớn nguồn. Với tài nguyên sản xuất, nêu rõ bố cục và chữ bắt buộc, đối chiếu kết quả hoàn chỉnh với bản yêu cầu và thực hiện sửa bố cục hoặc chữ cuối cùng trong trình biên tập phù hợp.\n\n",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b9b61408cfc157dddb60ee57fc67945497fa8dae30ab7b4459936120ec32b5c3",
    "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\">Krea: Krea 2 Large</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Krea /</span><code>krea/krea-2-large</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|krea%2Fkrea-2-large\">Ả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\">Krea 2 Large tạo ảnh chân thực giàu biểu cảm từ văn bản, với ảnh nguồn, tham chiếu phong cách và moodboard tuỳ chọn. Hậu huấn luyện nhẹ hơn giữ kết cấu và cá tính thị giác, trong khi các tuỳ chọn riêng định hình cách diễn giải câu lệnh, chi tiết và chuyển động gợi ra.</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\"><h4>Tính chân thực giàu biểu cảm</h4><p>Krea 2 Large là mô hình lớn hơn trong hai mô hình hình ảnh Krea 2 nguyên bản của Krea, được huấn luyện từ đầu cho phạm vi thị giác rộng. Krea mô tả Large có kích thước hơn gấp đôi Medium và hậu huấn luyện nhẹ hơn: giữ cá tính thô, giàu kết cấu hơn và linh hoạt hơn về phong cách nhiếp ảnh. Thế mạnh dự định gồm ảnh có hạt phim, nhoè chuyển động và dải tương phản được giới hạn có chủ ý, bên cạnh nhiếp ảnh trong trẻo hơn.</p><p>Dùng mô hình cho ý tưởng ảnh biên tập, cảnh sản phẩm, định hướng mỹ thuật chiến dịch và phát triển hình ảnh nơi cá tính ảnh quan trọng ngang chủ thể. Bản yêu cầu hữu ích chỉ định chủ thể, bối cảnh, khung hình, ánh sáng, chất liệu và cách thể hiện nhiếp ảnh. Ví dụ: “Đèn bàn đồng thau xước cạnh sổ vải lanh đóng, nắng chiều thấp, góc cận ba phần tư, hạt nhẹ, tông ấm tiết chế.” Đây là bản yêu cầu hình ảnh; đầu ra là ảnh tĩnh thay vì chuỗi video.</p><h4>Văn bản, ảnh nguồn và tham chiếu thị giác</h4><p>Yêu cầu tạo ảnh cần câu lệnh văn bản, tỷ lệ khung hình và độ phân giải. Ảnh nguồn tuỳ chọn cho phép tạo ảnh từ ảnh: mô hình bắt đầu từ ảnh đó thay vì nhiễu thuần. Cường độ khử nhiễu riêng từ 0 đến 1; 0 giữ đầu vào và 1 thay hoàn toàn, trong khi mặc định được công bố là 0.99. Chuẩn bị ảnh nguồn theo bố cục và nội dung muốn tiếp tục giữ, rồi mô tả biến đổi dự định. Tuỳ chọn này tách biệt với ảnh hưởng của tham chiếu phong cách.</p><p>Tham chiếu phong cách định hướng diện mạo qua ảnh được cung cấp. Lược đồ yêu cầu mô hình nhận tối đa mười tham chiếu, mỗi ảnh có cường độ từ 0 đến 1 và mặc định 0.5. Chọn tham chiếu có mục đích thị giác rõ — như ánh sáng của một ảnh chụp hoặc cách thể hiện bề mặt của ảnh khác — và tránh trộn định hướng không tương thích nếu không nêu thứ bậc rõ. Có thể cung cấp tham chiếu qua địa chỉ ảnh, dữ liệu ảnh đã mã hoá hoặc tài nguyên đã tải lên trước. Lược đồ riêng của mô hình giới hạn chuỗi URI ảnh nguồn và tham chiếu phong cách ở 1,024 ký tự.</p><p>Moodboard gom định hướng thị giác thống nhất thành một tham chiếu dùng lại được. Quy trình của Krea tạo moodboard trước rồi dùng mã định danh đã có khi tạo ảnh; mỗi yêu cầu tạo ảnh nhận một moodboard. Lược đồ dùng ảnh hưởng từ 0 đến 1, mặc định 0.23. Phong cách đã huấn luyện, thường là LoRA, tạo thành tuỳ chọn khác: mỗi phong cách có mã định danh và cường độ từ -2 đến 2. Tham chiếu ảnh, moodboard và phong cách đã huấn luyện là đầu vào riêng, nên chuẩn bị từng loại theo vai trò dự định.</p><h4>Diễn giải câu lệnh và tuỳ chọn hình ảnh</h4><p>Creativity chi phối mở rộng câu lệnh. Thiết lập raw tắt mở rộng; low, medium và high lần lượt thay đổi mức diễn giải được thêm vào bản yêu cầu viết. Lược đồ yêu cầu riêng của mô hình mặc định là low. Dùng raw khi chính nội dung phải mang toàn bộ định hướng, hoặc tăng diễn giải khi khám phá ý tưởng thoáng hơn.</p><p>Intensity, Complexity và Movement là các tuỳ chọn số nguyên độc lập từ -100 đến 100, với 0 trung tính. Intensity thấp tạo cách thể hiện dịu hơn; intensity cao đẩy phong cách mạnh hơn. Complexity thấp ưu tiên bố cục đơn giản hơn, còn complexity cao thêm mật độ. Movement thay đổi năng lượng thị giác, tư thế và chuyển động gợi ra. Nó có thể gợi chuyển động hoặc nhoè trong ảnh tĩnh; không biến yêu cầu thành tạo video. Các tuỳ chọn này không thay đổi hành vi mở rộng câu lệnh của thiết lập creativity.</p><p>Để so sánh có kiểm soát, giữ bản yêu cầu, bộ tham chiếu và seed tuỳ chọn ổn định, mỗi lần đổi một tuỳ chọn hình ảnh. Trình tự thực tế là xác lập bố cục, chọn cách thể hiện nhiếp ảnh, điều chỉnh kết cấu hoặc năng lượng, rồi kiểm tra chi tiết chủ thể. Coi seed là đầu vào tạo ảnh được ghi lại cùng thiết lập đầy đủ, thay vì thay thế việc lưu ảnh hoàn chỉnh.</p><h4>Lựa chọn khung và kết quả hoàn tất</h4><p>Lược đồ tạo ảnh riêng của mô hình cung cấp mức độ phân giải 1K và chín tỷ lệ khung hình: 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, 3:4, 2:3 và 9:16. Chọn tỷ lệ theo vị trí sử dụng dự định trước khi tạo — chẳng hạn bố cục chiến dịch rộng hoặc câu chuyện sản phẩm dọc. Mức 1K là thiết lập tạo ảnh; xuất nâng cao là thao tác đầu ra riêng.</p><p>Quy trình tạo ảnh được công bố của Krea trả tác vụ có thể còn pending. Lấy trạng thái cho đến khi hoàn tất, rồi thu thập các địa chỉ ảnh kết quả. Lưu ảnh cuối cùng với câu lệnh, tham chiếu và thiết lập để tiếp tục phát triển định hướng đã chọn. Kiểm tra chi tiết nhỏ, chữ nhìn thấy, hình học vật thể và mức khớp bản yêu cầu trước khi dùng kết quả trong bố cục hoàn thiện.</p><p>Trọng tâm nhiếp ảnh của Large là đặc tính phiên bản, không phải bảo đảm mọi câu lệnh tạo ra một thẩm mỹ cụ thể. Ảnh hưởng phong cách không khoá chính xác danh tính chủ thể hoặc bố cục, và biến đổi ảnh thành ảnh mạnh có thể thay phần lớn nguồn. Với tài nguyên sản xuất, nêu rõ bố cục và chữ bắt buộc, đối chiếu kết quả hoàn chỉnh với bản yêu cầu và thực hiện sửa bố cục hoặc chữ cuối cùng trong trình biên tập phù hợp.</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>krea/krea-2-large</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</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, 4:3, 3:2, 16:9, 4:5, 2:3, 9:16</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: 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\">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>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=\"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>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=\"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.12</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-1773-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1773-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-1773-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1773-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;krea/krea-2-large&#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-1774-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1774-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-1774-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1774-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=krea%2Fkrea-2-large&amp;route=Ultra&amp;caller=krea%2Fkrea-2-large&amp;fmt=images\"><code>krea/krea-2-large</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=krea%2Fkrea-2-large&amp;route=Ultra&amp;caller=krea%2Fkrea-2-large&amp;fmt=images\"><code>krea/krea-2-large</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "krea/krea-2-large",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "krea/krea-2-large",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|krea%2Fkrea-2-large",
      "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": [
                  "krea/krea-2-large"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:2",
                  "16:9",
                  "4:5",
                  "2:3",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:2",
                    "16:9",
                    "4:5",
                    "2:3",
                    "9:16"
                  ],
                  "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": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "krea/krea-2-large"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                },
                "resolution": {
                  "enum": [
                    "1K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "krea/krea-2-large",
                "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"
              }
            ]
          },
          {
            "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.12",
                "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.12",
                "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': 'krea/krea-2-large', '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"
              }
            ]
          },
          {
            "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.12",
                "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.12",
                "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": "krea/krea-2-large",
        "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.12",
            "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.12",
            "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": "krea/krea-2-large",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "9779c4bef647029b0c3ca01c67bb6df4a6cabb24c12f7e7544a6b3f9bad83f00",
    "input_html_sha256": "5d01e323afea7e265b7f6ae81985c78432723b2de14f78b1a407729306b91e97",
    "private_audit_sha256": "3ba139a487572548abc355f855b38912ead68ebf5269f3ca39e89d29953dfa35",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/krea-krea-2-large/",
    "description": "Krea 2 Large tạo ảnh chân thực giàu biểu cảm từ văn bản, với ảnh nguồn, tham chiếu phong cách và moodboard tuỳ chọn. Hậu huấn luyện nhẹ hơn giữ kết cấu và cá tính thị giác, trong khi các tuỳ chọn riêng định hình cách diễn giải câu lệnh, chi tiết và chuyển động gợi ra.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/krea-krea-2-large/index.md",
    "title": "Krea: Krea 2 Large — Ailoot",
    "url": "https://ailoot.ai/models/vi/krea-krea-2-large/"
  },
  "rawModel": {
    "about": "### Tính chân thực giàu biểu cảm\n\nKrea 2 Large là mô hình lớn hơn trong hai mô hình hình ảnh Krea 2 nguyên bản của Krea, được huấn luyện từ đầu cho phạm vi thị giác rộng. Krea mô tả Large có kích thước hơn gấp đôi Medium và hậu huấn luyện nhẹ hơn: giữ cá tính thô, giàu kết cấu hơn và linh hoạt hơn về phong cách nhiếp ảnh. Thế mạnh dự định gồm ảnh có hạt phim, nhoè chuyển động và dải tương phản được giới hạn có chủ ý, bên cạnh nhiếp ảnh trong trẻo hơn.\n\nDùng mô hình cho ý tưởng ảnh biên tập, cảnh sản phẩm, định hướng mỹ thuật chiến dịch và phát triển hình ảnh nơi cá tính ảnh quan trọng ngang chủ thể. Bản yêu cầu hữu ích chỉ định chủ thể, bối cảnh, khung hình, ánh sáng, chất liệu và cách thể hiện nhiếp ảnh. Ví dụ: “Đèn bàn đồng thau xước cạnh sổ vải lanh đóng, nắng chiều thấp, góc cận ba phần tư, hạt nhẹ, tông ấm tiết chế.” Đây là bản yêu cầu hình ảnh; đầu ra là ảnh tĩnh thay vì chuỗi video.\n\n### Văn bản, ảnh nguồn và tham chiếu thị giác\n\nYêu cầu tạo ảnh cần câu lệnh văn bản, tỷ lệ khung hình và độ phân giải. Ảnh nguồn tuỳ chọn cho phép tạo ảnh từ ảnh: mô hình bắt đầu từ ảnh đó thay vì nhiễu thuần. Cường độ khử nhiễu riêng từ 0 đến 1; 0 giữ đầu vào và 1 thay hoàn toàn, trong khi mặc định được công bố là 0.99. Chuẩn bị ảnh nguồn theo bố cục và nội dung muốn tiếp tục giữ, rồi mô tả biến đổi dự định. Tuỳ chọn này tách biệt với ảnh hưởng của tham chiếu phong cách.\n\nTham chiếu phong cách định hướng diện mạo qua ảnh được cung cấp. Lược đồ yêu cầu mô hình nhận tối đa mười tham chiếu, mỗi ảnh có cường độ từ 0 đến 1 và mặc định 0.5. Chọn tham chiếu có mục đích thị giác rõ — như ánh sáng của một ảnh chụp hoặc cách thể hiện bề mặt của ảnh khác — và tránh trộn định hướng không tương thích nếu không nêu thứ bậc rõ. Có thể cung cấp tham chiếu qua địa chỉ ảnh, dữ liệu ảnh đã mã hoá hoặc tài nguyên đã tải lên trước. Lược đồ riêng của mô hình giới hạn chuỗi URI ảnh nguồn và tham chiếu phong cách ở 1,024 ký tự.\n\nMoodboard gom định hướng thị giác thống nhất thành một tham chiếu dùng lại được. Quy trình của Krea tạo moodboard trước rồi dùng mã định danh đã có khi tạo ảnh; mỗi yêu cầu tạo ảnh nhận một moodboard. Lược đồ dùng ảnh hưởng từ 0 đến 1, mặc định 0.23. Phong cách đã huấn luyện, thường là LoRA, tạo thành tuỳ chọn khác: mỗi phong cách có mã định danh và cường độ từ -2 đến 2. Tham chiếu ảnh, moodboard và phong cách đã huấn luyện là đầu vào riêng, nên chuẩn bị từng loại theo vai trò dự định.\n\n### Diễn giải câu lệnh và tuỳ chọn hình ảnh\n\nCreativity chi phối mở rộng câu lệnh. Thiết lập raw tắt mở rộng; low, medium và high lần lượt thay đổi mức diễn giải được thêm vào bản yêu cầu viết. Lược đồ yêu cầu riêng của mô hình mặc định là low. Dùng raw khi chính nội dung phải mang toàn bộ định hướng, hoặc tăng diễn giải khi khám phá ý tưởng thoáng hơn.\n\nIntensity, Complexity và Movement là các tuỳ chọn số nguyên độc lập từ -100 đến 100, với 0 trung tính. Intensity thấp tạo cách thể hiện dịu hơn; intensity cao đẩy phong cách mạnh hơn. Complexity thấp ưu tiên bố cục đơn giản hơn, còn complexity cao thêm mật độ. Movement thay đổi năng lượng thị giác, tư thế và chuyển động gợi ra. Nó có thể gợi chuyển động hoặc nhoè trong ảnh tĩnh; không biến yêu cầu thành tạo video. Các tuỳ chọn này không thay đổi hành vi mở rộng câu lệnh của thiết lập creativity.\n\nĐể so sánh có kiểm soát, giữ bản yêu cầu, bộ tham chiếu và seed tuỳ chọn ổn định, mỗi lần đổi một tuỳ chọn hình ảnh. Trình tự thực tế là xác lập bố cục, chọn cách thể hiện nhiếp ảnh, điều chỉnh kết cấu hoặc năng lượng, rồi kiểm tra chi tiết chủ thể. Coi seed là đầu vào tạo ảnh được ghi lại cùng thiết lập đầy đủ, thay vì thay thế việc lưu ảnh hoàn chỉnh.\n\n### Lựa chọn khung và kết quả hoàn tất\n\nLược đồ tạo ảnh riêng của mô hình cung cấp mức độ phân giải 1K và chín tỷ lệ khung hình: 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, 3:4, 2:3 và 9:16. Chọn tỷ lệ theo vị trí sử dụng dự định trước khi tạo — chẳng hạn bố cục chiến dịch rộng hoặc câu chuyện sản phẩm dọc. Mức 1K là thiết lập tạo ảnh; xuất nâng cao là thao tác đầu ra riêng.\n\nQuy trình tạo ảnh được công bố của Krea trả tác vụ có thể còn pending. Lấy trạng thái cho đến khi hoàn tất, rồi thu thập các địa chỉ ảnh kết quả. Lưu ảnh cuối cùng với câu lệnh, tham chiếu và thiết lập để tiếp tục phát triển định hướng đã chọn. Kiểm tra chi tiết nhỏ, chữ nhìn thấy, hình học vật thể và mức khớp bản yêu cầu trước khi dùng kết quả trong bố cục hoàn thiện.\n\nTrọng tâm nhiếp ảnh của Large là đặc tính phiên bản, không phải bảo đảm mọi câu lệnh tạo ra một thẩm mỹ cụ thể. Ảnh hưởng phong cách không khoá chính xác danh tính chủ thể hoặc bố cục, và biến đổi ảnh thành ảnh mạnh có thể thay phần lớn nguồn. Với tài nguyên sản xuất, nêu rõ bố cục và chữ bắt buộc, đối chiếu kết quả hoàn chỉnh với bản yêu cầu và thực hiện sửa bố cục hoặc chữ cuối cùng trong trình biên tập phù hợp.\n\n",
    "alias_of": null,
    "aliases": [],
    "author": "Krea",
    "capabilities": {
      "context_length": 65536,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.12",
            "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.12",
            "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": "krea/krea-2-large",
    "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": [
                  "krea/krea-2-large"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:2",
                  "16:9",
                  "4:5",
                  "2:3",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:2",
                    "16:9",
                    "4:5",
                    "2:3",
                    "9:16"
                  ],
                  "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": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "krea/krea-2-large"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                },
                "resolution": {
                  "enum": [
                    "1K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "krea/krea-2-large",
                "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"
              }
            ]
          },
          {
            "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.12",
                "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.12",
                "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': 'krea/krea-2-large', '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"
              }
            ]
          },
          {
            "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.12",
                "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.12",
                "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": "krea/krea-2-large",
        "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.12",
            "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.12",
            "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": "krea/krea-2-large",
        "request_model_id": "krea/krea-2-large",
        "route_label": "Ultra"
      }
    ],
    "name": "Krea: Krea 2 Large",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.12,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.12,
      "varies": false
    },
    "short": "Krea 2 Large tạo ảnh chân thực giàu biểu cảm từ văn bản, với ảnh nguồn, tham chiếu phong cách và moodboard tuỳ chọn. Hậu huấn luyện nhẹ hơn giữ kết cấu và cá tính thị giác, trong khi các tuỳ chọn riêng định hình cách diễn giải câu lệnh, chi tiết và chuyển động gợi ra."
  },
  "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": "Krea 2 Large tạo ảnh chân thực giàu biểu cảm từ văn bản, với ảnh nguồn, tham chiếu phong cách và moodboard tuỳ chọn. Hậu huấn luyện nhẹ hơn giữ kết cấu và cá tính thị giác, trong khi các tuỳ chọn riêng định hình cách diễn giải câu lệnh, chi tiết và chuyển động gợi ra.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2aadebed176fcb3b0f13194090c0006190c19182aea9f6dd46d93bb0abb7428b",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "8b9dbd40c9f4b72c0b7bf97a4d6a978ede4b1a957018f6d0fe55873ed43ea400"
}
