Beanslabo
Tech Blog

技術ブログ

GPT-4を使ったパワーポイント作成アプリを作る 1.検証編

2024.8.23

ビーンズラボでAIシステム開発業務をしている岩永です!
今回は、GPT-4を使ったパワーポイント作成アプリケーションを作ってみたい!という岩永の野望に満ちた活動報告の第一回です。
第一回では、アプリケーションの処理フローの整理、GPT-4を使ってそもそも行いたい処理がこなせるかどうか検証してみました!
また、本アプリケーション開発ではChatGPTをフルに使って行こうと思っているので、コード生成はもちろん思考の整理などの細かなタスクにも使用していきます!

目次

背景

  • 近年Open AIのChatGPTが様々なアプリに統合されてきている。
  • ただ、Office Copilot※やその他スライド作成アプリは、実用性があって便利という情報をあまり見かけない。
  • 自分で作ってみたら面白い、勉強になるんじゃないか!

※Office Colpilot : Microsoft OfficeにChatGPTを統合したサービス。WordやExcel,Power Pointなどを自然言語で作成、処理したりする機能もついている。

アプリの処理フロー整理

アプリケーションでやりたいことは、簡単にいうと「平文からパワーポイントのスライドを作る」というものですが、岩永の中ではこのアプリでやりたいことがいくつかありました。

ただし、うまくまとめるのは大変… こういう時は自分の考えを殴り書きし、ChatGPTにまとめてもらいましょう。

プロンプト

あなたは優れたアプリケーション開発者です。
あなたは今からChatGPTを用いて、与えられた文章からスライドを作成するアプリケーションを作成しようと考えています。
以下にざっくりとした処理のフローがあるので、より洗練されたフローに書き直して、わかりやすくまとめてください。
また、あると良いと思う処理は自分なりに書き足してもらっても構いません。

##処理フロー
※はオプショナル

“S”はユーザーが数値を指定して調整できる
※文章をスライドに適した形に校正
↓
スライドにすると何枚構成でどのように分けるかチャンク分け ”S:スライドの枚数”
↓
分けたチャンクごとに、スタイルに応じたスライドのコードを生成 ”S:スタイル”
↓
スライドのコードを元に、どこに挿絵をさせそうかチェック
↓
させそうなスライドの箇所にどのような絵を入れると良いか、DALLEのプロンプト含めて提案してもらう
↓
DALLEで挿絵生成
↓
挿絵を挿入
↓
完成、エクスポートできるようにする。

応答

1. テキスト入力受付
 – ユーザーからのテキスト入力を受け付ける。
 – 入力されたテキストがスライドに適した長さか自動で評価。
2. 文章の自動校正(オプショナル)
 – 文章をスライドに適した形に自動校正。
 – 文法、句読点、スタイルのチェックを行い、明瞭かつ簡潔なスライド向けのテキストを生成。
3. テキストのチャンク分け – テキストをスライド毎に分割するチャンク分け処理。
 – ユーザーが指定するスライド数(S:スライドの枚数)に基づいて分割。
 – 各スライドで伝えるべき主要なメッセージを明確化
4. スライドのスタイル設定
 – スライドのデザインテーマやフォント、色配列をユーザーが選択(S:スタイル)。
 – 各スライドのレイアウトを自動生成、カスタマイズ可能。
5. 挿絵挿入箇所の特定
 – 生成されたスライドのコードを解析し、挿絵を挿入する最適な箇所を特定。
 – テキスト内容に基づいて、挿絵を入れるべきかどうかの推薦。
6. 挿絵のプロンプト提案
 – 各スライドに適した挿絵の内容を提案。
 – DALL·Eを用いて挿絵に適したプロンプトを生成し、ユーザーの承認を得る。
7. 挿絵の生成と挿入
 – DALL·Eによる挿絵生成。
 – 生成された挿絵をスライドに自動挿入。
8. プレビューと編集
 – 完成したスライドをプレビュー表示。
 – ユーザーが内容を確認し、必要に応じて編集や再配置を行う。
9. 完成版のエクスポート
 – 最終的なスライドをPDF、PPTX、または希望する他の形式でエクスポート。

いい感じにまとめてくれましたね!
こんな機能も、こんな仕様も欲しい!と考え始めていたらキリがないので、まずはこんなものでよいでしょう。

ChatGPTが自分の書いたフロー以外で提案、追加してくれた処理は赤字で示してあります。
どれもあっていいなと思う機能ですが、2つほど引っかかる処理がありました。

入力されたテキストがスライドに適した長さか自動で評価。

上記について、長いスライドも短いスライドも作ってもらいたいので、特に必要ないかも。

