mcpField
L
lovstudio-image-creator

lovstudio-image-creator

github.com/lovstudioクリエイティブ・メディア7385 回インストール今日更新
リポジトリ

lovstudio-image-creator について

lovstudio-image-creatorは、画像の直接生成、HTMLによるレンダリング、外部モデル向けプロンプト作成を行うスキルです。アート画像、編集可能なレイアウト、参照画像を基にしたデザインに対応し、レイアウトの修正と再出力もできます。

主な機能

  1. 01Geminiで画像を生成
  2. 02編集可能なHTMLデザインをPNG化
  3. 03外部画像モデル向けプロンプトを作成
  4. 04参照画像に基づいてデザインを調整
  5. 05出力のアスペクト比を指定・推定

活用シーン

  1. 01生成アートやイラストの作成
  2. 02編集可能なポスター、カード、バナーの制作
  3. 03外部画像モデル向けプロンプトの準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lovstudio/skills --skill lovstudio-image-creator

インストール後、Claude Code で/lovstudio-image-creatorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
gen_image.py
README.md
scripts/
render_to_png.py

詳細

Image Creator — マルチメカニズムフレームワーク

メカニズムの選択

ユーザーの意図に基づいてメカニズムを選択します。

メカニズム使用する場面出力
end-to-endAI 生成のアート、写真、イラストを求めている場合PNG 画像
code編集可能なコンテンツを含むデザイン済みのレイアウト(ポスター、カード、バナー)を求めている場合HTML ファイル + PNG
prompt外部モデル(Midjourney、nano-banana-pro など)向けのプロンプトを求めている場合テキストプロンプト

ユーザーが指定していない場合は、文脈から推測します。

  • 「生成一张猫的图片」→ end-to-end
  • 「做一张活动海报」→ code
  • 「帮我写一个 Midjourney prompt」→ prompt

メカニズム 1:エンドツーエンド(Gemini)

python3 gen_image.py "PROMPT" [-o output.png] [-q low|medium|high] [--ascii]
  • Gemini 3 Pro(ZenMux 経由)で画像を直接生成します
  • ZENMUX_API_KEY 環境変数が必要です
  • 初回実行時に pip --user 経由で google-genai と Pillow を自動インストールします(手動設定は不要です)
  • 生成後、Read ツールで結果を表示します

メカニズム 2:コードベースのレンダリング

ステップ 1:HTML を生成する

すべてのスタイルをインラインに含む、自己完結型の HTML ファイルを 1 つ作成します。以下を使用します。

  • CDN 経由の React 19(https://cdn.jsdelivr.net/npm/react@19/umd/react.production.min.js)
  • CDN 経由の ReactDOM 19
  • CDN 経由の Tailwind CSS(https://cdn.tailwindcss.com)
  • CJK 向けの Google Fonts(<link> 経由):Noto Sans SC、Noto Serif SC

テンプレートの構成:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="https://cdn.jsdelivr.net/npm/react@19/umd/react.production.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/react-dom@19/umd/react-dom.production.min.js"></script>
  <script src="https://cdn.tailwindcss.com"></script>
  <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&family=Noto+Serif+SC:wght@400;700&display=swap" rel="stylesheet">
  <script>
    tailwind.config = {
      theme: { extend: { /* custom theme */ } }
    }
  </script>
  <style>
    /* Reset & base styles */
    * { margin: 0; padding: 0; box-sizing: border-box; }
    body { width: {{WIDTH}}px; height: {{HEIGHT}}px; overflow: hidden; }
  </style>
</head>
<body>
  <div id="root"></div>
  <script type="text/babel" data-type="module">
    // React component here
    function Poster() {
      return (/* JSX */);
    }
    ReactDOM.createRoot(document.getElementById('root')).render(<Poster />);
  </script>
  <script src="https://cdn.jsdelivr.net/npm/@babel/standalone/babel.min.js"></script>
</body>
</html>

重要:Babel standalone スクリプトは、必ず text/babel スクリプトブロックの後に配置してください。

ステップ 2:PNG にレンダリングする
python3 scripts/render_to_png.py \
  /path/to/poster.html \
  -o output.png \
  -W 1200 -H 630 \
  --scale 2

一般的なアスペクト比:

比率寸法用途
16:91200×675ソーシャルメディアのバナー
4:31200×900プレゼンテーション
1:11080×1080Instagram の投稿
9:161080×1920ストーリー/モバイル向けポスター
3:4900×1200縦型ポスター
A4794×1123印刷用ポスター(210mm×297mm @96dpi)
ステップ 3:表示して調整する
  • Read を使用して PNG を表示します
  • macOS では open output.png で開きます
  • ユーザーから編集の依頼があれば、HTML を変更して再レンダリングします

メカニズム 3:プロンプトエンジニアリング

外部モデル向けに最適化されたプロンプトを生成します。以下を含めます。

  • ポジティブプロンプト:被写体、スタイル、照明、品質タグ
  • ネガティブプロンプト:避けるべき一般的な欠陥

コピー可能なコードブロック形式で出力します。

参照画像のサポート

ユーザーから参照画像が提供された場合:

  • エンドツーエンド:プロンプトでスタイルや構図を説明します
  • コード:レイアウト、色、タイポグラフィを分析し、HTML/CSS で再現します
  • プロンプト:外部モデル向けにスタイルキーワードを抽出します

アスペクト比

希望するアスペクト比を必ず確認するか、推測します。上の表を使ってピクセル寸法に対応させます。

コメント