Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion skills/technique-multi-scene-comic.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Ask for (or draft and confirm) a scene list: N panels, each with location, chara

If the user uploaded a reference for a character, `upload_file` it. Otherwise generate one front-facing reference from text first with a text-to-image `partner_generate` call (for example `bfl/flux-2-pro`), prompting with the style string and the character description. Do not use a reference-image template for this: with no reference to give it, its image inputs would run with demo pictures.

Then turn that reference into a sheet. Feed the generated reference into the sheet template's LoadImage input with `use_previous_output` on its `prompt_id`. If `partner_generate` instead returned a direct-dispatch `job_id` and says its output is not in the asset library, `use_previous_output` cannot read it: download its URL exactly as returned, `upload_file` it, and put the returned filename in the LoadImage input. The same applies wherever a `partner_generate` image is reused later in this recipe. Use `search_templates` (query `character reference` or `turnaround`). `api_google_nano_banana_create_turnaround_sheet` takes one LoadImage reference and returns front/side/back views. `template_3x3_contact_sheet` returns pose and angle variations of the same character and outfit, but it has three LoadImage inputs; use it only when you have three images of that character to fill them. Call `get_template_schema` first to learn the overridable slots. A character the user uploaded a reference for keeps that upload; generate a reference only for the characters without one. With two or more references to generate, make them as ONE `submit_batch` of `partner_generate` items and `wait_for_batch` it; one reference to generate is one `partner_generate`. With two or more characters, make the sheets as a second `submit_batch` of `run_template` items, each with its own character's uploaded or generated reference in the LoadImage slot, and `wait_for_batch` that too: the sheets wait for the references, and each batch is otherwise independent. Whenever you `wait_for_batch`, call it again while it returns `timed_out: true`, until every job is terminal, and re-submit any item whose job failed before you use that batch's outputs. A batch holds at most 50 items; above that, split across several `submit_batch` calls and state each batch's total. A single character is one sheet: one `run_template` + `wait_for_job`. Keep each character's job id: it is the identity anchor for every later panel.
Then turn that reference into a sheet. Feed the generated reference into the sheet template's LoadImage input with `use_previous_output` on its `prompt_id`. If `partner_generate` instead returned a direct-dispatch `job_id` and says its output is not in the asset library, `use_previous_output` cannot read it: download its URL exactly as returned, `upload_file` it, and put the returned filename in the LoadImage input. The same applies wherever a `partner_generate` image is reused later in this recipe. Use `search_templates` (query `character reference` or `turnaround`). `api_google_nano_banana_create_turnaround_sheet` takes one LoadImage reference and returns front/side/back views. `template_3x3_contact_sheet` returns pose and angle variations of the same character and outfit, but it has three LoadImage inputs; use it only when you have three images of that character to fill them. Call `get_template_schema` first to learn the overridable slots. A character the user uploaded a reference for keeps that upload; generate a reference only for the characters without one. With two or more references to generate, make them as ONE `submit_batch` of `partner_generate` items and `wait_for_batch` it; one reference to generate is one `partner_generate`. With two or more characters, make the sheets as a second `submit_batch` of `run_template` items, each with its own character's uploaded or generated reference in the LoadImage slot, and `wait_for_batch` that too: the sheets wait for the references, and each batch is otherwise independent. Whenever you `wait_for_batch`, call it again on the same `batch_id` while it returns `timed_out: true`, until every job is terminal; if it keeps timing out, tell the user which job ids are still pending instead of waiting on. Before you use that batch's outputs, look at each failed item: re-send as-is, in a new `submit_batch`, only the items marked `not_attempted: true` or `billed: false`. An item marked `may_be_charged: true` or `billed: "unknown"`, or one that failed on moderation, validation or credits, is re-submitted at most once, and only with a changed input or after the user says so. A re-sent item gets a new job id outside the original batch: `wait_for_batch` on the new `batch_id` the same way, until every job in it is terminal, before you use its output, and record that id against its character here, and against its panel in Steps 3-5. A batch holds at most 50 items; above that, split across several `submit_batch` calls and state each batch's total. A single character is one sheet: one `run_template` + `wait_for_job`. Keep each character's job id: it is the identity anchor for every later panel. For every `wait_for_job` in this recipe, re-call it on `timed_out: true`, tell the user if it keeps timing out, and on `stalled: true` follow its `message`.

## Step 3: Generate each scene panel

Expand Down
Loading