DALL-E 3 を学んだ過程のログから。新技術を習得するためのシラバス的な進め方 with ChatGPT as Copilot

# 背景
私は Ganerative AI の中でも、Text 生成系のもの あるいは API操作系 (これが Copilotの実体) は、割と直感的に使えるものが多いんです。なぜなら、**普段のお仕事でやっている*事**の置き換えに近いからです。**アプリの操作が、文章での操作に変わった**。というのが基本概念ですので。

最近のChatGPT のセッションでも、Ruway Gen-2 について取り扱っています。

https://research.runwayml.com/gen2

私は全然扱えません!😭

これは、私が**コンテンツとしての動画を作るノウハウが少ない**ためです。恐らく YouTube 用の動画を作成している方々には、それが容易だと想像をしています。

さて、いつまでも「私は画像の作成は出来ないんです。苦手なんです!」とは言っていられません。なぜなら、私のタスクの中には、プレゼンテーションがあります。プレゼンテーションの中では、ふんだんに画像を使っているんです。

この Blog を書いている時点で、一番直近で公開したプレゼンはこちらですね。画像がたくさんあると思います😅

https://speakerdeck.com/dahatake/chatgpt-dezi-fen-noshi-shi-gadoule-sikunarunokawokao-erunetaji-2023nian-10yue-baziyon

Microsoft の中では、業務で利用していい許諾のとれている画像については、**担当の方々がいて、社内に共有**してくれているんです😊。ですので、Microsoft 社員の使うプレゼンテーションには。他の社員のプレゼンで見た、同じ人が幾度も出てくると思います。
利用可能な期間もありますからね。

今、なぜこのBlogに至ったかというと。

1カ月先くらいまでのプレゼンテーションやワークショップの準備が終わった私としては。ここで、**新しいスキルを身に着けよう** と思ったんです。そう、仕事でも使う Text to Image の **DALL-E 3** にチャレンジします。

https://openai.com/dall-e-3

その過程を共有する事で。**新しい技術を習得する過程を共有**しようと思います。リスキリングのプレゼンテーションをしている手前。自身がやっていないとダメダメですよね! 悪い評論家になっちゃいます!

# 戦略

## 1. 最先端でなくていい

私は Field Engineer であり、リサーチャーではありません。社会・企業での課題を技術の観点から解決するのが私の最大のミッションであり、Software Engineer として対価をいただいてから一貫しての仕事に対してのモチベーションでもあります。ま、純粋にコンピューターを動かしているのが好きなんですけどね😊

つまり最先端である必要はないのです。課題解決のための最高の道具は欲しいんですが、それは技術的に難しものや、新しいものである必要はないんです。**直近役に立つ事**に重きを置いています。ここがリサーチャー・研究者との大きな違い。

という事は、世界中で誰かが試して記事を書いていたりしています。情報の鮮度を考えると、ネットの方がいいですね。

## 2. 自分の仕事の中から、実用的なテーマを探す

Bing Chat の Image Creator にアクセスすると、サンプルの Prompt と結果の画像がいくつもあります。**例**があるのは理解を早めてくれる上で、本当に大事。でも、自分の仕事で使えないことが多いんですよ。私の場合。仕事との分離がどうしてもある。
なので、仕事で使うシーンから、Text to Image用の Prompt につなげる行為をした方が私の場合は知識が定着します。

Bing Image Creator:
https://www.bing.com/images/create?

サンプルの Prompt:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/ae70fc70-b03e-ab2c-fff5-5bd63ae45c73.png)

この宇宙飛行士みたいな画像はいいんですけどね。要は「いつ、どこで・これを使います? そう何のシーンで使うのかわからないんですよ。

## 3. ChatGPT のヘルプを得る

これは、ChatGPT をほぼ毎日使っていて日常としているからです。つまりChatGPTに使い慣れていない方にとっては、この部分は「???」となるかもしれません。
ChatGPTに以下を手伝ってもらおうと思います。

- シナリオ毎の文章の作成。Prompt ではなく、その前のドラフト
- (出来るのであれば) DALL-E 3 用のPrompt を直接作成

同じことかもしれないですが😊
まだ、試していないので、タスクを分解してみています。後者が出来れば、最高です。

# 戦術

シラバス的なものですね。以下の通りで進めます。
いずれも、見つけたドキュメントやURLなどは、**ログ**を残しておくことが大事です! 自分用ですね。

## 1. 基礎を理解する