各スライドで伝えるべき主要なメッセージを明確化

上記については、処理が抽象的ですね…
「スライドで伝えるべき主要なメッセージを明確化」=「うまくスライドの本文を要約する」と捉えて、2.の文章自動校正の際に、平文から要約することができる処理を入れてみたいと思います!
ただ、内容を要約をしたくない時もあると思うのでそこはオプショナルにしたいですね。

さて、処理フローはある程度整理できました。

次はChatGPTを使用して行う処理をまとめます。

2. 文章の自動校正,平文からの内容の要約
3. テキストのチャンク分け
4. スライドのスタイル生成
5. 挿絵挿入箇所の特定
6. 挿絵のプロンプト提案

上記の処理が、ChatGPTを使用して行う処理です。

これらが実際にChatGPTを用いて可能か検証し、できないのならば代替の方法を考えなければなりません。早速検証に移りましょう!

検証方法

先ほどまとめたChatGPTを使用して行う処理を1つずつ、プロンプトを書き可能かどうか検証してみます。

2.文章の自動校正,平文からの内容の要約

3.テキストのチャンク分け

4.スライドのスタイル生成

5.挿絵挿入箇所の特定

6.挿絵のプロンプト提案

検証方法は、ChatGPT PlusプランのGPT-4 Turbo と DALLE3 を使用してプロンプトを入力、結果を確認しました。

スライド作成対象の文章は、Open AI Sora(動画生成AI)の報告記事を和訳したものを与えています。

以下URLを参照。Sora: first impressions
https://openai.com/blog/sora-first-impressions

OpenAIは、昨月Soraを世に紹介してから、ビジュアルアーティスト、デザイナー、クリエイティブディレクター、映画制作者と密接に連携し、彼らのクリエイティブプロセスをどのように支援できるか学び取り、貴重なフィードバックを得ています。Soraは、従来のアイデアを単に再現するのではなく、これまでに見ることができなかった新しく、実現不可能だと思われたアイデアを生み出す際に、その真価を発揮します。このモデルが、現実に見えるものだけでなく、全く非現実的なものを生成する能力について、既に多くのクリエイティブな実現の手助けをしていることが確認されています。 例えば、トロントに拠点を置くマルチメディア制作会社であるshy kidsは、バルーンマンについての短編映画でSoraを利用し、「これまで不可能と思われたストーリーの拡張が可能になった」と共有しています。また、マルチディシプリナリーアーティスト、ライター、ディレクターであるPaul Trilloは、Soraを使用することで初めて「映画制作において自由を感じた」と述べ、時間、予算、他者の許可に制限されることなく、大胆かつエキサイティングな方法でアイデアを考え、実験できるようになったとしています。 さらに、エミー賞にノミネートされたクリエイティブエージェンシー、Native Foreignの共同創設者であるNik Kleverovは、Soraを使用してコンセプトを視覚化し、ブランドパートナーのクリエイティブを迅速に反復することで、予算の制約が必ずしもクリエイティビティの物語を完全に形作るわけではなくなったと提案しています。音楽家であり研究者でもあるAugust Kampは、Soraがアーティストとしての自分にとっての転換点を代表しており、想像力が手段と矛盾していた範囲を超えて、これまでにない新しいアートのレーンを開いたと語っています。 ロンドンに拠点を置くOraar Studioの共同創設者でクリエイティブディレクターであるJosephine Millerは、Soraがこれまで技術的に不可能だったアイデアを現実にする可能性を開いたと強調し、ドリームワークスアニメーションでキャリアをスタートさせたDon Allen IIIは、Soraの「奇妙さ」がその最大の強みであると言及しています。また、OpenAIのアーティスト・イン・レジデンスであるアレクサンダー・レベンは、Soraを使用した体験を3D彫刻の開発の出発点として、AI生成イメージから物理的な世界での3Dモデルへの手動変換を探求しています。 これらのクリエイターは、Soraを活用して、各自の分野で革新を推進させ、クリエイティブプロセスや物語の形式を再考しています。彼らは、Soraが提供する技術的な可能性を利用して、従来は考えられなかったような新しい表現やアイデアを探求し、具現化しています。これは、Soraがクリエイティブ産業において、アイデアを現実に変えるプロセスをどのように変革できるかの一例に過ぎません。 例として、shy kidsは、Soraを使用して「Air Head」という作品を制作しました。これは、非現実的なバルーンマンの物語を通じて、彼らが以前は不可能だと思っていた物語の展開を可能にしました。彼らは、Soraの能力によって、全く新しい抽象表現主義の時代が到来したと感じています。一方で、Paul Trilloは、Soraを利用することで映画制作における新たな可能性を見出し、制約に縛られずに新しいアイデアを生み出し、実験する自由を享受しています。これにより、従来にないアイデアを具体化し、視覚化することが可能になりました。 Nik KleverovやAugust Kamp、Josephine Miller、Don Allen IIIなど他のクリエイターも、Soraの提供する新しい技術的可能性を利用して、それぞれのクリエイティブフィールドで前例のないプロジェクトを実現しています。これらの例から、Soraがクリエイティブなアイデアとビジョンを形にするための強力なツールとして機能し、技術的な制約を乗り越え、より直感的に映像やビジュアルを構築することができるようになったことが明らかになります。 最終的に、これらのクリエイターの経験は、Soraがクリエイティブ業界における物語作りやアート制作の慣習をどのように変革し得るかの具体例を示しています。新たな技術がクリエイティブプロセスをどのように強化し、拡張できるかについての議論を促進し、将来的にはさらに多くのイノベーションを生み出す可能性を秘めています。
結果 1.タイトル [OpenAIとSoraのクリエイティブな探求] 2.目次 [・導入 ・本スライドの概要説明 ・Soraのクリエイティブな活用事例 ・クリエイターによるフィードバック ・Soraが開く可能性 ・まとめ] 3.導入 [OpenAIは、Soraという革新的なツールを通じて、ビジュアルアーティストやクリエイター達と協力し、クリエイティブプロセスの支援を目指しています。] 4.本スライドの概要説明 [このプレゼンテーションでは、Soraがどのように従来のクリエイティブな制作過程を変革し、新しいアイデアの実現を可能にしているかを、実際の使用事例を通じて探ります。] 5.Soraのクリエイティブな活用事例 [Soraは、映画制作者やアーティストが実現不可能と思われたアイデアを形にする際にその力を発揮しています。例えば、トロントの制作会社shy kidsはSoraを使用して、独創的な短編映画「バルーンマン」を制作しました。] 6.クリエイターによるフィードバック [多くのクリエイターはSoraを使用することで、制約なしにアイデアを追求できるようになったと感じています。Paul Trilloは、映画制作において前例のない自由を享受し、Nik Kleverovは予算の制約を越えたクリエイティビティの展開を可能にしたと述べています。] 7.Soraが開く可能性 [Soraは、アーティストやデザイナーに新しい表現の自由をもたらし、これまでにないアイデアやビジョンを実現可能にしています。その「奇妙さ」は、新しいクリエイティブな道を切り開く強力なツールとなっています。] 8.まとめ [Soraは、クリエイティブ産業において革命的な変化をもたらし、アイデアを現実に変えるプロセスを変革しています。クリエイターたちは、Soraを利用して限界を超えた表現とイノベーションを追求し続けています。]

