waiIllustriousSDXL_v160 / waiANIPONYXL_v140 (Eps系・VPred禁止) |
連携 gen: gen_oudou_r18_master_2026-05-20.py + play_modules_2026_05_20.pygrok_router.py kind=dr_world_top) + Gemini 2.5 Flash (OpenRouter セカンドオピニオン・辛口監査)DR_R18モデル選定指針 (モデル) と DR_R18シチュ職業ロケーション200種 (シチュ/舞台) の欠落ピース=「画角と演出のタイムライン」を埋める。重複なし。
CAMERA_ANGLES / UNDRESS_STAGES / CUMSHOT_TYPES / POSITION_ANGLE / SCENARIOS の5 dict + 統合 CAMERA_ROTATION を即コピペできる形で用意。s5(絶頂)から逆算して着衣を「戻していく」ので時系列が破綻しない。1girl, 1boy, faceless male・複数男/増殖はNEG) ⑤ アヘ顔(ahegao) NG・恍惚(trembling / half-closed eyes / blush / tears of pleasure / parted lips)は OK ⑥ DLsite規約=写実NG → anime style, illustration 固定・photorealistic / realistic / 3d はNEG[7]。
現状の looking down / looking up 系 POV (自撮り視点) 偏重は、SDXL で安定して出やすい反面、600枚並べると「全部同じ目線」で飽きが出る。danbooru のカメラタグは「①垂直アングル / ②方向 / ③傾き・特殊 / ④距離・フレーミング」の4系統に整理でき[1]、Illustrious/NoobAI は danbooru 学習なのでこれらタグがそのまま効く。基本ルールは「距離タグ(full body/cowboy shot/close-up) × 方向タグ(from side/from above/from below/from behind) を直交で組む」[2][3]。
faceless male は男性の顔が映らない=実質POVに近い没入を生む。よって「POV(pov/looking at viewer)タグ」を25%まで許容しつつ、男性の背中越し構図(from behind (male back to viewer)系)を別枠で確保すると、規約内で没入感を落とさず画角も散る。POV =「カメラタグとしての pov」と「faceless由来の主観感」は別管理する。
| タグ | 日本語 | 得意シーン | 600枚配分 |
|---|---|---|---|
from side | 側面 | 挿入の結合部が最も映える主力。doggystyle/spooning/松葉崩し | 22% |
straight-on | 正面 | missionary挿入・正面の表情と結合の両立 | 16% |
from above / overhead | 俯瞰 | cowgirl/reverse cowgirl 俯瞰・寝姿・胸射の落下 | 13% |
pov + looking at viewer | 主観 | 顔アップ・口内・受け視点 (上限25%・後述で内訳) | 15% |
from behind | 後背 | doggystyle/standing back・尻と背中ライン | 11% |
full body | 全身 | standing/駅弁・s1脱衣・体位の全体把握 | 9% |
cowboy shot | 腰上 (股〜上)[2] | s2-s3 胸出し前戯・下着ずらし | 7% |
close-up (結合部) | 接写 | s4-s5 挿入詳細・中出し溢れ | 4% |
dutch angle | 傾き[5] | s4-s5 の緊張・激しさ演出 (使い過ぎ注意) | 3% |
※配分はGrok提案を Gemini監査で補正。straight-on + from side の正面寄りを40%→38%へ下げ、pov を独立15%枠に。profile(横顔)は from side の表情カットとして内包。
CAMERA_ANGLES = {
"from side": {"jp":"側面", "best_for":["doggystyle","spooning","matsuba kuzushi","insertion visible"], "share_pct":22},
"straight-on": {"jp":"正面", "best_for":["missionary","face+insertion"], "share_pct":16},
"pov": {"jp":"主観", "best_for":["face close","oral","viewer pov"], "share_pct":15, "always_with":["looking at viewer","faceless male"]},
"from above": {"jp":"俯瞰", "best_for":["cowgirl","reverse cowgirl","lying","cum on breasts drop"], "share_pct":13},
"from behind": {"jp":"後背", "best_for":["doggystyle","standing sex","ass focus"], "share_pct":11},
"full body": {"jp":"全身", "best_for":["standing sex","suspended congress","s1 undressing"], "share_pct":9},
"cowboy shot": {"jp":"腰上", "best_for":["s2-s3 breasts out","panties aside"], "share_pct":7},
"close-up": {"jp":"結合接写","best_for":["s4-s5 insertion detail","internal overflow"], "share_pct":4},
"dutch angle": {"jp":"傾き", "best_for":["s4-s5 intensity"], "share_pct":3},
}
# 直交ルール: 1枚 = 距離(full body/cowboy/close-up) × 方向(side/above/below/behind) を組む
# 例: "from side, cowboy shot" / "from above, full body"
masterpiece, best quality, very aesthetic, anime style)の後ろ・主題の前に置く[6]。② from below は煽り構図で股間/結合が映えるが顔が歪みやすい→s3-s4の煽りカットに限定。③ 増殖防止に 1girl, 1boy, faceless male を常に先頭付近、NEG に 2boys, multiple boys, multiple views, extra penis。s5(絶頂)から逆算し、着衣を「戻す=剥がし前の状態へ巻き戻す」方向で設計すると、時系列の連続性が破綻しにくい。danbooru の脱衣/露出タグは段階的に揃っている。Gemini監査の指摘(open clothesがs1/s4重複・bottomless≒no panties冗長・「半脱ぎ挿入」はAIが破綻しやすい)を反映し、各段階のタグ役割を排他化した。
| 段階 | 状態 | 主 danbooru タグ | 露出 | 結合 |
|---|---|---|---|---|
| s1 | 着衣→脱ぎ始め | undressing, clothes pull, unbuttoned, open shirt | 低 | なし(誘惑/前段) |
| s2 | 前戯・胸出し/下着ずらし | breasts out, bra lift, panties aside, clothing aside | 中 | なし〜挿入直前 |
| s3 | 挿入 (部分着衣のまま) | clothes lift, partially undressed, topless, sex | 高 | あり(部分着衣) |
| s4 | ほぼ裸・激化 | bottomless または completely nude (片方), nipples | 最高 | あり(激) |
| s5 | 全裸絶頂+大量発射 | completely nude, nipples, areolae + 発射タグ(論点3) | 全裸 | あり(フィニッシュ) |
open clothes はs1専用(脱ぎ始め)に限定し、s4は bottomless へ統一。② s3の「半脱ぎ挿入」は服が結合部に絡んでSDXLが破綻しやすい→clothes lift(スカート/服をめくり上げて挿入)に寄せると安定。③ bra lift/panties aside は意図通り出にくいので weight を (panties aside:1.2) で軽く強調。UNDRESS_STAGES = {
"s1": {"nudity_level":"light", "clothing_state":"着衣→脱ぎ始め",
"pos_tags":["undressing","clothes pull","open shirt","unbuttoned"]},
"s2": {"nudity_level":"medium", "clothing_state":"胸出し・下着ずらし",
"pos_tags":["breasts out","bra lift","(panties aside:1.2)","clothing aside"]},
"s3": {"nudity_level":"high", "clothing_state":"部分着衣のまま挿入",
"pos_tags":["clothes lift","partially undressed","topless","sex","vaginal"]},
"s4": {"nudity_level":"very_high", "clothing_state":"ほぼ裸・激化",
"pos_tags":["bottomless","nipples","sex","vaginal","(sweat:1.1)"]},
"s5": {"nudity_level":"full", "clothing_state":"全裸絶頂",
"pos_tags":["completely nude","nipples","areolae"]}, # 発射タグは CUMSHOT_TYPES から合成
}
# 逆算運用: まず s5 を確定 → s4,s3 と「服を戻す」→ s2,s1。キャラ髪色/体型/seed は固定。
フィニッシュは購買の決め手。中出し/顔射/ぶっかけ/胸射/ガン射を構図と必ずセットで定義する。発射の「直後(aftermath)」=余韻カットも1〜2枚挟むと満足度が上がる。Gemini指摘で overflow は曖昧なため、視覚明示の cum overflow / cum dripping from pussy を採用。ガン射(excessive cum)は s5 専用に制限。
| 種別 | 主タグ | 相性画角 | aftermath |
|---|---|---|---|
| 中出し | cum in pussy, internal cumshot, cum overflow | close-up / from side | cum dripping from pussy, after sex |
| 顔射 | facial, cum on face | pov / straight-on / from side | cum on face, afterglow |
| 胸射 | cum on breasts, cum on body | from above / straight-on | cum on breasts, after ejaculation |
| ぶっかけ | bukkake, cum on face, cum on body | full body / from behind | covered in cum, cum pool |
| ガン射(大量) | excessive cum (s5限定) | full body / from side | cum pool, cum everywhere |
CUMSHOT_TYPES = {
"internal": {"jp":"中出し", "pos_tags":["cum in pussy","internal cumshot","cum overflow"],
"best_angle":["close-up","from side"], "aftermath":["cum dripping from pussy","after sex"]},
"facial": {"jp":"顔射", "pos_tags":["facial","cum on face"],
"best_angle":["pov","straight-on","from side"], "aftermath":["cum on face","afterglow"]},
"on_breasts": {"jp":"胸射", "pos_tags":["cum on breasts","cum on body"],
"best_angle":["from above","straight-on"], "aftermath":["cum on breasts","after ejaculation"]},
"bukkake": {"jp":"ぶっかけ","pos_tags":["bukkake","cum on face","cum on body"],
"best_angle":["full body","from behind"], "aftermath":["covered in cum","cum pool"]},
"excessive": {"jp":"ガン射", "pos_tags":["excessive cum"], # s5限定
"best_angle":["full body","from side"], "aftermath":["cum pool","cum everywhere"]},
}
half-closed eyes, blush, parted lips, tears of pleasure, trembling, ahegao は使わない。SDXLは口開け+舌出しで意図せず ahegao 化しやすいので NEG に ahegao, tongue out, rolling eyes, cross-eyed を必ず入れる(論点7)。体位ごとに「結合部が映える角度」と「破綻しやすく避ける角度」が決まっている。Gemini監査で matsuba kuzushi(松葉崩し)と suspended congress(駅弁)はSDXLでの再現難度が高いと指摘→weight強調+seed厳選+生成後に30枚評価ループを前提に「枚数控えめ」運用を推奨。
| 体位 | danbooru tag | 最適画角 | 避ける | 結合が映える角度 |
|---|---|---|---|---|
| 正常位 | missionary | straight-on / close-up | from behind | straight-on |
| 騎乗位 | cowgirl position | from above / full body / pov | from behind | from above |
| バック | doggystyle | from side / from behind | from above | from side |
| 側位 | spooning | from side / close-up | from above | from side |
| 立位/駅弁 | standing sex / suspended congress | full body / from side | close-up (破綻) | from side |
| 背面騎乗 | reverse cowgirl | from behind / from above | straight-on | from behind |
| 松葉崩し | matsuba kuzushi (側位ねじり) | from side / straight-on | from above | from side |
| 抱きかかえ | upright straddle (対面座位) | from side / pov | from above | from side |
POSITION_ANGLE = {
"missionary": {"jp":"正常位", "tag":"missionary", "best_angles":["straight-on","close-up"], "avoid":["from behind"], "insertion_visible_angle":"straight-on"},
"cowgirl": {"jp":"騎乗位", "tag":"cowgirl position", "best_angles":["from above","full body","pov"], "avoid":["from behind"], "insertion_visible_angle":"from above"},
"doggystyle": {"jp":"バック", "tag":"doggystyle", "best_angles":["from side","from behind"], "avoid":["from above"], "insertion_visible_angle":"from side"},
"spooning": {"jp":"側位", "tag":"spooning", "best_angles":["from side","close-up"], "avoid":["from above"], "insertion_visible_angle":"from side"},
"standing": {"jp":"立位/駅弁","tag":"standing sex", "best_angles":["full body","from side"], "avoid":["close-up"], "insertion_visible_angle":"from side"},
"reverse_cowgirl": {"jp":"背面騎乗", "tag":"reverse cowgirl", "best_angles":["from behind","from above"], "avoid":["straight-on"], "insertion_visible_angle":"from behind"},
"matsuba_kuzushi": {"jp":"松葉崩し", "tag":"matsuba kuzushi", "best_angles":["from side","straight-on"], "avoid":["from above"], "insertion_visible_angle":"from side", "difficulty":"high"},
"upright_straddle":{"jp":"対面座位", "tag":"upright straddle", "best_angles":["from side","pov"], "avoid":["from above"], "insertion_visible_angle":"from side"},
}
# difficulty:"high" は seed厳選 + 枚数控えめ + 生成後 30枚評価ループ前提
Vol を物語的に s1→s5 でエスカレートさせる。各案で主体位・主発射・主画角を変えると、シリーズ全体で被らない。600枚は「s1=80 / s2=120 / s3=180 / s4=140 / s5=80」を基準配分(挿入のs3を厚く、フィニッシュのs5を濃く短く)。
| 台本案 | flow (s1→s5) | 主体位 | 主発射 |
|---|---|---|---|
| ① 王道誘惑 | 誘惑→前戯→挿入→激化→中出し | missionary中心 | internal |
| ② 着衣プレイ重視 | 軽脱ぎ→胸出し→服めくり挿入→bottomless→全裸射 | doggystyle | on_breasts |
| ③ 騎乗位主導 | 立ち焦らし→騎乗開始→深挿入→俯瞰激化→ガン射 | cowgirl/reverse | excessive |
| ④ バック主体 | 後背誘い→下着ずらし→バック→側位→中出し溢れ | doggystyle/spooning | internal+overflow |
| ⑤ 余韻・顔射型 | 着衣前戯→挿入→絶頂→顔射→事後afterglow | upright straddle | facial |
SCENARIOS = {
"01_oudou_seduction": {
"flow":["s1 undress","s2 foreplay","s3 missionary","s4 build","s5 internal"],
"main_position":"missionary", "main_cumshot":"internal",
"scene_map":{"s1":"full body, from side","s2":"cowboy shot, breasts out",
"s3":"straight-on, missionary","s4":"from side, sweat","s5":"close-up, cum in pussy, cum overflow"}},
"02_clothed_play": {
"flow":["s1 light undress","s2 bra lift","s3 clothes lift sex","s4 bottomless","s5 nude"],
"main_position":"doggystyle", "main_cumshot":"on_breasts",
"scene_map":{"s2":"cowboy shot, breasts out","s3":"from side, clothes lift",
"s4":"from behind, doggystyle","s5":"from above, cum on breasts"}},
"03_cowgirl_lead": {
"flow":["s1 standing tease","s2 cowgirl start","s3 deep","s4 from above","s5 excessive"],
"main_position":"cowgirl", "main_cumshot":"excessive",
"scene_map":{"s2":"full body, cowgirl position","s3":"from above, cowgirl position",
"s4":"pov, looking at viewer","s5":"full body, excessive cum, cum pool"}},
"04_back_centric": {
"flow":["s1 from behind","s2 panties aside","s3 doggystyle","s4 spooning","s5 internal overflow"],
"main_position":"doggystyle", "main_cumshot":"internal",
"scene_map":{"s1":"from behind, full body","s3":"from side, doggystyle",
"s4":"from side, spooning","s5":"close-up, cum dripping from pussy"}},
"05_facial_afterglow": {
"flow":["s1 clothed foreplay","s2 breasts out","s3 upright straddle","s4 climax","s5 facial -> afterglow"],
"main_position":"upright_straddle", "main_cumshot":"facial",
"scene_map":{"s3":"from side, upright straddle","s4":"pov, looking at viewer",
"s5":"straight-on, facial","aftermath":"pov, cum on face, afterglow"}},
}
SCENE_COUNT = {"s1":80,"s2":120,"s3":180,"s4":140,"s5":80} # 計600枚
play_modules_2026_05_20.py へ以下を追記すると、シナリオ選択→各シーンの「画角×着衣×体位×発射」が自動合成される。Gemini指摘(統合dictの用途を明確に)を受け、「シナリオ名と枚数を渡すとプロンプト断片を返す合成関数」まで含めた。
# === play_modules_2026_05_20.py へ追記 ===
CAMERA_ROTATION = {
"angles": CAMERA_ANGLES,
"undress": UNDRESS_STAGES,
"cumshot": CUMSHOT_TYPES,
"position": POSITION_ANGLE,
"scenarios": SCENARIOS,
"scene_count": SCENE_COUNT,
}
QUALITY_HEAD = "masterpiece, best quality, very aesthetic, absurdres, anime style"
BASE_CAST = "1girl, 1boy, faceless male, 18-20 years old, slim youthful body"
NEG = ("ahegao, tongue out, rolling eyes, cross-eyed, glasses, 2boys, multiple boys, "
"extra penis, multiple views, photorealistic, realistic, 3d, censored, mosaic, "
"bad anatomy, extra limbs, deformed, watermark, mature, old")
def build_scene_prompt(char_pos, scenario_key, stage):
sc = CAMERA_ROTATION["scenarios"][scenario_key]
cam = sc["scene_map"].get(stage, "from side") # 画角(+追加tag)
und = " ".join(CAMERA_ROTATION["undress"][stage]["pos_tags"])
parts = [QUALITY_HEAD, BASE_CAST, char_pos, cam, und]
if stage == "s5": # フィニッシュは発射合成
cs = CAMERA_ROTATION["cumshot"][sc["main_cumshot"]]
parts.append(", ".join(cs["pos_tags"]))
parts.append("half-closed eyes, blush, parted lips, tears of pleasure") # 恍惚(NG=ahegao)
return ", ".join(parts), NEG
# 使用例: build_scene_prompt("akari, black long hair, ponytail", "01_oudou_seduction", "s5")
gen_oudou_r18_master のキャラ定義(akari/misako/hinata/rena)を char_pos に渡す → ② シナリオ1案を選び s1〜s5 で SCENE_COUNT 枚ずつ build_scene_prompt → ③ seed をキャラ単位固定+角度ごとに微オフセット → ④ 生成後 DeepSeek/Grok で30枚サンプル評価ループ(増殖/老け/局部破綻チェック) → ⑤ NGが出たら difficulty:high体位(松葉崩し/駅弁)から枚数を削る。| 制約 | POS側 | NEG側 |
|---|---|---|
| 18-20歳 | 18-20 years old, slim youthful body | mature, milf, old, aged |
| 無修正 | (censored系を一切書かない) | censored, mosaic, bar censor |
| 眼鏡なし | (誘発タグ scholar/office worker 禁止) | glasses |
| 1女1男 faceless | 1girl, 1boy, faceless male | 2boys, multiple boys, extra penis, multiple views |
| アヘ顔NG/恍惚OK | half-closed eyes, blush, parted lips, tears of pleasure, trembling | ahegao, tongue out, rolling eyes, cross-eyed |
| 写実NG(DLsite)[7] | anime style, illustration | photorealistic, realistic, 3d, photo |
| 軸 | 点 | 根拠 |
|---|---|---|
| 技術 (実装可能性) | 24/25 | 5 dict + 統合 CAMERA_ROTATION + build_scene_prompt 関数まで即コピペ可。タグは実在danbooru。-1=松葉崩し/駅弁のSDXL再現は実機検証残。 |
| マーケ (売れ方) | 23/25 | 脱POVの画角配分%・5台本・600枚配分・フィニッシュ4+1種で飽き対策。-2=実売データ未反映(配分%は理論値)。 |
| 法務 (規約遵守) | 24/25 | 18-20/無修正/眼鏡なし/1女1男faceless/アヘ顔NG/写実NG を全dict+NEGに反映。DLsite月2本上限も明記。-1=FANZA側細則は別DR参照。 |
| 競合 (差別化) | 22/25 | 既存2本のR18 DRの欠落ピース(画角×演出タイムライン)を新規に埋めた。-3=競合CG集の実画角分布の定量調査は未実施。 |
| 合計 | 93/100 | 目標90点クリア。実機30枚評価ループ+競合画角の定量化で95点射程。 |