Jewelry AI

生成を送信したとき、端末から実際に出ていくもの

写真は、端末にあるままの形で送られるとは限りません。長辺が2048 pxを超えるファイルはその上限まで下げられ、向きの情報はピクセルに適用されたうえでタグが削除され、すでに向きが正しく上限の内側にあるファイルは手を加えずにそのまま送られます。

送られるファイルは、選んだファイルと同じとは限りません

画像の選択画面とAIプロバイダーの間には、写真を測って書き直しが必要かどうかを決める段階があります。確認されるのは2つです。長辺がどれだけ長いか、そして画像がすでに正しい向きになっているか。

長辺が2048 pxを超えている場合、あるいはまだ適用されていない向きの情報を持っている場合、そのファイルは送信される前に書き直されます。向きが正しく、すでに上限の内側にある場合は、まったく書き直されません。その場合はそのまま送られます。

つまりこのページの主張は、すべての送信が変換されるということではありません。2つの具体的な条件が、その送信が変換されるかどうかを決める、ということです。

送信されるリクエストが運ぶもの

以下の各項目は、ジュエリー画像でもモデル画像でも同じく、AIプロバイダー層が送信時に行うことです。

長辺2048 pxの上限が、両方の画像に適用されます。
ジュエリーの写真とモデルの写真は、リクエストが組み立てられる前に、それぞれ長辺2048 pxへ収められます。
上限は縮小し、拡大はしません。
リサイズは拡大せずに画像を上限の内側へ収めます。長辺が2048 pxを下回るファイルは、そのままの大きさで残ります。
上限を超えるピクセルは、リクエストが送られる前に捨てられます。
上限より大きいファイルでは、長辺2048 pxを超える細部は、送られる内容に含まれません。
EXIFの向きはピクセルに適用され、そのあとタグが削除されます。
回転が画像データに焼き込まれ、向きのメタデータが取り除かれます。処理は向きを補正し、問題を後段へ回しません。
上限の内側にある向きの正しいファイルは、再エンコードされずにそのまま送られます。
向きの値が1以下で、長辺が上限の内側にある場合、そのまま送る経路が保たれ、ファイルはそのままの形で送られます。
書き直されるファイルは、PNGとして再エンコードされます。
そのまま送る経路から外れたファイルは、リクエストに添付される前にPNGへエンコードされます。

選択画面からAIプロバイダーまで、1回の送信

順序が意味を持ちます。各段階が、次の段階に何を渡すかを決めるからです。

  1. 画像が上限と比べられる

    長辺が2048 pxと比較されます。この上限はジュエリー画像でもモデル画像でも同じです。

  2. 向きの値が読まれる

    向きの値が1以下の画像は、すでに正しい向きとして扱われます。それを超える値には、まだ適用すべき回転が残っています。

  3. 向きが正しく上限の内側なら、何も書き直されない

    2つの条件がそろうと、そのまま送る経路を通ります。リサイズも再エンコードも行われず、ファイルはそのままの形で渡されます。

  4. そうでなければピクセルが回転され、タグが削除される

    EXIFの向きが示す回転が画像データに適用され、そのあとで向きのメタデータが取り除かれます。

  5. そうでなければ長辺が2048 pxまで下げられる

    リサイズは上限の内側に収めるだけで拡大しないため、この段階は画像を小さくすることしかできません。

  6. 書き直された画像がPNGとしてエンコードされ、添付される

    PNGは、そのまま送る経路から外れたファイルに使われるエンコードです。これは添付ファイルの形式であって、返答の形式ではありません。

  7. 返答の形式と保持のフィールドがリクエストに設定される

    返答の形式はimage/jpegに設定され、本文は、やり取りを保持しないようAIプロバイダーに求める要求としてstore:falseを運びます。

送信されるリクエストをフィールドごとに

AIプロバイダー層に現れるとおりの値です。

フィールド送信時に適用される規則
長辺(ジュエリー画像)上限の内側に収める。拡大はしない2048 px
長辺(モデル画像)上限の内側に収める。拡大はしない2048 px
EXIFの向きピクセルに適用し、そのあとタグを削除画像データに書き込まれる
上限の内側にある向きの正しい画像そのまま送る経路を維持。再エンコードしないそのまま送信
そのまま送る経路から外れた画像添付される前に再エンコードPNG
返答の形式AIプロバイダーに要求するimage/jpeg
保持のフィールド要求として送信。遵守は検証しないstore:false
1回の送信あたりのAIプロバイダーでの実行試行1回としてキューに入る1

手動の配置は、座標ではなく文章として運ばれます

作品の位置を自分で決めた場合、その数値はパラメーターとしてAIプロバイダーに届きません。プロンプトの中の英語の文章に書き込まれます。

作品の中心は左からと上からの整数のパーセントで、作品の幅も整数のパーセントで、回転は小数第1位までで表されます。丸めは文章が書かれる前に行われるため、文章は丸めたあとの数値を運びます。

これを知っておく意味は、指示の性格が決まるところにあります。配置は、プロンプトの他の内容と並んで、言葉でモデルに説明されます。

