はじめに
不動産写真にAI変換を適用するとき、単に「見栄えの良い画像」を生成できれば十分、というわけではありません。物件写真は商品のイメージ画像であると同時に、部屋の形状や設備を伝える資料でもあります。そのため、生成品質より先に「何を変えてよいか」「何を絶対に変えてはいけないか」を定義する必要があります。
この記事では、空室写真に家具を配置するバーチャルステージングを例に、アップロードから書き出しまでの実装で注意したいポイントを整理します。
1. 入力画像をそのまま信用しない
スマートフォンやカメラから渡される画像には、表示方向を示すEXIF情報が含まれることがあります。ブラウザでは正しく見えていても、画像処理ライブラリがピクセル配列だけを読むと90度回転した状態になることがあります。
アップロード直後に次の処理を行うと、後工程が安定します。
- EXIF Orientationを反映してピクセルを正規化する
- HEICなど非対応形式をJPEGまたはPNGへ変換する
- 長辺と短辺、総画素数を検査する
- ICCプロファイルを考慮してsRGBへ統一する
- 元画像のハッシュ値と寸法を記録する
画像の正規化は「見た目を加工する処理」ではなく、すべての処理系で同じ入力を参照するための準備です。
type NormalizedImage = {
width: number;
height: number;
mimeType: "image/jpeg" | "image/png";
sha256: string;
storageKey: string;
};
async function normalizePropertyPhoto(file: File): Promise<NormalizedImage> {
validateFileSize(file);
const decoded = await decodeWithOrientation(file);
const converted = await convertToSrgb(decoded);
validateDimensions(converted.width, converted.height);
return persistNormalizedImage(converted);
}
2. 生成前に「固定領域」を決める
一般的な画像生成では、画面全体の自然さが評価されます。しかし不動産写真では、窓、ドア、壁、床、天井、造り付け収納、暖炉、照明器具などが変わると問題になります。
そこで、生成指示を文章だけに任せず、変更可能領域と固定領域を分けて扱います。
- 変更可能:移動できる家具、ラグ、観葉植物、小物
- 原則固定:建築構造、開口部、床材、壁面、設備
- 条件付き:既存家具の撤去、カーテン、可動照明
実装上は、セグメンテーションマスク、エッジマップ、深度推定、元画像との特徴量比較を組み合わせます。完全な保証は難しくても、生成後に「窓の数が変わっていないか」「直線が歪んでいないか」を自動検査できます。
3. 解像度を早い段階で落としすぎない
生成コストを抑えるために入力画像を小さくする設計は一般的ですが、物件写真では細い窓枠、コンセント、巾木、床の境界が重要です。最初から低解像度にすると、アップスケールしても構造情報は戻りません。
実務では次のような二段構成が扱いやすいです。
- 中解像度でレイアウト候補を生成する
- 採用候補だけを高解像度で再生成または補正する
- 元画像のエッジを参照して構造部分を復元する
- 最終サイズで破綻を検査する
サムネイルで自然に見える画像でも、4K表示では椅子の脚や壁との接点が崩れていることがあります。検査は必ず配信時の解像度で行います。
4. 同じ物件内の一貫性を管理する
1枚ずつ独立して生成すると、リビングは北欧風、寝室はクラシック、書斎はインダストリアルという状態になりがちです。個々の画像が良くても、一覧で見ると別の家のように感じられます。
物件単位でスタイル設定を保持し、次の属性を共有すると一貫性が出ます。
- 基本スタイル
- 木材の色温度
- ファブリックの主要色
- 家具密度
- 照明の色温度
- 装飾の強さ
プロンプト文字列を保存するだけではなく、構造化された設定として管理するのがポイントです。後から一部の部屋だけ再生成しても、同じルールを再利用できます。
5. 成功判定を「生成完了」にしない
APIが画像を返した時点では、処理が終わっただけで品質が確定したわけではありません。少なくとも以下を確認します。
- 出力画像がデコード可能か
- 寸法とアスペクト比が期待値どおりか
- 固定領域の差分が閾値を超えていないか
- 不自然な重複物や欠損がないか
- 元画像と出力画像の対応が追跡できるか
- バーチャルステージングの表示ラベルを付けられるか
ジョブ状態も generated と approved を分けると運用しやすくなります。前者は機械処理の完了、後者は人間または品質ゲートを通過した状態です。
6. 参考になる実際のワークフロー
制約を重視したUIを確認するには、Roomood のような不動産向けバーチャルステージングサービスが参考になります。空室または家具付きの写真を入力し、移動可能な家具を置き換えながら、建築構造とカメラアングルを維持する前提で設計されています。
重要なのは、生成モデルを目立たせることではなく、不動産業務の流れに品質確認、開示、複数画像の管理を組み込むことです。
まとめ
不動産写真のAI変換では、創造性より制約の方が重要になる場面があります。入力方向の正規化、色空間、解像度、固定領域、物件内の一貫性、最終承認を一つのパイプラインとして設計すると、見た目だけでなく業務で使える出力に近づきます。
「生成できたか」ではなく、「元の物件情報を壊さずに、利用目的を満たしたか」を成功条件にすることが、信頼できるサービスの土台になります。