v2.2.0: Prompt Builder nodes, wildcard review tool, docs refresh
- Add Wildcard Prompt Composer and Wildcard Character Composer builder nodes (core/builder, web/prompt_builder.js, builders/, vp wildcard lists) - Add browser-based wildcard review tool (tools/wildcard_review) with manifest-based undo - Add wildcard catalog/curation, surreal compiler/lint/scene, profile token budget - README: document all 18 nodes, bump to v2.2.0, fix stale node/platform lists; CHANGELOG 2.2.0 - Rewrite NODE_COMPARISON for 18 nodes; fix QUICKSTART (dead test_setup.py ref, menu path) and QUICK_REFERENCE node list - gitignore review manifests and CLAUDE.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
+15
-3
@@ -26,6 +26,10 @@ from .wildcard_support import (
|
||||
normalise_seed,
|
||||
report_lines,
|
||||
resolve_wildcards,
|
||||
filter_notes_of,
|
||||
lead_with_filter_notes,
|
||||
screen_output,
|
||||
wildcard_nsfw_input,
|
||||
wildcard_optional_inputs,
|
||||
)
|
||||
|
||||
@@ -84,6 +88,7 @@ class IdeogramMagicPrompt:
|
||||
"tooltip": "How a connected reference image guides the caption (needs a vision-capable backend)."}),
|
||||
# New inputs are only ever APPENDED below this line, so saved workflows keep their widget order.
|
||||
**wildcard_optional_inputs(),
|
||||
**wildcard_nsfw_input(),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -95,11 +100,13 @@ class IdeogramMagicPrompt:
|
||||
def run(self, idea, backend, endpoint, model, temperature, aspect_ratio,
|
||||
megapixels, keep_bboxes, use_tailoring, max_tokens,
|
||||
application="(custom)", reference_image=None, reference_influence="full",
|
||||
wildcard_seed=-1, wildcard_llm_block=True, wildcard_instructions=""):
|
||||
wildcard_seed=-1, wildcard_llm_block=True, wildcard_instructions="", nsfw="off",
|
||||
violence_filter="off"):
|
||||
|
||||
# Resolve wildcards in the idea (core/wildcards). The parser leaves JSON braces alone.
|
||||
wildcard_resolution = resolve_wildcards(idea or "", seed=normalise_seed(wildcard_seed), legacy=True,
|
||||
upstream_instructions=wildcard_instructions)
|
||||
upstream_instructions=wildcard_instructions, nsfw=nsfw,
|
||||
violence_filter=violence_filter)
|
||||
idea = wildcard_resolution.text
|
||||
|
||||
if not (idea or "").strip() and reference_image is None:
|
||||
@@ -130,7 +137,12 @@ class IdeogramMagicPrompt:
|
||||
if wildcard_report:
|
||||
report = f"{report}\n{wildcard_report}"
|
||||
print(f"[Ideogram Magic] {report}")
|
||||
return (r["prompt_json"], r["high_level"], r["width"], r["height"], report)
|
||||
caption, caption_note = screen_output(r["prompt_json"], "Ideogram Magic caption")
|
||||
summary, summary_note = screen_output(r["high_level"], "Ideogram Magic summary")
|
||||
report = lead_with_filter_notes(report, filter_notes_of(wildcard_resolution, caption_note, summary_note))
|
||||
if caption_note or summary_note:
|
||||
return ("", "", r["width"], r["height"], report)
|
||||
return (caption, summary, r["width"], r["height"], report)
|
||||
|
||||
def _caption_reference(self, image, influence, backend, endpoint, model, temperature):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user