Saltar para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt

Use this file to discover all available pages before exploring further.

1️⃣ API gpt-image-1

A API de geração de imagens gpt-image-1 da OpenAI oferece tanto geração text-to-image quanto edição image-to-image com capacidades de orientação por texto.
Antes de usar esta API, certifique-se de ter o pacote OpenAI mais recente instalado executando pip install -U openai.

Observações Importantes

  • Uma vez que uma chamada da API é enviada, você será cobrado independentemente de quaisquer interrupções ou falhas durante o processo de geração
  • Nomes de artistas vivos (como “Hayao Miyazaki”, “Makoto Shinkai”, etc.) acionarão um erro moderation_blocked, causando falha na geração. Você pode contornar isso usando termos não sensíveis como “Ghibli” ou “estilo anime japonês moderno brilhante”. O mesmo se aplica a imagens com roupas reveladoras ou conteúdo sugestivo.
  • Geralmente, referenciar “estilos” é mais seguro do que nomear “artistas” - por exemplo, “Pixar” é suportado.
  • Uma abordagem mais confiável é usar artistas falecidos ou seus estilos correspondentes, como “Van Gogh” ou “Mona Lisa”

Modelo e Preços

ModelQuality1024x10241024x15361536x1024
gpt-image-1low$0.011$0.016$0.016
gpt-image-1medium$0.042$0.063$0.063
gpt-image-1high$0.167$0.25$0.25
Observação: Os tokens de texto de entrada são cobrados separadamente a $5 por milhão de tokens.

Uso da API

Endpoints
  1. Geração de imagem: https://aihubmix.com/v1/images/generations
  2. Edição de imagem: https://aihubmix.com/v1/images/edits
Exemplos em Python:
from openai import OpenAI
import base64
import os

client = OpenAI(
    api_key="AIHUBMIX_API_KEY", # Replace with your AIHUBMIX Key "sk-***"
    base_url="https://aihubmix.com/v1"
)

prompt = """redesign poster of the movie [Black Swan], 3D cartoon, smooth render, bright tone, 2:3 portrait."""

result = client.images.generate(
    model="gpt-image-1",
    prompt=prompt,
    n=1, # Number of images to generate, maximum 10
    size="1024x1536", # 1024x1024 (square), 1536x1024 (3:2 landscape), 1024x1536 (2:3 portrait), auto (default) 
    quality="high", # high, medium, low, auto (default)
    moderation="low", # low, auto (default) - requires updated openai package 📍
    background="auto", # transparent, opaque, auto (default)
)

print(result.usage)

# Define file name prefix and save directory
output_dir = "." # You can specify another directory
file_prefix = "image_gen"

# Ensure output directory exists
os.makedirs(output_dir, exist_ok=True)

# Iterate through all returned image data
for i, image_data in enumerate(result.data):
    image_base64 = image_data.b64_json
    if image_base64: # Ensure b64_json is not empty
        image_bytes = base64.b64decode(image_base64)

        # --- Handle filename conflict logic ---
        current_index = i
        while True:
            # Create filename with incremental counter
            file_name = f"{file_prefix}_{current_index}.png"
            file_path = os.path.join(output_dir, file_name) # Build complete file path

            # Check if file exists
            if not os.path.exists(file_path):
                break # No filename conflict, exit loop

            # Filename conflict, increment counter
            current_index += 1

        # Save image to file using unique file_path
        with open(file_path, "wb") as f:
            f.write(image_bytes)
        print(f"Image saved to: {file_path}")
    else:
        print(f"Image data for index {i} is empty, skipping save.")
Para mais detalhes sobre os parâmetros, consulte a documentação oficial da OpenAI

Exemplos de Saída

Usage(input_tokens=150, input_tokens_details=UsageInputTokensDetails(image_tokens=0, text_tokens=150), output_tokens=6240, total_tokens=6390)
Image saved to: ./image_gen_14.png

Cenários de Rejeição

Mensagem de erro quando uma requisição é rejeitada:
Error code: 400 - {'error': {'message': 'Your request was rejected as a result of our safety system. Your request may contain content that is not allowed by our safety system.', 'type': 'user_error', 'param': None, 'code': 'moderation_blocked'}}
Ao solicitar 2-10 imagens em uma única geração, se o sistema detectar que a requisição viola as políticas da plataforma, o conteúdo sinalizado não será gerado. Isso pode resultar em menos imagens geradas do que o número originalmente solicitado. Não entanto, nenhum erro moderation_blocked será lançado na geração de múltiplas imagens. Portanto, recomenda-se evitar proativamente possíveis problemas de propriedade intelectual (PI) ou direitos autorais para minimizar o risco de rejeição do sistema e garantir uma geração tranquila. ✍️ Recomendações principais:
  • Evite o uso direto de personagens com direitos autorais, logos, semelhanças de celebridades, etc.
  • Considere usar “inspiração de estilo”, “reinterpretação criativa” ou “descrições generalizadas” em vez disso
  • Se referenciar elementos específicos, verifique se eles estão em domínio público

