2026.01.30
AIで広がる編み物の楽しみ
AaaS Tech Labの柏木です。

趣味の「編み物」と業務で使用している「AI技術」を掛け合わせ、日常に存在するあらゆるものが編めるようになるアプリケーションを開発しました。

このアプリケーションでは、ユーザーがカメラロールの写真をアップロードすると、AIが写真に写る物体を解析し、それを編むための設計図や手順書を自動で生成します。

本コラムでは、開発に至った背景や、その技術的な仕組みについてご紹介します。
背景
編み物を始めて2年。定番の作品を一通り編み終えた私は、最近「次に編みたいものが思いつかない」という悩みに直面していました。そこで、文章作成やコーディングといった日々の業務でAIを活用しているように、編み物でもAIにアイデア出しを手伝ってもらうことにしました。

しかし、趣味の編み物で、機械的に提案されたアイデアに従うのはどこか味気ない!創作意欲が掻き立てられるような方法でAIを活用し、編み物愛好家がときめいてくれるような体験を提供するアプリケーションの開発を目指しました。
概要
ユーザーの体験フローは、下図の通りです。カメラロールの写真をアップロードするだけで、それを編むための編み図や編み方の説明が出力として得られます。その出力に沿って編み進めることで、カメラに収めた物体を、可愛らしい「あみぐるみ」として再現することができます。
記事画像
ところで、編み図って何?

と思った方も多いのではないでしょうか。編み図とは、編み物の手順や模様を、編み目記号を用いて視覚的に表した設計図です。一つひとつの記号が、それぞれ一つの編み目に対応しています。

編み図の役割は、作品の作り方を正確に伝え、その再現性を担保することです。編み物作家と呼ばれる方々は、自身の作品を本として出版したり、SNSに投稿したりする際、完成品と合わせて編み図を公開します。その編み図があれば、編み目記号の読み方を知っている人なら誰でも、同じ作品を編むことができます。
仕組み
今回使用した技術構成は、下図の通りです。Frontend/BackendはNext.jsで構築しました。

一般的に、あみぐるみなどの立体物を編む際は、いくつかのパーツに分けて編み、それらを糸でつなぎ合わせて一つの作品を完成させます。このアプリケーションでは、こうした編み手の思考プロセスをAIで再現するため、TypeScriptのエージェントフレームワークであるMastraのワークフロー機能を使用しました。
記事画像
このアプリケーションのメインとなるワークフローの詳細についてご説明します。

はじめに、ワークフローへの入力のための画像を生成します。ユーザーが入力した「画像」と「物体名」に基づき、Nano Bananaを用いて、あみぐるみの仕上がりをシミュレーションした「毛糸風の完成イメージ画像」を生成します。

ワークフローは、次の3つのエージェントで構成されています。
記事画像
Step1:形状分析Agent
形状分析Agentは、完成イメージ画像を入力として、物体をパーツ単位に分解します。各パーツについて、パーツ名、編む順番、個数、形状タイプ(円形・長方形などの平面形状や円筒状・球状などの立体形状)、接続情報を生成し、これらをJSON形式で出力します。
Step2:編みパターン生成Agent
Step1で生成されたJSONを入力として、各パーツのパーツ名・形状タイプをもとに段数・列数を決定し、編み目の配列を生成します。配列には、各段の編み目の種類や個数などの情報を含め、こちらもJSON形式で出力します。なお、編み目に関する基本的なルールは、Agentに対してプロンプトとして与えています。
Step3:編み図生成Agent
Step2で生成されたJSONを入力として、テキスト形式で編み方の説明を生成します。一方で編み図に関しては、編み目配列をもとにルールベースで編み目記号を配置し、SVG形式で出力します。

具体的には、形状タイプごとに、編み図の表示面積と全体の段数・列数を基準として、編み目を均等に配置する計算ロジックを実装しました。また、円筒状や球状などの立体形状のパーツについては、立体構造を分かりやすく示すため、底面と側面に分けて編み図を生成する設計としました。

以上のワークフローによって生成されたアウトプットがこちらです。
記事画像
例えばこの画面は、チワワの写真を入力した際に生成された編み図のうち、足に該当する部分を示しています。この編み図から、円筒状になっているチワワの足の底面(足の裏に当たる部分)を、三段の円として編むことができることが分かります。

また、画面左上には該当パーツを色付けして表示し、「各パーツがどの部分を指し、どこに接続されるか」を視覚的に理解できるようにしました。この可視化を実現するため、自然言語で物体検出が可能なモデルであるSAM3を使用しました。

下図に示す検出結果の通り、「Ears」「Eyes」などの具体的な名称を指定した場合は正しく検出できる一方で、「Head」「Body」などの境界が曖昧な単語では、意図しない領域まで検出されてしまうケースが見られました。パーツの構造をより正確に伝えるUIをどのように設計するかについては、今後も検討していきたいです。
記事画像
デモンストレーションと完成品
このようにして実装したアプリケーションがこちらです。なお、AIの生成結果により第三者に対して失礼が生じないようにするため、デモンストレーションでは自分のプロフィール画像を入力として使用しました。
ここまで読んで、「アウトプット通りに編めば、本当に作品が完成するのか」「入力画像の物体をきちんと再現できているのか」と疑問を抱いた方もいるかもしれません。そこで、実際に編んでみた完成品がこちらです。
記事画像
ご覧の通り、完成イメージを忠実に再現するのは難しく、全体として抽象化されてしまう傾向があります。これは、実装上の制約やAIの性能を踏まえ、物体の各パーツを比較的単純な図形の組み合わせとして表現しているためです。その結果、人間の鼻や髪型は、形状分析Agentによって形状タイプが「円形」と判定され、このような不自然な見た目になってしまいました。
さいごに
生成クオリティにはまだまだ課題が残るものの、このアプリケーションがあることで、「これも作ってみようかな?」といった発想が生まれ、先述したアイデア枯渇の問題からは抜け出すことができました。

編み物をはじめ、ハンドメイド領域におけるAI活用は、まだ開拓されていない分野だと感じています。今回は実験的な取り組みでしたが、この領域に対する挑戦は今後も続けていく予定です。

私たちAaaS Tech Labは、ビジネス領域でのデータサイエンス活用にとどまらず、メディアやコンテンツ開発へのAI技術応用にも取り組んでいます。少しでも興味を持ってくださった方は、ぜひお気軽にcontactからご連絡ください。