Community画像github.com

AshfanAnsari/手書きページ変換

撮影された手書き文書(課題、ノートのページなど)を、1つの選択した参照手書きに合わせて、きれいで完全な文書に変換します。手書きのスタイル、線の太さ、インクの色、用紙の色合いを、承認済みの1枚の参照ページにページごとに合わせ、テキストの正確性も検証します。

手書きページ変換 とは?

このスキルは、写真に撮られた手書き文書の各ページを、1枚の「標準ページ」で定義された単一の手書きスタイルに完全に書き換えるための高度なワークフローを提供します。テキスト、手書きの同一性、線の太さ/サイズ、色(インク+用紙)という4つの独立した軸で各ページを検証し、すべての軸が合格するまで変換を完了しません。 主な特徴として、画像生成時に元のソース写真をスタイル参照として渡すことを禁止し(コピーを防ぐ)、代わりに標準ページ画像と正確な書き起こしテキストのみを使用して新規生成します。また、生成後のピクセル単位の補正(インクのみの移動、サイズ調整、色調整)により、一貫性を実現します。 このスキルは、Claude Code、Cursor、CodexなどのAIエージェントや、Python + PIL/numpyなどの画像処理ライブラリを利用する開発環境で動作します。特に、複数ページにわたる手書き文書を一貫したスタイルで統一したい場合や、「この手書きで書き直して」という要求に応える場合に有効です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AshfanAnsari/handwriting-page-conversion-skill/tree/HEAD

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

手書きページ変換 は何をしますか?

手書き文書のすべてのページを1つのターゲット手書きで書き換えます。ターゲット手書きは、承認済みの1枚の参照ページ(「標準ページ」)によって定義されます。他のすべてのページは、**テキスト、手書きの同一性、線の太さ/サイズ、色(インク+用紙)**という4つの独立した軸で標準ページに一致する必要があります。4つの軸すべてが合格するまで、ページは完了したと見なされません。

必要なもの:参照画像を受け入れられる画像生成器、ズーム可能な画像ビューア、および画像ライブラリ(例:Python + PIL/numpy)を持つスクリプト実行環境(測定、合成、評価用)。

基本ルール(苦労して学んだ教訓 — 飛ばさないこと)

  1. 生成器にスタイル/レイアウト参照としてソースページの写真を絶対に渡さないこと。 生成器がソースをコピーしてしまい、元の手書きがそのまま返ってきて、変換されたように見えるだけになります。各ページは以下からのみ新規生成してください:標準ページ画像 + ソースページのテキストの正確な書き起こし。それ以外は何も渡さないでください。
  2. 書き手自身のスペルと誤りをそのまま保持すること。 ソースが言っていることを正確に書き起こし、スペルミス(「equillibrium」、「singal」、「coesist」など)も含めます。ソースページは内容に関して、参考書やあなた自身の知識よりも優先されます。数字、表の値、数式は、ソースに対してズームして1桁ずつ検証してください。
  3. 4つの軸を個別に検証すること。 ページがテキストに合格しても、手書きに不合格になることがあります(きれいすぎる、丸すぎる、太字すぎる、フォントのよう — 生成器のデフォルト)。テキストのみの検証は、コピーされたページでは簡単に「合格」してしまい、それが不良バージョンが出荷される原因です。
  4. ページごとに作業すること。 1ページを構築し、それを提示し、ユーザーの判定(または「全部作って、後で判断する」という指示)を得てから、何かを組み立ててください。ユーザーが指摘したページだけを修正し、黙って追加のページをすり替えないでください。
  5. グラフ、図、表は可能な限り再描画しないこと。 再描画はジオメトリを壊します(つながらない曲線、重複した軸目盛り、誤った端点)。印刷物や図のページはそのまま引き継いでください。小さなラベルの欠陥がある正しい図の場合は、ピクセルを修正してください。同じページから検証済みの白紙領域を使って消去し、サンプリングしたインク色で欠けた部分を再描画します。インクは暗いピクセルの行/列プロファイルで特定すること — 縮小されたプレビュー上で座標を目視で判断しないでください。

ワークフロー

1. 標準を固定する

  • 最良のページを選ぶ(または1つのデモページを生成して承認を得る)。このページで以下が固定されます:文字の形、中央値の行の高さ(測定すること、例:作業解像度で約40 px)、線の太さ、インクの色(サンプリングすること、例:濃い青黒RGB ≈ [58,58,65])、用紙の色合い(例:RGB ≈ [208,206,209])。
  • 以降のすべてのページは、このページに対して同じスケールで評価されます — 異なるズームレベルでの太さ比較は誤解を招きます。