返答に何が求められるか、そして実行は何回か

送信されるリクエストは、返してほしい答えの形も決めています。

返答はJPEGとして要求されます。
リクエスト上の返答の形式はimage/jpegです。
モデル着用の結果が透過を持つことはありません。
これは要求された返答の形式から導かれます。透過 PNGを送り込んでも、透過が返ってくることはありません。
1回の送信は、AIプロバイダーでの1回の実行です。
キューの処理は試行1回で追加されるため、1回の送信に対してAIプロバイダー側の実行はちょうど1回です。
再試行可能と分類された結果は、送信された処理をやり直すのではなくキューを遅くします。
レート制限、サーバー側、ネットワークの失敗は再試行可能に分類され、再試行までの待ち時間(retry-after)の値が流量制限への待ち時間として使われます。これはキューの流量を絞るもので、実行を繰り返すものではありません。
再試行不可に分類される結果もあります。
安全性を理由とする拒否、返答が返らないこと、画像が返るはずのところにテキストが返ることは、いずれも再試行不可に分類されます。

この上限がジュエリー写真にとって意味すること

上限は品質の判断ではありません。リクエストが出ていく前に行われる大きさの決定であり、以下は、それによって取るべき行動が変わる場合です。

  • チェーンやパヴェの石留めをマスターファイルの原寸で確認したのに、リクエストが運ぶのは上限を掛けたあとの画像である。

    長辺2048 pxで確認してください。元のファイルが大きい場合、送信される画像はその大きさに収められます。

  • 時間を節約するために小さく書き出し、処理が差を埋めてくれると期待する。

    埋めることはできません。リサイズは拡大しないため、もっと必要なときは元のデータから書き出し直してください。

  • 以前に横向きで返ってきたことがあるため、送る前に手で写真を回転させる。

    端末に表示されているとおりに送ってください。向きはピクセルに適用され、同じ段階でタグが削除されます。

  • 透過の切り抜き画像を送り、透過が残ることを前提に合成を計画する。

    不透明な結果を前提に合成を組み立ててください。返答はJPEGとして要求されます。

  • 取引先に答えるとき、store:falseを削除の保証として扱う。

    そのままの姿で説明してください。やり取りを保持しないようAIプロバイダーに求めるリクエスト内のフィールドであり、守られたかどうかの確認なしに送られています。

高画質化の依頼は、始まる前に測られます

モデル着用の画像ではなく高画質化のためにファイルが送られる場合、送信の段階はまず独自の入力の上限を適用します。

短辺が64 pxを下回るファイルは受け付けられません。約30メガピクセルを超えるファイルは、デコード時の巨大データに対する保護(decode-bomb protection)によって止められます。その間にあるファイルは、まず長辺が1600 pxまで下げられ、高画質化の結果は処理の中でその4倍、最大6400 pxと記述されています。

つまり高画質化の入力は、高画質化が行われる前に上限が掛けられます。モデル着用の送信に掛かる2048 pxの上限と同じ考え方です。

このページで確定できないこと

以下は、送信されるリクエストの層が定める範囲の外にあるため、ここでは主張しません。

  • AIプロバイダーがstore:falseに従うかどうか。要求は送られますが、遵守は検証されていません。
  • ある配備でリクエストの先にいるAIプロバイダーやモデルが何であるか、そのモデルが内部でどう振る舞うか。
  • プロンプトの中の個々の指示が、返ってきた画像に反映されているかどうか。
  • ある配備でどのツールが有効になっているか。
  • 返ってきた画像の大きさ。結果の寸法や形は、このページでは何も定まりません。
  • 1回の実行にいくらかかるか、クレジットがいつ引かれるか、失敗したときにどうなるか。
  • アプリの画面にどの操作が現れるか、そしてアップロードが始まる前にどのファイル形式が受け付けられるか。

よくある質問

AIプロバイダーは写真を元の解像度のまま受け取りますか?

長辺が2048 pxを超えるファイルでは受け取りません。その場合、長辺は上限まで下げられ、上限を超えるピクセルはリクエストが送られる前に捨てられます。すでに向きが正しく上限の内側にあるファイルは別の場合で、変更されずにそのまま送られます。

すべての画像は送信前に再エンコードされますか?

されません。向きの値が1以下で、長辺がすでに上限の内側にある画像は、そのまま送る経路を通り、再エンコードされません。その条件から外れる画像は書き直され、PNGとしてエンコードされます。

小さい写真は2048 pxに届くまで拡大されますか?

拡大されません。リサイズは拡大せずに上限の内側へ画像を収めるため、縮小しかできません。上限を下回るファイルは、そのままの大きさで送られます。

store:falseは、AIプロバイダー側で画像が削除されるという意味ですか?

送信される本文が、やり取りを保持しないようAIプロバイダーに求めている、という意味です。コードはそのフィールドを送り、守られたかどうかは確認しないため、正確な言い方は「要求は行われる」であって「保持が防がれる」ではありません。