詰まりポイントを解消するための設計修正

記事生成の自動化を進める中で、画像生成まわりが噛み合わない感覚が続いていた。 コードは動く。画像も出る。 それでも「これでいい」とは言えなかった。

原因は単純で、設計上の前提が途中で食い違っていたことだった。
最初に引っかかっていたポイント
一番の詰まりどころは、1:1で生成しているのに運用は16:9前提だった点だ。
生成サイズは正方形。 一方で、ブログのアイキャッチ、OGP、一覧表示は横長。 このズレをプロンプト上の「16:9っぽい構図」で無理に埋めようとしていた。
結果として起きたことは次の3つ。
- 生成結果の当たり外れが大きい
- 後段トリミングで構図が崩れる
- なぜそのサイズで生成しているか説明できない
コードとしては動くのに、判断として説明できない状態だった。
次に詰まった「サイズを上げるべきか問題」
16:9に寄せるなら、最初からHDにすべきではないかという考えも出た。 でも、ここで思考が止まった。
- HDはコストが跳ねる
- Standardだと荒れる気がする
- 必要十分の線引きが曖昧
この時点では、「画質」と「用途」の整理ができていなかった。 すべての画像を一発で完成品にしようとしていたのが原因だった。
決定打になった気づき
整理のきっかけは、生成と仕上げを同一工程で考えていたこと自体が誤りだという視点だった。
生成はAI都合。 表示はブログ都合。 これを同時に満たそうとすると、判断が歪む。
そこで、生成段階と仕上げ段階を分ける方針を採用した。
今回の変更内容
今回の修正では、次のように設計を変更した。
- 生成サイズを横長に変更(デフォルト 1792×1024)
- プロンプトを `Widescreen composition (16:9)` に統一
- 仕上げ工程で 1600×900 へ `cover` リサイズ
- 画質は `quality=standard` のまま維持
- `AI_IMAGE_SIZE` と `AI_IMAGE_QUALITY` を `.env` に切り出し
これで「1:1生成 + 16:9運用」の根本矛盾は解消された。
なぜ詰まらなくなったのか
この修正で大きかったのは、迷いどころが消えたことだった。
- 生成は横長で破綻しないことを担保
- 仕上げで用途に合わせて正規化
- 品質は段階的に上げる前提
「全部を一発で決める」必要がなくなり、考え続けられる状態になった。
今回の学び
うまくいかなかった理由は、技術不足でもAPI制限でもない。 判断を一箇所に押し込みすぎていたことだ。
生成サイズ、アスペクト比、画質、コスト、用途。 これらを同時に解こうとすると詰まる。 分けて考え、あとで繋ぐ。 それだけで設計は前に進む。
次のステップ
この設定でまず1記事を再生成し、見た目とコストを並べて確認する。 問題なければ、これをデフォルト運用にする。
自動化は「動いたら終わり」ではなく、「詰まらなくなったら次へ行ける」。 今回の16:9切り替えは、その詰まりを一つ外したという話だ。