CommunityImagemgithub.com

fluxpediawork/blob-portrait

Recrie qualquer foto (selfie, retrato, foto de produto) como dezenas de milhares de manchas coloridas suaves treinadas a partir de ruído aleatório por descida de gradiente, e gera a pintura, uma comparação foto vs código, uma prova de zoom e um GIF de ruído para imagem. Use quando alguém pedir para reconstruir, "recriar com código" ou fazer "descida de gradiente" em uma imagem, ou quiser um reel de "qual é a foto?".

O que é blob-portrait?

Esse skill implementa um algoritmo de descida de gradiente que pinta uma foto de entrada usando milhares de manchas Gaussianas 2D (blobs). Começando com 1.500 blobs aleatórios, a cada etapa ele renderiza as manchas, calcula o erro em relação à foto original (usando L1 + SSIM) e ajusta ligeiramente cada blob para reduzir esse erro (otimizador Adam). Novas manchas minúsculas são geradas nas áreas de maior erro. Não há qualquer gerador de imagens ou rede neural pré-treinada envolvida: a imagem é literalmente aprendida do ruído. O skill suporta execução em CPU, GPU CUDA e Apple MPS, e oferece presets de qualidade (quick, default, full) que controlam o número de etapas e o máximo de blobs, equilibrando tempo de execução e fidelidade visual. É ideal para quem quer entender ou demonstrar como a descida de gradiente pode ser usada para reconstruir uma imagem de forma interpretável, criar conteúdo visual para redes sociais (como reels de "qual é a foto?") ou gerar arte procedural. Ao final, são gerados diversos arquivos: a pintura final, uma comparação lado a lado, um zoom na região dos olhos, um GIF da evolução do treinamento, e um arquivo com todos os parâmetros dos blobs para re-renderização ou animação.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/fluxpediawork/blob-portrait/tree/HEAD

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Retrato de manchas: descida de gradiente para uma foto

Pinta uma foto com manchas Gaussianas 2D. Começa com 1.500 manchas aleatórias e, a cada etapa, renderiza-as, mede o erro em relação à foto (L1 + SSIM) e move cada mancha um pouco para reduzir esse erro (Adam). Novas manchas minúsculas surgem onde o erro é maior. Nenhum gerador de imagens está envolvido: a imagem é aprendida.

Etapas

  1. Obter a foto. Use o arquivo anexado. Anote a posição do assunto para definir --focus (a área que recebe o treinamento mais detalhado, geralmente o rosto).

  2. Instalar. Python 3.10+.

    pip install -r requirements.txt   # torch, numpy, pillow
    

    Se o índice do PyTorch estiver bloqueado, pip install torch simples a partir do PyPI funciona.

  3. Escolher um preset com base no hardware e tempo disponível:

    presetetapasmax manchasCPU 2 núcleosGPU
    quick30015.000~8 min~1 min
    default1.60045.000~35 min~5 min
    full6.000100.000horas~20-40 min

    Em uma CPU, execute default em segundo plano e consulte o log; não bloqueie nele.

  4. Executar.

    python scripts/blobfit.py photo.jpg --out result/ --preset default \
        --aspect 4:5 --focus 0.5,0.4,0.45,0.5
    
    • --aspect corta para w:h em torno do centro (none mantém a forma original da foto).
    • --focus cx,cy,w,h está em 0-1 da imagem cortada. Para uma selfie centralizada, 0.5,0.4,0.45,0.5 cobre o rosto.
    • --steps / --blobs substituem o preset.
    • O dispositivo é selecionado automaticamente: CUDA, depois Apple MPS, depois CPU.
  5. Verificar o resultado antes de entregar. Abra compare.jpg e zoom.jpg e observe-os. stats.json tem o PSNR: cerca de 28-30 dB é uma semelhança suave (quick), 38 dB+ é difícil distinguir em tamanho normal. Se o rosto estiver suave, execute novamente com mais etapas ou mova --focus para o rosto.

  6. Entregar. Envie compare.jpg, render.png e training.gif. Diga quantas manchas e etapas, o PSNR, e que foi treinado, não gerado.

Saídas

arquivoo que é
render.pnga pintura de manchas no tamanho completo ajustado
compare.jpgfoto real ao lado da versão em código
zoom.jpgprova de close-up em torno dos olhos
training.gifruído para imagem, um quadro por marco
blobs.npzcada mancha: posição, escala, ângulo, cor, intensidade (para re-renderização ou animação)
stats.jsonetapas, contagem de manchas, PSNR, segundos, dispositivo

Limitações honestas

  • Ele copia uma foto. Não pode inventar uma nova visão ou um novo rosto.
  • A qualidade depende das etapas: execuções curtas em CPU resultam em imagens suaves; grão fino da pele precisa do preset full.
  • A cor de fundo é extraída das bordas da foto, assim as manchas só precisam pintar o que difere dela.

Habilidades Relacionadas