はじめに
MOSS-Image テキストから画像 は、OpenMOSS の Apache-2.0 で公開されたオープンな 50 億パラメーターの拡散 Transformer、MOSS-Image で、書かれたプロンプトから画像を 1 枚作ります。ポスター、雑誌の表紙、広告、看板のように、正確な文字を多く含む画像のためのモデルです。当社のテストでは非常に長いプロンプトも最後まで読み、NSFW のプロンプトも、軽めから最大までのすべての強度レベルで書いたとおりに出力されました。プラットフォームはコンテンツフィルターを加えていません。手持ちの LoRA ファイルを使うなら、MOSS-Image LoRA テキストから画像 をどうぞ。
必要なものからモデルを選ぶ
| 必要なもの | モデル |
|---|---|
| ベースモデルの正確な文字、長いプロンプト、JSON レイアウト | MOSS-Image テキストから画像(現在のページ) |
| 同じモデルに自前の LoRA を最大 3 つ | MOSS-Image LoRA テキストから画像 |
主な機能とハイライト
書いたとおりに出る文字
映画ポスターのキャストと監督の名前、3 つの見出しと価格表示のある雑誌の表紙、香水のワードマーク、ネオンのモーテル看板が、当社のテストではすべて正しく綴られました。OpenMOSS は英語と中国語の文字描画の強さを同程度と報告しています。
最後まで読まれるプロンプト
プロンプトは最大 12,000 文字です。13,000 文字のプロンプトの最後の一文にだけ書いた赤い傘は、左下の隅に描かれました。
JSON レイアウト
レイアウトの JSON をプロンプトとして渡すと、文字ブロックや物体ごとにボックスが与えられます。タイトル、スクリプト体のサブタイトル、ラインアップ、ダンサーのあるクラブのフライヤーでは、どの要素もボックスの位置に収まりました。OpenMOSS はこの形式を実験的と位置づけています。
15 種の形、3 段階の解像度
1k、1.5k、2k のそれぞれで 1:3 から 3:1 まで。1.5k の 16:9 画像は 2048 x 1152、2k の 9:16 画像は 1536 x 2720 で返りました。
規制なし
当社のテストでは、軽めから最大までどの強度レベルでも、拒否も和らげもされませんでした。入力でも出力でも、何もフィルターされません。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
prompt | はい | 各テキストを引用符で囲み、置く場所を書いてください。最大 12,000 文字、英語で安定した結果になります。 1 文字以上 · 12000 文字以内 |
aspect_ratio | いいえ | 1:3 から 3:1 までの 15 種。既定は 1:1 です。 |
resolution | いいえ | 1k(約 1 メガピクセル、既定)、1.5k、2k。解像度ティアが料金を決めます。 |
output_format | いいえ | 既定は JPEG で、PNG または WebP も選べます。形式で料金は変わりません。 |
seed | いいえ | 一文ずつ変えながら、画像を比べやすく保ちます。同一のピクセルを保証するものではありません。 |
料金
解像度ティア(1k、1.5k、2k)ごとに 1 枚単位で課金されます。アスペクト比と出力形式では料金は変わりません。失敗したリクエストは課金されません。
| 仕様 | 料金 |
|---|---|
| $0.024 / 枚 |
| $0.048 / 枚 |
| $0.096 / 枚 |
ユースケース
ポスター、表紙、広告
タイトル、キャッチコピー、キャスト名、日付を 1 枚に。あるいは、見出しと価格表示のあるマストヘッド。文字ごとに引用符で囲み、位置を指定してください。
看板、バナー、チラシ
文字が絵の主役になるネオン看板、イベントのフライヤー、横長のバナー。ブロックごとに枠を指定したいときは JSON レイアウトを使います。
1 回のリクエストに長い企画書
数文に削らず、シーン、衣装、光、レンズと、文字の一行一行まで含めた企画書を丸ごと貼り付けてください。
プロンプトガイドと実践のヒント
文字は引用符で囲み、位置を指定する
「LAST CALL AT THE MERIDIAN」のように引用符で囲み、置く場所と見た目を書きます。例えば「下三分の一に、金色のセリフ体の大文字」のように。改行したいところは、引用符の中に改行を入れてください。
JSON レイアウトの書き方
プロンプトは JSON オブジェクトで、summary(画像全体の caption)と items のリストを持ちます。各要素は label(text または object)、caption、任意の text、bbox を持ちます。bbox_format を yxyx、bbox_coord_space を abs_centralized にすると、ボックスは [top, left, bottom, right] の形で、キャンバス中心からのピクセル単位になります。x は右へ、y は下へ増えます。
実際のサイズで計算する
1k の 4:3 画像は 1168 x 880 なので、x は -584 から 584、y は -440 から 440 になります。[-400, -560, -140, 40] のボックスは左上のタイトル領域です。ボックスを置く前に、比率と解像度ティアに対応する出力サイズを確認してください。
予備の seed を持つ
文字は時々つながります。香水の一回は NOIR を NOIIR と読みました。seed を変えてもう一度実行してください。seed は実行どうしの比較を保ちますが、同一のピクセルは保証しません。
必要なことは文で足す
ネガティブプロンプトやガイダンスはありません。被写体、衣装、場所、光、レンズを文で書き、文字の一行は選んだサイズで読める長さに抑えてください。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "openmoss/moss-image/text-to-image",
"input": {
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "1k",
"aspect_ratio": "1:1",
"output_format": "jpeg"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。




