updated requirements, print progress
This commit is contained in:
@@ -6,7 +6,6 @@ import time
|
|||||||
|
|
||||||
import openai
|
import openai
|
||||||
import pyperclip
|
import pyperclip
|
||||||
from rich.pretty import pprint
|
|
||||||
|
|
||||||
from .save import save_images_from_openai, upload_to_s3, save_output
|
from .save import save_images_from_openai, upload_to_s3, save_output
|
||||||
|
|
||||||
@@ -46,15 +45,19 @@ def generate_images(prompt: str, num_images: int, save_path: pl.Path = SAVE_PATH
|
|||||||
if num_images > 10:
|
if num_images > 10:
|
||||||
raise ValueError("num_images must be <= 10")
|
raise ValueError("num_images must be <= 10")
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
print("Generating images...")
|
||||||
res = openai.Image.create(prompt=prompt, n=num_images) # type: ignore
|
res = openai.Image.create(prompt=prompt, n=num_images) # type: ignore
|
||||||
|
print("Saving images...")
|
||||||
file_paths = save_images_from_openai(prompt, res, save_path) # type: ignore
|
file_paths = save_images_from_openai(prompt, res, save_path) # type: ignore
|
||||||
if save_to_s3:
|
if save_to_s3:
|
||||||
if S3_BUCKET is None:
|
if S3_BUCKET is None:
|
||||||
raise NoBucket("Please provide AI_GETTER_S3_BUCKET in .env")
|
raise NoBucket("Please provide AI_GETTER_S3_BUCKET in .env")
|
||||||
for fp in file_paths:
|
print("Uploading images to S3...")
|
||||||
|
for idx, fp in enumerate(file_paths):
|
||||||
|
print(idx)
|
||||||
upload_to_s3(bucket_name=S3_BUCKET, file_path=fp, key=fp, prompt=prompt, typ="image", vendor="openai")
|
upload_to_s3(bucket_name=S3_BUCKET, file_path=fp, key=fp, prompt=prompt, typ="image", vendor="openai")
|
||||||
print(f"Time taken: {time.time() - start} seconds")
|
print(f"Time taken: {time.time() - start} seconds")
|
||||||
print(f"Cost: {OPENAI_DALE_COST_PER_IMAGE_IN_TENTHS_OF_A_CENT * num_images * 10} cents")
|
print(f"Cost: {OPENAI_DALE_COST_PER_IMAGE_IN_TENTHS_OF_A_CENT * num_images / 10} cents")
|
||||||
return res # type: ignore
|
return res # type: ignore
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ def make_fp_from_prompt(
|
|||||||
prompt_fn = f"{prompt_fn}{index}"
|
prompt_fn = f"{prompt_fn}{index}"
|
||||||
prompt_fn = f"{prompt_fn}-{dt.datetime.now()}"
|
prompt_fn = f"{prompt_fn}-{dt.datetime.now()}"
|
||||||
prompt_fn = f"{prompt_fn}.{ext}"
|
prompt_fn = f"{prompt_fn}.{ext}"
|
||||||
return save_path / prompt_fn
|
return save_path / prompt_fn.replace(" ", "")
|
||||||
|
|
||||||
|
|
||||||
def save_images_from_openai(
|
def save_images_from_openai(
|
||||||
@@ -90,7 +90,9 @@ def download_images(prompt: str, res: dict, save_path: pl.Path) -> list[str]:
|
|||||||
fns = []
|
fns = []
|
||||||
for idx, image_dict in enumerate(res["data"]):
|
for idx, image_dict in enumerate(res["data"]):
|
||||||
fn = make_fp_from_prompt(prompt, save_path, index=idx, ext="jpg")
|
fn = make_fp_from_prompt(prompt, save_path, index=idx, ext="jpg")
|
||||||
download(image_dict["url"], fn)
|
url = image_dict["url"]
|
||||||
|
print(f"Downloading image from {url} to {fn}")
|
||||||
|
download(url, fn)
|
||||||
fns.append(fn)
|
fns.append(fn)
|
||||||
return fns
|
return fns
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,22 @@
|
|||||||
-e git+https://github.com/zevaverbach/ai_getter@43be074db903f6b8e91198a0efee3a71d5f95b85#egg=ai_getter
|
|
||||||
aiohttp==3.8.4
|
aiohttp==3.8.4
|
||||||
aiosignal==1.3.1
|
aiosignal==1.3.1
|
||||||
asttokens==2.2.1
|
|
||||||
async-timeout==4.0.2
|
async-timeout==4.0.2
|
||||||
attrs==22.2.0
|
attrs==22.2.0
|
||||||
backcall==0.2.0
|
|
||||||
boto3==1.26.104
|
boto3==1.26.104
|
||||||
botocore==1.29.104
|
botocore==1.29.104
|
||||||
certifi==2022.12.7
|
certifi==2022.12.7
|
||||||
charset-normalizer==3.1.0
|
charset-normalizer==3.1.0
|
||||||
decorator==5.1.1
|
|
||||||
executing==1.2.0
|
|
||||||
frozenlist==1.3.3
|
frozenlist==1.3.3
|
||||||
idna==3.4
|
idna==3.4
|
||||||
ipython==8.12.0
|
|
||||||
jedi==0.18.2
|
|
||||||
jmespath==1.0.1
|
jmespath==1.0.1
|
||||||
markdown-it-py==2.2.0
|
|
||||||
matplotlib-inline==0.1.6
|
|
||||||
mdurl==0.1.2
|
|
||||||
multidict==6.0.4
|
multidict==6.0.4
|
||||||
openai==0.27.2
|
openai==0.27.2
|
||||||
parso==0.8.3
|
|
||||||
pexpect==4.8.0
|
|
||||||
pickleshare==0.7.5
|
|
||||||
prompt-toolkit==3.0.38
|
|
||||||
ptyprocess==0.7.0
|
|
||||||
pure-eval==0.2.2
|
|
||||||
Pygments==2.14.0
|
|
||||||
pyperclip==1.8.2
|
pyperclip==1.8.2
|
||||||
python-dateutil==2.8.2
|
python-dateutil==2.8.2
|
||||||
requests==2.28.2
|
requests==2.28.2
|
||||||
rich==13.3.3
|
|
||||||
s3transfer==0.6.0
|
s3transfer==0.6.0
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
stack-data==0.6.2
|
|
||||||
tqdm==4.65.0
|
tqdm==4.65.0
|
||||||
traitlets==5.9.0
|
|
||||||
trans==2.1.0
|
trans==2.1.0
|
||||||
urllib3==1.26.15
|
urllib3==1.26.15
|
||||||
wcwidth==0.2.6
|
|
||||||
yarl==1.8.2
|
yarl==1.8.2
|
||||||
|
|||||||
4
setup.py
4
setup.py
@@ -3,7 +3,7 @@ from setuptools import setup
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="ai_getter",
|
name="ai_getter",
|
||||||
version="0.0.1",
|
version="0.0.2",
|
||||||
description="A CLI for publishing sites to Netlify and assigning custom domains to them.",
|
description="A CLI for publishing sites to Netlify and assigning custom domains to them.",
|
||||||
author="Zev Averbach",
|
author="Zev Averbach",
|
||||||
author_email="zev@averba.ch",
|
author_email="zev@averba.ch",
|
||||||
@@ -21,7 +21,7 @@ setup(
|
|||||||
],
|
],
|
||||||
packages=["ai_getter"],
|
packages=["ai_getter"],
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
install_requires=["requests", "openai", "requests"],
|
install_requires=["requests", "openai", "pyperclip", "trans", "boto3"],
|
||||||
python_requires=">=3.10", # only because we're using | instead of typing.Union; otherwise >= 3.9
|
python_requires=">=3.10", # only because we're using | instead of typing.Union; otherwise >= 3.9
|
||||||
url="https://github.com/zevaverbach/ai_getter",
|
url="https://github.com/zevaverbach/ai_getter",
|
||||||
entry_points={"console_scripts": ["aig=ai_getter.main:main"]},
|
entry_points={"console_scripts": ["aig=ai_getter.main:main"]},
|
||||||
|
|||||||
Reference in New Issue
Block a user