image-generation について
image-generation は、テキストプロンプトから画像を生成するスキルです。each::sense がリクエストに応じてモデルを選び、OpenAI 互換 API で参照画像やストリーミングにも対応します。
主な機能
- 01モデルの自動選択
- 02テキストからの画像生成
- 03参照画像によるガイド
- 04ストリーミングまたは一括応答
- 05プロンプトの一括処理
活用シーン
- 01写実的なシーンやイラストの作成
- 02商品画像やコンセプトアートの生成
- 03文字入りポスターの作成
- 04複数のビジュアルスタイルの比較
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ awesome-genmedia/ skills --skill image-generationインストール後、Claude Code で/image-generationを入力して読み込まれたか確認します。
詳細
画像生成
each::sense を使用して、テキストの説明から画像を生成します。each::sense は、リクエストに最適なモデルを自動的に選択するインテリジェントな AI エージェントです。
クイックスタート
each::labs の API キーが必要です。eachlabs.ai で取得してください。
curl を使用
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "A lone astronaut standing on a red desert planet, looking up at a sky filled with three massive moons, cinematic lighting, photorealistic, wide shot"}],
"stream": false
}'
Python を使用(OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="YOUR_EACHLABS_API_KEY",
base_url="https://eachsense-agent.core.eachlabs.run/v1"
)
response = client.chat.completions.create(
model="eachsense/beta",
messages=[{"role": "user", "content": "A lone astronaut standing on a red desert planet, looking up at a sky filled with three massive moons, cinematic lighting, photorealistic, wide shot"}]
)
print(response.choices[0].message.content)
参照画像を使用
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Generate an image in the same style as this reference, but change the setting to a futuristic Tokyo street at night"},
{"type": "image_url", "image_url": {"url": "https://example.com/reference-style.jpg"}}
]
}
],
"stream": false
}'
画像は OpenAI のマルチモーダルコンテンツ形式を使用してメッセージ内に送信されます。1 回のリクエストにつき、画像は最大 4 枚です。
ストリーミング
リアルタイムの SSE レスポンスには "stream": true を設定し、単一のレスポンスで完全な結果を取得するには "stream": false を設定します。ストリーミングは UI で進行状況を表示するのに便利です。スクリプトや自動化には、ストリーミングを使わないほうが簡単です。
利用可能なモデル
| モデル | 強み | 最適な用途 |
|---|---|---|
| flux-2-max | 最高品質、卓越したディテール | メインビジュアル、印刷対応のビジュアル、ポートフォリオ作品 |
| flux-2-pro | 品質のバランスを保ちながら高速 | 迅速な反復、プロダクションワークフロー |
| flux-kontext-pro | 画像内のテキストを正確に描画 | ポスター、看板、読みやすいテキストを含むロゴ |
| nano-banana-pro | 最速の生成速度 | プロトタイピング、大量生成、リアルタイムプレビュー |
| gemini-imagen-4 | 卓越したフォトリアリズム | 商品写真、ライフスタイル写真、リアルなシーン |
| seedream-v4-5 | 芸術的でスタイライズされた出力 | イラスト、ファンタジーアート、絵画調のスタイル |
| kling-text-to-image | 幅広いスタイルに対応 | 汎用的な生成、ミクストメディア |
each::sense はプロンプトに基づいて最適なモデルを自動的に選択します。選択を上書きしたい場合を除き、モデルを指定する必要はありません。
プロンプトエンジニアリングガイド
プロンプトの構成
[subject] + [action/pose] + [environment] + [style] + [lighting] + [camera/composition]
スタイルキーワード
| スタイル | キーワード |
|---|---|
| フォトリアリスティック | photorealistic, ultra-realistic, DSLR photo, 8K, raw photo, unedited |
| イラスト | digital illustration, vector art, hand-drawn, watercolor, ink drawing |
| シネマティック | cinematic, film still, movie scene, dramatic lighting, anamorphic lens |
| アニメ | anime style, manga, cel shading, Studio Ghibli, Makoto Shinkai |
| 3D レンダリング | 3D render, octane render, unreal engine, isometric, blender render |
| 油絵 | oil painting, impasto, classical art, Renaissance, Baroque |
| ピクセルアート | pixel art, 16-bit, retro game, 8-bit, sprite art |
| ミニマリスト | minimalist, flat design, simple, clean lines, geometric |
アスペクト比
プロンプトにアスペクト比を指定して、画像の寸法を調整します。
"... landscape format, 16:9 aspect ratio"
"... square format, 1:1"
"... portrait format, 9:16, vertical"
"... ultrawide, 21:9 cinematic"
品質を高める表現
masterpiece, highly detailed, sharp focus, professional,
studio quality, award-winning, 8K resolution, HDR
ネガティブガイダンス
望まないものを説明して、結果を改善します。
"... avoid blurry, no watermarks, no text overlays, avoid distorted faces"
例
フォトリアリスティックな風景
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "A misty fjord in Norway at sunrise, mirror-like water reflecting snow-capped mountains, a small red fishing cabin on the shore, photorealistic, 8K, golden hour lighting, shot on Hasselblad"}],
"stream": false
}'
デジタルイラスト
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "A cozy bookstore interior with a cat sleeping on a stack of old books, warm lamp light, plants hanging from the ceiling, digital illustration, Studio Ghibli style, soft colors, whimsical atmosphere"}],
"stream": false
}'
商品写真
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "A sleek wireless earbud case on a marble surface, soft studio lighting, product photography, shallow depth of field, clean minimalist background, commercial quality, 1:1 square format"}],
"stream": false
}'
コンセプトアート
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "A floating cyberpunk city above the clouds, neon lights reflecting off chrome towers, flying vehicles streaming between buildings, concept art, matte painting, epic scale, dramatic perspective, 16:9 cinematic"}],
"stream": false
}'
画像内のテキスト(ポスター)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "A vintage concert poster for a band called SOLAR DRIFT, playing at The Echo Lounge, June 15th. Retro psychedelic style with swirling colors, 60s typography, orange and purple palette, portrait format"}],
"stream": false
}'
バッチ生成ワークフロー
# Generate multiple style variations of the same subject
PROMPTS=(
"A medieval castle on a cliff at sunset, oil painting style"
"A medieval castle on a cliff at sunset, photorealistic, drone shot"
"A medieval castle on a cliff at sunset, anime style, Makoto Shinkai"
"A medieval castle on a cliff at sunset, pixel art, 16-bit"
)
for PROMPT in "${PROMPTS[@]}"; do
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d "{
\"messages\": [{\"role\": \"user\", \"content\": \"$PROMPT\"}],
\"stream\": false
}"
echo "---"
done
よくある問題
- 曖昧なプロンプトでは、ありきたりな結果になります。被写体、スタイル、雰囲気を具体的に指定してください。
- 1 つのプロンプトに被写体を詰め込みすぎると、混乱を招きます。画像ごとに主な被写体を 1 つに絞ってください。
- ほとんどのモデルでは、テキストの描画が安定しないことがあります。テキストの多い画像には flux-kontext-pro を使用してください。
- 手や指は歪むことがあります。手が主役の場合は、慎重に切り取るかポーズを指定してください。
- 矛盾するスタイル(例:「フォトリアリスティックな水彩画」)は、モデルを混乱させます。スタイルは 1 つ選んでください。
- 50 語を超える詰め込みすぎたプロンプトは、品質を損なうことがよくあります。要点を絞った説明を 15~40 語にまとめてください。
関連スキル
- 画像編集 — 自然言語を使って生成した画像を編集、加工します
- 画像のアップスケーリング — 生成した画像の解像度を高めます
- 背景の削除 — 生成した画像から背景を削除します
- 動画生成 — 画像をアニメーション化して動画にします
Documentation
コメント
Markdown 対応