From 691479d1b8505c6022fba51a650f9fa05bf57956 Mon Sep 17 00:00:00 2001 From: mjaniszewski Date: Sat, 7 Sep 2024 08:40:04 +0200 Subject: [PATCH 1/4] fix Table items creation with insert results in None id --- image_app_simple/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image_app_simple/main.py b/image_app_simple/main.py index 1ffdc91..54c874f 100644 --- a/image_app_simple/main.py +++ b/image_app_simple/main.py @@ -58,7 +58,7 @@ def static(fname:str, ext:str): return FileResponse(f'{fname}.{ext}') def post(prompt:str): folder = f"data/gens/{str(uuid.uuid4())}" os.makedirs(folder, exist_ok=True) - g = gens.insert(Generation(prompt=prompt, folder=folder)) + g = gens.insert(Generation(prompt=prompt, id=f"{gens.count}", folder=folder)) generate_and_save(g.prompt, g.id, g.folder) clear_input = Input(id="new-prompt", name="prompt", placeholder="Enter a prompt", hx_swap_oob='true') return generation_preview(g), clear_input From bb6604f94ed78928cb8d98b995b226d5dc90bcbf Mon Sep 17 00:00:00 2001 From: mjaniszewski Date: Sat, 7 Sep 2024 15:18:47 +0200 Subject: [PATCH 2/4] Optimize imports - image_app --- image_app_session_credits/main.py | 9 ++++----- image_app_session_credits/session.py | 8 ++++---- image_app_simple/main.py | 9 ++++----- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/image_app_session_credits/main.py b/image_app_session_credits/main.py index d8f7a66..b5d3a03 100644 --- a/image_app_session_credits/main.py +++ b/image_app_session_credits/main.py @@ -1,12 +1,11 @@ -from fastcore.parallel import threaded -from fasthtml.common import * -import uuid, os, uvicorn, requests, replicate, stripe +import requests, uuid, stripe from PIL import Image -from starlette.responses import RedirectResponse +from fasthtml.common import * +from replicate import Client # Replicate setup (for generating images) replicate_api_token = os.environ['REPLICATE_API_KEY'] -client = replicate.Client(api_token=replicate_api_token) +client = Client(api_token=replicate_api_token) # Stripe (for payments) stripe.api_key = os.environ["STRIPE_KEY"] diff --git a/image_app_session_credits/session.py b/image_app_session_credits/session.py index f088be0..068d116 100644 --- a/image_app_session_credits/session.py +++ b/image_app_session_credits/session.py @@ -1,11 +1,11 @@ -from fastcore.parallel import threaded -from fasthtml.common import * -import uuid, os, uvicorn, requests, replicate +import requests, uuid from PIL import Image +from fasthtml.common import * +from replicate import Client # Replicate setup (for generating images) replicate_api_token = os.environ['REPLICATE_API_KEY'] -client = replicate.Client(api_token=replicate_api_token) +client = Client(api_token=replicate_api_token) # gens database for storing generated image details tables = database('gens.db').t diff --git a/image_app_simple/main.py b/image_app_simple/main.py index 54c874f..0d524dd 100644 --- a/image_app_simple/main.py +++ b/image_app_simple/main.py @@ -1,12 +1,11 @@ -from fastcore.parallel import threaded -from fasthtml.common import * -import uuid, os, uvicorn, requests, replicate +import requests, uuid from PIL import Image - +from fasthtml.common import * +from replicate import Client # Replicate setup (for generating images) replicate_api_token = os.environ['REPLICATE_API_KEY'] -client = replicate.Client(api_token=replicate_api_token) +client = Client(api_token=replicate_api_token) # gens database for storing generated image details tables = database('data/gens.db').t From a1a5dc06613d7ea9549e041432f78d9128a92ca3 Mon Sep 17 00:00:00 2001 From: mjaniszewski Date: Sat, 7 Sep 2024 16:01:32 +0200 Subject: [PATCH 3/4] fix image_app `gens` table creation/insert --- image_app_session_credits/main.py | 5 ++--- image_app_session_credits/session.py | 4 +++- image_app_simple/main.py | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/image_app_session_credits/main.py b/image_app_session_credits/main.py index b5d3a03..2ae79ad 100644 --- a/image_app_session_credits/main.py +++ b/image_app_session_credits/main.py @@ -104,9 +104,8 @@ def post(prompt: str, session): folder = f"data/gens/{str(uuid.uuid4())}" os.makedirs(folder, exist_ok=True) g = gens.insert( - Generation(prompt=prompt, - folder=folder, - session_id=session['session_id'])) + Generation(prompt=prompt, folder=folder, session_id=session['session_id'], id=f"{gens.count}") + ) generate_and_save(g.prompt, g.id, g.folder) return generation_preview(g, session), clear_input diff --git a/image_app_session_credits/session.py b/image_app_session_credits/session.py index 068d116..61642bb 100644 --- a/image_app_session_credits/session.py +++ b/image_app_session_credits/session.py @@ -61,7 +61,9 @@ async def static(fname:str, ext:str): return FileResponse(f'{fname}.{ext}') async def post(prompt:str, session): folder = f"gens/{str(uuid.uuid4())}" os.makedirs(folder, exist_ok=True) - g = gens.insert(Generation(prompt=prompt, folder=folder, session_id=session['session_id'])) + g = gens.insert( + Generation(prompt=prompt, folder=folder, session_id=session['session_id'], id=f"{gens.count}") + ) generate_and_save(g.prompt, g.id, g.folder) clear_input = Input(id="new-prompt", name="prompt", placeholder="Enter a prompt", hx_swap_oob='true') return generation_preview(g), clear_input diff --git a/image_app_simple/main.py b/image_app_simple/main.py index 0d524dd..bad0bc9 100644 --- a/image_app_simple/main.py +++ b/image_app_simple/main.py @@ -9,8 +9,8 @@ # gens database for storing generated image details tables = database('data/gens.db').t -gens = tables.t.gens -if not gens in tables.t: +gens = tables.gens +if not gens in tables: gens.create(prompt=str, id=int, folder=str, pk='id') Generation = gens.dataclass() From e8e269c51640688204a18e38f3064c212d6b3424 Mon Sep 17 00:00:00 2001 From: mjaniszewski Date: Sun, 8 Sep 2024 11:21:25 +0200 Subject: [PATCH 4/4] Optimize imports - image_app --- image_app_session_credits/main.py | 5 +++-- image_app_session_credits/session.py | 4 +--- image_app_simple/main.py | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/image_app_session_credits/main.py b/image_app_session_credits/main.py index 2ae79ad..b5d3a03 100644 --- a/image_app_session_credits/main.py +++ b/image_app_session_credits/main.py @@ -104,8 +104,9 @@ def post(prompt: str, session): folder = f"data/gens/{str(uuid.uuid4())}" os.makedirs(folder, exist_ok=True) g = gens.insert( - Generation(prompt=prompt, folder=folder, session_id=session['session_id'], id=f"{gens.count}") - ) + Generation(prompt=prompt, + folder=folder, + session_id=session['session_id'])) generate_and_save(g.prompt, g.id, g.folder) return generation_preview(g, session), clear_input diff --git a/image_app_session_credits/session.py b/image_app_session_credits/session.py index 61642bb..068d116 100644 --- a/image_app_session_credits/session.py +++ b/image_app_session_credits/session.py @@ -61,9 +61,7 @@ async def static(fname:str, ext:str): return FileResponse(f'{fname}.{ext}') async def post(prompt:str, session): folder = f"gens/{str(uuid.uuid4())}" os.makedirs(folder, exist_ok=True) - g = gens.insert( - Generation(prompt=prompt, folder=folder, session_id=session['session_id'], id=f"{gens.count}") - ) + g = gens.insert(Generation(prompt=prompt, folder=folder, session_id=session['session_id'])) generate_and_save(g.prompt, g.id, g.folder) clear_input = Input(id="new-prompt", name="prompt", placeholder="Enter a prompt", hx_swap_oob='true') return generation_preview(g), clear_input diff --git a/image_app_simple/main.py b/image_app_simple/main.py index bad0bc9..ee63013 100644 --- a/image_app_simple/main.py +++ b/image_app_simple/main.py @@ -57,7 +57,7 @@ def static(fname:str, ext:str): return FileResponse(f'{fname}.{ext}') def post(prompt:str): folder = f"data/gens/{str(uuid.uuid4())}" os.makedirs(folder, exist_ok=True) - g = gens.insert(Generation(prompt=prompt, id=f"{gens.count}", folder=folder)) + g = gens.insert(Generation(prompt=prompt, folder=folder)) generate_and_save(g.prompt, g.id, g.folder) clear_input = Input(id="new-prompt", name="prompt", placeholder="Enter a prompt", hx_swap_oob='true') return generation_preview(g), clear_input