A LÓGICA (THE LINEAGE)
Uma fotografia é inserida. A skill mede dez características na máquina do usuário, descobre a década a que essas características pertencem e constrói a árvore genealógica da foto: um look por década no tronco, dos anos 1930 aos 2020, mais dois ao lado como ramos, cada um sendo um filme, cinegrafista, fotógrafo, campanha ou processo nomeado, com a razão de sua inclusão. Em seguida, estuda a direção do tronco e cultiva um ramo de 2027 no lugar onde a biblioteca não tem look algum: um nome, uma receita, o que herda de quem e a prova de que é uma lacuna ("Nenhum dos 107 looks é tão quente e tão granulado ao mesmo tempo"). Essa frase de lacuna é a assinatura: é o que torna o ramo um look que ninguém fez ainda, não um palpite.
Tudo até o ramo é aritmética local e não custa nada. A única coisa que gera é a re-iluminação final da própria foto do usuário nesse ramo, e ela roda na conta Higgsfield do usuário após ele dizer sim.
Instalação
bash install.sh # a skill, sua pasta studio, uma verificação das ferramentas opcionais
bash install.sh --higgsfield # também a CLI + MCP do Higgsfield, para gerar na sua própria conta
Apenas Python da biblioteca padrão. JPEG e HEIC são abertos via sips (macOS) ou ffmpeg; PNG não precisa de nada.
Como executar
Quando o usuário solicitar, Claude:
- Traça a foto.
python3 scripts/lineage.py trace "<foto>" --project "<projeto>"(qualquer JPG, PNG ou HEIC; o projeto padrão éthe-lineage). Imprime as quatro leituras (luz, granulação, enquadramento, cor), a década com sua parcela da pontuação e o segundo colocado, e o tronco dos anos 1930 até agora com o que cada look compartilha com a foto. Diga ao usuário a década primeiro, depois os dois ou três looks do tronco que mais importam. Se disser "um palpite apertado", mencione ambas as décadas: essa é a leitura honesta. - Cultiva o ramo.
python3 scripts/lineage.py grow latest --project "<projeto>". Imprime o ramo de 2027: seu nome e declaração, a receita (luz, cor, pretos, granulação, óptica, formato), o que herda e de qual look, e a lacuna. Se o usuário quiser outra opção,--seed 1(2, 3…) encontra outra lacuna com as mesmas regras. - Exporta.
python3 scripts/lineage.py export latest --project "<projeto>"escrevetrees/<id>.svg(um pôster imprimível: o tronco subindo de 1930, o botão carmesim de 2027 no topo),trees/<id>.json(todos os números) etrees/<id>-branch.md(o cartão do ramo com a receita). Abra o pôster (open <arquivo>no Mac) e diga em uma linha o que olhar primeiro: o botão e o look do tronco logo abaixo dele. - Para e pergunta antes de gerar. Somente se o usuário quiser o ramo na própria foto:
python3 scripts/lineage.py request latest --project "<projeto>"escreve uma solicitação de edição de imagem. Diga a ele que é uma geração e quanto custa no plano Higgsfield dele, e espere um sim. Então execute (abaixo) e verifique compython3 scripts/lineage.py status latest --project "<projeto>".
Explicando um nó: python3 scripts/lineage.py node <id> imprime um look completo (por que está na linhagem, o que transmite, pessoas, onde encontrá-lo, pais). python3 scripts/lineage.py library --decade 1970 lista uma década. Suas próprias referências: python3 scripts/lineage.py add --name "..." --year 1994 --why "..." --image ref.jpg mede a imagem e adiciona o look à linhagem para todas as árvores futuras (as referências são globais por máquina, não por projeto; --project é aceito e ignorado).
Experimente com o exemplo incluído (nada é gasto): python3 scripts/lineage.py example --project demo (ou --photo pool para a segunda imagem). Para verificar se funciona nesta máquina: python3 scripts/selftest.py.
Como avaliar o resultado
-
Aviso sobre fundamento fraco. Sem pessoas, uma fonte de luz visível ou luz de estúdio, o medidor tem pouco em que se apoiar: correspondências abaixo de 30% em todo o tronco indicam que a foto é inadequada, portanto avise antes que o usuário interprete a árvore como histórico.
-
A década é uma leitura, não um veredito. Uma parcela acima de 25% com uma diferença clara para o segundo colocado é uma leitura firme; menos de 5 pontos de diferença é um palpite apertado e ambas as décadas são justas. Re-comprimir uma foto altera sua granulação e pode deslocá-la.
-
Um look no tronco merece seu lugar quando compartilha duas características distintivas com a foto (a linha
compartilha), não apenas uma cor. Uma correspondência acima de 50% é parentesco próximo; abaixo de 30% a década simplesmente não tinha nada mais próximo, então diga isso. -
Um ramo é bom quando sua frase de lacuna nomeia um par de características fortes que nenhum look na biblioteca possui juntas, seu look existente mais próximo está em 70% ou menos, e ainda mantém o enquadramento da foto. Recuse um ramo cuja receita se contradiz sobre o filme (viragem dividida em preto e branco): cultive outra semente.
-
Linhas sólidas são influência documentada; linhas pontilhadas são parentesco de características. Nunca apresente uma linha pontilhada como histórico.
-
Os números locais são aritmética que você pode verificar no JSON da árvore;
references/method.mdexplica cada um e seus limites.library/reading-card.mdé a mesma leitura feita a olho.
Gerando na conta Higgsfield do usuário
Nada nesta skill gera por si só. request escreve ~/LOWLIGHT STUDIO/<projeto>/requests/<id>.json (prompt, a foto do usuário como referência, proporção de aspecto). Claude o executa através do MCP Higgsfield conectado como o usuário e, em seguida, arquiva o resultado:
python3 scripts/studio_bus.py requests <projeto>
python3 scripts/studio_bus.py receive <projeto> <id> <arquivo baixado>
É uma edição de imagem: o prompt descreve apenas a luz, a cor e a superfície do filme do ramo. Use um modelo de edição que o plano do usuário ofereça (Nano Banana Pro ou um modelo de edição Seedream funcionam bem). Antes de executar qualquer coisa, diga ao usuário quantas gerações são e quanto custará no plano dele, e espere um sim. Veja references/generation.md.
Conversa com os outros departamentos
Veja references/studio.md. Ele lê taste de O Olho (THE EYE) quando existe (preferências e recusas orientam onde o ramo de 2027 cresce; o ramo diz taste_used) e publica lineage: as últimas doze árvores com seus nós e ramo, que O Olho pode usar como um baralho extra. Sem outros departamentos, funciona da mesma forma.
Arquivos
| Caminho | O que é |
|---|---|
scripts/lineage.py | o motor e sua linha de comando: example, trace, grow, export, request, status, trees, library, node, add |
scripts/meter.py | o medidor de foto: dez características, leituras, paleta, formato (python3 scripts/meter.py photo.jpg --brief) |
scripts/demo_photo.py | desenha as duas imagens de exemplo a partir do código (nenhuma foto de ninguém está incluída) |
scripts/selftest.py | uma execução de teste com fotos sintéticas e os exemplos: python3 scripts/selftest.py |
library/lineage.json | os 107 looks, anos 1930 a 2020: pessoas, motivo, características, paleta, pais |
library/examples/ | as duas imagens de exemplo, desenhadas a partir do código (veja seu README) |
library/reading-card.md | a mesma leitura a olho, para uma foto na parede ou no celular |
references/method.md | como o medidor, a década, o tronco e a lacuna são calculados, e seus limites |
references/library.md | como um look é escrito, como adicionar ou corrigir um |
references/generation.md | configuração do Higgsfield e como a solicitação é construída |
references/studio.md | o barramento compartilhado entre os departamentos do THE STUDIO |
Os resultados vão para ~/LOWLIGHT STUDIO/<projeto>/: trees/, requests/, received/.