{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "images" %} {% block title %}{{ workflow.name or "New workflow" }} - LLeMbas{% endblock %} {% block heading %}{{ workflow.name or "New workflow" }}{% endblock %} {% block admin_content %} {% if error %}
{{ icon("warning", "icon--sm") }} {{ error }}
{% endif %}

What it is

Shown to you, in the list.

Lowercase letters, digits, hyphens and underscores. This is what the model writes when it picks this workflow.

The only thing the model has to choose with, so say what this is for rather than what it contains. It never sees the graph.

The workflow

Export this from ComfyUI with Export (API), not Save — the two formats are different and only the API one can be submitted.

Then put a placeholder where each value goes. A placeholder that is the whole value keeps its type, so "steps": {{ '{{steps}}' }} sends the number 20 rather than the text “20”; one inside a longer string is substituted as text, so "{{ '{{prompt}}' }}, masterpiece" works. Anything you leave out takes its default.

The placeholders

Every hole a template may carry, what it fills, and what it resolves to right now. {{ '{{prompt}}' }} is required — without it every image would be the same one, whatever anybody typed.

{# The current value beside each name, the way /admin/prompts shows a variable's. A legend that lists names and not values answers "what may I write" and not "what will happen", and the second is the question somebody has while looking at a workflow that came out wrong. #}
{% for name, kind, what, current in placeholder_help %}
{{ '{{' ~ name ~ '}}' }} {{ what }} {% if name == "prompt" %}Required.{% endif %} {{ current }}
{% endfor %}

Two of these are not spelled the way ComfyUI spells them, which is the mistake that costs an afternoon: {{ '{{model}}' }} fills ckpt_name and {{ '{{sampler}}' }} fills sampler_name.

The right-hand column is what an omitted placeholder resolves to today — the instance defaults from the image settings page, falling back to the built-in floor. A model may override any of them except {{ '{{batch}}' }}, which is yours alone.

Back {% if not is_new %} {% endif %}
{% endblock %}