Skip to content

Latest commit

 

History

History
163 lines (109 loc) · 8.54 KB

File metadata and controls

163 lines (109 loc) · 8.54 KB

Open Prompts

Open Prompts は、AI 画像プロンプトテンプレートの発見・共有・再利用のためのオープンソースプラットフォームです。キュレーションされたギャラリーでテンプレートを閲覧し、生成スタジオで開いて、プラガブルなプロバイダーで画像を作成できます。ひとつのワークフローのまま完結します。

リポジトリ:github.com/rudy2steiner/open-prompts

Apache License, Version 2.0 の下で提供されています。

言語: English · 简体中文 · 日本語


はじめに

多くのチームはプロンプトをドキュメント、スレッド、スプレッドシートに散在させています。Open Prompts は、プレビュー画像・タグ・モデル・公開範囲(公開 / 非公開 / 下書き)を備えた テンプレート に整理します。ユーザーは次のことができます。

  • ギャラリー でコミュニティおよびカタログのプロンプトを探索
  • テンプレートからワンクリックで 生成
  • 公開プロンプトを 提出 して審査に回す、またはアカウントから 非公開 テンプレートを作成
  • GitHubGoogle、または メール でサインイン(運用者は管理者資格情報)

アプリは Next.jsnext-intl(英語・中国語・日本語)、NextAuthPostgres(例:Supabase)で構築されています。画像生成はサーバー API 経由で、現時点では Atlas Cloud に対応(Replicate は予定で未対応)、および有料 API 不要の テストモード があります。


主な機能

領域 内容
ギャラリー モデル・タグで検索・フィルタ。詳細表示から Create へ遷移(プロンプトは事前入力)。
Create スタジオ テンプレートカルーセル、プロンプトエディタ、アスペクト比 / 品質 / バッチ制御、プロバイダー選択、セッション履歴(ブラウザ localStorage)。
Submit フロー 単一ページウィザード。ギャラリー公開(公開 → 審査キュー)または ?visibility=private非公開 テンプレートを保存。
アカウント マイテンプレート、管理者 審査キュー(承認 / 却下)、クレジット・サブスクリプションのプレースホルダー UI。
認証 GitHub / Google OAuth。設定済み管理者向けメール・パスワード。公開の自己登録 UI はなし。
管理者モデレーション 全テンプレートを対象とした審査キュー。ステータスと公開範囲はギャラリー規則に整合。
X インポート Submit で公開ツイート URL を貼り付け、タイトル・説明・プロンプト・画像を事前入力。
i18n ロケールルート:/(英語)、/zh/ja。共通ヘッダー・フッター。
セルフホスト Apache 2.0。環境変数でプロバイダーと DB を設定。Vercel または任意の Node ホストにデプロイ可能。

クイックスタート

前提条件

  • Node.js 18+(20 LTS 推奨)
  • npm(または pnpm / yarn)
  • Postgres データベース(Supabase が適しています)
  • 任意:Atlas Cloud の API キー(実際の生成用)

1. クローンとインストール

git clone https://github.com/rudy2steiner/open-prompts.git
cd open-prompts
npm install

2. 環境変数

cp .env.example .env.local

最低限、次を設定します。

変数 用途
DATABASE_URL Postgres 接続文字列(マイグレーションと管理者クエリには Supabase Session pooler ポート 5432 を推奨)
NEXTAUTH_URL http://localhost:3000
NEXTAUTH_SECRET openssl rand -base64 32 で生成
NEXT_PUBLIC_SITE_URL ローカルでは NEXTAUTH_URL と同じ(SEO 用)

サインインと管理者:

変数 用途
GITHUB_ID / GITHUB_SECRET GitHub OAuth アプリ
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET Google OAuth クライアント
ADMIN_EMAIL 管理者メール(複数はカンマ区切り。ログインメールと完全一致すること)
ADMIN_PASSWORD 8 文字以上。起動時 / 管理者ログイン時に DB と同期

画像生成(Atlas Cloud またはテストモード):

変数 用途
DEFAULT_IMAGE_PROVIDER atlascloud(Replicate は未対応)
ATLASCLOUD_API_KEY Atlas Cloud API キー
USE_TEST_MODE true で実 API をスキップ
TEST_IMAGE_URL テストモードで返す画像 URL

クレジット上限と任意の OpenAI 設定は .env.example を参照してください。

3. データベース

Supabase SQL エディタまたは psql でマイグレーションを適用し、必要に応じてシードします。

# 任意:Drizzle で schema を push
npm run db:push

# 同梱データセットからギャラリーテンプレートを投入
npm run seed:prompts

# 管理者パスワードを DB に反映(ログイン失敗時)
npm run seed:admin

マイグレーション SQL は supabase/migrations/scripts/apply-owner-visibility-migration.sql にあります。

4. 開発サーバーを起動

npm run dev

http://localhost:3000 を開きます(デフォルトポート 3000)。

5. Vercel にデプロイ

Deploy with Vercel

  1. Vercel でリポジトリをインポート(Next.js プリセット、ビルド npm run build)。
  2. 手順 2 と同じ環境変数を設定。NEXTAUTH_URLNEXT_PUBLIC_SITE_URLhttps://your-app.vercel.app にする。
  3. Supabase で supabase/migrations/ を実行し、ローカルでその DATABASE_URL に対して npm run seed:promptsnpm run seed:admin を実行。
  4. OAuth コールバックを登録:…/api/auth/callback/github…/api/auth/callback/google(Vercel のドメインに置き換え)。

環境変数変更後は再デプロイ。管理者ログインに失敗したら、本番の DATABASE_URLnpm run seed:admin を実行。


プロバイダー

プロバイダー 状態 設定
Atlas Cloud 対応済み ATLASCLOUD_API_KEYATLASCLOUD_BASE_URL
Replicate 予定(未対応) .env.example に将来用の変数あり。現時点では DEFAULT_IMAGE_PROVIDER=replicate にしないでください
テストモード 開発 / デモ USE_TEST_MODE=trueTEST_IMAGE_URL

Create ページでは、ブラウザ(localStorage)で API キーを上書きできます。本番ではサーバー側の環境変数を推奨します。


技術スタック


コントリビューション

Issue と Pull Request を歓迎します。大きな変更は、まず Issue で方向性を相談してください。


まとめ

Open Prompts再利用可能な画像プロンプト の実用的なハブを目指しています。ギャラリーで効果的なプロンプトを見つけ、選んだモデルで生成し、テンプレートをコミュニティに還元する——非公開の下書きと、公開掲載のためのモデレーションを両立します。Fork して Supabase と組み合わせて Vercel にデプロイし、好みの画像 API を接続し、Apache 2.0 の下でチーム向けにワークフローを調整できます。

このプロジェクトが役に立ったら、リポジトリに Star を付け、GitHub Issues でフィードバックを共有してください。