「さはら3」です。
AI副業でどこまでいけるのか?をテーマに頑張っていきたいと思います。
ご挨拶
2024年は明けてから、連日の災害・事故・事件が多く発生しており
決しておめでとうという雰囲気ではありませんが、暗い雰囲気にならない様に気を付けていきたいと思います。
本編
さて、本日は巷で話題のChatGPTのダリさん(DALL-E 3)に制限サイズ上の画像を生成してもらう方法(+少し手動)が判明しましたので、ご報告いたします。
みなさんご存じの通り、現在の生成できる画像の最大サイズは「1024 x 1024」となっております。
今回は、この画像サイズを検証した結果ですが、「8200 x 8200」までアップできましたので、その手順を掲載いたします。
まずは、元画像の生成依頼
- 昇竜の画像を生成してください
昇竜の画像を生成しました。こちらをご覧ください。
- 出来上がった画像は、「1024 x 1024」です。
次の手順
こちらを「8200 x 8200」にするための、段階は以下になります。
生成された画像を25分割する。
分割された画像をそれぞれアップスケールする。
アップスケールを数回実行する。
Zipにまとめて、ダウンロードする。
Pythonを使用して、画像を合成する。
以上となります。
実際の操作
- 画像を25分割してください。
画像を25分割しました。以下のリンクから各部分をダウンロードできます。
分割画像 1
分割画像 2
分割画像 3
分割画像 4
分割画像 5
分割画像 6
分割画像 7
分割画像 8
分割画像 9
...省略
- 分割された画像は、「205 x 205」サイズでした。
- 分割された画像をアップスケールしてください
分割された画像をアップスケールしました。以下のリンクから各アップスケールされた部分をダウンロードできます。
アップスケール分割画像 1
アップスケール分割画像 2
アップスケール分割画像 3
アップスケール分割画像 4
アップスケール分割画像 5
アップスケール分割画像 6
アップスケール分割画像 7
アップスケール分割画像 8
アップスケール分割画像 9
...省略
- アップスケール分割画像は、「410 x 410」サイズでした。
- 再度アップスケールしてください。
分割された画像を再度アップスケールしました。以下のリンクから各アップスケールされた部分をダウンロードできます。
再アップスケール分割画像 1
再アップスケール分割画像 2
再アップスケール分割画像 3
再アップスケール分割画像 4
再アップスケール分割画像 5
再アップスケール分割画像 6
再アップスケール分割画像 7
再アップスケール分割画像 8
再アップスケール分割画像 9
...省略
- アップスケール分割画像は、「820 x 820」サイズでした。
- もう一度アップスケールしてください。
分割された画像をさらに一度アップスケールしました。以下のリンクから各アップスケールされた部分をダウンロードできます。
さらにアップスケール分割画像 1
さらにアップスケール分割画像 2
さらにアップスケール分割画像 3
さらにアップスケール分割画像 4
さらにアップスケール分割画像 5
さらにアップスケール分割画像 6
さらにアップスケール分割画像 7
さらにアップスケール分割画像 8
さらにアップスケール分割画像 9
...省略
- アップスケール分割画像は、「1640 x 1640」サイズでした。
- もっとアップスケールしてください。
解析中にエラーが発生しました
アップスケール処理中にエラーが発生しました。画像のサイズが大きくなると、処理に時間がかかり過ぎたり、システムのリソースに制限があるためにエラーが発生する可能性があります。現在の画像サイズやリソースを考慮すると、これ以上のアップスケールは難しいかもしれません。
- これ以上は大きくできないとの事ですので、次の工程に移ります。
Zipにまとめてダウンロード
- 「さらにアップスケール分割」をZipにまとめてください。
「さらにアップスケール分割」された画像をZipファイルにまとめました。以下のリンクからダウンロードできます。
ダウンロード - Upscaled Images Zip
Zipにまとめられた画像群をダウンロードし、任意の場所に解凍してください。
私の環境では、「c:\temp」に解凍しました。
解凍されたファイル群を確認すると25個のファイルができています。
"C:\temp\upscaled_images\triple_upscaled_split_image_part_1.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_2.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_3.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_4.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_5.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_6.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_7.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_8.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_9.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_10.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_11.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_12.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_13.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_14.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_15.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_16.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_17.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_18.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_19.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_20.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_21.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_22.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_23.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_24.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_25.png"
画像の内、1~9の画像については、このまま使用するとソートで順番が変わってしまう可能性があるので
数字の前に「0」を付けていきます。
"C:\temp\upscaled_images\triple_upscaled_split_image_part_01.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_02.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_03.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_04.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_05.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_06.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_07.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_08.png"
"C:\temp\upscaled_images\triple_upscaled_split_image_part_09.png"
...省略
最後にPythonスクリプトで画像を合成します。
import os from PIL import Image def combine_images(image_folder, rows, columns): """ Combines multiple images from a folder into a single image. :param image_folder: Path to the folder containing the images. :param rows: Number of rows in the final combined image. :param columns: Number of columns in the final combined image. :return: Combined image. """ # List all image files in the folder image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.png')] image_paths.sort() # Sort the files to ensure correct order if len(image_paths) != rows * columns: raise ValueError("Number of images does not match the specified grid size.") # Load the images images = [Image.open(path) for path in image_paths] # Calculate combined image size width, height = images[0].size total_width = width * columns total_height = height * rows # Create a new blank image with the combined size combined_image = Image.new('RGB', (total_width, total_height)) # Paste each image into the combined image for i, image in enumerate(images): x = (i % columns) * width y = (i // columns) * height combined_image.paste(image, (x, y)) return combined_image # Example usage image_folder = r"C:\temp\upscaled_images" # Replace with your folder path combined_image = combine_images(image_folder, 5, 5) # Adjust rows and columns as needed # Save the combined image combined_image_path = r'C:\temp\dragon3.png' # Replace with your desired save path combined_image.save(combined_image_path)
- 合成結果
- ファイルサイズが大きすぎて、ブログ記事に貼り付けられないので、ファイルのプロパティ画像になります。
いかがでしたでしょうか?
少し手間がかかりますが、「1024 x 1024」 → 「8200 x 8200」までアップスケールする事が出来ました。
是非お試しください。
AI関連は日進月歩、日々之精進でございます。
最後まで読んで頂きありがとうございました。
AIさはら