メインコンテンツへスキップ
見出し画像

ローカルLLM小説ツール「Inkubus」3.0で作った本が、Kindle出版を無事に通りました。ついでにEPUBについてまとめます

    やりました。通りました!

    私が作っているローカルLLM小説ツール「Inkubus」で書いた小説が、Kindleストアに並びました。手元のパソコンでLLMに小説を書かせて、そのまま縦書きのEPUBの本にできるソフトです。

    「黒ストッキングの令嬢と路上の名探偵」。全8章、22,514字のライトミステリです。本文はローカルLLMが書いて、表紙と口絵は画像生成で作って、EPUBはInkubusの製本画面で組みました。全年齢の内容なので、どなたでも読めます。

    画像
    Amazonの商品ページ

    ソフトのほうはこちらです。

    3.0を出したとき、記事にこう書きました。「私はまだ、KDPに出して販売開始まで通した経験がありません」。だからKindle対応はサポートまでです、と。そのうえで「私のほうで通したら、あらためて記事にします」と付け足していました。

    宿題を出したのは自分なので、やるしかありません。今回それを片付けました。

    EPUBは、直さずにそのまま通りました

    Inkubusが書き出したEPUBに、1バイトも手を入れていません。表紙も一発。変換の警告も出ませんでした。

    審査は、登録してから数時間で終わっています。KDPの案内では3〜10営業日となっているので、たまたま早かっただけかもしれません。ここは運の要素があると思って読んでください。

    Kindleアプリで開くとこうなります。買ったものではなく、書き出したEPUBをSend to Kindleで転送して読んだ画面です。縦書きのまま、ふつうの電子書籍として読めます。

    画像
    Kindleアプリで読んでいるところ

    私のKDP環境

    参考になるかどうかの判断材料として、先に置いておきます。

    KDPのアカウントは10年ほど前に作ってありました。そのとき1冊出しています。ただし小説ではありません。小説としては今回が1冊目です。

    なので「アカウント登録でつまずいた」という話は出てきません。はじめての方は、アカウントの作成と、税や振込口座の情報を入れる手順が別にあります。そこは今回の記事ではカバーできていません。

    Inkubus側が足りなくて、手で埋めたのは2つだけ

    EPUBのファイル、表紙、書誌に貼る文字列。このあたりはInkubusが出したものをコピーして貼るだけで済みました。詰まった記憶がありません。

    商品ページに出ている内容紹介も、Inkubusに書かせたものをそのまま貼っています。

    画像

    自分で考えたのは2つです。

    1. ヨミガナとローマ字

    KDPは、タイトル・サブタイトル・著者名に、漢字かな交じりの表記とは別に、カタカナの読みとローマ字表記を求めてきます。Inkubusはそれを持っていないので、自分で打ちました。

    架空の著者名を使っていると、ここが少し面倒です。「もちもち白うさぎ」は自分で読めますが、生成された造語まじりのタイトルだと迷います。

    こちらはまだ考え中です。読みを機械で当てるのは思ったより難しくて、形態素解析のライブラリを入れても、造語やキャラの名前という一番効いてほしいところで読みが返ってきません。作るとしたら、別の形になりそうです。

    2. 検索キーワード7つ

    KDPには検索キーワードの欄が7つあります。ラベルには「(オプション)」と書いてあるのに、空のままにしておくと「キーワードが入っていません」と案内が出ます。

    画像
    KDPの検索キーワード欄

    読者があなたの本を探すときの言葉なので、入れないと単純に損です。1つの欄に50文字まで。Amazonが示している例は「中世のファンタジー」で、単語ではなく短いフレーズを入れます。

    ここも自分で考えました。ただ、本文を書いたのはLLMなのに、その本を見つけてもらうための言葉だけ人力というのは、さすがに変です。

    なので、出版が通ったその日に作りました。あらすじと登場人物を読ませて候補を16個出させて、タイトルにそのまま入っている言葉を機械的に外して、上位7つを欄に並べるところまで。

    画像
    出版用キーワードの生成

    Inkubusの次の版に入る予定です。配布の時期はまだ決めていません。

    Inkubusとは

    ローカルLLM(Ollama)で小説を書かせるツールです。モデルは手元のパソコンで動くので、書かせた内容がどこにも送られません。ここが、この手のソフトを自分で作っている理由でもあります。

    使い方は単純です。ロールとお題と章数を決めて、実行を押して、寝る。

    画像

    朝起きると、できています。1本ではなく、指定した本数ぶんまとめて。章数は1章から100章まで選べるので、短編も長編も同じ画面で回せます。


    画像

    数を作って、読んで、気に入ったものだけを残す。そういう使い方を想定しています。

    3.0からは、その先を引き受けるようになりました。選んだ1本に表紙をつけて、口絵を入れて、奥付を整えて、縦書きのEPUBとして書き出すところまで。今回Kindleに出した本も、全部この中で作りました。

    画像

    動いているところは、この動画で通して見られます。2分です。


    EPUBの技術的な話

    今回EPUBを実装するにあたって調べたことを、まとめておきます。

    出版する予定がなくても、EPUBが自分で作れると効きます。書いたものを、市販の電子書籍と同じ形にして手元に置けるので。

    EPUBは、HTMLとCSSをZIPに固めたもの

    身も蓋もない言い方ですが、本当にそれだけです。

    この記事を書きながら、さっきの本をもう一度書き出して、中を開いてみました。全体はこうなっています。

    画像


    1章が1つのXHTMLファイルになっています。8章あるので8個。残りは表紙や目次や奥付で、見た目を決めるCSSが1枚。

    お手持ちのEPUBでも試せます。拡張子をzipに変えれば、たいていの解凍ソフトで開きます。中を覗くと、たぶん似たような並びになっているはずです。

    全部を仕切っているのはpackage.opf

    ファイルがこれだけ散らばっているのに、開くと1冊の本として読める。その順番を決めているのがpackage.opfです。

    中身は大きく3つに分かれています。metadataが題名や著者などの書誌、manifestが「この本に入っているファイルの目録」、spineが「どの順番で読ませるか」。

    さっきの本のspineは、そのままこうなっています。

    <spine page-progression-direction="rtl">
      <itemref idref="cover"/>
      <itemref idref="kuchie001"/>
      <itemref idref="kuchie002"/>
      <itemref idref="titlepage"/>
      <itemref idref="frontmatter"/>
      <itemref idref="toc"/>
      <itemref idref="ch001"/>
      <itemref idref="ch002"/>
      <itemref idref="ch008"/>
      <itemref idref="afterword"/>
      <itemref idref="colophon"/>
    </spine>

    表紙、口絵、大扉、あらすじと登場人物、目次、本文、あとがき、奥付。本を開いた順そのままです。

    先頭のrtlが右開きの指定で、縦書きの本はこれになります。ここが決めているのはページをめくる方向だけで、本文が縦組みになるかどうかとは別の話です。

    読む順番と、本文のHTMLと、CSS。EPUBの中身は、だいたいこの3つで説明がついてしまいます。

    だから、ライブラリなしで作れます

    Inkubusの製本は、EPUB生成のライブラリを使っていません。ZIPに固めるところだけ既存のものを借りて、あとは自前で組み立てています。100章22万字の本でも、20ミリ秒くらいで書き出せます。

    理由は2つ。

    ひとつはライセンス。有料で配るソフトなので、依存が増えるほど確認する項目が増えます。EPUB関連のツールにはGPLのものもあって、同梱すると話がややこしくなります。

    もうひとつはオフライン。Inkubusはセットアップが終わればネットにつながなくても動く、というのを大事にしています。依存は少ないほうがいい。

    そしてこれは、コーディングエージェント(Claude CodeやCodex)を使う開発と相性がよかったところです。ライブラリを探して使い方を覚えるより、仕様のほうを読ませて文字列を組み立てさせるほうが早い、という場面がありました。出てくるのがテキストとZIPなので、正しいかどうかを機械で確かめやすいのも効いています。

    読んでよかった資料を3つ

    EPUB 3とは何か?(オライリー・ジャパン)

    オライリーが無料で配っている電子書籍です。ダウンロードにはEbook Storeのアカウントが要ります。

    https://www.oreilly.co.jp/books/9784873115528/

    数十ページしかないのに、EPUB 3が何を目指して作られたのかが最初に分かります。仕様書を読む前にこれを通しておくと、あとの理解が早い。書いたのは仕様策定のチーフエディタです。

    W3C標準「EPUB 3.3」とアクセシビリティ対応(JEPA)

    2023年7月12日のセミナーで、KADOKAWAの高見真也さんの回です。

    https://www.jepa.or.jp/sem/20230712/

    EPUBの仕様がW3Cに移ってから何が変わったのか、アクセシビリティ対応で制作側は何をすればいいのか。Inkubusが書き出すEPUBにアクセシビリティのメタデータを入れているのは、この回を見たからです。

    EPUB戦記 ―― 電子書籍の国際標準化バトル(小林龍生 著)

    図書館で読みました。

    日本語の縦書きやルビが、どういう経緯でEPUBに入ったのか。標準化の会議で何が起きていたのかを、当事者が書いた本です。伝記として面白い。

    そしてこの本の中にも、「EPUBはつまるところHTMLとCSSをZIPに固めたもの」という言葉が出てきます。仕様に深く関わった人たちがそう言っているので、その理解でいいんだと安心しました。

    本ではその先に、では重要なのは何か、と続きます。挙げられているのがspineでした。この記事も結果として同じ順番になっています。

    EPUBを実際に作ってみて、つまずいたところ

    技術の細かいところは製品の中身なので深追いしません。ただ、EPUBを自分で作る人が同じところで転ぶともったいないので、3つだけ。

    縦書きの英数字は、全角にして1字ずつ立てる

    縦書きの中に「15歳」や「3章」のような半角の数字が混ざると、リーダーによって見え方が割れます。

    普通は縦中横という仕組みを使って、半角の数字を横に寝かせたまま1マスに収めます。ところが、これに対応していないリーダーがありました。Windowsで縦書きEPUBを読むならまずこれ、というアプリで横倒しになって、Apple Booksとは違う見え方になりました。

    Inkubusは、半角の英数字をすべて全角に直して、1字ずつ立てる形にしています。「15歳」なら「1」の下に「5」。少し野暮ったいのですが、どのリーダーでも同じに見えるのはこれだけでした。

    画像
    数字を全角にして違和感ないように

    見た目の良さより、割れないほうを取っています。

    Kindleだけ、画像の指定を捨てる

    口絵を画面に収める指定を書いていたのですが、Kindleに変換すると、その指定が丸ごと消えていました。

    Amazonが配っているKindle Previewerには変換ツールが同梱されていて、無圧縮で変換すると中のCSSがそのまま読めます。読んでみたら、こちらの指定だけがきれいに削られていました。

    なので、Kindle用の指定と、それ以外のアプリ用の指定を両方書いています。片方だけにすると、どちらかで絵が歪みます。

    画像

    ここは「警告が出なかったから大丈夫」では確かめられないところでした。変換した後のファイルを開いて読むまで分かりません。

    表紙は2つある

    これは仕様というよりKindleの話ですが、見落としやすいので。

    本の中の表紙(開いて1ページ目に出るもの)と、ストアの商品ページに出る表紙は別物です。前者はEPUBの中に入っていて、後者はKDPの画面で別にアップロードします。

    Inkubusの製本画面には「出版の準備」という節があって、いま選んでいる表紙から、KDPの推奨に合わせたJPEGをその場で作れます。書誌欄に貼る文字列も同じ場所です。

    画像

    寸法や形式は同じでよくて、違えられるのは絵と文字のほうです。成人向けかどうかの判定に使われるのは表紙の画像とタイトルの語で、本文は見られません。そしてAmazon側が判定した場合、こちらからは取り消せません。

    つまり、本の中身とストアの顔を分けるという選択肢があります。私は今回そこまでしていません。ただ、知っているかどうかで選べる幅が変わります。

    EPUBを読むアプリは、思ったよりたくさんあります

    ここまで出版の話をしましたが、EPUBは出版しない人にも効きます。

    自分の書いたものをEPUBにしておくと、市販の電子書籍とまったく同じように読めるからです。本棚に表紙が並んで、目次から章に飛べて、文字の大きさも自由に変えられる。ブラウザでテキストを読むのとは体験がかなり違います。

    無料で使えるアプリだけでも、これだけあります。

    iPhoneとiPadなら、最初から入っている「ブック」。共有メニューから渡すだけで本棚に入ります。Macも同じアプリです。

    https://www.apple.com/jp/apple-books/

    Windowsなら紀伊國屋書店のKinoppy。デスクトップ版があって、縦書きの表示が手堅いです。

    スマートフォン全般なら、丸善・ジュンク堂・文教堂と提携しているhonto。iOSとAndroidの両方にあります。

    Kindleで読みたいときは、Amazon公式のSend to Kindleに.epubを渡せば、いつものライブラリに入ります。

    https://www.amazon.co.jp/sendtokindle

    画像
    リーダーアプリ kinoppy で読んでいるところ

    どうしても個人の方の作ってるアプリだと広告をつけたり有料というケースが多いのでこういう出版社系のアプリのほうが使いやすいかと思います。

    ひとつ注意。書店系のアプリは、取り込んだ本をアカウントの本棚としてクラウドに同期できるものが多いです。自分の創作物を外部サービスに預けることになるので、同期は切って端末の中だけで読むほうが安心です。

    実機で表示を確かめた組み合わせは、こちらにまとめてあります。

    https://inkubus.pages.dev/help/epub-readers

    KDPの話は、公式サイトをしっかり読むほうが吉

    ロイヤリティや独占の条件は、金額も条件も変わります。私がここに数字を書いても、読まれる頃には古くなっているかもしれません。

    なので、調べたことは使い方サイトのガイドに置いて、そちらを更新していく形にしました。

    https://inkubus.pages.dev/help/kdp

    出す前に決めておいたほうがいいことだけ、ここに書いておきます。

    タイトル、サブタイトル、著者名は、出版したあとに変更できません。Inkubusは製本のときだけ著者名を差し替えられる作りにしてあります。ライブラリでは架空の作者のまま、本にするときだけ本名やペンネームにする、という運用ができます。ここは出す前に確定させてください。

    検索キーワードは逆で、出したあとから何度でも変えられます。だから最初に完璧を狙わなくていいところです。

    この記事に出てくるKDPの条件は、どれも2026年8月に確認したものです。

    おわりに

    EPUBは、思っていたよりずっと素朴な形式でした。HTMLとCSSをZIPに固めて、読む順番を書いたファイルを1枚足す。それだけです。

    だから自分で作れるし、作れるなら、書いたものを本の形にして持っておける。出版するかどうかとは関係なく、そこに価値があると思っています。

    Inkubusは、そこまでを1つのソフトの中でやります。

    画像

    図に出ているMycelinkとPixubusは姉妹ソフトです。ネタ出しと絵づくりを受け持っていて、どれも手元のパソコンだけで動きます。

    最新版のInkubus 3.0は、こちらで配布しています。


    この先の改善は、メンバーシップのほうから出していきます。今回書いた検索キーワードの生成も、そちらに。

    みなさんがEPUB出版で一発当てられるように。あなたの空想をAIが作品にして、それを多くの人に受け取ってもらう。そのお手伝いをInkubusができたらと思っています。

     
     
    WEBエンジニア歴20年/秋葉原歴20年 秋葉原にあるエンジニア会社の立ち上げCTO/CEOを経て独立。"オタクとしての創作AI活用"を中心に皆さんのAI活用が便利になる情報を展開します/ローカルLLM/ Ollama/画像生成AI/ComfyUI @n428dev AKB428

    あなたへのおすすめ