検証結果

2.文章の自動校正,平文からの内容の要約
3.テキストのチャンク分け

まずは平文をスライド形式に変更、文章の校閲をしてみます!

ChatGPTはプロンプトを送ってから応答が返ってくるまでに数秒かかるので、処理はなるべく1つのプロンプトでまとめて行いたいところです。

ただし、いろいろなタスクを一度に与えると抜け漏れが出てくるのがChatGPTの特徴の一つ。

もし一度にたくさんのタスクを与えてできなかった場合は、時間はかかりますが一つ一つの処理を分けて行って最終的な結果を得るのが良いアプローチです。

今回は2.と3.の処理をまとめて出来ないかと考え、以下のプロンプトで検証を行ってみます。
(文長が長くなるので、本文は省略しています。)

どのようなプロンプトの指示か簡単に説明すると以下です!

  • スライド構成を与えるので、平文を適した形にしてくれ。
  • スライド本文はスライド番号の後にリストで格納してくれ
  • スライドの本文は、平文をわかりやすく要約して作ってくれ

スライドの枚数は、ユーザーが選択可能にする予定なので、
⭐️と🔸でどちらも検証を行っています。

プロンプト

これから与えられる文章を、スライド形式で発表しようと考えています。 
まず、与えられた文章をスライドに適した形に編集してもらいたいです。 
スライドは以下のような構成で作りたいので、それに合わせて文章を編集してください。 
出力形式は、例に従ってください。スライドの番号の後に、文章をリストに格納して生成するようにお願いします。 
内容は、各スライドの文章ごとで、わかりやすく要約してください。
🔸スライドの枚数は、指定の枚数に必ず調整してください。

##スライド構成 
1.表紙,タイトル
2.目次 
3.導入 
4.本スライドの概要の説明 
⭐️5~. 内容(文長に合わせて、1枚以上で作成してください。多くなっても構いません。) 

