エロ同人CG集の購買は「サムネ一覧(100〜300px)で0.5秒の勝負」。本DRの結論を1文で言うと、「題字を巨大化し、白6px+本色3pxの二重縁取りで顔に被せず下部に置き、ピンク基調+赤/橙の覚醒色を1色だけ差す」。これがランキング上位表紙の最大公約数です。
CC3は既にPIL組版エンジン(_remote_compose_v2)を持つため、上記は「表紙ジェネレータ」関数として既存パイプラインに即追加できます(第11章)。
表紙は「作品の顔」であると同時に各プラットフォームの規定px枠に収める工学的制約物です。逸脱すると余白や潰れが出て即マイナス[10]。確定仕様を一覧化します。
| 項目 | DLsite | FANZA同人 | BOOTH |
|---|---|---|---|
| 紹介メイン画像(表紙) | 560×420px | 560×420px | 1:1強制(1000×1000 or 1280×1280推奨) |
| サムネ(リスト/アイコン) | 300×300 / 100×100 | 300×300 / 100×100 | 中央正方形を自動トリミング |
| 制作キャンバス推奨 | 1600×1200(4:3)[14] | 1600×1200 | 正方形で原寸制作 |
| サンプル画像 | 長辺2000px以内 / 1枚2MBまで / 最大10枚 / JPEG・非透過PNG[1][3] | 1枚目=SNS共有用に横長+文字情報[6] | |
| 表示比率の罠 | 表紙は4:3、サムネは1:1。560×420を300×300に正方形クロップされる前提で中央寄せ必須 | 横長1枚目の「中央正方形」だけがサムネ化[6] | |
同人作家の実体験では「エロければ評価は後からついてくる・煽り(hype)が売上を伸ばす」とされ[17]、サムネ段階の訴求=題字+キャッチ+顔の3点が一覧クリック率を左右します。AI生成CG集は供給過多で「絵の質」より「表紙の差別化」がボトルネックになっており、PILでの量産的最適化が効く領域です。
ランキング上位のエロCG集表紙を構成則で8類型に分類しました。題字占有率=表紙面積に対する題字(ロゴ+帯)のおおよその専有割合。視線設計はZ型(初見の全体把握)/F型(上部優先)[4][5]。
| # | 類型 | 特徴 | 題字占有 | 視線 | 向くジャンル |
|---|---|---|---|---|---|
| A | フルボディ露出型 | 中央にキャラ全身・背景は薄め | 22〜25% | Z型(上→下) | NTR・調教・コスプレ全身 |
| B | 顔クローズアップ型 | 顔70%・汗/涎/紅潮を強調 | 18% | F型(左上集中) | 寝取り・巨乳・恍惚表情 |
| C | 複数キャラ並び型 | 2〜3人横並び・中央寄せ | 22% | Z型(左→右) | ハーレム・乱交 |
| D | 背景強調型 | 背景70%・キャラ小+世界観 | 30% | F型(上部優先) | ファンタジー・触手・異種 |
| E | テキスト帯型 | 下部に黒/紺帯・題字を帯内固定 | 40〜45% | Z型(帯内固定) | メイド・ナース・コスプレ |
| F | シルエット型 | 黒シルエット+光輪・想像喚起 | 15% | 中央F型 | ダーク・陵辱・サスペンス |
| G | アクション型 | 動き線・体液飛沫で躍動 | 20% | 斜めZ型 | 触手・機械姦・激しめ |
| H | アイテムフォーカス型 | 性具/下着/衣装を中央に | 12% | F型(中央寄せ) | 玩具・フェチ・衣装差分 |
表紙ジェネレータの最小構成。二重縁取りと%座標の2関数があれば全8類型を再現できます。
PILのdraw.text()はstroke_width/stroke_fillで1重縁取りが可能[12]。太い白縁を先に描き→細い本色を上描きすると、TV字幕級の二重縁取りになる[13]。これが縮小耐性の核心。
# 二重縁取り: 白6px(外) → 本色3px(内) の2段描画 from PIL import Image, ImageDraw, ImageFont def draw_title(img, text, cx, cy, font, fill, outer=(255,255,255), ow=6, inner_w=3): d = ImageDraw.Draw(img) # 1段目: 太い白縁(外側アウトライン) d.text((cx,cy), text, font=font, anchor="mm", fill=outer, stroke_width=ow, stroke_fill=outer) # 2段目: 細い本色縁 + 本色塗り(同座標に上描き) d.text((cx,cy), text, font=font, anchor="mm", fill=fill, stroke_width=inner_w, stroke_fill=fill) return img
anchor="mm"で中央基準描画[11]。座標は%で渡せば560/300/1000どのサイズでも自動追従。def pct(w, h, x, y): # 0-100% → 実px return int(w*x/100), int(h*y/100) W,H = 560,420 # DLsite/FANZA表紙 font = ImageFont.truetype("GenEiAntique.otf", int(H*0.125)) # 高さ12.5%≒52px cx,cy = pct(W,H, 50, 82) # 中央・下から18%
def preview(img, sizes=(64,100,200,300)): for s in sizes: # 1:1一覧クロップを再現(中央正方形) sq = min(img.size); l=(img.width-sq)//2 c = img.crop((l,0,l+sq,sq)).resize((s,s), Image.LANCZOS) c.save(f"_prev_{s}.png") # 目視で題字が読めるか確認
座標は%(x,y=左上原点)。題字pxは560×420基準(300pxへ縮小時も%追従)。色は外縁→本色の順。
キャラ: x28% y15% w44% h78%/題字: y82% 42px
レイヤー: 背景 → キャラ全身 → 白縁6px → #FF1744本色3px → 題字
NTR/調教/コスプレ全身。背景は彩度を落としキャラを浮かせる。
顔: x15% y5% w70% h75%/題字: y78% 38px
レイヤー: 背景 → 顔 → 白縁5px → #FF6D00本色2px
寝取り/巨乳/恍惚。汗・涎・紅潮フラッシュを顔に加算合成。
キャラ: x12% y18% 間隔8%/題字: y85% 36px
レイヤー: 背景 → 3キャラ → 帯#00000080 → 白縁4px → #FFEA00
ハーレム/乱交。顔サイズを揃え視線を散らさない。
背景: 全面/キャラ: x65% y25% w25%/題字: y12% 48px
レイヤー: 背景 → キャラ薄70% → 白縁7px → #E53935
ファンタジー/触手/異種。題字を上部に置くF型。
帯: y68% h32%/題字: 中央 52px
レイヤー: 背景 → キャラ → 帯#1A237E → 白縁8px → 白#FFFFFF
メイド/ナース/コスプレの王道。帯で可読性を担保。
シルエット: x30% y10% w40%/題字: y75% 32px
レイヤー: 背景光 → シルエット → 白縁3px → #7C4DFF
ダーク/陵辱。想像を喚起。R18でも審査に強い。
動き線: x20% y30%/題字: y80% 34px
レイヤー: 背景 → 飛沫 → キャラ → 白縁5px → #FF6D00
触手/機械姦。斜め構図で躍動感。
アイテム: x35% y22% w30%/題字: y82% 30px
レイヤー: 背景 → アイテム → 白縁4px → #EC407A
玩具/フェチ/衣装差分。中央寄せで一覧映え。
配色心理: ピンク/橙=快楽訴求、赤/黄=覚醒・購買色。女性向けの「かわいい」もピンク[15][16]。主役は1色+差し色1色に絞る(色数過多はNG)。
PALETTE = {
"pink": "#EC407A", # 快楽・かわいい(基調)
"pink_lt":"#FCE4EC", # リボン/帯の淡ピンク
"red": "#E53935", # 覚醒・購買色(差し色)
"red_hot":"#FF1744", # 題字本色(露出型)
"orange": "#FF6D00", # ピンク過多の中和に20%混ぜる
"navy": "#1A237E", # テキスト帯
"white": "#FFFFFF", # 外縁・帯内題字
}
| 指標 | 基準値(560幅) | 根拠 |
|---|---|---|
| 題字 最小フォント | 28px(推奨32〜36px) | 200px縮小で潰れない下限 |
| 題字 面積率 | 22〜45%(帯型は45%) | 上位作の最大公約数(第3章) |
| 縁取り | 白6px → 本色3px(二重) | 背景同化を防ぐ[13] |
| コントラスト | 背景とΔE≥65 または 明度差≥50 | 高コントラスト=クリック率向上[5] |
| 余白 | 左上に1文字ぶん(≒8%)空ける | 専売/R18バッジ回避[9] |
| キャッチコピー | 1行8〜16字・帯上 18〜22px | キャッチーな要素を前面に[7] |
題字の文字高 ≥ 14px かつ 縁取り後コントラスト比 ≥ 4.5:1。preview()で64/100/200/300pxを出力し、64pxで「ジャンルが伝わる色+顔」、200pxで「題字が読める」を満たせば合格。※すべて推定。CTR・CVRは作品/ジャンルで大きく変動するため幅で提示。
| シナリオ | 表示数/月 | CTR | クリック | CVR | 販売(770円) | 売上/月 |
|---|---|---|---|---|---|---|
| 改善前(小題字) | 20,000 | 1.5% | 300 | 4% | 12本 | ¥9,240 |
| 改善後(帯型E) | 20,000 | 2.4% | 480 | 5% | 24本 | ¥18,480 |
表紙改善で一覧CTR・詳細CVRの双方が底上げされ、同一表示数で売上が約2倍になりうる(あくまで上限寄りの試算)。コスト0なので費用対効果は極大。
img.convert("RGB")。quality=92, optimize=Trueで厳守。| 週 | やること | 成果物 |
|---|---|---|
| Day1-3 | draw_title()二重縁取り+pct()+preview()を実装。源ノ角ゴシックHeavy等の題字フォント確保 | 基盤3関数 |
| Day4-7 | 類型E(帯型)と類型A(フルボディ)をテンプレ化。桃花の既存CGで1枚試作 | 2テンプレ+試作表紙 |
| Day8-14 | 残り6類型をテンプレ化。PALETTE辞書・座標%をJSON化して切替可能に | 8類型ジェネレータ |
| Day15-21 | 64/100/200/300px縮小ゲートを量産パイプラインに組込み。3AIで表紙採点ループ | 品質ゲート統合 |
| Day22-30 | A/B用に2案(A型 vs E型)を自動生成→トフィー目視で勝ち型確定→既存全Volの表紙差替え | 勝ち型テンプレ確定 |
| # | NG(素人・AI自動の癖) | 数値的回避基準 |
|---|---|---|
| 1 | 題字が小さい(最大の負け要因[7]) | 面積率≥22%/最小32px(560基準) |
| 2 | フォントが弱い(細い明朝/デフォゴシック) | 太ゴシック/ロゴ系。線幅は文字高の8%以上 |
| 3 | 二重線がうるさい(多重縁取り乱用) | 縁取りは白6px→本色3pxの2段まで |
| 4 | 文字が顔に被る | 題字は y≥78% に固定。顔のbboxと重複0% |
| 5 | 色数過多 | 主役1色+差し色1色。計2色+白黒まで |
| 6 | 余白なし/詰め込み | 左上8%空け/題字周囲に文字高30%の余白 |
| 7 | 低コントラスト(背景同化) | 縁取り後コントラスト比≥4.5:1/ΔE≥65 |
| 8 | 1:1クロップ無視(左右に重要要素) | 顔・題字を中央60%に集約[6] |
| 9 | 透過PNGで申請 | convert("RGB")→JPEG/非透過PNG[1] |
| 10 | ピンク過多でのっぺり | 橙#FF6D00を20%混ぜ覚醒色で締める |
_remote_compose_v2(リモコン組版エンジン)に表紙モードを1関数追加するだけで本DRの8類型が出せる。momokalayer・色一貫)の全身CGをA型/E型テンプレに流すだけで表紙量産。本DRは一次情報(DLsite/FANZA/BOOTH仕様・視線誘導・色彩心理・PIL実装)15+ソースで裏取り。下書きはGrok-4.3(grok_router経由 dr_world_top)。PIL座標・色値は上位作の最大公約数に基づく実装パラメータ(実数値は作品で要A/B検証)。