O que image-riff — arte original numa linguagem visual emprestada faz?
O motor, sua chave de API, suas flags e suas armadilhas estão no skill make-art.
Leia-o primeiro. Este skill é o método: como transformar uma imagem de referência num conjunto de
opções reais, e como aplicá-las na superfície para a qual realmente se destinam.
Pronto não são quatro imagens bonitas. Pronto é: N placas geradas, cada quadro examinado, ranqueado com crítica honesta, os cortes de destino realizados, e o trabalho salvo na pasta de origem abaixo. Uma execução que para em "aqui estão quatro imagens" entrega ao usuário os últimos dois trabalhos.
Onde o trabalho é salvo
art/<slug-da-fonte>/
README.md título datado, o briefing, uma tabela de ranqueamento -> placa, e POR QUE a vencedora venceu
1-<slug>.jpg ... as finais, masters em resolução total, numeradas POR RANQUEAMENTO
upload-1024/ os entregáveis com o tamanho real, quando a superfície exige um tamanho específico
small-size-test.png a prova, quando a legibilidade no tamanho real decidiu
prompts/ os prompts das finais exatamente como enviados
candidates/<round>/ as rodadas que perderam, cada uma com seus próprios prompts/
<slug-da-fonte> é o corpo do trabalho, não a data. Se já existirem pastas irmãs,
siga a convenção delas.
- O README não é opcional. A pasta será revisada a frio, semanas depois. Sem ele, uma pasta de JPEGs numerados não pode dizer qual foi enviado, qual foi rejeitado, ou por quê.
- Mantenha as rodadas perdedoras.
candidates/é onde está o conhecimento reutilizável. - Mantenha os prompts na íntegra. Eles são as instruções de reprodução e a proveniência.
- Numere as finais por ranqueamento, não por ordem de geração. O nome do arquivo é onde o ranqueamento sobrevive depois que a conversa termina.
- Mantenha a arte gerada fora de uma biblioteca de fotos pessoal, a menos que solicitado; ela se mistura com fotografias reais.
Faça duas perguntas, depois gaste
A aproximadamente US$ 0,24 por imagem 4K, um conjunto de quatro placas custa cerca de US$ 1: barato o suficiente para que duas perguntas sejam o único obstáculo, caro o suficiente para que zero perguntas seja um desperdício. Ambas as respostas mudam a cada placa, então nenhuma pode ser inferida:
- Para que serve? Decide o aspecto e se deve deixar espaço negativo para texto.
- Quão distante da base? Reprodução fiel <-> reinterpretação radical.
Pergunte no eixo subjetivo; decida o técnico você mesmo.
O prompt tem três partes, e apenas uma varia
Construa-o em código, um arquivo por assunto:
STEM (idêntico para cada placa) — a linguagem de renderização, lida da imagem
SUBJECT (a única variável) — um parágrafo, uma composição
TAIL (idêntico para cada placa) — geometria + as negativas
Um modelo de STEM, como movimentos, não palavras:
Use a imagem anexada estritamente como âncora de estilo e cor. Reproduza sua linguagem de renderização exata: <período + meio>, <como a cor é aplicada>, , <textura / técnica de sombreamento>, <pigmentos nomeados, no máximo 2-3, mais o pequeno acento>, . NÃO copie o assunto da imagem anexada. Componha algo novo.
SUBJECT:
E o TAIL:
composição , sangria total de borda a borda. Sem borda, sem moldura, sem textura de papel, sem margem branca. Sem texto, sem letras, sem assinatura, sem logotipo.
Uma base fotográfica é o caso mais difícil: teste em 2K antes de gastar com um conjunto. "Reproduzir a linguagem de renderização, mudar o assunto" produz arte confiável a partir de uma base estilizada (um painel de quadrinhos, uma gravura). A partir de uma fotografia, pode executar perfeitamente e ainda assim decepcionar. Faça uma terceira pergunta quando a base for uma fotografia — isso deve parecer uma fotografia, ou algo diferente? — e gaste uma ou duas placas 2K antes de quatro placas 4K.
Quando a base é uma fotografia, os campos da STEM mudam, mas seu trabalho não. Substitua os campos de criação de marcas pelos seis itens que uma câmera decide: <estoque + formato>, , <qualidade e ângulo da luz>, <paleta, 3-4 cores nomeadas mais o acento>, <grão / halação / vinheta>, <o que NÃO é>. O último campo é o mais importante, porque o padrão do motor para qualquer prompt fotográfico é o digital contemporâneo: diga sem HDR, sem sombras levantadas, sem clareza digital, sem grade cinematográfica azul-esverdeada e laranja. Uma cláusula como "pretos profundamente esmagados que não retêm nenhum detalhe de sombra" pode ser a linha mais importante do prompt.
Leia também a base em busca de seu assunto implícito, não apenas de sua renderização (por exemplo,
um lugar privado, visto de cima, sem ninguém dentro). Nomeie-o em uma frase antes de escrever
qualquer SUBJECT; coloque invariantes como nenhuma pessoa visível em qualquer lugar do quadro no TAIL.
Por que é construído assim:
- A imagem carrega o estilo; a STEM apenas nomeia o que está visivelmente ali. Descreva a criação de marcas que você pode ver — linhas de contorno pretas e duras de espessura variável, sombreamento visível de pontos de meios-tons ben-day, misturas mecânicas aerografadas apenas, sem luz fotográfica. Nomear a técnica impede que o modelo a modernize.
- "NÃO copie o assunto... componha algo novo" é fundamental. Sem isso, você obtém uma variação da base. Com isso, você obtém composições originais na linguagem da base, e as melhores citam a base em vez de repeti-la.
- Nomeie pigmentos e limite o acento. Diga "pequeno" sobre o acento especificamente, ou ele domina o quadro.
- As negativas não são texto padrão. O motor adiciona uma borda de papel/riso por iniciativa própria; quatro negativas no TAIL não custam nada.
- STEM + TAIL idênticos tornam o conjunto comparável. Cada diferença entre as placas é uma que você pediu.
Os assuntos devem ser VANTAGENS, não decorações
A decisão criativa mais importante. Quatro assuntos que diferem em onde a câmera está:
| placa | vantagem | exemplo |
|---|---|---|
| spire (pináculo) | olhando diretamente para cima de um eixo vertical | uma torre surgindo de um mar de nuvens, estreitando-se em perspectiva |
| wreck (naufrágio) | olhando através de uma planície vazia | um naufrágio meio enterrado, uma figura minúscula caminhando até ele |
| descent (descida) | olhando abruptamente para baixo através de nuvens | um oceano de placas até um horizonte curvo, uma figura caindo para longe |
| mandala (mandala) | olhando para um padrão puro, sem horizonte | uma rosácea simétrica, de canto a canto |
As placas são enviadas por sua vantagem: uma coluna vertical sobrevive a um corte de banner letterbox; uma única silhueta contra o céu sobrevive a um corte de avatar quadrado. Quatro placas que diferem apenas em mobília todas cortam da mesma forma — uma opção em quatro fantasias. Uma ideia por placa.
Classifique contra o briefing — depois diga qual cada SUPERFÍCIE quer
Duas ordenações separadas. Classifique honestamente contra a base e nomeie a placa que se desviou; depois adicione uma linha por superfície de destino dizendo qual placa essa superfície quer e por que o corte a torna assim. A placa que você classifica por último em fidelidade pode ser o banner certo. Uma classificação baixa não é um veto; é um eixo.
Corte os recortes. Cada superfície tem uma geometria.
Entregue arquivos no tamanho do destino, não das placas de origem.
Banner do canal do YouTube — um upload 16:9; o YouTube serve uma fatia diferente por dispositivo.
- Armazenado / TV: 2560x1441.
- Faixa do desktop: 2560x424, o ~29,4% vertical do meio (topo 35,3% -> fundo 64,7%). Tudo que deve ser visto vive nessa faixa.
- Uma placa alta 9:16 tem ~3x a altura que um corte 16:9 precisa: escolha a faixa, não aceite o meio por padrão.
Avatar do canal — quadrado, servido de 900x900 até 88x88. Julgue em 88px.
Para ler o que um canal realmente serve:
UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36"
curl -sL -A "$UA" "https://www.youtube.com/@<canal>" | grep -o '"banner".\{0,400\}'
# o fcrop64 hex são quatro frações de 16 bits de 0xffff: esquerda, topo, direita, fundo
python3 -c "h='00005a57ffffa5a8'; print([round(int(h[i:i+4],16)/0xffff,4) for i in range(0,16,4)])"
Para outras superfícies, meça o ativo realmente servido antes de cortar; não confie em uma folha de especificações lembrada.
Mecânica
- Uma imagem de base colada não está no disco. Extraia-a do base64 da transcrição da sessão
(
make-arttem o trecho), depois olhe para ela antes de gastar uma geração 4K na imagem errada. - Gere o conjunto em paralelo, uma chamada de shell por placa. Quatro placas 4K chegam em ~2 minutos.
--out foo.pngpode escrever um JPEG. Verifique o mime impresso e renomeie.- Olhe para cada quadro você mesmo antes do usuário, e verifique a borda de papel em vez de avaliar visualmente: bordas assimétricas quase brancas nas bordas são céu ou nuvem atingindo o sangramento, não uma moldura.
Quando não há imagem de base
O mesmo prompt de três partes funciona sem âncora: a STEM se torna um estilo de casa que você define. Dê a ele uma âncora temática do material do próprio usuário (uma coleção de citações, um painel de inspiração) para que não seja genérico.
Ícones e avatares: o teste de tamanho pequeno é o único teste
A classificação pode inverter entre o tamanho total e o tamanho real. Crie a folha de contato antes de ter uma opinião: reduza a escala para o tamanho de renderização real, corte em círculo como o aplicativo faz, depois amplie por vizinho mais próximo para ver o que sobrevive.
from PIL import Image, ImageDraw
for s in (110, 44, 32): # IG: perfil / linha DM / anel do feed+story
small = Image.open(f"{n}.jpg").convert("RGB").resize((s, s), Image.LANCZOS)
mask = Image.new("L", (s*4, s*4), 0)
ImageDraw.Draw(mask).ellipse((0, 0, s*4-1, s*4-1), fill=255)
out = Image.new("RGB", (s, s), (245, 245, 247))
out.paste(small, (0, 0), mask.resize((s, s), Image.LANCZOS))
out.resize((s*5, s*5), Image.NEAREST).save(f"{n}_{s}.png") # NEAREST = veja os pixels
Uma placa deslumbrante em 110px pode ser um borrão ilegível em 44px. Geometria do Instagram: upload quadrado (1024x1024 funciona), renderizado como um círculo, ~110px no perfil, 44px em uma linha de DM, 32px em um anel de feed ou story. Julgue em 32.
Quatro restrições que fazem a diferença, todas invisíveis em tamanho real:
- Três cores planas, e não mais. Cada cor extra é um meio-tom, e meios-tons se fundem.
- Nada mais fino que 1/40 do quadro. Diga no prompt como um número.
- O emblema deve preencher >=85% da largura. Declare em maiúsculas; caso contrário, o motor centraliza uma marca modesta em muito terreno vazio.
- A cor quente pertence ao FUNDO, não a um brilho. Um destque especular não vale nada em 32px; um campo plano cheio de uma cor quente para um polegar. Instruções de brilho metálico se transformam em lama quando reduzidas.
Duas coisas que o motor adiciona por iniciativa própria
- Nunca mencione o corte circular no prompt. Ele desenhará o círculo. Diga em vez disso:
"o fundo plano e ininterrupto vai até todas as quatro bordas do quadrado; o emblema está
contido bem dentro dos três quartos centrais", e coloque
sem círculo, sem anel, sem medalhão, sem forma envolventeno TAIL. - Ele adiciona uma vinheta radial a menos que seja proibido. Exija "cada preenchimento absolutamente plano — sem gradiente, sem vinheta, sem escurecimento radial nos cantos ou bordas."
Nunca credite a imagem de base a partir de uma descrição de estilo
Uma frase de estilo que você escreveu ("na tradição de Moebius") não é uma atribuição; não deixe que ela se torne um crédito adiante. Se um crédito for para algum lugar público, pergunte pelo artista real. Um crédito errado para um artista real é pior do que um em branco.
Mais de uma imagem de base
--image é repetível, então várias âncoras são possíveis, mas menos testadas. Diga no prompt
qual imagem fornece o quê ("a imagem 1 é a linguagem de cor e linha; a imagem 2 é a estrutura")
e trate o primeiro conjunto como uma sonda.
Consulte também
brand-direction-plates (o conjunto inverso: várias LINGUAGENS em um assunto) ·
make-art (o motor, as flags, a extração de colagem, a verificação de borda).