|
import json |
|
import pyarrow.parquet as pq |
|
import os |
|
import numpy as np |
|
import argparse |
|
from PIL import Image |
|
import io |
|
|
|
def read_json(file_path): |
|
with open(file_path, 'r', encoding='utf-8') as file: |
|
data = json.load(file) |
|
return data |
|
|
|
def write_json(file_path, data): |
|
with open(file_path, 'w', encoding='utf-8') as file: |
|
json.dump(data, file, ensure_ascii=False, indent=4) |
|
|
|
def read_parquet(file_path): |
|
table = pq.read_table(file_path) |
|
df = table.to_pandas() |
|
data = df.values.tolist() |
|
return data |
|
|
|
def slove_images(bytes,path): |
|
img = Image.open(io.BytesIO(bytes)) |
|
img.save(path) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file_path = '/home/zbz5349/WorkSpace/aigeeks/Qwen2.5-VL/magicbrush_dataset/data' |
|
image_path = '/home/zbz5349/WorkSpace/aigeeks/Qwen2.5-VL/magicbrush_dataset/data' |
|
os.makedirs(image_path,exist_ok=True) |
|
|
|
save_data = [] |
|
for sud_ in os.listdir(file_path): |
|
if sud_.endswith('.parquet'): |
|
print(sud_) |
|
data = read_parquet(os.path.join(file_path,sud_)) |
|
for x in data: |
|
img_path = os.path.join(image_path,x[2]['path']) |
|
|
|
slove_images(x[2]['bytes'],img_path) |
|
img_path = os.path.join(image_path,x[5]['path']) |
|
|
|
slove_images(x[5]['bytes'],img_path) |
|
|
|
message = { |
|
"role": "user", |
|
"content": [ |
|
{ |
|
"type": "image", |
|
"image": img_path, |
|
}, |
|
{"type": "text", "text": "Please help me write a prompt for image editing on this picture. The requirements are as follows: complex editing instructions should include two to four simple editing instructions involving spatial relationships (simple editing instructions such as ADD: add an object to the left of a certain object, DELETE: delete a certain object, MODIFY: change a certain object into another object). We hope that the editing instructions can have simple reasoning . Please give me clear editing instructions and also consider whether such editing instructions are reasonable.Examples are as follows:Removed railway signals closer to trains,Remove the person standing on the tracks and Change the red train into red train"}, |
|
], |
|
} |
|
save_data.append(message) |
|
|
|
print(len(save_data)) |
|
|
|
save_json = '/home/zbz5349/WorkSpace/aigeeks/Qwen2.5-VL/magicbrush_dataset/tg_1.json' |
|
write_json(save_json,save_data) |
|
|
|
|
|
|
|
|
|
|