LandPPT : générer des présentations depuis un document, et ce que coûte vraiment l'export PPTX éditable
一个基于LLM的演示文稿生成平台,能够自动将文档内容转换为专业的PPT演示文稿。平台支持多种AI模型,提供丰富的模板和样式选择,让用户能够创建高质量的演示文稿。
En bref
- De quoi s’agit-il ?
- LandPPT transforme un sujet ou un document en un jeu de diapositives HTML, avec un pipeline Python et FastAPI. Le point de friction n'est pas la génération : c'est la licence Apryse exigée pour obtenir un PPTX réellement modifiable.
- À qui s’adresse-t-il ?
- LandPPT convient aux équipes qui produisent des présentations en volume et acceptent de livrer du HTML, du PDF ou des PPTX image, ainsi qu'à celles qui possèdent déjà une licence Apryse. Il ne convient pas à qui veut un PPTX éditable sans dépendance commerciale : dans ce cas, l'export restera une image par page.
- Puis-je l’utiliser commercialement ?
- À vérifier. La licence de ce dépôt n’entre pas dans les catégories que nous classons automatiquement : lisez son fichier LICENSE avant tout usage commercial.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le problème visé : le montage manuel entre un document et une mise en page
Le travail que LandPPT attaque est celui du montage : on dispose d'un rapport, d'un cours ou d'un dossier, et il faut en tirer une suite de diapositives cohérente. Le README décrit la chaîne comme « 主题 / 文档 → 大纲 → HTML PPT → 讲稿 / 配音 / 导出 », soit cinq étapes qui, faites à la main, occupent une après-midi. Le projet s'adresse donc à des formateurs, des consultants, des équipes internes qui recyclent régulièrement les mêmes documents. Ce n'est pas un outil de design : il ne remplace pas un graphiste, il supprime la phase de recopie et de répartition du texte en pages. Le README précise aussi que l'entrée peut être un simple sujet, ce qui déplace l'usage vers la production de supports de première ébauche, à retravailler ensuite.
Quatre étapes, un état persisté, et une reprise possible
Le README décrit un workflow en quatre phases : confirmation du besoin, génération du plan, suivi des tâches, production des diapositives. Ce découpage a une conséquence concrète : chaque phase peut être relancée séparément, et le projet parle de « 阶段重跑与恢复 ». Autrement dit, si la mise en page finale déçoit, on ne repaie pas l'appel au modèle pour le plan. La génération des diapositives est annoncée comme parallèle, ce qui raccourcit l'attente sur un deck long, au prix d'un ordre d'arrivée non garanti. Les diapositives sont produites en HTML, puis rendues dans un navigateur, et c'est ce HTML qui sert de source aux exports. Cette architecture explique la suite : tant qu'on reste dans le navigateur, tout est modifiable ; dès qu'on sort vers PowerPoint, il faut convertir, et la conversion est le point où le projet devient dépendant d'un composant tiers.
Le routage par rôle plutôt qu'un modèle unique
LandPPT accepte OpenAI, Anthropic, Google Gemini, Azure OpenAI, ainsi que les API compatibles OpenAI comme DeepSeek, Moonshot ou Qwen, et Ollama pour rester en local. Le détail qui compte n'est pas la liste mais le routage : le README indique que le modèle peut être choisi par rôle, séparément pour le plan, les diapositives, l'édition, les modèles de mise en page et le script de présentation. En pratique, cela permet de confier le plan à un modèle raisonneur coûteux et la génération de pages à un modèle rapide et bon marché, ce qui change l'ordre de grandeur de la facture sur un deck de trente pages. C'est un choix d'ingénierie explicite, pas un argument marketing. En contrepartie, chaque rôle supplémentaire est un point de configuration de plus, et une clé absente fait échouer une étape sans que les autres s'arrêtent.
Installation : uv en local, Compose en production
Pour un essai local, le README recommande uv : cloner le dépôt, lancer uv sync --extra dev, copier .env.example vers .env, y renseigner au moins une clé de fournisseur, puis uv run python run.py. Le serveur écoute sur le port 8000 par défaut, avec SQLite et un cache en mémoire, sans PostgreSQL ni Valkey. Une variante pip existe avec pip install -e . puis python run.py. En production, le dépôt fournit un docker-compose.yml qui démarre landppt, un worker, PostgreSQL, Valkey et MinIO, avec un service minio-init qui crée le bucket. Le port est ajustable via LANDPPT_PORT, l'image via LANDPPT_IMAGE. Deux réglages méritent l'attention avant la première mise en ligne : le README signale que l'initialisation automatique de l'administrateur est désactivée par défaut en production et qu'il faut poser LANDPPT_BOOTSTRAP_ADMIN_ENABLED=true pour la réactiver, et que les migrations automatiques au démarrage se coupent avec LANDPPT_AUTO_MIGRATE_ON_STARTUP=false lorsque plusieurs nœuds partagent la même base. Le README insiste également sur SECRET_KEY et sur le remplacement du couple admin / admin123.
La limite qui décide de tout : l'export PPTX éditable
Le tableau des dépendances du README est sans ambiguïté. La ligne « 标准可编辑 PPTX » porte la mention APRYSE_LICENSE_KEY (商业许可) et la colonne de droite indique « 可选但导出可编辑 PPTX 时必需 ». Sans cette clé, l'export produit un PPTX composé d'images : le rendu reste fidèle, mais les éléments d'une page ne sont plus éditables un par un. C'est la contrainte structurante du projet, et elle n'apparaît pas dans la description du dépôt. Une équipe qui adopte LandPPT en supposant qu'elle récupérera un fichier PowerPoint modifiable découvrira le problème au moment de la livraison, pas à l'installation. Les autres formats annoncés (PDF, HTML, images, DOCX, Markdown) ne dépendent pas d'Apryse, ce qui laisse une porte de sortie : livrer du PDF ou du HTML quand personne n'a besoin de retoucher les pages. À noter aussi que le service d'images est désactivé par défaut et s'active avec ENABLE_IMAGE_SERVICE ; sans lui, les trois sources d'images annoncées (bibliothèque locale, banques en ligne, génération) ne sont pas sollicitées.
Face à un générateur de PPTX basé sur python-pptx
L'alternative la plus directe est un générateur qui écrit des formes natives dans un PPTX via python-pptx, en remplissant des zones de texte dans un gabarit. La différence d'approche est nette : python-pptx produit un fichier dont chaque bloc est un objet PowerPoint, sans licence commerciale, mais la mise en page est contrainte par le gabarit et le texte long déborde ou se comprime mal. LandPPT fait l'inverse. Il laisse le modèle composer une page HTML, donc la mise en page s'adapte au contenu, mais il doit ensuite rasteriser pour sortir du PowerPoint, d'où Apryse. Le choix se ramène donc à une question de format de sortie attendu : si le destinataire doit éditer le fichier, l'approche gabarit est plus sûre ; si le destinataire doit lire ou imprimer, le rendu HTML de LandPPT est plus libre. Le README ne fournit aucun élément de comparaison de vitesse ou de coût entre les deux, et je n'en avancerai pas.
Ce que le dépôt ne dit pas
Le fichier LICENSE n'est pas fourni dans les éléments dont je dispose, et l'API du dépôt renvoie NOASSERTION pour la licence, alors que le README affiche un badge Apache 2.0. Cet écart doit être tranché en lisant le fichier lui-même avant tout usage en entreprise, d'autant que la dépendance Apryse ajoute ses propres conditions, distinctes de celles du code de LandPPT. Sur la maintenance, les éléments disponibles montrent une release v0.3.2 datée du 9 juillet 2026 et un dernier push au 9 septembre 2026, mais rien sur le rythme des correctifs ni sur la compatibilité ascendante entre versions. Je ne peux pas non plus confirmer le contenu de la documentation hébergée sur landppt-doc.52yyds.top, ni le comportement réel de l'édition par conversation latérale, ni la qualité des scripts générés par Edge-TTS : ces points sont décrits dans le README, pas vérifiés ici. Le coût de mise à jour se concentre à deux endroits identifiables : la variable DATABASE_URL si vous passez de SQLite à PostgreSQL, et la variable LANDPPT_AUTO_MIGRATE_ON_STARTUP si vous ajoutez des nœuds.
Conclusion éditoriale
LandPPT convient aux équipes qui produisent des présentations en volume et acceptent de livrer du HTML, du PDF ou des PPTX image, ainsi qu'à celles qui possèdent déjà une licence Apryse. Il ne convient pas à qui veut un PPTX éditable sans dépendance commerciale : dans ce cas, l'export restera une image par page. Avant de déployer, vérifiez trois choses dans le dépôt : la présence de APRYSE_LICENSE_KEY dans .env.example, la valeur de ENABLE_IMAGE_SERVICE, et le contenu réel du fichier LICENSE puisque l'API GitHub renvoie NOASSERTION malgré le badge Apache 2.0 du README.
Notes de la communauté