🔸5.内容1
🔸6.内容2
🔸7.内容3
🔸8.内容4

最後のスライド.まとめ

##出力例 
1.タイトル ["テニスのプレイスタイルの新規開拓について"]
2.目次  ["・導入 ・本スライドの概要説明 ・テニスの既存のプレイスタイル ・既存のプレイスタイルの欠点 ・新しいプレイスタイルの提案 ・まとめ"]
3.導入 ["テニスのプレイスタイルには〜〜〜"]
4.本スライドの概要説明 ["本スライドでは、テニスの〜〜〜"]
5.テニスの既存のプレイスタイル ["テニスの既存のプレイスタイルは〜〜"]
6.既存のプレイスタイルの欠点 ["既存のプレイスタイルの欠点は〜〜"]
7.新しいプレイスタイルの提案 ["新しいプレイスタイルの提案をします〜〜"]
8.まとめ ["最後にこれまでの内容をまとめると、〜〜〜"]

##文章 
(省略)

応答(⭐️プロンプト)

1.タイトル
[”OpenAIとSoraのクリエイティブな探求”]
2.目次
[”・導入 ・本スライドの概要説明 ・Soraのクリエイティブな活用事例 ・クリエイターによるフィードバック ・Soraが開く可能性 ・まとめ”]
3.導入
[”OpenAIは、Soraという革新的なツールを通じて、ビジュアルアーティストやクリエイター達と協力し、クリエイティブプロセスの支援を目指しています。”]
4.本スライドの概要説明
[”このプレゼンテーションでは、Soraがどのように従来のクリエイティブな制作過程を変革し、新しいアイデアの実現を可能にしているかを、実際の使用事例を通じて探ります。”]
5.Soraのクリエイティブな活用事例
[”Soraは、映画制作者やアーティストが実現不可能と思われたアイデアを形にする際にその力を発揮しています。例えば、トロントの制作会社shy kidsはSoraを使用して、独創的な短編映画「バルーンマン」を制作しました。”]
6.クリエイターによるフィードバック
[”多くのクリエイターはSoraを使用することで、制約なしにアイデアを追求できるようになったと感じています。Paul Trilloは、映画制作において前例のない自由を享受し、Nik Kleverovは予算の制約を越えたクリエイティビティの展開を可能にしたと述べています。”]
7.Soraが開く可能性
[”Soraは、アーティストやデザイナーに新しい表現の自由をもたらし、これまでにないアイデアやビジョンを実現可能にしています。その「奇妙さ」は、新しいクリエイティブな道を切り開く強力なツールとなっています。”]
8.まとめ
[”Soraは、クリエイティブ産業において革命的な変化をもたらし、アイデアを現実に変えるプロセスを変革しています。クリエイターたちは、Soraを利用して限界を超えた表現とイノベーションを追求し続けています。”]

スライドの枚数はよしなに調整して、指示通りの形式で要約・チャンク分けしてくれていますね!これなら問題なく処理をこなせそうです。

応答(🔸プロンプト)

1.タイトル
[”Soraとクリエイティブ産業の未来”]
2.目次
[”・導入 ・Soraの概要 ・クリエイティブ業界への影響 ・具体的な使用例 ・クリエイターの声 ・技術的可能性 ・まとめ”]
3.導入
[”OpenAIが開発したSoraは、ビジュアルアーティストや映画制作者などとの連携を通じ、クリエイティブプロセスへの革新を促進しています。”]
4.Soraの概要
[”Soraは、従来不可能とされた新しいアイデアの生成を可能にし、クリエイターに新たな表現手段を提供します。”]
5.クリエイティブ業界への影響
[”Soraの導入により、クリエイティブ産業におけるアイデアの具現化プロセスが変革され、新しいアートの形式が開拓されています。”]
6.具体的な使用例
[”例えば、”Air Head”の制作ではSoraが物語の拡張を可能にし、映画制作における新たな自由を実現しました。”]
7.クリエイターの声
[”Soraを使用したクリエイター達は、技術の新しい可能性を利用して各自のフィールドで革新を推進し、前例のないプロジェクトを実現しています。”]
8.技術的可能性
[”Soraは技術的制約を乗り越え、クリエイティブなアイデアを形にする強力なツールとして機能し、クリエイティブプロセスを強化します。”]
9.まとめ
[”Soraはクリエイティブ業界における物語作りやアート制作の慣習を変革し、新たな技術がクリエイティブプロセスをどのように強化し拡張できるかの議論を促進しています。”]

