Cross-Provider Workflow

Civitai Image Generation to Slack Post

Version 1.0.0

Generate an image with Civitai, then announce it in a Slack channel.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

civitai slack

Workflows

generate-and-announce
Submit a Civitai image workflow and announce it in Slack.
Submits an image-generation step to Civitai, captures the workflow id and status, then posts a Slack message announcing the queued generation job.
2 steps inputs: channel, engine, prompt outputs: messageTs, workflowId
1
generate-image
$sourceDescriptions.civitaiApi.submitWorkflow
Submit an image-generation workflow to Civitai orchestration.
2
announce-slack
$sourceDescriptions.slackApi.postChatPostmessage
Post a Slack message announcing the queued image generation.

Source API Descriptions

Arazzo Workflow Specification

ai-civitai-image-to-slack-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Civitai Image Generation to Slack Post
  summary: Generate an image with Civitai, then announce it in a Slack channel.
  description: >-
    A cross-provider AI enrichment chain that submits an image-generation
    workflow to Civitai's orchestration API and posts a notification with the
    resulting workflow identifier into a Slack channel. Demonstrates kicking off
    a generative-media job and surfacing it to a team chat in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: civitaiApi
    url: https://raw.githubusercontent.com/api-evangelist/civitai/refs/heads/main/openapi/civitai-orchestration-api-openapi.yml
    type: openapi
  - name: slackApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
workflows:
  - workflowId: generate-and-announce
    summary: Submit a Civitai image workflow and announce it in Slack.
    description: >-
      Submits an image-generation step to Civitai, captures the workflow id and
      status, then posts a Slack message announcing the queued generation job.
    inputs:
      type: object
      properties:
        prompt:
          type: string
        engine:
          type: string
        channel:
          type: string
    steps:
      - stepId: generate-image
        description: Submit an image-generation workflow to Civitai orchestration.
        operationId: $sourceDescriptions.civitaiApi.submitWorkflow
        requestBody:
          contentType: application/json
          payload:
            steps:
              - $type: imageGen
                input:
                  engine: $inputs.engine
                  prompt: $inputs.prompt
                  width: 1024
                  height: 1024
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          workflowId: $response.body#/id
          workflowStatus: $response.body#/status
      - stepId: announce-slack
        description: Post a Slack message announcing the queued image generation.
        operationId: $sourceDescriptions.slackApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.channel
            text: "Image generation queued on Civitai (workflow $steps.generate-image.outputs.workflowId, status $steps.generate-image.outputs.workflowStatus)."
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      workflowId: $steps.generate-image.outputs.workflowId
      messageTs: $steps.announce-slack.outputs.messageTs