Início Rápido

Comece com Qwen Image Edit em minutos

Configuração Inicial

1. Criar Conta e Obter API Key

  1. Registre-se em qwen.com
  2. Acesse o painel após confirmar seu email
  3. Navegue até "API Keys" no menu lateral
  4. Clique em "Gerar Nova Chave"
  5. Copie e salve sua chave API com segurança

2. Instalação

JavaScript/TypeScript

npm install qwen-image-edit
# ou
yarn add qwen-image-edit

Python

pip install qwen-image-edit

Outras Linguagens

  • PHP: composer require qwen/image-edit
  • Java: Disponível no Maven Central
  • Go: go get github.com/qwen/image-edit-go
  • Ruby: gem install qwen-image-edit

3. Configuração Básica

JavaScript/TypeScript

import { QwenImageEdit } from 'qwen-image-edit';

const editor = new QwenImageEdit({
  apiKey: 'sua-chave-api-aqui',
  region: 'us-east-1' // opcional
});

Python

from qwen_image_edit import QwenImageEdit

editor = QwenImageEdit(
    api_key='sua-chave-api-aqui',
    region='us-east-1'  # opcional
)

Variáveis de Ambiente

# .env
QWEN_API_KEY=sua-chave-api-aqui
QWEN_REGION=us-east-1
// Usando variáveis de ambiente
const editor = new QwenImageEdit({
  apiKey: process.env.QWEN_API_KEY,
  region: process.env.QWEN_REGION
});

Primeira Edição

Edição de Texto Simples

// Editar texto existente
const resultado = await editor.editText({
  imagem: './minha-imagem.jpg',
  prompt: 'Mudar "Olá" para "Oi"'
});

console.log('Imagem editada:', resultado.imagemUrl);
console.log('Imagem original:', resultado.imagemOriginal);

Adicionar Novo Texto

// Adicionar texto em posição específica
const resultado = await editor.editText({
  imagem: './foto.jpg',
  prompt: 'Adicionar "NOVO" em vermelho no canto superior direito',
  posicao: {
    x: 800,
    y: 50,
    alinhamento: 'direita'
  },
  cor: '#ff0000',
  tamanho: 'grande'
});

Edição de Elementos

// Adicionar objeto à imagem
const resultado = await editor.editElement({
  imagem: './paisagem.jpg',
  prompt: 'Adicionar um pássaro voando no céu azul',
  acao: 'adicionar',
  estilo: 'fotorrealista'
});

// Remover objeto da imagem
const resultado = await editor.editElement({
  imagem: './foto-com-objeto.jpg',
  prompt: 'Remover a pessoa da foto',
  acao: 'remover'
});

Recursos Principais

1. Edição de Texto

Edição Contextual

const resultado = await editor.editText({
  imagem: 'banner.jpg',
  prompt: 'Mudar "SALE" para "OFERTA" mantendo o mesmo estilo',
  preservarEstilo: true
});

Controle de Estilo

const resultado = await editor.editText({
  imagem: 'poster.jpg',
  prompt: 'Adicionar "NOVO PRODUTO"',
  fonte: 'Arial Bold',
  tamanho: 48,
  cor: '#ffffff',
  posicao: {
    x: 400,
    y: 200,
    alinhamento: 'centro'
  },
  opacidade: 0.9
});

2. Manipulação de Elementos

Adicionar Elementos

const resultado = await editor.editElement({
  imagem: 'quarto.jpg',
  prompt: 'Adicionar uma planta verde no canto',
  acao: 'adicionar',
  estilo: 'realista',
  fusao: 'natural'
});

Modificar Elementos

const resultado = await editor.editElement({
  imagem: 'carro.jpg',
  prompt: 'Mudar a cor do carro para azul',
  acao: 'modificar',
  intensidade: 0.8
});

3. Transferência de Estilo

Estilos Predefinidos

const resultado = await editor.transferStyle({
  imagem: 'retrato.jpg',
  estilo: 'aquarela',
  intensidade: 0.7,
  preservarDetalhes: true
});

Estilo Personalizado

const resultado = await editor.transferStyle({
  imagem: 'paisagem.jpg',
  estilo: 'Transformar em pintura impressionista com cores vibrantes',
  intensidade: 0.6,
  paleta: ['#ff6b6b', '#4ecdc4', '#45b7d1', '#96ceb4']
});

Melhores Práticas

1. Prompts Eficazes

✅ Bons Prompts

// Específico e claro
'Mudar "SALE" para "OFERTA" mantendo a fonte vermelha e negrita'

// Descreve a ação desejada
'Adicionar um logo da empresa no canto superior esquerdo'

// Inclui detalhes de estilo
'Remover o fundo e deixar apenas a pessoa'

❌ Prompts Problemáticos

// Muito vago
'Melhorar a imagem'

// Muito complexo
'Mudar tudo para ficar mais bonito e moderno com cores diferentes'