Dicas Práticas

  • Suporta todos os idiomas. Texto em chinês funciona de forma confiável, mas não recomendamos gerar grandes quantidades de texto em qualquer idioma
  • O parâmetro size não suporta passar explicitamente size=“auto” - auto é o padrão
  • As proporções podem ser especificadas no prompt (suporta 2:3, 3:2, 1:1) ou definidas via parâmetro size
  • O parâmetro moderation controla a sensibilidade, mas mesmo definido como “low”, requisições ainda podem ser rejeitadas (por exemplo, se a Vênus estiver muito reveladora)
  • O endpoint de edits não suporta o parâmetro moderation
  • Combinar descrições de texto com imagens de referência produz resultados mais precisos
  • Comprimir imagens enviadas como pré-processamento pode melhorar a velocidade
  • Fundos transparentes são suportados (sem necessidade de recortes manuais) — basta adicionar este requisito ao seu prompt

2️⃣ GPT Image (Reverse)

Para atender às fortes expectativas dos nossos usuários, lançamos especialmente duas interfaces obtidas por engenharia reversa: gpt-4o-image e gpt-4o-image-vip. O modelo VIP oferece desempenho e estabilidade superiores.
Observe que interfaces obtidas por engenharia reversa não podem garantir total estabilidade e podem encontrar o status 🕐 Em fila... ou falhas na geração. Elas são recomendadas apenas para experimentação e testes funcionais.
A interface oficial da OpenAI gpt-image-1 foi lançada. Considerando o custo de uso, as interfaces reversas atuais serão temporariamente mantidas, com métodos de chamada compatíveis fornecidos para todos.

Observações

  • Nota Especial: Independentemente da causa, uma vez iniciada a chamada da API, serão aplicadas cobranças mesmo que a geração falhe.
  • O nome de artistas vivos (como “Ghibli” e “Makoto Shinkai”) acionará o erro input_moderation, causando falha na geração. Você pode evitar isso usando palavras não sensíveis como “Ghibli” e “Bright Modern Japanese Anime Style”.
  • Em geral, “style” é mais seguro do que “artist”, como “Pixar” também é suportado.
  • Uma abordagem mais segura é usar o nome de artistas falecidos ou estilos correspondentes, como “Van Gogh” e “Mona Lisa”.

Modelo e Preços

ModelPrice ($/IMG)
gpt-4o-image-vip$0.009
gpt-4o-image$0.005
Devido ao aumento dos custos de manutenção das interfaces reversas, o preço por chamada foi aumentado. (Atualizado em: 2025-06-04).

Exemplo em Python

Usando o familiar endpoint v1/completions, fornecemos suporte que é totalmente compatível. Para uso específico, consulte:
from openai import OpenAI

client = OpenAI(
    api_key="AIHUBMIX_API_KEY", # Your Key Here
    base_url="https://aihubmix.com/v1"
)