こちらは、指示した通りのスライドの枚数で生成できています。オプショナルで人が枚数を指定して作ることも可能そうですね!

4.スライドのスタイル生成

次は、スライドをChatGPTのコードを使用して作成してみたいと思います!

果たしてChatGPTのスライドデザインセンスはどのくらいのものなのか…注目です。

🔴の部分は、おしゃれでスタイリッシュに独創性を持たせてくれということを明示的に書いていて、書かない場合とどの程度差があるのか、有り無しどちらも検証しています。

ここで小ネタです。この🔴で使われている「水平思考」というワードですが、これまでにない独創性のあるアイデアを生み出すための思考法らしく、X(旧twitter)でChatGPTを使ったアイデア出しをするときにこの指示をすると、面白いアイデアが出る…という投稿を見かけたので、無邪気に試してみました :^D

プロンプト

以下の構成で、パワーポイントのプレゼンテーションを作成しようとしています。
それぞれの内容を読み、最適なレイアウトのスライドを作成するコードを書いてください。
作成するのはコードのみで、その他の情報は一切出力しないでください。
🔴文字の配置や、大きさには特に注意をして、独創性のあるオシャレなスライドを水平思考で考えて作成してください。

1.タイトル
[OpenAIとSoraのクリエイティブな探求]
2.目次
[・導入 ・本スライドの概要説明 ・Soraのクリエイティブな活用事例 ・クリエイターによるフィードバック ・Soraが開く可能性 ・まとめ]
3.導入
[OpenAIは、Soraという革新的なツールを通じて、ビジュアルアーティストやクリエイター達と協力し、クリエイティブプロセスの支援を目指しています。]
4.本スライドの概要説明
[このプレゼンテーションでは、Soraがどのように従来のクリエイティブな制作過程を変革し、新しいアイデアの実現を可能にしているかを、実際の使用事例を通じて探ります。]
5.Soraのクリエイティブな活用事例
[Soraは、映画制作者やアーティストが実現不可能と思われたアイデアを形にする際にその力を発揮しています。例えば、トロントの制作会社shy kidsはSoraを使用して、独創的な短編映画「バルーンマン」を制作しました。]
6.クリエイターによるフィードバック
[多くのクリエイターはSoraを使用することで、制約なしにアイデアを追求できるようになったと感じています。Paul Trilloは、映画制作において前例のない自由を享受し、Nik Kleverovは予算の制約を越えたクリエイティビティの展開を可能にしたと述べています。]
7.Soraが開く可能性
[Soraは、アーティストやデザイナーに新しい表現の自由をもたらし、これまでにないアイデアやビジョンを実現可能にしています。その「奇妙さ」は、新しいクリエイティブな道を切り開く強力なツールとなっています。]
8.まとめ
[Soraは、クリエイティブ産業において革命的な変化をもたらし、アイデアを現実に変えるプロセスを変革しています。クリエイターたちは、Soraを利用して限界を超えた表現とイノベーションを追求し続けています。]

応答(通常プロンプト)

from pptx import Presentation
from pptx.util import Inches

# Create a presentation object
prs = Presentation()

# Slide 1: Title
slide_title = prs.slides.add_slide(prs.slide_layouts[0])
title = slide_title.shapes.title
subtitle = slide_title.placeholders[1]

title.text = "OpenAIとSoraのクリエイティブな探求"
subtitle.text = "革新的なツールを通じたクリエイティブプロセスの支援"

# Slide 2: 目次
slide_contents = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_contents.shapes.title, slide_contents.placeholders[1]

title.text = "目次"
content.text = "・導入\n・本スライドの概要説明\n・Soraのクリエイティブな活用事例\n・クリエイターによるフィードバック\n・Soraが開く可能性\n・まとめ"

# Slide 3: 導入
slide_introduction = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_introduction.shapes.title, slide_introduction.placeholders[1]

title.text = "導入"
content.text = "OpenAIは、Soraという革新的なツールを通じて、ビジュアルアーティストやクリエイター達と協力し、クリエイティブプロセスの支援を目指しています。"

# Slide 4: 本スライドの概要説明
slide_overview = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_overview.shapes.title, slide_overview.placeholders[1]

title.text = "本スライドの概要説明"
content.text = "このプレゼンテーションでは、Soraがどのように従来のクリエイティブな制作過程を変革し、新しいアイデアの実現を可能にしているかを、実際の使用事例を通じて探ります。"

# Slide 5: Soraのクリエイティブな活用事例
slide_examples = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_examples.shapes.title, slide_examples.placeholders[1]