// Contraditório
'Adicionar texto grande mas discreto'

2. Otimização de Performance

Redimensionar Imagens Grandes

// Para imagens muito grandes, redimensione primeiro
const imagemRedimensionada = await editor.resizeImage({
  imagem: 'imagem-4k.jpg',
  dimensoes: {
    largura: 1920,
    altura: 1080
  },
  manterAspecto: true
});

// Depois edite a imagem redimensionada
const resultado = await editor.editText({
  imagem: imagemRedimensionada.imagemUrl,
  prompt: 'Adicionar título'
});

Usar Cache para Operações Repetidas

const editor = new QwenImageEdit({
  apiKey: process.env.QWEN_API_KEY,
  cache: true,
  cacheConfig: {
    ttl: 3600, // 1 hora
    maxSize: 100
  }
});

3. Tratamento de Erros

try {
  const resultado = await editor.editText({
    imagem: 'minha-imagem.jpg',
    prompt: 'Editar texto'
  });
  
  console.log('Sucesso:', resultado.imagemUrl);
  
} catch (error) {
  switch (error.codigo) {
    case 'AUTH_INVALID':
      console.error('Chave API inválida');
      break;
    case 'IMAGE_TOO_LARGE':
      console.error('Imagem muito grande, redimensione primeiro');
      break;
    case 'QUOTA_EXCEEDED':
      console.error('Cota excedida, atualize seu plano');
      break;
    default:
      console.error('Erro:', error.mensagem);
  }
}

Exemplos Práticos

1. Localização de Marketing

// Traduzir texto em banner promocional
const bannerLocalizado = await editor.editText({
  imagem: 'banner-en.jpg',
  prompt: 'Mudar "SALE" para "PROMOÇÃO" e "50% OFF" para "50% DE DESCONTO"',
  preservarEstilo: true
});

2. E-commerce

// Remover fundo de produto
const produtoSemFundo = await editor.editElement({
  imagem: 'produto-com-fundo.jpg',
  prompt: 'Remover o fundo, deixar apenas o produto',
  acao: 'remover'
});

// Adicionar selo promocional
const produtoComSelo = await editor.editText({
  imagem: produtoSemFundo.imagemUrl,
  prompt: 'Adicionar selo "NOVO" em vermelho no canto superior direito',
  cor: '#ff0000',
  tamanho: 'medio'
});

3. Criação de Conteúdo

// Criar thumbnail para vídeo
const thumbnail = await editor.editText({
  imagem: 'frame-video.jpg',
  prompt: 'Adicionar título "COMO FAZER" em letras grandes e chamativas',
  fonte: 'Impact',
  tamanho: 'grande',
  cor: '#ffffff',
  contorno: '#000000'
});

// Aplicar estilo dramático
const thumbnailEstilizada = await editor.transferStyle({
  imagem: thumbnail.imagemUrl,
  estilo: 'cinematográfico com alto contraste',
  intensidade: 0.5
});

Análise de Imagem

Detectar Conteúdo

// Analisar o que há na imagem
const analise = await editor.analyzeImage({
  imagem: 'foto-complexa.jpg',
  detectar: ['texto', 'objetos', 'cores']
});

console.log('Texto encontrado:', analise.texto);
console.log('Objetos detectados:', analise.objetos);
console.log('Cores dominantes:', analise.cores.dominantes);

Usar Análise para Edição Inteligente

// Primeiro analisar
const analise = await editor.analyzeImage({
  imagem: 'documento.jpg',
  detectar: ['texto']
});

// Depois editar baseado na análise
if (analise.texto.length > 0) {
  const textoOriginal = analise.texto[0].conteudo;
  const resultado = await editor.editText({
    imagem: 'documento.jpg',
    prompt: `Mudar "${textoOriginal}" para "TEXTO ATUALIZADO"`
  });
}

Processamento em Lote

// Processar múltiplas imagens
const imagens = ['img1.jpg', 'img2.jpg', 'img3.jpg'];

const resultados = await Promise.all(
  imagens.map(imagem => 
    editor.editText({
      imagem,
      prompt: 'Adicionar marca d\'água "CONFIDENCIAL"'
    })
  )
);

console.log('Todas as imagens processadas:', resultados.length);

Próximos Passos

📚 Aprofunde seus Conhecimentos

🛠️ Ferramentas e Recursos

  • Playground Online: Teste a API no navegador
  • Postman Collection: Coleção pronta para testes
  • Exemplos no GitHub: Código fonte completo
  • Discord da Comunidade: Tire dúvidas e compartilhe experiências

💡 Dicas Avançadas

  • Use webhooks para processamento assíncrono
  • Implemente cache para melhor performance
  • Configure monitoramento para aplicações em produção
  • Explore a transferência de estilo para efeitos criativos

Parabéns! 🎉 Você está pronto para começar a editar imagens com IA. Experimente diferentes prompts e descubra o poder do Qwen Image Edit.