Kindle表紙をGeminiで作る — ベース生成+Pythonで書名合成(連載⑪)

,

Kindle表紙をGeminiで作る — ベース生成+Pythonで書名合成(連載⑪)

Kindle表紙をGeminiで作る — ベース生成+Pythonで書名合成(連載⑪)

「日本の測地系がわかる本」制作の裏側を綴る連載、第11回です。前回まではEPUBの中身(図版・品質管理・ファイルサイズ)の話が続きました。今回は本の「顔」となる表紙を、生成AIとPythonの組み合わせでどう作ったかという話です。


表紙だけは別ルールで作る

以前の記事で触れたとおり、本文の図版は横長・JPEG圧縮という方針にしていますが、表紙だけはこの方針の対象外にしています。KDPが求める表紙サイズは縦長(目安として概ね1600×2560px前後の比率)で、本文図版とは寸法もアスペクト比もまったく異なるためです。表紙は文字の縁がシャープに見える必要があるので、圧縮による劣化を避けたい画像でもあります。


ステップ1: Geminiでベース画像を作る

まず、書名や副題を含まないベースのビジュアルだけをGeminiに生成してもらいます。文字を画像生成モデルに直接描かせると、日本語のフォントが崩れたり、意図しない位置に配置されたりすることがあるため、「文字なし・no text」を明示したプロンプトで、背景となるイラスト部分だけを作るという分業にしています。

このブログでアイキャッチ画像を作るときと同じ考え方で、テーマに合わせた配色・モチーフを言葉で指定し、複数案を生成して見比べながら採用案を選んでいます。


ステップ2: Pythonで書名・副題を合成する

ベース画像ができたら、Pillow(PIL)を使ったPythonスクリプトで書名・著者名・キャッチコピーを画像の上に合成します。おおまかな流れは次のとおりです。

  1. ベース画像を読み込み、表紙サイズにリサイズ・トリミングする
  2. 書名用のフォント(和文フォント)を指定サイズで読み込む
  3. 描画位置・行間・文字色・縁取り(アウトライン)を計算して重ねる
  4. 副題・著者名も同様に別レイヤーとして合成する
  5. 最終的にPNG(表紙は非可逆圧縮を避けるため)で書き出す

この方式の利点は、文字だけをあとから何度でも調整し直せることです。ベース画像の生成には試行錯誤の時間がかかりますが、いったん良いベースができれば、文字サイズや配置、キャッチコピーの文言だけを変えた複数バージョンを、画像生成をやり直さずに素早く作れます。


縦長1600×2560という制約への対応

Kindleの表紙はリフロー型の本文と違って固定の縦長サイズで表示されるため、本文図版の「横長・文字サイズ可変に耐える」という設計方針とは真逆の制約がかかります。ベース画像をGeminiに依頼する段階で、あらかじめ縦長の構図(上部に空白を多めに取る、主要なモチーフを中央〜下部に配置するなど)を指定しておくと、あとの文字合成がしやすくなります。

文字を後乗せする前提だと、生成AIに「表紙全部を一発で作らせる」よりも、背景と文字を分業したほうが手戻りが少ないというのが、この本の制作を通じて得た実感です。


まとめ

  • Kindle表紙は本文図版と違うサイズ・アスペクト比のため、専用の作り方を用意している。
  • Geminiには「文字なし」のベースビジュアルだけを作ってもらい、書名・副題はPython(Pillow)で後から合成する。
  • 背景と文字を分業することで、文字周りの微調整をやり直しやすくしている。
  • 縦長という制約に合わせて、ベース画像の構図をあらかじめ指定しておくと合成がスムーズになる。

次回は、Kindle本の価格を3段階で変えた設計について書く予定です。

関連記事


開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


アプリを入手(App Store)GeoConverterPro(座標変換) | GeoPrism JP(測地系の可視化・学習)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Back to top