Sahara3のAI副業

AI副業でどこまでいけるのか?

AI副業:ダリさん(DALL-E 3)に制限サイズ以上の画像を作成してもらう方法

「さはら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さはら