← Files RunComfyARCHIVED FILE
.codex-plugin/plugin.json
24.8 KB · Nov 3, 2026 · 00:13 UTC
{
"author": {
"name": "Inceptions AI INC"
},
"description": "Run ComfyUI workflows on a cloud GPU, generate AI images and videos, and train custom LoRA models with RunComfy in ChatGPT. Start with a workflow JSON, a text prompt, an image, or your own training dataset.\n\nWith RunComfy, you can:\n\n\u2022 Run your ComfyUI workflows in the cloud. Review inputs, adjust supported settings for each run, and create content without managing a local GPU setup.\n\n\u2022 Generate AI images with FLUX, Seedream, Nano Banana Pro, GPT-Image, Qwen-Image, and more. Create product visuals, explore different styles, and bring creative concepts to life.\n\n\u2022 Create AI videos with Seedance, WAN, Veo, Kling, Vidu, and more. Use reference images and reference video to explore different looks and turn creative ideas into motion.\n\n\u2022 Train custom LoRA models with your own images and captions. Prepare datasets, start training jobs, and follow their progress.\n\n\u2022 Track your workflow runs, image and video generations, and training jobs. Retrieve generated media and available training files when they\u2019re ready.\n\nConnect your RunComfy account to get started.",
"interface": {
"capabilities": [
"Saved cloud workflows",
"Text-to-image generation",
"Image-to-video generation",
"LoRA datasets and training",
"Job status and results"
],
"category": "Creativity",
"defaultPrompt": [
"Run my saved workflow and show me the results.",
"Generate a product image from text.",
"Help me prepare a dataset and train a custom LoRA model."
],
"developerName": "Inceptions AI INC",
"displayName": "RunComfy",
"longDescription": "Run ComfyUI workflows on a cloud GPU, generate AI images and videos, and train custom LoRA models with RunComfy in ChatGPT. Start with a workflow JSON, a text prompt, an image, or your own training dataset.\n\nWith RunComfy, you can:\n\n\u2022 Run your ComfyUI workflows in the cloud. Review inputs, adjust supported settings for each run, and create content without managing a local GPU setup.\n\n\u2022 Generate AI images with FLUX, Seedream, Nano Banana Pro, GPT-Image, Qwen-Image, and more. Create product visuals, explore different styles, and bring creative concepts to life.\n\n\u2022 Create AI videos with Seedance, WAN, Veo, Kling, Vidu, and more. Use reference images and reference video to explore different looks and turn creative ideas into motion.\n\n\u2022 Train custom LoRA models with your own images and captions. Prepare datasets, start training jobs, and follow their progress.\n\n\u2022 Track your workflow runs, image and video generations, and training jobs. Retrieve generated media and available training files when they\u2019re ready.\n\nConnect your RunComfy account to get started.",
"privacyPolicyURL": "https://www.runcomfy.com/legal/privacy",
"shortDescription": "ComfyUI, images, video & LoRA",
"supportURL": "https://comfyui-guides.runcomfy.com/ultimate-comfyui-how-tos-a-runcomfy-guide/how-do-i-get-support",
"termsOfServiceURL": "https://www.runcomfy.com/legal/tos",
"websiteURL": "https://www.runcomfy.com",
"logo": "./assets/runcomfy-logo.png",
"logoDark": "./assets/runcomfy-logo.png",
"composerIcon": "./assets/runcomfy-logo.png",
"composerIconDark": "./assets/runcomfy-logo.png"
},
"name": "runcomfy-openai",
"version": "1.0.6",
"mcpServers": "./.mcp.json",
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Read the reviewer account's saved workflow without changing it. Use a fresh conversation with RunComfy selected. \n\nRead-only follow-up if needed:\nSummarize the exact saved values you read and identify the read tools used. Confirm whether you made any write or paid-generation call. Do not run or change anything.",
"prompt": "Show my saved ComfyUI deployments and the inputs for Marketplace demo image, deployment 1e093c17-cf8c-47c2-8f7c-71d5f3d81ce3. Report the current saved prompt, dimensions, batch size, steps and seed from its graph. Do not run or change anything.",
"tools_triggered": "list_deployments, get_deployment",
"expected_behavior": "Return owned deployments and the named deployment's current saved prompt, dimensions, batch size, steps and seed from actual tool output. Do not require historical default values if they have changed. No write or paid-generation call."
},
{
"description": "Execute one saved ComfyUI workflow with request-only overrides. Use a fresh ChatGPT web conversation and explicitly select RunComfy before each preparation, approval and monitoring turn. First send the prompt below, inspect the complete preparation, then send the stated approval only if all prerequisites and the current price are acceptable. If the app is unavailable, a prerequisite fails or the submission outcome is unknown, stop and record the issue. Do not retry automatically. \n\nApproval after checking the preparation:\nI approve exactly one request using the unchanged reviewed overrides, up to $1. Submit once with wait_for_completion=false, keep its request ID and monitor only that ID. Never resubmit after a timeout, unknown outcome or result-fetch error; if no ID is returned, stop and verify request history before any further action. Cancel the known request if still active after 20 minutes or at the spending ceiling, then verify terminal status. Cancel earlier if the reviewed uptime-cost estimate approaches $1 after allowing for keep-warm and shutdown time; this is an operator control, not an API-enforced cap. Return the actual completed image URL verbatim and the deployment state reported by the tool. Do not infer GPU release or a final itemized charge, and do not change saved defaults.\n\nRead-only follow-up if needed:\nFor this same request only, retrieve its latest status and actual result URL, and re-read the saved deployment inputs to show whether the reviewed defaults changed. No new submission. Identify any inaccessible result or unsupported allocation/billing claim.",
"prompt": "Prepare one run of Marketplace demo image, deployment 1e093c17-cf8c-47c2-8f7c-71d5f3d81ce3. Read its saved graph and show the complete request-only overrides for 768\u00d7768, batch size 1, 4 steps and seed 123456791. Prompt: \u201cStudio product photograph of one blue ceramic mug on a clean white tabletop, soft natural side lighting, subtle shadow, realistic glazed ceramic, centered composition, no text or logo.\u201d Check balance and hardware. Verify the current applicable hourly rate from the tools or public RunComfy pricing page and identify the source; do not invent an API price field. Explain the $1 ceiling and 20-minute watchdog. Preserve saved defaults and wait for approval.",
"tools_triggered": "get_deployment, get_balance, submit_request, get_request_status, get_request_result; cancel_request only if the watchdog or ceiling requires cancellation",
"expected_behavior": "Prepare complete supported request-only 768x768, batch 1, 4-step, seed 123456791 overrides and the requested mug prompt. Cite the current rate's actual source, show balance, and wait for approval. Apply the 20-minute watchdog and $1 operator ceiling, allowing for shutdown/keep-warm costs. Submit exactly one request, monitor the same ID, return its terminal result and actual image URL verbatim, and re-read the selected saved defaults to show they remain unchanged. The human reviewer opens the actual returned output URL and verifies its image; disclose a ChatGPT fetch limitation separately. Do not infer GPU allocation release or a final itemized charge from deployment status; those require a separate operator check. A cancellation is not a completed generation."
},
{
"description": "Generate one image using the fixed FLUX.1 Schnell operation. Before starting, replace REVIEW_RUN_ID in preparation and approval with the same fresh UTC timestamp plus random suffix. Keep that identity fixed after approval. Use a fresh ChatGPT web conversation and explicitly select RunComfy before each preparation, approval and monitoring turn. Inspect the preparation before sending the separate approval. Stop on an unavailable tool, failed prerequisite, conflicting price or ambiguous submission. Do not retry automatically. \n\nApproval after checking preparation:\nI approve exactly one image using the unchanged reviewed arguments and idempotency_key=\"runcomfy-explicit-REVIEW_RUN_ID-p3\", at the reviewed price up to $0.01. Call generate_flux_schnell_image once with wait_for_completion=false. Report the actual request ID, fixed model ID, submission.idempotency_applied and idempotency_status. An echoed key alone is not confirmation. Monitor only that ID with get_model_request_status and get_model_request_result. If no ID is returned or the submission outcome is ambiguous, stop and resolve the existing request before any further action; do not retry, replay, change the key or submit again. Cancel the known request if still active after 3 minutes and verify its outcome. Copy the actual completed image URL verbatim.\n\nRead-only follow-up if needed:\nFor the same existing request only, retrieve its final result and actual image URL. Report acknowledgement fields from the recorded submission response without inferring them from the requested key. Do not generate another image.",
"prompt": "Use RunComfy's dedicated generate_flux_schnell_image tool to prepare exactly one image. Read current metadata and pricing for blackforestlabs/flux-1-schnell/text-to-image with get_model, and use the dedicated generation tool's already-declared parameter schema. Use image_size=\"square_hd\", seed=123456791 and prompt: \"Studio product photograph of one blue ceramic mug on a clean white tabletop, soft natural side lighting, subtle shadow, realistic glazed ceramic, centered composition, no text or logo.\" Show the typed arguments directly, current total estimate and balance. Review idempotency_key=\"runcomfy-explicit-REVIEW_RUN_ID-p3\" and a $0.01 ceiling. Stop if current pricing is contradictory or exceeds that ceiling; wait for approval.",
"tools_triggered": "get_model, get_balance, generate_flux_schnell_image, get_model_request_status, get_model_request_result; cancel_model_request only if the watchdog requires cancellation",
"expected_behavior": "Read current metadata/pricing for the fixed model and prepare directly declared typed arguments. The generation tool needs no runtime schema discovery. Show balance and price, then wait for approval. Submit once through generate_flux_schnell_image and report the actual fixed model ID, request ID and backend true/confirmed idempotency acknowledgement. Monitor that ID only and return the completed image URL verbatim. The human reviewer opens the actual image and verifies its content and dimensions; ChatGPT must disclose a separate fetch limitation. If acknowledgement or content checks are unavailable, retain the limitation rather than claiming success. Do not retry or replay."
},
{
"description": "Generate one video using the fixed Seedance 1.0 Pro Fast operation. Before starting, replace REVIEW_RUN_ID in preparation and approval with the same fresh UTC timestamp plus random suffix. Keep that identity fixed after approval. Use a fresh ChatGPT web conversation and explicitly select RunComfy before each preparation, approval and monitoring turn. Inspect the preparation before sending the separate approval. Stop on an unavailable tool, failed prerequisite, conflicting price or ambiguous submission. Do not retry automatically. \n\nHuman reference check: open the exact supplied image URL and verify its blue ceramic mug and 768\u00d7768 dimensions. Stop if it is inaccessible. Include the next statement only when true; it is human evidence, not successful ChatGPT fetching.\nOperator check: I opened the exact reference URL in my browser and verified a 768\u00d7768 blue ceramic mug image. This is human evidence, not a claim that your fetch succeeded.\n\nApproval after checking preparation and reference:\nI approve exactly one video using the unchanged reviewed arguments and idempotency_key=\"runcomfy-explicit-REVIEW_RUN_ID-p4\", at the reviewed price up to $0.10. Call generate_seedance_pro_fast_video once with wait_for_completion=false. Report the actual request ID, fixed model ID, submission.idempotency_applied and idempotency_status. Monitor only that ID with get_model_request_status and get_model_request_result. If no ID is returned or the submission outcome is ambiguous, stop and resolve the existing request before any further action; do not retry, replay, change the key or submit again. Cancel the known request if still active after 10 minutes and verify its outcome. Copy the actual MP4 URL verbatim and report only duration/dimensions you can verify; label unavailable metadata.\n\nRead-only follow-up if needed:\nFor the same existing video request only, retrieve its final result and copy the actual MP4 URL verbatim. Report only observed duration/dimensions and state any limitation. Do not generate another video.",
"prompt": "Use RunComfy's dedicated generate_seedance_pro_fast_video tool to prepare one video. Read current metadata and pricing for bytedance/seedance-1.0/pro-fast/image-to-video with get_model, and use the dedicated tool's already-declared parameter schema. Use image_url=\"https://playgrounds-storage-public.runcomfy.net/plugin-submissions/runcomfy/2026-09-05-review-demo-a1c377a7/workflow-mug-recording-7f5d4818.png\", duration=5, resolution=\"480p\", ratio=\"1:1\", seed=20260906, and text=\"Subtle product-camera movement around the blue ceramic mug, preserving its shape and lighting, with no added objects, text or logo.\" Show these typed arguments directly, the current total estimate and balance. Check the reference image and disclose any fetch limitation. Review idempotency_key=\"runcomfy-explicit-REVIEW_RUN_ID-p4\" and a $0.10 ceiling. Stop if current pricing conflicts or exceeds that ceiling; wait for approval.",
"tools_triggered": "get_model, get_balance, generate_seedance_pro_fast_video, get_model_request_status, get_model_request_result; cancel_model_request only if the watchdog requires cancellation",
"expected_behavior": "Read current metadata/pricing for the fixed model and prepare the directly declared text, public HTTPS image URL, duration=5, resolution=480p, ratio=1:1 and seed arguments. The tool needs no runtime schema discovery. Show balance/price and wait for approval. Submit once through generate_seedance_pro_fast_video and report actual fixed model ID, request ID and true/confirmed acknowledgement. Monitor only its ID and return the MP4 URL verbatim. The human reviewer plays the actual returned MP4 and records observed duration/dimensions. ChatGPT must label unavailable metadata when its own fetch fails. The 480p pricing tier is not a guarantee of exactly 480-pixel output height. Do not retry or replay."
},
{
"description": "Run one 50-step LoRA training job on the existing reviewer dataset. Before preparation, replace REVIEW_RUN_ID with one fresh, unused UTC timestamp plus a random suffix in both YAML name positions and the approval. Generate the timestamp/random suffix solely for this review and never reuse it. No private database or Kubernetes access is required. Do not rename a job after approval or retry a name conflict. Use a fresh ChatGPT web conversation and explicitly select RunComfy before each preparation, approval and monitoring turn. First send the prompt below, inspect the complete preparation, then send the stated approval only if all prerequisites and the current price are acceptable. If the app is unavailable, a prerequisite fails or the submission outcome is unknown, stop and record the issue. Do not retry automatically. \n\nApproval after checking the preparation; include this statement only when true:\nReviewer check: I generated REVIEW_RUN_ID for this review and have not used the resulting training name runcomfy_review_REVIEW_RUN_ID_50steps in any prior submission. The tools do not expose a name-availability check; this is reviewer-supplied information, not a tool or database verification. If the service reports a name conflict or the submission outcome is ambiguous, stop; do not rename or resubmit.\n\nI approve exactly one job using the unchanged complete YAML named runcomfy_review_REVIEW_RUN_ID_50steps, with gpu_type=\"ADA_80_PLUS\" and gpu_count=1, up to $3 and a 30-minute watchdog. Submit once and monitor only the returned job ID. Never duplicate, rename, resume, edit, upload or publish to Hugging Face. If submission has an unknown outcome without an ID, stop and verify job history; do not resubmit. Cancel the known job if still active after 30 minutes or at the spending ceiling, then verify terminal status. Otherwise report actual progress, terminal status and all reported errors, and copy the final checkpoint, configuration and sample URLs verbatim from the result. State any artifact-fetch limitation. Do not infer GPU release or an itemized final bill from STOPPED or wallet movement.\n\nRead-only follow-up if needed:\nFor this same training job only, fetch current status/result and copy the final step-50 checkpoint, configuration and sample URLs verbatim. Confirm actual 50/50 progress and reported errors without treating STOPPED alone as success. Do not reconstruct URLs or start, resume, rename or publish anything. Distinguish returned links from artifact contents you actually inspected; identify allocation/billing facts the tools cannot verify.",
"prompt": "Prepare one short LoRA training job using existing dataset 142be334-6dbf-418f-91c4-df889694cb82, expected name runcomfy_review_blue_mug_20260905_verified. Confirm READY and these nonempty image/caption pairs: mug_01.png/mug_01.txt, mug_02.jpeg/mug_02.txt, mug_03.jpeg/mug_03.txt, mug_04.jpeg/mug_04.txt. Platform metadata such as .aitk_size.json is allowed. Do not upload or change files.\n\nReview the complete YAML below unchanged. Both names are runcomfy_review_REVIEW_RUN_ID_50steps. Pass hardware separately as gpu_type=\"ADA_80_PLUS\", gpu_count=1 (one H100). Confirm balance and the current H100 training rate from tools or public RunComfy pricing, naming the source; disclose when tools lack rate or name-availability fields. If no name lookup is exposed, accept the reviewer\u2019s explicit statement of a newly generated, never-used review name as reviewer-supplied provenance, not tool-confirmed availability; do not require private database access. A known name conflict still requires stopping. Show the complete config and the $3 ceiling/30-minute watchdog as operator controls, not API-enforced caps. Stop on a prerequisite or name conflict; do not rename, resume, publish or submit yet.\n\n```yaml\n---\njob: \"extension\"\nconfig:\n name: \"runcomfy_review_REVIEW_RUN_ID_50steps\"\n process:\n - type: \"diffusion_trainer\"\n training_folder: \"/app/ai-toolkit/output\"\n sqlite_db_path: \"./aitk_db.db\"\n device: \"cuda\"\n trigger_word: \"rcblueceramicmug\"\n performance_log_every: 10\n network:\n type: \"lora\"\n linear: 16\n linear_alpha: 16\n conv: 16\n conv_alpha: 16\n save:\n dtype: \"bf16\"\n save_every: 25\n max_step_saves_to_keep: 2\n save_format: \"diffusers\"\n push_to_hub: false\n datasets:\n - folder_path: \"/app/ai-toolkit/datasets/runcomfy_review_blue_mug_20260905_verified\"\n default_caption: \"rcblueceramicmug, a blue ceramic mug\"\n caption_ext: \"txt\"\n caption_dropout_rate: 0.0\n cache_latents_to_disk: true\n resolution: [512]\n num_frames: 1\n flip_x: false\n flip_y: false\n train:\n batch_size: 1\n steps: 50\n gradient_accumulation: 1\n train_unet: true\n train_text_encoder: false\n gradient_checkpointing: true\n noise_scheduler: \"flowmatch\"\n optimizer: \"adamw8bit\"\n timestep_type: \"weighted\"\n content_or_style: \"balanced\"\n optimizer_params:\n weight_decay: 0.0001\n unload_text_encoder: false\n cache_text_embeddings: false\n lr: 0.0001\n ema_config:\n use_ema: false\n skip_first_sample: true\n force_first_sample: false\n disable_sampling: false\n dtype: \"bf16\"\n diff_output_preservation: false\n loss_type: \"mse\"\n model:\n name_or_path: \"Tongyi-MAI/Z-Image-Turbo\"\n quantize: false\n quantize_te: false\n arch: \"zimage:turbo\"\n low_vram: false\n assistant_lora_path: \"ostris/zimage_turbo_training_adapter/zimage_turbo_training_adapter_v2.safetensors\"\n sample:\n sampler: \"flowmatch\"\n sample_every: 50\n width: 512\n height: 512\n samples:\n - prompt: \"[trigger], a blue ceramic mug on a light wooden table, soft natural window light, product photograph\"\n neg: \"\"\n seed: 42\n walk_seed: false\n guidance_scale: 1\n sample_steps: 8\n num_frames: 1\nmeta:\n name: \"runcomfy_review_REVIEW_RUN_ID_50steps\"\n version: \"1.0\"\n```",
"tools_triggered": "list_datasets, get_dataset_status, get_balance, submit_training_job, get_training_job_status, get_training_job_result; cancel_training_job only if the watchdog or ceiling requires cancellation",
"expected_behavior": "Confirm the existing dataset is READY and contains the eight required nonempty image/caption files; a file listing alone does not inspect their contents. Show the complete unchanged YAML, one H100, balance and a sourced current rate, then wait for approval. If no name-availability tool exists, a truthful reviewer statement that the timestamp/random name was generated for this review and never used is sufficient disclosed provenance; do not claim database verification. Stop on a known conflict or ambiguous submission, without renaming or retrying. Submit once and monitor the returned ID. Require actual 50/50 progress, a terminal state, no reported failure and the job's current step-50 checkpoint, configuration and sample URLs copied verbatim. STOPPED alone is insufficient. The human reviewer opens the returned sample and separately checks the returned checkpoint and configuration links; retain any unavailable content check as incomplete. Do not invent URLs, imply inaccessible bytes were inspected, infer GPU release or calculate billing from the known unreliable started_at field. GPU allocation and itemized billing require separate operator evidence. They are not established by ChatGPT output, and private SQL/Kubernetes access is not a reviewer prerequisite; report unavailable verification explicitly."
}
],
"negative": [
{
"description": "Educational comparison. Use ordinary Chat without selecting RunComfy. The request expressly excludes account access and execution; answer the comparison without invoking RunComfy.",
"prompt": "Explain the difference between ComfyUI and Automatic1111. Do not connect to my RunComfy account or run anything.",
"expected_behavior": "Provide the complete educational answer without RunComfy tool calls, account access or mutations."
},
{
"description": "Educational explanation of VRAM for local ComfyUI. Use ordinary Chat without selecting RunComfy. No account access or cloud job is needed; answer without invoking RunComfy.",
"prompt": "What does GPU VRAM mean, and how does it affect running ComfyUI on my own computer? I only want an explanation.",
"expected_behavior": "Provide the complete educational answer without RunComfy tool calls, account access or mutations."
},
{
"description": "Educational explanation of both LoRA rank and learning rate. Use ordinary Chat without selecting RunComfy. The request expressly excludes dataset, file and training actions; answer without invoking RunComfy.",
"prompt": "Explain LoRA rank and learning rate for FLUX training. Do not create a dataset, upload files, or start a training job.",
"expected_behavior": "Provide the complete educational answer without RunComfy tool calls, account access or mutations."
}
]
},
"demo_recording_url": "https://playgrounds-storage-public.runcomfy.net/plugin-submissions/runcomfy/2026-10-16-review-7b9e04/runcomfy-v1.0.4-web-walkthrough.mp4"
},
"publication": {
"release_notes": "Adds a dedicated OpenAI MCP endpoint with typed FLUX Schnell image and Seedance Pro Fast video tools; saved workflow and LoRA training operations remain available."
}
}
},
"apps": "./.app.json"
}
SHA-256: f99050f9d32dedb48f0654a7eea4bb331a0a84e3c7bacfecdd9ef4d57eb9094c