{
  "aboutHtml": "<p>O Recraft V4.1 Vector é o modelo SVG padrão da família V4.1 da Recraft. Destina-se à criação de ilustrações, logótipos e lettering que possam ser remodelados, recoloridos e utilizados como elementos vetoriais. Aceita um pedido textual e pode trabalhar com entradas de imagem através dos fluxos documentados pelo fabricante de estilo ou de imagem para imagem. O SVG resultante é um resultado diferente de uma imagem raster WebP ou PNG do V4.1; esta edição deve ser identificada pelo formato vetorial, e não por uma indicação de resolução raster.</p><p>A variante exata é recraftv4_1_vector, distinta de recraftv4_1_pro_vector e dos modelos Utility Vector. O guia de tamanhos indica que todas as variantes vetoriais aceitam catorze proporções entre largura e altura e produzem SVG sem dimensões fixas em píxeis. Utilize essa proporção para estabelecer a composição pretendida, como um ícone quadrado ou um logótipo largo. O tamanho final de apresentação pode depois ser escolhido no fluxo de design, em vez de ser fixado por uma saída raster 1K.</p><p>O fabricante posiciona o V4.1 Vector para tipografia expressiva e ilustração limpa. Um pedido útil indica o objeto ou a palavra, o caráter geométrico, a espessura do traço, o tratamento de preenchimento e o sistema de cores. Para um símbolo de padaria, peça um grafismo pequeno com uma única haste curva de cereal, uma silhueta forte e preenchimentos quentes de duas cores. Explicite as relações espaciais importantes, em vez de depender de uma expressão ampla como logótipo moderno. Numa família de ícones, mantenha estáveis as regras estruturais e varie o objeto identificado.</p><p>Estilos personalizados opcionais podem orientar o mesmo tratamento visual através de estilos guardados compatíveis ou imagens de referência. O V4.1 suporta cores preferidas, uma cor de fundo pretendida, uma semente aleatória e prompts com até 10,000 caracteres; o fluxo de geração pode devolver de um a seis resultados. Um estilo de referência é opcional neste modelo da linha principal e deve ser compatível com o modelo utilizado para o criar. Utilize referências limpas do mesmo universo visual; a correspondência exata de cores entre referência e saída não é garantida. Para geração com estilo de referência, utilize de uma a dez imagens PNG, JPG ou WebP, com um total não superior a 64 MB e menos de 20 MB cada. Cada referência deve ter o lado mais curto com pelo menos 256 píxeis, o lado mais longo com no máximo 4,096 píxeis e uma resolução não superior a 16 megapíxeis. Utilize estas referências ou um estilo guardado compatível, em vez de ambos. Na geração com estilo de referência, a correspondência flexible permite uma interpretação mais livre, enquanto a correspondência precise segue mais de perto a representação, a paleta, a composição e a iluminação.</p><p>A operação separada de imagem para imagem pode devolver SVG quando é escolhido um modelo vetorial V4.1. Forneça uma imagem existente e descreva a alteração pretendida, com strength de 0 a 1 a indicar quanto o resultado se pode afastar da fonte. A operação suporta entrada PNG, JPG, WebP ou SVG com menos de 20 MB, até 16 MP e lados entre 256 e 4096 píxeis. Os controlos de correspondência de estilo V4.1 não são suportados nessa operação de transformação; uma referência de estilo para geração e uma imagem a transformar têm papéis diferentes.</p><p>A referência atual V4.1 exclui nomes de estilos selecionados, negative_prompt, text_layout, artistic_level e no_text. Descreva a disposição e o texto positivos pretendidos, em vez de transferir controlos do V3. Inspecione um logótipo ou uma ilustração gerados como SVG: as letras, as silhuetas, as regiões de cor e os pequenos pormenores precisam de funcionar na composição real. A sua vantagem prática é um ponto de partida vetorial editável que segue um pedido de design específico, e não a suposição de que todos os grafismos devolvidos dispensam acabamentos.</p><p>Através da Ailoot, selecione este ID exato do modelo em /v1/images/generations e forneça o prompt criativo. O perfil de imagens de referência indicado pela Ailoot aceita uma matriz input_references opcional que contenha, no máximo, uma entrada image_url. Preserve todas as entradas data devolvidas, quer a resposta contenha um URL ou conteúdo de imagem codificado, e guarde os bytes efetivos com o tipo de conteúdo devolvido. Guarde usage e qualquer task_id de multimédia com o ficheiro e, depois, reveja as formas, as letras e as regiões de cor no design pretendido.</p>",
  "aboutText": "O Recraft V4.1 Vector é o modelo SVG padrão da família V4.1 da Recraft. Destina-se à criação de ilustrações, logótipos e lettering que possam ser remodelados, recoloridos e utilizados como elementos vetoriais. Aceita um pedido textual e pode trabalhar com entradas de imagem através dos fluxos documentados pelo fabricante de estilo ou de imagem para imagem. O SVG resultante é um resultado diferente de uma imagem raster WebP ou PNG do V4.1; esta edição deve ser identificada pelo formato vetorial, e não por uma indicação de resolução raster.\n\nA variante exata é recraftv4_1_vector, distinta de recraftv4_1_pro_vector e dos modelos Utility Vector. O guia de tamanhos indica que todas as variantes vetoriais aceitam catorze proporções entre largura e altura e produzem SVG sem dimensões fixas em píxeis. Utilize essa proporção para estabelecer a composição pretendida, como um ícone quadrado ou um logótipo largo. O tamanho final de apresentação pode depois ser escolhido no fluxo de design, em vez de ser fixado por uma saída raster 1K.\n\nO fabricante posiciona o V4.1 Vector para tipografia expressiva e ilustração limpa. Um pedido útil indica o objeto ou a palavra, o caráter geométrico, a espessura do traço, o tratamento de preenchimento e o sistema de cores. Para um símbolo de padaria, peça um grafismo pequeno com uma única haste curva de cereal, uma silhueta forte e preenchimentos quentes de duas cores. Explicite as relações espaciais importantes, em vez de depender de uma expressão ampla como logótipo moderno. Numa família de ícones, mantenha estáveis as regras estruturais e varie o objeto identificado.\n\nEstilos personalizados opcionais podem orientar o mesmo tratamento visual através de estilos guardados compatíveis ou imagens de referência. O V4.1 suporta cores preferidas, uma cor de fundo pretendida, uma semente aleatória e prompts com até 10,000 caracteres; o fluxo de geração pode devolver de um a seis resultados. Um estilo de referência é opcional neste modelo da linha principal e deve ser compatível com o modelo utilizado para o criar. Utilize referências limpas do mesmo universo visual; a correspondência exata de cores entre referência e saída não é garantida. Para geração com estilo de referência, utilize de uma a dez imagens PNG, JPG ou WebP, com um total não superior a 64 MB e menos de 20 MB cada. Cada referência deve ter o lado mais curto com pelo menos 256 píxeis, o lado mais longo com no máximo 4,096 píxeis e uma resolução não superior a 16 megapíxeis. Utilize estas referências ou um estilo guardado compatível, em vez de ambos. Na geração com estilo de referência, a correspondência flexible permite uma interpretação mais livre, enquanto a correspondência precise segue mais de perto a representação, a paleta, a composição e a iluminação.\n\nA operação separada de imagem para imagem pode devolver SVG quando é escolhido um modelo vetorial V4.1. Forneça uma imagem existente e descreva a alteração pretendida, com strength de 0 a 1 a indicar quanto o resultado se pode afastar da fonte. A operação suporta entrada PNG, JPG, WebP ou SVG com menos de 20 MB, até 16 MP e lados entre 256 e 4096 píxeis. Os controlos de correspondência de estilo V4.1 não são suportados nessa operação de transformação; uma referência de estilo para geração e uma imagem a transformar têm papéis diferentes.\n\nA referência atual V4.1 exclui nomes de estilos selecionados, negative_prompt, text_layout, artistic_level e no_text. Descreva a disposição e o texto positivos pretendidos, em vez de transferir controlos do V3. Inspecione um logótipo ou uma ilustração gerados como SVG: as letras, as silhuetas, as regiões de cor e os pequenos pormenores precisam de funcionar na composição real. A sua vantagem prática é um ponto de partida vetorial editável que segue um pedido de design específico, e não a suposição de que todos os grafismos devolvidos dispensam acabamentos.\n\nAtravés da Ailoot, selecione este ID exato do modelo em /v1/images/generations e forneça o prompt criativo. O perfil de imagens de referência indicado pela Ailoot aceita uma matriz input_references opcional que contenha, no máximo, uma entrada image_url. Preserve todas as entradas data devolvidas, quer a resposta contenha um URL ou conteúdo de imagem codificado, e guarde os bytes efetivos com o tipo de conteúdo devolvido. Guarde usage e qualquer task_id de multimédia com o ficheiro e, depois, reveja as formas, as letras e as regiões de cor no design pretendido.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b634c4c05e80df5e09671db4bcfff8bd6ff65c8f6d6934f79b3fb2857f0060c5",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "pt-pt",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Recraft: Recraft V4.1 Vector</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fechar\">×</button></div><div class=\"idline\"><span>Outro /</span><code>recraft/recraft-v4.1-vector</code><button type=\"button\" id=\"copy-id\">Copiar ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Secções do cartão do modelo\"><button type=\"button\" data-card-jump=\"overview\">Introdução</button><button type=\"button\" data-card-jump=\"methods\">Entradas e métodos</button><button type=\"button\" data-card-jump=\"pricing\">Tarifários</button><button type=\"button\" data-card-jump=\"examples\">Exemplos</button><button type=\"button\" data-card-jump=\"results\">Resultados</button><button type=\"button\" data-card-jump=\"aliases\">Aliases</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Métodos da 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|recraft%2Frecraft-v4.1-vector\">Imagens</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\">Introdução</h3><p class=\"mdesc-full\">O Recraft V4.1 Vector gera logótipos, lettering e ilustrações SVG editáveis a partir de texto, com entradas opcionais de imagem e estilo. É a edição vetorial padrão do V4.1 para grafismos que precisam de geometria escalável e de ajustes de design posteriores.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceites</dt><dd>Texto · Imagens</dd></div><div><dt>Resultados</dt><dd>Imagens</dd></div></dl><details class=\"card-about\"><summary>Sobre o modelo</summary><p class=\"note-s\" data-model-method-boundary>Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.</p><div class=\"mabout\" id=\"m-about\"><p>O Recraft V4.1 Vector é o modelo SVG padrão da família V4.1 da Recraft. Destina-se à criação de ilustrações, logótipos e lettering que possam ser remodelados, recoloridos e utilizados como elementos vetoriais. Aceita um pedido textual e pode trabalhar com entradas de imagem através dos fluxos documentados pelo fabricante de estilo ou de imagem para imagem. O SVG resultante é um resultado diferente de uma imagem raster WebP ou PNG do V4.1; esta edição deve ser identificada pelo formato vetorial, e não por uma indicação de resolução raster.</p><p>A variante exata é recraftv4_1_vector, distinta de recraftv4_1_pro_vector e dos modelos Utility Vector. O guia de tamanhos indica que todas as variantes vetoriais aceitam catorze proporções entre largura e altura e produzem SVG sem dimensões fixas em píxeis. Utilize essa proporção para estabelecer a composição pretendida, como um ícone quadrado ou um logótipo largo. O tamanho final de apresentação pode depois ser escolhido no fluxo de design, em vez de ser fixado por uma saída raster 1K.</p><p>O fabricante posiciona o V4.1 Vector para tipografia expressiva e ilustração limpa. Um pedido útil indica o objeto ou a palavra, o caráter geométrico, a espessura do traço, o tratamento de preenchimento e o sistema de cores. Para um símbolo de padaria, peça um grafismo pequeno com uma única haste curva de cereal, uma silhueta forte e preenchimentos quentes de duas cores. Explicite as relações espaciais importantes, em vez de depender de uma expressão ampla como logótipo moderno. Numa família de ícones, mantenha estáveis as regras estruturais e varie o objeto identificado.</p><p>Estilos personalizados opcionais podem orientar o mesmo tratamento visual através de estilos guardados compatíveis ou imagens de referência. O V4.1 suporta cores preferidas, uma cor de fundo pretendida, uma semente aleatória e prompts com até 10,000 caracteres; o fluxo de geração pode devolver de um a seis resultados. Um estilo de referência é opcional neste modelo da linha principal e deve ser compatível com o modelo utilizado para o criar. Utilize referências limpas do mesmo universo visual; a correspondência exata de cores entre referência e saída não é garantida. Para geração com estilo de referência, utilize de uma a dez imagens PNG, JPG ou WebP, com um total não superior a 64 MB e menos de 20 MB cada. Cada referência deve ter o lado mais curto com pelo menos 256 píxeis, o lado mais longo com no máximo 4,096 píxeis e uma resolução não superior a 16 megapíxeis. Utilize estas referências ou um estilo guardado compatível, em vez de ambos. Na geração com estilo de referência, a correspondência flexible permite uma interpretação mais livre, enquanto a correspondência precise segue mais de perto a representação, a paleta, a composição e a iluminação.</p><p>A operação separada de imagem para imagem pode devolver SVG quando é escolhido um modelo vetorial V4.1. Forneça uma imagem existente e descreva a alteração pretendida, com strength de 0 a 1 a indicar quanto o resultado se pode afastar da fonte. A operação suporta entrada PNG, JPG, WebP ou SVG com menos de 20 MB, até 16 MP e lados entre 256 e 4096 píxeis. Os controlos de correspondência de estilo V4.1 não são suportados nessa operação de transformação; uma referência de estilo para geração e uma imagem a transformar têm papéis diferentes.</p><p>A referência atual V4.1 exclui nomes de estilos selecionados, negative_prompt, text_layout, artistic_level e no_text. Descreva a disposição e o texto positivos pretendidos, em vez de transferir controlos do V3. Inspecione um logótipo ou uma ilustração gerados como SVG: as letras, as silhuetas, as regiões de cor e os pequenos pormenores precisam de funcionar na composição real. A sua vantagem prática é um ponto de partida vetorial editável que segue um pedido de design específico, e não a suposição de que todos os grafismos devolvidos dispensam acabamentos.</p><p>Através da Ailoot, selecione este ID exato do modelo em /v1/images/generations e forneça o prompt criativo. O perfil de imagens de referência indicado pela Ailoot aceita uma matriz input_references opcional que contenha, no máximo, uma entrada image_url. Preserve todas as entradas data devolvidas, quer a resposta contenha um URL ou conteúdo de imagem codificado, e guarde os bytes efetivos com o tipo de conteúdo devolvido. Guarde usage e qualquer task_id de multimédia com o ficheiro e, depois, reveja as formas, as letras e as regiões de cor no design pretendido.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponível no Ailoot · entradas e métodos</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Images</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Entrada</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Saída</dt><dd><code>image</code></dd></div><div><dt>Formato de saída</dt><dd>Ficheiro de imagem</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valores e limites</th><th>Predefinição</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>recraft/recraft-v4.1-vector</div><div>Condições: Utilize exatamente este seletor de encaminhamento do Ailoot.</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>Condições: </div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">n</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>Mínimo: 1</div><div>Máximo: 6</div><div>Condições: </div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>1:1, 4:3, 3:4, 16:9, 9:16, auto</div><div>Condições: </div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">output_format</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>svg</div><div>Condições: </div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>array</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>Condições: </div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">quality</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>auto, low, medium, high, xhigh, max</div><div>Condições: </div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinações de materiais de entrada</summary><p class=\"note-s\"><b>Texto para imagem</b></p></details><details class=\"note-s\" data-method-contract><summary>Parâmetros e ciclo de vida do método</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parâmetro</th><th>Contrato</th></tr></thead><tbody><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>content_type</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>application/json</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>required</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>model, prompt</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>optional</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>n, aspect_ratio, output_format, input_references, quality</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>material_types</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>text, image</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>conditions</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>Utilize exatamente este seletor de encaminhamento do Ailoot., quality é um controlo comum documentado; os fornecedores sem um ajuste de qualidade ignoram-no. Não se promete uma melhoria de qualidade para cada modelo.</td></tr></tbody></table></div><p>Ciclo de vida: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · O task_id efetivamente devolvido ou o registo selecionado da biblioteca; operation_id é um identificador independente.</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\">Tarifários</h3><div class=\"card-result-process\" data-billing-basis><h5>Cálculo do custo final</h5><p class=\"note-s\">As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.</p><dl data-price-conditions><dt>Modo rápido</dt><dd>Não especificado <span class=\"note-s\">Quando o modo rápido está selecionado</span></dd><dt>Modo flex</dt><dd>Não especificado <span class=\"note-s\">Quando o modo flex está selecionado</span></dd><dt>Esforço máximo de raciocínio</dt><dd>Não especificado <span class=\"note-s\">Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifas estimadas para comparação</h4><h4>Preços por configuração</h4><p class=\"note-s\">Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuração</th><th>Tabela de tarifas</th><th>Quantidade prevista</th><th>Unidade de faturação</th><th>Custo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Tarifas base por token</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>Tarifa base</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Entrada · Tokens de entrada · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Saída · Tokens de saída · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Leitura da cache · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>imagem de saída</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por imagem de saída</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · imagem de saída · Estimativa apenas para comparação</span> <b>$0.16</b> <span class=\"price-unit\">por imagem de saída</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Custo estimado de geração</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>estimativa para uma geração</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Custo estimado de geração · Estimativa apenas para comparação</span> <b>$0.16</b> <span class=\"price-unit\">estimativa antes da geração</span></div><p class=\"note-s\">Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.</p></td></tr></tbody></table></div></div><p class=\"note-s\">O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. <a href=\"/docs/pt-pt/billing/reserve/\">Como funcionam a reserva e a liquidação →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemplos de pedidos</h3><h4>Ailoot Ultra · Images</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes de código\"><button class=\"cg-tab\" id=\"model-code-2884-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2884-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · crie uma única vez e guarde o resultado completo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><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-2884-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2884-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=json.loads(&#39;{&quot;model&quot;: &quot;recraft/recraft-v4.1-vector&quot;, &quot;prompt&quot;: &quot;A portrait of an Asian woman with neon green lights in the background, shallow depth of field.&quot;}&#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\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Receber e guardar os resultados</h3><h4>Ailoot Ultra · Images</h4><p class=\"note-s\">Descarregue cada imagem devolvida ou guarde o respetivo conteúdo Base64</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Guardar todos os resultados concluídos</h5><p class=\"note-s\">Guarde cada imagem concluída; obtenha cada URL devolvido ou descodifique o respetivo conteúdo Base64.</p><p class=\"note-s\">Conserve a resposta completa e os cabeçalhos, os identificadores originais, todos os resultados reais e todos os campos de utilização/contabilidade. Guarde cada recurso único pertencente ao utilizador e conserve todas as funções que apontam para ele.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Se for necessário verificar a resposta original</h5><p class=\"note-s\">Mantenha o X-Client-Request-ID original, a resposta e os cabeçalhos. Um resultado desconhecido ou result_pending_check não autoriza uma segunda criação.</p></div><details class=\"card-about\" data-output-fields><summary>Campos da resposta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erros e passos seguintes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Resposta</th><th>Condição</th><th>Passo seguinte</th></tr></thead><tbody><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>Um campo obrigatório, o seletor de modelo, o tipo ou a representação da entrada é inválido.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Analise os detalhes de validação devolvidos antes de preparar um pedido separado.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span><code></code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O pedido original ou o respetivo resultado é desconhecido ou requer uma verificação.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Mantenha os identificadores e os cabeçalhos originais; consulte apenas os registos de estado ou da biblioteca suportados. Não volte a enviar o pedido de criação.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliases</h3><h4>Aliases do modelo</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=recraft%2Frecraft-v4.1-vector&amp;route=Ultra&amp;caller=recraft%2Frecraft-v4.1-vector&amp;fmt=images\"><code>recraft/recraft-v4.1-vector</code></a></span></p><h4>Aliases dos caminhos dos métodos</h4><p class=\"note-s\">Use os caminhos dos métodos indicados acima.</p><h4>IDs de chamada relacionados</h4><p class=\"note-s\"><a href=\"#m=recraft%2Frecraft-v4.1-vector&amp;route=Ultra&amp;caller=recraft%2Frecraft-v4.1-vector&amp;fmt=images\"><code>recraft/recraft-v4.1-vector</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "recraft/recraft-v4.1-vector",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "recraft/recraft-v4.1-vector",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|recraft%2Frecraft-v4.1-vector",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "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, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "control_semantics": {
              "other_documented_controls": "Source generic image parsing preserves request JSON. Additional documented controls stay subject to the exact model; missing DTO fields do not create Source refusals.",
              "quality": "The saved common image schema documents this control and says providers without a quality knob ignore it.",
              "style": "Selected generic Source passes JSON fields through but the saved dedicated image request schema does not declare a style field. Its omission here is not a Source ban or a supported per-model promise."
            },
            "errors": [
              {
                "condition": "Um campo obrigatório, o seletor de modelo, o tipo ou a representação da entrada é inválido.",
                "http_status": 400,
                "recovery": "Analise os detalhes de validação devolvidos antes de preparar um pedido separado.",
                "type": "invalid_request_error"
              },
              {
                "condition": "O pedido original ou o respetivo resultado é desconhecido ou requer uma verificação.",
                "http_status": null,
                "recovery": "Mantenha os identificadores e os cabeçalhos originais; consulte apenas os registos de estado ou da biblioteca suportados. Não volte a enviar o pedido de criação.",
                "type": null
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/images/generations"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or selected library record; operation_id is a separate identifier",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Mantenha o X-Client-Request-ID original, a resposta e os cabeçalhos. Um resultado desconhecido ou result_pending_check não autoriza uma segunda criação.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text",
                  "image"
                ],
                "metadata_authority": "saved_definitive_endpoint",
                "mode": "text_to_image",
                "reference_maximum": 1,
                "reference_minimum": 0
              }
            ],
            "model_parameter_metadata": {
              "authority": "saved_definitive_endpoint",
              "defaults_not_inferred": {
                "aspect_ratio": null,
                "exact_pixels": null,
                "explanation": "No universal/model default inferred. Omitted output_format uses provider default; dimensions are provider-derived, observed Ming2048 is not a universal default.",
                "n": null,
                "output_format": null,
                "quality": null,
                "resolution": null
              },
              "known_parameter_choices": {
                "aspect_ratio": {
                  "type": "enum",
                  "values": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ]
                },
                "input_references": {
                  "max": 1,
                  "min": 0,
                  "type": "range"
                },
                "n": {
                  "max": 6,
                  "min": 1,
                  "type": "range"
                },
                "output_format": {
                  "type": "enum",
                  "values": [
                    "svg"
                  ]
                }
              },
              "pointer": "/profiles/37",
              "scope": "Exact saved model metadata. Discovery unions are identified explicitly and are not represented as definitive selected-provider bounds."
            },
            "outputs": {
              "all_results": "Conserve a resposta completa e os cabeçalhos, os identificadores originais, todos os resultados reais e todos os campos de utilização/contabilidade. Guarde cada recurso único pertencente ao utilizador e conserve todas as funções que apontam para ele.",
              "documented_formats": [
                "svg"
              ],
              "every_actual_output": true,
              "family": "image",
              "fields": [
                {
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "name": "data[].b64_json",
                  "type": "string"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "The exact saved model metadata lists SVG. Preserve the actual returned MIME and unchanged vector bytes; keep every actual output and owned signed image link."
            },
            "parameters": [
              {
                "conditions": "Utilize exatamente este seletor de encaminhamento do Ailoot.",
                "default_known": false,
                "enum": [
                  "recraft/recraft-v4.1-vector"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "maximum": 6,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "svg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "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,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "auto",
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "enum_known": true,
                "name": "quality",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "recraft/recraft-v4.1-vector"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "svg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "auto",
                    "low",
                    "medium",
                    "high",
                    "xhigh",
                    "max"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "recraft/recraft-v4.1-vector",
                "prompt": "A portrait of an Asian woman with neon green lights in the background, shallow depth of field."
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Utilize exatamente este seletor de encaminhamento do Ailoot.",
              "quality é um controlo comum documentado; os fornecedores sem um ajuste de qualidade ignoram-no. Não se promete uma melhoria de qualidade para cada modelo."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "n",
              "aspect_ratio",
              "output_format",
              "input_references",
              "quality"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/images/generations"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "status": [
              {
                "http": "GET",
                "id_source": "O task_id efetivamente devolvido ou o registo selecionado da biblioteca; operation_id é um identificador independente.",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "documented_formats": [
              "svg"
            ],
            "every_actual_output": true,
            "family": "image",
            "fields": [
              {
                "name": "data[].url",
                "type": "string"
              },
              {
                "name": "data[].b64_json",
                "type": "string"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "The saved exact model metadata lists SVG. Preserve actual MIME and bytes; storage MIME support alone does not prove completion of the full selected generic output path."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Custo estimado de geração",
            "units": [
              {
                "amount": "0.16",
                "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.16",
                "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=json.loads('{\"model\": \"recraft/recraft-v4.1-vector\", \"prompt\": \"A portrait of an Asian woman with neon green lights in the background, shallow depth of field.\"}')\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\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Use the exact model reference-input range in the saved model metadata; a reference becomes required only for the models whose listed minimum is positive."
        },
        "label": "Images",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.16",
                "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.16",
                "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": "recraft/recraft-v4.1-vector",
        "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.16",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.16",
            "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.16",
            "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": "recraft/recraft-v4.1-vector",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "f08f813742cbc88bbccf300510836ca2c6c139b4dcd3729f20fafc5d14c93ea9",
    "input_html_sha256": "57172d0ffbebf41f833a0aac46d9efc3f9201e3606bb149850835cd4519474c0",
    "private_audit_sha256": "c37ec1b194d229f08b279f52fad4d152e8d5bcb189cb375268b9ed6ae55db8ea",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pt-pt/recraft-recraft-v4-1-vector/",
    "description": "O Recraft V4.1 Vector gera logótipos, lettering e ilustrações SVG editáveis a partir de texto, com entradas opcionais de imagem e estilo. É a edição vetorial padrão do V4.1 para grafismos que precisam de geometria escalável e de ajustes de design posteriores.",
    "locale": "pt-pt",
    "md_url": "https://ailoot.ai/models/pt-pt/recraft-recraft-v4-1-vector/index.md",
    "title": "Recraft: Recraft V4.1 Vector — Ailoot",
    "url": "https://ailoot.ai/models/pt-pt/recraft-recraft-v4-1-vector/"
  },
  "rawModel": {
    "about": "O Recraft V4.1 Vector é o modelo SVG padrão da família V4.1 da Recraft. Destina-se à criação de ilustrações, logótipos e lettering que possam ser remodelados, recoloridos e utilizados como elementos vetoriais. Aceita um pedido textual e pode trabalhar com entradas de imagem através dos fluxos documentados pelo fabricante de estilo ou de imagem para imagem. O SVG resultante é um resultado diferente de uma imagem raster WebP ou PNG do V4.1; esta edição deve ser identificada pelo formato vetorial, e não por uma indicação de resolução raster.\n\nA variante exata é recraftv4_1_vector, distinta de recraftv4_1_pro_vector e dos modelos Utility Vector. O guia de tamanhos indica que todas as variantes vetoriais aceitam catorze proporções entre largura e altura e produzem SVG sem dimensões fixas em píxeis. Utilize essa proporção para estabelecer a composição pretendida, como um ícone quadrado ou um logótipo largo. O tamanho final de apresentação pode depois ser escolhido no fluxo de design, em vez de ser fixado por uma saída raster 1K.\n\nO fabricante posiciona o V4.1 Vector para tipografia expressiva e ilustração limpa. Um pedido útil indica o objeto ou a palavra, o caráter geométrico, a espessura do traço, o tratamento de preenchimento e o sistema de cores. Para um símbolo de padaria, peça um grafismo pequeno com uma única haste curva de cereal, uma silhueta forte e preenchimentos quentes de duas cores. Explicite as relações espaciais importantes, em vez de depender de uma expressão ampla como logótipo moderno. Numa família de ícones, mantenha estáveis as regras estruturais e varie o objeto identificado.\n\nEstilos personalizados opcionais podem orientar o mesmo tratamento visual através de estilos guardados compatíveis ou imagens de referência. O V4.1 suporta cores preferidas, uma cor de fundo pretendida, uma semente aleatória e prompts com até 10,000 caracteres; o fluxo de geração pode devolver de um a seis resultados. Um estilo de referência é opcional neste modelo da linha principal e deve ser compatível com o modelo utilizado para o criar. Utilize referências limpas do mesmo universo visual; a correspondência exata de cores entre referência e saída não é garantida. Para geração com estilo de referência, utilize de uma a dez imagens PNG, JPG ou WebP, com um total não superior a 64 MB e menos de 20 MB cada. Cada referência deve ter o lado mais curto com pelo menos 256 píxeis, o lado mais longo com no máximo 4,096 píxeis e uma resolução não superior a 16 megapíxeis. Utilize estas referências ou um estilo guardado compatível, em vez de ambos. Na geração com estilo de referência, a correspondência flexible permite uma interpretação mais livre, enquanto a correspondência precise segue mais de perto a representação, a paleta, a composição e a iluminação.\n\nA operação separada de imagem para imagem pode devolver SVG quando é escolhido um modelo vetorial V4.1. Forneça uma imagem existente e descreva a alteração pretendida, com strength de 0 a 1 a indicar quanto o resultado se pode afastar da fonte. A operação suporta entrada PNG, JPG, WebP ou SVG com menos de 20 MB, até 16 MP e lados entre 256 e 4096 píxeis. Os controlos de correspondência de estilo V4.1 não são suportados nessa operação de transformação; uma referência de estilo para geração e uma imagem a transformar têm papéis diferentes.\n\nA referência atual V4.1 exclui nomes de estilos selecionados, negative_prompt, text_layout, artistic_level e no_text. Descreva a disposição e o texto positivos pretendidos, em vez de transferir controlos do V3. Inspecione um logótipo ou uma ilustração gerados como SVG: as letras, as silhuetas, as regiões de cor e os pequenos pormenores precisam de funcionar na composição real. A sua vantagem prática é um ponto de partida vetorial editável que segue um pedido de design específico, e não a suposição de que todos os grafismos devolvidos dispensam acabamentos.\n\nAtravés da Ailoot, selecione este ID exato do modelo em /v1/images/generations e forneça o prompt criativo. O perfil de imagens de referência indicado pela Ailoot aceita uma matriz input_references opcional que contenha, no máximo, uma entrada image_url. Preserve todas as entradas data devolvidas, quer a resposta contenha um URL ou conteúdo de imagem codificado, e guarde os bytes efetivos com o tipo de conteúdo devolvido. Guarde usage e qualquer task_id de multimédia com o ficheiro e, depois, reveja as formas, as letras e as regiões de cor no design pretendido.",
    "alias_of": null,
    "aliases": [],
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.16",
            "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.16",
            "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": "Todas as tarifas da configuração constam dos detalhes."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "recraft/recraft-v4.1-vector",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "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, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "control_semantics": {
              "other_documented_controls": "Source generic image parsing preserves request JSON. Additional documented controls stay subject to the exact model; missing DTO fields do not create Source refusals.",
              "quality": "The saved common image schema documents this control and says providers without a quality knob ignore it.",
              "style": "Selected generic Source passes JSON fields through but the saved dedicated image request schema does not declare a style field. Its omission here is not a Source ban or a supported per-model promise."
            },
            "errors": [
              {
                "condition": "Um campo obrigatório, o seletor de modelo, o tipo ou a representação da entrada é inválido.",
                "http_status": 400,
                "recovery": "Analise os detalhes de validação devolvidos antes de preparar um pedido separado.",
                "type": "invalid_request_error"
              },
              {
                "condition": "O pedido original ou o respetivo resultado é desconhecido ou requer uma verificação.",
                "http_status": null,
                "recovery": "Mantenha os identificadores e os cabeçalhos originais; consulte apenas os registos de estado ou da biblioteca suportados. Não volte a enviar o pedido de criação.",
                "type": null
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/images/generations"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or selected library record; operation_id is a separate identifier",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Mantenha o X-Client-Request-ID original, a resposta e os cabeçalhos. Um resultado desconhecido ou result_pending_check não autoriza uma segunda criação.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text",
                  "image"
                ],
                "metadata_authority": "saved_definitive_endpoint",
                "mode": "text_to_image",
                "reference_maximum": 1,
                "reference_minimum": 0
              }
            ],
            "model_parameter_metadata": {
              "authority": "saved_definitive_endpoint",
              "defaults_not_inferred": {
                "aspect_ratio": null,
                "exact_pixels": null,
                "explanation": "No universal/model default inferred. Omitted output_format uses provider default; dimensions are provider-derived, observed Ming2048 is not a universal default.",
                "n": null,
                "output_format": null,
                "quality": null,
                "resolution": null
              },
              "known_parameter_choices": {
                "aspect_ratio": {
                  "type": "enum",
                  "values": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ]
                },
                "input_references": {
                  "max": 1,
                  "min": 0,
                  "type": "range"
                },
                "n": {
                  "max": 6,
                  "min": 1,
                  "type": "range"
                },
                "output_format": {
                  "type": "enum",
                  "values": [
                    "svg"
                  ]
                }
              },
              "pointer": "/profiles/37",
              "scope": "Exact saved model metadata. Discovery unions are identified explicitly and are not represented as definitive selected-provider bounds."
            },
            "outputs": {
              "all_results": "Conserve a resposta completa e os cabeçalhos, os identificadores originais, todos os resultados reais e todos os campos de utilização/contabilidade. Guarde cada recurso único pertencente ao utilizador e conserve todas as funções que apontam para ele.",
              "documented_formats": [
                "svg"
              ],
              "every_actual_output": true,
              "family": "image",
              "fields": [
                {
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "name": "data[].b64_json",
                  "type": "string"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "The exact saved model metadata lists SVG. Preserve the actual returned MIME and unchanged vector bytes; keep every actual output and owned signed image link."
            },
            "parameters": [
              {
                "conditions": "Utilize exatamente este seletor de encaminhamento do Ailoot.",
                "default_known": false,
                "enum": [
                  "recraft/recraft-v4.1-vector"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "maximum": 6,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "svg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "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,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "auto",
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "enum_known": true,
                "name": "quality",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "recraft/recraft-v4.1-vector"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "svg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "auto",
                    "low",
                    "medium",
                    "high",
                    "xhigh",
                    "max"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "recraft/recraft-v4.1-vector",
                "prompt": "A portrait of an Asian woman with neon green lights in the background, shallow depth of field."
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Utilize exatamente este seletor de encaminhamento do Ailoot.",
              "quality é um controlo comum documentado; os fornecedores sem um ajuste de qualidade ignoram-no. Não se promete uma melhoria de qualidade para cada modelo."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "n",
              "aspect_ratio",
              "output_format",
              "input_references",
              "quality"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/images/generations"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "status": [
              {
                "http": "GET",
                "id_source": "O task_id efetivamente devolvido ou o registo selecionado da biblioteca; operation_id é um identificador independente.",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "documented_formats": [
              "svg"
            ],
            "every_actual_output": true,
            "family": "image",
            "fields": [
              {
                "name": "data[].url",
                "type": "string"
              },
              {
                "name": "data[].b64_json",
                "type": "string"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "The saved exact model metadata lists SVG. Preserve actual MIME and bytes; storage MIME support alone does not prove completion of the full selected generic output path."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Custo estimado de geração",
            "units": [
              {
                "amount": "0.16",
                "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.16",
                "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=json.loads('{\"model\": \"recraft/recraft-v4.1-vector\", \"prompt\": \"A portrait of an Asian woman with neon green lights in the background, shallow depth of field.\"}')\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\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Use the exact model reference-input range in the saved model metadata; a reference becomes required only for the models whose listed minimum is positive."
        },
        "label": "Images",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.16",
                "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.16",
                "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": "recraft/recraft-v4.1-vector",
        "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.16",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.16",
            "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.16",
            "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": "recraft/recraft-v4.1-vector",
        "request_model_id": "recraft/recraft-v4.1-vector",
        "route_label": "Ultra"
      }
    ],
    "name": "Recraft: Recraft V4.1 Vector",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.16,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.16,
      "varies": false
    },
    "short": "O Recraft V4.1 Vector gera logótipos, lettering e ilustrações SVG editáveis a partir de texto, com entradas opcionais de imagem e estilo. É a edição vetorial padrão do V4.1 para grafismos que precisam de geometria escalável e de ajustes de design posteriores.",
    "title": "Recraft: Recraft V4.1 Vector"
  },
  "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": "O Recraft V4.1 Vector gera logótipos, lettering e ilustrações SVG editáveis a partir de texto, com entradas opcionais de imagem e estilo. É a edição vetorial padrão do V4.1 para grafismos que precisam de geometria escalável e de ajustes de design posteriores.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d73e0b8abb8c45123c9574bc4e7aef3cccc8c9fd66f5fc437d29d843d94ade1b",
    "renderer_sha256": "8caea4544177cc2b7d2cb3356b5f07bfd3660386d75f2714a6f603fa5e2a6cd2"
  },
  "sourceRevision": "ea5db0b732d52f732ae0d23e8eb625b1acb3c31d8a04cb1a4726e406bf896b73"
}
