1.0.1 • Published 8 months ago

@onosendae/sprite-generator v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago

🎮 Gerador de Sprites 2D

Um gerador de sprites 2D usando modelos de IA, combinando o Ollama (para enriquecimento de prompts) e o Replicate (para geração de imagens).

📋 Visão Geral

Este projeto permite gerar sprites 2D em estilo pixel art a partir de descrições textuais simples. O fluxo de trabalho é o seguinte:

  1. Enriquecimento do Prompt: Usa o Ollama (LLM local) para transformar descrições simples em prompts detalhados
  2. Geração de Imagens: Usa o Replicate API para gerar sprites com base nos prompts enriquecidos
  3. Salvamento: Salva as imagens geradas no diretório de saída

🔧 Requisitos

  • Node.js 14+ e npm
  • Ollama (opcional, mas recomendado para melhor qualidade de prompts)
  • Conta no Replicate e token de API

🚀 Instalação

Uso com npx (sem instalação)

Você pode usar o gerador de sprites diretamente via npx sem precisar instalar localmente:

# Uso básico com npx
npx -y @onosendae/sprite-generator "guerreiro medieval com espada"

# Com opções adicionais
npx -y @onosendae/sprite-generator "feiticeiro com cajado" -w 768 -h 768

Instalação Automática

# Clone o repositório
git clone [URL do repositório]
cd sprite-generator-vc2

# Execute o script de instalação
chmod +x setup.sh
./setup.sh

Instalação Manual

# Clone o repositório
git clone [URL do repositório]
cd sprite-generator-vc2

# Instale as dependências
npm install

# Crie o arquivo .env a partir do exemplo
cp .env.example .env

# Edite o arquivo .env para adicionar seu token do Replicate
# nano .env

# Compile o código TypeScript
npm run build

# Crie um link simbólico para uso global (opcional)
npm link

Instalação como dependência em outro projeto

npm install @onosendae/sprite-generator

⚙️ Configuração

Edite o arquivo .env para configurar:

  • OLLAMA_BASE_URL: URL do servidor Ollama (padrão: http://localhost:11434)
  • OLLAMA_MODEL: Modelo a ser usado no Ollama (padrão: qwen2.5-coder:7b-instruct)
  • REPLICATE_API_TOKEN: Seu token de API do Replicate (obrigatório)
  • OUTPUT_DIRECTORY: Diretório onde as imagens serão salvas (opcional)

🖥️ Uso

Uso direto com npx (Maneira Recomendada)

# Gerar um sprite a partir de uma descrição (forma simplificada)
npx -y @onosendae/sprite-generator "guerreiro medieval com espada"

# Com opções adicionais
npx -y @onosendae/sprite-generator "feiticeiro com cajado" -o mago.png -w 768 -h 768

Esta é a forma mais simples e direta de usar o gerador, sem necessidade de instalação prévia.

Como CLI (após instalação)

# Gerar um sprite a partir de uma descrição
sprite-generator generate "guerreiro medieval com espada"

# Especificar nome do arquivo de saída
sprite-generator generate "feiticeiro com cajado" -o mago.png

# Definir dimensões personalizadas
sprite-generator generate "dragão" -w 768 -h 768

# Verificar status do Ollama
sprite-generator check-ollama

# Ver configurações atuais
sprite-generator config

# Limpar diretório de saída
sprite-generator clean

# Ver ajuda
sprite-generator --help

Como módulo Node.js

const { spriteGenerator } = require('@onosendae/sprite-generator');

async function generateMySprite() {
  try {
    const result = await spriteGenerator.generate('guerreiro medieval com espada', {
      outputFilename: 'meu-guerreiro.png',
      modelParams: {
        width: 512,
        height: 512,
        steps: 25
      }
    });
    
    console.log(`Sprite gerado em: ${result.filePath}`);
  } catch (error) {
    console.error('Erro ao gerar sprite:', error);
  }
}

generateMySprite();

🧩 Estrutura do Projeto

sprite-generator-vc2/
├── src/                # Código-fonte TypeScript
│   ├── services/       # Serviços para APIs externas
│   │   ├── ollama.service.ts    # Serviço do Ollama
│   │   └── replicate.service.ts # Serviço do Replicate
│   ├── types/          # Definições de tipos
│   ├── config.ts       # Configurações
│   ├── sprite-generator.ts # Lógica principal
│   ├── bin.ts          # Ponto de entrada CLI
│   └── index.ts        # Exportações
├── dist/               # Código compilado
├── output/             # Sprites gerados
├── package.json        # Dependências e scripts
├── tsconfig.json       # Configuração TypeScript
├── setup.sh            # Script de instalação
├── .env.example        # Exemplo de configuração
└── README.md           # Documentação

📝 Notas

  • Se o Ollama não estiver disponível, o sistema usará um prompt de fallback
  • Cada sprite gerado terá um nome baseado na descrição e um timestamp
  • O diretório de saída será criado automaticamente se não existir
  • Quando usado com npx, qualquer texto que não seja um comando conhecido é interpretado como um prompt para geração

📜 Licença

MIT