2. 書き起こし

  • 各ソースページをフルサイズで読み、次に疑わしい単語をズームして読みます。正確な書き起こしを作成し、スペル、句読点、下線、囲み、見出し、空白領域(元のページが半分空白なら、書き換えも同様に空白)を保持します。
  • ページの「トラップワード」(長い/珍しい単語、値、数式)を明示的にリストアップします — これらは生成プロンプトに文字単位のガードレールとして含め、後で個別にズームチェックします。

3. 新規生成

  • プロンプト:標準ページ画像を唯一の画像参照 + 正確な書き起こし + 細め優先のスタイル指定:「細いボールペン、軽い筆圧、細い不規則なストローク、濃い青黒インク、決して太字/太い/重い/きれいにしない」。テキストのみのプロンプトはモデルのきれいなデフォルト手書きに流れてしまいます — 参照画像を呼び出しに含める必要があります。
  • 生成器が以前の生成状態からの再開/継続をサポートしている場合、標準ページ自身の生成から再開し、テキストのみを置き換えると、最も近い手書きの一致が得られます。注意:このような再開ハンドルは期限切れになることがあります(約1時間) — その場合は参照画像からの新規生成にフォールバックします。決して再開から再開を連鎖させないでください。
  • 最初の試行では、しばしば単語がすり替わります。拒否して、単語をプロンプトに1文字ずつ綴って再試行してください。

4. サイズと太さの測定と修正(合成パス)

通常、生成は大きすぎて線が太すぎます。ピクセルとして修正し、むやみに再生成しないでください:

  • ページの境界線を検出する(例:色付きのマージンフレーム:緑 = Gがmax(R,B)より20以上大きい場合;投影プロファイルから境界線を見つけ、辺ごとに最も外側の強い線;かすかな境界線の場合は手動上書きを許可)。
  • 内部をページ自体からサンプリングした1行ごとの用紙で塗りつぶす(1行ごとの中央値の用紙色)。
  • インクのみを転送する:暗さからアルファマスクを構築し、暗さ^1.35の曲線でストロークを細くします。用紙+インクの長方形を決して貼り付けないでください — 貼り付けられた用紙ブロックは、古い文字のゴーストアウトラインと、印刷ではインクとして現れる目に見える用紙の継ぎ目を残します。
  • インクブロックの中央値の行の高さが標準よりわずかに下になるようにスケーリングします(標準40 pxに対して目標約35 px — 同じスケールのページは目には大きく見えます)。
  • 元の境界フレームを復元し、境界の整合性を再確認し、最終的な中央値の行の高さを証拠として出力します。
  • 表ページや罫線構造は合成しないでください — 長い罫線が境界検出を壊し、転送で線が引きずられます。表のきれいな生成はそのまま出荷します。

5. 色を評価する

完成したページで用紙とインクを測定し(インクサンプルから境界ピクセルを除外)、標準ページを基準にしたアフィン変換でチャンネルごとに再マッピングします:このページの用紙 → 標準の用紙、このページのインク → 標準のインク。(符号に注意:インクは用紙より暗いので、分母は負になります — それをクリッピングすると評価が反転します。)再測定して確認します:用紙とインクは標準から数RGBポイント以内に収まるはずです。生成されたすべてのページを評価します;引き継いだ印刷物と標準ページ自体はそのままにします。

6. 組み立てと開示

  • 承認されたページのみから、順序通りに、ページ数を確認してPDFを組み立てます。
  • すべてのページのコンタクトシートを出荷し、一貫性を一目で判断できるようにします。
  • 既知の欠陥を率直に開示します(省略されたフレーズ、近似曲線など)。修正が完了したと提示する前に、必ず視覚的なトリミングチェックを通過させてください — 数値による調査は目視に代わりません。

このスキルが防止するために存在する失敗モード

  • 「変換済み」として出荷されたコピーページ(ソースを生成器に渡し、テキストのみのQA)
  • 一部のページはきれいなフォントのような手書き、他のページはターゲット手書き(単一の標準なし、テキストのみのプロンプト)
  • スタイルは一致しているが、参照より20~30%大きく/太いページ(スケール一致の測定なし)
  • 参照写真の柔らかい色合いから外れた明るい白の用紙と硬い黒のインク(色評価ステップなし)
  • 背景のゴースト文字がインクとして印刷される(用紙ブロック合成の代わりにインクのみの転送)
  • 壊れたジオメトリで再描画されたグラフ(本来引き継ぐかピクセル修正すべきものを再生成)
  • スコープクリープ:ユーザーが指摘していないページを再構築する

関連スキル