Jewelry AI
ジュエリーの画像はまだ生成中です
増えていくカウンターだけで他に何の合図もない画面は、止まった画面のように見えます。しかし、そう見えることは止まっている証拠ではありません。このページでは、この数字が何を起点に測られているのか、なぜ百分率がないのか、そしてなぜジョブを始め直すより画面を離れるほうが安全なのかを説明します。
画面の数字が実際に何であるか
待機画面が動かしている値は一つだけです。ジョブが作られてから経過した時間です。時計から読まれる値なので、サーバーが何をしていようと正しい値になります。それはそのまま限界でもあります。どれだけ待ったかは分かりますが、処理がどこまで進んだかは何も分かりません。
百分率がないのは、計算する材料がないからです。百分率には、分かっている全体と、その中の確かめられた位置が要ります。画面はそのどちらも持っていません。持っているのは開始時刻だけなので、報告するのも開始時刻からの経過です。
だからこそ、増えていくカウンターは不具合の証拠になりません。遅いジョブと止まった画面は、ここでは見分けがつきません。数字は、その二つを区別できないことについて正直です。区別は別の場所で付きます。ジョブはサーバーで続いており、どう終わったかはライブラリで分かります。
進捗バーがない理由
段階ごとの進捗リストはコードに書かれています。準備、ジュエリーの解析、画像の作成、仕上げという並びです。しかし画面には一度も描かれません。作りかけの機能だからではありません。理由はコードの中の、すぐ隣に書かれています。サーバーは実際の下位段階の情報を返さないため、その段階を動かせるものはローカルなタイマーしかないのです。
ローカルなタイマーは、演出としてなら十分に働きます。段階は次々に切り替わり、画面は生きているように感じられ、測られた進捗という印象はすべて作り物になります。そして、いちばん大事な場面でこそ人を誤らせます。止まってしまったジョブは作り物の段階を進み続け、速く動いているジョブは筋書きに合わせて足止めされるからです。
そのためアプリは、確かめられる一つだけを描き、残りを描きません。もし画面が段階を表示するようになるとすれば、それはサーバーが段階を報告し始めたときです。それまでは、進捗バーがないことは設計が働いている証であって、欠けている部品ではありません。
アプリはサーバーよりも長く待ちます
クライアントには待機の上限があり、それはサーバー側の上限より長く持ちこたえるように意図的に設定されています。理由も書き残されています。以前のより短い上限では、その時点でまだ処理されていたジョブを失敗として表示していました。それは誤った報告であり、修正はクライアントを二者のうち辛抱強いほうにすることでした。
この判断は、一つのメッセージの意味と引き換えに利用者の時間を使います。クライアントはサーバーより後にあきらめるので、この画面に出る失敗は、クライアントが待ちきれなくなった結果ではありません。それは答えです。
だからこそ、二つの状況は実際にはっきり違います。カウンターが増えているあいだの有効な一手は、画面を離れることです。失敗が報告されたあとの有効な一手は、ジョブを実行し直すことです。そして、もう一度始めるのが正しい勘になるのは、この場面だけです。
生成が動いているあいだにすること
カウンターが動き始めた瞬間からの順番です。
- 数字は経過時間として読む。待ち行列の位置でも、処理の進み具合の百分率でもない。
- 混み合っている時間帯についての一行が画面に出たら、画面を閉じる。ジョブは画面なしで続く。
- 作品を実行し直すのではなく、ライブラリからジョブを開き直す。開き直せば、独自のより遅い間隔で問い合わせが再開する。
- 一つ目が動いているあいだに同じ作品を二度実行しない。一つを確認する代わりに、出力を見比べることになる。
- 報告された失敗は本物として扱い、ジョブを実行し直す。クライアントは、サーバーが止めていた地点を過ぎるまですでに待っている。
- できあがった画像は、どこかに出す前に実物と見比べる。その確認は待っている最中ではなく、待ち終わったあとの仕事だから。
終わったときに返ってくるもの
届くのは、上流で固定されたサイズの仕上がった画像です。待機画面にそれを選ぶ余地はなく、ほかのどの画面にもありません。生成された出力のサイズが選ばれるのではなく決められている理由、そしてそれを設定だと考えると存在しない操作を探すことになる理由は、別の記事が扱っています。
画面で待っても、返ってくるものは変わりません。届く瞬間を見ていても、あとからライブラリで見つけても、出力は同じです。待機画面が決めるのは、処理が終わった瞬間に画面を見ていたかどうかだけです。
そのあとに関わってくることは、別の場所できちんと扱われています。作品そのものが生成を無事に通り抜けたかどうかは、実物と見比べて確認する仕事です。アプリには報告の導線があり、最初に並ぶ理由は商品が変わってしまったことです。何を見ればよいかは、ヴィンテージの出品者向けのページが示しています。また、実行したのが背景削除であれば、形式と透過について何が返ってくるかはそのツール自身の問いであり、専用のページで答えられています。
カタログ全体を待つとき
待つ対象が1枚ではなくひとまとまりの画像になると、計算が変わります。ジョブを一つずつ見守るのは、ひとまとまりを作るうえで最も遅いやり方です。画面が付け加えるものは何もなく、結果はどのみちライブラリに溜まっていくからです。
一画面ずつではなくまとめて進めるべき理由は、もう一つあります。カタログのページは、個々の写真の連なりではなく、画像どうしの比較として読まれます。これはShopifyのカタログについてのページが詳しく扱っています。そして比較は、届くたびに一枚ずつ確認するよりも、ライブラリで横に並べたほうがしやすくなります。
このページからは分からないこと
- 生成にどれくらいかかるか。ここに所要時間は書かれていません。測定された数値が記録されていないためです。画面は終わったあとの経過時間を伝えるだけで、予測はしません。
- AIプロバイダーのモデルが内部で何をしているか。ここで説明しているのは、クライアントが何を、いつ描き、どれだけ待つ用意があるかであって、向こう側で起きていることではありません。
- 出力の品質について。作品を保つことは保証ではなく指示であり、このページは仕上がりの見え方について何も約束しません。
- 存在しない操作。ジョブが動いているあいだに触れる解像度・背景・縦横比の選択肢はなく、この画面のどこにも、すでに作られつつある出力を変えるものはありません。
- そのあと画像をどうするか。実物と見比べること、販売先に合わせてサイズを決めること、画像のまとまりに統一感を保つことは、それぞれ専用のページの担当です。
よくある質問
ジュエリーの画像がまだ生成中なのはなぜですか?
ジョブがサーバーでまだ動いているからです。外から見ると、遅いジョブは止まった画面とまったく同じに見えます。表示されている数字はジョブが作られてからの実際の経過時間なので、処理が速くても遅くても増えていきます。混み合っている時間帯についての一行が出たら、そのジョブは時間がかかる見込みであり、アプリを閉じても処理は続きます。
アプリを閉じたり画面を離れたりすると、ジョブは止まりますか?
止まりません。処理は画面ではなくサーバーのものなので、画面を閉じても何も取り消されません。ジョブはライブラリに現れ、そこで開き直せば独自のより遅い間隔で問い合わせが再開します。だからこそアプリは、待つのではなく離れるように伝えます。
時間がかかっている場合、再試行すべきですか?
まだ動いているあいだは、すべきではありません。二回目の実行は二つ目のジョブを始めます。一つ目を取り消すことも速めることもなく、同じ作品の出力を二つ見比べることになります。実行し直す場面は、画面が失敗を報告したときです。その報告を信じてよいのは、クライアント側の待機の上限が、サーバー側の上限より長く持ちこたえるように意図的に設定されているからです。
進捗バーや百分率がないのはなぜですか?
それを動かせる実体がないからです。段階ごとのリストはコードに書かれていますが、意図的に一度も描かれません。サーバーが下位段階の信号を返さないためで、表示しても、段階が完了していく印象を作るだけのローカルなタイマーになってしまいます。アプリが表示するのは、確かめられる値、すなわち経過時間です。