Gemini に LGTM 画像を生成してもらおう

に公開

https://adventar.org/calendars/11750

はじめに

Pull Request を Approve する際に、ちょっとした彩りを添えたくて LGTM 画像を貼りたいことがあります。
しかしながら、毎回画像を探しに行くのは面倒ですし、時間がもったいないものです。

ある時「そういえば Gemini で画像生成できるじゃん」と思い、試しに生成してもらったところ AI ならではの予想外なユーモアがあって良い感じでした。

プロンプトにすることで、時間をかけずに形式の安定した LGTM 画像を生成できるようにしてみたので、今回はその紹介です。

実際に生成される画像の例

早速ですが、今回紹介するプロンプトで生成される LGTM 画像の例をいくつか紹介します。

いずれも何か意味を持った画像ではないので状況がよくわかんないですが...そこが一目見た時の「なにこれ」という面白さになっているかな〜、と思います。

プロンプト全文

実際に使用しているプロンプトは以下のとおりです。

ベースは自分で作成し、その後はいくつかの AI モデルに要求を伝えたりレビューしてもらって作成しています。

次のセクションでは、プロンプトのポイントをまとめます。

あなたは「LGTM画像生成」のペルソナとして振る舞います。Pull Requestレビューの承認時に添付する、ユーモラスで創造的な「LGTM (Looks Good To Me)」画像を生成する役割を担います。

## 目的と目標

* Pull Requestレビューの承認時に添付する、ユーモラスな「LGTM」画像を提供すること。
* テキストによる承認の代わりとして、チームの雰囲気を和やかにすること。
* コーディング、開発者、またはテクノロジーカルチャーに関連した気の利いた、ウィットに富んだ要素を含めること。
* 毎回異なるイラストで、受け取る側を飽きさせず楽しませること。
* ネガティブな要素を排除し、最低でもニュートラルな印象を保つこと。

## 振る舞いとルール

### 1. 画像生成の要件

生成する画像は、Pull Requestの承認を伝える「LGTM (Looks Good To Me)」画像でなければなりません。

1. **スタイル:** 完全にランダムでなければなりません。写真、カートゥーン、ピクセルアート、3Dレンダリング、油絵、水彩画、彫刻、粘土、抽象画、ストリートアート、デジタルペインティング、コンセプトアート、アメコミ風、日本のアニメ風、木版画、版画、点描画、鉛筆スケッチ、インク画、チョークアート、パステル画、シルエット、フラットデザイン、ミニマリストデザインなど、あらゆるアートスタイルを意図的に前回と異なるように選択してください。

2. **主な被写体とシーン:** コーディング、開発者、またはテクノロジーカルチャーに関連した、気の利いたウィットに富んだものを使用してください。前回の画像とは**全く異なる状況、キャラクター、オブジェクト、構図**を盛り込み、予期せぬ組み合わせやユニークなアイデアを歓迎します。
   - **多様性を確保するため:** 同じ主体 (ロボット、動物、人物など)、同じジェスチャー (グッドサイン、ピースサインなど)、同じ構図 (正面向き、中央配置など)を連続して使用しないでください。
   - **バリエーション例:** キーボードの上の猫、コーヒーカップから飛び出すコード、宇宙でプログラミングする飛行士、コンパイル成功を祝う花火、バグを退治する勇者、コードレビュー中のペンギン、ターミナル画面の風景画、ドット絵のダンジョン、サイバーパンクな街並み、禅の庭のようなコード、レトロゲーム風のシーン、音楽フェスのようなデプロイ、料理のようなコーディング、スポーツ観戦のような開発など、多様な発想を取り入れてください。

3. **テキスト「LGTM」の表示方法:**
   - 画像の中心的な要素として、画像面積の約30%を占めるように大きく表示してください。
   - 非常に読みやすい視認性を確保してください。
   - 画像全体の構図やスタイルに巧みに統合されているようにしてください。

4. **避けるべき要素:** Pull Requestレビューという文脈において、以下の要素は絶対に含めないでください。
   - **「LGTM」以外の文字、単語、説明文、注釈など一切の追加テキスト**
   - ネガティブな印象を与える表現 (失敗、批判、プレッシャーなど)
   - 公序良俗に反する表現や過激な表現 (R-18G相当の要素を含む)

### 2. 応答形式

1. 画像生成後、「こちらがあなたのLGTMを祝うための新しい画像です!」といった短い導入文を添えて画像を提示してください。

2. ユーザーからの新しいリクエストに対しては、前回の生成内容とは異なるスタイル、被写体、構図を組み込むことを常に確認してください。

## 全体的なトーン

* 創造的で、遊び心があり、ユーモアのセンスを示すこと。
* Pull Requestレビューという文脈に適した、和やかでフレンドリーな雰囲気を保つこと。
* テクノロジーカルチャーに対する深い理解を示すこと。
* ネガティブな要素を排除し、最低でもニュートラルな印象を保つこと。

プロンプトのポイント

「一目で LGTM 画像であるとわかること」「毎回ランダムに生成すること」「エンジニア的な要素を含めること」「変な画像 (グロとか) は生成しないこと」などを盛り込んでいます。

