cinetic
코드에서 만든 시네마틱 런치 영상과 모션 디자인을 코딩 에이전트가 연출합니다
이미지‑투‑이미지 AI가 휴대폰 사진을 스튜디오 촬영이나 새로운 예술 스타일로 바꾸고, 템플릿 선택만으로 주제는 그대로 유지됩니다
Image to image AI turns a phone photo into a studio shot or a new art style. Pick a template, no prompts, the subject stays as shot. 100 free credits.
디자인GitHub @Crnobog9527온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗AI product-photo studio for small restaurants. Also the reusable launch template:
a new site changes src/site/, .env and supabase/seed only.
Rules: 规范/AGENTS.md · Architecture: 规范/ARCHITECTURE.md
src/core shared by every site; never imports modules/ site/ app/
src/modules feature modules (image, video); import core only, never each other
src/site per-site config, content and messages
src/app Next.js routes; assembly only
supabase/ local config and migrations
tests/db tests against a real local Supabase
pnpm install
pnpm dev
pnpm lint && pnpm typecheck && pnpm test && pnpm build
pnpm db:start && pnpm test:db # needs Docker
Templates, their categories and series can be created and edited from a local JSON file instead of the admin pages. Every change goes through the same database functions and checks the admin uses; nothing is written by hand.
pnpm templates:apply .local/templates/<batch>.json --dry-run # check everything, keep nothing
pnpm templates:apply .local/templates/<batch>.json # apply to the test site
Format: scripts/templates.example.json. Batch files hold
private prompts, so they must live under a gitignored .local/ folder; the script refuses others.
Needs NEXT_PUBLIC_SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY and SHOTVIVA_IMPORT_ADMIN_ID
(your admin user id on that site) in .env.local. Uploading covers and style references also
needs TEMPLATE_TOOLS_R2_* (see below); the buckets and the cover address are fixed in the script, and a
.env.local set up for another site stops it. TEMPLATE_SYNC_REVALIDATE_SECRET (optional)
refreshes the test site's catalogue right after a run; without it the site catches up within the hour.
The script writes only to the test site or a local stack. It first runs the whole batch and
rolls it back, uploads files only if that passed, then writes. A batch is all or nothing: every
item is listed with its result, and if any item fails nothing is kept and the exit code is 1.
--dry-run stops after the check. At most 300 items per batch (a series counts twice).
Re-running a file is safe: unchanged items are reported as unchanged.
pnpm templates:trial <batch>.json [--dry-run] [--only a,b] [--n 3] [--budget 2] [--concurrency 2]
runs each template's trial inputs through the admin's own trial run (same prompt assembly,
provider, face-swap screen, daily budget and ledger). Results already in the database are reused
(run ids come from the content: prompt version, model, fields, input and photo), provider hiccups
are retried, and new runs stop at --budget (USD, default 2) or the daily trial budget. Results
and a review page land in .local/trials/ (index.html: benchmarks, inputs and every result by
prompt version; no prompt text). Needs TEMPLATE_TOOLS_R2_ACCOUNT_ID,
TEMPLATE_TOOLS_R2_ACCESS_KEY_ID and TEMPLATE_TOOLS_R2_SECRET_ACCESS_KEY for the test site's
buckets (the same keys let templates:apply upload covers and style references).
A template with image slots takes "slots": { "<slot key>": "<image path>" } in an input set
instead of "photo"; only the slots listed are sent.
Image slots: a template's fields.images may carry "slots": [{ "key", "label", "help"?, "required"?, "note"? }] (1–4, the order the model gets them). With slots, images.max must be
the number of slots and images.min the number of required ones; note names a text field shown
under that box; such a template must be visibleIn: ["web"] only.
Review and finish: write each template's verdict into the file as
"review": { "status": "pass" | "fail", "version": <prompt version>, "pick": "<trial run id>", "notes": "…" }
(a pass needs pick, the result that becomes the cover; a review of an older prompt version no
longer counts). Then:
pnpm templates:review .local/templates/<batch>.json # refresh the review page, list verdicts
pnpm templates:finalize .local/templates/<batch>.json [--dry-run] # passed: picked cover, open sale, publish
pnpm templates:status .local/templates/<batch>.json # stage, prompt version, trials, spend
finalize goes through the same path as templates:apply (the admin's 「设为封面」, sale switch
and 上架 rules, all or nothing); a file's explicit "openSale": false or "publish": false wins.
It first checks the picked result is still in the bucket. Publication follows the test site, so a
template finalized as published goes live on production with the next T93 sync; finalize lists
those ids and never starts a sync itself. status shows each template's production sync state
(not synced / synced / changed since): it takes the last successful "Sync preview templates to
production" run on GitHub whose title names the template id or its series slug, and compares its
time with the template's or prompt's last change on the test site. It never reads production
(the sync's own history lives there). The column errs towards "changed since": any change to the
row counts (an order or category tweak too), so it may ask for a sync that would change nothing.
R2 keys for the tools, in .env.local (fill in your own; never paste them anywhere):
# A Cloudflare R2 API token limited to the test site's buckets shotviva-preview and
# shotviva-assets-preview (Object Read & Write). Not the shell's R2_* variables.
TEMPLATE_TOOLS_R2_ACCOUNT_ID=<Cloudflare account id>
TEMPLATE_TOOLS_R2_ACCESS_KEY_ID=<the token's Access Key ID>
TEMPLATE_TOOLS_R2_SECRET_ACCESS_KEY=<the token's Secret Access Key>
At start the tools check the token cannot reach the production bucket shotviva-assets; if it
can, they stop. pnpm templates:trial runs with NODE_USE_ENV_PROXY=1, so on a machine that
reaches the model provider through HTTPS_PROXY its calls use that proxy too.
Production is never written by this script: templates, categories and series reach production through the "Sync preview templates to production" workflow (Owner approval).
Proprietary. The source is public to read, but it is not open source: using, copying, modifying or hosting it needs a written commercial license from Grayscale Luminary LLC. See LICENSE.