gpt-image2-ppt -- Gere PPT com gpt-image-2
Transforme um roteiro em Markdown (ou slides_plan.json) + um estilo visual em slides diretamente via API oficial de imagens da OpenAI (gpt-image-2), gerando página por página e empacotando tudo em um .pptx 16:9.
Estilos Disponíveis
| ID do Estilo | Proposta | Cenários de Uso |
|---|---|---|
gradient-glass | Apple Vision OS / Spatial Glass | Lançamento de produto de IA, compartilhamento técnico, propostas criativas |
clean-tech-blue | Azul e branco estilo Stripe / Linear | Roadshow de investimento, plano de negócios, estratégia empresarial |
vector-illustration | Ilustração vetorial retrô + contorno preto | Educação e treinamento, história de marca, compartilhamento comunitário |
editorial-mono | Design editorial Kinfolk / Monocle | Lançamento de marca, entrevistas culturais, compartilhamento de livros |
dark-aurora | Neon escuro estilo Linear / Vercel | Produtos de IA, ferramentas de desenvolvedor, compartilhamento técnico |
risograph | Impressão Risografia duas cores + textura de retícula | Estúdio criativo, marca cultural, zine independente |
japanese-wabi | Wabi-sabi estilo Muji / Kenya Hara | Cerimônia do chá, estilo de vida, luxo, palestras culturais |
swiss-grid | Grade internacional Bauhaus / Vignelli | Relatórios acadêmicos, exposições de museu, apresentações sérias |
hand-sketch | Sketchnote / Quadro branco desenhado à mão | Workshops, brainstorming de produtos, treinamento |
y2k-chrome | Metal líquido Y2K + adesivos de borboleta | Streetwear, entretenimento, colaborações de marca, marketing Geração Z |
abstract-art-showcase | Preto e branco minimalista, sensação de galeria de arte, fontes grandes e imagens abstratas | Curadoria de arte, portfólio, apresentação de branding |
coal-industry-business-company-profile | Marrom industrial escuro, títulos grossos, linhas estruturais e ícones robustos | Energia, manufatura, apresentação de empresa de ativos pesados |
college-candy-aesthetics-infographics | Cores candy, clima universitário, infográficos arredondados e decoração leve | Educação, atividades no campus, divulgação de dados leves |
creative-agency | Clima de agência criativa, colagem visual forte, ritmo tipográfico marcante | Propostas de agência, branding, apresentações criativas |
culinary-innovation | Inovação gastronômica, fotografia de ingredientes, blocos de cores quentes e layout de revista | Marcas gastronômicas, inovação alimentar, lançamento de menu/novo produto |
data-science-consulting | Consultoria de dados cinza-azulado, layout modular, gráficos e hierarquia de informações técnicas | Análise de dados, consultoria de IA, digitalização empresarial |
mindfulness-in-the-classroom-breathing-techniques | Paleta suave de saúde mental, espaços em branco, blocos arredondados e ilustrações calmas | Saúde mental, atividades em sala de aula, cursos de técnicas de respiração |
mind-maps-workshop-professional | Estilo profissional de workshop, nós de mapa mental, estrutura de fluxo clara | Workshops de treinamento, metodologias, cocriação em equipe |
meeting-agenda | Clima de pauta de reunião, grade limpa, agrupamento de informações forte e títulos comerciais | Reuniões regulares, sincronização de projetos, relatórios à gestão |
investment-company-business-plan | Textura de instituição de investimento, contraste claro-escuro, layout comercial sóbrio | Plano de investimento, apresentação de fundo, plano de negócios |
indigenous-cultures | Padrões culturais, cores naturais, textura artesanal e composição narrativa | Cursos culturais, temas históricos, educação filantrópica |
health-disparities-and-social-determinants-of-health-doctor-of-philosophy-phd-in-health-behavior-and-health-education | Estilo acadêmico de saúde pública, grade racional, paleta médica suave e hierarquia de tese | Defesa de tese médica, relatório de saúde pública, pesquisa educacional |
geometric-duotone-thesis | Geométrico duotônico, clima de defesa de tese, formas cortadas e títulos fortes | Defesa acadêmica, relatório de pesquisa, conteúdo baseado em capítulos |
geometric-clinical-case | Geométrico de estilo médico atual, paleta fria, fichas de caso clínico e colunas claras | Casos clínicos, treinamento médico, relatórios de diagnóstico |
geometric-business | Blocos geométricos comerciais, tom verde-azulado sólido, linguagem gráfica simples | Plano de negócios, relatório de equipe, estratégia de produto |
formal-lavender-portfolio | Sensação formal lavanda, espaço em branco de portfólio, linhas finas elegantes e layout suave | Portfólio pessoal, currículo de design, exibição profissional |
flowery | Decoração floral, blocos de cor suaves, layout romântico mas organizado | Estilo de vida, marca feminina, introdução de evento |
first-impressions | Tema de primeira impressão, forte visual de capa, relação dramática entre pessoa/título | Treinamento de entrevista, marca pessoal, curso de comunicação |
final-year-project-thesis-defense | Defesa de TCC, grade acadêmica, seções claras e páginas de dados | Defesa de graduação, conclusão de projeto, exibição de pesquisa |
fashion-business-consulting-toolkit-aesthetic | Consultoria de moda, colagem sofisticada, layout de revista e neutros | Negócios de moda, consultoria de marca, relatório de tendências |
economic-impact-of-coronavirus | Estilo de relatório de impacto econômico, infográficos sérios, paleta fria e narrativa de dados | Macroeconomia, análise de políticas, relatório de risco |
eco-green-business-plan | Verde sálvia, fotografia de materiais naturais, negócios ecológicos e tela dividida minimalista | Negócios sustentáveis, marca ecológica, estilo de vida saudável |
Todos os estilos disponíveis estão em styles/ agrupados por coleção, com uso idêntico: initial/ com 10 estilos iniciais, featured/ com 22 selecionados, e xiamulingzi/ com 233 estilos fornecidos pela designer @夏目玲子. Índice completo em styles/README.md; capas dos estilos selecionados em docs/distilled-styles.md.
Diretrizes de Seleção de Estilo: Escolha o estilo mais adequado em
styles/com base no conteúdo. Para tecnologia, vejadark-aurora/gradient-glass/data-science-consulting; para negócios,clean-tech-blue/editorial-mono/eco-green-business-plan/investment-company-business-plan; para cultura e estilo de vida,japanese-wabi/vector-illustration/culinary-innovation/flowery; para acadêmico,swiss-grid/geometric-duotone-thesis/final-year-project-thesis-defense; para workshops e treinamento,hand-sketch/mind-maps-workshop-professional/mindfulness-in-the-classroom-breathing-techniques.
Receitas de Cenários (Modelos Iniciais Opcionais)
examples/ não é uma nova skill nem obrigatório em tempo de execução; é uma biblioteca de modelos iniciais para ajudar o agente a escrever a primeira versão de slides_plan.md quando o usuário fornece apenas requisitos vagos.
Regras de ativação:
- Se o usuário já forneceu um roteiro completo /
slides_plan.mdcompleto /slides_plan.jsoncompleto, não use a receita; vá direto para o fluxo de geração com o conteúdo do usuário. - Se o usuário disser apenas "faça um PPT de lançamento de produto / roadshow de investimento / relatório semanal / material de curso / defesa de tese / compartilhamento de livro" e não der estrutura de páginas clara, primeiro verifique
examples/se há uma receita correspondente. - A receita serve apenas como referência estrutural: leia
examples/<id>/recipe.mdpara o cenário, estilo recomendado e observações; depois useexamples/<id>/slides_plan.mdcomo modelo de estrutura de páginas, reescrevendo com o tema e conteúdo do usuário. - Não use produtos, empresas, projetos ou dados fictícios dos exemplos como resultado final; substitua pelas informações fornecidas pelo usuário ou marque claramente como conteúdo placeholder e aguarde confirmação do usuário.
- Se o usuário fornecer imagens reais, logotipos, capturas de tela, gráficos de tese ou UIs de produto, siga as regras de "colagem de imagem real externa"; a receita cuida apenas da estrutura de conteúdo, não substitui o fluxo de fidelidade de assets.
Receitas atuais:
| Cenário do Usuário | Diretório da Receita | Estilo Recomendado |
|---|---|---|
| Lançamento de produto, novo recurso, apresentação de IA | examples/product-launch/ | gradient-glass |
| Roadshow de investimento, plano de negócios, relatório a investidores | examples/investor-pitch/ | clean-tech-blue |
| Relatório semanal/mensal de projeto, sincronização de reunião | examples/weekly-report/ | meeting-agenda |
| Material de curso, treinamento, divulgação de conhecimento | examples/courseware/ | vector-illustration |
| Defesa de tese, defesa de TCC, apresentação de conclusão | examples/thesis-defense/ | final-year-project-thesis-defense |
| Compartilhamento de livro, entrevista cultural, compartilhamento de opinião | examples/book-sharing/ | editorial-mono |
Modo de uso:
- Determine se a solicitação do usuário corresponde a alguma receita.
- Leia o
recipe.mdeslides_plan.mdcorrespondentes. - Crie um novo
slides_plan.mdbaseado no tema do usuário, sem modificar o arquivo de receita original. - Confirme com o usuário o número de páginas, títulos de cada página e conteúdo principal.
- Após confirmação do usuário, execute
md_to_plan.pypara converter para JSON e prossiga com o fluxo de estilo especificado ou clonagem de modelo.
Sidecar de Layout Bank para Estilos Internos (Único Formato de Execução)
Estilos internos usam uma estrutura de dois arquivos: "MD para humanos, JSON para máquina":
styles/<collection>/<style-id>.md # Descrição do estilo, design tokens, prompts base
styles/<collection>/<style-id>.layouts.json # Obrigatório; layout bank por página para atribuição automática de formato de página
generate_ppt.py usará o .layouts.json de mesmo nome como RuntimeProfile sem imagem de referência: assign_layouts() atribui diferentes layouts, escrevendo visual_signature / content_capacity / best_for / avoid_for / variation_tags no prompt, e registra informações resumidas do layout escolhido em metadata.json.
Atualmente, todos os styles/**/*.md devem ter um .layouts.json correspondente no mesmo diretório e com o mesmo nome. Estilos antigos que possuem apenas Markdown sem sidecar causarão erro antes da geração de imagem, sem cair silenciosamente no prompt antigo; migre-os para o formato pareado primeiro. Ao destilar modelos públicos ou adicionar novos estilos internos, produza o sidecar JSON simultaneamente; não comprima o layout de várias páginas em apenas um parágrafo de texto "sistema de layout" no MD.
Kernel de Execução RuntimeProfile Unificado
Tanto a clonagem de modelo estrita quanto o sidecar de estilo estruturado são compilados no mesmo RuntimeProfile, passando por assign_layouts(), anexação de perfil de página, compilação de prompt e registro de metadados. O adaptador de entrada mantém apenas as diferenças necessárias:
template-clone: vem de--template-profileou análise de visão do modelo; o layout pode carregarreference_image, e apenas--template-strictrealmente a envia para geração.distilled-style: vem de<style>.md+<style>.layouts.json; usa roteamento de conteúdo e múltiplos layouts, sem depender de imagens de modelo.
O RuntimeProfile registra source_kind, prompt_strategy=layout-fields fixo, layouts e capabilities (routing / evidence / reference / portability). A prioridade é fixa: perfil de modelo válido > RuntimeProfile de estilo; se a análise de modelo não tiver layouts, deve realmente cair para o estilo estruturado, não apenas exibir um aviso. O runtime não inclui mais ramificações legacy-freeform ou layout sintético.
Modo de Clonagem de Modelo
Forneça um modelo .pptx diretamente para a skill e todas as páginas subsequentes imitarão este modelo.
# Uma linha: renderização automática + análise de modelo + geração de imagens. Requer backend de renderização PPTX disponível
python3 scripts/generate_ppt.py \
--plan slides_plan.json \
--template-pptx ./company-template.pptx \
--template-strict
--template-strict significa que cada página usará a página correspondente do modelo como referência de imagem para o gpt-image-2, com a melhor fidelidade.
Renderização de Modelo: Não Precisa de PowerPoint Instalado
A skill inclui render_template.py, que renderiza automaticamente o .pptx em PNGs por página, salvando em <cwd>/template_renders/<stem>/page-NN.png.
Verificação Prévia do Agente (Obrigatória para Clonagem de Modelo)
Antes de executar qualquer comando --template-pptx, você DEVE verificar se o sistema possui um backend de renderização PPTX disponível.
Método de verificação:
- Melhor: Execute
python3 scripts/render_template.py --checkno diretório da skill. Ele verificará se o backend é realmente executável, não apenas se o caminho existe. - macOS: Verifique primeiro
/Applications/Keynote.appe se o AppleScript pode ser executado; caso contrário, verifiquelibreoffice --version || soffice --version. - Windows: Verifique primeiro se o PowerPoint COM pode ser iniciado; caso contrário, verifique
libreoffice --version/soffice --version. - Linux / camada de compatibilidade: Verifique
libreoffice --version || soffice --version, não use apenaswhich.
Nota: Ambientes Harmony / Termux / contêiner / arquitetura especial podem parecer Linux, mas não assuma que binários Linux aarch64 do LibreOffice funcionam; confie apenas no resultado real da execução de render_template.py --check ou soffice --version. Não use aspose-slides como fallback padrão, pois não possui wheels instaláveis em muitos ambientes Python móveis/especiais.
Se nenhum backend estiver disponível, informe ao usuário que a renderização de modelo requer a instalação de um LibreOffice executável, ou que ele pode exportar manualmente cada página do modelo como page-01.png, page-02.png no desktop e passá-las via --template-images. Comandos de instalação opcionais:
| Plataforma | Comando de Instalação |
|---|---|
| Windows | winget install LibreOffice.LibreOffice |
| macOS | brew install --cask libreoffice |
| Linux (Debian/Ubuntu) | sudo apt-get install -y libreoffice |
| Linux (Fedora/RHEL) | sudo dnf install -y libreoffice |
| Linux (Arch) | sudo pacman -S --noconfirm libreoffice-fresh |
Após a instalação, verifique novamente para confirmar a existência de um backend de renderização funcional antes de continuar.
Nota: No Windows,
wingeté nativo do Win10/11, mas exibirá uma caixa de confirmação UAC que requer ação do usuário; no macOS,brewrequer o Homebrew instalado.
O render_template.py seleciona o backend de renderização automaticamente por prioridade:
- Windows: PowerPoint COM (prioridade se o Office estiver instalado, gera PNG direto, pula etapa PDF) > LibreOffice
- macOS: Keynote AppleScript (prioridade se o Keynote estiver instalado, gera PNG direto) > LibreOffice
- Linux / camada de compatibilidade: Comando LibreOffice / soffice confirmado como executável via
--version - PDF -> PNG via
pymupdf(já em requirements); se não instalado, usepdf2image+ poppler
Ao executar generate_ppt.py --template-pptx ... omitindo --template-images, a renderização será chamada automaticamente; também pode ser executada manualmente primeiro:
python3 scripts/render_template.py company-template.pptx
# -> <cwd>/template_renders/company_template/page-01.png ... page-NN.png
Cache de Dois Níveis para Imitação de Modelo
| Recurso | Caminho | Uso |
|---|---|---|
| PNGs de cada página do modelo | <cwd>/template_renders/<stem>/page-NN.png | Reutilização de renderização única pelo backend local |
| Análise de estilo do modelo | <cwd>/template_cache/<sha256>.json ou template_profile.json manual | Gerado por agente multimodal ao visualizar imagens; agente de texto puro precisa de visão externa |
| Artefatos gerados | <cwd>/outputs/<timestamp>/ | Novo diretório a cada execução |
Todos estão sob o cwd do chamador, naturalmente alinhados com o projeto; recomenda-se adicionar template_renders/, template_cache/, outputs/ ao .gitignore do projeto.
Análise de modelo por imagem (deixe o agente decidir se precisa configurar VISION_*) :
- Se o agente de código atual for multimodal (ex.: Claude multimodal do Claude Code, GPT multimodal do Codex): Sem configuração adicional de
VISION_*. O agente lê diretamentetemplate_renders/<stem>/page-*.pnge geratemplate_profile.jsonconforme a estruturaTemplateProfiledotemplate_analyzer.py, passando--template-profile template_profile.jsonparagenerate_ppt.py. Se usar--template-strict, cada layout deve incluirreference_image(caminho absoluto ou acessível do PNG do modelo). - Se o agente de código atual for de texto puro (ex.: apenas modelo de texto DeepSeek): Ele não consegue ver capturas de tela do modelo; precisa configurar
VISION_BASE_URL/VISION_API_KEY/VISION_MODEL_NAMEpara quetemplate_analyzer.pychame um endpoint multimodal compatível com OpenAI separado para análise do modelo.
A análise de visão e a geração de imagem pelo gpt-image-2 são sempre desacopladas — trocar o provedor de visão não afeta o pipeline de geração de imagem.
Instalação
git clone [email protected]:JuneYaooo/gpt-image2-ppt-skills.git
cd gpt-image2-ppt-skills
bash install_as_skill.sh --target claude # Claude Code
# ou
bash install_as_skill.sh --target codex # Codex
# Chaves necessárias para conexão direta à API devem ser injetadas via configuração do agente / variáveis de ambiente do sistema
Injeção de Variáveis de Ambiente (Conexão Direta à API)
Não escreva as chaves desta skill no .env da raiz do projeto de negócios do chamador, nem leia o .env genérico do projeto do usuário apenas para gerar imagens. Variáveis de ambiente devem ser injetadas da maneira padrão do framework do agente:
- Geral / CI / Servidor: Use variáveis de ambiente do sistema, Docker Compose
environment/env_file, Kubernetes Secret, CI Secret, etc. - Claude Code: Use
~/.claude/settings.jsondo usuário ou.claude/settings.local.jsondo projeto para injetar variáveis de ambiente; variáveis de ambiente da linha de comando têm a maior prioridade. - OpenClaw / Agente Personalizado: Use
apiKey/ env reference na configuração do framework para referenciar variáveis de ambiente do sistema, evitando colocar chaves em texto claro na configuração do projeto. - Fallback CLI standalone local: Pode configurar
GPT_IMAGE2_PPT_ENV=/path/to/private.envou usar o.envno diretório de instalação da skill; isso é apenas um fallback, não o.envdo projeto de negócios.
Conexão direta à API requer estas variáveis:
OPENAI_BASE_URL=https://api.openai.com # Ou qualquer relay compatível com OpenAI
OPENAI_API_KEY=sk-...
GPT_IMAGE_MODEL_NAME=gpt-image-2
GPT_IMAGE_QUALITY=high # low / medium / high / auto
# Opcional: backend de análise de visão para modo de clonagem de modelo.
# Agentes multimodais / Codex nativo podem analisar as imagens sozinhos para gerar --template-profile, sem precisar do grupo abaixo.
# Apenas agentes de texto puro (ex.: modelo de texto DeepSeek) precisam do grupo abaixo.
# Sem endpoint padrão embutido; preencha com um serviço de sua confiança, ou não preencha.
# VISION_BASE_URL=https://your-openai-compatible-relay.example.com/v1
# VISION_API_KEY=sk-...
# VISION_MODEL_NAME=gemini-3.1-pro-preview # Ou qualquer SKU multimodal como gpt-4o / claude-3.5-sonnet
A ordem de prioridade de configuração é fixa: variáveis de ambiente do processo atual > variáveis gpt-image2-ppt_* injetadas pela plataforma > GPT_IMAGE2_PPT_ENV / .env no diretório da skill; JULING_GPT_IMAGE2_* serve apenas como fallback de compatibilidade quando não há configuração OPENAI_* correspondente, sem substituir configurações explícitas.
Aviso de Segurança: O script lê apenas as variáveis de ambiente do processo atual, variáveis
gpt-image2-ppt_*injetadas pela plataforma,GPT_IMAGE2_PPT_ENVexplícito e o.envfallback no diretório de instalação da skill. O script não lerá recursivamente para cima o.envno diretório do projeto do chamador, evitando consumir acidentalmente chaves do projeto de negócios.python3 scripts/render_template.py --checkexecutará uma conversão real mínima para validar o backend de renderização.
Se Você é o Agente Codex (Geração de Imagem Nativa — Recomendado)
Se você mesmo é o Codex (o agente executando esta skill é o Codex CLI / Codex TUI) e o ambiente atual fornece a ferramenta image_generation e estado de login ChatGPT, não use generate_ppt.py ou --backend codex para gerar imagens. Use a ferramenta nativa para gerar as imagens e reutilize apenas a lógica de conversão MD / empacotamento PPTX deste repositório.
Limite crítico: Scripts Python são executados em subprocessos e não têm acesso à ferramenta nativa da sessão do agente atual. generate_ppt.py --backend codex só pode iniciar outro subprocesso codex exec para que outro Codex gere as imagens; não é "reutilizar a ferramenta image_generation do Codex atual". Portanto, quando o agente atual já pode gerar imagens nativamente, a ação de geração deve ser realizada pelo próprio agente, não delegada ao generate_ppt.py.
Como Determinar
Você pode acessar a ferramenta image_generation e não precisa configurar OPENAI_API_KEY manualmente para gerar imagens — se ambas as condições forem satisfeitas, siga o caminho nativo. Se a sessão Codex atual não tiver esta ferramenta, trate como agente normal: use conexão direta à API, backend alternativo --backend codex ou peça ao usuário para configurar o ambiente.
Fluxo de Geração (Caminho Nativo do Codex)
1. Preparar dados dos slides
Se ainda não houver slides_plan.json, primeiro siga os passos 2-3 do "Fluxo de Geração" abaixo para escrever slides_plan.md → python3 scripts/md_to_plan.py ... para converter para JSON.
2. Preparar prompt com runtime unificado
Não recrie generate_prompt() manualmente. Execute --prepare-only para que a conexão direta à API e o caminho nativo do Codex compartilhem o mesmo RuntimeProfile, roteamento de layout e compilador de prompt:
python3 scripts/generate_ppt.py \
--plan slides_plan.json \
--style styles/<collection>/<id>.md \
--prepare-only \
--output outputs/<timestamp>
Este comando não chama a API de imagens nem empacota PPTX; ele gera prompts.json, prompts de texto por página e metadata.json. Para testar uma única página, use --slides 1 simultaneamente.
3. Ler resultados compilados de cada página
Leia prompt, reference_image, asset_reference_image e layout_id de cada página em outputs/<timestamp>/prompts.json. Não remonte um Prompt com base no Markdown, pois isso ignoraria o layout bank estruturado.
4. Chamar ferramenta image_generation para gerar imagens
Para cada página, chame sua ferramenta image_generation:
prompt: O prompt completo já compilado para aquela página emprompts.jsonoutput_format:png- Se
reference_image/asset_reference_imageestiver registrado, passe-os como referência de imagem na ordem original - Salve a imagem retornada em
outputs/<timestamp>/images/slide-NN.png(NN é o número da página com dois dígitos)
Pode ser concorrente (máx. 4 concorrências recomendado para evitar rate limiting).
5. Empacotar PPTX
Se este deck não tiver objetos de imagem real externos, pode usar o empacotamento simples de PNG de página inteira abaixo. Se qualquer página tiver external_image / image_overlay / external_image_placeholder apontando para uma imagem real, não use este trecho de empacotamento simples, caso contrário a imagem real será mesclada no PNG de fundo da página inteira, e o usuário não poderá selecioná-la e movê-la individualmente no PowerPoint. Neste caso, use a lógica de empacotamento padrão do generate_ppt.py ou chame generate_pptx(..., metadata=metadata) em uma sessão existente, para que a imagem real seja colocada como objeto de imagem independente sobre o fundo.
python3 -c "
from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
import os, glob
for p in sorted(glob.glob('outputs/<timestamp>/images/slide-*.png')):
slide = prs.slides.add_slide(blank)
slide.shapes.add_picture(p, 0, 0, width=prs.slide_width, height=prs.slide_height)
prs.save('outputs/<timestamp>/<title>.pptx')
print('done')
"
A estrutura correta do PPTX para páginas com imagem real externa deve ser:
- Camada 1:
images/slide-XX.pngcomo imagem de fundo da página inteira (contém o fundo e o texto gerados pelo modelo). - Camada 2: A imagem real apontada por
sourcecomo objeto de imagem PPT independente, posicionada sobre o fundo conforme as coordenadas emslide_spec, podendo ser selecionada, movida e redimensionada no PowerPoint.
Modo de Clonagem de Modelo (Caminho Nativo do Codex)
Você mesmo é um agente multimodal — Read diretamente os PNGs de cada página do modelo para extrair o estilo visual, escreva template_profile.json (schema: TemplateProfile em template_analyzer.py, cada layout com reference_image), e use --template-profile template_profile.json --template-strict --prepare-only para compilar os prompts e referências de cada página; não escolha manualmente outra lógica de montagem de prompt.
Não precisa configurar VISION_* — você é a visão.
Diferença do --backend codex Abaixo
| Caminho Nativo (esta seção) | --backend codex | |
|---|---|---|
| Cenário de uso | Você é o agente Codex | Você é Claude Code / outro agente, usando o codex CLI local |
| Método de chamada | Chame a ferramenta image_generation diretamente | Inicie subprocesso codex exec --full-auto |
| Camadas de geração | 1 (a própria ferramenta nativa do agente) | 2 (seu agente → subprocesso codex → API de imagem) |
| Controle de qualidade de imagem | Confie na ferramenta nativa | Use --quality e size passados ao subprocesso |
| Necessidade de OPENAI_API_KEY | Não | Sim (ou ambiente do codex já configurado) |
| Depuração de prompt | Via --prepare-only e leitura de prompts.json | Difícil de inspecionar |
Fluxo de Geração (Conexão Direta à API, Caminho Padrão)
Use esta seção quando seu agente não for Codex (ex.: Claude Code, Cursor, agente personalizado) ou quando não houver ferramenta de geração de imagem nativa.
Etapas
-
Receber requisição do usuário → identificar cenário e estrutura do conteúdo
-
Criar slides_plan.md (se ainda não existir):
Estrutura:
# Título da Apresentação ## Slide 1: Título do Slide 1 - Ponto principal 1 - Ponto principal 2 ## Slide 2: Título do Slide 2 - Conteúdo... -
Converter para slides_plan.json (usando script embutido):
python3 scripts/md_to_plan.py slides_plan.md -o slides_plan.json -
Selecionar estilo (seguindo as diretrizes acima); se o usuário não especificar um, recomende um adequado.
-
Executar geração:
python3 scripts/generate_ppt.py \ --plan slides_plan.json \ --style styles/<collection>/<id>.md \ --quality high \ --output outputs/meu_deckOpcional: modo silencioso (
--silent) para suprimir saída detalhada; ideal para CI. -
Resultado:
outputs/meu_deck/slide-01.png ... slide-NN.png+outputs/meu_deck/apresentacao.pptx
Parâmetros
| Parâmetro | Obrigatório | Padrão | Descrição |
|---|---|---|---|
--plan | Sim | - | Caminho para slides_plan.json |
--style | Sim (se não for clonagem de modelo) | - | Caminho para o arquivo .md do estilo |
--template-pptx | Não | - | Caminho para modelo .pptx (modo clonagem) |
--template-strict | Não | - | Usar imagem de referência para cada página |
--template-profile | Não | - | Caminho para template_profile.json (análise de estilo) |
--quality | Não | high | Qualidade da imagem: low / medium / high / auto |
--output | Não | outputs/ | Diretório de saída |
--slides | Não | - | Intervalo de páginas para gerar (ex.: 1-3 ou 1,3,5) |
--prepare-only | Não | - | Apenas compilar prompts, sem gerar imagens ou PPTX |
--silent | Não | - | Modo silencioso |
--backend | Não | auto | Forçar backend: auto / openai / codex |
Observações
- A skill não suporta
legacy-freeformou layout sintético; todas as gerações usam o layout bank estruturado. - Para apresentações com dados confidenciais, recomenda-se processamento local (nenhum dado é enviado para servidores externos além da API da OpenAI).
- A skill suporta retry automático em caso de falha de geração (máx. 3 tentativas).
- A pasta
outputs/é criada no diretório de trabalho atual (cwd), não no diretório da skill.
Estrutura do Projeto
gpt-image2-ppt-skills/
├── SKILL.md # Este arquivo
├── install_as_skill.sh # Script de instalação
├── scripts/
│ ├── generate_ppt.py # Script principal de geração
│ ├── md_to_plan.py # Conversor de Markdown para JSON
│ ├── render_template.py # Renderização de modelo PPTX para PNG
│ └── template_analyzer.py # Análise de estilo de template
├── styles/
│ ├── README.md # Índice de estilos
│ ├── initial/ # 10 estilos iniciais
│ ├── featured/ # 22 estilos selecionados
│ └── xiamulingzi/ # 233 estilos de @夏目玲子
├── examples/ # Receitas de cenários (modelos iniciais)
├── docs/
│ └── distilled-styles.md # Capas de estilos selecionados
├── requirements.txt # Dependências Python
└── .gitignore
Dependências
- Python 3.10+
- OpenAI Python SDK (>=1.0.0) — para chamadas à API de imagem
- python-pptx — para criar arquivos .pptx
- pymupdf ou pdf2image + poppler — para conversão PDF para PNG (renderização de modelo)
- (Opcional) LibreOffice / Keynote / PowerPoint — para renderização local de modelo
Instalação:
pip install -r requirements.txt
Suporte e Contribuição
- Issues e sugestões: GitHub Issues
- Contribuições: Pull requests são bem-vindos!
- Estilos: Envie estilos personalizados via PR, seguindo o formato de sidecar duplo (
.md+.layouts.json).