modelos

Recraft: Recraft V4 Pro

Markdown · JSON

Recraft: Recraft V4 Pro

O Recraft V4 Pro gera imagens raster 2K para composições detalhadas, fotorrealismo, ilustração e trabalho criativo orientado para impressão. É a edição V4 de maior resolução, com briefings em texto, entradas de estilo opcionais e um fluxo separado de imagem para imagem.

Sobre o modelo

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.

O Recraft V4 Pro é o modelo raster de maior resolução da família V4 da Recraft. O V4 centra-se no critério visual, na composição equilibrada, na coerência da cor e na interpretação cuidada da direção criativa. O fabricante posiciona o Pro para pormenores mais finos, cenas complexas mais realistas e imagens de produção de grande dimensão. Utilize-o para uma ilustração detalhada, imagem editorial, conceito de cartaz ou outra peça que beneficie de um resultado raster maior. Mantém-se separado do modelo V4.1 posterior e da saída SVG do V4 Pro Vector.

O código exato do fabricante é recraftv4_pro. A saída documentada é raster 2K em WebP sem perdas ou PNG: 2048 × 2048 píxeis para um quadrado, 2688 × 1536 para 16:9 e 1664 × 2560 para 2:3. Outras proporções suportadas têm as respetivas dimensões. Escolha uma proporção para a composição pretendida ou um tamanho exato permitido; um tamanho arbitrário em píxeis não faz parte do contrato de geração documentado. O V4 padrão tem uma saída raster 1K menor, enquanto os modelos vetoriais não têm resolução fixa em píxeis.

O V4 pode interpretar uma instrução curta para exploração ou uma instrução estruturada para um resultado controlado. Para uma direção artística específica, o guia do fabricante passa do tema e ambiente ao enquadramento, aos atributos, às relações espaciais, à iluminação, à profundidade e ao ambiente emocional. Para uma imagem editorial de produto, peça uma fotografia vertical dramática de uma cadeira escultórica, superfícies de metal escovado, iluminação lateral, fundo escuro discreto e espaço acima do objeto para um título. Identificar essas relações torna a composição pretendida mais clara do que um pedido genérico de uma imagem premium.

A variedade criativa da família inclui ilustração narrativa, cenas fotorrealistas e imagens com volume orientadas por materiais e iluminação. Um resultado de aparência 3D continua a ser uma imagem, e não uma cena 3D editável. Para um cartaz gráfico, especifique as camadas visuais e a sua interação: fundo, ilustração ou fotografia, hierarquia do título e texto de apoio. O V4 está orientado para frases curtas e de extensão média legíveis, mas a ortografia e a hierarquia finais devem ser examinadas, em vez de inferidas a partir do nome do modelo.

A referência atual de geração permite instruções com até 10 000 caracteres, uma a seis imagens de saída, uma semente aleatória e controlos de cores preferidas e cor de fundo. Estilos personalizados ou imagens de referência compatíveis opcionais podem orientar a aparência com correspondência flexível ou precisa. O modelo não aceita os controlos V3 anteriores negative_prompt, estilos predefinidos, text_layout, artistic_level ou no_text. Descreva a imagem final pretendida na instrução positiva e mantenha explícitos os requisitos de tema, disposição e cor. Para geração com estilo de referência, utilize uma a dez imagens PNG, JPG ou WebP, até 64 MB no total e menos de 20 MB por imagem. Cada referência deve ter um lado mais curto de pelo menos 256 píxeis, um lado mais longo de no máximo 4096 píxeis e uma resolução de no máximo 16 megapíxeis. Utilize estas referências ou um estilo guardado compatível, em vez de ambos.

A Recraft documenta uma operação separada de imagem para imagem para o V4. Combina uma imagem existente e uma instrução com intensidade entre 0 e 1 para controlar o grau de alteração e não aceita controlos de estilos personalizados V4 nessa operação. Prepare a origem dentro dos limites de entrada de imagem do fabricante e indique os atributos que devem transitar para o novo resultado. Para uma peça final maior, verifique os pormenores finos, o recorte e as letras no tamanho previsto. O detalhe raster adicional do Pro apoia essa inspeção, enquanto a imagem continua a ser uma interpretação gerada do briefing criativo fornecido. Para imagem para imagem, forneça PNG, JPG, WebP ou SVG com menos de 20 MB, no máximo 16 megapíxeis e ambos os lados entre 256 e 4096 píxeis.

Ailoot Ultra · Imagens POST /v1/images/generations recraft/recraft-v4-pro

recraft/recraft-v4-pro

Recraft /recraft/recraft-v4-pro

Introdução

O Recraft V4 Pro gera imagens raster 2K para composições detalhadas, fotorrealismo, ilustração e trabalho criativo orientado para impressão. É a edição V4 de maior resolução, com briefings em texto, entradas de estilo opcionais e um fluxo separado de imagem para imagem.