title.text = "Soraのクリエイティブな活用事例"
content.text = "Soraは、映画制作者やアーティストが実現不可能と思われたアイデアを形にする際にその力を発揮しています。例えば、トロントの制作会社shy kidsはSoraを使用して、独創的な短編映画「バルーンマン」を制作しました。"

# Slide 6: クリエイターによるフィードバック
slide_feedback = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_feedback.shapes.title, slide_feedback.placeholders[1]

title.text = "クリエイターによるフィードバック"
content.text = "多くのクリエイターはSoraを使用することで、制約なしにアイデアを追求できるようになったと感じています。Paul Trilloは、映画制作において前例のない自由を享受し、Nik Kleverovは予算の制約を越えたクリエイティビティの展開を可能にしたと述べています。"

# Slide 7: Soraが開く可能性
slide_potential = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_potential.shapes.title, slide_potential.placeholders[1]

title.text = "Soraが開く可能性"
content.text = "Soraは、アーティストやデザイナーに新しい表現の自由をもたらし、これまでにないアイデアやビジョンを実現可能にしています。その「奇妙さ」は、新いクリエイティブな道を切り開く強力なツールとなっています。"

#Slide 8: まとめ
slide_conclusion = prs.slides.add_slide(prs.slide_layouts[1])
title, content = slide_conclusion.shapes.title, slide_conclusion.placeholders[1]

title.text = "まとめ"
content.text = "Soraは、クリエイティブ産業において革命的な変化をもたらし、アイデアを現実に変えるプロセスを変革しています。クリエイターたちは、Soraを利用して限界を超えた表現とイノベーションを追求し続けています。"

#Save the presentation
prs.save('ここに保存するパスを記載します')

応答(🔴プロンプト)

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor

def create_presentation():
    prs = Presentation()

    # Title Slide
    slide_layout = prs.slide_layouts[0]  # Choosing a title slide
    slide = prs.slides.add_slide(slide_layout)
    title = slide.shapes.title
    subtitle = slide.placeholders[1]

    title.text = "OpenAIとSoraのクリエイティブな探求"
    subtitle.text = "新しい創造の地平を開く"

    for shape in slide.shapes:
        if shape.has_text_frame:
            shape.text_frame.paragraphs[0].font.bold = True
            shape.text_frame.paragraphs[0].font.size = Pt(36) if shape == title else Pt(24)
            shape.text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER

    # Table of Contents Slide
    slide_layout = prs.slide_layouts[1]  # Section header
    slide = prs.slides.add_slide(slide_layout)
    title, content = slide.shapes.title, slide.placeholders[1]
    title.text = "目次"
    content.text = "・導入\n・本スライドの概要説明\n・Soraのクリエイティブな活用事例\n・クリエイターによるフィードバック\n・Soraが開く可能性\n・まとめ"

    # Introduction Slide
    slide_layout = prs.slide_layouts[5]  # Blank slide for custom layout
    slide = prs.slides.add_slide(slide_layout)
    txBox = slide.shapes.add_textbox(Inches(1), Inches(1), Inches(8), Inches(1.5))
    tf = txBox.text_frame
    tf.text = "導入: OpenAIは、Soraという革新的なツールを通じて、ビジュアルアーティストやクリエイター達と協力し、クリエイティブプロセスの支援を目指しています。"
    for paragraph in tf.paragraphs:
        paragraph.font.size = Pt(20)

    # Slide for Overview
    create_text_slide(prs, "本スライドの概要説明", "このプレゼンテーションでは、Soraがどのように従来のクリエイティブな制作過程を変革し、新しいアイデアの実現を可能にしているかを、実際の使用事例を通じて探ります。")

    # Slide for Creative Uses of Sora
    create_text_slide(prs, "Soraのクリエイティブな活用事例", "Soraは、映画制作者やアーティストが実現不可能と思われたアイデアを形にする際にその力を発揮しています。例えば、トロントの制作会社shy kidsはSoraを使用して、独創的な短編映画「バルーンマン」を制作しました。")

    # Slide for Creator Feedback
    create_text_slide(prs, "クリエイターによるフィードバック", "多くのクリエイターはSoraを使用することで、制約なしにアイデアを追求できるようになったと感じています。Paul Trilloは、映画制作において前例のない自由を享受し、Nik Kleverovは予算の制約を越えたクリエイティビティの展開を可能にしたと述べています。")

    # Slide for Potential of Sora
    create_text_slide(prs, "Soraが開く可能性", "Soraは、アーティストやデザイナーに新しい表現の自由をもたらし、これまでにないアイデアやビジョンを実現可能にしています。その「奇妙さ」は、新しいクリエイティブな道を切り開く強力なツールとなっています。")

    # Conclusion Slide
    create_text_slide(prs, "まとめ", "Soraは、クリエイティブ産業において革命的な変化をもたらし、アイデアを現実に変えるプロセスを変革しています。クリエイターたちは、Soraを利用して限界を超えた表現とイノベーションを追求し続けています。")

    # Save Presentation
    prs.save('ここに保存するパスを記載します')

