Photo Refiner(高解像度化AI)とは、写真やイラストなどの画像を美しく高解像度化(超解像・アップコンバート)することができるAIです。ピクセル数(Pixel)を縦、横4倍に拡大することができます。
フォトリファイナーは、従来の画像を引き伸ばして中間を補間する技術とは異なります。
低解像度画像から高解像度画像を推測して生成するため、これまでの技術とは比較にならないほど美しく高解像度化することができます。
写真やイラスト等の画像を縦4倍、横4倍に高解像化するシステムです。最先端のAI技術(Deep learning)を用いた高解像度化AIです。AIの業界では超解像と呼ばれる技術です。映像業界では、映像を高解像度化することをアプコン、アップコンバージョン、アップコンバーターなどと呼びます
人間の顔、動物、建物、風景、食べ物から、イラストや3Dビットマップまで様々な種類の画像を高解像度に変換することができます。
一辺が10000px 以上の超特大画像を生成することができます。Photo Refinerは、最先端のAI技術を用いることで世界最高精度で画像を高解像度化することができます。なお、本技術で特許を申請しております。
1./refine へ高解像度化したい画像のリクエストを送ります
リクエストパラメータ(JSON形式)
image : 高解像度化したい画像をbase64にエンコードした文字列
**※エンコーディングの方法は後にpythonのサンプルコードがあるので参照してください
**iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAAAXNSR0IArs4c6QAAQABJREFUeAHtnQmYZVV171fNc/XcTQ/QNIOAgAMmosYhGCWKijgR/ECiqEFREodn8MUg5qmY5wM0UXBABREVQQ0Yo6AB49ggk0DPND1VV3XN81y3qt7at/p2V1fXcIcz7L3P73xff33r3nP2Xvu3TtX/nrPPXv+iSd2EDQIQgAAEIAABpwkUOx09wUMAAhCAAAQgkCaAoHMiQAACEIAABDwggKB7kESGAAEIQAACEEDQOQcgAAEIQAACHhBA0D1IIkOAAAQgAAEIIOicAxCAAAQgAAEPCCDoHiSRIUAAAhCAAAQQdM4BCEAAAhCAgAcEEHQPksgQIAABCEAAAgg65wAEIAABCEDAAwIIugdJZAgQgAAEIAABBJ1zAAIQgAAEIOABAQTdgyQyBAhAAAIQgACCzjkAAQhAAAIQ8IAAgu5BEhkCBCAAAQhAAEHnHIAABCAAAQh4QABB9yCJDAECEIAABCCAoHMOQAACEIAABDwggKB7kESGAAEIQAACEEDQOQcgAAEIQAACHhBA0D1IIkOAAAQgAAEIIOicAxCAAAQgAAEPCCDoHiSRIUAAAhCAAAQQdM4BCEAAAhCAgAcEEHQPksgQIAABCEAAAgg65wAEIAABCEDAAwIIugdJZAgQgAAEIAABBJ1zAAIQgAAEIOABAQTdgyQyBAhAAAIQgEApCCAAAQi4Su......
type : 画像種別フラグ(1: 写真, 2: イラスト)
noise : ノイズフラグ(1: なし, 2: 小, 3: 大)
レスポンス(JSON形式)
2./result へ /refine のレスポンスで返ってきた request_id を使いポーリングを行います
リクエストパラメータ(JSON形式)
レスポンス(JSON形式)
status :
download_url : status が complete の時のみ高解像度化された画像のダウンロードURLが含まれます(保存の期限は7日間になります)
import base64
import requests
import json
from time import sleep
image_path = 'path/to/target/image'
# Rapid API settings
rapid_api_host = 'cre8tiveai-photorefiner.p.rapidapi.com'
rapid_api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx' # see your X-RapidAPI-Key
# URL settings
photo_refiner_origin = 'https://' + rapid_api_host + '/pr_api/'
refine_url = photo_refiner_origin + 'refine'
result_url = photo_refiner_origin + 'result'
# Photo Refiner option settings
noise_amount = '1' # (1: なし, 2: 小, 3: 大)
image_type = '1' # (1: 写真, 2: イラスト)
def convert_image_to_base64_string(path_to_image):
with open(path_to_image, 'rb') as f:
image_base64 = base64.b64encode(f.read())
return image_base64.decode()
if __name__ == '__main__':
headers = {
'x-rapidapi-host': rapid_api_host,
'x-rapidapi-key': rapid_api_key,
'content-type': 'application/json',
'accept': 'application/json'
}
refine_payload = json.dumps({
'image_name': 'image.png',
'noise': noise_amount,
'type': image_type,
'image': convert_image_to_base64_string(image_path),
})
# post to refine endpoint
refine_response_raw = requests.request('POST', refine_url, data=refine_payload, headers=headers)
result_payload = refine_response_raw.text
# polling to result endpoint
for _ in range(5):
result_response_raw = requests.request('POST', result_url, data=refine_response_raw.text, headers=headers)
result_response = json.loads(result_response_raw.text)
if result_response.get('status') == 'complete':
print("download_url: ", result_response.get('download_url'))
break
else:
print("Super resolution has not completed yet.")
sleep(5)