Estúdio de Imagens de Alimentos para Restaurantes
Transforme fotos variadas de restaurantes reais em um conjunto coeso e pequeno de fotografias para o site. Use a foto real como autoridade factual para o prato. Use o Sistema de Fotografia do restaurante como autoridade para ângulo de câmera, composição, luz, fundo, cor, corte e apresentação voltada para o cliente.
Não preserve um ângulo fraco da fonte apenas porque é real. Quando uma foto de cima, desordenada ou inconsistente não se encaixa no sistema do site, use reference-restage para apresentar o mesmo prato a partir da câmera voltada para o cliente bloqueada. Nunca deixe que a reencenação mude os fatos do prato.
Leia references/food-image-playbook.md antes de coletar, planejar, gerar ou revisar. Copie as estruturas do Manifesto V3 e do Bloqueio de Estilo agrupadas em vez de inventar uma ordem de serviço.
Escolha o Modo
- Coletar: Recupere candidatos reais de um restaurante e salve a proveniência.
- Auditar: Verifique a identidade do restaurante, visibilidade do prato, ângulo da fonte e risco de reencenação. Não gere.
- Criar: Bloqueie um Sistema de Fotografia, direcione cada fonte, gere uma foto projetada por fonte real e retenha o tempo.
- Reparar: Regere a partir da fonte real e do Sistema de Fotografia bloqueado após diagnosticar uma verificação com falha.
- Revisar: Retenha o artefato canônico de fonte/saída e todas as cinco decisões de QA automaticamente.
Deixe $restaurant-demo-builder estabelecer a evidência de negócio, público, layout do site e slots de imagem para uma Demonstração completa. Use esta Skill para o sistema de fotografia de alimentos e ativos.
Mantenha a Revisão de Evidências Não Bloqueante
Trate as fichas canônicas de candidato, fonte e fonte versus saída como registros de evidência automáticos, não solicitações de aprovação. Uma vez que uma ficha de fonte canônica exista, registre cada fonte elegível com status: recorded, reviewer: workflow, valide o estágio generate e continue para a geração de imagem sem esperar pelo usuário. Após a QA de saída, registre a comparação canônica da mesma forma e continue para a verificação da Demonstração privada.
Pare apenas quando a evidência ou validação falhar, existir um registro changes-requested atual, a fonte não puder suportar verdadeiramente a imagem proposta, ou o usuário explicitamente pedir que a execução atual pause. A inspeção humana permanece disponível posteriormente e pode criar changes-requested; nunca é um pré-requisito para a geração. Mantenha a confirmação factual do proprietário e os direitos de publicação como verificações separadas de lançamento.
Execute o Contrato do Manifesto V3
Exija que cada imagem de alimento da Demonstração satisfaça todas estas regras:
- Vincule exatamente um
served-dish-photovisual primário único do mesmo restaurante. - Salve a fonte intocada localmente com identidade da plataforma, URL original e SHA-256.
- Forneça essa fonte real para imagegen. Nunca use geração de alimentos apenas por prompt.
- Registre
source_assessment.camera_view, adequação para o cliente e risco de detalhes ocultos. - Complete um
photography_systemno nível do restaurante antes da geração. - Use
constrained-editapenas quando a fonte já se encaixa nesse sistema. - Use
reference-restagequando a câmera, composição ou apresentação voltada para o cliente devem mudar. - Bloqueie reencenações que mudam o ângulo com alto risco de detalhes ocultos até que outra vista real esteja disponível.
- Aceite uma vista corroborante apenas quando for outra
served-dish-photoauditada ao vivo do mesmo restaurante com um registro de correspondência exata do mesmo prato. - Registre um plano de transformação por prato e ajustes de apetite permitidos.
- Registre o início, conclusão e duração do imagegen.
- Decodifique completamente a saída, registre sua largura e altura reais e verifique sua proporção de pixels em relação ao Sistema de Fotografia.
- Passe pelas cinco verificações separadas: fidelidade, consistência de estilo, otimização do apetite, artefatos de IA e prontidão para o site.
- Salve os artefatos canônicos de fonte real e fonte versus foto projetada.
- Passe pelo estágio
demodo Manifesto antes de copiar a saída para um site.
Se nenhuma foto de prato real crível existir, mantenha o slot liderado por texto, use uma imagem não alimentar separadamente aprovada, escolha outro prato fotografado ou solicite uma foto do proprietário.
Trate uma foto do proprietário como um candidato de aquisição futuro, não um primário visual, até que tenha um registro de coleta implementado, decodificação de pixel completa, ficha de candidato canônica e auditoria de candidato equivalente ao Apify/Masa. O Manifesto V3 atualmente admite apenas fotos auditadas do Apify Google Maps e do Masa como primários visuais.
Prepare a Ordem de Serviço
Crie output/food-image-studio/<restaurant-slug>/ com sources/, prompts/, drafts/, selected/ e review/. Use:
- assets/image-manifest-template.json para
image-manifest.json. - assets/style-lock-template.md para
style-lock.md.
Use nomes de arquivo ASCII em minúsculas. Nunca coloque tokens de API, chaves privadas ou segredos de conta nesses arquivos.
Em comandos, resolva <food-image-skill> a partir do localizador de skill disponível desta Skill.
Colete Referências de Pratos Reais
Execute o coletor apenas para o restaurante selecionado:
APIFY_TOKEN=... python3 <food-image-skill>/scripts/collect_real_references.py apify \
--place-id <google-place-id> \
--max-images 20 \
--output-dir <work-order>
python3 <food-image-skill>/scripts/collect_real_references.py masa \
--store-id <masa-store-id> \
--item-name <exact-menu-item-name> \
--output-dir <work-order>
Para uma URL do Maps, forneça também o Place ID conhecido independentemente; o registro retornado deve corresponder a ele:
APIFY_TOKEN=... python3 <food-image-skill>/scripts/collect_real_references.py apify \
--maps-url <exact-google-maps-place-url> \
--expected-place-id <google-place-id> \
--output-dir <work-order>
O coletor decodifica completamente pixels de JPEG, PNG e WebP e rejeita fontes abaixo de 300 px de borda curta ou 150.000 pixels totais. Ele exige que o Apify retorne o Place ID bloqueado e o Masa retorne o StoreID solicitado na resposta ou no contexto do item do menu. Nunca trata o identificador solicitado sozinho como evidência.
Importações JSON offline são apenas material de auditoria reproduzível. Elas retêm seu hash de entrada e nível offline-audit-only, mas não podem ser promovidas ou entrar em uma Demonstração.
Registre a Auditoria Independente de Candidatos
Renderize a ficha canônica de candidatos não classificados:
python3 <food-image-skill>/scripts/make_candidate_sheet.py \
--source-index <work-order>/source-index.json \
--out <work-order>/review/candidate-sources.svg
Inspecione cada candidato local com view_image e a ficha retida. Rejeite capturas de tela, menus, placeholders, imagens de banco, imagens sintéticas, alimentos obscurecidos e listagens erradas. Registre a classificação como uma etapa de auditoria automática; não pause para aprovação do usuário:
python3 <food-image-skill>/scripts/record_candidate_review.py \
--source-index <work-order>/source-index.json \
--candidate-sheet <work-order>/review/candidate-sources.svg \
--candidate-id <candidate-id> \
--out <work-order>/review/<candidate-id>.json \
--status recorded \
--reviewer workflow \
--classification served-dish-photo \
--restaurant-match verified \
--restaurant-match-notes <identity-evidence> \
--dish-visibility served-dish-visible \
--visual-notes <visible-served-dish-evidence> \
--notes <audit-summary>
O registro de auditoria bloqueia o ID do candidato, hash da fonte intocada, hash do índice de fontes, hash da ficha canônica de candidatos, revisor, timestamp, classificação e descobertas visuais. Registre candidatos não alimentares sob sua classificação real e não os promova. Um registro changes-requested posterior bloqueia imediatamente a promoção e a validação da Demonstração.
Avalie a Foto Antes de Escolher um Modo
Registre a vista da câmera da fonte como overhead, near-overhead, three-quarter, low-angle, straight-on ou unknown. Em seguida, registre:
fit: a fonte já corresponde ao Sistema de Fotografia; permitaconstrained-edit.restage-required: o prato é factual, mas o ângulo ou composição não é voltado para o cliente; exijareference-restage.unusable: a comida está muito obscurecida ou incerta; bloqueie a geração.
Não chame uma foto de cima de fit quando o sistema voltado para o cliente bloqueado é de mesa a três quartos. O erro do Sake Sushi é o antipadrão canônico: uma fonte real de cima não pode passar apenas porque uma edição mantém a mesma composição de cima.
O validador aplica a compatibilidade da família de câmeras. Fontes overhead e near-overhead não podem ser marcadas como fit para three-quarter-tabletop, low-tabletop ou straight-on; vistas incompatíveis devem ser restage-required, definir angle_change_required: true e usar reference-restage.
Promova um candidato por saída proposta:
python3 <food-image-skill>/scripts/promote_candidate.py \
--source-index <work-order>/source-index.json \
--candidate-review <work-order>/review/<candidate-id>.json \
--manifest <work-order>/image-manifest.json \
--candidate-id <candidate-id> \
--dish-id <dish-id> \
--dish-name <dish-name> \
--restaurant-name <restaurant-name> \
--restaurant-slug <restaurant-slug> \
--location <location> \
--google-place-id <place-id> \
--dish-match-status <exact-or-category-only> \
--dish-match-notes <name-or-category-evidence> \
--source-camera-view overhead \
--customer-facing-fit restage-required \
--hidden-detail-risk medium \
--composition-notes <why-the-snapshot-needs-restaging> \
--angle-change-required yes \
--generation-mode reference-restage
Use --masa-store-id em vez de --google-place-id para o Masa.
A promoção aceita apenas um recorded / audit-record atual classificado como served-dish-photo de uma coleção live-verified. Ela copia a proveniência original completa e os metadados da fonte para o Manifesto. Os arquivos de índice de fontes e revisão de candidatos permanecem vinculados ao hash e são revalidados em todos os estágios posteriores.
Trate live-verified como evidência atestada pelo fluxo de trabalho, não uma assinatura criptográfica do Apify ou Masa. Alguém com acesso de escrita à ordem de serviço pode editar JSON local e recalcular hashes locais. Quando a proveniência for disputada ou antes de um lançamento público depender desse ativo, reexecute a coleta do provedor ao vivo, compare a identidade do restaurante retornada e o hash da imagem, ou substitua-o por um ativo do proprietário aprovado que tenha passado por uma auditoria futura de ingestão do proprietário. Nunca descreva a cadeia local como à prova de adulteração.
Bloqueie um Sistema de Fotografia Projetado
Complete tanto o photography_system estruturado quanto o style-lock.md antes da geração. Bloqueie uma família de câmera primária para o conjunto do restaurante, normalmente um sistema three-quarter-tabletop repetível em torno de 35–45 graus para fotografia de alimentos casual e voltada para o cliente. Registre uma tolerância de ângulo não superior a 15 graus.
Bloqueie todas estas variáveis:
- ângulo alvo, altura da câmera, sensação da lente e escala do assunto;
- proporção de aspecto, corte e espaço negativo do site;
- superfície, família de fundo e restrição de adereços;
- direção da luz, qualidade da luz e caráter da sombra;
- exposição, balanço de branco, saturação e contraste;
- tratamento do apetite e imperfeições reais aceitáveis;
- as pistas naturais necessárias para evitar uma aparência renderizada por IA.
Use uma família de câmera primária em todo o conjunto. Não alterne casualmente entre imagens de cima, de frente e a três quartos.
Planeje a Otimização Verdadeira do Apetite
Registre ajustes específicos do prato antes de gerar o prompt. Permita apenas melhorias suportadas pela fonte:
- aumentar modestamente a exposição e corrigir o balanço de branco;
- tornar o pão ou crosta existente naturalmente mais quente e dourado;
- clarear um selamento existente, borda crocante, cor de vegetal ou brilho de molho;
- limpar detalhes de fundo distrativos e melhorar a colocação do prato;
- preservar variação de serviço ordinária, cortes irregulares e assimetria da fonte.
Não invente douramento, marcas de grelha, guarnição, ingredientes, molho, vapor, porção, recipiente ou apresentação luxuosa. "Mais apetitoso" é uma meta de apresentação, não permissão para redesenhar a comida.
Registre o Artefato de Fonte Automaticamente
Exija que o Sistema de Fotografia estruturado, o Bloqueio de Estilo e cada plano de transformação estejam completos antes de criar a ficha de fonte:
python3 <food-image-skill>/scripts/validate_manifest.py \
--manifest <image-manifest.json> \
--stage plan
Em seguida, crie e retenha a ficha de fonte canônica e registre-a sem pausar:
python3 <food-image-skill>/scripts/make_contact_sheet.py \
--manifest <image-manifest.json> \
--stage source \
--out <work-order>/review/source-review.svg
python3 <food-image-skill>/scripts/record_review.py \
--manifest <image-manifest.json> \
--dish-id <dish-id> \
--gate source \
--status recorded \
--reviewer workflow \
--notes <source-angle-route-and-evidence-notes>
Não pause após renderizar a ficha. Registre cada fonte elegível automaticamente, substitua todos os marcadores TODO do prompt, exija validate_manifest.py --stage generate e prossiga diretamente para a geração de imagem quando a validação passar.
Gere a Foto Projetada
Use $imagegen. Forneça o primário visual em cada chamada e adicione vistas corroborantes reais quando o risco de detalhes ocultos as exigir. Em cada prompt:
Para cada ID corroborante, registre source_assessment.supporting_source_matches.<source-id> com status: exact e notas específicas do mesmo prato. Inclua apenas essas vistas reais auditadas após o primário visual em output.input_source_ids; documentos de menu, fotos do local, imagens de banco e imagens sintéticas não podem satisfazer o risco de detalhes ocultos.
- Nomeie o ID da fonte e
constrained-editoureference-restage. - Nomeie a família de câmera alvo e o ângulo alvo explicitamente.
- Trate a fonte real como verdade do prato e o Sistema de Fotografia como verdade da apresentação.
- Repita fatos alimentares verificados, contagens, porção, acompanhamentos, molho, ponto de cozimento e recipiente.
- Descreva apenas a composição planejada e as melhorias de apetite.
- Preserve irregularidades reais e apresentação ordinária de restaurante independente.
- Proíba brilho plástico, textura cerosa, geometria repetida, simetria perfeita, bordas malformadas, efeitos falsos, texto e logotipos.
- Faça um...