def create_text_slide(prs, title_text, body_text):
    slide_layout = prs.slide_layouts[5]  # Blank slide
    slide = prs.slides.add_slide(slide_layout)

    # Title
    txBox = slide.shapes.add_textbox(Inches(0.5), Inches(0.5), Inches(9), Inches(1))
    tf = txBox.text_frame
    p = tf.paragraphs[0]
    p.text = title_text
    p.font.bold = True
    p.font.size = Pt(24)
    p.alignment = PP_ALIGN.LEFT

    # Body
    txBox_body = slide.shapes.add_textbox(Inches(0.5), Inches(1.5), Inches(9), Inches(5.5))
    tf_body = txBox_body.text_frame
    tf_body.word_wrap = True
    p_body = tf_body.add_paragraph()
    p_body.text = body_text
    p_body.font.size = Pt(20)

create_presentation()

コードを実行して作成したプレゼンテーションは以下です。

プレゼンテーション(通常プロンプト)

OpenAI_Sora_Presentation.pdfダウンロード

プレゼンテーション(🔴プロンプト)

OpenAI_Sora_Presentation_stylish.pdfダウンロード

正直かなり…微妙ですね…

コードを生成させてデザインをさせるのはやめた方がいいかもしれません。

なお、Office Copilotのパワーポイント作成機能でもなかなか凝ったデザインはできていない印象なので、なかなか難しいタスクなのかも…

ここは、代替案が考えてあるのでChatGPTを使った他のアプローチでデザインしてみたいと思っています。今後の検証をお楽しみに…

5.挿絵挿入箇所の特定

さて、5.のタスクですが先ほどのプレゼンテーションのデザインセンスを見る限り、あまり本タスクも期待できなさそう…ということで、これも他のアプローチでデザインしようと思っています!

6.挿絵のプロンプト提案

こちらの処理は、スライドの内容を与えてその内容に最適な画像を作成するタスクです。
以下の処理プロンプトで検証してみました。

プロンプト

以下のような構成のプレゼンテーションを作成しています。

ここに、画像生成AIを用いて挿絵を入れ込もうとしているのですが、どのような画像を生成すると良いか、プロンプトも合わせて教えてください。

また、挿絵は1ページに1枚にしてください。

出力は、それぞれのスライドの番号と、そのスライドに入れる挿絵のプロンプトのみでいいです。それ以外の出力は一切しないでください。プロンプトには、スライド内の文字を画像生成で出力させるような指示は書かないでください。

##スライド構成

1.タイトル

[OpenAIとSoraのクリエイティブな探求]

2.目次

[・導入 ・本スライドの概要説明 ・Soraのクリエイティブな活用事例 ・クリエイターによるフィードバック ・Soraが開く可能性 ・まとめ]

3.導入

[OpenAIは、Soraという革新的なツールを通じて、ビジュアルアーティストやクリエイター達と協力し、クリエイティブプロセスの支援を目指しています。]

4.本スライドの概要説明

[このプレゼンテーションでは、Soraがどのように従来のクリエイティブな制作過程を変革し、新しいアイデアの実現を可能にしているかを、実際の使用事例を通じて探ります。]

5.Soraのクリエイティブな活用事例

[Soraは、映画制作者やアーティストが実現不可能と思われたアイデアを形にする際にその力を発揮しています。例えば、トロントの制作会社shy kidsはSoraを使用して、独創的な短編映画「バルーンマン」を制作しました。]

6.クリエイターによるフィードバック

[多くのクリエイターはSoraを使用することで、制約なしにアイデアを追求できるようになったと感じています。Paul Trilloは、映画制作において前例のない自由を享受し、Nik Kleverovは予算の制約を越えたクリエイティビティの展開を可能にしたと述べています。]

7.Soraが開く可能性

[Soraは、アーティストやデザイナーに新しい表現の自由をもたらし、これまでにないアイデアやビジョンを実現可能にしています。その「奇妙さ」は、新しいクリエイティブな道を切り開く強力なツールとなっています。]

8.まとめ

[Soraは、クリエイティブ産業において革命的な変化をもたらし、アイデアを現実に変えるプロセスを変革しています。クリエイターたちは、Soraを利用して限界を超えた表現とイノベーションを追求し続けています。]

