Compare commits
3 commits
2032483e64
...
dc23d1ac9e
Author | SHA1 | Date | |
---|---|---|---|
|
dc23d1ac9e | ||
|
8c033b766c | ||
|
22dc9e7275 |
|
@ -24,10 +24,10 @@ You can manipulate the main abstractions of the OpenAI model:
|
|||
* Each script has a number of mandatory parameters in strict order:
|
||||
|
||||
| Script | Parameter 1 | Parameter 2 | Parameter 3 | Purpose |
|
||||
| --------------------------------------- | ----------------- | --------------- | --------------- | -------------------------------------------------------- |
|
||||
| --------------------------------------- | ----------------- | --------------- | --------------- | ------------------------------------------------------------------------- |
|
||||
| `cancel_model_response.py` | `response_id` | | | Cancel a Response running in the background |
|
||||
| `create_conversation.py` | | | | Create a new Conversation |
|
||||
| `create_image.py` | `model_id` | `prompt` | | Create an image based on the prompt description |
|
||||
| `create_image.py` | `model_id` | `prompt` | `image.png` | Create an image based on the prompt description and/or the image provided |
|
||||
| `create_model_response.py` | `conversation_id` | `model_id` | `input_message` | Create a Response within a Conversation |
|
||||
| `create_text_item.py` | `conversation_id` | `input_message` | | Create a user input or instruction within a Conversation |
|
||||
| `create_vector_store.py` | | | | Create a Vector Store |
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 0.6.x | :heavy_check_mark: |
|
||||
| 0.5.x | :heavy_check_mark: |
|
||||
| 0.4.x | :heavy_check_mark: |
|
||||
| 0.3.x | :heavy_check_mark: |
|
||||
|
|
|
@ -7,20 +7,40 @@ from PIL import Image
|
|||
from io import BytesIO
|
||||
from datetime import datetime
|
||||
|
||||
def create_image(model,prompt):
|
||||
def create_image(model,prompt,image_path=None):
|
||||
# choose endpoint depending on whether an image is provided
|
||||
if image_path:
|
||||
url = base_url+"images/edits"
|
||||
else:
|
||||
url = base_url+"images/generations"
|
||||
|
||||
payload = json.dumps({
|
||||
"prompt": prompt,
|
||||
"model": model
|
||||
})
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer '+secret_key,
|
||||
}
|
||||
date_time_string = datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
|
||||
|
||||
response = requests.request("POST", url, headers=headers, data=payload)
|
||||
if image_path:
|
||||
# For edits, use multipart/form-data
|
||||
data = {
|
||||
"prompt": prompt,
|
||||
"model": model
|
||||
}
|
||||
files = {
|
||||
"image": open(image_path, "rb")
|
||||
}
|
||||
response = requests.post(url, headers=headers, data=data, files=files)
|
||||
else:
|
||||
# For generations, use JSON
|
||||
payload = json.dumps({
|
||||
"prompt": prompt,
|
||||
"model": model
|
||||
})
|
||||
headers['Content-Type'] = 'application/json'
|
||||
response = requests.post(url, headers=headers, data=payload)
|
||||
if response.status_code != 200:
|
||||
print(f"Error: {response.status_code} - {response.text}")
|
||||
sys.exit(1)
|
||||
# handle response data: both generation and edits return b64_json in data[0]
|
||||
decoded_bytes = base64.b64decode(response.json()["data"][0]["b64_json"])
|
||||
byte_stream = BytesIO(decoded_bytes)
|
||||
image = Image.open(byte_stream)
|
||||
|
@ -30,4 +50,8 @@ def create_image(model,prompt):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
create_image(str(sys.argv[1]),str(sys.argv[2]))
|
||||
# usage: python create_image.py <model> <prompt> [image_path]
|
||||
model = str(sys.argv[1]) if len(sys.argv) > 1 else ''
|
||||
prompt = str(sys.argv[2]) if len(sys.argv) > 2 else ''
|
||||
image_path = str(sys.argv[3]) if len(sys.argv) > 3 else None
|
||||
create_image(model,prompt,image_path)
|
||||
|
|
Loading…
Reference in a new issue