👔

OpenAI gpt-image-1 で写真から衣服を抽出する

に公開

はじめに

前回の検証記事で衣服の着せかえが面白い結果だったので、これ応用して着せかえカメラのようなアプリを作ってみようと思います。
今回はOpenAI gpt-image-1 を使って写真から衣服だけを切り出せるかを検証します。

📘 前回の記事: OpenAI gpt-image-1 で複数画像を合成


実験準備

前回作成したアプリを再利用して、衣服画像とプロンプトを渡していろいろ試してみます。

今回もUnsplash 画像をお借りしました。

レースのトリムが付いた青緑色のドレスを着たマネキン
Reference 1

いくつかプロンプトのパターンを用意して試してみます。

パターン1: シンプル指示

写真から衣服だけを取り出して、白い背景に配置してください。
抽出結果
抽出結果

簡単な指示でもかなり良い結果が出ました。

パターン2: 詳細指示

写真から衣服のみを抽出し、以下の条件で表示してください:
- 衣服の形状とシワを保持
- 影を軽く付けて立体感を出す
- 商品撮影のようなクオリティ
- 背景は純白
抽出結果
抽出結果

かなり質感が上がった感じがします。
裾のレースがキレイに出てますね。

パターン3: 背景を透過

写真から衣服のみを抽出し、以下の条件で表示してください:
- 衣服の形状とシワを保持
- 影を軽く付けて立体感を出す
- 商品撮影のようなクオリティ
- 背景は透明
抽出結果
抽出結果

着せかえカメラに使いたいので、背景透過を指示に追加しました。
見事に反映されてますね!
立体感があって良いけどポーズが斜めだと使いにくそう。input_fidelityが効いているのかも。
あれれ、手が残ってるな…

パターン4: 背景を透過(修正版)

写真から衣服のみを抽出し、以下の条件で表示してください:
- 衣服を正面から見た状態で表示
- 衣服の形状とシワを保持
- 影を軽く付けて立体感を出す
- 商品撮影のようなクオリティ
- 人体、肌、髪の毛、背景要素をすべて除去
- 背景は透明
抽出結果
抽出結果

かなり良い感じですね。
何度か試して背景が透過しないことがあったので調べてみたところ、
background="transparent" を追加することで背景透過を強制できるようです。

result = client.images.edit(
    model="gpt-image-1",
    image=image_files,
    prompt=prompt,
    background="transparent",
    input_fidelity="high",
)

別の画像でも試してみましょう。

スーツを着て傘をさしている男性
Reference 2
抽出結果
抽出結果

イラストからでも衣服だけを抜き出してくれました。


所感

今回も簡単な指示でもなかなかのクオリティでした。
少し工夫するだけで結果が変わるのは面白いですね。
次回は衣服画像をカメラにオーバーレイさせて、被写体との合成にチャレンジします。

Discussion