1.0.1 • Published 8 months ago
@onosendae/sprite-generator v1.0.1
🎮 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:
- Enriquecimento do Prompt: Usa o Ollama (LLM local) para transformar descrições simples em prompts detalhados
- Geração de Imagens: Usa o Replicate API para gerar sprites com base nos prompts enriquecidos
- 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 768Instalaçã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.shInstalaçã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 linkInstalaçã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 768Esta é 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 --helpComo 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