# Create a chat completion request
stream = client.chat.completions.create(
    model="gpt-4o-image-vip", #list: gpt-4o-image-vip, gpt-4o-image
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": """Redesign [Girl wearing a pearl earring] as an anime-style illustrated cover. Preserve original essence and composition. Render in refined Kyoto Anime-inspired style—soft brushwork, cinematic lighting, progressive depth. 
Format in AV cover layout: 
Japanese-English mixed typography, serif title with significant visual hierarchy - sense of design is the key.
Extract words tha conveys profound meanings as title, then creative slogan, the original name can be a smaller information ONLY if necessary.
Subtly embed watermark "jerlin" in clothing or background. Maintain emotional tone and posture, soften only when necessary. 2:3 portrait"""
                }
            ]
        }
    ],
    stream=True
)

# Process the streaming response
for chunk in stream:
    try:
        if chunk.choices and len(chunk.choices) > 0 and chunk.choices[0].delta and chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="", flush=True)
    except Exception as e:
        print(f"\nError occurred while processing the response: {str(e)}")

Exemplo de Saída

{
  "prompt": "Redesign 'Girl with a Pearl Earring' as an anime-style illustrated cover. Preserve the original essence and composition: the iconic side-glance pose, serene expression, and intimate framing. Render in refined Kyoto Anime-inspired style with soft brushwork, cinematic lighting, and progressive depth. Create an AV cover layout with Japanese-English mixed typography, using a prominent serif title with strong visual hierarchy. Extract profound words for the title and include a creative slogan. The original name 'Girl with a Pearl Earring' should appear as smaller text if needed. Subtly embed the watermark 'jerlin' in clothing or background. For modesty, replace any potential nudity with flowing fabric, hair, or veils while maintaining the emotional tone and posture. Soften details only when necessary.",
  "ratio": "2:3"
}

>🕐 Queuing.

>⚡ Generating.....

>🏃‍ Progress 11....19....27...34....42....50....57...64....[100](https://videos.openai.com/vg-assets/assets%2Ftask_01jsccq77nfcsab7dn8bx7z230%2Fsrc_1.png?st=2025-04-21T13%3A08%3A48Z&se=2025-04-27T14%3A08%3A48Z&sks=b&skt=2025-04-21T13%3A08%3A48Z&ske=2025-04-27T14%3A08%3A48Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=xm6K6M7au3F3Vd9qcYxR3mYWrqAHsgbagbUV5GQo39w%3D&az=oaivgprodscus)

> ✅ Generation complete


![gen_01jsccq83pfg6ssfqf3pzfaytj](https://filesystem.site/cdn/20250421/XBCrAs6qvMARG7BkFX0KI3MBs1qoto.png)

[Click to download](https://filesystem.site/cdn/download/20250421/XBCrAs6qvMARG7BkFX0KI3MBs1qoto.png)

![gen_01jsccq83nf6ftmtx8y48h383y](https://filesystem.site/cdn/20250421/tQ62gh0BbdESApNmFJMNzsdUFDflkl.png)

[Click to download](https://filesystem.site/cdn/download/20250421/tQ62gh0BbdESApNmFJMNzsdUFDflkl.png)%      

Compatibilidade com a API Oficial da OpenAI

Se você prefere usar o método mais recente de geração de imagens lançado pela OpenAI, pode consultar a seguinte implementação. Apenas tenha em mente estes 3 pontos:
  1. Não inclua o parâmetro quality — modelos como gpt-4o-image-vip e gpt-4o-image o têm embutido internamente.
  2. O campo usage (rastreamento de tokens) não é suportado.
  3. A saída mais recente retorna dados de imagem codificados em Base64, e o script atual já lida com o salvamento automático.
Python
from openai import OpenAI
import os
import requests
import base64

client = OpenAI(
    api_key="AIHUBMIX_API_KEY", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
)

prompt = """
redesign poster of the movie [Black Swam], 3D cartoon, smooth render, bright tone, 2:3
"""

result = client.images.generate(
    model="gpt-4o-image-vip",
    prompt=prompt,
    n=1, # Number of images to generate
    size="1024x1536", # 1024x1024 (square), 1536x1024 (3:2 landscape), 1024x1536 (2:3 portrait), auto (default)
    #quality="high" # Do not pass quality for reverse model, it's internally bound 📍
)

print(result) # Print full API response; usage not supported for reverse API 📍

# Define output filename prefix and directory
output_dir = "." # You can specify another directory
file_prefix = "image_gen-reverse"

# Ensure output directory exists
os.makedirs(output_dir, exist_ok=True)

# Iterate through all returned image data
for i, image_data in enumerate(result.data):
    # Handle base64 string first
    if hasattr(image_data, "b64_json") and image_data.b64_json:
        image_bytes = base64.b64decode(image_data.b64_json)
        current_index = i
        while True:
            file_name = f"{file_prefix}_{current_index}.png"
            file_path = os.path.join(output_dir, file_name)
            if not os.path.exists(file_path):
                break
            current_index += 1
        with open(file_path, "wb") as f:
            f.write(image_bytes)
        print(f"Image saved to: {file_path} (base64)")
    # Then handle url field (robust fallback in case of interface change)
    elif hasattr(image_data, "url") and image_data.url:
        try:
            response = requests.get(image_data.url, stream=True)
            response.raise_for_status()
            image_bytes = response.content
            current_index = i
            while True:
                file_name = f"{file_prefix}_{current_index}.png"
                file_path = os.path.join(output_dir, file_name)
                if not os.path.exists(file_path):
                    break
                current_index += 1
            with open(file_path, "wb") as f:
                f.write(image_bytes)
            print(f"Image saved to: {file_path} (url)")
        except requests.exceptions.RequestException as e:
            print(f"Failed to download image #{i}: {e}")
        except Exception as e:
            print(f"Error occurred while processing image #{i}: {e}")
    else:
        print(f"No b64_json or url found in image #{i}, skipping save.")

Demonstração de Efeitos

Girl-with-a-Pearl-Earring

Garota com Brinco de Pérola

  1. A famosa pintura é reinterpretada, com texto e marca d’água diretamente impressos.
pixar

Pixar

  1. O estilo Cartoon 3D da Pixar, estável como sempre.
ghibli

Ghibli

  1. O Ghibli mais popular

Dicas Práticas

  • Suporta qualquer idioma; desenho em chinês também é estável, mas não recomendamos desenhar uma grande quantidade de texto.
  • Especifique a proporção no prompt, caso contrário o 4o determinará automaticamente. Suporta 2:3, 3:2, 1:1.
  • Forneça imagens de referência se não tiver inspiração; suporta imagem única e múltiplas imagens.
  • Imagens enviadas podem ser comprimidas para pré-processamento, melhorando a velocidade.
  • Suporta fundo transparente, sem necessidade de remover o fundo. — basta adicionar o requisito no prompt.

Última atualização: 2026-06-01