OpenAI input_fidelity="high" 機能

先日、OpenAIの画像生成機能がアップグレードされ、特に既存の画像を編集する際の精度が大きく向上しました!

このアップデートの核となるのが、強化された `input_fidelity="high"` パラメータです。

OpenAI公式Cookbookより

従来の画像編集では、人物の顔を編集すると「似ているけれど別人」になったり、ロゴのデザインが微妙に変わってしまう課題がありました。また、編集後の画像は全体的に「のっぺり」とした人工的な仕上がりになりがちでした。

今回解説する`input_fidelity="high"`は、こうした問題を解決し、顔の特徴や被写体の質感を忠実に保持したまま、背景や服装などを自由に変更することを可能にします。

ちなみに、この機能は2025年4月に登場した`gpt-image-1`モデルで利用できます。

高忠実度機能の具体的な威力

この技術の最も印象的な能力は 顔保持の精密性 です。目の形や眉毛の形、鼻の高さ・幅・角度、唇の厚さや口角の位置、頬骨・あごのライン・額の形など、その人固有の細かな特徴がすべて保持されます。

これらの特徴が損なわれることなく、まったく異なる時代の衣装や背景に溶け込むように変換されるのです。

さらに驚くべきは テクスチャ保持 の能力です。従来の画像生成では編集後に「のっぺり」とした質感になってしまうことがありましたが、高忠実度機能では肌の毛穴や透明感、髪の毛一本一本の流れ、目の輝きやまつ毛の細かさ、さらには服の生地感まで忠実に再現されます。

これらの微細な要素まで保持されるため、生成される画像は驚くほど自然でリアルに仕上がります。


基本的な使い方

この機能をPythonで利用する場合、client.images.editメソッドの引数にinput_fidelity="high"を追加するだけで利用できます。

以下は、入力画像(input.png)を「A strange character on a colorful galaxy background, with lots of stars and planets.」というプロンプトで編集する簡単なサンプルコードです。

from openai import OpenAI

client = OpenAI()

# 画像ファイルをバイナリモードで開く
with open("input.png", "rb") as image_file:
    response = client.images.edit(
        model="gpt-image-1",
        image=image_file,
        prompt="A strange character on a colorful galaxy background, with lots of stars and planets.",
        input_fidelity="high", # 高忠実度モードを有効化
        n=1,
        size="1024x1024"
    )

# 結果の画像URLを取得
image_url = response.data[0].url
print(image_url)

このように、既存の画像編集コードに一行追加するだけで、顔や被写体のディテールを保持した高精細な編集が可能になります。

例①:エイリアンを銀河背景に配置する

たくさんの星と惑星があるカラフルな銀河の背景に、不思議なキャラクターを配置してください。


例②:猫と帽子の 2 枚を合成して「木の上で帽子をかぶった猫」

画像の背景を変えるだけでなく、以下のように複数の画像を組み合わせることも可能です。

ピクセルアートスタイルで、帽子をかぶった猫が木の上に載っているように、猫と帽子の画像を合成してください。


コストに関する注意点

input_fidelity="high" 機能を利用する上で、コストは「トークン」の量に基づいて計算されます。

簡単に言うと、画像サイズが大きく、品質設定が高いほど、より多くのトークンを消費し、コストが上がります。

料金の目安

最終的なコストは、「入力テキストのトークン料金」「入力画像のトークン料金」「出力画像の生成料金」の3つの合計で決まります。

`input_fidelity="high"` を使用すると、入力画像のトークン数が通常より多くなるため、その分コストが上がります。

以下は、出力される画像1枚あたりの生成料金の目安です。

(https://platform.openai.com/docs/pricing#image-generation)


【実践】この技術を活用した画像編集アプリを開発!

今回、このinput_fidelity="high"技術を使って、時代旅行アプリを作ってみたいと思います。

コンセプトは、「あなたの顔の特徴を完璧に保ったまま、6つの時代にタイムトラベル!」です。

今回のアプリでは、6つの時代設定を用意します。

江戸時代では着物姿で桜咲く古都を背景に、中世ヨーロッパでは騎士・貴族の装いで古城を背景に撮影したような画像を、

古代エジプトではファラオの装飾でピラミッドを背景に、1920年代ではフラッパースタイルでアールデコを背景にした雰囲気を演出。

さらにサイバーパンク未来では近未来的な装いで未来都市を背景に、西部開拓時代ではカウボーイスタイルで荒野を背景にした画像を生成するようにしてみます。

ユーザー体験はシンプルです。まず写真アップロードでスマホで撮った自撮り写真をアップロードし、次に時代選択で6つの時代から好きなものを選択するだけ。

そして約1〜2分で魔法の変身が完了し、まるで本当にその時代にタイムトラベルしたかのような画像を手に入れることができます。


Replitで作成の流れ

それでは実際に作っていきましょう。

今回は過去にも何度か紹介しているReplitを活用して、時代旅行アプリを作ってみたいと思います。
もちろんReplit以外にもCursorやGoogle AI Studioなどでも作成可能なので、お好みの環境で進めてみてください。

なお、Replitの基本については過去に解説している以下などを参考にしてみてください。こちらで本記事で必要となるOpenAIのAPIを取得する方法も解説してます。

https://agi-labo.com/articles/n53470495521f