from __future__ import annotations import argparse import json from shared.config import load_config def build_registry_payload() -> dict: config = load_config() provider = config.get("provider", {}) generation = config.get("generation", {}) return { "skill": "qwen-image-skill", "provider": { "name": provider.get("name", "qwen-compatible"), "model": provider.get("model", "qwen-image"), }, "workflows": [ { "id": "qwen/text-to-image", "name": "Qwen Text to Image", "description": "Generate images from natural language prompts through a Qwen-compatible image generation API.", "enabled": True, "parameters": { "prompt": { "type": "string", "required": True, "description": "Main image prompt. Include subject, style, composition, lighting, and quality requirements.", }, "size": { "type": "string", "required": False, "description": "Output size such as 1024x1024, 1280x720, or 720x1280.", "default": generation.get("default_size", "1024x1024"), }, "n": { "type": "int", "required": False, "description": "Number of images to generate in one request.", "default": generation.get("default_n", 1), }, "quality": { "type": "string", "required": False, "description": "Provider quality hint, for example standard or hd.", "default": generation.get("default_quality", "standard"), }, "negative_prompt": { "type": "string", "required": False, "description": "Things to avoid in the generated image.", }, "seed": { "type": "int", "required": False, "description": "Optional deterministic seed if the provider supports it.", }, }, } ], } def main() -> None: parser = argparse.ArgumentParser(description="Workflow Registry for Qwen Image OpenClaw Skill") parser.add_argument("action", choices=["list"], help="Action to perform") parser.add_argument("--agent", action="store_true", help="Output full JSON schema for agent parsing") args = parser.parse_args() payload = build_registry_payload() if args.agent: print(json.dumps(payload, ensure_ascii=False, indent=2)) return workflows = payload["workflows"] for workflow in workflows: print(f"{workflow['id']}: {workflow['description']}") if __name__ == "__main__": main()