文章生成AI


Gemini
(学校用gmailアカウントは学校の利用許可が必要)
https://gemini.google.com/


ChatGPT
(事前に保護者の同意が必要)
https://openai.com/ja-JP/chatgpt/


Copilot
<13歳~18歳の利用条件>
・Copilotでパーソナライズされたエクスペリエンスを取得しないこと
・モデル トレーニングに会話を使用しないこと
https://copilot.cloud.microsoft/

■STEP1:画像生成AIを作ってみよう!

# =============================================
# 【ステップ 1】初歩的な画像生成コード
# =============================================



# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 1. ライブラリの準備

!pip install diffusers accelerate -q
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


from diffusers import StableDiffusionPipeline
import torch

model_id = "runwayml/stable-diffusion-v1-5"
print("AIモデルを読み込み中...")

pipe = StableDiffusionPipeline.from_pretrained(
model_id,
torch_dtype=torch.float16,
safety_checker=None
)


# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# AIを高速計算チップ(GPU/cuda)に移動

pipe = pipe.to("cuda")
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
print("✅ ステップ1:AIモデルの準備が完了しました!")



# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 4. 実行部分
# 英語でプロンプトを入力(1行)

prompt = "a cute puppy wearing glasses"
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# AIに画像を生成させる(2行)

print(f"命令文: '{prompt}' に基づいて画像を生成します...")
image = pipe(prompt).images[0]

# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 結果の表示(2行)

print("生成が完了しました!")
image

# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

■STEP2:プロンプト(指示文)を日本語で入力したい!!

# =================================================================
# 【ステップ 2 修正版】日本語対応プログラムの追加 (googletrans版)
# =================================================================


!pip install googletrans==4.0.0-rc1 -q

from googletrans import Translator
import re

# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 1. 翻訳AIの準備(2行)

translator = Translator()
print("✅ ステップ2:日本語翻訳機能の準備が完了しました!")

# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


# 2. プロンプト処理関数(AIの判断ロジック)の定義
# 既存の process_prompt 関数をgoogletransを使う形に修正します。

def process_prompt(input_prompt):
if re.search(r'[ぁ-んア-ヶ一-龠]', input_prompt):
translation = translator.translate(input_prompt, dest='en')
english_prompt = translation.text
print(f"→ 日本語プロンプトを英語に翻訳しました: \n '{english_prompt}'")
return english_prompt
else:
return input_prompt


# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 5. 日本語での実行部分
# 日本語プロンプトを入力(1行)
original_prompt = "青い空の下で走っているカラフルなユニコーン"
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑




# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 翻訳ロジックを使ってプロンプトを処理(1行)
processed_prompt = process_prompt(original_prompt)
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑




print(f"命令文: '{original_prompt}' に基づいて画像を生成します...")
image = pipe(processed_prompt).images[0]

# 結果の表示
print("生成が完了しました!")
image

■STEP3:ネガティブプロンプトを組み込んでみよう!

# =================================================================
# 【ステップ 3】ネガティブプロンプト機能の追加
# =================================================================


def generate_image_with_negative(pos_prompt, neg_prompt):
# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 日本語のメインプロンプトを処理(1行)
final_prompt = process_prompt(pos_prompt)
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑



print(f"ポジティブ命令 (作りたいもの): {pos_prompt}")
print(f"ネガティブ命令 (作りたくないもの): {neg_prompt}")


# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# AIに命令(今回はネガティブプロンプトも引数に追加する)(5行)
image = pipe(
final_prompt,
negative_prompt=neg_prompt,
num_inference_steps=50
).images[0]

# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


return image


# ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# 2. ネガティブプロンプトの実行
# 作りたいもの(ポジティブ):このプロンプトは日本語でもOKです。(1行)
pos_prompt = "青い空の下で走っているカラフルなユニコーン"
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑




# 作りたくないもの(ネガティブ):こちらはAIが直接理解できるよう英語で指定するのが一般的です。
# 訳: 低品質、ぼやけている、最悪の品質、変形、モノクロ

neg_prompt = "low quality, blurry, worst quality, deformed, monochrome"

# 関数を呼び出して画像を生成
image_output = generate_image_with_negative(pos_prompt, neg_prompt)

# 結果の表示
print("✅ ステップ3:ネガティブプロンプトを使った生成が完了しました!")
image_output

高校生でも活用できる?AIツール①

1. Gemini (ジェミニ) by Google 🧠
GeminiはGoogleが開発したAIで、Google検索やGoogleサービスと連携できるのが最大の強み。最新の情報に基づいた正確な回答や、学習に役立つ情報整理が得意。
Geminiの大きな特徴の一つは、画像を取り込んで理解し、それに基づいて回答する能力を持っていることです。

最新のネット情報に基づく相談や情報分析

高校生でも活用できる?AIツール②

2. ChatGPT (チャットジーピーティー) by OpenAI ✍️
ChatGPTは、OpenAIが開発したAIで、自然な文章作成能力と創造性に優れています。文章の校正、アイデア出し、ブレインストーミングのパートナーとして活用できます。
ChatGPTの主な強みは、自然な会話能力と高度な文章生成・処理能力です。特に、創造的な作業や複雑なテキスト処理において威力を発揮します。

アイデア出しや高品質な文章・物語の生成

TOPIC!Gemini VS ChatGPT どっちの方がプログラムを作りやすい?

今回の実習は全てChatGPT、Geminiに作ってもらっています。
この2つの生成AIを使った所感をトピックとして掲載します。


①開発者の意図を組んでくれるのは”Gemini”
作り手が何をしたいのか、どのようなものを作り上げようとしているのか・・・
その”意図”を理解しているのはGeminiだと感じました。
文脈の認識: 複数のステップにわたる会話の流れや、
あなたが過去に示した傾向(例:「エラー回避を最優先」「教育的な価値」)といった長期的な文脈を維持し、
それを次の回答に反映させる能力が優れています。

とGeminiは答えていました。

ChatGPTの場合、あくまでも言われたパーツを生成するだけだったので、
エラーが出た際に修正するのが難しかったです。


②文章力や自然な文章力については圧倒的にChatGPT
これに関しては間違いなくChatGPTに軍配が上がります。
ChatGPTは”テキストベース”の学習に焦点を当てており、言語へのとても深い理解があります。
メールを1から作成する、作ったメールの文章を添削するなどはお手の物です。
また、人間によるフィードバック (RLHF)も行っているのが非常に優秀な点です。

対してGeminiの場合、「文章の完璧さ」よりも「タスクの解決」や「マルチモーダル(画像などとの統合)」に学習リソースを割いています。