{"full_name":"hugohe3/ppt-master","owner":"hugohe3","name":"ppt-master","url":"https://github.com/hugohe3/ppt-master","description":"AI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations, data-backed charts and tables on demand, audio narration from speaker notes, and support for your own .pptx templates. · by Hugo He","homepage":"https://hugohe3.github.io/ppt-master-examples/","topics":[],"language":"Python","license":"MIT","avatar":"https://avatars.githubusercontent.com/u/188330578?u=b7ceb32d5a3568c13d9b3c6c42295ba8fb8ae83c&v=4","created_at":"2025-12-10T06:54:33Z","pushed_at":"2026-11-09T13:39:54Z","metrics":{"stars":75452,"forks":5899,"watchers":136,"issues":157,"prs":122,"releases":39,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":56},"growth":{"day":{"stars":365,"forks":18,"base_day":"2026-11-09"},"week":{"stars":2878,"forks":208,"base_day":"2026-11-03"},"month":{"stars":17714,"forks":1338,"base_day":"2026-10-11"}},"history":{"dates":["2026-09-12","2026-09-13","2026-09-14","2026-09-15","2026-09-16","2026-09-17","2026-09-18","2026-09-19","2026-09-20","2026-09-21","2026-09-22","2026-09-23","2026-09-24","2026-09-25","2026-09-26","2026-09-27","2026-09-28","2026-09-29","2026-09-30","2026-10-01","2026-10-02","2026-10-03","2026-10-04","2026-10-05","2026-10-06","2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13","2026-10-14","2026-10-15","2026-10-16","2026-10-17","2026-10-18","2026-10-19","2026-10-20","2026-10-21","2026-10-22","2026-10-23","2026-10-24","2026-10-25","2026-10-26","2026-10-27","2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[50445,51126,51472,51770,52013,52196,52777,53063,53323,53536,53721,53883,54320,54574,54805,55002,55188,55334,55772,55971,56142,56282,56380,56500,56830,57005,57265,57379,57488,57738,57872,58060,58300,58693,59260,61038,61629,62021,62409,62723,63133,63844,64458,65183,65961,66716,67390,68875,69561,70192,70795,71294,72574,73066,75087,75452],"forks":[4056,4098,4120,4148,4164,4180,4217,4238,4259,4275,4292,4299,4320,4334,4344,4359,4376,4385,4419,4437,4451,4465,4472,4482,4500,4512,4527,4531,4542,4561,4567,4574,4587,4625,4669,4826,4882,4913,4950,4971,5000,5048,5084,5123,5180,5229,5278,5375,5427,5481,5524,5559,5691,5737,5881,5899],"watchers":[102,107,109,108,108,108,109,110,110,111,111,111,111,111,111,111,112,113,114,114,113,113,113,113,113,113,114,114,114,114,115,116,116,116,116,117,119,119,121,122,126,127,128,129,129,130,126,128,129,131,131,133,135,136,136,136],"issues_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"boards":{"daily":95,"weekly":41,"monthly":25,"weekly_rate":105,"monthly_rate":74},"same_owner":[],"issues":[{"number":225,"title":"这是一个置顶的优秀教程合集","comments":11,"created_at":"2026-07-05T08:05:21Z"}],"discussions":[{"number":345,"title":"桌面应用 AnyModelBot 把 PPT Master 的工作流做成了现成的「PPT 大师」Bot / A desktop Bot built on PPT Master's workflow","comments":0,"category":"Show and tell","created_at":"2026-11-05T07:34:10Z"},{"number":344,"title":"感觉 token 花费很高","comments":3,"category":"Q&A","created_at":"2026-11-02T14:55:36Z"},{"number":328,"title":"为什么自己做一个agent，对接大模型平台api，发现跑一次至少要消耗100M token，跑在其他工具上消耗怎么样","comments":2,"category":"General","created_at":"2026-10-26T09:02:51Z"},{"number":321,"title":"Windows 安装出现 `UnicodeDecodeError` 编码错误","comments":1,"category":"Show and tell","created_at":"2026-10-20T01:07:11Z"},{"number":318,"title":"这个插件能兼容deepseek harness么？","comments":1,"category":"Q&A","created_at":"2026-10-13T11:20:50Z"},{"number":276,"title":"[Offer] A mount-only governance layer for ppt-master — skill tooling meets skill library (non-invasive) / 技能工具×技能库的非侵入治理层挂载邀请","comments":1,"category":"General","created_at":"2026-08-31T04:40:37Z"},{"number":272,"title":"自动缩放处理的情况","comments":1,"category":"General","created_at":"2026-08-20T09:29:59Z"},{"number":271,"title":"我做成一个可以实时预览和编辑的AI PPT应用","comments":3,"category":"Show and tell","created_at":"2026-08-18T14:34:01Z"}],"latest_release":{"name":"v6.9.0","tag":"v6.9.0","published_at":"2026-11-08T10:38:28Z","body":"Image to PPTX gains OCR text evidence, text-removed bases, and checked image layers, and now runs on any vision host with an `image_gen.py` reference-image backend. Narration adds an OpenAI Realtime provider, `image_gen.py` can produce animated GIFs on OpenAI `gpt-image-2.6`, and a round of conversion and round-trip fixes stops sources from being overwritten or silently altered.\n\n## Image to PPTX\n\n- New `scripts/image_ocr.py`: `scan` OCRs normalized page images into reviewable text blocks (line boxes, estimated font size, sampled ink color), and the text layer becomes native text over a text-removed base. Removal results are composited back onto source pixels, and merged bases are checked for text left inside removal boxes (37efd014, e55a56ff, 574265a0, d1619e4f).\n- New `scripts/image_layers.py`: `check` verifies an extracted layer is registered against the page, `diff-matte` derives a layer from the page's own pixels, `mono-matte` cuts a single-color graphic (such as a white logo) cleanly from a key plate, and merges are layer-aware and honour occlusion (bbc84447, 3c5cd655, 4a68cdda, 79d7cf57).\n- The profile is no longer tied to one host: any vision host with a reference-image path works, either host-native editing or `image_gen.py --reference-image` (OpenAI, Gemini). Every page follows one assembly path; text removal defaults to `-b openai` and registered layers to `-b gemini`, with at most two residue retries before a page is marked for manual work (9577d604, 09547b1a, 7387d7b9, 6b0a2a5a, 8e809511).\n\n## AI image generation\n\n- `image_gen.py --gif-frames N [--gif-frame-ms MS]` returns an animated GIF from OpenAI `gpt-image-2.6-*`, for new images or to animate an existing one with `--reference-image`. Frame sizes are fitted to the server's sprite-sheet grids, which were measured on every frame count (db3bfc13).\n- `gpt-image-2.6-*` models get the same size and quality handling as the 2.5 family (7c0eb65d).\n- Each image is written once in its filename's format: a `.jpg` item keeps Gemini's JPEG bytes unchanged instead of a PNG round trip, and no orphan `.png` is left behind (8fe777ae).\n- In manifest runs, rate limits go straight to the runner, which halves concurrency and honours `Retry-After` on the first 429 instead of after four backend retries. Successes are persisted from the worker thread, and each completion line reports the delivered pixels (9828c101, 54385b11, 650b5838, 946241c6).\n- Sheet slicing respects sheets that carry their own transparency, source sheets are protected from being overwritten, and 16-bit grayscale images convert correctly (8db9dc57, 75e1fbf5, ce27cae0).\n- New [AI Image Generation](https://github.com/hugohe3/ppt-master/blob/main/docs/image-generation.md) page records measured cost, size limits, text rendering, editing, and GIF behavior of the OpenAI and Gemini models (a99224bc).\n\n## Narration\n\n- `notes_to_audio.py --provider openai` uses `gpt-realtime-2.1-mini` over the Realtime WebSocket (the replacement OpenAI names for `tts-1` and `gpt-4o-mini-tts`, which retire on 2027-01-06). Each page confirms the effective session config before accepting audio. Recording-based custom voices work with `--voice-id voice_...` (ec4ca8bc, c67ca5fa, 4c449a11, 82468e8d).\n\n## Edit Native PPTX round trip\n\n- An export `-o` that points at the source or originally imported PPTX is refused before anything is written; previously it replaced the source, and later exports failed the source fingerprint (1d31b9ea).\n- Edited native objects stay faithful on export (9b050352).\n\n## Source conversion (source_to_md)\n\n- Output paths that resolve or hardlink to an input are refused, so a pre-existing alias can no longer overwrite a source DOCX/XLSX; same-title web pages in one batch get distinct files (087cb942).\n- PDF: soft masks, rotated table text, and table cell order are kept; header and footer bands are classified in displayed page coordinates (7d1fdd7c, 719786f2, 545e7fe9).\n- DOCX and Pandoc: resource links, imports, and text st"},"readme":true,"readme_zh":true,"news":[{"title":"GitHub 爆火的 PPT Master，我花钱折腾一天，结果就给 PPT 换了背景？","url":"https://blog.csdn.net/2501_93712735/article/details/169746586","source":"blog.csdn","lang":"zh","date":"2026-11-01"},{"title":"PPT Master 国内下载实操指南：从 AtomGit 镜像到验证通过的完整流程","url":"https://blog.csdn.net/gitblog_00399/article/details/155124746","source":"blog.csdn","lang":"zh","date":"2026-10-19"},{"title":"PowerPoint that you can edit just by passing notes: I tried the AI skill 'ppt-master'","url":"https://note.com/aicrossinglab/n/nab9fe981b5cb?hl=en","source":"note","lang":"en","date":"2026-10-11"},{"title":"What to use for creating PowerPoint with Claude Code / Codex: Organizing recommended skills","url":"https://note.com/matomechannel/n/ne04c425cecdc?hl=en","source":"note","lang":"en","date":"2026-06-30"},{"title":"PPT-Master 保姆教程，如何在 windows 系统下安装使用及如何配置生图模型","url":"https://www.bilibili.com/ru/video/BV1g59CB3Esj/","source":"bilibili","lang":"zh","date":"2026-04-28"},{"title":"ppt-master ppt-master is an AI system that converts PDFs, DOCX, URLs, or Markdown into natively editable PowerPoint files with real shapes, charts, and text boxes instead of ...","url":"https://x.com/PythonHub/status/2047439230700286313","source":"x","lang":"en","date":"2026-04-23"},{"title":"Context Mode, PPT Master, Karpathy Skills + Copilot Review Billing | DevDrop Daily 10 Oct World Cup Tickets (voWIdWPUX7)","url":"https://news.google.com/rss/articles/CBMiZkFVX3lxTE5SU09oTFg0aU4yYmswM3M3YV9KUWZKdDVXUHFDcFA5TzhKb1A0cDF3TTVwUDFpREE2S1VYWTBSOE1wVHVXb3VfT1VBcGpzOVFqc0FaX1d6ZTFnLWxnNkszTmZhWFRMUQ?oc=5","source":"Unisba Media","lang":"en","date":"2026-11-05"},{"title":"PPT Master 指南，把 PDF 变成 PowerPoint 的免费工具","url":"https://news.google.com/rss/articles/CBMiggFBVV95cUxQWFdhSmxtejNKeW1CMGtGM01NTWsxbXdYc0pmZ3V4QTQwRWNFTkQ3UTJkOUFxaXgtQlpsTHlZaWpoSWNzUWR5a05hc2g0LWFxeWVBelFDM3RSTzQyMnVHT0NzREltaGVMcGJBcl9LbndreUpzTWxmUzlwMVdqVjdyWXBn?oc=5","source":"Pasquale Pillitteri","lang":"zh","date":"2026-11-01"},{"title":"REA, AI reverse engineering at record pace on GitHub, what is true and what is not","url":"https://news.google.com/rss/articles/CBMilgFBVV95cUxQdTJ4Y2JHdXlPVVZzcTNOd3lnZWhyZFdPUUpaV1Zma3RqdUtySFlFTmxvWTZ4OWFabXpVRng3bVg3dDBCYUdxaFNzRUt5aklBbXVUNXpER0R0RVV6OHdpbUFNck1LNEZRMm5ZRWNyTS1NMFlfRllPRG1UNFZrZE9fMTZDekNCRC1HdEZ5dENFT0E5UDF1Vnc?oc=5","source":"Pasquale Pillitteri","lang":"en","date":"2026-10-14"},{"title":"零基础速通DeepSeek Harness，带你玩转赛博乐高","url":"https://news.google.com/rss/articles/CBMiQ0FVX3lxTE1tX19sYlBqZGJldnVLYlRHUzFuVmJPM0tIVHZoclg3clcxWUlqUHJKdnVQTUZPRjBKeVpNbE1FUVNlbEk?oc=5","source":"爱范儿","lang":"zh","date":"2026-08-21"},{"title":"从夯到拉，锐评AI做PPT Skill","url":"https://news.google.com/rss/articles/CBMiU0FVX3lxTE1HS2NZRTVfMXYtVklhYlM1SVJ2cURsN3kyazZBa0hNaklxUE84X2xXcEZ4YWxvbVFhVlRIN3NLb3phbEZuVG1OQ2ZBUWpLQjRrS040?oc=5","source":"电子工程专辑EE Times China","lang":"zh","date":"2026-08-19"},{"title":"The Best GitHub Repos to Learn Artificial Intelligence (Free)","url":"https://news.google.com/rss/articles/CBMif0FVX3lxTE1teEx3dUFITFBETnRNZlh5a1lOTkRDX1Y4VUtHWU9LVEZiU1VhSzdXVlRRa0wzRmRqSUlSaHRScG5aVHZrUmN1bHR3Z1RnTXRlLVZib1ZyUTNZdTNHUld0amYyVDNBQ2t3U2UyY1FERDh6OXFWZ2FFdHhxQ3hxeEk?oc=5","source":"Pasquale Pillitteri","lang":"en","date":"2026-07-04"},{"title":"10 GitHub Repos for Scraping the Internet in 2026 (Real Stars)","url":"https://news.google.com/rss/articles/CBMiiAFBVV95cUxPMWZEd05SYXh2UUhNa2I4S2JBZjRfVktYUnhTV1FBdW5JMFgxRGVqWXdybGUxUkZyQTZGTGpYTlZNdXhoWTF3Ymd5T1dnTWJORExBdjJNTXpoQmQ3UnNQaVREMVRHMnZZWjdtTDZFcVllb3hISjVuVkN0VGY4NUV0RE50cWdDR0NR?oc=5","source":"Pasquale Pillitteri","lang":"en","date":"2026-06-30"},{"title":"How to Present Your Research — From Notes to Slides","url":"https://news.google.com/rss/articles/CBMihwFBVV95cUxPbTd3bDI5bm1nS01mU3Uyam5od2hsMnFyVW9LSGJDTmpSVVN5LVpaQkxQUUtWNmt3RkNWUVBVUVBBb0o4UE9iNEQ0V1c0MEZ1NE1UQ3Vnb2xBdEdVaTJEV1VfenNOVmwxMjA5OXpKckNzcWd1eExjcmNNYWJFSHFTUVd1WlI5aGc?oc=5","source":"Tricontinental: Institute for Social Research","lang":"en","date":"2026-06-05"},{"title":"GitHub Copilot 2026 年 6 月起按使用量计费，廉价 AI 时代或将结束","url":"https://news.google.com/rss/articles/CBMia0FVX3lxTE9waF9HTThhcXZJZ0dBeHpqQUtuR3dWMGkzVV9taWc3SVNKbEhFMnlkV3dqa0dqMG9JSDhnOFVBMUllRkwyc0xrTTRIdTlodzVOVjhvLW9MblRtNjhNNEZZcEhKNy0yMWZLUzQw?oc=5","source":"CSDN博客","lang":"zh","date":"2026-04-28"},{"title":"Claude Code Superpowers 完整指南 2026","url":"https://news.google.com/rss/articles/CBMijgFBVV95cUxNbnpYVmRGV0E3d21WR0hSd2tmOC03MlBFRFBYOG5hVm5lUF9CR0pjN2ZBY0ZMY2l0Ump3NVFVeExzekxHTGNrUjdHdmFuMVQ3bU53ODAzOFY0WmxpYndYSWJSX19va1hyQ1hyQmdkVVRzV1lHWWJYQmtIcEY0dWF2Z0swc2pSZzlSMHZsaHdR?oc=5","source":"Pasquale Pillitteri","lang":"zh","date":"2026-04-15"}],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}