Slide 1

Slide 1 text

Python機械学習勉強会in新潟のロゴが無いので、生成AI で作ってみましょう 2023-11-25(土) OSC 2023 Niigata Python機械学習勉強会 in 新潟 笠原 宏

Slide 2

Slide 2 text

自己紹介 笠原 宏 (@kasacchiful) クラスメソッド株式会社 データアナリティクス事業本部 ソリューションアーキテクト 新潟市在住 JAWS-UG新潟 / Python機械学習勉強会 in 新潟 / Cloudflare Meetup Niigata / JaSST Niigata / ASTER / SWANII / etc. AWS Community Builder (Serverless) / 2023 Japan AWS All Certifications Engineer

Slide 3

Slide 3 text

Python機械学習勉強会 in 新潟 https://pyml-niigata.connpass.com/

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

生成AIでロゴを作ってみよう

Slide 6

Slide 6 text

モチベーション 新潟の勉強会 (Niigata5分Tech#2) の懇親会 (11/17) にて、 「勉強会のロゴ、Adobeの生成AIで作ったんだよね」 ワイ思う 「そういえば、Python機械学習勉強会in新潟にはロゴ無いな」 ということで宣言 「来週のOSC新潟で、Python機械学習勉強会in新潟のロゴを生成AIで作るデモする わ」

Slide 7

Slide 7 text

生成AIとは何か

Slide 8

Slide 8 text

プロンプトに応答してテキスト、画像、または他のメディアを生成する ことができる人工知能システムの一種である。 出典: https://ja.wikipedia.org/wiki/生成的人工知能

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

生成AIの代表的な例 自然言語生成 ChatGPTのように、人間が作ったような文章を生成する技術 画像生成 GAN (Generative Adversal Network) のような技術で、入力の画像から新しい画像 を生成する技術 他 「自然言語 → 画像」や「自然言語 → 自然言語と画像」ができるモデルが存在す る。

Slide 11

Slide 11 text

今回使う生成AI

Slide 12

Slide 12 text

DALL-E OpenAI社提供 DALL-E v3を使用 https://openai.com/dall-e-3

Slide 13

Slide 13 text

Stable Diffusion XL Stability AI社提供 Amazon Bedrockからでも操作可 能 Stable Diffusion XL v0.8を使用 https://ja.stability.ai/stable-diffusion

Slide 14

Slide 14 text

共通点 「自然言語」→「画像」 APIが公開されている Pythonから操作可能

Slide 15

Slide 15 text

生成AIの鍵: プロンプト

Slide 16

Slide 16 text

プロンプトエンジニアリング 生成AIから適切な出力を得るため の入力 (プロンプト) を最適化する 手法 Prompt Engineering Guideによく ある手法がまとまっている https://www.promptingguide.ai/jp

Slide 17

Slide 17 text

今回考えたプロンプト keyphrases = ['Python',' 機械学習',' 勉強会',' 新潟',] ## この中のフレーズは全部入れる atmospheres = [' クール',' おしゃれ',' ほのぼの',' あたたかい',] ## この中から2 つランダムに入れる phrase = f'{",".join(keyphrases)}, {",".join(random.sample(atmospheres, 2))}, 背景は白' prompt=f'''\ 以下のフレーズを元に、画像の中に「PyML Niigata 」という文字を入れた、ロゴ画像を作ってください。ロゴ画像以外は描かないでください。 {phrase} '''

Slide 18

Slide 18 text

今回考えたプロンプト Stable Diffusionはまだ日本語対応しきれてないので、英語でプロンプト keyphrases = ['Python','Machine Learning','Niigata',] ## この中のフレーズは全部入れる atmospheres = ['Cool','Stylish','Heartwarming','Warm',] ## この中から2 つランダムに入れる phrase = f'{",".join(keyphrases)}, {",".join(random.sample(atmospheres, 2))}, White background' prompt=f'''\ Please create a logo image based on the following phrase, with the words "PyML Niigata" in the image. {phrase} '''

Slide 19

Slide 19 text

こんな感じの画像ができます

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Stable Diffusion XL v0.8は画像に文字 入れてくれないっぽい

Slide 22

Slide 22 text

サンプルコードは公開してます https://github.com/kasacchiful/osc_niigata_2023-demo

Slide 23

Slide 23 text

実際作ってみましょう Google Colaboratoryで動かします。

Slide 24

Slide 24 text

投票にご協力ください https://forms.gle/HmJxnWMhZj6PFbA RA 投票期限: 2023/11/25 (土) 中