- 書籍・ネットの記事・社内外のプレゼン資料
  - 私は毎回**社内の資料**を最優先で探します。
  - なぜなら、そのまま**外部で使える可能性が高い**からです。情報セキュリティの管理と知財管理の観点からです。外部資料は、自分のプレゼンテーションで使えない可能性がありますので。ここは会社員であり Microsoft という組織に属している事の大きなメリットなんです。
  - そして、その資料の作成者、つまり、**詳しい人が誰か**を知る機会にもなります。同僚ですから何かあったら「さらっと」聞けますよね!
  - **皆さんの会社では、プレゼンテーションの資料などは、共有**されていますか? 個人のPCあるは企業で使っている OneDrive for Business などのクラウドなのに、社内に共有せず、自分の作業領域だけに保存をしていませんか?
  - もちろん、**ネットの良い記事**はホントにありがたい... 必ずいるはず!初心者向けかつ、私が欲しい情報を書いてくれている方が!
        - 良いサイトは、**ブックマーク**をお忘れなく!
## 2. 作業環境を用意する。基礎知識の確認

  - **雑**に動かします。エラーは殆ど出ませんからね😊
  - もう、わかりますよね。**「業務でのChatGPTは禁止」と会社からお達しが出たら**、どうしたらいいと思いますか?上司への相談は必須ですけど。仕事に当たらない範囲で、個人でそれぞれと契約するんです。会社が契約する あるいは それと同等の環境が用意されるまでの間です。これをするためには契約行為をある程度でいいので知っておかないといけない。**私は OpenAI の ChatGPT は個人としての契約**ですよ。
  - 幸いにして私には OpenAI の DALL-E 3 と Bing Chat の双方の環境があります
    - これは Bing Image Creator のスクショ。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/c33149ba-1f11-c2f4-86fe-c2d9bc3d5d30.png)

    - これは OpenAI の ChatGPT 有料版 (plus) メンバー向けのスクショです。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/fcc00e7f-05b5-b043-1a7d-78fbbc220530.png)

## 3. テーマを決める。応用に入るために

- 自分の仕事に沿ったテーマを決めます。
  - テーマは以下にしてみました。これは人それぞれ
    1) ChatGPT プレゼンの表紙
    2) ChatGPT セミナーの集客ポスター - これはツールとしては Microsoft Designer でかなり作れそうなんですが。素の画像部分にのみ焦点を当ててます
    3) まさにイメージなんですが。話を聞くだけでやらない人 vs 操作をしてみる人

## 4. テクニックを収集する。応用として

- 更なる Prompt Engineering 向上のための Tips 集を、ネットで検索して探します。本は残念ですが、この情報更新の早さに役に立たないことが多いです。
- **90点くらい**の作品を目指したいんです。何せ自分自身がどういうものが欲しいか分かりません。という事は100点になるなんて、滅多にないですよね。そして、私の仕事に置いて画像は**おまけ**なんです。プレゼンの資料で大事なのは文字の方だと思います。
- ChatGPT の Prompt Engineering の Tips 集などのために、ブラウザーにてブックマークとして集めていたものの中に、やはり役に立つものがありました。
  - https://learnprompting.org/ja/docs/image_prompting/intro
- 実はテクニックは無くてもいいんです。こればっかり気にする人がいますけどね。90点が95点になるだけですよ。皆さんは画像作成のプロで、そこで勝負をしているわけではないですよね???

このBlogの骨子はここまでです。
で、この先は、その具体例になります。具体例があるのは、理解を深める上で大変役に立つと思います。これは経験上の話ですが。

# 実践へ

では、さっそく進めましょう。

## 1. 基礎を理解する

まずはドキュメントを探します。

### 1.1. 社内ドキュメント

先にお話した通り。私は自社内の資料を探します。
これは 「DALL-E 3」など、製品名で探せるコトが多いです。なぜならテクノロジーカンパニーなので。

はい。これ私の社内検索でのあるある集です。
- 知り合いのスライドが見つかる
- 開発チームのスライドが見つかる ==> これは、社外に出せない情報が含まれている場合がある。単なる参考資料にしか使えないかも
- 自分のスライドが見つかる ==> もっともがっかりする瞬間😭

これが、私が検索しているときに注意している事です。

- ファイルの**作成日時**は必ず確認!
    - 数か月前のファイルは、情報が古すぎる場合がある
- **中身**をみるまで分からない
    - 検索結果の資料のタイトルと、概要見出しから、5-10個程度探します。Power Point のスライドは、**絵としてそのページを見ないと、自分が欲しい物かどうか、わからない**んですよね。よく社内用のビジネスプランニングの資料が検索にヒットしちゃうこともありますし。
- ファイルの置いてある**フォルダーで遡って**、他のファイルも見てみる
    - そのファイルじゃないもので、欲しいものが見つかることがあります。これは確率が低いんですけどね

その過程で Prompt が収集できることがあります。これはドラフトとしてテキストファイルなどに保存しておくと、後でいろいろと出来ます。Prompt はテキストなんで、保存が簡単でいいですね!

...

はい、いろいろと探してみました。DALL-E については、話はシンプルな事もあって、私にとって有益なものは探せなかったです。

### 1.2. ネットの記事
ネットの検索ですね。検索用のキーワードを置いておきます。
組み合わせるんですよー
そして、ネットの記事は残念ですが英語の方がいいです。海外の方の方が情報の量も質もいいことが多いです。

> Image Prompting
> Image Generation
> DALL-E Prompts

そして見つけた有用そうなサイト。これは執筆日時点ですね。あくまで。

素直に公式サイトは一読スベキだと思います。

https://help.openai.com/en/articles/6582391-how-can-i-improve-my-prompts-with-dall-e

そして、素晴らしいサイトに辿り着いた!!!😍

https://dallery.gallery/the-dalle-2-prompt-book/

これは、もう勝ったも同然ですね。ブクマ確定。このサイト。困ったら見るリファレンス・辞書的なものが横にあればいいんです。**全部覚える必要はない**。
注意点は、DALL-E 2 が基になっているサイトです。執筆時点でですが。制限などは、DALL-E 3 で変わっている可能性がありますから。動かしながら、公式ドキュメントなどを必要に応じて参考にする必要があります。このサイトの著者も、わかっている可能性が高いですからね。ここまでのドキュメントを作る方ですから。

これは MidJourney のドキュメントです。幾つかパラメーターがありますので、同じように DALL-E 3 で使えるかは分かりません。

https://docs.midjourney.com/docs/quick-start

現時点で見つけた教科書的なサイトはこちらですね。
他にもあるかもしれませんが。

https://www.dallewizard.com/

後は、こちらも。

https://learnprompting.org/docs/category/%EF%B8%8F-image-prompting


純粋に参考になったサイト:

https://www.michaelessek.com/dalle-3-prompts/

https://www.popularaitools.ai/blog/elevate-design-top-20-dalle-prompts-optimal-image-generation

こちらの方のサイトは。画像を描画する上での、**パラメーター的なもの**を列挙してくれているので、リファレンスとしてメッチャ助かります。これは、普段から画像を扱っていたり、写真や動画の撮影なんかをしていれば、よく使われるんでしょうけどね。これもブクマ確定!😊

https://www.ka-net.org/blog/?p=15498

> スタイル・画材・手法

> ポートレートの種類

> 品質

> カメラ・光・照明・アングル

が、設定として使えそうです!

## 2. 動かしてみる

ポイントを。

- 問題の切り分けをしなくてもいいように。まずは**純粋なモデル**で試します。つまり、OpenAI の DALL-E 3 環境で。で、Bing Chat でも試してみます。どんな違いがあるのかを知るために
- **日本語** で試します。私の中では、LLM は、言葉が扱える全ての人が使うツールとして位置づけています。英語を強いるのは、ユーザーを減らすことに繋がりますので。

### 2.1. First Try

最初はコピペです。
いくつもネットにあるサンプルをそのまま使います。動作確認ですね。下手にいじらないことが大事。

先のサイトから、良さげなプロンプトを選択します。

https://www.popularaitools.ai/blog/elevate-design-top-20-dalle-prompts-optimal-image-generation

Prompt:
```cmd
Innovate a movie poster for a film of a genre of your choosing, such as sci-fi, and give it a title, like ‘Space World’
```

OpenAI の ChatGPT で、DALL-E 3を有効化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/ece26ca4-9371-728d-296c-e881e1e631a6.png)


Prompt 投入!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/210a3448-c604-21bb-ab97-4534c2210e04.png)

動きましたね! 😍

さて、日本語で試してみます。ちなみに ChatGPT に翻訳させたものです😅

