--- name: line-sticker-generate description: ユーザー提供写真から子ども・家族・ペットなどのLINEスタンプ用似顔絵画像を新規生成し、32個の透過PNG、main/tab、ZIP、プレビュー、メタデータを作成・検証する。画像生成、似せ具合の比較、スタンプ素材作成、分割、透過PNG、LINEスタンプZIP、プレビュー作成という依頼で使う。LINE Creators Marketへのアップロードや審査リクエストは行わない。 --- # LINE Sticker Generate ## 概要 ユーザー提供写真を参照して、子ども・家族・ペットなどの本人らしさや対象らしさを保った似顔絵風LINEスタンプ素材を作る。生成、分割、透過、LINE規格リサイズ、ZIP、プレビュー、検証まで担当する。申請作業は `line-sticker-submit` に任せる。 ## 進め方 1. 新規作成を前提にする - 既存のLINEスタンプ、過去の生成シート、既存パッケージ、過去の下書きは流用しない。 - 必ず今回の依頼用に `tmp/line-stickers/YYYY-MM-DD-/` を作る。匿名slugには本名、ニックネーム、ペット名など個人や対象を特定できる情報を入れない。迷う場合は `tmp/line-stickers/YYYY-MM-DD-line-sticker/` にする。 - スタンプ数は32個で進める。素材作成だけの依頼なら申請はしない。 - 写真は実写スタンプではなく、似顔絵生成の参照として扱う。ユーザーが明示した場合だけ写真スタンプにする。 2. 似顔絵品質の方針 - 各人物または各ペットにつき最も特徴が分かる代表写真1枚を主参照にする。その他の写真は補助参照として扱い、顔立ちや対象らしさがぶれないよう同等に混ぜない。 - 最優先は「かわいいイラスト」ではなく「本人らしさ」「対象らしさ」。 - 人物の場合は、顔立ち、目の形、まぶた、鼻、口元、笑い方、頬の丸み、髪型、前髪、髪の量、年齢感、体型、雰囲気をプロンプトで具体的に固定する。 - ペットの場合は、毛色、模様、耳、目、鼻先、口元、毛並み、しっぽ、体格、犬種・猫種らしさ、表情をプロンプトで具体的に固定する。 - 対象が人物の場合はペット向け特徴を混ぜず、対象がペットの場合は人物向け特徴を無理に混ぜない。 - 初期比較の画風は、淡い水彩+色鉛筆風、細めの線、やわらかい陰影、自然な頬の赤み、髪や毛並みの束感がある手書き似顔絵にする。 - 固定の参考画像は使わない。画風・似せ具合・装飾密度は、本番前に生成する1〜4の比較用画像を見てユーザーに選んでもらう。 - 過度なキャラクター化、顔や個体差の単純化、別人・別個体のような美化、一般的な子ども顔や一般的な動物キャラへの置き換えを禁止する。 - 人物の服装やポーズ、ペットのポーズや小物は変えてよいが、顔・髪型・表情・毛色・模様などの対象らしさは元写真から離さない。 3. 本番前に似せ具合を確認する - いきなり32個を生成しない。まず比較用画像を1枚生成し、似顔絵の寄せ方をユーザーに選んでもらう。 - 比較用画像は、1枚のキャンバス内に4つのバリエーションを横並びで入れる。5個以上に増やすと各見本が小さくなり、顔や表情の比較精度が落ちやすいので避ける。 - 各バリエーションには比較用として大きく `1`、`2`、`3`、`4` の番号を入れてよい。ただし、この番号は本番スタンプには絶対に入れない。 - 比較用画像は後で選ばれた番号の見本だけを切り出す前提にする。各バリエーションの間には広めの余白を空け、人物・ペット・番号・装飾が隣の見本領域に入らないようにする。 - 装飾は各見本の近くに小さく配置し、見本同士の中間には置かない。 - 4パターンは次の方向性にする。 - `1`: 実写にかなり近い似顔絵風。顔立ちや対象らしさを最も忠実に寄せる。 - `2`: 実写寄りのスタンプ風。本人らしさを強く残しつつ、LINEスタンプとして少し柔らかくする。 - `3`: バランス型。本人らしさ、かわいさ、使いやすさのバランスを取る。 - `4`: 抑えめの似顔絵風。雰囲気重視で、よりポップで親しみやすいスタンプ寄りにする。 - 比較用画像は本番素材として使わず、`style_comparison.png` などの確認用ファイルとして保存する。 - 選ばれた番号の部分だけを可能な限り切り出して `selected_style_reference.png` として保存し、本番生成時の画風参照に使う。ただし番号、比較用ラベル、不要な文字は本番に引き継がない。 - 比較用画像を見せたら、ユーザーに「1〜4のどれがよいですか?」と質問する。質問は一つだけにする。 - ユーザーが選んだ番号の似せ具合を、本番生成の画風・対象表現として固定する。 - ユーザーが迷った場合は、家族向け・日常使い向けなら `3` のバランス型を推奨する。 4. スタンプ案を作る - 生成前に32個のセリフとポーズ、日本語/英語のタイトルと説明文を作る。タイトルと説明文は各160文字未満にする。 - タイトルはLINE Creators Marketで重複しにくいよう、短い識別語、日付由来の数字、雰囲気を表す言葉などを自然に含める。汎用的すぎる `かわいいスタンプ`、`家族スタンプ`、`毎日使えるスタンプ` だけのタイトルにしない。 - 本名、フルネーム、住所、学校名、会社名、個人を特定できるニックネーム、ペット名など、個人情報や身元が分かる情報をタイトル・説明文・タグに入れない。 - 対象名が必要な場面では、`うちの子`、`わが家のペット`、`Family Buddy` など匿名性のある表現に置き換える。 - セリフとポーズ案はCodexが用途に合わせて決める。ユーザー確認は必須にせず、比較画像の番号選択が終わったら本番生成へ進める。 - 夫婦、親、祖父母にも送りやすい日常会話の日本語フレーズを入れる。 - 人物スタンプでは、32個の中で服装バリエーションを自然に増やす。例: 普段着、パジャマ、お出かけ着、季節感のある服、エプロン、部屋着、軽いフォーマル風、スポーティーな服など。 - 服装は毎回同じにせず、セリフやポーズに合う範囲で分散させる。ただし顔、髪型、年齢感、体型など本人らしさは変えない。 - スタンプ画像内に番号は入れない。 5. 画像シートを生成する - ラスター画像の新規生成・再生成・修正生成は、Codex内で使用できるGPT Image 2.0相当の画像生成を使う。 - ChatGPTブラウザ版の自動操作や外部画像生成サービスには広げない。 - ローカル画像編集、切り抜き、フィルター、合成、手描き風変換を画像生成の代替にしない。 - ローカル処理を使ってよいのは、GPT Image 2.0で生成した画像シートの分割、LINE規格リサイズ、透過確認、ファイル名整理、ZIP作成、検証だけ。 - 4x4シート、1シート16個、罫線なし、外側余白と行列間隔を均等にする。 - 各マスの外周15〜20%はセーフマージンとして空け、顔、文字、手足、装飾、効果線を置かない。 - 4x4シートを2枚だけ生成する。1枚に16個を超えて詰め込まない。 - 1枚目と2枚目は必ず別のセリフ・別のポーズ構成にする。同じまたはほぼ同じシートが重複した場合は採用せず再生成する。 - プロンプトには必ず「各スタンプを各マスの中央に収める」「文字・顔・頭・手足・装飾・効果線を隣のマスにはみ出さない」「行境界・列境界をまたぐ要素は禁止」「各マス外周に十分な余白を空ける」を入れる。 - 各マスの上端・下端・左右端に、隣のマス由来の文字、効果線、装飾、色の線、半透明の小片が少しでも残らないようにする。特に上端に薄い色線や文字片が出やすいので、生成後に必ず拡大確認する。 - 実在ブランド、チームロゴ、企業ロゴ、エンブレム、商標、読める英字ロゴ、スポンサーマークは禁止。服は無地、一般的な小柄、ドット、ボーダー、チェックなどにする。 - 日本語テキストが崩れた、文字が欠けた、番号が入った、顔が別人になった、レイアウトが窮屈な場合は再生成する。 6. 日本語文字の品質チェック - 日本語セリフは画像生成内で作る。ローカルで文字だけを合成しない。 - 各スタンプの文字を目視確認し、誤字、脱字、文字欠け、にじみ、判読不能、小さすぎる文字、セリフと違う文字、不要な数字、英字ロゴ化、顔や手足への重なりがないか確認する。 - セリフの意味が変わっている、読めない、申請時に不自然に見える場合は、ローカル修正せず元写真と選択済みスタイルを基準に再生成する。 - 文字の読みやすさを優先し、淡い画風でも文字色と白フチのコントラストを十分に確保する。 7. 再生成の基準 - 再生成が必要な場合は、失敗した生成画像を主参照にしない。元写真を本人らしさの主参照にし、選択済みの比較番号または `selected_style_reference.png` を画風参照にする。 - 失敗画像は「何を直すか」を伝えるための補助資料としてだけ使う。失敗画像の顔のズレ、文字崩れ、番号、不要な装飾、レイアウト崩れをコピーさせない。 - 顔が別人、文字が崩れた、番号が混入した、マスをまたいだ、全体が窮屈な場合は、元写真と選択済みスタイルを基準に画像シートを再生成する。 - 隣接マス由来の小さなゴミだけならローカル処理で除去してよい。例: 各スタンプ上端・下端に残った別マスの薄い文字片、色線、効果線、装飾の端。 - ただし、文字本体の欠け、人物やペットの切れ、大きな混入、境界をずらすと別スタンプが崩れる状態はローカル処理で救わず再生成する。 8. 申請へ進むか確認する - 生成、ZIP作成、検証が完了したら、このスキル内では申請しない。 - ユーザーが最初から申請まで希望している場合は、追加確認を挟まず `line-sticker-submit` の手順に切り替える。 - 素材作成だけの依頼だった場合は、最終報告後に「このままLINE Creators Marketへの申請まで進めますか?」と質問する。質問は一つだけにする。 - ユーザーが申請まで希望した場合は、`line-sticker-submit` の手順に切り替える。 ## 似せ具合比較プロンプト雛形 ```text この写真の人物またはペットをモデルに、LINEスタンプ用の似顔絵方向性を比較する画像を1枚作成してください。 必ずGPT Image 2.0を使ってください。ローカル画像加工で代替しないでください。 【目的】 本番の32個LINEスタンプを作る前に、似顔絵をどこまで実写に近づけるかを確認します。 この画像は比較用です。本番スタンプ素材としては使いません。 【レイアウト】 ・1枚の横長キャンバスに、4つのLINEスタンプ風バリエーションを横並びで配置 ・左から順に大きく 1、2、3、4 の番号を入れる ・比較画像には番号以外の文字やセリフを入れない ・各バリエーションは1つずつ独立したスタンプ見本として、顔、手足、装飾が隣に混ざらないようにする ・後で選んだ番号の見本だけを切り出して画風参照に使うため、各バリエーションの間には広めの余白を空ける ・人物またはペット、番号、装飾が隣の見本領域に入らないようにする ・装飾は各見本の近くに小さく配置し、見本同士の中間には置かない ・背景は白または薄い無地でよい 【4つの方向性】 1. 実写にかなり近い似顔絵風 人物の場合は、顔立ち、目の形、まぶた、鼻、口元、笑い方、頬の丸み、髪型、年齢感、体型、雰囲気を最も忠実に寄せる。 ペットの場合は、毛色、模様、耳、目、鼻先、口元、毛並み、しっぽ、体格、犬種・猫種らしさ、表情を最も忠実に寄せる。 2. 実写寄りのスタンプ風 本人らしさを強く残しつつ、LINEスタンプとして使いやすい柔らかさ、親しみやすさを加える。 3. バランス型 本人らしさ、かわいさ、日常での使いやすさのバランスを取る。 4. 抑えめの似顔絵風 写真の雰囲気や特徴を残しながら、よりポップで親しみやすいLINEスタンプ風にする。 【画風】 淡い水彩+色鉛筆風のあたたかい似顔絵。 細めの線、やわらかい陰影、自然な頬の赤み、髪や毛並みの束感を丁寧に描いてください。 白フチのある人物またはペット、少量のハート・星・汗・動き線などの装飾を使ってください。 【禁止】 ・実在ブランド、読める英字ロゴ、商標 ・番号以外の不要な文字 ・写真と別人または別個体に見える強い美化や単純化 ``` ## 画像生成プロンプト雛形 ```text この写真の人物またはペットをモデルに、LINEスタンプ用イラストを作成してください。 必ずGPT Image 2.0を使ってください。ローカル画像加工で代替しないでください。 本番前に選ばれた比較用画像、または `selected_style_reference.png` がある場合は、可能な限り画風参照として添付してください。 本人らしさや対象らしさは元写真を主参照にし、選択済みスタイル画像は画風・似せ具合・装飾密度の参照として使ってください。 ただし、比較用画像内の番号、比較用ラベル、不要な文字は本番スタンプに入れないでください。 【重要】 写真の人物またはペットにとてもよく似た似顔絵風で描いてください。 本番前の比較でユーザーが選んだ番号の似せ具合を維持してください。 最優先は「かわいいイラスト」ではなく「本人らしさ」です。 人物の場合は、顔立ち、目の形、まぶた、鼻、口元、笑い方、頬の丸み、髪型、前髪、髪の量、年齢感、体型、雰囲気をできる限り忠実に再現してください。 ペットの場合は、毛色、模様、耳、目、鼻先、口元、毛並み、しっぽ、体格、犬種・猫種らしさ、表情をできる限り忠実に再現してください。 過度なキャラクター化、顔や個体差の単純化、別人・別個体のような美化、一般的な子ども顔や一般的な動物キャラへの置き換えは禁止です。 人物の服装やポーズ、ペットのポーズや小物は変えてよいですが、顔、髪型、表情、毛色、模様などの対象らしさは元写真から離れないようにしてください。 人物の場合、32個の中で服装バリエーションを自然に増やしてください。普段着、パジャマ、お出かけ着、季節感のある服、エプロン、部屋着、軽いフォーマル風、スポーティーな服などを、セリフやポーズに合わせて分散させてください。 ただし、実在ブランド、読める英字ロゴ、チームロゴ、企業ロゴ、スポンサーマーク、学校名、会社名は入れないでください。 【画風】 淡い水彩+色鉛筆風のあたたかい似顔絵。 細めの線、やわらかい陰影、自然な頬の赤み、髪や毛並みの束感を丁寧に描いてください。 LINEスタンプらしいポップでかわいい仕上がり。 白フチのある人物またはペット、読みやすい太めの日本語文字、少量のハート・星・汗・動き線などの装飾を使ってください。 【スタンプ仕様】 ・4×4グリッド、1シート16個、グリッド線なし ・各スタンプを各マスの中央に小さめに収める ・各マス外周に十分な余白を空ける ・文字、顔、頭、手足、装飾、効果線は行境界・列境界・キャンバス端をまたがない ・各マスの上端・下端・左右端に、隣のマス由来の文字片、色線、装飾、効果線、半透明の小片を残さない ・日本語文字は大きく読みやすく、崩さず正確に書く ・服装は毎回同じにせず、セリフやポーズに合う自然なバリエーションを入れる ・実在ブランド、読める英字ロゴ、商標は禁止 ``` ## 分割とパッケージ化 - 4x4シートを分割するときは、まず縦4分割・横4分割の合計16分割で仮出力し、全件を個別表示またはコンタクトシートで確認する。 - 決まったグリッドで生成できている場合は、縦4分割・横4分割の固定16分割を基本にする。 - 分割前に、生成されたシートの実際の余白、中心位置、行列間隔を見て、16個が均等に配置されているか確認する。 - 軽微な中心ズレや余白の偏りだけなら、顔・文字・手足・装飾が切れない範囲で各スタンプのトリミング位置を微調整してよい。 - 文字や人物・ペットが名目境界をまたいだ、顔や文字が切れる、別マスの要素が大きく混入する場合は、小手先で救わずシートを再生成する。 - 分割後は `preview_contact_sheet.jpg` を必ず目視し、別マスの文字、顔、頭、手足、装飾、番号、小片が混入していないことを確認する。 - 特に各スタンプ枠の上端・下端を拡大して確認し、隣接マス由来の薄い線、文字の上端だけ、色付きの点、効果線の端、白背景では見落としやすい半透明片がないか見る。1px〜数px程度でも申請前に除去する。 - コンタクトシートだけで合格判断しない。`main.png`、`tab.png`、`01.png`〜`32.png` の実ファイルを、ファイル名付きで大きめに並べた確認画像も作る。 - 各PNGでは、文字、人物・ペットの頭、髪、耳、手足、装飾、白フチが画像端で切れていないことを確認する。主要要素が上下左右の端から18pxより大きく離れていない場合は不合格にする。`tab.png` は小さいため6pxより大きく離れていることを最低条件にする。 - `main.png` と `tab.png` は自動生成後に別枠で確認し、頭、顔、文字、白フチが切れていないことを確認する。小さいため、見た目に窮屈なら余白を増やして作り直す。 - 端切れや端寄りを見つけた場合、透明余白を後から足しただけで完成扱いにしない。すでに文字や人物本体が切れて見える場合は、分割位置を戻すか、元シートから広めに切り直す。それでも直らない場合は画像シートを再生成する。 - ZIP作成前に端余白チェックつきの検証スクリプトを実行し、警告またはFAILが1件でもあれば申請用ZIPを完成扱いにしない。 - 透過処理は背景だけを対象にする。白い部分を一括削除せず、外周からつながっている背景を優先して透過する。 - 白目、歯、白フチ、白文字、ハイライト、白い服、白い毛並みは残す。 - 透過背景は白背景だけで判断しない。黒、濃い緑、ピンク、チェック柄など複数の背景に合成した確認画像を作り、歯、白目、白い服、文字縁、ハイライト、毛先が透明化していないか確認する。あわせて、白背景では薄く見えるだけの隣接マス由来の色線や小片が濃色背景で浮かないか確認する。 - 半透明の縁が黒ずむ、白く濁る、ギザギザする場合は、透過しきい値やマスクを調整して確認画像を作り直す。 - 隣接マス由来の混入や切れがある場合、明らかな小片だけをローカル処理で除去してよい。文字本体が切れる、別マスの文字が大きく入る、境界調整で別のマスが崩れる場合は再生成する。 - `stamps/01.png` から `stamps/32.png` までを書き出し、`main.png` と `tab.png` を作る。 - ZIP直下に `main.png`、`tab.png`、各スタンプPNGを入れる。 - ZIPファイル名は `line-sticker-YYYY-MM-DD-.zip` にする。匿名slugには本名、ニックネーム、ペット名など個人や対象を特定できる情報を入れない。迷う場合は `line-sticker-YYYY-MM-DD.zip` にする。 - `preview_contact_sheet.jpg`、濃色背景確認画像、`metadata.txt` をZIPの横に保存する。 - `metadata.txt` には、日本語タイトル、日本語説明文、英語タイトル、英語説明文、選んだ比較番号、匿名化した対象の概要、セリフ32個、生成日、ZIPファイル名、検証結果、申請未実施であることを残す。 - `metadata.txt` にも本名、フルネーム、住所、学校名、会社名、個人を特定できるニックネーム、ペット名などを残さない。 ## LINEサイズ目安 - `main.png`: `240x240` - `tab.png`: `96x74` - スタンプPNG: 幅 `<= 370`、高さ `<= 320` - 各PNG: `<= 1 MB` - ZIP: `20 MB` 未満 - モード: 透過背景つきRGBA PNG ## 検証 - `scripts/validate_line_sticker_package.py ` を実行する。スクリプトが手元にない場合は、現在のリポジトリの `scripts/validate_line_sticker_package.py` を使う。 - ファイル検証だけで済ませず、コンタクトシートと濃色背景確認画像を目視確認する。 - 目視確認では、全32個の上端・下端に隣接セルの断片がないこと、文字や人物の頭・髪・手足・装飾・白フチが端で切れていないことをチェック項目に含める。薄い線、小片、端切れ、端寄りを見つけた場合は、ZIP作成済みでも必ずPNGを修正してZIPを作り直す。 - 検証スクリプトの端余白チェックでFAILした場合は、見た目に問題がなさそうでも完成扱いにしない。原因を確認し、分割位置、余白、再生成のいずれかで解消する。 - 問題があればZIP作成前に修正し、必要なら画像シートを再生成する。 ## 最終報告 日本語で簡潔に報告する。 - ZIPのパス - プレビューのパス - 検証結果 - 申請はまだしていないこと - 素材作成だけの依頼だった場合は「このままLINE Creators Marketへの申請まで進めますか?」と確認すること - ユーザーが最初から申請まで希望している場合は、`line-sticker-submit` に切り替えること