Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python機械学習勉強会in新潟のロゴが無いので、生成AIで作ってみましょう / osc2023niigata

kasacchiful
November 25, 2023

Python機械学習勉強会in新潟のロゴが無いので、生成AIで作ってみましょう / osc2023niigata

2023/11/25 (土) Open Source Conference 2023 Niigata にて発表した資料です。

Open Source Conference 2023 Niigata
https://ospn.connpass.com/event/297587/

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

kasacchiful

November 25, 2023
Tweet

More Decks by kasacchiful

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  6. 生成AIとは何か

    View full-size slide

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

    View full-size slide

  8. 生成AIの代表的な例
    自然言語生成
    ChatGPTのように、人間が作ったような文章を生成する技術
    画像生成
    GAN (Generative Adversal Network) のような技術で、入力の画像から新しい画像
    を生成する技術

    「自然言語 → 画像」や「自然言語 → 自然言語と画像」ができるモデルが存在す
    る。

    View full-size slide

  9. 今回使う生成AI

    View full-size slide

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

    View full-size slide

  11. Stable Diffusion XL
    Stability AI社提供
    Amazon Bedrockからでも操作可

    Stable Diffusion XL v0.8を使用
    https://ja.stability.ai/stable-diffusion

    View full-size slide

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

    View full-size slide

  13. 生成AIの鍵: プロンプト

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. 今回考えたプロンプト
    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}
    '''

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide