
Kindle表紙をGeminiで作る — ベース生成+Pythonで書名合成(連載⑪)
「日本の測地系がわかる本」制作の裏側を綴る連載、第11回です。前回まではEPUBの中身(図版・品質管理・ファイルサイズ)の話が続きました。今回は本の「顔」となる表紙を、生成AIとPythonの組み合わせでどう作ったかという話です。
表紙だけは別ルールで作る
以前の記事で触れたとおり、本文の図版は横長・JPEG圧縮という方針にしていますが、表紙だけはこの方針の対象外にしています。KDPが求める表紙サイズは縦長(目安として概ね1600×2560px前後の比率)で、本文図版とは寸法もアスペクト比もまったく異なるためです。表紙は文字の縁がシャープに見える必要があるので、圧縮による劣化を避けたい画像でもあります。
ステップ1: Geminiでベース画像を作る
まず、書名や副題を含まないベースのビジュアルだけをGeminiに生成してもらいます。文字を画像生成モデルに直接描かせると、日本語のフォントが崩れたり、意図しない位置に配置されたりすることがあるため、「文字なし・no text」を明示したプロンプトで、背景となるイラスト部分だけを作るという分業にしています。
このブログでアイキャッチ画像を作るときと同じ考え方で、テーマに合わせた配色・モチーフを言葉で指定し、複数案を生成して見比べながら採用案を選んでいます。
ステップ2: Pythonで書名・副題を合成する
ベース画像ができたら、Pillow(PIL)を使ったPythonスクリプトで書名・著者名・キャッチコピーを画像の上に合成します。おおまかな流れは次のとおりです。
- ベース画像を読み込み、表紙サイズにリサイズ・トリミングする
- 書名用のフォント(和文フォント)を指定サイズで読み込む
- 描画位置・行間・文字色・縁取り(アウトライン)を計算して重ねる
- 副題・著者名も同様に別レイヤーとして合成する
- 最終的にPNG(表紙は非可逆圧縮を避けるため)で書き出す
この方式の利点は、文字だけをあとから何度でも調整し直せることです。ベース画像の生成には試行錯誤の時間がかかりますが、いったん良いベースができれば、文字サイズや配置、キャッチコピーの文言だけを変えた複数バージョンを、画像生成をやり直さずに素早く作れます。
縦長1600×2560という制約への対応
Kindleの表紙はリフロー型の本文と違って固定の縦長サイズで表示されるため、本文図版の「横長・文字サイズ可変に耐える」という設計方針とは真逆の制約がかかります。ベース画像をGeminiに依頼する段階で、あらかじめ縦長の構図(上部に空白を多めに取る、主要なモチーフを中央〜下部に配置するなど)を指定しておくと、あとの文字合成がしやすくなります。
文字を後乗せする前提だと、生成AIに「表紙全部を一発で作らせる」よりも、背景と文字を分業したほうが手戻りが少ないというのが、この本の制作を通じて得た実感です。
まとめ
- Kindle表紙は本文図版と違うサイズ・アスペクト比のため、専用の作り方を用意している。
- Geminiには「文字なし」のベースビジュアルだけを作ってもらい、書名・副題はPython(Pillow)で後から合成する。
- 背景と文字を分業することで、文字周りの微調整をやり直しやすくしている。
- 縦長という制約に合わせて、ベース画像の構図をあらかじめ指定しておくと合成がスムーズになる。
次回は、Kindle本の価格を3段階で変えた設計について書く予定です。
関連記事
- EPUBを40MB→8.6MBに減量した話 — 全画像JPEG化と配信コスト(連載⑩・GeoConverterPro)
- リフロー型Kindle本の図版設計 — 横長で作る・文字サイズ可変に耐える(連載⑨・GeoConverterPro)
- ブログの技術図解はすべてAI生成——依頼するだけで完成する時代(GeoConverterPro)
- 市場調査で見つけた空白 — JGD2024を扱う書籍がゼロだった話(連載②・GeoConverterPro)
開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。
お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。
アプリを入手(App Store):GeoConverterPro(座標変換) | GeoPrism JP(測地系の可視化・学習)
コメントを残す