Entradas aceites
Texto · Imagens
Resultados
Imagens

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Imagens POST /v1/images/generations
Entrada
text, image
Saída
image
Formato de saída
Ficheiro de imagem
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
recraft/recraft-v4-pro
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento mínimo: 1
Predefinição—
CamponTipointegerRequisitoOpcionalValores e limites
Mínimo: 1
Máximo: 6
Predefinição—
Campoaspect_ratioTipostringRequisitoOpcionalValores e limites
1:1, 4:3, 3:4, 16:9, 9:16, auto
Predefinição—
Campoinput_referencesTipoarrayRequisitoOpcionalValores e limites
Número mínimo de elementos: 0
Número máximo de elementos: 1
Predefinição—
Combinações de materiais de entrada

Texto para imagem · Obrigatório: prompt

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, prompt
Parâmetromaterial_typesContratotext, image
Parâmetrooptional_controlsContratoaspect_ratio, n, input_references
Parâmetroexact_supported_parametersContrato{"aspect_ratio":{"type":"enum","values":["1:1","4:3","3:4","16:9","9:16","auto"]},"n":{"type":"range","min":1,"max":6},"input_references":{"type":"range","min":0,"max":1}}
Parâmetroreference_material_ruleContratoApenas referências reais de imagens do cliente; aplicam-se as condições do endpoint do fornecedor.

Aliases do método: /v1/images

Ciclo de vida: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id efetivamente devolvido ou registo na biblioteca de multimédia

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Utilize o modelo exato e os campos de entrada documentados.

Conserve a resposta completa, todos os resultados reais e os IDs originais devolvidos.

Tarifários

Cálculo do custo final

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.

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Não especificado Quando o modo rápido está selecionado
Modo flex
Não especificado Quando o modo flex está selecionado
Esforço máximo de raciocínio
Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas estimadas para comparação

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasQuantidade previstaUnidade de faturaçãoCusto
ConfiguraçãoTarifas base por tokenTabela de tarifasTarifa baseQuantidade prevista—Unidade de faturação—Custo
Entrada · Tokens de entrada · Estimativa apenas para comparação — / 1K tokens
Saída · Tokens de saída · Estimativa apenas para comparação — / 1K tokens
Entrada · Leitura da cache · Estimativa apenas para comparação — / 1K tokens
Entrada · Escrita na cache · Estimativa apenas para comparação — / 1K tokens
Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação — / 1K tokens
ConfiguraçãoUltraTabela de tarifas—Quantidade prevista—Unidade de faturaçãopor imagem de saídaCusto
Saída · imagem de saída · Estimativa apenas para comparação $0.5 por imagem de saída
ConfiguraçãoCusto estimado de geraçãoTabela de tarifas—Quantidade previstaestimativa para uma geraçãoUnidade de faturação—Custo
Saída · Custo estimado de geração · Estimativa apenas para comparação $0.5 estimativa antes da geração

Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.

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. Como funcionam a reserva e a liquidação →

Detalhes da tarifa de referência

As tabelas de referência do modelo não alteram a seleção do método, as cotações ou os custos. Os custos ativos usam as tarifas do método Ailoot selecionado.

Configurações de preços de imagens

Preços por configuração

ConfiguraçãoCondições de faturaçãoCusto
ConfiguraçãoImagem de saídaCondições de faturaçãoNão está declarada qualquer variante de preços.Custo
Saída · Imagem de saída $0.5 por imagem

As entradas equivalentes descrevem a mesma cobrança; não acrescentam uma segunda taxa.

Exemplos de pedidos

Ailoot Ultra · Imagens

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'recraft/recraft-v4-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

request={'model': 'recraft/recraft-v4-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "recraft/recraft-v4-pro", "prompt": "a red panda astronaut floating in space, studio lighting"};
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

Receber e guardar os resultados

Ailoot Ultra · Imagens

Descarregue cada imagem devolvida ou guarde o respetivo conteúdo Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Guardar todos os resultados concluídos

Guarde cada imagem concluída; obtenha cada URL devolvido ou descodifique o respetivo conteúdo Base64.

Conserve todos os elementos de dados e a utilização completa; assegure a propriedade e guarde todas as imagens efetivamente devolvidas. Sem URLs ou IDs inventados.

Se for necessário verificar a resposta original

Se o resultado de uma geração ou edição de imagem requerer verificação, guarde o operation_id/X-Client-Request-ID original e as informações do resultado devolvidas. Recupere os resultados existentes que lhe pertencem através da biblioteca de multimédia, usando valores task_id ou asset_id reais. Não volte a enviar o pedido de geração/edição nem construa um URL de consulta periódica a partir de operation_id.

Campos da resposta
CampoTipo
CampocreatedTipointeger
Campodata[].urlTipostring
Campodata[].b64_jsonTipobase64 string
CampousageTipoobject

Aliases

Aliases do modelo

Ailoot Ultra recraft/recraft-v4-pro

Aliases dos caminhos dos métodos

/v1/images

IDs de chamada relacionados

recraft/recraft-v4-pro

FAQ · Recraft: Recraft V4 Pro
Que entradas e resultados estão disponíveis?

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

Que campos utiliza o pedido?

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

Que limites se aplicam?

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

Mais detalhes

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição
Escolha um plano com desconto para os pedidos regulares.
Código promocional até 50%
Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.
Custos no histórico
O modelo, os tokens e o montante são guardados para cada pedido.

Escolher subscrição · Ver preços dos modelos

Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial
Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.
Licença de revendedor
Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.
Documentos no site
A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

Pedir licença de revendedor · Oferta e contrato de licença