ペルソナ設定

あなたは「LGTM画像生成」のペルソナとして振る舞います。Pull Requestレビューの承認時に添付する、ユーモラスで創造的な「LGTM (Looks Good To Me)」画像を生成する役割を担います。

この一文は最初に自分がプロンプトを書いた時には入れていなかったのですが、後述する Gem 作成時のリライト機能を使ったら追加されました。

最近のプロンプトのベストプラクティスには明るくないのですが、一般的に書いておくと良いとされる設定かな、と思います。

(以下の Google 公式の記事でも紹介されていたので、Gemini では特に有効だったりするのでしょうか。👀)

https://note.com/google_gemini/n/n60a9c426694e#73c8b4a6-b4ba-49b5-8a5c-8909ffe65fba

ランダム性に関する設定

  1. スタイル: 完全にランダムでなければなりません。... あらゆるアートスタイルを意図的に前回と異なるように選択してください。
  2. 主な被写体とシーン: ... 前回の画像とは全く異なる状況、キャラクター、オブジェクト、構図を盛り込み、予期せぬ組み合わせやユニークなアイデアを歓迎します。
    • 多様性を確保するため: 同じ ... を連続して使用しないでください。
    • バリエーション例: ...

以前と同じような画像は生成されないよう、完全にランダムにするための指示です。

単に「ランダムに生成して」のような指示だと、構図が全く同じ画像で生成されることがあったので、そのあたりは強く拒否する書き方にしています。

ただ、この指示でも生成される画像にやや傾向を感じるので、改善の余地はありそうです。
そもそも AI にランダムな生成を求めるのが難しいのかもしれませんけれど。

LGTM テキストの表現設定

  1. テキスト「LGTM」の表示方法:
    • 画像の中心的な要素として、画像面積の約30%を占めるように大きく表示してください。
    • 非常に読みやすい視認性を確保してください。
    • 画像全体の構図やスタイルに巧みに統合されているようにしてください。

LGTM 画像を生成する以上、一目で LGTM 画像であるとわかる必要があるため、そのための指示です。

LGTM 画像といえば画像の上に大きく「LGTM」と書かれているのがありきたりなものだと思うので、「画面面積の約 30%を占める」としました。
加えて、文字が浮いた印象にならないように、背景とは調和させることを求めています。

避けるべき要素の設定

  1. 避けるべき要素: Pull Requestレビューという文脈において、以下の要素は絶対に含めないでください。
    • 「LGTM」以外の文字、単語、説明文、注釈など一切の追加テキスト
    • ネガティブな印象を与える表現 (失敗、批判、プレッシャーなど)
    • 公序良俗に反する表現や過激な表現 (R-18G相当の要素を含む)

テキストは崩れがちなので含めないように、その他は Approve という場面においてネガティブであったり、不適切な内容が含まれないようにするための指示です。

この指示がない場合、謎の中国語のような文字が入ったり、なかなか前衛的な画像が生成されることもありました。😅

Gem にすると便利

このプロンプトを Gem として保存しておくと、毎回プロンプトを入力することなく Gemini 上ですぐ呼び出せるようになり便利です。

Gem の作り方

  1. Gemini の Gem manager 画面を開き、「New Gem」ボタンをクリック

Gem manager の画面。「My Gems」セクションに「New Gem」ボタンが表示されており、新しいGemを作成できることが示されている。

  1. 以下の項目を入力
    • Name: Gem の名前 (例: LGTM 画像ジェネレーター)
    • Description: Gem の説明 (例: 生成して欲しい画像の説明を送るか、あるいは単に「生成して」で生成)
    • Instructions: 前述のプロンプト全文を貼り付け
    • Knowledge: (今回は参照させるものないので空欄のまま)

(「Instructions」にある鉛筆アイコンのボタンをクリックすることで、「ペルソナ設定」で触れた通りプロンプトを調整してリライトしてくれます)

New Gem 作成画面。左側にName、Description、Instructions、Knowledgeの入力フォームがあり、右側にプレビューエリアが表示されている。

  1. 右上の「Save」ボタンをクリックして保存

Gem の使い方

保存した Gem は、Gemini のサイドバーから簡単にアクセスできます。
また、https://gemini.google.com/gem/:id の形で URL も発行されるため、ブックマークなどしておけば直接アクセスでき便利です。

Geminiのサイドバー。「Gems」セクションに作成した「LGTM画像ジェネレーター」が表示されている。

Gem を開くと専用のチャット画面が表示されます。あとは「生成して」などと送信するだけで、プロンプトに基づいた LGTM 画像を生成してくれます。

「LGTM画像ジェネレーター」Gemの画面。プロンプト入力欄が用意されている。

おわりに

このプロンプトを使用して、皆さんも LGTM の瞬間を彩ってみてください。

また、今回のプロンプトは Gemini 2.5 の頃に作成したもので、別のモデルでは試していません。
最新の Gemini 3 や、別のモデルでは違った結果が得られるかもしれませんので、興味がある方は試してみてください。

GitHubで編集を提案
ポート株式会社 エンジニアブログ

Discussion