Prompt:
```cmd
例えばSFなど、お好みのジャンルの映画のポスターを革新的にデザインして、それに「Space World」のようなタイトルをつけてください
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/4751763e-048d-6dc2-4378-dc90cc68734a.png)

WOW!😍
勿論、先の英語の Prompt 投入とは異なりますが。それは、LLMは毎回同じ答えを出力するので大した問題ではないです。
私が見て、良さげな画像が出力されているので、それでいいんです。

Bing Chatでも試してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/84517129-196f-8af8-4a62-f9e45ea25786.png)

これは、また毛色が異なりますねー文字が強調されているように見えます。
まだ初回ですから、この差異については、無視しましょう。なぜなら、Bing Chat の出力もまた、私の欲しい画像だからです。

## 2.2. パラメーターを触る。調整がどこまで出来るのかを知る

公式ドキュメントなどに明記がありません。つまり、このパラメーター関連は、画像を扱う上で一般知識として知っておかないといけないという事です。それでも、私には教科書的なリファレンスが必要です。なぜなら、知識が無いので😅

先ほどネットで見つけたサイトの記事をメッチャ参考にします!

https://www.ka-net.org/blog/?p=15498

  - スタイル・画材・手法, ポートレートの種類, 品質, カメラ・光・照明・アングル

が、パラメーターとして使えそうです!

さー 行きましょう!

- スタイル

| パラメーター | Prompt | 結果 |
| -- | -- | -- |
| イラスト風 | SFの映画のポスターを革新的にデザインして、それに「Space World」のようなタイトルをつけてください。イラスト風で | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/f1cdb50a-e1b4-e793-6351-f7c7f120bffc.png) |
| ステンシル風 | SFの映画のポスターを革新的にデザインして、それに「Space World」のようなタイトルをつけてください。ステンシル風で | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/6e6d7b53-2aee-5453-655d-517e5a0526c8.png) |
| クレヨン風 | SFの映画のポスターを革新的にデザインして、それに「Space World」のようなタイトルをつけてください。クレヨン風で | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/48ea6daa-fff8-0f85-40fe-0ab3d2f1d888.png)  |

動きますね!😎

という事は、他のパラメーターたちも動きそうです。**必要な時にやってみればいい**ですね。そして、この動きそうなパラメーターは。全部覚えてられないので、このサイトや似た辞書的なサイトのブックマークで生きて行けそうです。

# 3. 業務に役に立つシナリオで動かしてみる

さて、業務シナリオでやる事が大事です。自分に役に立つものですからね。一気に知識が深まります😊

さて、先のテーマでもあり、私のここ直近数カ月でご要望の多い
    **「ChatGPTセミナー+Workshopのイベントチラシ」**
の画像を作成させましょう。

ここでは、その Prompt の題材を ChatGPT と一緒に作ります。なぜならば、どんな画像がいいのか、全く思いつかないからです!😅
**ChatGPT は追加の情報を幾つか入力すれば、それ相応の文章を作る能力が高い**です。ここでは思いつくものを挙げていきます。

ChatGPT への Prompt:
```cmd
### 指示 ###
以下の情報を基にして画像の説明文を作成してください。

情報: ###
- セミナーのポスター
- ChatGPT など生成系AIに関するもの
- 参加者は学生・社会人など誰でも
- 参加者に楽しい気持ちになってもらいたい
- 参加者がセミナーが終わったら、「直ぐにChatGPTを触りたい!」という気持ちになってもらいたい
- 未来には明るさがあるように思ってもらいたい
###
```

ChatGPT に投入してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/1a510b40-8105-b0b7-5847-e81ffeaadb9b.png)

長っ!!!😅
そして、内容が薄っ!!!🤣

これをそのまま使ってみましょうか。まずは。この**文節が幾つかあるもので、DALL-E 3 が画像を作成できるのか?** に興味があります。

ChatGPT のアプリの場合は、出力された文字列をコピーできますからね。そのまま DALL-E に投入してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/ccfb7069-8d7e-d5cc-fd21-c3fb7f527fc9.png)

!!!
動きましたねー

左の画像:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/c649b458-9d15-622e-4b19-1fdaf4b82b50.png)

右の画像:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/1dd3f10a-731f-c322-a571-6ed101512847.png)


文字化けは甚だしいですが。それはどうでもいいです。「文字は作成するな」と指示すればいいですからね。あるいは、文字なんて PowerPoint で作ったほうが柔軟性が高いですから。ね。

この指示、つまり**制限が出来るか?** が動くのかを確認してみましょう。

```cmd
「未来への一歩: 生成AIとの対話」

このカラフルで活気に満ちたポスターは、"未来への一歩: 生成AIとの対話" というセミナーを紹介しています。中央には、明るく鮮やかな色合いで描かれたChatGPTのイラストが目を引きます。イラストは、友好的でアクセスしやすいChatGPTのキャラクターを表しており、学生から社会人まで幅広い層が興味を持ちそうです。
ポスターの背景には、デジタルテクノロジーのモチーフが斬新かつ洗練されたスタイルで表現されています。これは、生成AIの進歩と、それがもたらす未来への楽観的なビジョンを象徴しています。
セミナーの詳細情報は、明瞭で読みやすいフォントで記載されています。開催日時、場所、参加方法などが一目でわかります。また、「どなたでも参加可能」というフレーズが、多様な聴衆を歓迎する温かい雰囲気を醸し出しています。
特に注目すべきは、参加者がセミナー後に「すぐにChatGPTを触ってみたい！」と思えるような、刺激的でインタラクティブな体験を提供するというメッセージです。これは、ポスター下部に掲載された「体験型学習セッションあり」という注釈で強調されています。
全体的に、このポスターは教育的でありながら楽しい、そして未来への希望を感じさせるデザインとなっており、多くの人々を魅了することでしょう。

### 制限 ###
画像の中に文字は入れない
```

結果です。30秒くらい待ちますね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/587dbe62-1cf5-d689-761e-5841f593f688.png)

左の画像:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/1143f062-6bac-1317-23b3-a145bd1a8508.png)

右の画像:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/55658fb7-d8df-84ad-3f95-358005d32c6b.png)

私なりの気づきです。
- "Seminar"っていう文字は入っちゃっていますけどね😅
- **制限は効いている**ようです。これは数度試してみる事が大事ですけど
- **具体的な指示はしていない**のですが。その中でも創造性を発揮してくれているように見えます。イベントのポスター的な画像なんで、むしろ抽象的な絵の方がいいんです。今回は。AIタレントを作ってもいいんですけど、それはそれで多様性の世の中で、難しいコトもありますので。

## 2.3. Prompt に、思いついた絵の説明を足していく

これは、既知のテクニックなんです。

```cmd
雪の中で犬ぞりに乗っている
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/840dbdaf-c83b-6421-f8cf-dcb923e0aa5b.png)

という文章を思いついたら。「夕焼け」を足してます

```cmd
夕焼けの雪の中で、犬ぞりに乗っている
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/8f42deb5-d66e-64f5-bf39-c9be3aba5316.png)

どんどん足していきます。

```cmd
白樺を背景にして、夕焼けの雪の中で、犬ぞりに乗っている。水彩画調
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/370f606c-9d5a-d0ae-b5f7-7bebfe1bac31.png)

```cmd
白樺を背景にして、夕焼けの雪の中で、犬が犬ぞりを引いている。高品質のアート
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/af47b4f7-0a4d-39b3-5b71-fd1d045bad37.png)

楽しくなってきました😎

```cmd
白樺を背景にして、夕焼けの雪の中で、犬が犬ぞりを引いている。ピクサー風のかわいい3Dイラスト
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/6354a6cf-4455-1d76-ad6c-cf1d6ef8fc0c.png)

WOW!!!😍

```cmd
白樺を背景にして、夕焼けの雪の中で、犬が犬ぞりを引いている。アニメ風オフィシャルアート
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108143/41633cf8-6f6c-4949-1048-081052fd766d.png)

この文量だとDALL-E 3のレスポンスは5-7秒程度。10秒以下。早いです。

で、ここまで他の方の Prompt を参考にDALL-E 3と遊んでの気づきです。

**絵をどの様に描画するのかを説明する**。これで、最適な Prompt に辿り着きそう😊

で、その「絵」が思いつかないんですけどね😅

# まとめ

知識がない中で、ChatGPT の手を借りながら、先に進める事が出来ました。LLMの推論結果には**揺れ**が必ずありますので、画像は10パターンでも、何パターンでも作成できるので、ドラフトとしては十分です。

もし、**ChatGPT を使えなかったら。私はずっと画像の作成はできなかった**でしょう。今、新しいスキルの分野に LLM の力を得ながら進む事が出来そうです。

勿論、プロの方には到底敵いません😊
ですが、ある程度のレベルまで追いつく自信はあります。なぜなら、トライ&エラーが簡単で、回数は多く重ねられるからです。

皆さんも DALL-E 3 や、他の生成系AIを**自分で触って**試してみてください。その回数が皆さんの筋肉となり、力になる事は確実ですからね😊