feat(product-suite): add direct job state machine
This commit is contained in:
@@ -335,6 +335,9 @@ CREATE TABLE IF NOT EXISTS image_studio_assets (
|
||||
remote_url TEXT,
|
||||
local_path TEXT,
|
||||
aspect_ratio TEXT,
|
||||
requested_output_size TEXT,
|
||||
rendered_width INTEGER,
|
||||
rendered_height INTEGER,
|
||||
parent_asset_id INTEGER REFERENCES image_studio_assets(id) ON DELETE SET NULL,
|
||||
prompt TEXT,
|
||||
status TEXT NOT NULL DEFAULT 'available',
|
||||
@@ -369,6 +372,7 @@ CREATE TABLE IF NOT EXISTS image_studio_jobs (
|
||||
call_id TEXT,
|
||||
generation_round_key TEXT,
|
||||
generation_slot_index INTEGER,
|
||||
run_session_id TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
submitted_at TEXT,
|
||||
@@ -508,6 +512,8 @@ def init_db(path=None, conn=None) -> None:
|
||||
_ensure_image_studio_job_recovery_columns(database)
|
||||
_ensure_image_studio_generation_round_columns(database)
|
||||
_ensure_image_studio_job_reference_asset_ids_column(database)
|
||||
_ensure_image_studio_asset_output_columns(database)
|
||||
_ensure_image_studio_job_run_session_column(database)
|
||||
|
||||
|
||||
def _ensure_batch_delete_columns(database):
|
||||
@@ -724,6 +730,34 @@ def _ensure_image_studio_job_reference_asset_ids_column(database):
|
||||
"ALTER TABLE image_studio_jobs ADD COLUMN reference_asset_ids TEXT"
|
||||
)
|
||||
|
||||
|
||||
def _ensure_image_studio_asset_output_columns(database):
|
||||
columns = {
|
||||
row["name"] for row in database.execute("PRAGMA table_info(image_studio_assets)").fetchall()
|
||||
}
|
||||
if "requested_output_size" not in columns:
|
||||
database.execute(
|
||||
"ALTER TABLE image_studio_assets ADD COLUMN requested_output_size TEXT"
|
||||
)
|
||||
if "rendered_width" not in columns:
|
||||
database.execute(
|
||||
"ALTER TABLE image_studio_assets ADD COLUMN rendered_width INTEGER"
|
||||
)
|
||||
if "rendered_height" not in columns:
|
||||
database.execute(
|
||||
"ALTER TABLE image_studio_assets ADD COLUMN rendered_height INTEGER"
|
||||
)
|
||||
|
||||
|
||||
def _ensure_image_studio_job_run_session_column(database):
|
||||
columns = {
|
||||
row["name"] for row in database.execute("PRAGMA table_info(image_studio_jobs)").fetchall()
|
||||
}
|
||||
if "run_session_id" not in columns:
|
||||
database.execute(
|
||||
"ALTER TABLE image_studio_jobs ADD COLUMN run_session_id TEXT"
|
||||
)
|
||||
|
||||
def create_batch(file_paths: Iterable[str], note=None, path=None, conn=None) -> str:
|
||||
batch_id = datetime.now().strftime("%Y%m%d_%H%M%S_") + uuid.uuid4().hex[:8]
|
||||
files = [os.path.abspath(file_path) for file_path in file_paths]
|
||||
|
||||
Reference in New Issue
Block a user