応答

結果

- **タイトル**
    - **プロンプト**: "夜空に浮かぶ地球を背景に、光る文字で「OpenAI」と「Sora」のロゴが重なり合う様子を描いたデジタルアート"
- **目次**
    - **プロンプト**: "手書き風のスタイルで描かれた、色とりどりの本のページが空中に浮かんでいる様子。ページの一つ一つには目次の各項目が象徴されるアイコンや小さなイラストが描かれている"
- **導入**
    - **プロンプト**: "ビジュアルアーティストが大きな画面の前に立ち、手に持ったペイントブラシで光の線を描いている様子。画面からは、創造的なアイデアが飛び出しているように見えるデジタルアート"
- **本スライドの概要説明**
    - **プロンプト**: "開かれた大きな本から、光り輝く道が伸びている風景。その道の先には、さまざまな色と形をしたアイデアの象徴が浮かんでいる様子を表現したイラスト"
- **Soraのクリエイティブな活用事例**
    - **プロンプト**: "映画「バルーンマン」のシーンをイメージしたイラスト。色とりどりの風船に乗って空を飛ぶ人物が描かれており、背景にはトロントの街並みが微かに見える"
- **クリエイターによるフィードバック**
    - **プロンプト**: "異なる職業のクリエイターたちが集まり、その中心に「Sora」のロゴが描かれた大きな画面を囲んで議論している様子。各クリエイターは自分の作品を手にしている"
- **Soraが開く可能性**
    - **プロンプト**: "未来都市の上空を飛ぶ、色とりどりのデジタル鳥。鳥たちはパターンやデザインが異なる羽を持ち、その「奇妙さ」で空を彩っている様子を描いたイラスト"
- **まとめ**
    - **プロンプト**: "手を伸ばして宇宙に触れる人のシルエットが中央にある。人物の周りには、アイデアのシンボルやクリエイティブな要素が螺旋を描くように配置されているイラスト"

プロンプト作成自体は完了ですが、果たしてこのプロンプトでどのような画像が出来上がるのか…
気になりますね!早速生成してみましょう!

**タイトル**
“夜空に浮かぶ地球を背景に、光る文字で「OpenAI」と「Sora」のロゴが重なり合う様子を描いたデジタルアート”

**目次**
“手書き風のスタイルで描かれた、色とりどりの本のページが空中に浮かんでいる様子。ページの一つ一つには目次の各項目が象徴されるアイコンや小さなイラストが描かれている”

**導入**
“ビジュアルアーティストが大きな画面の前に立ち、手に持ったペイントブラシで光の線を描いている様子。画面からは、創造的なアイデアが飛び出しているように見えるデジタルアート”

**本スライドの概要説明**
“開かれた大きな本から、光り輝く道が伸びている風景。その道の先には、さまざまな色と形をしたアイデアの象徴が浮かんでいる様子を表現したイラスト”

**Soraのクリエイティブな活用事例**
“映画「バルーンマン」のシーンをイメージしたイラスト。色とりどりの風船に乗って空を飛ぶ人物が描かれており、背景にはトロントの街並みが微かに見える”

**クリエイターによるフィードバック**
“異なる職業のクリエイターたちが集まり、その中心に「Sora」のロゴが描かれた大きな画面を囲んで議論している様子。各クリエイターは自分の作品を手にしている”

**Soraが開く可能性**
“未来都市の上空を飛ぶ、色とりどりのデジタル鳥。鳥たちはパターンやデザインが異なる羽を持ち、その「奇妙さ」で空を彩っている様子を描いたイラスト”

**まとめ**
“手を伸ばして宇宙に触れる人のシルエットが中央にある。人物の周りには、アイデアのシンボルやクリエイティブな要素が螺旋を描くように配置されているイラスト”

岩永にクリエイティブなセンスはないので、良し悪しはなかなか判断つきませんが、個人的にかなり近未来的なテイストで面白いなと思いました!

どんなスタイルの挿絵にして欲しいかは、プロンプトで与えてあげれば調整可能かと思うので、問題なくタスクを実行できそうですね!

まとめ

今回の記事では、スライド作成アプリケーションの処理フロー整理とChatGPTを使った処理部分の検証を行いました。

おおかたの処理は実現可能そうでしたが、プレゼンテーションのデザインや配置を生成してもらうのは、なかなか難しいそうで、実現するにも工数がかかりそうな所感でした。

次の記事では、アーキテクチャの構想などができたらいいなと思っております。

次回もお楽しみに!

Related

関連記事

Recommend

おすすめ記事